计算机水平考试手册

上传人:沈*** 文档编号:46617597 上传时间:2021-12-14 格式:DOC 页数:58 大小:402KB
收藏 版权申诉 举报 下载
计算机水平考试手册_第1页
第1页 / 共58页
计算机水平考试手册_第2页
第2页 / 共58页
计算机水平考试手册_第3页
第3页 / 共58页
资源描述:

《计算机水平考试手册》由会员分享,可在线阅读,更多相关《计算机水平考试手册(58页珍藏版)》请在装配图网上搜索。

1、计算机水平考试复习手册(二级C语言程序设计)目 录第一部分全国高等学校计算机C语言程序设计考试纲要2 第二部分章节习题第1章 c语言概述4第2章 数据类型、运算符与表达式4第3章 简单的c程序设计7 第4章 选择结构程序设计8第5章 循环控制10 第6章 数组12第7章 函数14第8章 编译预处理17第9章 指针18第10章 结构体与共同体21第11章 位运算23第12章 文件23 第三部分 专题训练(一) 阅读程序写出运行结果24(二)程序改错28(三)程序填空30(四)程序设计31第四部分 计算机基础部分33第五部分 全国高等学校(安徽考区)计算机水平考试试题册(2009.6)36第六部分

2、 参考答案第二部分 章节习题参考答案40第三部分 专题训练参考答案42第四部分 基础部分参考答案48第五部分 全国高等学校(安徽考区)计算机水平考试试题册(2009.6)参考答案48第一部分 考试纲要全国高等学校(安徽考区)计算机水平考试C语言程序设计考试纲要【课程代号】240【考试大纲】参考全国高等学校(安徽考区)计算机基础教育教学(考试)大纲2005版-C语言程序设计课程教学(考试)大纲-安徽省教育厅组编-安徽大学出版社 ISBN 7-81052-647-2【考试形式】笔试+机试1笔试部分:主要测试C语言的基本知识,包括基本的概念、常见的库函数的使用、数组和函数的应用、结构体和共用体、指针

3、的应用、文件的基本操作以及编译预处理和C+基础。笔试题型和分值分配如下表,考试时间为120分钟,所有考点统一考试:题型题数每小题分值题目说明总分值选择40110题计算机文化基础30题C语言程序设计40填空102C语言程序设计20阅读程序4-54-5C语言程序设计20程序设计2-45-10C语言程序设计202机试部分:主要测试程序阅读、调试及设计的综合能力,以测试操作能力为主。机试由各考点自主安排,考试时间为60分钟,但必须在考试办规定的时间内完成。题型题数单元分值题目说明总分值Windows55基本的Windows操作25改错15三处错误15填空110三个空30程序设计1-语法15分,结果15

4、分30考试成绩由两项成绩加权合成。笔试和机试各占50%。每年两次考试,考试时间一般安排在学期末期,具体内容见考试网站:3、关于本次修改的说明1考试命题中的考核要求包括了解、理解、掌握、应用、技能、综合。试题总体平均难易度为0.7-0.75,区分度为25-30%。2考试调试程序环境可以使用Turbo C 2.0,也可以使用Visual C+ 6.0。3上机考试软件可以自由选择(2)中的两个平台之一。4使用Visual C+ 6.0作为调试程序平台时,请勿使用C+类及函数。【主要测试知识点】C语言基础、输入输出函数、三种基本程序结构、数组、结构体和共用体、枚举、函数、指针、编译预处理、文件、C+基

5、础。【考试内容提纲】1语言概述。C语言的发展和特点、C语言基本词法;算法和流程图等。2数据类型、运算符和表达式。数据类型、常量与变量、运算符与表达式和数据类型转换。3程序流程。C语言语句、顺序结构、数据输入与输出函数(printf和scanf)、选择结构(if 语句和switch语句)、循环结构(while 循环、do while 循环、for 循环、break、continue、goto语句、循环的嵌套)。4数组。一维数组和二维数组的定义、引用、存储、初始化和应用;字符数组与字符串的定义与初始化和应用。5函数。模块化程序设计方法、函数的定义和调用、函数间的参数传递(值传递和地址传递)、函数的

