c语言作业答案.doc

上传人:w****2 文档编号:6533696 上传时间:2020-02-28 格式:DOC 页数:11 大小:172KB
返回 下载 相关 举报
c语言作业答案.doc_第1页
第1页 / 共11页
c语言作业答案.doc_第2页
第2页 / 共11页
c语言作业答案.doc_第3页
第3页 / 共11页
点击查看更多>>
资源描述
No.: Name:第1讲C语言概述注:本系列习题中符号表示一串字符中的空格,符号表示下划线,符号表示换行回车,即键盘上Enter键。一、选择题1. 一个C程序的执行是从A 。A) 本程序main函数开始,到main函数结束B) 本程序文件第一个函数开始,到最后一个函数结束C) 本程序文件第一个函数开始,到本main函数结束D) 本程序main函数开始,到本程序文件最后一个函数结束2. 以下叙述不正确的是D 。A) 一个C源程序必须包含一个main函数B) 一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数D) 在C程序中,注释说明只能位于一条语句的后面3. 以下叙述正确的是C 。A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面C) 语言本身没有输入输出语句D) C程序的每行中只能写一条语句4. 一个C语言程序是由B 。A) 一个主程序和若干个子程序组成B) 函数组成C) 若干过程组成D) 若干子程序组成5. 以下叙述中正确的是C 。A) C语言比其他语言高级B) C语言可以不用编译就能被计算机识别执行C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D) C语言出现的最晚,具有其他语言的一切优点6. 下列叙述中正确的是D 。A) C语言编译时不检查语法B) C语言的子程序有过程和函数两种C) C语言的函数可以嵌套定义D) C语言的函数可以嵌套调用7. 以下叙述中正确的是A 。A) 构成C程序的基本单位是函数B) 可以在一个函数中定义另一个函数C) main函数必须放在其他函数之前D) 所有被调用的函数一定要在调用之前进行定义8. C语言规定,在源程序中,main函数的位置C 。A) 必须在最开始B) 必须在系统调用的库函数的后面C) 可以任意D) 必须在最后9. 下列选项中不是结构化程序基本结构的是B 。A) 顺序结构B) 分支结构C) 选择结构D) 循环结构10. 下列四组选项中,均不是C语言关键字的是A 。A) define IF type B) getc char printfC) include case scanf D) while go pow11. 下列四组选项中,均是不合法的标识符的是B 。A) W P 0 do B) b-a goto intC) float la0 A D) -123 abc TEMP12. 下列可用于C语言标识符的一组是B 。A) void, define, WORD B) a3 b3, 123, CarC) For, -abc, IF Case D) 2a, DO, sizeof13. 以面的C程序中,错误的是D 。A) main() B) main() int x,y,z; int x,y,z;x=0;y=x-1; x=0;y=x+1;z=x+y; z=x+y;C) main() D) main() int x,z; int x,y,z;int y; x=0;y=x+1;x=0;y=x+1; z=x+y,z=x+y;14. C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符C 。A) 必须为字母B) 必须为下划线C) 必须为字母或下划线D) 可以是字母,数字和下划线中任一字符15. 下面各选项中,均是C语言标识符的选项组是B 。A) 33 we auto B) 23 me 3ewC) 43 3e else D) ER -DF 32二、填空题1. 国际上C语言常见的三个标准是: 标准C 、ANSI C 和ISO C 。2. C语言源程序的文件格式为*.c和*.h 。3. 请描述C程序中main函数的作用: 接受系统调用,开始程序的执行,直至程序结束。三、程序编写题(请在本页背面作答)1. 编写一个C程序,输出以下信息*Very Good!*2. 编写程序,实现求整数10、20和35的平均值(提示:注意给出的是三个整数,求出的平均值不是整数)1No.: Name:第2讲C语言基本数据类型一、选择题1. 若x、i、j、k都是int型变量, 则计算下面表达式后,x的值为C 。x=(i=4,j=16,k=32)A) 4 B) 16 C) 32 D) 522. 下列四组选项中,均是合法转义字符的是A 。A) n B) 017 C) 018 f xab D) 0 101 xlf3. 下面正确的字符常量是D 。A) c B) C) D) K4. 以下叙述不正确的是D 。A) 在C程序中,逗号运算符的优先级最低B) 在C程序中,MAX和max是两个不同的变量C) 若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,b中的值不变D) 从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值5. 以下叙述正确的是C 。A) 在C程序中,每行只能写一条语句B) 若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C) 在C程序中,%是只能用于整数运算的运算符D) 在C程序中,无论是整数还是实数,都能被准确无误地表示6. 已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2A+6-3后,c2的值为A 。A) D B) 68 C) 不确定的值D) C7. sizeof(float)是B 。A) 一个双精度型表达式B) 一个整型表达式C) 一种函数表达式D) 一个不合法的表达式8. 设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为C 。A) 0255 B) 032767C) 065535 D) 021474836479. 设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型D 。A) float B) char C) int D) double10. 设以下变量均为int类型,则值不等于7的表达式是C 。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)11. C语言中的基本数据类型包括B 。A) 整型、实型、逻辑型B) 整型、实型、字符型C) 整型、字符型、逻辑型D) 字符型、实型、逻辑型12. 若变量已正确定义并赋值,以下符合C语言语法的表达式是B 。A) a:=b+1 B) a=b=c+2C) int 18.5%3 D) a=a+7=c+b13. C语言中运算对象必须是整型的运算符是A 。A) %= B) / C) = D) =14. 若变量a,i已正确定义,且i已正确赋值,合法的语句是B 。A) a=1 B) +i; C) a=a+=5; D) a=int(i);15. int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是A 。A) 2.500000 B) 2.750000C) 3.500000 D) 0.00000016. 在16位C编译系统上, 若定义long a;, 则能给a赋40000的正确语句是D 。A) a=20000+20000; B) a=4000*10;C) a=30000+10000; D) a=4000L*10L;17. 设有int x=11;则表达式(x+*1/3)的值是A 。A) 3 B) 4 C) 11 D) 1218. 下列数据中,不合法的C语言实型数据的是C 。A) 0.123 B) 123e3 C) 2.1e3.5 D) 789.019. 若变量a是int类型,并执行了语句:a=A+1.6;,则正确的叙述是D 。A) a的值是字符CB) 不允许字符型和浮点型相加C) a的值是浮点型D) a的值是字符A的ASCII值加上120. 设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是B 。A) n=(n*100+0.5)/100.0 B) m=n*100+0.5,n=m/100.0C) n=n*100+0.5/100.0 D) n=(n/100+0.5)*100.021. 下面四个选项中,均是不正确的8进制数或16进制数的选项是D 。A) 016 0x8f 018 B) 0abc 017 0xaC) 010 -0x11 0x16 D) 0a12 7ff -12322. 以下选项中,与k=n+完全等价的表达式是A 。A) k=n,n=n+1 B) n=n+1,k=n C) k=+n D) k+=n+123. 下面均是合法整型常量的选项是A 。A) 160 -0xffff 011 B) -0xcdf 01a 0xeC) -01 986012 0668 D) -0x48a 2e5 0x24. 假定x和y为double型, 则表达式x=2,y=x+3/2的值是D 。A) 3.500000 B) 3 C) 2.000000 D) 3.00000025. 以下变量x,y,z均为double类型且已正确赋值,不能正确表示数学式子xyz的C语言表达式是A 。A) x/y*z B) x*(1/(y*z) C) x/y*1/z D) x/y/z26. 已知int k,m=1;执行语句k=-m+;后,k的值是A 。A) -1 B) 0 C) 1 D) 227. 已知int m;float k;正确的语句是D 。A) (int k)%m B) int(k)%mC) int(k%m) D) (int)k%m28. 不能进行+和-运算的数据类型为D 。A) 指针B) 整型C) 长整型D) 常量2No.: Name:29. putchar函数可以向终端输出一个D 。A) 整型变量表达式B) 实型变量值C) 字符串D) 字符或字符型变量值30. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。字符串长度大于5,则输出按方式B ;如果字符串长度小于5,则输出按方式C 。A) 从左起输出该字符串,右补空格B) 按原字符长从左向右全部输出C) 右对齐输出该字符串,左补空格D) 输出错误信息31. 阅读以下程序,当输入数据的形式为:25,13,10,则正确的输出结果为D 。main() int x,y,z;scanf( %d%d%d,&x,&y,&z);printf( x+y+z=%dn,x+y+z);A) x+y+z=48 B) x+y+z=35 C) x+z=35 D) 不确定32. 根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该为A 。main() char ch1,ch2,ch3;输入语句printf( %c%c%c,ch1,ch2,ch3);输入形式:A B C输出形式:A BA) scanf(%c%c%c,&ch1,&ch2,&ch3);B) scanf(%c,%c,%c,&ch1,&ch2,&ch3);C) scanf(%c %c %c,&ch1,&ch2,&ch3);D) scanf(%c%c,&ch1,&ch2,&ch3);33. 已知ch是字符型变量,下面不正确的赋值语句是A 。A) ch=a+b; B) ch=0;C) ch=7+9; D) ch=5+9;34. 若变量已正确说明为float型,要通过语句scanf(%f%f%f,&a,&b,&c);给a赋予10.0,b赋予22.0,c赋予33.0,下列不正确的输入形式是B 。A) 102233 B) 10.0,22.0,33.0C) 10.022.0 33.0 D) 10 223335. 下列程序段的输出结果是: C 。int a=1234; float b=123.456;double c=12345.54321;printf(%2d,%2.1f,%2.1f,a,b,c);A) 无输出B) 12,123.5,12345.5C) 1234,123.5,12345.5 D) 1234,123.4,1234.536. 已有定义int a=-2;和输出语句printf(%8lx,a);以下正确的叙述是D 。A) 整型变量的输出形式只有%d一种B) %x是格式符的一种,可适用于任何一种类型的数据C) %x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的D) %8lx不是错误的格式符,其中数字8规定了输出字段的宽度二、填空题1. 若有定义:int m=5,y=2;,则计算表达式y+=y-=m*=y后的y值是-16 。2. 在C语言中,一个int型数据在内存中占2个字节,则int型数据的取值范围为-3276832767 。3. 若a是int型变量,则计算表达式a=25/3%3后a的值为2 。4. 若x和n均是int型变量,且x和n的初值均为5,则计算表达式x+=n+后x的值为10 ,n的值为6 。5. 若有定义:char c=0108F0;则字符串c中包含的字符个数为5 。6. 定义int a=5,b;,则执行表达式b=+a*-a之后,变量b的值为25 。7. 已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=a+8-3的值为102或f 。8. 以下程序段的输出结果是i:dec=-4,oct=177774,hex=fffc,unsigned=65532 。main() short i; i=-4; printf( ni:dec=%d,oct=%o,hex=%x,unsigned=%un,i,i,i,i);9. 假设变量a和b均为整型,请填空使得以下语句可以不借助任何变量把a、b中的值进行交换。a+= b ; b=a- b ; a-= b ;10. 有一输入语句scanf(%d,k); 则不能使float类型变量k得到正确数值的原因是:(1) k应该加上取地址符号&,成为&k 和(2) float型数据不能用%d格式来输入。三、程序编写题(请在本页背面作答)1. 输入圆半径(5)和圆心角(60_C),输出圆的周长、面积和扇形周长、面积。2. 输入一个华氏温度,要求输出摄氏温度。公式为C _ 59 pF _ 32q,输出要有文字说明,取2位小数。3No.: Name:第3讲算法与程序基本结构一、选择题1. 如下程序的输出结果是A 。main() int x=1,a=0,b=0;switch(x) case 0: b+;case 1: a+;case 2: a+;b+;printf(a=%d,b=%dn,a,b);A) a=2,b=1 B) a=1,b=1C) a=1,b=0 D) a=2,b=22. 以下程序执行后输出结果是C 。main() int i=1,j=1,k=2;if(j+|k+) &i+)printf(%d,%d,%dn,i,j,k);A) 1,1,2 B) 2,2,1 C) 2,2,2 D) 2,2,33. 如下程序的输出结果是C 。main() float x=2.0,y;if(x0.0) y=0.0;else if(x12?x+10:x-12;printf(%dn,y);A) 0 B) 22 C) 12 D) 106. 在C程序中,判逻辑值时,用”非0”表示逻辑值”真”,又用”0”表示逻辑值”假”。在求逻辑值时,逻辑表达式值为”真”和”假”分别用A 表示。A) 1和0 B) 0和1 C) 非0和非0 D) 1和17. 以下4个选项中,不能看做一条语句的是D 。A) ; B) a=5,b=2.5,c=3.6;C) if(a=10 or a=0|a=10&a=10|a=09. 如下程序的输出结果是C 。main() int a=2,b=-1,c=2;if(ab)if(b0) c=0;else c+;printf(%dn,c);A) 0 B) 1 C) 2 D) 310. 设x,y和z都是int型变量,且x=3,y=4,z=5,则下面表达式中,值为0的表达式D 。A) x&y B) x=yC) x|+y&y-z D) !(xb)&(n=cd)后n的值是B 。A) 1 B) 2 C) 3 D) 414. 下面程序D 。main() int a=5,b=0,c=0;if(a=b+c) printf(*n);else printf($n);A) 有语法错不能通过编译B) 可以通过编译但不能通过连接C) 输出*D) 输出$15. 当k的值不为0时,在下列选项中能够将k的值赋给变量m和n的是B 。A) m=k=n B) (m=k)&(n=k)C) (m=k)|(n=k) D) (k=m)&(n=k)16. 已知int t=0; while (t=1) .则以下叙述正确的是B 。A) 循环控制表达式值为0 B) 循环控制表达式值为1C) 循环控制表达式不合法D) 以上说法都不对17. 下面程序输出结果是B 。main() int n=9;while(n6) n-; printf(%d,n);A) 987 B) 876 C) 8765 D) 987618. 在下列程序段中,没有构成死循环的是D 。A) B) C) D)int i=10; for(;); int k=10; int s=36;while(1) dok+; while(s)i=i%3+1; while(k10); -s;if(i10)break;19. 以下程序段的描述,正确的是C 。x=-1; do x=x*x; while(!x);A) 是死循环B) 循环执行两次C) 循环执行一次D) 有语法错误4No.: Name:20. 在下述程序中,判断ij共执行的次数是D 。main() int i=0,j=10, k=2, s=0; for (;) i+=k;if(ij) printf(%d,s); break;s+=i;A) 4 B) 7 C) 5 D) 621. 下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空。满足题意的选项是B 。#include main() int i=0,j,k;doi+;k=316-13*i;while( );j=k/11;printf(316=13*%d+11*%d,i,j);A) k/11 B) k%11 C) k/11=0 D) k%11=022. 下面程序的运行结果是B 。#include main() int a=1,b=10;do b-=a;a+;while(b-0);printf(a=%d,b=%dn,a,b);A) a=3,b=11 B) a=2,b=8C) a=1,b=-1 D) a=4,b=923. 执行语句for(i=1;i+4;);后变量i的值是C 。A) 3 B) 4 C) 5 D) 不定24. 关于程序段int k=10; while(k=0) k=k-1;下面描述中正确的是C 。A) while循环执行10次B) 循环是无限循环C) 循环体语句一次也不执行D) 循环体语句执行一次25. 表达式for(表达式1; ;表达式3)可理解为B 。A) for(表达式1;0;表达式3)B) for(表达式1;1;表达式3)C) for(表达式1;表达式1;表达式3)D) for(表达式1;表达式3;表达式3)26. 以下程序的输出结果是B 。main() int i,j,x=0;for(i=0;i2;i+) x+;for(j=0;j3;j+) if(j%2) continue;x+;x+;printf(x=%dn,x);A) x=4 B) x=8 C) x=6 D) x=1227. 以下描述中正确的是C 。A) 因do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句B) do-while循环由do开始,用while结束,在while(表达式)后面不能写分号C) 在do-while循环体中,先执行一次循环,再进行判断D) do-while循环中,根据情况可以省略while28. 针对下列语句说法正确的是A 。int i,x;for(i=0,x=0;i=9&x!=876;i+) scanf(%d,x);A) 最多的执行10次B) 最多执行9次C) 是无限循环D) 循环体一次也不执行29. C语言中while 和do-while循环的主要区别是A 。A) do-while的循环体至少无条件执行一次B) while的循环控制条件比do-while更严格C) do-while允许从外部转到循环体内D) do-while 的循环体不能是复合语句30. 执行程序段int k=1; while(+k4);后k值为A 。A) 4 B) 5 C) 6 D) 8二、填空题1. 执行程序段int a=1234; printf (%2dn,a);的输出结果是1234 。2. 以下程序的输出结果是16 。main()int a=0; a+=(a=8); printf(%dn,a);三、程序编写题(如本页空间不够请在背面作答)1. 编写程序求解求和公式S _ 1 12 13 14 . . .的前10项。要求画出流程图(ANSI流程图和NS流程图)。2. 编写程序实现输入整数n,输出如下所示数字组成的菱形(如n=5)。要求画出流程图(ANSI流程图和NS流程图)。11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 3 2 11 2 3 2 11 2 11
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 小学资料


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

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


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