《上海2009年计算机二级考试题(c语言).doc》由会员分享,可在线阅读,更多相关《上海2009年计算机二级考试题(c语言).doc(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date上海2009年计算机二级考试题(c语言)1单选1单选设有定义int a10; 则合法数组元素的下标范围为_设有定义:int x=10,y=20,z=30; 则执行下列语句后的结果是_if ( xy ) z=x;x=y; y=z;printf(%d,%d,%d,x, y, z );执行下列语句序列后,不可能出现的运行结果是_int n; scanf( %d, &n);
2、switch ( n ) case 1: case 2: putchar(X); case 3: case 4: putchar(Y); break; default: putchar(Z); 2填空 设有以下程序段,则执行完该程序段后,变量 i 的值是_int i;char s=Hello!, *p=s;for( i=0; *(p+i)!=0; i+ );阅读以下程序并写出运行结果_ #include main() int k,n=0;for ( k=1; k=1000; k+ )if ( k%3=0 & k%5=0 )printf( %d , k );n+;if ( n=3 ) break
3、;3程序填空以下程序输入n和n个大于1的正整数,输出其中素数。如输入:5 19 93 11 37 15则输出:19 11 37例示说明:先输入n为5,再输入5个正整数,输出5个整数中的素数#include void main()int n, a, i, j, ct;scanf( %d, &n );for ( i=0; _(1)_; i+ )_(2)_;scanf( %d, &a );for( j=2; ja; j+ )if ( _(3)_ )ct+;if ( ct=0 )printf( %d , a );printf( n );以下程序从文件“student.txt”读取学生的学号、姓名、平时
4、成绩和考试成绩,再从键盘上输入一个成绩,将所有考试成绩达到或超过该成绩的学生数据写到新的文本文件“studentD.txt”。文件的最后一行为0表示学生数据结束。设文件student.txt的内容为101 Zhao9558103 Qian7581105 Sun9991107 Li 80670运行时键盘输入:80则生成新文件studentD.txt的内容为:103 Qian 75 81105 Sun 99 910例示说明:student.txt中考试成绩在80分以上的Qian与Sun信息写到studentD.txt源程序:#include void select( FILE *fp1, FILE
5、 *fp2, int x )int num, score1, score2;char name20;while ( 1 )num = 0;fscanf( fp1, %d%s%d%d, &num, name, &score1, &score2 );if ( num = 0 )_(1)_;if ( _(2)_ )fprintf( fp2, %3d %-7s %3d %3dn, num, name, score1, score2 );fprintf( fp2, 0 );void main()FILE *fp1, *fp2;int x;fp1 = fopen( student.txt, r );fp2
6、 = fopen( studentD.txt, _(3)_ );if ( fp1=NULL | fp2=NULL ) /* 文件打开失败 */printf( File Open Error!n );return;scanf( %d, &x );select( _(4)_ );fclose( fp1 );fclose( fp2 );以下程序输入一个10进制整数,转换为16进制,计算16进制的各个位数,并从高位到低位依次输出。如输入:687则输出:2 A F例示说明:10进制687等于16进制2AF,输出时2、A、F中间包含空格源程序:#include void main()int a10, i,
7、 n;scanf( %d, &n );for ( i=0; n0; i+ )ai = _(1)_;n /= 16;for ( i-; _(2)_; _(3)_ )printf( %X , ai );三、程序调试题(本大题2小题,第1题4分,第2题6分,共10分)1. 程序调试题1(D_3_1.C)调试要求:下列程序不能得到正确的结果,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*/字样的注释),使其运行能得到正确的结果。将结果(包括D_3_1.c文件和D_3_1.exe文件)保存到目录C:KS中。功能说明:以下程序计算并输出等差数列的累加和,数列的首项为a0,公差为d,项数为n。如
8、输入:-3 5 4则输出:sumx=18例示说明:-3为首项,5为公差,4为项数,前4项之和为18原程序(见C:KSD_3_1.C):#include int sumx( int a0, d, n )int i, k, s=0;k = a0;for ( i=0; in; i+ )s += k;k += d;return s;void main()int a0, d, n;scanf( %d%d%d, &a0, &d, &n );printf( sumx=%dn, sumx(a0,d,n) );2. 程序调试题2(D_3_2.C)调试要求:下列程序有3处错误,请按题中的功能要求,在不改变程序结构
9、(不增加、删除语句,不调整语句顺序)的情况下调试并修改该程序(在所修改语句后加/*/字样的注释),使其运行能得到正确的结果。将结果(包括D_3_2.c文件和D_3_2.exe文件)保存到目录C:KS中。功能说明:以下函数length返回字符串中字母A到字母Z所包含字符的长度。主程序输入一行字符串,调用length函数输出该字符串中大写字母A到Z的子串长度。如输入:Z2009-AShanghaiZ则输出:Length=8例示说明:从A到Z的子串为Shanghai,其长度为8原程序(见C:KSD_3_2.C):#include int length( char *p )char *q, *r;fo
10、r ( q=p; *q!=0 | *q!=A; q+ );for ( r=q; *r!=0 & *r!=Z; r+ );return r-q;void main()char str81;int n;gets( str0 );n = length( str );printf( Length=%dn, n );五、编程题(本大题2小题,每题18分,共36分)1编程题1(D_5_1.C)编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括D_5_1.C文件和D_5_1.exe文件)保存到目录C:KS中。功能说明:键盘输入5个整数,按由小到大的顺序排序后输出。如输入:10 0 20 5 31则输出:5 0 10 20 312编程题2(D_5_2.C)编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括D_5_2.C文件和D_5_2.exe文件)保存到目录C:KS中。功能说明:键盘输入正整数n,计算并输出的值,输出结果保留6位小数。如输入:10则输出:0.645635-