6、递归调用、变量的作用域和存储方式、内部函数和外部函数。6指针。指针的概念、指针变量的定义与初始化、指针的运算、多级指针;数组指针、指针数组、指针与字符串;指针作为函数参数、指针函数、指向函数的指针;带参数的main函数。7结构体、共用体与枚举。结构体类型的定义、结构体类型变量、结构体类型数组、结构体类型指针、结构体与函数;共用体概述和简单应用;枚举概述和简单应用;类型定义符typedef;链表概述和基本操作。8位运算。位运算的基本概念和简单应用。9文件。文件概述及分类、文件存取方式;FILE结构指针、文件的打开操作、文件的关闭操作、文件的读写操作;文件的定位;文件的检测;编译预处理(宏定义、文

7、件包含和条件编译)。10面向对象及C+简介。C+概述、C+对C的扩充、C+的面向对象程序设计。第二部分 章节习题第1章c语言概述(一)选择题1. 一个c程序的执行是从 。a. 本程序的main函数开始,到main函数结束b. 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束c. 本程序文件的第一个函数开始,到本程序main函数结束d. 本程序的main函数开始,到本程序文件的最后一个函数结束2. 以下叙述不正确的是 。a. 一个c源程序必须包含一个main函数b. 一个c源程序可由一个或多个函数组成c. c程序的基本组成单位是函数d. 在c程序中,注释说明只能位于一条语句的后面3.

8、以下叙述正确的是 。a. 在对一个c程序进行编译的过程中,可发现注释中的拼写错误b. 在c程序中, main函数必须位于程序的最前面c. c语言本身没有输入输出语句d. c程序的每行中只能写一条语句4. 一个c语言程序是由 。a.一个主程序和若干个子程序组成b. 函数组成(注:函数是c程序的基本单位)c. 若干过程组成d. 若干子程序组成5. 一个可编译运行的c语言源程序中, a.主函数有且仅有一个 b.可以有多个主函数c.必须有除主函数以外的其他函数d.可以没有主函数6. 结构化程序设计规定的三种基本控制结构是 a.顺序、选择和转向b. 层次、网状和循环c. 模块、选择和循环d.顺序、选择和

9、循环7. 关于c语言程序书写的说法,以下必须遵守的规则是 a.程序语句必须占一行 b.采用缩进书写格式c.全部采用小写字母 d.每条语句用分号结束8. 计算机能直接执行的程序是 。a.源程序b.目标程序c.汇编程序d.可执行程序9. 源程序test.c经编译产生的目标文件和连接后产生的可执行文件是a. test.bak和test.objb. test.obj和test.exec. test.exe和test.c d. test.bak和test.exe10. Turbo c中,仅能连续完成编译和连接操作的热键是a.Alt+F9 b.Ctrl+F9 c.F9 d.Alt+F5(二)填空题1. C

10、程序开发的四个步骤是 、 连接和执行。2. 在Turbo c集成开发环境下,将当前文件以指定的文件名存盘的功能热键是 。3. 程序分为三种基本结构,即 、分支结构、循环结构。4. 在Turbo c2.0中,装入文件的快捷键是 。5. 在Turbo c2.0中,查看运行结果的快捷键 。6. 在Turbo c2.0中,激活主菜单的热键 。7. 在Turbo c2.0中,退出Turbo c的热键 。第2章 数据类型、运算符与表达式(一)选择题1. 下列四组选项中,均不是c语言关键字的选项是 。a. define if while b. getc char printfc. include cases

