C语言上机题库百科园第章南信大.doc

上传人:scccc 文档编号:13587895 上传时间:2022-01-19 格式:DOC 页数:35 大小:284KB
返回 下载 相关 举报
C语言上机题库百科园第章南信大.doc_第1页
第1页 / 共35页
C语言上机题库百科园第章南信大.doc_第2页
第2页 / 共35页
C语言上机题库百科园第章南信大.doc_第3页
第3页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C语言上机题库百科园第章南信大.doc》由会员分享,可在线阅读,更多相关《C语言上机题库百科园第章南信大.doc(35页珍藏版)》请在三一文库上搜索。

1、1. 为表示关系xyz,应使用的表达式是A. (x=y)&(y=z)B. (x=y=z)C. (x=y)AND(y=z)D. (x=y)&(y=z)2. 有以下程序main() int i;for(i=0; i3; i+) switch(i) case 1: printf(%d, i);case 2: printf(%d, i); default : printf(%d, i); 执行后输出结果是3. 对 for( 表达式 1; ; 表达式 3) 可理解为() ( 表达式 1;1; 表达式 3)( 表达式 1;0; 表达式 3)( 表达式 1; 表达式 1; 表达式 3)( 表达式 1; 表达

2、式 3; 表达式 3)4. 若i为整型变量,则以下循环执行次数是()for(i=2;i=0;) printf(%d,i-);次次C. 无限次次5. 有以下程序段int n=0,p;doscanf(%d,&p);n+;while(p!=12345&n3);此处do-while循环的结束条件是。的值等于12345并且n的值大于等于3的值不等于12345并且n的值小于3的值不等于12345或者n的值小于3的值等于12345或者n的值大于等于36. 有以下程序段int n=0,p;doscanf(%d,&p);n+;while(p!=12345&n3); 以下描述中正确的是()。循环中, 根据情况可以

3、省略 whileB. 由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句循环由do开始,用while结束,在while(表达式)后面不能写分号D.在do-while循环体中,一定要有能使while 后面表达式的值变为零(假)的操作7. 执行语句 for(i=1;i+bc) printf(%dn,d); else if(c-1 = d) = 1) printf(%dn,d+1); else printf(%dn,d+2); 执行后输出结果是C .编译时出错main()int x=1,a=0,b=0;switch (x) case 0: b+;case 1: a

4、+;case 2: a+;b+;printf(a=%d,b=%d,a,b);该程序的输出结果是 ( ),2,1,1,010. 以下程序的功能是: 按顺序读入 1 0名学生4门课程的成绩, 计算出每位学生的平均分并输 出,程序如下:main() int n,k;float score,sum,ave;sum=; for(n=1;n=10;n+) for(k=1;k=4;k+ ) scanf(%f,&score); sum+=score;ave=sum/; printf(NO%d:%fn,n,ave);这条语句上述程序运行后结果不正确, 调试中发现有一条语句出现在程序中的位置不正确 是=sum/一

