C期末复习题2010(答案)

上传人:仙*** 文档编号:142020643 上传时间:2022-08-24 格式:DOC 页数:10 大小:113KB
收藏 版权申诉 举报 下载
C期末复习题2010(答案)_第1页
第1页 / 共10页
C期末复习题2010(答案)_第2页
第2页 / 共10页
C期末复习题2010(答案)_第3页
第3页 / 共10页
资源描述:

《C期末复习题2010(答案)》由会员分享,可在线阅读,更多相关《C期末复习题2010(答案)(10页珍藏版)》请在装配图网上搜索。

1、C语言期末复习题(2010)一、单项选择题:1. 下列变量名中,( b )是不合法的。A、John B、float C、B 43 D、sum2. 以下不正确的C语言标识符是( d )。A、_abc B、MC C、Int D、a.c 3. 以下叙述不正确的是( d )。A、C语言本身没有输入输出语句 B、一个可执行的C源程序必须包含一个main函数C、程序的执行总是从main函数开始执行的D、C程序中的main函数必须放在程序的开始部分4. 以下叙述正确的是( b )A、while语句循环体至少执行一次 B、do-while语句的循环体至少执行一次C、for语句的循环体至少执行一次 D、whil

2、e语句用于循环次数已知的循环5、将字符g赋给字符变量c,正确的表达式是( c )。/g的ASCII值为103A、c=147 B、c=147 C、c=147 D、c=01476. 下列表达式的值为0的是( c )。A、45 B、4/5.0 C、4/5D、 4y);A、1 B、2 C、3 D、程序运行有错误10、当a=1,b=2,c=3,d=1时,执行下面一段程序后,x的值为( a )。if(ab)if(cd) x=1;else x=6;else x=7;A、6 B、3 C、 2 D、111.若要求在if后一对园括号中表示a不等于0的关系,则能正确表示这一关系的表达式是( d ) A、a0 B、

3、!a C、 a=0 D、 a12、对二维数组的定义和初始化,正确说明是( c )A、int a=1,2,3,4,5,6; B、int a2=1,2,3,4,5,6;C、int a3=1,2,3,4,5,6; D、int a2,3=1,2,3,4,5,6;13. 若有说明:int x20; 则对x数组元素的正确的引用是( a )。A、x11-10 B、x20 C、x(5) D、x6.714、若用数组名作为函数调用时的实参,则实际上传递给形参的是( a )。A、数组首地址 B、数组的第一个元素值C、数组中全部元素的值 D、数组元素的个数 15. 描述a 是偶数的表达式是( b )。A、a%2 B、

4、a%2=0 C、a%2!=0 D、a%2=016、已知int i=0; 执行语句while (i+3) ;后,变量i的值为( b )。A、3 B、4 C、5 D、617. 任何复杂的程序,都是由( c )构成。 A、选择结构、顺序结构、过程结构 B、选择结构、循环结构、过程结构C、选择结构、顺序结构、循环结构 D、选择结构、循环结构18、对字符数组s赋值,不合法的一个是( c )。A、char s=Beijing; B、char s20=beijing;C、char s20;s=Beijing; D、char s20=B,e,i,j,i,n,g;19、函数a有2个形参,一个数组x一个变量n对函

5、数形参的说明有错误的是( d )。A、int a(float x,int n) B、int a(float *x,int n)C、int a(float x10,int n) D、int a(float x,int n)20. 下述语句执行后,变量j的值是( b )。 int j=1; while (+j7) ; A、6 B、7 C、 8 D、此为无限循环,其值不定A、6 B、3 C、 2 D、121、下列函数的功能是( b )。fun(char s1,char s2) int i=0;while(s1i=s2i)i+ ; A、字符串比较 B、字符串复制 C、字符串连接 D、字符串反向22.

6、下述循环语句是(d) for(a=0,b=0;a3&b!=3;a+); A、无限循环 B、循环次数不定 C、循环次 D、循环次23. 以下程序段执行后,a3中的值是( b )。int a1=1,a2=2,a3; a3=1.0/a2*a1; A、0 B、0.5 C、1 D、226. 在C语言中,合法的字符常量是( b )。A、084 B、x43 C、ab D、”/0”27. 下列各语句定义了数组,其中哪一个是正确的( d )A、int a2,3; B、char a(30); C、int x; D、int x5=1,2,3;28. 表达式:10!=9的值是( d )。A、true B、非零值 C、

