C语言(26次)
- 格式:doc
- 大小:79.00 KB
- 文档页数:10
c语言程序设计教程第二版课后习题答案【篇一:c语言程序设计教程_李含光_郑关胜_清华大学出版社习题答案习题答案[完美打印版]】1.单项选择题(1)a (2)c(3)d (4)c (5)b 2.填空题(1)函数(2)主函数(main)(3)printf() , scanf()第2章习题参考答案1.单项选择题1-5 cbccc 6-10 cdcdc 11-13 dbb 2.填空题(1)1(2)26 (3)6 , 4 , 2 (4)10 , 6(5)3.000000 (6)双精度(double)(7)9 (8)字母,数字,下划线(9)13.700000 (10)11(11)((m/10)%10)*100+(m/100)*10+m%10(12)0 (13)10 ,9 ,11(15)(x0y0)||(x0z0)||(y0||z0)(16)double (17)x==0(18)sqrt(fabs(a-b))/(3*(a+b))(19)sqrt((x*x+y*y)/(a+b))第3章习题参考答案1.单项选择题1-5 cccdd 6-10 bcdbc11-15 bcbbb16 a 2.填空题(1)用;表示结束(2){ }(3)y=x0?1:x==0?0:-1(4)y%4==0y%100!=0||y%400==0(5)上面未配对(6)default 标号(7)while , do while , for(8)do while(9)本次(10)本层 3.阅读程序,指出结果(1)yes(2)*(3)abother(4)28 70(5)2,0(6)8(7)36 (8)1(9)3,1,-1,3,1,-1(10)a=12 ,y=12(11)i=6,k=4 (12)1,-2 4.程序填空(1)x:y , u:z(2)m=n , m!=0,m=m/10(3)teps , t*n/(2*n+1) , printf(“%lf\n”,2*s) (4)m%5==0 ,printf(“%d\n”,k) (5)cx=getchar() , cx!=front , cx(6)double s=0, 1.0/k , %lf (7)s=0 , sgmin, 5.编程题(1). #include stdio.h int main() {double x,y; scanf(%lf,x); if(x1) y=x;else if(x=1.0x10) y=2*x-11; elsey=3*x-11;printf(%lf\n,y); return 0; } (2).#include stdio.h int main() {double x,y,z,min;scanf(%lf%lf%lf,x,y,z); if(xy) min=y; else min=x; if(minz)min=z;printf(min=%lf\n,min); return 0; } (3).#include stdio.h int main() {int y,m,d,flag,s=0,w,i;scanf(%d%d%d,y,m,d);flag=(y%4==0y%100!=0||y%400==0);w=((y-1)*365+(y-1)/4-(y-1)/100+(y-1)/400)%7;for(i=1;i=m;i++) {switch(i) {case 1:s=d;break; case 2:s=31+d;break; case 3:s=59+d;break; case 4:s=90+d;break; case 5:s=120+d;break; case6:s=151+d;break; case 7:s=181+d;break; case8:s=212+d;break; case 9:s=243+d;break; case10:s=273+d;break; case 11:s=304+d;break; case12:s=334+d;break;} }s=(w+s)%7; if(s==0)printf(星期日\n); elseprintf(星期%d\n,s); return 0; }(4).#include stdio.h int main() {float p,r;scanf(%f,p); if(p=10) r=p*0.1;else if(p10p=20) r=10*0.1+(p-10)*0.075; else if(p20p=40)r=10*0.1+10*0.075+(p-20)*0.05; else if(p40p=60)r=10*0.1+10*0.075+20*0.05+(p-40)*0.03;else if(p60p=100)r=10*0.1+10*0.075+20*0.05+20*0.03+(p-60)*0.015; else if(p100)r=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(p-100)*0.01; printf(%f\n,r); return 0; } (5).#include stdio.h int main() {char c;while((c=getchar())!=\n) {if(c=ac=z) c=c-32; putchar(c);}return 0; } (6).#includestdio.h int main() {int m,k=2;printf(输入一个正整数:\n); scanf(%d,m); while(km) if(m%k==0) {printf(%4d,k); m=m/k; } else k++;printf(%4d\n,m); return 0; } (7).#includestdio.h int main() {int a,n,s=0,p=0,i;scanf(%d %d,n,a); for(i=1;i=n;i++) {p=p*10+a; s=s+p; }printf(%d\n,s); return 0; } (8).#includestdio.h int main(){int i,j,k;for(i=1;i=9;i++) for(j=0;j=9;j++) for(k=0;k=9;k++)printf(%5d,100*i+10*j+k); return 0; }(9).#includestdio.h #includemath.h int main() {float a=-10,b=10,x,f1,f2,f; f1=(((2*a-4)*a+3)*a)-6; f2=(((2*b-4)*b+3)*b)-6; do {x=(a+b)/2;f=(((2*x-4)*x+3)*x)-6; if(f*f10) { b=x; f2=f; } else { a=x;f1=f; }}while(fabs(f)=1e-6); printf(%6.2f\n,x); return 0; }(10).#includestdio.h#includemath.h int main() {int n=2;double eps,t,s=0,x;scanf(%lf %lf,x,eps); t=x; s=t;while(fabs(t)=eps) {t=-t*(2*n-3)*x*x/(2*n-2); s=s+t/(2*n); n++; }printf(%d,%lf\n,n,s); return 0; }(11).#includestdio.h int main() {unsigned long s,t=0,p=1; scanf(%u,s); while(s!=0) {if((s%10)%2!=0) {t=t+(s%10)*p; p=p*10; }s=s/10; }printf(%u\n,t); return 0; }第4章习题参考答案1.单项选择题1-5 dddbd 6-10 badcd 11-14 bdab 2.填空题(1)2(2)嵌套,递归(3)全局变量,局部变量,静态变量,动态变量(4)auto , static , register , extern (5)外部变量(6)编译,运行 3.阅读程序,指出结果(1)15(2)5(3)5,4,3 (4)i=5 i=2 i=2 i=4 i=2(5)求水仙花数(6)-5*5*5(7)30 (8)0 10 1 11 2 124.程序填空(1)float fun(float , float) , x+y,x-y, z+y,z-y (2)x , x*x+1 (3)s=0 , a=a+b 5.编程题(1).while(s!=0) #includestdio.h { unsigned int fun(unsigned int);p=p+s%10; int main() s=s/10; { } unsigned int s; return p; scanf(%u,s); } printf(%u\n,fun(s)); (2). return 0;#includestdio.h } #includestdlib.h unsigned int fun(unsignedint s) #includemath.h { void f1(float,float,float,float); unsigned int p=0; void f2(float,float,float,float);【篇二:《c语言程序设计》课后习题答案(第四版)谭浩强】t>1.1什么是计算机程序11.2什么是计算机语言11.3c语言的发展及其特点31.4最简单的c语言程序51.4.1最简单的c语言程序举例61.4.2c语言程序的结构101.5运行c程序的步骤与方法121.6程序设计的任务141-5 #include stdio.hint main ( ){ printf (**************************\n\n);printf( very good!\n\n);printf (**************************\n);return 0;}1-6#include stdio.hint main(){int a,b,c,max;printf(please input a,b,c:\n);scanf(%d,%d,%d,a,b,c);max=a;if (maxb)max=b;if (maxc)max=c;printf(the largest number is %d\n,max);return 0;}第2章算法——程序的灵魂162.1什么是算法162.2简单的算法举例172.3算法的特性212.4怎样表示一个算法222.4.1用自然语言表示算法222.4.2用流程图表示算法222.4.3三种基本结构和改进的流程图262.4.4用n?s流程图表示算法282.4.5用伪代码表示算法312.4.6用计算机语言表示算法322.5结构化程序设计方法34习题36第章最简单的c程序设计——顺序程序设计37 3.1顺序程序设计举例373.2数据的表现形式及其运算393.2.1常量和变量393.2.2数据类型423.2.3整型数据443.2.4字符型数据473.2.5浮点型数据493.2.6怎样确定常量的类型513.2.7运算符和表达式523.3c语句573.3.1c语句的作用和分类573.3.2最基本的语句——赋值语句593.4数据的输入输出653.4.1输入输出举例653.4.2有关数据输入输出的概念673.4.3用printf函数输出数据683.4.4用scanf函数输入数据753.4.5字符数据的输入输出78习题823-1 #include stdio.h#include math.hint main(){float p,r,n;r=0.1;n=10;p=pow(1+r,n);printf(p=%f\n,p);return 0;}3-2-1#include stdio.h#include math.hint main(){float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p1=p*((1+r5)*5);// 一次存5年期p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期 p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次 p5=p*pow(1+r0/4,4*5); // 存活期存款。
C语⾔常⽤词汇汇总1. continue 跳出本次循环,进⾏下⼀次循环 注意continue只能针对for循环和while循环, 不能针对switch选择语句,除⾮switch语句嵌套在for或者while循环中2. return 向调⽤函数返回值或终⽌函数 当函数执⾏return后函数结束,本函数中剩下的所有语句都不在执⾏ 如果返回值为空结束函数,不像调⽤者返回任何值,可⽤来终⽌函数.3. int 整数 4个字节4. short int 短整数 2个字节5. long int 长整数 8个字节6. float 单精度浮点数 4个字节 不能准确存储浮点数7. double 双精度浮点数 8个字节 不能准确存储浮点数8. char 字符 1个字节9. printf() 输出10. scanf() 获取⽤户输⼊11. getchar() 获取⽤户输⼊中的字符12. %d 整形 控制符13. %ld 长整形 控制符14. %f 浮点数 控制符15. %lf 双精度浮点数 控制符16. %c 字符 控制符17. %x ⼗六进制 控制符18. %#X 带0x的⼗六进制更容易辨别输出为16进制 控制符 19. A?B:C 三⽬运算符 如果A表达式成⽴执⾏B否则执⾏C20. if(表达式) 如果21. for(赋值;判断;⾃增) 循环22. while(判断) 循环23. do...while() 先执⾏⼀次再循环判断如果为真,反复循环24. switch(参数) 内部加对应的case 值和default 当传⼊的参数与case后的值相同时执⾏case后⾯的,如果多个都不同则执⾏default25. i++ ⾃增1 但对应的值是i26. ++i ⾃增1对应的值为i+1后的值27. a[2] 数组28. a[2]={1,2} 数组完全初始化29. a[2]={1} 数组不完全初始化30. a[2]; 数组不初始化31. a[2]={0} 数组清零32. a[2][2] ⼆维数组33. void 定义在函数名前表⽰⽆返回值,定义在函数名后的括号中表⽰⽆形式参数33. break 结束当前的⽗循环或switch,在多层循环中只能终⽌最近的⼀个循环34. continue 结束本次循环进⼊下⼀次循环 35. bool 布尔值36. true 真37. false 假 38. sqrt(x) 求x的平⽅根 sqrt求平⽅根 39. abs(x) 求x的绝对值 40. fabs(x) 求浮点数的绝对值41. 。
C语言竞赛练习题目录一、穷举1、求最大数2、高次方数的尾数3、借书方案知多少6、抓交通肇事犯12、平分七筐鱼13、有限5位数14、除不尽的数15、一个奇异的三位数16、位反序数17、求车速18、阿姆斯特朗数19、完全数20、亲密数21、自守数22、回文数23、求具有abcd=(ab+cd)2性质的四位数24、求素数25、歌德巴赫猜想26、要发就发27、素数幻方28、百钱百鸡问题29、斯坦的数学题31、换分币32、三色球问题33、马克思手稿中的数学题34、分数比较、分数之和35、将真分数分解为埃及分数36、列出真分数序列37、计算分数的精确值38、谁是窃贼39、黑与白40、迷语博士的难题41、哪个大夫哪天值班42、区分旅客国籍43、谁家孩子跑最慢44、拉丁方45、填表格46、1~9分成1:2:3的三个3位数47、1~9组成三个3位的平方数48、由8个整数形成奇特的立方体49、减式还原50、乘式还原51、九位累进可除数52、魔术师的猜牌术53、约瑟夫问题、邮票组合54、和数能表示1~23的5个正整数55、可称1~40磅的4块砝码56、10个小孩分糖果57、小明买书61、四方定理63、尼科彻斯定理65、自动发牌66、黑白子交换67、常胜将军二、计算4、数制转换5、打鱼还是晒网7、该存多少钱8、怎样存钱利最大9、捕鱼和分鱼10、出售金鱼11、分数四则运算30、年龄几何58、波松瓦酒的分酒趣题59、波松瓦酒的分酒趣题60、角谷猜想62、卡布列克常数64、回文数的形成1.求最大数问555555的约数中最大的三位数是多少?*问题分析与算法设计根据约数的定义,对于一个整数N,除去1和它自身外,凡能整除N的数即为N的约数。
因此,最简单的方法是用2到N-1之间的所有数去除N,即可求出N的全部约数。
本题只要求取约数中最大的三位数,则其取值范围可限制在100到999之间。
*程序说明与注释#include<stdio.h>void main(){long i;int j;printf("Please input number:");scanf("%ld",&i);for(j=999;j>=100;j--)if(i%j==0){printf("The max factor with 3 digits in %ld is:%d,\\n",i,j);break;}*运行结果输入:555555输出:The max factor with 3 digits in 555555 is:7772.高次方数的尾数求13的13次方的最后三位数*问题分析与算法设计解本题最直接的方法是:将13累乘13次方截取最后三位即可。
C语⾔求x的y次⽅,⾃定义函数,⾃⼰的算法我是⼀名⾼⼆中学⽣,初中时接触电脑,⾮常酷爱电脑技术,⾃⼰百度学习了有两年多了,编程语⾔也零零散散的学习了⼀点,想在⼤学学习计算机专业,所以现在准备系统的学习C语⾔,并在博客中与⼤家分享我学习中的⼼得与思路。
希望⼤⽜路过可以说是第N次学习C语⾔了,都是学到数组和函数这⾥停⽌了,这次下定了决⼼要学完C语⾔,不光要学完,还要学好下⾯是利⽤⾃定义函数写的⼀个模仿pow()函数⼯作的⼀个⼩程序[求x的y次⽅]1 #include<stdio.h>23int main(void)4 {56double power(double x, double y);7double x, y;8 printf("请输⼊底数后按回车\n");9 scanf("%lf", &x);10 printf("请输⼊指数后按回车\n");11 scanf("%lf", &y);12 printf("%lf的%lf次⽅是%lf", x, y, power(x, y));13return0;1415 }1617double power(double x, double y)18 {19double a, b ,c=x;20for( a = 1; a < y; a++)21 {22 b = x;23 c = c*b;24 }2526return c;27 }上⾯代码的⼤体思路是这样的利⽤scanf()函数接受⽤户输⼊的底数x,指数y。
并赋值给x,y,在printf()函数中调⽤power()[⾃定义函数];power()[⾃定义函数]是这样⼯作的:a变量:储存结束循环的值b变量:⽤来保证底数不变c变量:⽤来保证底数相乘y-1次的结果for()循环:a<y:来保证x⾃乘y次以达到x的y次⽅b=x:⽤来保证底数不变c=c*b:前⾯c已经被赋值为x,第⼀次循环时c被作为底数,底数与底数⾃乘,之后是作为底数被相乘y-1次的结果来与底数相乘如此简单地程序讲解的这么粗糙,我都有些不好意思发了,但还是下定决⼼发了,希望看到的⼤⽜给我指点指点,新⼿看不懂的地⽅也告诉我⼀下,我在改进下讲解⽅法,谢谢。
国家二级C语言机试(C语言程序设计)模拟试卷26(题后含答案及解析)题型有:1. 选择题选择题1.要求通过while循环不断读入字符,当读入字母N时结束循环。
若变量已正确定义,以下正确的程序段是A.while(ch=getchar( )=‘N’)printf(“%c”,ch);B.while(ch=getchar( )==“N”)printf(“%c”,ch);C.while((ch=getchar( ))!=‘N’)printf(“%c”,ch);D.while((ch=getchar( ))==‘N’)printf(“%c”,ch);正确答案:C解析:while循环的执行过程如下:①计算while后面圆括号中表达式的值,当值为非0时,执步骤②;当值为0时,执行步骤④:②执行循环体一次:③转去执行步骤①;④退出循环。
在选项C)中,表达式(ch=getchar( ))!=‘N’表示输入的字符不等于N,如果这个条件表达式成立,则执行循环体,打印输出输入的字符。
如果这个条件表达式不成立,即输入的字符等于N,则退出循环。
知识模块:C语言程序设计2.若有以下程序main( ){int a=-2,b=0;while(a++) ++b:printf(“%d,%d\n”,a,b);}则程序的输出结果是A.0,2B.1,2C.1,3D.2,3正确答案:B解析:循环体执行两次,第一次表达式a++值为-2,a的值为-1,执行循环体++b,b值为1,第二次表达式a++值为-1,a的值等于0,执行++b,b值为2,第三次判断条件a++,表达式值为0,不执行循环体,但是条件判断以后,a的值为1。
知识模块:C语言程序设计3.由以下while构成的循环,循环体执行的次数是int k=0;while(k=1)k++;A.一次也不执行B.执行一次C.无限次D.有语法错,不能执行正确答案:C解析:循环条件表达式为赋值表达式k=1,因此循环执行无限次。
C语言试题试卷编号:9618 版面整理着:一、填空共8题(共计8分)第1题(1.0分)题号:513若有以下定义,则计算表达式y+=y-=m*=y后的y值是()int m=5,y=2; 答案:-16第2题(1.0分)题号:84写出语句 b=(a=6,a*3); 执行后整型变量b的值是【1】. 答案: 18第3题(1.0分)题号:293getchar()函数只能接收一个【1】. 答案:字符第4题(1.0分)题号:437以下程序的输出结果为【1】,#include "stdio.h" main(){int a=010,j=10;printf("%d,%d\n",++a,j--);} 答案:9,10第5题(1.0分)题号:86写出表达式 1.234&&5.982 的值是【1】. 答案:1第6题(1.0分)题号:303为了避免嵌套条件语句的二义性,C语言规定else与其前面最近的【1】语句配对. 答案: if第7题(1.0分)题号:311若所用变量均已正确定义,则执行下面程序段后的值是【1】.for(i=0 ; i<2 ; i++ ) printf("YES"); printf("\n"); 答案:YESYES 第8题(1.0分)题号:312以下程序段要求从键盘输入字符,当输入字母为'Y' 时,执行循环体,则括号内应填写【1】.ch=getchar();while(ch ____ 'Y')/*在括号中填写*/ch=getchar(); 答案:==二、判断共15题(共计15分)第1题(1.0分)题号:937在C程序中,每行中只能写一条语句答案:N第2题(1.0分)题号:928C程序中的关键字必须小写. 答案:Y第3题(1.0分)题号:715整数 -32100可以赋值给int型和long int型变量. 答案:Y第4题(1.0分)题号:929在C语言中,5种基本数据类型的存储空间长度的排列顺序为:char<int<long int <=float<double 答案:Y第5题(1.0分)题号:947printf函数中,%c和%s都可以输出字符串. 答案:N第6题(1.0分)题号:194若有定义和语句:int a;char c;float f;scanf("%d,%c,%f",&a,&c,&f);若通过键盘输入:10,A,12.5,则a=10,c='A',f=12.5. 答案:Y第7题(1.0分)题号:944C语言中,赋值表达式加上分号就构成了赋值语句. 答案:Y激情活力精彩学联版权所有违者必究第8题(1.0分)题号:961C语言本身并不提供输入输出语句.但可以通过输入输出函数来实现数据的输入输出. 答案:Y第9题(1.0分)题号:950逻辑运算符中的"&&"和"||"低于关系运算符,"!"高于算术运算符. 答案:Y第10题(1.0分)题号:951在执行switch语句时,default和各个case的出现次序不影响执行结果. 答案:Y第11题(1.0分)题号:723若 a=3,b=2,c=1 则关系表达式"(a>b)==c" 的值为"真". 答案:Y 第12题(1.0分)题号:709int i=20;switch(i/10){case 2:printf("A");case 1:printf("B");}的输出结果为A. 答案:N第13题(1.0分)题号:742若有说明int c;则while(c=getchar());是正确的C语句. 答案:Y第14题(1.0分)题号:954continue语句只结束本次循环,而不是终止整个循环的执行.break语句则是结束整个循环过程,不再判断执行循环的条件是否成立. 答案:Y第15题(1.0分)题号:952do-while循环是先判断循环条件表达式,后执行循环体;while循环是先执行循环体,后判断循环条件表达式. 答案:N三、单项选择共20题(共计40分)第1题(2.0分)题号:2016设C语言中,int类型数据占2个字节,则short类型数据占().A:1个字节B:2个字节C:4个字节D:8个字节答案:B第2题(2.0分)题号:2209若变量已正确定义并赋值,下面符合C语言语法的表达式是().A:a:=b+1B:a=b=c+2C:int 18.5%3D:a=a+7=c+b 答案:B第3题(2.0分)题号:2000以下的选择中,正确的赋值语句是().A:a=1,b=2B:j++C:a=b=5;D:y=int(x) 答案:C第4题(2.0分)题号:2130下列字符序列中,是C语言保留字的是().A:sizeofB:include激情活力精彩学联版权所有违者必究C:scanfD:sqrt 答案:A第5题(2.0分)题号:2211设以下变量均为int类型,则值不等于7的表达式是().A:(x=y=6,x+y,x+1)B:(x=y=6,x+y,y+1)C:(x=6,x+1,y=6,x+y)D:(y=6,y+1,x=y,x+1) 答案:C第6题(2.0分)题号:2127下列程序段的输出结果为().float k=0.8567;printf("%4.1f%%",k*100);A:0085.6%%B:85.7%C:0085.6%D:.857 答案:B第7题(2.0分)题号:2135下列程序段的输出结果为().int x=3,y=2;printf("%d",(x-=y,x*=y+8/5));A:1B:7C:3D:5 答案:C第8题(2.0分)题号:2189从键盘上输入某字符串时,不可使用的函数是().A:getchar()B:gets()C:scanf()D:fread() 答案:A第9题(2.0分)题号:2039若k为int型变量,则以下程序段的执行结果是().k=-8567; printf("k=|%06D|\n");A:格式描述符不合法,输出无定值B:输出为k=|%06D|C:输出为|0-8567|D:输出为|-8567| 答案:B第10题(2.0分)题号:2049以下程序的输出结果为().main(){int i=010,j=10;printf("%d,%d\n",++i,j--);激情活力精彩学联版权所有违者必究}A:11,10 B:9,10 C:010,9 D:10,9答案:B第11题(2.0分)题号:2144int a=1,b=2,c=3;if(a>b)a=b;if(a>c)a=c;则a的值为().A:1B:2C:3D:不一定答案:A第12题(2.0分)题号:2259以下关于运算符优先顺序的描述中正确的是().A:关系运算符<算术运算符<赋值运算符<逻辑运算符B:逻辑运算符<关系运算符<算术运算符<赋值运算符C:赋值运算符<逻辑运算符<关系运算符<算术运算符D:算术运算符<关系运算符<赋值运算符<逻辑运算符答案:C第13题(2.0分)题号:2318在C语言中,要求运算数必须是整型的运算符是().A:&&B:%C:!D:|| 答案:B第14题(2.0分)题号:2261若希望当A的值为奇数时,表达式的值为"真",A的值为偶数时,表达式的值为"假",则以下不能满足要求的表达式是().A:A%2==1B:!(A%2==0)C:!(A%2)D:A%2 答案:C第15题(2.0分)题号:2063执行下列语句后的输出为().int j=-1;if(j<=1) printf("****\n");else printf("%%%%\n");A:****B:%%%%C:%%%%cD:有错,执行不正确答案:A第16题(2.0分)题号:2248下面有关 for 循环的正确描述是().激情活力精彩学联版权所有违者必究A:for 循环只能用于循环次数已经确定的情况B:for 循环是先执行循环循环体语句,后判断表达式C:在 for 循环中,不能用 break 语句跳出循环体D:for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来答案:D第17题(2.0分)题号:2059以下程序的运行结果是().main(){ int n;for(n=1;n<=10;n++){if(n%3==0) continue;printf("%d",n);}}A:12457810B:369C:12D:1234567890 答案:A第18题(2.0分)题号:2141以下程序段的输出结果为().for(i=4;i>1;i--)for(j=1;j<i;j++)putchar('#');A:无B:######C:#D:### 答案:B第19题(2.0分)题号:2251以下不是无限循环的语句为().A:for(y=0,x=1;x>++y;x=i++) i=x;B:for(;;x++=i);C:while(1){x++;}D:for(i=10;;i--) sum+=i; 答案:A第20题(2.0分)题号:2249若i为整型变量,则以下循环执行次数是().for(i=2;i==0;) printf("%d",i--);A:无限次B:0次C:1次D:2次答案:B四、程序填空共3题(共计27分)第1题题目:要求输出结果为:A,B激情活力精彩学联版权所有违者必究#include<stdio.h>void main()/***********SPACE***********/{char a,【?】/***********SPACE***********/a=【?】;b='b';a=a-32;/***********SPACE***********/b=b-【?】;printf("%c, %c\n%d,%d\n",a,b,a,b);}答案:=======(答案1)=======b;=======(答案2)======='a'=========或=========97=======(答案3)=======32第2题(9.0分)题号:24题目:以下程序的功能是对任一整数N(N≠0),它都可以分解成1(或-1)和一些质数(素数)因子的形式。
四川省普通高等学校计算机应用知识和能力第二十六次等级考试二级(C与C++语言) 笔试试卷时间: 2007年4月14 日( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B )1. Windows是多用户多任务操作系统。
( 1 )2. 在程序设计中,常用一维数组来表示线性表的顺序存储空间。
( 2 )3. 在面向对象的软件开发方法中,类可以创建对象,类是对象的实例,对象是生成类的模板。
( 3 )4. 在计算机系统中,操作系统是处于裸机之上的第一层软件。
( 4 )5. 数据的存储结构与数据的处理效率无关。
( 5 )6. 提供没有错误的程序是提高软件的可维护性的基本措施。
( 6 )7. 中断控制方式适用于外设同CPU之间进行大量数据交换。
( 7 )8. 在软件工程中,结构化软件开发方法是一种自顶向下分阶段实现的软件开发方法。
( 8 )9. 进程把程序作为它的运行实体,没有程序也就没有进程。
( 9 )10.软件工程的目的是最终解决软件的生产工程化。
( 10 )二、选择题(每小题1分,共5分)1. 以下哪种测试方法不属于白盒测试技术(11 )。
11 (A) 基本路径测试(B) 边界值分析测试(C) 循环覆盖测试(D) 逻辑覆盖测试2. 若进栈序列为1,2,3,4,进栈过程中可以出栈,则下列不可能的一个出栈序列是(12 )。
12 (A) 1,4,3,2 (B) 2,3,4,1(C) 3,1,4,2 (D) 3,4,2,13. 在多道程序设计系统中,处于后备状态的作业要经过(13 )调度后才能真正执行。
13 (A) 作业调度(B) 作业调度和设备调度(C) 进程调度(D) 作业调度和进程调度4. 检查软件产品是否符合需求定义的过程称为(14 )。
14 (A) 确认测试(B) 集成测试(C) 验证测试(D) 验收测试5. 数据字典是结构化软件开发方法中用于描述(15 )工作阶段的工具。
15 (A) 需求分析(B) 程序编码(C) 详细设计(D) 可行性分析1. 在下列枚举定义中,(16 )是正确的。
【对此份试卷的评述】2011春江苏省C语言试卷与前几次比较,在难度上并未改变;经过仔细阅读和上机调试,本试卷存在如下几个不足之处,一、印刷上误差一处:C语言部份“选择题26题”,3 4 2错误印成了3 4 3二、标准答案错误两处:1、填空第4题,正确答案是x=6c;而错误答案是x=108;2、阅读第10题中答案是-1和2;而错误答案是—2 和2。
【评者简介】是苏州科技学院天平学院老师张柏雄(uuxzhang@21cn。
com),搜集了从2005—2011年的江苏省高校计算机等级考试C语言笔试题,并编有自释放、自学软件,供应学生学习已有五年。
第一部份计算机基础知识1、下列有关通信技术的叙述中,错误的是___1_____.A 无论是模拟通信还是数字通信,目前都是通过载波技术实现远距离的信息传递B. 多路复用技术可以降低信息传输的成本,常用的多路复用技术有TDM和FDM2、使用存储器存储二进位信息时,存储容量是一项很重要的性能指标。
存储容量的单位有多种,下面不是存储容量单位的是____2______。
A. TB C。
GB D.MB3、设有补码表示的两个单字节带符号整数a=01001110和b=01001111,则a—b的结果采用补B。
10011101C。
00111111D. 101111114、下列有关PC机主板上BIOS和CMOS的叙述中,错误的是_____4____。
A. BIOS芯片是一块闪烁存储器,其存储的信息关机后不会丢失B。
BIOS中包含加电自检程序、系统自举程序等5、下列有关PC机中央处理器(CPU)和内存(内存条)的叙述中,正确的是___5_____。
C。
DDR内存条、DDR2内存条在物理结构上有所不同,例如它们的引脚不同D. 通常台式机中的内存条与笔记本电脑中的内存条不同,不能互换6、下列有关PC机I/O总线与I/O接口的叙述中,正确的是___6_____.A。
PC机中串行总线的数据传输速率总是低于并行总线的数据传输速率D. IEEE1394接口的连接器与USB连接器完全相同,均有6根连接线7、蓝光光盘(BD)是全高清影片的理想存储介质,其单层盘片的存储容量大约为____7_____.A. 4。
C语言编程练习(003):循环结构程序设计题0:填空题:(1).执行下列程序段后,x的值是。
其运行结果是。
下面循环语句中,循环次数是次。
下面循环语句中,循环次数是次。
下面循环语句中,循环次数是次。
下面循环语句中,循环次数是次。
题1:分别用for循环、while循环、do-while循环编程解决下列问题:(1).计算1+2+3+4+……+100的值,并输出。
(2).计算1~100之间所有偶数的和,并输出。
(3).计算1~10之间所有数的乘积,并输出。
(4).计算1+1/2+1/3+……+1/100的和,保留2位小数输出。
(5).求恰好使S=1+3+5+7+9+……+(2n-1)的值大于10000时n 的值,并输出n。
(6).连续打印1~20的所有自然数,要求每行一个自然数。
(7).求S=1×2+2×3+3×4+……+99×100的值,并输出s。
(8).求S=1+1×2+1×2×3+1×2×3×4+…+1×2×3×4×5×6×7×8×9×10的值,并输出s。
题2:(1).依次输入n位同学身高值,找出身高最大值并输出。
(2).从键盘输入正整数n,计算S=1+(1+3)+(1+3+5)+(1+3+5+7)+……+(1+3+5+7+……+2n-1)的值,并输出S。
(3).计算1~1000之间能同时被3和5整除的整数的和S并输出。
(4).输入一个任意位数的正整数n(n在10亿内),计算它各位上数字的和S并输出。
题3:(1).判断任意给定的正整数n(n>1)是否是质数。
(2).所谓水仙花数是指一个三位数x,如果满足a3+b3+c3=x,则x就是水仙花数,请输出所有的水仙花数(一行一个数)。
其中a、b、c分别表示x 的个位数、十位数和百位数。
C语言判断题(总36页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--判断题考生选择: N答案: N考生选择: N答案: N考生选择: Y答案: Y考生选择: N答案: N考生选择: Y答案: N考生选择: N答案: N考生选择: N答案: N考生选择: Y答案: Y考生选择: Y答案: Y考生选择: N答案: N考生选择: Y答案: Y考生选择: N答案: N考生选择: N答案: N考生选择: N答案: N考生选择: Y答案: Y考生选择: Y答案: Y考生选择: Y答案: Y考生选择: Y答案: Y考生选择: N答案: Y考生选择: Y答案: Y考生选择: N答案: N考生选择: N答案: N考生选择: Y答案: Y考生选择: Y答案: N考生选择: N答案: N考生选择: N答案: N考生选择: Y答案: Y考生选择: Y答案: N考生选择: N答案: N考生选择: Y答案: Y考生选择: N答案: N考生选择: N答案: Y考生选择: N答案: Y考生选择: Y答案: Y考生选择: Y答案: N考生选择: Y答案: N考生选择: Y答案: Y考生选择: N答案: N考生选择: Y答案: Y考生选择: N答案: N考生选择: Y答案: Y考生选择: N答案: N考生选择: N答案: N考生选择: Y答案: Y考生选择: Y答案: N考生选择: Y答案: Y考生选择: Y答案: N考生选择: N答案: Y考生选择: N答案: N考生选择: Y答案: Y考生选择: Y答案: Y考生选择: Y答案: N考生选择:答案: Y考生选择: Y答案: N考生选择: Y答案: Y考生选择: N答案: N考生选择: Y答案: Y考生选择: N答案: N考生选择: N答案: N考生选择: N答案: Y考生选择: N答案: N考生选择: N答案: N考生选择: N答案: N考生选择: N答案: N考生选择: N答案: Y考生选择: Y答案: Y考生选择: Y答案: N考生选择: Y答案: N考生选择: Y答案: Y考生选择: N答案: N考生选择: Y答案: N考生选择: N答案: N考生选择: Y答案: N考生选择: Y答案: Y考生选择: N答案: N考生选择: N答案: N考生选择: Y答案: N考生选择: Y答案: Y考生选择: Y答案: Y考生选择: Y答案: N考生选择: Y答案: N考生选择: Y答案: N考生选择: N答案: N考生选择: N答案: N考生选择: N答案: N考生选择: Y答案: Y考生选择: Y答案: Y考生选择: N答案: Y考生选择: Y答案: Y考生选择: Y答案: Y考生选择: N答案: N考生选择: Y答案: N考生选择: Y答案: N考生选择: N答案: N考生选择: Y答案: Y考生选择: N答案: N考生选择: Y答案: Y考生选择: Y答案: Y考生选择: N答案: N考生选择: Y答案: N考生选择: Y答案: N考生选择: Y答案: N考生选择: Y答案: Y考生选择: Y答案: Y考生选择: N答案: Y考生选择: N答案: N考生选择: Y答案: Y考生选择: Y答案: Y考生选择: N答案: Y考生选择: Y答案: Y考生选择: Y答案: Y考生选择: Y答案: N考生选择: Y答案: N考生选择: N答案: N考生选择: N答案: N考生选择: Y答案: Y考生选择: N答案: N考生选择: Y答案: Y考生选择: Y答案: Y考生选择: N答案: N考生选择: N答案: Y考生选择: N答案: N考生选择: Y答案: N考生选择: Y答案: Y考生选择: Y答案: Y考生选择: Y答案: Y考生选择: N答案: N考生选择: Y答案: N考生选择: Y答案: N考生选择: Y答案: Y考生选择: Y答案: Y考生选择: Y答案: N考生选择: Y答案: N考生选择: N答案: N考生选择: Y答案: N考生选择: Y答案: Y考生选择: Y答案: Y考生选择: Y答案: N考生选择: N答案: Y考生选择: N答案: N考生选择: Y答案: Y考生选择: Y答案: Y考生选择: N答案: N考生选择: N答案: Y考生选择: Y答案: Y考生选择: N答案: N考生选择: N答案: N考生选择: N答案: N考生选择: Y答案: N考生选择: Y答案: N考生选择: N答案: Y考生选择: Y答案: N考生选择: N答案: Y考生选择: Y答案: N考生选择: N答案: N考生选择: Y答案: N考生选择: Y答案: Y考生选择: Y答案: N考生选择: Y答案: Y答案: N考生选择: N答案: Y考生选择: N答案: Y考生选择: N答案: N考生选择: Y答案: Y考生选择: Y答案: Y考生选择: N答案: Y考生选择: Y答案: N答案: Y考生选择: Y答案: N考生选择: N答案: N考生选择: N答案: N考生选择: Y答案: Y考生选择: Y答案: N考生选择: Y答案: Y考生选择: Y答案: N考生选择: N答案: N考生选择: Y答案: N考生选择: N答案: N考生选择: Y答案: Y考生选择: N答案: N考生选择: Y答案: Y考生选择: Y答案: Y考生选择: N答案: N考生选择: N答案: N考生选择: Y答案: Y考生选择: N答案: N考生选择: Y答案: Y考生选择: Y答案: Y考生选择: Y答案: Y考生选择: N答案: Y考生选择: Y答案: N考生选择: Y答案: N考生选择: Y答案: N考生选择: N答案: N考生选择: N答案: N考生选择: N答案: Y考生选择: Y答案: Y考生选择: Y答案: Y考生选择: N答案: N考生选择: N答案: N考生选择: N答案: N。
c语言选择题练习37道(含答案)37道选择题:1. 下列不是C语言关键字的是:A. switchB. caseC. intD. double答案:D 解析:double是C语言中的数据类型,不是关键字。
2. 在C语言中,下列标识符合法的是:A. _123abcB. 123abcC. abc123_D. abc_123_答案:D 解析:在C语言中,标识符可以以字母或下划线开头,只能包含字母、数字和下划线。
3. 表达式x += y 是以下哪个表达式的简写?A. x = x –yB. x = x + yC. x = x * yD. x = x / y答案:B 解析:x += y 是x = x + y 的简写。
4. 下列循环语句中,能保证至少执行一次循环体的是:A. for(i=0;i<10;i++)B. do{i++;}while(i<10)C. while(i<10){i++;}D. 以上都不是答案:B 解析:do-while语句可以保证至少执行一次循环体。
5. 下面C 语言中的数组定义,正确的是:A. int[] a = {1, 2, 3};B. int a[3] = {1, 2, 3};C. int[3] a = {1, 2, 3};D. 以上都不正确。
答案:B 解析:C语言中数组的定义格式为数据类型数组名[元素个数] = {元素1,元素2,...,元素n}。
6. 下列程序的输出结果是什么?#include <stdio.h>int main(){int i=0;while(i>0){printf("%d",i);i++;}return 0;}A. 0B. 1C. 无输出D. 其他答案:C 解析:while循环条件不满足,循环体不会执行,故无输出。
7. 下列代码片段的输出是什么?int a = 10;double b = 10.5;printf("%d %f",a,b);A. 10 10.5B. 10.5 10C. 10.0 10.5D. 编译错误答案:A 解析:%d表示输出整数,%f表示输出浮点数。
一、判断题1、所谓常量,就是在程序运行过程中其值可以改变的量。
()2、一个C程序可以由多个源程序文件构成,但其中只能有一个main()函数。
()3、在C语言中do-while 语句和for循环均是先执行循环体语句,再判断表达式。
()4、在函数调用中将变量的位置作为实参传递给对应形参时,实现的是单向的值传递。
()5、C语言中所有字符串都是以‘\0’结束的。
()6、do-while构成的循环语句中的循环体最少执行1次。
()7、数组名在C语言中表示的是数组的首位置。
()8、使用gets()函数输入字符串时可以在字符串中输入空格。
()9、算术运算符中‘/’的优先级高于‘%’。
()10、char a[5];该语句表明数组a中的第五个元素为a[5]。
()11、C语言源程序文件的扩展名均为.c。
()12、char a[5];数组a中有a[1]、a[2]、a[3]、a[4]、a[5]共5个元素。
()13、C语言程序区分大小写,字符常量必须定义为大写。
()14、若int i=10,j=2;则执行i*=j+8;后i的值为28。
()15、若int x=100,y=200;则语句printf("%d",(x,y));输出结果为100。
()16、c语言中的标识符只能由字母,数字和下划线三种字符组成。
()17、函数getchar()的作用是:输出一个字符。
()18、一个C语言程序总是从第一个函数开始执行。
()19、在c语言中,char型数据在内存中是以ASCII码形式存储的。
()20、在C语言中switch语句必须使用break语句。
()二、选择题1、以下说法正确的是()。
A、C语言程序总是从第一个函数开始执行。
B、C语言程序中要调用的函数必须在main()函数中定义。
C、C语言程序总是从main()函数开始执行。
D、C语言程序中的main()函数必须放在程序的开始部分。
2、以下几组选项中为合法的标识符是()。
C语言暑假作业(编程题,不会的自己去网上百度,但必须要验证对与否)技能模拟题:(1-8套)1.计算之和,直到加项小于10-6为止。
2.已知某数列前两项为2,3,其后继项由前两项的乘积按下列规则生成:(1)若乘积为一位数,则该乘积就是后继项;(2)若乘积为两位数,则乘积的十位和个位数字依次作为数列的后继项。
输入整数n,求该数列的前n项。
3.输入3个整数,按从小到大的顺序输出。
4.输入30个整数到数组HK中,然后统计并输出能被3整除但不能被5整除的数及个数。
5.实现输入10个数,输出这组数中数与数的最大差值。
6.输出菲波拉契数列的前20项,要求每5个数一行,数之间用一个空格分开。
(菲波拉契数列的第一二项均为1,从第3项开始的后继项为其相邻前两项之和)7.输入一个数,然后确定它在一个数组中第一次出现的位置,如果没有该数则输出-1,否则输出其下标。
8.实现输入一个字符串到数组alp中,然后把其中所有字母转换为大写字母后输出。
9.输入选举的人数n,然后根据选票输入3个候选人编号1、2、3,统计输出3个候选人各得的选票数和无效票数。
(无效票为选举两人及以上的票)10.编写一个猜数游戏程序,输入一个设定的整数,供玩者猜。
玩者输入一个猜测的数,程序给出“大了”,“小了”的提示信息,或给出玩者经多少次猜中的信息。
11.输出九九乘法表。
12.把一个整数数组中的数按升序排列后输出。
13.输出所有3位整数的回文数,回文数是指从左到右和从右到左所读的数相同,如121、717等。
14.输入一个整数,然后输出其对应的二进制形式的数。
15.计算两个100位的整数之和。
16.统计一个字符串中单词的个数,单词间以一到多个空格分隔。
技能考点:17.对一组数据进行统计处理,求总和、平均值。
18.对一组数据进行统计处理,求最大值和最小值。
19.用选择法对一组数进行排序。
20.用冒泡法对一组数进行排序。
21.用二分查找法在一组数中查找指定的数。
C语言程序设计复习资料一、填空题1、C语言程序是函数构成的,其中有且只有1个主函数,程序的的执行总是从该函数开始。
2、用条件运算符写出求两个整数x,y中大数的表达式z =x>y?x:y。
3、定义一个符号常量PI,其值为3.1415926,格式是#define PI 3.1415926。
4、设整型变量X=5,Y=6,Z=7,执行X%=Y+Z后,X = 5。
5、执行语句“for(j=15 ;j >=5 ;j-- );”后,变量j的值为4。
6、在一个函数中有定义int a=60,*p=&a ;执行*p=*p +15;后,a的值为。
7、结构化程序设计的三种基本结构是顺序结构、选择结构和循环结构。
8、定义一个长度为100的整形一维数组a ,且前5个元素的初值为3,6,9,12,15,定义的格式为:int a[100]={3,6,9,12,15}。
9、写出表达式25>15&&65<25||88>75的值1。
10、函数的传值调用中,实际参数把它的值传递给形式参数。
11、表达式(int)(20+2.5*3+6+5.3) 的值是38 。
12、若有以下定义:char a;int b;float c;double d;则表达式a*b+d-c的值的类型是。
13、写出表达式66>65&&65<85||85>95的值1。
14、在C语言中,允许在程序中用typedef来定义新的类型名代替已有的类型名,例如typedef int INTEGER;。
15、C语言采用编译方式将源程序转换为二进制的目标代码,编写好一个C程序到完成运行一般经过以下几个步骤:编辑、编译、连接、执行;16、C程序是由函数组成的,一般情况下函数体由说明部分和执行部分组成,其中说明部分的作用是;17、表达式m = a > b ? a+b : b+5 当a=15,b=11时,m的值为:26;18、函数的传值调用中,实际参数把它的值传递给形式参数;19、写出表达式1<4&&7<5的值;20、在C语言中,字符串是用双引号引起来的一串字符。
C语⾔·出现次数最多的数问题描述 编写⼀个程序,读⼊⼀组整数,这组整数是按照从⼩到⼤的顺序排列的,它们的个数N也是由⽤户输⼊的,最多不会超过20。
然后程序将对这个数组进⾏统计,把出现次数最多的那个数组元素值打印出来。
如果有两个元素值出现的次数相同,即并列第⼀,那么只打印⽐较⼩的那个值。
输⼊格式:第⼀⾏是⼀个整数N,N £ 20;接下来有N⾏,每⼀⾏表⽰⼀个整数,并且按照从⼩到⼤的顺序排列。
输出格式:输出只有⼀⾏,即出现次数最多的那个元素值。
输⼊输出样例样例输⼊5100150150200250样例输出1501 #include<stdio.h>2int a[30];3int main(){4int n,sum=0,maxx=0;5int ans=0;//定义要输出的那个数6 scanf("%d",&n);7if(n<=0) return0;//n<=0时不输出8 a[0]=0;9int i;10for(i=1;i<=n;i++){11 scanf("%d",a+i);12/*后输⼊的数不等于前⼀个输⼊的数*/13if(a[i]!=a[i-1]){14if(sum>maxx){15 maxx=sum;16/*记录下前⼀个输⼊的数*/17 ans=a[i-1];18 }19 sum=1;20 }21/*后输⼊的数等于前⼀个输⼊的数,则sum+1*/22else23 sum++;24 }25if(sum>maxx){26 maxx=sum;27 ans=a[i-1];28 }29 printf("%d\n",ans);30return0;31 }。
1.分析下面的C语言代码:char ch; while((ch=getchar())!=’e’)printf(“*”);若输入字符串:abcde<回车>,则以上while循环体将执行(D)次。
(选择一项)A)0B)1C)5D)42.下列C程序段的输出结果是(C)。
(选择一项)void main(){int a[4] = {5,2,3,4};int *p;p = a;p += 2;printf(“%d”,*p);}A) 1B) 2C) 3D) 43.在C语言中,假设:char w; int x; float y; double z; 则表达式:w*x+z-y值得数据类型为(D)。
(选择一项)A)floatB)charC)intD)double4.已知十六进制数1A的十进制数为26,请问十六进制数2B的十进制数表示是(D)。
(选择一项)a)27b)37c)42d)435.在C语言中,下列代码输出的结果是(D)。
#include<stdio.h>void main(){int i;int bookNum=4;int totalPrice=0;int bookPrice[4]={10,20,30,40};for(i=0;i<4;i+=2){totalPrice+=bookPrice[i];i--;}printf(“%d”,totalPrice);}(选择一项)B)40C)60D)1006.在C语言中有如下定义:int a[10];则对a数组元素的正确引用是(AD)。
(选择二项)a)a[10]b)a[3+1]c)a(5)d)a[0]7.在C语言中,下列代码的运行结果是(C)。
(选择一项)#include <stdio.h>#include <math.h>void main(){double squ,power,value;squ=sqrt(4.0);power = pow(3.0,2);value = pow(power,squ);printf("%1.0f",value);}a) 1c)81d)2568.下列C语言代码的运行结果是(A)。
四川省普通高等学校计算机应用知识和能力第二十六次等级考试二级(C与C++语言) 笔试试卷时间: 2007年4月14 日( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B )1. Windows是多用户多任务操作系统。
( 1 B )2. 在程序设计中,常用一维数组来表示线性表的顺序存储空间。
( 2 A )3. 在面向对象的软件开发方法中,类可以创建对象,类是对象的实例,对象是生成类的模板。
( 3 B )4. 在计算机系统中,操作系统是处于裸机之上的第一层软件。
( 4 A)5. 数据的存储结构与数据的处理效率无关。
( 5 B )6. 提供没有错误的程序是提高软件的可维护性的基本措施。
( 6 B )7. 中断控制方式适用于外设同CPU之间进行大量数据交换。
( 7B )8. 在软件工程中,结构化软件开发方法是一种自顶向下分阶段实现的软件开发方法。
( 8A )9. 进程把程序作为它的运行实体,没有程序也就没有进程。
( 9 B )10.软件工程的目的是最终解决软件的生产工程化。
( 10 B )二、选择题(每小题1分,共5分)1. 以下哪种测试方法不属于白盒测试技术(11 B )。
11 (A) 基本路径测试(B) 边界值分析测试(C) 循环覆盖测试(D) 逻辑覆盖测试2. 若进栈序列为1,2,3,4,进栈过程中可以出栈,则下列不可能的一个出栈序列是(12 C )。
12 (A) 1,4,3,2 (B) 2,3,4,1(C) 3,1,4,2 (D) 3,4,2,13. 在多道程序设计系统中,处于后备状态的作业要经过(13C )调度后才能真正执行。
13 (A) 作业调度(B) 作业调度和设备调度(C) 进程调度(D) 作业调度和进程调度4. 检查软件产品是否符合需求定义的过程称为(14 C )。
14 (A) 确认测试(B) 集成测试(C) 验证测试(D) 验收测试5. 数据字典是结构化软件开发方法中用于描述(15 A )工作阶段的工具。
15 (A) 需求分析(B) 程序编码(C) 详细设计(D) 可行性分析1. 在下列枚举定义中,(16 A )是正确的。
16 (A) enum em1 {my,your=4,his,her=his+10};(B) enum em2 {"No","Yes"};(C) enum em3 {1,one=4,two,8};(D) enum em4 {A,D,E+1,K};2. 共用体(联合)类型变量在任何给定时刻(17 B )。
17 (A) 所有成员一直驻留在各自的内存中(B) 只有一个成员驻留在内存中(C) 部分成员(>1)驻留在内存中(D) 没有成员驻留在内存中3. 以下对结构体变量td的定义中,错误的是(18 C )。
18 (A) typedef struct aa (B) struct aa{ int n; { int n;float m; float m;}AA; };AA td; struct aa td;(C) struct (D) struct{ int n; { int n;float m; float m;}aa; }td;struct aa td;4. 以下程序的运行结果是(19 B )。
# include <stdio.h>void main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;printf("%d\n",*p+*q);}19 (A) 16 (B) 10 (C) 8 (D) 65. 若有定义int a=1,b=3,c=5,d=4; 则执行以下程序段后x的值为(20 D )。
if(a<b)if(c<d) x=1;else if(a<c)if(b<d) x=2;else x=3;else x=6;else x=7;20 (A) 1 (B) 3 (C) 6 (D) 26. 已知int a=5,b=9; 将a+b的值输出到屏幕上,下列实现方法中,正确的是(21 C )。
21 (A) cout<<a<<'+'<<b<<endl (B) cout<<"a+b"<<endl(C) cout<<a+b<<endl (D) cout<<"%d\n",a+b7. 以下程序的输出结果是(22 A)。
# include <stdio.h># define P 3int F(int x) { return(P*x*x); }void main(){ printf("%d\n",F(3+5)); }22 (A) 192 (B) 29 (C) 25 (D) 编译出错8. 以下程序输出的结果是( 23 D )。
# include <stdio.h>void main(){ char p[]={'a','b','c'},q[]="abc";printf("%d,%d\n",sizeof(p),sizeof(q));}23 (A) 4,4 (B) 3,3 (C) 4,3 (D) 3,49. 下面哪个是合法的数组定义( 24 C)。
24 (A) char a={'H','e','l','l','o'}; (B) char a[5]={"H","e","l","l","o"};(C) char a[5]={'H','e','l','l','o'}; (D) char a[5]="Hello";10. 表达式0x13&0x17的值是( 25 B) 。
25 (A) 0x17 (B) 0x13 (C) 0x18 (D) 0xec二、读程序回答问题( 每个选择3分,共45分)1. 读程序,回答问题。
# include <stdio.h>void main(){int x,y;scanf("%d,%d",&x,&y);if(x>y)x=y;y=x;elsex++;y++;printf("%d,%d\n",x,y);getch();}①程序的输出结果是(26 A )。
26 (A) 有语法错误,不能通过编译(B) 若输入数据3和4,则输出4和5(C) 若输入数据4和3,则输出3和4(D) 若输入数据4和3,则输出4和4②程序中getch()函数的作用是(27 C )。
27 (A) 输出结束字符(B) 输入开始字符(C) 方便看运行结果(D) 没有任何作用2. 以下程序的运行结果为(28 )。
# include <stdio.h>void main(){char ch[2][10]={"693","825"},*p[2];int i,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]!='\0'&&p[i][j]<='9';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}28 (A) 92 (B)6982 (C) 9325 (D) 6385 3. 阅读如下程序:# include <stdio.h>void main(){int a=0,b=2,c=3;switch(a){ case 0: switch(b==2){ case 1: putchar('&');break;case 2: putchar('%');break;}case 1: switch(c){ case 1: putchar('$');case 2: putchar('*');break;default: putchar('#');}}}29 (A) &% (B) &# (C) &$ (D) %# 4. 读程序,回答问题。
# include <stdio.h>fun(int x){int p;if((x==0)||(x==1)) return 3;p=x-fun(x-2);return p;}void main(){int a;printf("\n Enter a positive integer:");scanf("%d",&a);if(a<0) printf("Input error\n");else printf("%d\n",fun(a));}①该函数的功能是(30 )。
30 (A) 利用递归函数f(x)=x-f(x-2) (B) 计算数学函数f(x)=f(x-2)(C) 计算x的阶乘(D) 以上都不是②如果从键盘输入a的值为9,则运行的结果是(31 )。
31 (A) 9 (B) 7 (C) 3 (D) 15. 以下程序的输出结果是(32 )。
# include <stdio.h>void fun(){ extern int x,y;int a=15,b=10;x=a-b;y=a+b;printf("%d,%d\n",x,y);}int x,y;void main(){int a=7,b=5;x=a+b;y=a-b;fun();printf("%d,%d\n",x,y);}32 (A) 5,25 (B) 12,2 (C) 2,12 (D) 25,55,25 12,2 2,12 25,5 6. 读程序,回答问题。
# include <stdio.h>struct stu{int num;char name[10];int age;};void fun(struct stu *p){printf("%s\n",(*p).name );}void main(){struct stu students[3]={{9801,"Zhang",20},{9802,"Wang",21},{9803,"Zhao",19}};fun(students+2);}①fun函数的功能是(33 )。