5、 J+=score;(NO%d:%fn,n,ave);11. 运行以下程序后,输出的结果是main() int k = -3;if(k 0) y = 1;else y = 0;A.B.C.D.13. 以下程序的输出结果是main() int x, i;for(i = 1; i b?(bc?1:0):0 ;功能相同的是( ) (ab)&(bc) k=1;else k=0;(ab)|(bc) k=1;else k=0;(ab) k=1;else if(bc) k=1;else k=0;(a=b) k=0;else if(b=c) k=1;15. 为了避免在嵌套的条件语句if-else 中产生二义性

6、,C语言规定: else 子句总是与()配对。A. 其之后最近的 ifB. 其之前最近的 ifC. 缩排位置相同的ifD. 同一行上的if为int类型,进人下面的循环之前,t的值为0while( t=1 )则以下叙述中正确的是 。A. 以上说法都不对B. 循环控制表达式的值为 1C. 循环控制表达式的值为 0D .循环控制表达式不合法17. 以下程序段的输出结果是int k, j, s;for(k = 2; k 6; k+, k+) s = 1;for(j = k; j 6; j+)s += j;printf( “%dn”, s);18. 语句while(!E);中的表达式!E等价于()。!=

7、1= =0=1!=019. 以下程序段的输出结果是int x= 3;do pritnf(“%3d”, x -=2); while (!(-x);A. 死循环-2020. 以下程序的运行结果是()。main()int i=1,sum=0;while(ib) c=a,a=b,b=c;(ab) c=a,a=b,b=c;(ab) c=a;a=b;b=c;(ab) c=a;a=b;b=c;22. 以下程序中,while循环的循环次数是main()int i=0;while(i10)if(ib)a=b; if(ac)a=c;则a的值为()。B. 不一定25. 有以下程序,若想从键盘上输入数据,使变量m中的

8、值为123, n中的值为456, p中的值为 789,则正确的输入是( )#includeint main()int m,n,p;scanf(m=%dn=%dp=%d,&m,&n,&p); printf(%d%d%dn,m,n,p);return 0;=123 n=456 p=789 =123n=456p=789456 789=123,n=456,p=78926. 有以下程序main()int i=1,j=1,k=2;if ( j+|k+ ) &i+)printf(%d,%d,%dn,i,j,k);执行后输出结果是,2,2,2,3,1,2,2,127. 以下程序段的输出结果为()。for(i=

9、4;i1;i-) for(j=1;ji;j+) putchar(#);A. #B. 无C. #D. #28. 有如下程序 main() float x=,y; if (x)y=; else if ( x)y=x; else y=;printf(%fn,y ) ;该程序的输出结果是29. 判断两个字符串是否相等 , 正确的表达方式是 (s1=s2)(s1= =s2)(strcmp(s1,s2)=0)(strcmp(s1,s2)= =0)30. 若x是int类型变量,以下程序段的输出结果是 for(x = 3; x 6; x+)printf( (x%2)?(“*%d”):( “#%d n”),x)

10、;A.B.C.D.语言中 ,switch 后的括号内表达式的值可以是A. 只能为整型和字符型B .只能为整型C. 任何类型D. 只能为整型 , 字符型 , 枚举型32.设j和k都是int类型,则下面的for循环语句()。for(j=0,k=0;jbc)a=b; else a=c;贝 Ua 的值为()。34. 为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:else总与()配对A. 同一行上的 ifB. 其之后最近的ifC. 其之前最近的未配对的ifD. 缩排位置相同的if35. 以下不正确的 if 语句形式是()。(xy&x!=y);(x=y) x+=y;(x!=y) scan

11、f(%d,&x) else scanf(%d,&y);36. 结构化程序设计所规定的三种基本控制结构是()A. 树形、网形、环形B. 输入、处理、输出C. 主程序、子程序、函数D. 顺序、选择、循环37. 以下程序的输出结果是main() int y = 10for(; y 0; y -) if(y % 3 = 0) pritnf(“ %d” , -y);continue;38. 以下程序的执行结果是 main() int x = 0, s = 0;while( !x != 0 ) s += +x;printf( %d ,s ); A. . 无限循环D. 语法错误a=1,b=2,c=3; if

12、(ac)b=a;a=c;c=b;贝Uc 的值为()。C. 不一定40. 以下叙述正确的是()。 语句构成的循环不能用其它语句构成的循环来代替 .B. 用do-while语句构成的循环,在while后的表达式为零时结束循环C. 用do-while语句构成的循环,在while后的表达式为非零时结束循环 语句构成的循环只能用break语句退出.41. 假定所有变量均已正确定义,下列程序段运行后x的值是()。k1=1;k2=2;k3=3;x=15;if(!k1) x-; else if(k2) x=4;else x=3;42. 有以下程序 , 程序运行后的输出结果是 ( ) #include int

13、main()int i,j,m=1; for(i=1;i0;j-) if(i*j3) break;m*=i*j;printf( “m=%dn”,m);return 0;=2=6=4=543. 以下 for 循环的执行次数是 for(x=0,y=0;(y=123)&(x4);x+); () 次B. 是无限循环次D. 循环次数不定44. 下列程序的输出结果是()。main()int x=1,y=0,a=0,b=0;switch(x)case 1: switch(y) case 0:a+;break; case 1:b+;break;case 2:a+;b+;break;case 3:a+;b+;b

14、reak;printf(a=%d,b=%dn,a,b);=2,b=1=2,b=2=1,b=0=1,b=145. 有以下程序,当执行程序时,按下列方式输入数据(从第1列开始,CR代表回车,注意: 回车也是一个字符)1234则输出结果是 (B)#include int main()char a,b,c,d;scanf(%c%c,&a,&b);c=getchar(); d=getchar();printf(%c%c%c%cn,a,b,c,d);return 0;34346. 以下程序的运行结果是()。 main() int n; for(n=1;n+y;x=i+) i=x;(i=10;i-) sum

15、+=i;49. 从循环体内某一层跳出 , 继续执行循环外的语句是 语句 语句 语句D. 空语句50. 下列程序的输出为()。main() int y=10;while(y-); printf(y=%dn,y);构成无限循环=0=-1=151. 有以下程序 , 程序运行后的输出结果是 ( )#include int main()int a=1,b=2;while(a0|E0)C. (!E=0)D. (E!=0)53. 以下程序段的输出结果是int i, j, m = 0;for(i = 1; i = 15; i += 4)for(j = 3; j = 19; j += 4) m+; printf

16、( “%dn”, m);54. 执行下列语句后的输出为()。int j=-1;if(j=1) printf(*n);else printf(%n);A. %cB. 有错,执行不正确C. *D. %55. 以下程序的执行结果是 .main() int num = 0;while( num = 2 ) num+; printf( %d,num ); ,2,3, ,2,3,4, ,2, ,1,256. 下面程序的运行结果是#include main() int y=10;doy-;while( -y ) ;printf(%dn,y-);57. 若有定义语句 int a,b;double x; 则下列

17、选项中没有错误是( ) (int)(x)%2)case :a+;break;case :b+;break; default:a+;b+; (int)x%2)case 0:a+;break;case 1:b+;break; default:a+;b+;(x%2)case 0:a+;break;case 1:b+;break; default:a+;b+;(int)x%case 0:a+;break;case 1:b+;break; default:a+;b+;58. 设a、b和c都是int变量,且a=3, b=4, c=5;则以下的表达式中,值为0的表达式是 |b+c&b-c=bC. !(a j

18、 共执行了多少次#include main()int i = 0, j = 10, k = 2, s = 0;for( ; ; )i += k;if(i j)printf( “%dn”, s);break;s += i;循环结束的条件是()(fabs(t)1e-5)if(!s/10)break;(t)1e-5&!s/10(t)=1e-5&t-10&s1010=062. 以下叙述正确的是 :A. 用do-while构成循环时,只有在while后的表达式为非零时结束循环 语句构成的循环不能用其它语句构成的循环来代替。C. 用do-while构成循环时,只有在while后的表达式为零时结束循环 语句

19、构成的循环只能用 break 语句退出。63. 以下程序的输出结果是 main() int i, sum;for(i = 1; i 6; i+) sum += i;printf( “%d n” sum); B. 不确定64. 有以下程序 , 程序运行后的输出结果是( ) #include int main()char b,c; int i; b=a; c=A; for(i=0;i10;i+)s=6; m:if(s100) exit(0); else s-=2; goto m: 判断char型变量c是否为大写字母的C的表达式是A. A=c=ZB. ( A=c)C. (c= A)&(c= A)&(

20、c= Z) 下列程序的输出结果是()。 main() int x=1,y=0,a=0,b=0;switch(x)case 1:switch(y)case 0:a+;break;case 1:b+;break;case 2:a+;b+;break;case 3:a+;b+;break; printf(a=%d,b=%dn,a,b);=2,b=1=1,b=0=2,b=2=1,b=1 下面有关 for 循环的正确描述是()。循环是先执行循环循环体语句 , 后判断表达式B. 在for循环中,不能用break语句跳出循环体 循环只能用于循环次数已经确定的情况 循环的循环体语句中 , 可以包含多条语句 ,

