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

}

c[n]='\\0';puts(c); }

8. 下列程序的输出结果是_________________。 file.txt文件存放数据为A1B2C3 #include #include void main()

{FILE *fp;int n,s=0;char ch;

if((fp=fopen(\

{printf(\不能打开!\\n\fscanf(fp,\while(ch!=EOF) {s+=ch+n;

fscanf(fp,\}

fclose(fp);

printf(\}

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

3. 以下程序不用第三个变量,也不用位运算符,实现将两个数进行对调的操作。

# include void main() { int a,b;

scanf(“%d%d”,&a,&b); printf(\ a= (1) ; b= (2) ; a= (3) ; printf(\ }

4. 输入一个十进制整数,将它对应的二进数的各位反序,形成新的十进制数输出。

如: 13?1101?1011?11 如: 10?1010?0101?5 # include void main() { int x,y,t;

printf(“输入一个十进制数:”); scanf(“%d”,&x); y=0;

while( (4) ){ t=x%2;

(5) ; x=x/2;

}

printf(“新的十进制整数为%d\\n”,y); }

3. a是一个6×6的矩阵,本程序输出以下结果:

1 2 3 4 5 6

1 1 2 3 4 5 1 2 1 2 3 4 1 3 3 1 2 3 1 4 6 4 1 2 1 5 10 10 5 1 # include void main() { int a[6][6],i,j; for(i=0;i<6;i++)

{for(j=0;j<6;j++)

{if( (6) ) a[i][j]=1;

else if(i

printf(“\\n”); } }

4. 以下程序分别在a数组和b数组中放入an+1和bn+1个由小到大的有序数,程序把两个数组中的数按由小到大的顺序归并在c数组中 # include void main()

{int a[10]={1,2,5,8,9,10},an=5; Int b[10]={0,3,4,6,7,12},bn=5; int i,j,k,c[20],max=9999; i=j=k=0;

while((a[i]!=max)||(b[j]!=max))

if(a[i]

5. 完成以下程序:截取字符s中从第m个位置开始的n个字符,返回所截字符串的首地址。 static char sub[20]; void main()

{ static char s[]=\ char *cut(char *ss,int m,int n),*p; p=cut(s,3,4); printf(“%s\\n”,p); }

char *cut(char *ss,int m,int n) {int i;

for(i=0;i

sub[i]= (13) ; sub[i]='\\0';

return (14) ; }

6. 下面程序是用来从键盘输入十个整数,然后求出其中的最小值。 void lookup(int *t,int *a,int n) {int k;

*a=t[0];

for(k=1;k

if (15) ) *a=t[k]; }

void main() {int table[10];

int k,min,*p=&table[k]); for(k=0;i<10;k++)

scanf(“%d”,&table[k]);

lookup( (16) , (17) ,10); printf(“min=%d\\n”,min);

7. 下面程序的功能是统计文件”file.txt”中的字符。 #include void main()

{FILE *fp;int count=0;

if((fp=fopen(\

{printf(\不能打开!\\n\while( (18) ) {fgetc(fp); (19) ; };

printf(\ (20) ; }

2006试卷答案 一.单项选择题(每题1分,共10分)

1.D 2.D 3.D 4.D 5.B 6.B 7.A 8.D 9.D 10.D

二、填空题(每题2分,共20分)

17. ch>=?0?&&ch<=?9? 18. -12 19. 1 20. -17 21. 8 22. 3 3 23. 2 24. w,one 9. 153

10 typedef int pt[100];

三、程序阅读题(1-6题4分,7-8题3分,共30分)

4. a=2,b=1 5. 8 6. 1 4 3 4 5 4. abcde

abcd abc ab a

5. you&me

6. 2 1 2 1 1

7. 0 6 11 12345678 8. 204

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

(1) ?a+b 或 ?a-b (2) ?a-b 或 ?a+b (3) a-b; (5) y=y*2+t (6) i==j||j==0 (7) a[i][j-1]+1

(8) a[i-1][j-1]+a[i-1][j] (9) a[i] (10) i++ (11) b[j] (12) j++

(13) *(ss+m+i-1) (14) sub (15) *a>t[k] (16) table

(17) p或&min (18) !feof(fp) (19) count++ (20) fclose(fp)

(4) x!=0