C程序设计基础

上传人:新** 文档编号:562719241 上传时间:2023-07-23 格式:DOCX 页数:11 大小:33.27KB
返回 下载 相关 举报
C程序设计基础_第1页
第1页 / 共11页
C程序设计基础_第2页
第2页 / 共11页
C程序设计基础_第3页
第3页 / 共11页
C程序设计基础_第4页
第4页 / 共11页
C程序设计基础_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《C程序设计基础》由会员分享,可在线阅读,更多相关《C程序设计基础(11页珍藏版)》请在金锄头文库上搜索。

1、C 程序设计基础及实验课程期中考试试卷参考答案试题一、单选题(每小题 2 分,共 20 分)1. 以下正确的字符常量是。A412B255C08D【解答】A. 八进制412超出了 8位二进制所能表示的范围03ff ;B. 255是一个合法的整数,可以表示一个字节的值;C. 8不是一个合法的八进制数字;D. 是转义字符, 表示单个单引号字符本身,所以。字符常量缺少右单引号。2. 假设有定义:float x=16/5/2.0, y=16/5.0/2;贝U x和y的值分别为A. 1.5 1.6B. 1.6 1.6C. 1.5 1.5D. 1.6 1.5【解答】16/5/2.0 9 (16/5)/2.0

2、 9 3/2.0 9 1.516/5.0/2 9 (16/5.0)/2 9 3.2/2 9 1.63. 下列语句中, 将输出 %d。D . printf(“%d”)A . printf( “ %d B . printf(“%d C . printf( “ %d ”);”);”);【解答】A. %4表示输出十进制整型量,但缺少相应的输出表达式,故输出结果是随机值;B. %表示输出一个%符号本身,d是普通字符,原样输出,所以输出%d;C. %表示符号,%4表示输出十进制整型值,故输出结果是随机值;D. %表示输出符号本身,d表示输出十进制整型值。4. 下列程序段输出结果为 。int x=1, y=

3、012;printf(“%d”,y*x+);A. 12B.10C. 20D. 24【解答】x+表达式的值是 1,y*x+ 9 y*1 9 y 9 012 9 105. 下列程序段输出结果为 。int a=1,b=2,c=2,t;6.7.while(abc) t=a; a=b; b=t; c-; printf(“%d,%d,%d”A1,2,0,a,b,c);B2,1,0C1,2,1D2,1,1【解答】a=1,b=2,c=2(1) 表达式abc(2) 表达式abc(3) 表达式abc1221221101120101条件成立,则执行循环体,结果为: a=2,b=1,c=11条件成立,则执行循环体,结

4、果为: a=1,b=2,c=00条件不成立,循环结束。在下图中,阴影部分区域可用表达式来表示。baA(x=b)&(x=c)C(x=b)&(x=c)解答】x=b) & (x y);x = -x;if(xy)y = -y;printf(x=%d,y=%dn,Ax=3,y=-2x, y);Bx=3,y=2cB(x=a)|(b=x=c)D(x=a)&(b=x=c)x=b) &Cx=-3,y=2D(x y);对于循环 while(!e)Ae=0语句,!e等价于。Be!=0Ce=1;De!=1解答】!ee=0e!=0e=1e!=1e为011001e为非00010/10/19. 循环 for(i=0, j=

5、5; +i!=-j; ) printf(“%d %d”, i, j); 将执行A. 6次B. 3次C. 0次D.无限次【解答】(1) i=0, j=5: +i 9 1 , 一j 9 4, i=1,j=4, 1 != 4成立;打印;i二1, j=4; i=1,j=4: +I 9 2 , j 9 3, i=2,j=3, 2 != 3 成立;打印;i =2, j=3; i=2,j=3: +I 9 3, j 9 2, I 二 3, j=2, 3 != 2 成立;打印;i =3,j=2; 10. 下列程序段执行后s值为int i=5, s=0;do if (i%2) continue; else s+=

6、i; while (-i);D.以上均不是A.15B.9C.6【解答】 l=5,s=0: i%295%291 成立:conti nue; i 94, i=4;(2) I=4,s=0: i%294%290 不成立:s=0+4=4; i93, i=3(3) l=3,s=4: i%293%291 成立:continue; 一i92, i=2(4) I=2,s=4: i%292%290 不成立:s=4+2=6; i91,i=1(5) I=1,s=6: i%291%291 成立:continue; i9 0试题二、填空题(每小题2分,共20分)1. 表达式 1+4/5+157+4%5+(8,10)的值为

7、 【解答】1+(4/5)+157+4%5+(8,10)9 1+0+157+4%5+(8,10)91+157+4%5+(8,10) 9167+4%5+(8,10) 9167+4+(8,10)91611+(8,10)91611+1091621912. 表达式 !5的值为 。【解答】!5 9 !(!5) 9!0913. 表达式 (101)&4 的值为。【解答】10:00001010101: 00010100(101):111010114:00000100&00000000 即 04. 假设有定义:int x=10;则表达式0=x=9的值为。【解答】0=x=9 9 (0=x)=9 9 (0二10) =

8、9 9 1 = 9 9 15. 下列 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*二y O y +二(y _二(m *=y)先计算m*=y:由于m=5, y=2,所以:m二尬*二5*2910再计算_二10:由于y=2,所以:y二_10二2-109 _8最后计算 y += _8:由于二_8,所以:y 二+(_8)二(_8) + (_8) 9_167. 对于char c;若已知其

9、值为小写字母,则将其转换为相应大写字母的表达式为【解答】c_a+A8. 下列语句的输出结果为。printf(%d#%x#, 027, 27);【解答】23#1b#9. 已知字符a的ASCII码为97,则下列语句的输出结果为printf(%c#%d#,98,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*#);break;case 1: printf(*2*#);break;default: print

10、f(*3*#);【解答】*2*#*3*#试题三、程序阅读题(每小题6分,共30分)1. 下列程序将输出。#include void swap(int x, int y)int t;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赋值,y向b赋值),形参的改变不影响实参”实参变量a和b的值未发生交 换!2. 下列程序将输出。# include

11、 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调用结束后,其内存单元和值仍然保留。3. 若输入: 1273 ,以下程序的输出结果是。#include void main(void)int n, m;sca

12、nf( “ %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;elsesum -= m;m=0;oldc=c;printf(%d#, sum); while(c!=);return;【解答】0#-6#9#6#

13、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(word=0) word=1; if(ch=a) ch=ch-a+A; putchar(ch);return;【解答】How Are You 该程序思路:碰到一个新单词,则将该单词首字母从小写改为大写, 提示:可借鉴统计单词个数程序的算法。试题四、程序填空题(每空2分,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号