21、 但必须用花括号括起来 假定所有变量均已正确定义,下面语句段执行后的x的值是a = b = c = 0; x = 35;if(!a) x-; else if(b) ; if(c) x = 3; else x = 4;while 后一对圆括号在C语言中,为了结束由while语句构成的循环, 中表达式的值应该为()。D. 非0有以下程序 , 程序执行后的输出结果是 ( )#include int main()int y=10;while(y-);printf( “y=%dn”,y);return 0;=-1=1构成无限循环=0有以下程序 , 程序运行后的输出结果是( )#include int m

22、ain()int a=1,b=0;if(!a) b+;else if(a=0) if(a) b+=2;else b+=3;printf(%dn,b);return 0;有输入语句:seanf(a=%d,b=%d,c=%d,&a,&b,&c);为使变量a的值为1, b的值为3, c的值 为2,则正确的数据输入方式是()。=1 b=3 c=2 /=1,b=3,c=2 /,3,2 /程序段: int x=12;double y=;printf(“%d%8.6f” , x , y) ;的输出结果是( )若变量已正确定义,有以下程序段i=0;do printf( “%d ,” , i); while(i

23、+);printf( “%d n” , i);其输出结果是 ( ),0B.程序进入无限循环,1 ,1 下列条件语句中输出结果与其他语句不同的是( )(a) printf(%dn,x); else printf(%dn,y); (a=0) printf(%dn,y); else printf(%dn,x); (a=0) printf(%dn,x); else printf(%dn,y); (a!=0) printf(%dn,x); else printf(%dn,y); 有以下程序 , 程序运行后的输出结果是 ( ) #include int main() int x=1,y=0;if(!x)