11、canfd. type gopow2. 下列四组选项中,均是不合法的用户标识符的选项是 。a. wp_0 dob. b-a goto intc. float la0_ad. 123 abctemp3. 以下选项中属于C语言的数据类型是 。a.复数型b.逻辑型c.双精度型d.集合型4. 在C语言中,不正确的int 类型的常数是。a.32768 b.0 c.037d.0xaf5. 以下合法的长整形常量的是 a.5876b.0Lc.2E10d.”5876”6. 在c语言中,数字027是一个 a.八进制 b.十六进制 c.十进制d.非法数7. C源程序中不能表示的数制是a.二进制b.八进制c.十进制d

12、.十六进制8. 以下存储十进制数据2010的最佳方式是 a.float f=2010;b.char c=2010;c.int i=2010;d.double d=2010;9. 以下 符合c语言语法的实型常量a.1.3e0.5 b. .7e-2 c.3.14e d.e510. 下列四组选项中,均是合法转义字符的选项是 。a. ” nb. 017”c. 018 fxabd. 0 101xlf11. 下面正确的字符常量是 。a. “c” b. c.d.t e.97 f.6512. 设有语句:char a=123;则变量a a.包含1个字符b.包含2个字符c.包含3个字符d.说明不合法13. 已知c

13、har a=103;则语句printf(“%3d”,a);执行后的输出结果为 a. 67b.cc.67 d.103(注:a答案中67前有一个空格)14. c语言中,double、long、unsigned int、char类型数据所占的字节数分别是 a.8,2,4,1 b.2,8,4,1c.4,2,8,1 d.8,4,2,115. 以下叙述不正确的是 。a. 在c程序中,逗号运算符的优先级最低b. 在c程序中,MAX和max是两个不同的变量c. 若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,b中的值不变d. 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能

14、输入实型数值16. 以下叙述正确的是 。a.在c程序中,每行只能写一条语句b. 若a是实型变量,c程序中允许赋值a=10,因此实型变量中允许存放整型数c. 在c程序中,%是只能用于整数运算的运算符d. 在c程序中,无论是整数还是实数,都能被准确无误地表示17. 已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2A+6-3后,c2中的值为 。a. Db. 68 c. 不确定的值 d. C18. sizeof(float)是 。a. 一个双精度型表达式 b. 一个整型表达式c. 一种函数表达式d. 一个不合法的表达式19. 设c语言中,一个int型数据在内存中占2个字节,则un

15、signed int 型数据的取值范围为 。a. 0255 b. 032767 c. 065535 d. 0214748364720. 若x为unsigned int型变量,则下面的语句执行结果是x=65534;printf(“%d”,x);a.65534b.2c.无定值d.-221. 若有以下定义 define a 4 int x0;float y1.12;char za;则下面错误的语句是a. a+b. x+ c. +y d. +z22. 下列最终运算结果的数据类型不是单精度的表达式是 a.(int)(3+3.0)b.1e-3c.(float)(3)d.(int)3.0+3.023. c语

16、言中,要求参加运算的数必须是整型或字符的运算符是a./b.!c.%d.=24. 设整型变量a的值为2,下列表达式值为1的是a.a%3b.a/3c.-ad.a+25. int a=3,b=15;float f=7.5;printf(“%.1f”,(float)a+b/2+(int)f%3);执行该程序后,运行结果为 a.11b.11.0c.11d.12.026. 以下程序段:int b;printf(%d,b);的输出结果是 。a.无输出 b.结果不确定c.0 d.127. 已知int i;float f;下面正确的表达式是 a.(int f)%i b.int(f)%i c.int(f%i)d.

