四、阅读分析题(本大题共6小题,每小题5分,共30分) 30.阅读下面程序,写出运行结果(已知A的ASCII码为65,a的ASCII码为97)。 #include ″stdio. h″ main( ) { int k=100;char m; m=k; putchar(m); printf(″,%d,%c,%o, ″k,m-32,m); } 31.阅读下面程序,并回答问题: main() { int x, y, z, c; scanf(″%d%d%d″,&x, &y, &z); if(x if(x if(x printf(″%d, %d, %d″, x, y, z); } (1)若程序运行时,输入3、2和5,则输出结果是什么? (2)写出程序所实现的功能。 32.阅读下面程序,并回答问题: main( ) { int m, n; m=65; n=14; while(m!=n) { while(m>n)m-=n; while(n>m)n-=m; } printf(″m=%dn″, m); } (1)程序输出结果是多少? (2)外循环执行完一次时,m和n的值分别是多少? (3)将while(n>m)n-=m;语句删除后,程序运行情况如何? 33.阅读下面程序,并回答问题: gcd(int x, int y) { int temp; while (y){temp=x%y; x=y; y=temp;} return x; } main() { int a, b, y; scanf(″%d, %d″, &a, &b); y=gcd(a,b); printf(″最大公约数是:%d″, y); } (1)gcd函数的返回值类型是什么? (2)若将return x写成return y会得到什么样的结果? 34.阅读下面程序,写出运行结果。 mian( ) { char * str[ ]={″Pascal″, ″C Language″, ″Dbase″, ″Cobol″}; int k; for(k=0; k<4;k++) printf(″%sn″, str[k]); } 35.阅读下面程序段,写出输出结果。 struct num { float f1; int j; }u={5.6,8},*p=&u; printf(″%.2f,%dn″,u.f1, u.j); printf(″%.2f,%dn″, (*p).f1,p->j); 五、程序设计题(本大题共2小题,每小题12分,共24分) 36.若有n行n列数组,试编写一程序,分别求出两条对角线元素之和。(从键盘输入n*n个整型数,n≤20) 37.若在c:tclt路径下有一个名为zz.dat的文本文件,它包括10个按升序排列的整数,且每两个数之间用逗号隔开,现要插入一个整数使该序列仍保持升序,并把新序列写入到c:tclt路径下名为zzz.dat的文本文件中。
|