24、y+;else if(x=0)if (x) y+=2;else y+=3;printf(%dn,y);return 0;有以下程序段char name20;int num; scanf(name=%s num=%d,name;&num);当执行上述程序,并从键盘输入:name=Lili num=1001回车后,nam的值()num=Lili =Lili num=1001 执行下列程序片段时输出的结果是( ) int x=13,y=5;printf(%d,x%=(y/=2);已知有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10, 20, A和B,当从第一列开始输入数据时,正确的数

25、据输入方式是( )。int a1,a2; char c1,c2;scanf(%d%c%d%c,&a1,&c1,&a2,&c2);A. 10A20B/B. 10A20 B /C. 10 A20B/D. 10 A 20 B /若定义x为double型变量,则能正确输入x值的语句是()。(%5.1f,&x);(%f,x);(%lf,&x);(%f,&x);以下程序段中的变量已正确定义for(i=0;i4;i+,i+)for(k=1;k3;k+) printf(“*”); 程序段的输出结果是 ( )A. *B. *C. *D. *有以下程序段 , 以下叙述中正确的是( )int main()while

26、( getchar()!=n);A. 此while语句将无限循环B. 当执行此while语句时,只有按回车键程序才能继续执行C. 当执行此while语句时,按任意键程序就能继续执行() 不可以出现在 while 语句的条件表达式中有以下程序:程序运行后的输出结果是 ( )#include int main()int a=7; while(a-); printf(%dn,a); return 0;if 语句的基本形式是: if( 表达式 ) 语句,以下关于 表达式 值的叙述中正确的是( )A. 必须是正数B. 可以是任意合法的数值C. 必须是整数值D. 必须是逻辑值 设变量均已正确定义并且赋值,

27、以下与其他三组输出结构不同的一组语句是 ( ) =+x; printf(%dn,n);=x+; printf(%dn,n);C. +x; printf(%dn,x);+; printf(%dn,x);若有定义:int a,b;,通过语句seanf( “d;%d,&a,&b);,能把整数3赋给变量a,5付给变量b 的输入数据是 ( ),55;5有以下程序#inelude int main()int a1,a2; ehar e1,e2;seanf(%d%e%d%e,&a1,&e1,&a2,&e2); printf(%d,%e,%d,%e,a1,e1,a2,e2);return 0;若想通过键盘输入

28、,使得al的值为12, a2的值为34, el的值为字符a,e2的值为字符b, 程序输出结果是:12,a,34,b则正确的输入格式是(以下代表空格,CR代表回车),a,34,bC. 12a34b有以下程序 , 程序运行后的输出结果是 ( ) #include int main() int a=1,b=2;for(;a8;a+) b+=a;a+=2;printf( “%d,%d n” ,a,b);return 0;,11,11,18,14若i和k都是int类型变量,有以下for语句for(i=0,k=-1;k=1;k+) printf(*n); 下面关于语句执行情况的叙述中正确的是 ( )A.

29、构成无限循环B.循环体一次也不执行C .循环体执行两次D. 循环体执行一次程序设计/*编写函数fun,它的功能是:求n以内(不包括n)同时能被5与11整除的所有自然数之和的平 方根s,并作为函数值返回。例如,n为1000时,函数值应为s=。注意: 部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语 句。试题程序 :*/#include #include #includedouble fun(int n)Begin*/End*void main()FILE *wf;printf(s=%fn, fun(1000);/*wf=fopen(deb

30、ug,w);fprintf(wf,%lf,fun(1000); fclose(wf);/* 【参考代码】 double fun(int n) double s=;int i; for(i=0;in;i+) if(i%5=0&i%11=0) s=s+i;s=sqrt(s); /*对s求平方根*/return s;P=m!/(n!(m-n)!), 例如,m=12,n=8时,运行结果为。注意: 部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语 句。试题程序 :*/#include #include float fun (int m, int

31、n)Begin*/End*void main ()FILE *wf;printf (p=%fn,fun (12,8) ) ;/*/wf=fopen(debug,w);fprintf (wf,%f,fun(13,8);fclose(wf);七*,【参考代码】int i;double p=;for(i=1;i=m;i+)p=p*i; /*求 m!*/for(i=1;i=n;i+)p=p/i; /*求 m!/n!*/for(i=1;i=m-n;i+)p=p/i;/*求 m!/(n!(m-n)!)*/return p;/*编写函数fun,它的功能是:利用以下所示的简单迭代方法求方程 cos(x)-x=

32、0的一个实根Xn+1=C0S(X n)迭代步骤如下:(1)取X1初值为;x0=x1,把x1的值赋给x0;x1=cos(x0),求出一个新的xl;若x0-x1,的绝对值小于,则执行步骤(5),否则执行步骤(2);(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。程序将输出结果Root=。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若 干语句。试题程序:*/#in elude #in elude float fun() /*Begj n*/ /* End */void mai n()FILE *out;float f

