1、期中测验1单项选择=题号:6172若已定义x和y为 double 类型,则表达式x=1,y=x+3/2 的值是().A、1B、2C、2.0D、2.5答案:C题号:6124已知字母A的ASCII码为十进制数65,且c为字符型,则执行语句c=A+6-3;后,c中的值为:().A、不确定的值B、DC、dD、c答案:B题号:6214有以下程序:#includemain()int x;scanf(%d,&x);if(x=3);else if(x!=10)printf(%dn,x);程序运行时,输入的值在哪个范围才会有输出结果.A、大于3且不等10的整数B、小于3的整数C、大于3或等于10的整数D、不等于
2、10的整数答案:A题号:6280已定义float x=1.25,y=3.37;根据下面的输出结果,正确的输出语句是().y+x=4.62,y-x=2.12A、printf(y+x=%5.2f,y=%5.2fn,y+x,y-x);B、printf(y+x=%.2f,y-x=%.2fn,y+x,y-x);C、printf(y+x=%f,y-x=%fn,y+x,y-x);D、printf(y+x=%6.2f,y-x=%6.2fn,y+x,y-x);答案:B题号:7799有以下程序#includemain()char c1=1,c2=2;c1=getchar ;c2=getchar ;putchar
3、c1;putchar c2;当运行时输入:a后,以下叙述正确的是().A、变量c1被赋予字符a,c2中,仍是原有字符2B、变量c1被赋予字符a,c2中,将无确定值C、程序将等待用户输入第2个字符D、变量c1被赋予字符a,c2被赋予回车符答案:D题号:7439对以下说明语句 int a10=6,7,8,9,10;的正确理解是().A、将5个初值依次赋给a6至a10B、将5个初值依次赋给a0至a4C、因为数组长度与初值的个数不相同,所以此语句不正确D、将5个初值依次赋给a1至a5答案:B题号:8001已知a,b,c,d为int型变量,若从键盘输入:1,3,5,7,使a的值为1,b的值为3,c的值为
4、5,d的值为7,以下选项中正确的输入语句是().A、scanf(%2d%2d%2d%2d,&a,&b,&c,&d);B、scanf(%d %d %d %d,&a,&b,&c,&d);C、scanf(%d,%d,%d,%d,&,&j,&k,&d);D、scanf(a=%d,b=%d,c=%d,d=%d,&a,&b,&c,&d);答案:C题号:7836假定有以下变量定义:int k=7,x=12;,则能使值为3的表达式是:()A、x%=(k%=5)B、x%=k-k%5C、x%=(k-k%5)D、(x%=k)-(k%=5)答案:D程序设计=题号:6838/*-【程序设计】-功能:判断m是否为素数。-
5、*/#include stdio.hvoid bky(); int fun(int m) /*Begin*/ /* End */ main() int m,k=0; for(m=100;m200;m+) if(fun(m) printf(%4d,m); k+; if(k%5=0) printf(n); printf(k=%dn,k); bky();void bky() FILE *IN,*OUT; int iIN,iOUT,i; IN=fopen(in.dat,r); if(IN=NULL) printf(Please Verify The Currernt Dir.It May Be Cha
6、nged); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Please Verify The Current Dir. It May Be Changed); for(i=0;i10;i+) fscanf(IN,%d,&iIN); iOUT=fun(iIN); fprintf(OUT,%dn,iOUT); fclose(IN); fclose(OUT); 示例代码:int i,k=1; if(m=1) k=0; for(i=2;im;i+) if(m%i=0) k=0; return k;程序填空=题号:6527/*- 【程序增空】-功能:根据以下函数关
7、系,对输入的每个x值,计算出相应的y值。 x | y -|- x0 | 0 -|- 0x10 | x -|- 10x20 | 10 -|- 20x40 | -0.5x+20 -请在程序的下划线处填入正确的内容,并把下划线删除,使程序得出正确的结果。注意:不得增行或删行,也不得更改程序的结构!-*/#include void main( ) int x,c; float y; scanf(%d,&x); /*FILL*/ if (_) c=-1; /*FILL*/ else c=_; switch(c) case -1: y=0;break; case 0: y=x; break; case 1
8、: y=10; break; case 2: /*FILL*/ case 3: y=-0.5*x+20;_; default: y=-2; /*FILL*/ if (_) printf(y=%f,y); else printf (errorn);答案:位置 1:x0位置 2:x/10位置 3:break位置 4:x40 【或】 y!=-2 【或】 c=3 【或】 x40|y!=-2|cz) min=z;/*FILL*/ _;答案:位置 1:double z位置 2:min位置 3:xx位置 4:return min 【或】 return (min) 【或】 return(min)程序改错=题号
9、:6399/*- 【程序改错】-题目:任意输入一个字符,如果是小写字母以大写字母输出, 是大写字母以小写字母输出;否则,按原样输出。 程序中共有4条错误语句,请改正错误。-注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/#include main() char ch; printf(Enter ch:);/*ERROR*/ ch=getchar(r); /*ERROR*/ if(ch=a&ch=A&ch=97&ch=a&ch=A&ch=65&ch=90)位置 4:else putchar(ch);题号:7286/*- 【程序改错】:只允许修改错误代码,其他代码不允许修改!-功能:一
10、个整数,它加上100后是一个完全平方数,再加上168又 是一个完全平方数,请问该数是多少?-*/#include #include stdio.hvoid main() long int i,x,y,z; /*ERROR*/ for (i=1;i100000;i+) /*ERROR*/ x=sqrt(i+100) y=sqrt(i+268); /*ERROR*/ if(x*x=i+100|y*y=i+268) printf(n%ldn,i); 答案:位置 1:for (i=1;i100000;i+)位置 2:x=sqrt(i+100);位置 3:if(x*x=i+100&y*y=i+268)题
11、号:6982/*- 【程序改错】:只允许修改错误代码,其他代码不允许修改!-功能:输出Fabonacci数列的前20项,要求变量类型定义成浮点型, 输出时只输出整数部分,输出项数不得多于或少于20。-*/#include stdio.hvoid fun() int i; float f1=1,f2=1,f3; /*ERROR*/ printf(%8d,f1); /*ERROR*/ i=1; while(i=20) f3=f1+f2; /*ERROR*/ f2=f1; /*ERROR*/ f3=f2; i+; printf(%8.0f,f1); printf(n);void main() fun
12、();答案:位置 1:printf(%8.0f,f1); 【或】 printf(%f,f1); 【或】 printf(%8f,f1);位置 2:i=2;位置 3:f1=f2;位置 4:f2=f3;题号:5029/*-【程序改错】-有一数组内放10个整数,要求找出最小数和它的下标,然后把它和数组中最前面的元素即第一个数对换位置.-*/#include stdio.hmain( ) int i,a10,min,k=0; printf(n please input array 10 elementsn); for(i=0;i10;i+) /*ERROR*/ scanf(%d, ai); min=a0
13、;/*ERROR*/ for(i=2;imin) min=ai; k=i; ak=a0; a0=min; printf(n after eschange:n); for(i=0;i10;i+) printf(%3d,ai); printf(nk=%dnmin=%dn,k,min);答案:位置 1:scanf(%d,&ai); 【或】 scanf(%d,a+i);位置 2:for(i=1;i10;i+) 【或】 for(i=0;i10;i+) 【或】 for(i=1;i=9;i+) 【或】 for(i=0;i=9;i+) 位置 3:if(aiai)题号:7895/*- 【程序改错】:只允许修改错
14、误代码,其他代码不允许修改!-功能:根据整型形参 m,计算某一数据项的值。 y = 1/(100*100)+1/(200*200)+1/(300*300)+ +1/(m*m)例如:若m = 2000,则应输出: 0.000160。-*/#include #include /*ERROR*/fun ( int m ) double y = 0, d ; int i ; /*ERROR*/ for( i = 100, i = m, i += 100 ) d = (double)i * (double)i ; /*ERROR*/ y += 1.0 d ; return( y ) ; void main( ) int n = 2000 ; printf( nThe result is %lfn, fun ( n ) ) ;答案:位置 1:double fun ( int m )位置 2:for( i = 100; i = m; i += 100 )位置 3:y += 1.0 / d ; 【或】 y =y+ 1.0 / d ;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1