17、(int)f%i28. 在c语言中,char型数据在内存中的存储形式是 。a.补码b.反码c.原码d.ASCII码29. 设有:float a=2,b=4,h=3;,以下c语言表达式中与代数式计算结果不相符的是 a.(a+b)*h/2b.(1/2)*(a+b)*hc.(a+b)*h*1/2d.h/2*(a+b)30. 以下选项中,与m=n+完全等价的表达式是 a.m=n,n=n+1b.n=n+1,n=nc.n=+n d.m+=n+131. 设整型变量x、y、z均为2,表达式(x+)+(y+)+(z+)的值是a.6b.7 c.8 d.932. 下面程序段执行结果是 int i=5,k;k=(+i

18、)+(+i)+(i+);printf(“%d,%d”,k,i);a.24,8b.21,8c.21,7d.24,733. int i=5,j=5;i=(ij)?i+2:i+;printf(“%d”,i);a.7 b.6c.5 d.034. 设整型变量a,b的值为8,printf(“%d,%d”,(a+,+b),b-);的输出结果是a.8,8b.8,7c.9,9d.8,935. 执行下列语句后,运行结果是 void main()int i=3,j;j=+i+i+;printf(“%dn”,j);a.6b.7c.8d.936. c语言中,设一表达式中包含有int long char和unsinged

19、的类型的变量和数据,则这四种类型数据转换的规则是a.intunsignedlongcharb.charintlongunsigned c.charintunsignedlongd.intcharunsignedlong37. 设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 。a. float b. char c. int d. double38. 以下 符合c语言语法赋值表达式a. d8+e+fd+ab. a=5+c. df8+e+d. a=%239. 若有定义语句:intx=10;,则表达式x-=x+x的值为a.-20b.-1

20、0c.0d.1040. 若a为int类型,且其值为5,则执行表达式a+=a-=a*a后,a的值是 a.-5b.-40c.-15d.不确定41. 设以下变量均为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)42. 若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 。 x=(i=4,j=16,k=32)a. 4 b. 16 c. 32d. 5243. 已知int i,a;执行语句i=(a=2*3,a*5),a+6;后,变量i的值是 (注:

21、变量a的值为多少)a.6b.12c.30d.36(二)填空题1. 若有以下int m=5,y=2;定义,则计算表达式y+=y-=m*=y后的y值是 。2. 在c语言中,一个int型数据在内存中占2个字节,则int型数据的取值范围为 。3. 若s是int型变量,且s6,则下面表达式的值为 。s%2+(s+1)%24. 若a是int型变量,则下面表达式的值为 。 (a=4*5,a*2),a+65. 若x和a均是int型变量,则计算表达式(1)后的x值为 ,计算表达式(2)后的x 值为 。(1) x=(a=4,6*2)(2) x=a=4,6*26. 若a是int型变量,则计算下面表达式后a的值为 。

22、 a=25/3%37. 若x和n均是int型变量,且x和n的初值均为5,则计算表达式后x的值为 ,n的值为 。x+=n+8. 若有定义:char c=010;则变量c中包含的字符个数为 。9. 若有定义:int x=3,y=2;float a=2.5,b=3.5;则下面表达式的值为 (x+y)%2+(int)a/(int)b10. 已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=a+8-3的值为 。11. 已知字符A的ACSII码值为65,以下语句的输出结果是_。char ch=D;printf(“%c %dn”,ch+32,ch);12. 设a为float变量,则

23、能将a中的数值保留一位小数的表达式是 13. 以下程序的功能是:将值为三位正整数的变量x中的数值按照个位、十位、百位的顺序拆分并输出,请填空#includemain()intx=256;print(%d,%d,%dn”, ,(2) ,(3) );第3章简单的c程序设计(一)选择题1. 以下合法的赋值语句是a.a=(5+b,d+,a+5); b.x=y=50 c.x+y;d.c=int(a+b); e.x1=26.8%3; f.+i;2. 设变量已正确定义,现要将a与b中的数据进行交换,下面不正确的是 a.a=a+b,b=a-b,a=a-b;b.t=a,a=b,b=t;c.a=t;t=b;b=a

24、; d.t=b;b=a;a=t;3. 已知ch是字符型变量,下面不正确的赋值语句是 。a. ch=a+b; b. ch=0; c. ch=7+9;d. ch=5+9;4. putchar函数可以向终端输出一个 。a. 整型变量表达式 b. 实型变量值c. 字符串 d. 字符或字符型变量值5. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 ;如果字符串长度小于5,则输出按方式 。a. 从左起输出该字符串,右补空格b. 按原字符长从左向右全部输出c. 右对齐输出该字符串,左补空格d. 输出错误信息6. 阅读以下程序,当输入数据的形式为:

25、25,13,10(注:表示回车),则正确的输出结果为 。 void 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. 不确定值7. 根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该为 。void main() char ch1,ch2,ch3; (输入语句) printf(“%c%c%c”,ch1,ch2,ch3); 输入形式:a b c(注:ab间有空格) 输出形式:a ba. scanf(“%c%c%c”,&c

26、h1,&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);8. 设有int x ,y;scanf(“%2d%*3d%4d”,&x,&y);当程序运行时输入123456789后,则 a.x=12 y=345b.x=12 y=678c.x=12 y=3456d.x=12 y=67899. 已知int x;float y;执行scanf(“%3d%f”,&x,&y);语句时,从键盘输入数据12345 678后,y的值为 (

27、注:12345与678之间有一个空格)a.无确定的值b.45.00000c.678.000000d.123.00000010. 若有语句scanf(“d,%d”,&a,&b);要使变量a,b分别得到10,20,下面的输入形式为a.10 20 b.10,20 c.1020 d.10:2011. 已知a、b、c为int类型,执行语句:scanf(“n=%d,b=%d,c=%d”,&a,&b,&c);,若要使得a为1,b为2,c为3,则以下选项中正确的输入形式是 a.a=1 b.1,2,3 c.a=1,b=2,c=3 d.1 2 3 b=2 c=312. 以下程序段的输出结果是( )int a=12

28、34; printf(“%2dn”,a);a.12b.34c.1234d.提示出错、无结果13. 已知int x,y;float z;,以下正确的输入语句是a.scanf(“%d%d%f”,x,y,z);b.scanf(“%d%d%f”,&x,&y,&z); c.scanf(“%d%6d%6.1f”,&x,&y,&z); d.scanf(“%d%d%f”,&x;&y;&z);14. 下列程序执行后的输出结果是 。a.-32767 b.fffec.-1d.-32768void main( ) int x=0xFFFF; printf(“%d n”,x-); 15. 有如下程序void main(

29、 ) int y=3,x=3,z=1; printf(“%d %dn”,(+x,y+),z+2); 运行该程序的输出结果是( )a.3 4b.4 2c.4 3d.3 316. 下列程序执行后的输出结果是 。void main( ) int x=f; printf(“%c n”,A+(x-a+1); a.G b.Hc.Id.J17. 以下四个选项中,不能看作c语言语句的是a. ;b. a=1,b=1,c=1; c. if(x0);d. if(b=1) k=2;n=3(二)填空题1. c标准库函数中,字符处理函数的原型在 头文件中。2. scanf函数在输入数据时默认的分隔符有 、tap和空格。3

30、. 以下的输出结果是 。void main() short i; i=-4; printf(“ni:dec=%d,oct=%o,hex=%x,unsigned=%un”,i,i,i,i);4. int a=-2;printf(“%u”,a);输出为 。5. printf(“%d,%x,%o,%u”,-1,-1,-1,-1);输出 6. printf(“%5.4fn”,12345.12345);输出 。7. printf(“%5.4fn”,12345.123451);输出 。8. printf(“%5.4fn”,12345.12346);输出 。9. 以下的输出结果是 。void main()

31、char c=x; printf(“c:dec=%d,oct=%o,hex=%x,ascii=%cn”,c,c,c,c);10. 以下的输出结果是 。void main()int x=1,y=2;printf(“x=%d y=%d * sum * =%dn”,x,y,x+y);printf(“10 squared is : %dn”,10*10);11. 假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。请填空。 a+= ; b=a- ; a-= ;12. 若x为int型变量,则执行以下语句后的x 值为 。 x=7; x+=x-=x+x;13. 有一输入语句scanf(

32、“%d”,k);则不能使float类型变量k得到正确数值的原因是 和 。第4章 选择结构程序设计(一)选择题1. 逻辑运算符两侧运算对象的数据类型 。a. 只能是0和1 b. 只能是0或非0正数c. 只能是整型或字符型数据 d. 可以是任何类型的数据2. 在c程序中,用 表示逻辑值为”真”。a.1 b.非0的数 c.非1的数d.大于0的数(注:非0的数值认作为”真”)3. 判断char型变量ch是否为大写字母的正确表达式是 。a. A=ch=A)&(ch=A)&(ch=Z) d. (A= ch)注:写出变量ch是否为数字字符的表达式4. 当c的值不为0 时,在下列选项中能正确将c的值赋给变量a

33、、b的是 。a.c=b=a; b.(a=c)|(b=c);c.(a=c)&(b=c); d.a=c=b;5. 能正确表示a和b同时为正或同时为负的逻辑表达式是 。a.(a=0|b=0)&(a0|b=0&b=0)&(a0&b0)&(a+b06. 设int x=8,y,z;执行语句y=z=x+;x=y=z;后,变量x的值是 a.0 b.1 c.8d.97. 若希望当a的值为奇数时,表达式的值为”真”,a的值为偶数时,表达式的值为”假”。则以下不能满足要求的表达式是 。a. a%2=1 b. !(a%2=0) c. !(a%2) d. a%28. 若a,b,c均为int类型变量,则执行以下语句后,a

34、,b的值为abc0;a+&+b|c+;a. 1,0 b. 0,1c. 1,1 d. 0,09. 设int a3;下列表达式的值等于0的是a. a&(a0)b. !a|a c. a%=ad. a=a10. 设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=ab)&(n=cd)后n的值为 。 a. 1 b. 2 c. 3 d. 411. 若a是int型,则逻辑表达式(a=1)|(a!=1)的值是a.1b.0c.2d.不知道a的值,不能确定12. 以下程序的运行结果是 。void main() int a,b,d=241; a=d/100%9; b=(-1)&(-1); pri

35、ntf(“%d,%d”,a,b);a. 6,1 b. 2,1 c. 6,0 d. 2,013. 以下是if语句的基本形式:if(表达式)语句其中”表达式” a.只能是关系表达式b.只能用关系表达式或逻辑表达式c.只能用逻辑表达式d.可以用任何表达式14. 已知x=3,执行语句if(x)x=1;else x=6;后x的值为 a.1 b.3c.6d.015. 已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 。 if(xy) z=x; x=y; y=z;a. x=10, y=20, z=30 b. x=20, y=30, z=30c. x=20, y=30, z=10 d.

36、 x=20, y=30, z=2016. 函数fabs(x)的功能是a.对x取整b.对x取绝对值c.对x取平方根d.计算x的平方17. 以下程序的运行结果是void main() int m=5; if(m+5) printf(“%dn”,m); else; printf(“%dn”,m-);a. 4 b. 5 c. 6 d. 718. 有以下程序#includevoid main()intx;scanf(”%d”,&x);if(x=3);elseif(x!=10)printf(”%dn”,x);程序运行时,输入的值在哪个范围才会有输出结果a.不等于10的整 b.大于3或等于10的整数c.大于

37、3且不等于10的整数 d.小于3的整数19. 阅读以下程序:void main( ) int x;scanf(“%d”,&x);if(x-5)printf(“%d”,x);elseprintf(“%d”,x+);程序运行后,如果从键盘上输人5,则输出结果是 。a.3 b.4 c.5d.620. 有如下程序void main( ) int a=2,b=-1,c=2;if(ab)if(b0)c=0;else c+;printf(“%dn”,c); 该程序的输出结果是 。a.2 b.0 c.3 d.121. 有以下程序#includeMain()inta=1,b=2,c=3,d=0;if(a=1&b

