D.fgetc(fp,ch);
二、填空题(本大题共10小题,每小题2分,共20分)
请在每小题的空格中填上正确答案。错填、不填均无分。
16.设int x=14;,则表达式x++%-5的值为__________。
17.设typedef char CHA;CHA ax;,则变量ax占用的内存字节数是__________。
18.设int u,v;,则表示“u、v中至少有一个是5的倍数”的表达式是__________。
19.设int x=5;,则表达式2/(float)(x)+3/x的结果是__________。
20.程序中调用sin(3.14)函数时,需要包含的头文件是__________。
21.若对一个非空文本文件进行读取和修改,则在fopen中的“使用方式”应是__________。
22.设struct
{int a;
int b;
}x[2]={{1,2},{3,4}},*p=x;
则表达式(++p)->a的值是__________。
23.设int i,j;
for(i=5;i;i--)
for(j=0;j<4;j++){…}
则循环体的执行次数是__________。
24.设int a[3][4]={{1,2,5,3},{2,4,7,9},{3,6,5,8}};
则表达式a[1][2]+a[2][3]的值是__________。
25.设char*p=″abcdABCD″;,则执行printf(″%s″,p+4);后输出结果是__________。
三、程序分析题(本大题共4小题,每小题4分,共16分)
阅读下列程序,请将输出结果写到各题右侧的空白处。
26.main()
{int i,j,k;char a[5]={′*′,′*′,′*′,′*′,′*′};
for(i=0;i<4;i++)
{printf(″\n″);
for(j=0;j<=3*i;j++)printf(″$″);
for(k=0;k<5;k++)printf(″%c″,a[k]);
}
}
27.int fib(int n)
{if(n==0||n==1)return 1;
else return fib(n-1)+fib(n-2);
}
main()
{int i;
for(i=0;i<=4;i++)printf(″%5d″,fib(i));
printf(″\n″);
}
28.main()
{int n=0;char str[80]=″Abc+mNp-xyZ″;
printf(″%s\n″,str);
while(str[n]!=′\0′)
str[n++]=str[n]>=′a′&&str[n]<=′z′?str[n]-′a′+′A′:str[n];
printf(″%s\n″,str);
}
29.int f(int n)
{static int a=0;
int b=0;
a+=n;
b+=a;
return b;
}
main()
{
printf(″%d\n″,f(5));
printf(″%d\n″,f(10));
}
四、程序填充题(本大题共3小题,每小题6分,共18分)
请将下列程序横线处缺少的部分补上,使其能正确运行。
30.分别统计并输出17、18、19和20岁各年龄的学生人数。
main()
{int i,n,age,a[30];
for(i=0;i<30;i++)a<i>=0;
scanf(″%d″,&n);/*输入人数<30*/
for(i=0;i
{scanf(″%d″,&age);/*输入年龄*/
if(age<17||age>20)_________;/*第一空*/
else
switch(________)/*第二空*/
{case 17:
case 18:
case 19:
case 20:a[age-17]++;
}
}
for(i=0,i<=3;i++)
printf(″age=%d number=%d\n″,i+17,________);/*第三空*/
}
31.将从键盘输入的字符串逆序显示。
#include
main()
{int n;
char str[80],*p;
printf(″Input a string:″);
gets(str);/*输入字符串*/
n=strlen(________);/*第一空*/
p=str+________-1;/*第二空*/
while(p>=str)
{printf(″%c″,*p);
________;/*第三空*/
}
printf(″/n″);
}
32.从键盘输入一个星期几(0~6),转换为对应的英文输出(Sunday,Monday,…),当输入小于0或大于6的数字时程序结束。
main()
{int week;
static char*weekname[]={″Sunday″,″Monday″,″Tuesday″,″Wednesday″,
″Thrusday″,″Friday″,″Saturday″};
while(1)
{printf(″Input weekday:″);
scanf(″%d″,__________);/*第一空*/
if(________)break;/*第二空*/
printf(″weekday:%d→%s\n″,week,__________);/*第三空*/
}
}
五、程序设计题(本大题共2小题,每小题8分,共16分)
33.从键盘输入100个整数,输出其中最大的数及其对应的数组下标值。
34.从键盘输入某学生的成绩(0≤score≤100)后,先输出该同学的成绩,再按下列条件
输出
试题下载地址: