二、填空題(本大題共10小題,每小題2分,共20分)
請在每小題的空格中填上正確答案。錯填、不填均無分。
16.一個字符型變量所占內(nèi)存的字節(jié)數(shù)是____________________。
17.寫出公式對應(yīng)的C語言表達(dá)式_________________。
18.執(zhí)行語句printf(〞%s\n, 〞〞 World\0Wide\0Web〞);后的輸出結(jié)果是_______________。
19.設(shè)int a,b=5;,則執(zhí)行表達(dá)式a=b-2==3后a的值是_________________。
20.設(shè)char s[20]= 〞My〞;,則執(zhí)行strcat(s, 〞Sun! 〞)后s的內(nèi)容是___________________。
21.設(shè)float x=23.65;, 則執(zhí)行語句printf (〞%d\n〞,(int)(x+0.5));后輸出結(jié)是_______________。
22.若定義函數(shù)char*fun( ){…},則該函數(shù)的返回值類型是__________________。
23.設(shè)int x=-9,y;,則執(zhí)行y=x>=0?x:-x;后y的值是_________________。
24.若函數(shù)調(diào)用語句為f(a,b,f(a+b,a-b,b));,則函數(shù)f的參數(shù)個數(shù)是__________________。
25.設(shè)int a=10;,則執(zhí)行語句a+=a-=a+a;后a 的值是_________________。
三、程序分析題(本大題共4小題,每小題4分,共16分)
閱讀下列程序,請將輸出結(jié)果寫到各題右側(cè)的空白處。
26.main()
{int a=1,b=2,c=3;
if(a<=c)
if(b==c)printf(〞a=%d\n〞,a);
else printf(〞b=%d\n〞,b);
printf(〞c=%d\n〞,c);
}
27.int f(int n)
{static int m=5;
return ++m+n;
}
main()
{int i;
for(i=0;i<3;i++)printf(〞%5d〞,f(i));
printf(〞\n〞);
}
28.#define SIZE 4
main()
{int n[SIZE]={8,3,4,1};
int i, j;
for (i=0;i {printf{〞%d〞,n[i]};
for(j=1;j<=n[i];j++)printf(〞*〞);
printf(〞\n〞);
}
}
29.int fm(int a,int b)
{if(b==1)return a;
else return a+fm(a,b-1);
}
main()
{
printf(〞%d\n〞,fm(4,3));
}
四、程序填充題(本大題共3小題,每小題6分,共18分)
請將下列程序橫線處缺少的部分補上,使其能正確運行。
30.函數(shù)fun 用于計算數(shù)組各元素值的平方,主函數(shù)調(diào)用fun并輸出各元素的值。
void fun(int num,int a[ ])
{int i;
for (i=0;i<___________;i++)a[i]=a[i]*a[i]; /*第一空*/
}
main()
{
int i,b[5]={1,2,3,4,5};
fun(5,_______); /*第二空*/
for (i=0;i<5;i++)printf(〞%5d〞,________); /*第三空*/
printf(〞\n〞);
}
31.從鍵盤輸入一串字符(“#”作為結(jié)束標(biāo)志),將其寫入文本文件file.dat 中保存。
#include
#include
main()
{char ch;
FILE*fp;
if((fp=fopen(〞file.dat〞, 〞______〞))= =NULL) /*第一空*/
{printf(〞Can not open file\n〞);exit(0);}
ch=getchar();
while (ch!=’# ’)
{fputc(________,fp); /*第二空*/
ch=getchar();
}
fclose(________); /*第三空*/
}
32.從鍵盤輸入x的值,根據(jù)以下公式計算并輸出x和y 的值。
#include
#include
main()
{float x,y;
scanf(〞%f〞,______); /*第一空*/
if(x<0)printf(〞input error!\n〞);
else
{switch ((int)(x/2))
{case 0:y=x;_______; /*第二空*/
case 1:
case 2:y=x*x+1;break;
case 3:
case 4:y=_____________;break; /*第三空*/
default :y=1/(x*x+1);
}
printf(〞x=%7.2f,y=%10.6f\n〞,x,y);
}
}
五、程序設(shè)計題(本大題共2小題,每小題8分,共16分)
33.從鍵盤輸入100個整數(shù),計算并輸出大于等于零的數(shù)的平均值(保留小數(shù)點后兩位)。
34.(1)編寫一個計算梯形面積的函數(shù)。函數(shù)頭是:float area(float t,float b,float h)
其中變量t、b和h分別表示梯形的上底、下底和高。
(2)編寫主函數(shù)從鍵盤輸入梯形的上底、下底和高的值,調(diào)用上述函數(shù)輸出梯形面積
(保留小數(shù)點后兩位)。
請在每小題的空格中填上正確答案。錯填、不填均無分。
16.一個字符型變量所占內(nèi)存的字節(jié)數(shù)是____________________。
17.寫出公式對應(yīng)的C語言表達(dá)式_________________。
18.執(zhí)行語句printf(〞%s\n, 〞〞 World\0Wide\0Web〞);后的輸出結(jié)果是_______________。
19.設(shè)int a,b=5;,則執(zhí)行表達(dá)式a=b-2==3后a的值是_________________。
20.設(shè)char s[20]= 〞My〞;,則執(zhí)行strcat(s, 〞Sun! 〞)后s的內(nèi)容是___________________。
21.設(shè)float x=23.65;, 則執(zhí)行語句printf (〞%d\n〞,(int)(x+0.5));后輸出結(jié)是_______________。
22.若定義函數(shù)char*fun( ){…},則該函數(shù)的返回值類型是__________________。
23.設(shè)int x=-9,y;,則執(zhí)行y=x>=0?x:-x;后y的值是_________________。
24.若函數(shù)調(diào)用語句為f(a,b,f(a+b,a-b,b));,則函數(shù)f的參數(shù)個數(shù)是__________________。
25.設(shè)int a=10;,則執(zhí)行語句a+=a-=a+a;后a 的值是_________________。
三、程序分析題(本大題共4小題,每小題4分,共16分)
閱讀下列程序,請將輸出結(jié)果寫到各題右側(cè)的空白處。
26.main()
{int a=1,b=2,c=3;
if(a<=c)
if(b==c)printf(〞a=%d\n〞,a);
else printf(〞b=%d\n〞,b);
printf(〞c=%d\n〞,c);
}
27.int f(int n)
{static int m=5;
return ++m+n;
}
main()
{int i;
for(i=0;i<3;i++)printf(〞%5d〞,f(i));
printf(〞\n〞);
}
28.#define SIZE 4
main()
{int n[SIZE]={8,3,4,1};
int i, j;
for (i=0;i
for(j=1;j<=n[i];j++)printf(〞*〞);
printf(〞\n〞);
}
}
29.int fm(int a,int b)
{if(b==1)return a;
else return a+fm(a,b-1);
}
main()
{
printf(〞%d\n〞,fm(4,3));
}
四、程序填充題(本大題共3小題,每小題6分,共18分)
請將下列程序橫線處缺少的部分補上,使其能正確運行。
30.函數(shù)fun 用于計算數(shù)組各元素值的平方,主函數(shù)調(diào)用fun并輸出各元素的值。
void fun(int num,int a[ ])
{int i;
for (i=0;i<___________;i++)a[i]=a[i]*a[i]; /*第一空*/
}
main()
{
int i,b[5]={1,2,3,4,5};
fun(5,_______); /*第二空*/
for (i=0;i<5;i++)printf(〞%5d〞,________); /*第三空*/
printf(〞\n〞);
}
31.從鍵盤輸入一串字符(“#”作為結(jié)束標(biāo)志),將其寫入文本文件file.dat 中保存。
#include
#include
main()
{char ch;
FILE*fp;
if((fp=fopen(〞file.dat〞, 〞______〞))= =NULL) /*第一空*/
{printf(〞Can not open file\n〞);exit(0);}
ch=getchar();
while (ch!=’# ’)
{fputc(________,fp); /*第二空*/
ch=getchar();
}
fclose(________); /*第三空*/
}
32.從鍵盤輸入x的值,根據(jù)以下公式計算并輸出x和y 的值。
#include
#include
main()
{float x,y;
scanf(〞%f〞,______); /*第一空*/
if(x<0)printf(〞input error!\n〞);
else
{switch ((int)(x/2))
{case 0:y=x;_______; /*第二空*/
case 1:
case 2:y=x*x+1;break;
case 3:
case 4:y=_____________;break; /*第三空*/
default :y=1/(x*x+1);
}
printf(〞x=%7.2f,y=%10.6f\n〞,x,y);
}
}
五、程序設(shè)計題(本大題共2小題,每小題8分,共16分)
33.從鍵盤輸入100個整數(shù),計算并輸出大于等于零的數(shù)的平均值(保留小數(shù)點后兩位)。
34.(1)編寫一個計算梯形面積的函數(shù)。函數(shù)頭是:float area(float t,float b,float h)
其中變量t、b和h分別表示梯形的上底、下底和高。
(2)編寫主函數(shù)從鍵盤輸入梯形的上底、下底和高的值,調(diào)用上述函數(shù)輸出梯形面積
(保留小數(shù)點后兩位)。