38、+=2)if(b!=2|c-!=3)printf(”%d,%d,%dn”,a,b,c);elseprintf(”%d,%d,%dn”,a,b,c);elseprintf(”%d,%d,%dn”,a,b,c);程序运行后的输出结果是a.1,2,3b.1,3,2c.1,3,3d.3,2,122. 当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是 。if(ab)if(cd)x=1;else if(ac) if(b12 ? x+10 : x-12;printf(“%dn”,y);a. 0 b. 3 c. 2 d. 124. 下面程序运行结果为 void main()char c=a;i

39、f(x=cy) z=0;else z=1;”和 等价。a.z=(xy)?1:0;b.z=xy;c.z=x=y;d.xb?a:cd?c:d的值是a. 2b. 3c. 4d. 528. int x,y,z=4;x=y=+z;x=(yz)?x+2:x+;则x的值是a.4b.5c.6d.729. 若给定条件表达式(m)?(a+):a-则其中表达式m和 等价。a.m=0b.m=1c.m!=0d.m!=130. 如下程序 void 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”,

40、a,b);该程序的输出结果是 。a.a=2,b=1b.a=1,b=1c.a=1,b=0d.a=2,b=2(二)填空题1. 表达式321的值是 。2. 表达式10a)|(a4)的值为 。4. 表示”整数x的绝对值大于6”时值为”真”的C语言表达式是 _。5. 执行语句:int a=0,b=1;则表达式a+b?+a:b的值是 。6. 条件判断语句包括if语句和 语句;7. 判断两个(float)变量x、y是否相等,一般用语句:if( )8. 有以下程序void main( ) int n=0,m=1,x=2; if(!n) x-=1;if(m) x-=2;if(x) x-=3; printf(“%

41、dn”,x);执行后输出结果是_ 。9. 若从键盘输入58,则以下程序输出的结果是_void main( )int a; scanf(“%d”,&a); if(a50) printf(“%d”,a); if(a40) printf(“%d”,a); if(a30) printf(“%d”,a); 10. 以下程序的功能是:输出a、b、c三个变量中的最小值.请填空。#includemain()inta,b,c,t1,t2;scanf(“%d%d%d”,&a,&b,&c);t1=ab?(1)_ _;t2=ct1? (2) ;printf(“%dn”,t2);11. 下列程序段的输出结果是_。int

42、 n=c;switch(n+) default: printf(“error”);break;case a: case A: case b: case B: printf(“good”);break;case c: case C: printf(“pass”);case d: case D: printf(“word”);(三)编程题1 编程实现:输入整数a和b,若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数之和。2. 编程判断输入的正整数是否既是5又是7的整倍数。若是,则输出yes;否则输出no。第5章 循环控制(一)选择题:1. 设有程序段 int k=10; whi

43、le(k=0)k=k-1; 这下面描述中正确的是_.a.while循环执行10次 b.循环是无限循环c.循环体语句一次也不执行 d.循环体语句执行一次2. 语句while(!e);中的表达式!e等价于_.a.e=0 b.e!=1 c.e!=0 d.e=13. 下面程序段的运行结果是_. int n=0; while(n+=2);printf(“%d”,n); a.2 b.3 c.4 d.有语法错d.1234c.123b.124. 下面程序的运行结果是_.#includevoid main() int num=0; while(num=2) num+; printf(“%dn”,num); a.

44、125. 以下程序的输出结果是 。void main( ) int n=4;while(n-) printf(“%d “,-n);a.2 0b.3 1c.3 2 1d.2 1 06. 以下叙述正确的是 a.do-while语句构成的循环不能用其他语句构成的循环来代替b. do-while语句构成的循环只能用break语句退出c.用do-while语句构成的循环,在while后的表达式为非0时结束循环d. 用do-while语句构成的循环,在while后的表达式为0时结束循环e. do-while循环体内不能使用复合语句f. do-while循环while(表达式)后面不能写分号g.do-whi

45、le循环的循环体至少执行1次7. 以下程序段_. x=-1; do x=x*x; while(!x); a.是死循环 b.循环执行二次 c.循环执行一次 d.有语法错误8. 若有如下语句 int x=3; doprintf(“%dn”,x-=2);while(!(-x); 则上面程序段_. a.输出的是1 b.输出的是1和-2 c.输出的是3和0 d.是死循环9. 下面程序的运行结果是_. #includevoid main() int y=10; doy-;while(-y); printf(“%dn”,y-); a.-1 b.1 c.8 d.010. 下面有关for语句的正确描述是 a.f

46、or语句只能用于循环次数已经确定的情况b.for语句是先执行循环体语句,后判断作为循环条件的表达式c.在for语句中,不能用break语句跳出循环体d.for语句的循环体中,可以包含多条语句,但必须用花括号括起来11. 若i为整型变量,则以下循环执行次数是_. for(i=2;i=0;)printf(“%d”,i-); a.无限次 b.0次 c.1次 d.2次12. 以下程序执行后sum的值是 。void main( ) int i,sum;for(i=1;i6;i+)sum+=i;printf(“%dn”,sum);a.15 b.14 c.不确定 d.013. 执行语句for(i=1;i+4

47、; );后变量i的值是_. a.3 b.4 c.5 d.不定14. 有以下循环:int i;for(i=0;i10;i+) i+;循环次数为 a.10b.5c.6d.715. 以下循环体的执行次数是 。void main( ) int i,j;for(i=0,j=1; i=j+1; i+=2, j-)printf(“%d n”,i); a.3b.2c.1d.016. 有如下程序void main( ) int i,sum;for(i=1;i=3;sum+)sum+=i;printf(“%dn”,sum);该程序的执行结果是 。a.6 b.3c.死循环d.017. 要使下面程序段输出10个整数,

48、则在下划线处填入正确的数是 for(i=0;i= ;i+=2)printf(“%d”,i);a.9b.10c.18d.2018. 有如下程序void main()int i;for(i=1;i5;i+);printf(“%d”,i);该程序的输出结果是 a.1b.4c.6d.519. 若int x=5,i;for (i=0;i5;i+)switch(i%x) case 0: case 1: case 2:printf(“0”); case 3: case 4: printf(“1”);则程序段输出结果是 a.000111 b.01 c.01010111 d.以上都不对20. 以下程序的输出结果

49、是 。void main( )int a=0,j;for(j=0;j4;j+) switch( j ) case 0: case 3:a+=2; case 1: case 2:a+=3; default:a+=5; printf(“%dn”,a);a.36b.13c.10d.2021. 以下程序的输出结果是 。void main( ) int i;for(i=A;iI;i+,i+) printf(“%c”,i+32);printf(“ n”); a.编译不通过,无输出 b.acegc.acegi d.abcdefghi22. 以下正确的描述是_. a.continue语句的作用是结束整个循环的

50、执行 b.只能在循环体内和switch语句体内使用break语句 c.在循环体内使用break语句或continue语句的作用相同 d.从多层循环嵌套中退出时,只能使用goto语句23. 对于for(;) if()continue;其中continue将转向 a. b. c.d.结束循环24. 以下程序的输出结果是()void main( ) int i;for(i=1;i6;i+) if(i%2) printf(“#”);continue;printf(“*”);printf(“n”);a.#*#*# b.# c.* d.*#*#*25. 在下面程序段中,while循环的循环次数是 int

51、k=0;while(k10) if(k=5) break; if(k1) continue; k+;a.死循环 b.10c.6d.5(二)、填空题:1. 下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。请填空。 int n=0,c; c=getchar(); while(_) if(_)n+; c=getchar(); 2. 若输入字符串:abcde,则以下while循环体将执行_ 次。 While(ch=getchar( )= e) printf(“*”);3. 设有以下程序: void main() int n1,n2; scanf(“%d”,&n2); while(n2!=0) n1=n2%10; n2=n2/10; printf(“%d”,n1); 程序运行后,如果从键盘上输入1987;则输出结果为_。4. 下面程序的功能是用”辗转相除法”求两个正整数的最大公约数。请填空。 #include

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