四、阅读分析题(本大题共6小题,每小题5分,共30分) 30.从键盘输入字符A时,写出下面程序的运行结果。(注:字符A的ASCII码是65) #include"stdio.h" main( ) { char ch; ch=putchar(getchar( ) ); printf(",%d,%o,%c",ch+1,ch+1,ch+32); } 31.阅读下面程序: void main(void) { int s=0,n=0,x; label: scanf("%d",&x); if(x>0){ s+=x; n++; printf("s=%d,n=%d,even=%f\n",s,n,1.0,*s/n); } if(x!=0) goto label; else printf("good bye!"); } 当依次输入12 -3 -6 5 13 0↙时,写出程序的运行结果。 32.阅读下面程序,写出程序的运行结果。 char a [ ]={'9','8','7','6','5','4','3','2,'1','0','\0'}; void main (void) { int i =8,j; for(j=0;j<4;j++) printf("%s\n",&a[i -j ]); } 33.请写出下面程序的运行结果。 long fun (int k ) { long fac; if(k= =0) return 1; else { fac=k* fun(k-1); printf("fac=%ld\n",fac); } return fac; } void main(void) { int n=3; printf("result=%ld\n",fun(n+1)/n); } 34.阅读下面程序,写出运行结果。 #include<stdio.h> #include<string.h> void f(char *s) { char *t, c, *p=s; for(t=s+strlen(s)-1;s<t;s++,t――) { c=*s,*s=*t,*t=c; printf("%s\n",p); } } void main (void) { char a [20]="abcdefg"; f(a); } 35.阅读下面程序段,说明其功能: int x, y=0,k; FILE* fp; fp=fopen("data.txt","rb"); for(k=0;k<5;k++) fread(&x,sizeof(int),1,fp),y+=x; printf("%d,"y); fclose(fp); 五、程序设计题(本大题共2小题,每小题12分,共24分) 36.从键盘输入10个整数并依次赋给整型数组中的元素,然后求该数组中值为正数的元素 的累加和并输出该累加和。 37.在c盘根目录下有一个ASCII码文件month.dat,文件中有12个字符串分别为英文1~12 月的名字,现从键盘上输入一个表示月份的整数,输出该月份的名字。若输入的整数不在1~12之间,则打印“Illegal month”。 |