33、=fun (); prin tf(Root=%fn,f);/*out =fope n(debug,w); fprin tf(out,%f,f); felose(out);/* 【参考代码】float x1=,x0;dox0=x1;x仁 eos(x0);while (fabs(x0-x1)=1e-6);return x1;/*输入一个无符号整数,判断该数是否为回文数(注:一个整数,从左向右读和从右向左读都是一样的数,则该数称为回文数,如123321),编写函数fun(),判断给定的数是否为回文数*/#in eludeint fun( int n)/*Begi n*/End* int main()

34、FILE *out;int i,n,k4=123,123321,3443,200;out=fopen(debug,w); scanf(%d,&n);if(fun(n)printf(是回文数! n);elseprintf(不是回文数! n);for(i=0;i4;i+)fprintf(out,%dn,fun(ki);fclose(out);return 0;【参考代码】int m,t=0;m=n;while(m!=0)t=t*10+m%10; m=m/10;if(t=n)return 1;elsereturn 0;/*编写函数fun,函数的功能是:根据以下公式计算s,计算结果作为函数值返回;n通

35、过形参传 入。S=1+1心+2)+1心+2+3)+1心+2+3+ +n)例如,若n的值为11时,函数的值为。注意 : 部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若 干语句。试题程序: */#include #include #include float fun(int n)Begin*/End*void main()FILE *wf;int n;float s;printf(nPlease enter N: );scanf(%d,&n);s=fun(n);printf(The result is:%fn , s);*/ wf=fopen

36、(debug,w); fprintf (wf,%fn,fun(13); fclose(wf);七*/【参考代码】int i,s1=0; /* 定义整型变量 s1, 表示分母 */float s=;/* 定义单精度变量 s, 表示每一项 */for(i=1;i=n;i+) s1=s1+i; /* 求每一项的分母 */s=s+s1; /* 求多项式的值 */return s;/*请编写函数fun,其功能是:将两个两位数的正整数a、b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次 放在c数的个位和百位上。例如,当a=45,b=12,调用该函数后,c=5241。注意 : 部分源程序给出如下。请勿改动main函数和其他函数中的任

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1