版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、大学C程序设计基础及实验课程期中考试试卷参考答案考试日期:2017 年 12月 8日 , 考试时间:70分钟诚信考试,沉着应考,杜绝违纪。考生:学号:所属院系:_(注意:答题容必须写在答题卷上,写在本试卷上无效)试题一、单选题(每小题2 分,共 20 分)1. 以下正确的字符常量是 _ 。A 412 B 255C 08D 【解答】A 八进制 412 超出了 8 位二进制所能表示的围03ff ;B 255 是一个合法的整数,可以表示一个字节的值;C 8不是一个合法的八进制数字;D 是转义字符,表示单个单引号字符本身,所以。字符常量缺少右单引号。2. 假设有定义: float x=16/5/2.0
2、, y=16/5.0/2;则 x 和 y 的值分别为 _ 。A 1.5 1.6B 1.6 1.6C 1.5 1.5D 1.6 1.5【解答】16/5/2.0(16/5)/2.03/2.01.516/5.0/2(16/5.0)/23.2/21.63. 下列语句中, _ 将输出 %d 。A printf( “%d ”);B printf( “%d ”);C printf( “%d ”);D printf( “%d ”)【解答】A %d 表示输出十进制整型量,但缺少相应的输出表达式,故输出结果是随机值;B % 表示输出一个 % 符号本身, d 是普通字符,原样输出,所以输出%d ;C %表示符号 %
3、 , %d 表示输出十进制整型值,故输出结果是随机值;D % 表示输出符号 % 本身, %d 表示输出十进制整型值。4.下列程序段输出结果为_ 。int x=1, y=012;printf( “ %dy*x+);”,A 12B10C 20D 24【解答】x+ 表达式的值是1 , y*x+y*1y012105. 下列程序段输出结果为_ 。int a=1,b=2,c=2,t;while(abc) t=a; a=b; b=t; c-;printf( “ %d,%d,%d” ,a,b,c);A 1,2,0B 2,1,0C 1,2,1D 2,1,1【解答】a=1,b=2,c=2(1)表达式 abc122
4、1 21条件成立,则执行循环体,结果为:a=2,b=1,c=1(2)表达式 abc2110 11条件成立,则执行循环体,结果为:a=1,b=2,c=0(3)表达式 abc1201 00条件不成立,循环结束。6.在下图中,阴影部分区域可用表达式_ 来表示。XabcA (x=b)&(x=c)B (x=a)|(b=x=c)C (x=b)&(x=c)D (x=a)&(b=x=c)【解答】( x=b) & (x = c)( x=b) & (x y);x = -x;if(xy) ;8. 对于循环 while(!e) 语句, !e 等价于 _ 。A e=0B e!=0C e=1;D e!=1【解答】!ee=
5、0e!=0e=1e!=1e 为 011001e为非 00010/10/19. 循环 for(i=0, j=5; +i!=- j; ) printf(“ %d %d” , 将i,j);执行 _ 。A 6次B3次C 0次D无限次【解答】(1)i=0, j=5: +i1 , -j4, i=1,j=4, 1 != 4成立;打印; i=1, j=4;(2)i=1,j=4: +I2 , -j3, i=2,j=3, 2 != 3成立;打印; i=2, j=3;(3)i=2,j=3: +I3, -j2, I = 3, j=2, 3 != 2成立;打印; i=3,j=2;(4)10. 下列程序段执行后s 值为
6、_ 。int i=5, s=0;doif (i%2) continue; else s+=i; while (-i);A 15B 9C 6D以上均不是【解答】(1)I=5,s=0: i%25%21成立: continue ;-i4, i=4 ;(2)I=4,s=0: i%24%20不成立: s=0+4=4 ;-i3, i=3(3)I=3,s=4: i%23%21成立: continue ;-i2, i=2(4)I=2,s=4: i%22%20不成立: s=4+2=6; -i1,i=1(5)I=1,s=6: i%21%21成立: continue ;-i0试题二、填空题(每小题2 分,共 20
7、分)1.表达式1+4/5+157+4%5+(8,10)的值为_ 。【解答】1+(4/5)+157+4%5+(8,10)1+0+157+4%5+(8,10)1+157+4%5+(8,10)167+4%5+(8,10)167+4+(8,10)1611+(8,10)1611+10162112. 表达式 !5 的值为 _ 。【解答】!5!(!5)!013. 表达式 (101)&4 的值为 _ 。【解答】10:00001010101:00010100(101):111010114:00000100&-00000000即 04. 假设有定义: int x=10 ;则表达式0=x=9的值为 _ 。【解答】0
8、=x=9(0=x)=9(0=10) =91=915. 下列 for 循环语句将输出 : 0 1 2 0 1 2 0 1 2. for( i=1; i=9; i+ ) printf(%2d, _);【解答】(i-1)%36.对于定义 : int m=5, y=2;当计算表达式y+=y-=m*=y后, y的值为 _ 。【解答】y+=y-=m*=yy += (y -= (m *=y)先计算 m*=y:由于 m=5, y=2,所以: m=m*y=5*210再计算 y-=10:由于 y=2 ,所以: y = y-10=2-10-8最后计算y += -8:由于 y=-8 ,所以: y = y+(-8)=(
9、-8)+(-8)-167.对于 char c;若已知其值为小写字母, 则将其转换为相应大写字母的表达式为_ 。【解答】c-a+A8. 下列语句的输出结果为 _ 。 printf(%d#%x#, 027, 27);【解答】23#1b#9.已知字符 a的 ASCII printf(%c#%d#,98,码为 97,则下列语句的输出结果为 c);_。【解答】b#99#10. 下列程序段将输出 _ 。 unsigned char x=255,y= 1; switch(!x) case 0: printf(*0*#);break; case 1:switch(y) case 0: printf(*1*#)
10、;break;case 1: printf(*2*#);break;default: printf(*3*#);【解答】*2*#*3*#试题三、程序阅读题(每小题6 分,共 30 分)1. 下列程序将输出 _ 。 #include void swap(int x, int y)intt;t=x; x=y; y=t;return;void main(void)int a=3, b=2;swap(a, b);printf(%d#%d#, a, b);return;【解答】3#2#注:尽管在函数swap() 里,形参 x和 y的值发生了交换,但根据函数参数的传递原则“实参向形参单向传值(即 x向 a
11、 赋值, y向 b 赋值),形参的改变不影响实参” ,实参变量 a 和b 的值未发生交换!2. 下列程序将输出 _ 。# include int s;int f(int m)static int k=0;for(; k=m; k+) s+;return s;void main(void )int s=1;s=f(2)+f(2);printf(%d#%d#, s, f(20);return;【解答】输出结果为:6#21#注:( 1 )全局变量 s的初始值为 0 ;( 2)在 f函数中, s是全局变量有效,而在main 函数中, s是局部变量有效;( 3)在 f函数中, k是静态变量,每次函数f调
12、用结束后,其存单元和值仍然保留。3.若输入: 1273 ,以下程序的输出结果是_ 。#include void main(void)int n, m;scanf( “%d ”,&n);m=0;while (n0) m=m*10+n%10;n/=10;printf( “%d ”,m);return;【解答】输出结果是:37214.若输入-6+15*3/5=,以下程序的输出结果是_。#include void main()int m=0, sum=0;char c, oldc=+;do c=getchar();if(c=0)m=10*m+c - 0;else if(oldc=+)sum += m;
13、elsesum -= m;m=0;oldc=c;printf(%d#, sum); while(c!=); return;【解答】 0#-6#9#6#1#程序的意思:对输入的字符串扫描,若碰到数字字符序列,求出相应的整数值 m;若碰到其它字符若字符是 +号,则将 m值加入到 sum 中去;若字符不是 +号,则将从 sum 中减去 m值。5.若输入: how are you? #include void main(void )回车 ,以下程序的输出结果是_。int word;char ch;word=0;while(ch=getchar()!=?)if(ch= ) word=0;else if(
14、word=0)word=1;if(ch=a) ch=ch-a+A;putchar(ch);return;【解答】 How Are You该程序思路:碰到一个新单词,则将该单词首字母从小写改为大写,其它字符原样输出。提示:可借鉴统计单词个数程序的算法。试题四、程序填空题(每空2 分,共 30 分)1 输入正整数n ,计算 s = 1/1! + 1/2! + 1/3! +的+1/n!值。#include void main( void)int j, k, n;double f, s;scanf(%d, &n);(1) ; s=0.0for (k=1 ; k=n; k+)(2) ; f=1.0for
15、(j=1;(3); j+)j=k(4) ; f=f*js=s+1.0/f;printf(sum=%fn,(5) );return;2 输入一个整数,统计该数的位数。如:输入12534 ,输出 5;输入 -99 ,输出 2 ;输入 0 ,输出 1。#include void main(void)int count=0, number;scanf( “%d ”,(6); &numberif (number 0) number =(7); -numberdo number =(8); number/10count+; while ( (9) ); number!=0 printf( “%dn ”,count); return;3 下面程序验证“哥德巴赫猜想”:寻找 3 到 1000 间满足 “偶数 = 素数 1+ 素数 2”(如 10=3+7) 的所有偶数。素数指只能被1 和自身整除的正整数,如2, 3, 17 等; 1 不是素数。#include voidmain(void)int i, j;(10); /*prime() 函数声明 */int prime(int n)for (i=3 ; i=500; i+)for (j=2; ; j+)if
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026广西龙州县人民医院紧缺型人才招聘5人笔试备考试题及答案解析
- 2026年广东省茂名市单招职业适应性测试模拟测试卷附答案
- 2026年四川水利职业技术学院单招职业技能考试题库附答案
- 2026年心理测试性格考试题库及参考答案1套
- 2025广西百色市右江区机关事业单位选调6人备考题库附答案
- 2026广东清远市连山壮族瑶族自治县太保镇招聘公益性岗位1人笔试备考题库及答案解析
- 2025年信阳光山县淮南水利工程有限公司公开招聘工作人员2人参考题库附答案
- 2025广西北海市公共就业和人才服务中心招聘编外用工人员2人备考题库附答案
- 2025年福建莆田市秀屿区石南轮渡有限公司高级船员招聘15人备考题库附答案
- 2025年安庆市公安机关公开招聘警务辅助人员418名备考题库附答案
- 产线协同管理制度
- 灾害应急响应路径优化-洞察及研究
- T/CAQI 96-2019产品质量鉴定程序规范总则
- 2025既有建筑改造利用消防设计审查指南
- 化学-湖南省永州市2024-2025学年高二上学期1月期末试题和答案
- 广东省广州市海珠区2024-2025学年九年级上学期期末考试英语试题(含答案)
- 脊髓血管解剖及脊髓血管疾病基础
- 2025年贵安发展集团有限公司招聘笔试参考题库含答案解析
- 语文-2025年1月广西高三调研考全科试卷和答案(12地级市)
- GB/T 15972.40-2024光纤试验方法规范第40部分:传输特性的测量方法和试验程序衰减
- 陕西能源职业技术学院招聘笔试真题2023
评论
0/150
提交评论