7、0 D、129. 设有如下定义: int x=10,y=3,z; 则语句 printf(“%dn”,z=(x%y,x/y);的输出结果是( d )。A、1 B、0 C、4 D、330、以下一维数组x的正确定义是( d )。A、int x(10); B、int n=10, xn; C、int n;scanf(“%d”,&n);int xn;D、 #define SIZE 10 int xSIZE;31、调用函数strlen(“axyz0ef0g”)的结果是( a)。A、 4 B、 6 C、11 D、 732、写出|x|2的C语言表达式。33表示图中坐标轴上阴影部分的正确表达式是c。X a b c

8、A (x=b)&(x=c)B (x=a)|(b=x=c)C (x=b)&(x=c)D (x=a)&(b=x=1)&(x=200)&(x=1)|(x=200)|(x=1)&(x=200)&(x=1)|(x=200)|(x=210)35、以下能正确计算12310的程序段是c。A)doi=1; s=1;B)doi=1; s=0;s=s*i; s=s*i; i+; i+; while(i=10); while(i=10); C)i=1; s=1;D)i=1; s=0; dos=s*i; dos=s*i; i+; i+; while(i=10); while(i100) break;B for(;);C

9、 int k=0;do +k; while(k=0);D int s=36;while(s); -s;二、填空题:1.下列运算符按优先级别最高的是 ! ,最低的是 += 。+ , , != , ! , & , += 2.下列运算符按优先级别最高的是 ,最低的是 , 。算术运算符,关系运算符, 赋值运算符,& ,| ,!(非),逗号运算符3、若想通过以下输入语句给x赋1、y赋2,则输入数据的形式应该是(x=1,y=2 )。int x,y;scanf(x=%d,y=%d,&x,&y);4、若有char str120, str2 =boy;能把str2中的字符串赋值给str1的函数调用语句是(ctr

10、cpy(s1,s2) )。5已知:x=4.2, y=3.6; 则表达式(int)(x+y)%2/5的值为( 0 )。 。6、若有定义 a=1,b=2,c=3,d=4,m=n=1;则执行表达式(m=ab)&(n=cd)后,m和n的值分别为( 0 ),( 1 )。7、若x=y=5; 则表达式 !(13)(x=y)的值为( 1 )。8、若int i=6, j=0;则执行下列语句后,变量j结果值为(3 )。 switch( i ) case 4: j+; case 5: j+; case 6: j+; case 7: j+; default: j+; 9、y 在内中占( 1 )字节,y在内中占( 2

11、)字节。10、设int a10=1,2,3,4,5,6,7,8,9,10;。则aa0+2的值是 4 。 11、在执行int a 3=1,2,3,4;语句后,a02的值是( 0 )。12、如果a=10,b=2,c=3,d=4, 则条件表达式ab?a:cd?c:d的值为( 3 )。13、写出判断某年y是闰年的逻辑表达式( (y%4=0&y%100!=0 )| y%400=0 )。闰年条件是符合下面二者之一 a. 能被4整除,但不能被100整除。b. 能被4整除,又能被400整除。14、下面程序输出结果是(12BOY )。 #include main() int i; for(i=1;i=3;i+)

12、 switch(i) case 1: case 2: printf(%d,i); break; default:printf(BOY); 15阅读以下程序,写出程序运行的结果_11235_。#include main() int i; int s5=1,1; for(i=2;i5;i+)si=si-2+si-1; for(i=0;i5;i+)printf(%d,si); 16、若从键盘输入2.0,则以下程序输出的结果是0.500000。#include void main() float x,y;scanf(%f,&x);if(x0.0) y=0.0;else if(x0.0)&(x!=2.0

13、)y=1.0/(x+2.0);else if(x10.0) y=1.0/x; else y=10.0; printf(%fn,y);17阅读以下程序,程序运行结果是_3_。#includevoid main() char c=b;int i=4;switch(c) case a:i=1;break; case b:i=2; case c:i=3; break; case d:i=5;printf(%d, i);18、#include main( ) int i; for(i=3;i=1) break;printf(%d,i); 该程序的运行结果是_3,4,5_三、程序填空题1、从键盘上输入3个

