C语言02 - 08年春夏学期考试试卷及答案汇总 下载本文

4.表达式~(10<<1)&4 的值是___________________________。 5.表达式sizeof(“hello”)的值是_______________________。 6. 下列程序的输出结果是_____________。

int k,s;

for(k=1,s=0;k<10;k++)

{if(k%2==0)continue; s+=k;

}

printf(“k=%d s=%d”,k,s);

7. 下列程序的输出结果是_____________。

#define MM(x,y) (x*y) printf(“%d”,MM(2+3,15));

8. 下列程序的输出结果是_____________。

int k=1,s=0;

switch(k){

case 1:s+=10; case 2:s+=20;break; default:s+=3; }

printf(“k=%d s=%d”,k,s);

9.对于以下递归函数f,调用 f (3) 的返回值是_______________。 #include

int f (int n)

{static int k; return ++k; } void main() {int k;

for(k=0;k<3;k++) printf(“%d#”,f()); }

10. 下列程序的输出结果是_____________。

f(int x)

{if(x<=1)return 1; else return f(x-1)+f(x-2); }

void main() { printf(“%d”,f(4));

}

11. 下列程序的输出结果是_____________。

Int k=1,j=2,*p,*q,*t; p=&k;q=&j; t=p;p=q;q=t;

printf(“%d,%d”,*p,k);

12. 下列程序的输出结果是_____________。

int c[]={10,30,5}; int *pc;

for(pc=c;pc

printf(“%d#”,*pc);

13. 下列程序的输出结果是_____________。 Char *st[]={“ONE”,”TWO”,”FOUR”,”K”}; printf(“%s,%c\\n”,*(st+2),**st+1);

14. 下列程序的输出结果是_____________。

#include void p(int *x,int y) {++*x; y=y+2; }

void main() {int x=0,y=3; p(&y,y);

printf(“%d,%d”,x,y);

}

15. 用typedef定义一个10个元素的字符指针数组类型CP____________。

三、程序阅读题(每题5分,共30分) 13. 下列程序的输出结果是_________。

# include void main( ) { int k,x,s,t; x=3;s=0;t=x;

for(k=1;k<=3;k++) { t=t*10+x; s=s+t;

printf(“%d#”,s);}

}

14. 输入7 3 0 3 0 3 1 2 9 7 6 0<回车>后,下列程序的输出结果是___________________。

# include void main()

{ int j, k, sub,x; int a[5];

for(j=1;j<=2;j++){ for(k=0;k<5; k++) scanf(“%d”,&a[k]); scanf(“%d”,&x); sub=-1;

for(k=0;k<5; k++)

if(a[k]==x)sub=k; printf(\

}}

3. 下列程序的输出结果是___________________。 # include void main()

{ long number,wt,x;

x=number=10230; wt=1;

while(x!-0)

{wt=wt*10;x=x/10;} wt=wt/10;

while(number!=0){

printf(“%d#”,number/wt); number=number%wt; wt=wt/10;

}}

4. 输入3 9 8 6 5 3 7 1 2 4 2 1 2 3 4<回车>后,下列程序的输出结果是_________________。 # include

void main()

{ int flag, i,j,k, col,n,ri,a[6][6]; for(ri=1;ri<=2;ri++){ scanf(“%d”,&n); for(i=0;i

scanf(“%d”,&a[i][j]); flag=0;

for(i=0;i

if(a[i][col]=n){

printf(“a[%d][%d]=%d#”,i,col,a[i][col]); flag=1; }

}

if(!flag)printf(“NO#”);

} }

5. 输入how are you?<回车>后,下列程序的输出结果是_________________。 # include void main() { int word; char ch;

word=0;

while((ch=getchar())!=???){ if(ch==? ?)word=0; else if(word==0){ word=1;

if(ch<=?z?&&ch>=?a?) ch=ch-?a?+?A?;

}

putchar(ch); } }

6.假设文本文件a.txt中存放了下列数据: one?two?1234?output?

文本文件b.txt中存放了下列数据: one?two?1204?output?

下列程序的输出结果是_________________。 # include # include void main() {int count; char ch1,ch2; FILE *f1,*f2;

If((f1=fopen(“a.txt”,”r”))==NULL){

Printf(“Can?t open file :%s\\n”,”a.txt”); Exit(0); }

If((f2=fopen(“b.txt”,”r”))==NULL){

Printf(“Can?t open file :%s\\n”,”b.txt”); Exit(0); }

count=0;

while(!feof(f1)||!foef(f2)){ ch1=fgetc(f1); ch2=fgetc(f2); if(ch1!=ch2){

printf(“%c#%c#”,ch1,ch2); printf(“%d#”,count); break;

}

if(ch1==???) count++; }

fclose(f1);fclose(f2); }

四、程序填空题(每空2分,共30分)

7. 输入1个正整数n,计算并输出s的前n项的和。