14、数a,b,c,要求按从大到小的顺序输出,请填空。#include void main()int a,b,c,t; scanf(%d%d%d,&a,&b,&c); if(ab) t=a;a=b;b=t; if(ac) t=a;a=c;c=t; if(bc) t=b; b=c;c=t;printf(%d,%d,%d, a,b,c);答案:5,4,3 65536,575,5 2、以下程序统计数组中负数的个数,请填写缺少的语句。#include void main() int a10=2,4,0,-5,10,6,-8,9,6,7;int i,count=0;for(i=0; ;i+) if() cou

15、nt+; else continue; printf(%d,count); 答案:i10ai03、以下程序的功能是:输出100以内(不含100)能被3整除且个位数为6的所有整数,请填空#include void main() int i , j ; for (i=0;_ _; i+) j=i*10+6; (_) continue;printf(“%d ”, j); 答案:i10if(j%3!=0)4、把200-300之间不能被3整除的数输出。#includemain() int n;for(n=200;n=300;n+) if() ;printf(%dn,n);答案:n%3=0continue

16、5、以下程序的功能是: 将输入的正整数按逆序输出,例如:若输入135则输出531,请填空。#include void main() int n, s ; scanf(“%d”,&n); printf(“output:”); do s=n%10; printf(“%d”,s); _; while (n!=0) ;printf(“n”);答案:n=n/10四、程序结果题:1、若从键盘输入4.0,则以下程序输出的结果是0.250000。#include void main() float x,y;scanf(%f,&x);if(x0.0) y=0.0;else if(x0.0)&(x!=4.0)y=

17、1.0/(x+4.0);else if(x10.0) y=1.0/x; else y=10.0; printf(%fn,y);2 # include void main( ) int i=0,s=1;do s+=i+;while(i4); printf(%dn,s); 该程序的输出结果是_7_3、以下程序的输出结果是17。#include void main()int i,k,a10;k=5;for(i=0;i10;i+) ai=i;for(i=0;i4;i+) k+=ai*2;printf(%dn,k);4、以下程序的输出结果是。#include void main() int a45=1,

18、2,4,-4,5,-9,3; int b,i,j,i1,j1,n; n=-9; b=0; for (i=0;i4;i+) for (j=0;j5;j+) if(aij=n) i1=i; j1=j; b=1; break if(b) break; Printf(“%d是第%d个元素n”,n,i1*5+j1+1);5、下面程序的输出结果是(3,5,5,5,5 )。#include void main() int a,b,c; b=1; while(b=4) a=b+; c=+b;printf(%d,%d,%d,a,b,c);for(b=2;(a=b)5;b+) ; printf(%d,%d,a,b

19、);五、编程题:1、从键盘输入x,输出y的值(y是一个分段函数)。#include int main()int x,y;printf(x=);scanf(%d,&x);if(x1)y=x;else if(x10)y=2*x-1;elsey=3*x-11;printf(y=%dn,y);return 0;2、输入两个正整数m和n,求其最大公约数和最小公倍数。#include int main()int m,n,k;printf(输入两个数:n);scanf(%d%d,&m,&n);if(mn)k=n;elsek=m;while(k=1)if(m%k=0&n%k=0)break;k-;printf

20、(%d,%d)的最大公约数为:%d,最小的公倍数为:%dn,m,n,k,m*n/k); return 0;3、输入一行字符,分别统计其中英文字母和数字的个数。#include int main()char c;int a=0,d=0;while(c=getchar()!=n)if(c=a&c=A&c=0&c=9)d+;printf(字母个数=%d,数字个数=%dn,a,d); return 0;4、打印出所有的 “ 水仙花数 ” ,所谓 “ 水仙花数 ” 是指一个 3 位数,其各位数字的立方之和等于该数本身。#include int main()int n,g,s,b;for(n=100;n1

21、000;n+)g=n%10;s=n/10%10;b=n/100%10;if(g*g*g*+s*s*s+b*b*b=n)printf(%5d,n);printf(n);return 0;5、从键盘输入的10个整数,放入数组a中,对这10个数进行从小到大排序,请编程。#include int main()int a10,i;void sort(int a,int);printf(请输入10个整数:n);for(i=0;i10;i+)scanf(%d,&ai);sort(a,10);printf(从小到大排序后输出为:n);for(i=0;i10;i+)printf(%d,ai);printf(n); void sort(int a,int n) int i,j,p,t;for(i=0;in-1;i+)p=i;for(j=i+1;jaj)p=j;if(p!=i)t=ai;ai=ap;ap=t;

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!