2017年C语言实验与习题集_第1页
2017年C语言实验与习题集_第2页
2017年C语言实验与习题集_第3页
2017年C语言实验与习题集_第4页
2017年C语言实验与习题集_第5页
已阅读5页,还剩86页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2011年C语言实验与习题集目 录一、前言:2二、福建省高等学校计算机应用水平等级考试考试大纲3三、理论习题61.第一章62.第二章(略)73.第三章 数据类型、运算符和表达式74.第四章、第五章 程序控制结构(分支、循环语句)135.第六章 数组(数组概念、二维数组、字符数组)196.第七章 函数247.第八章 善于利用指针258.第九章 第十章(结构体、共用体、文件及其他)299.宏、预处理命令、位运算及其他31四、章节编程训练331.数据类型、运算符与表达式332.分支语句编写程序,使其计算以下分段函数353.循环364.指针与数组44五、真题训练561.编程题562.填空题:683.改

2、错题:80一、 前言:C是最常见的一种高级程序设计语言,高等院校理工科专业都开设“C程序设计”课程作为程序设计入门语言。为此,福建省高校计算机水平考试委员会将其列入福建省高等院校计算机应用水平等级考试(二级C)考试科目,旨在让学生初步掌握程序设计的方法,为今后学习其他计算机课程打下基础,也为今后工作打下计算机应用基础。目前,以Turbo C为平台介绍各种算法、试题解答的书还不多。笔者从2005年担任诚毅学院工科类专业的“C程序设计”课程教学,多年来注意搜集、整理、编写Turbo C有关的算法例题、试题解答,在课堂上进行融通讲解,系统地从数值处理、图形输出、数据处理、过程模拟、算式求值、文件(字

3、符、)指针处理、数字组合、图形设计八个方面详细地介绍算法例题、试题解答程序,着重培养学生分析问题、解决问题、调试纠错的能力,让学生在扩大计算机知识面的同时,提高实际编程能力、操作能力。本习题册专为非计算机专业学生编写,主要强调学生实际动手编程能力的培养。本学期要求学生达到以下水平:19章要求学生掌握理论的基础上自己设计程序;10章以后要求学生理解知识点,能够读懂程序。编写仓促,错误之处难免,欢迎指正。91二、 福建省高等学校计算机应用水平等级考试考试大纲 二级(C语言) I、考试目的本考试考查考生以下知识与能力:1掌握语言的基本概念和语法知识;2了解C语言程序与函数的结构特点,主函数及程序执行

4、流程;3正确使用顺序、选择、循环三种结构,具有结构化程序设计的能力;4掌握常用算法,能运用算法描述工具流程图;5能使用Turbo C集成开发环境,完成源程序的编写、编译,运行与调试程序;6具有综合运用以上知识编写程序,解决计算与数据处理类问题的初步能力。II、考试内容一语言基础1C语言特点(识记);2C语言程序基本组成(识记):C语言程序的结构与主函数,程序的书写格式与规范;3基本数据类型:标识符与基本数据类型(识记),常量与变量(领会),内存的概念(识记);4基本输入、输出函数(领会):格式输入和格式输出函数,非格式化输入、输出函数;5运算符与表达式(简单应用):算术运算,增1与减1运算,关

5、系运算,逻辑运算,条件运算,位运算,赋值运算,类型转换,逗号运算,长度运算符,运算符的优先级与结合性。二程序控制结构1C语言的语句(识记):C语言语句的语法及书写规范;2顺序结构(领会):程序设计的流程图,程序控制结构中的顺序结构,复合语句;3分支结构(简单应用):if结构、if结构的多种形式,switch 结构与多分支结构;4循环结构(综合应用):当型循环,直到型循环,break语句与continue语句。三构造型数据1数组(综合应用):一维数组,字符数组,二维数组;2结构类型:结构类型的概念,结构类型定义及结构变量说明,结构变量的使用(领会),结构变量的初始化,结构数组的初始化(识记);3

6、联合类型(识记):联合类型的概念,联合类型定义和联合变量说明,联合类型的使用;4枚举型(识记):枚举型的定义和使用枚举型变量;5typedef的用途(识记):使用typedef定义新类型名。四指针1指针与指针变量(识记):指针的基本概念,指针变量的定义,指针变量的赋值;2指针运算符(领会):地址运算符与指针运算符、间接寻址;3指针与数组(简单应用):指针与一维数组,移动指针及两指针相减运算,指针比较,指针与字符串,指针与二维数组;4指针数组与指向指针的指针(识记):指针数组,定义指针数组,指针数组的应用,指向指针的指针,定义指向指针的指针变量,指向指针的指针变量的应用;5指针与结构(领会):指

7、向结构变量的指针变量,指向结构数组的指针变量。五函数1常见的系统库函数(识记):输入、输出函数(stdio.h): printf, scanf, getchar, putchar, puts,gets;字符与字符串函数(string.h):strcpy, strcat, strcmp, strlen;简单数学函数(math.h):sqrt, fabs, sin, cos, exp, log, log10, pow;2用户自定义函数(简单应用):函数定义、调用和说明,函数返回值,函数参数;3函数之间的数据传递(领会):函数数据按数值传递,函数数据按地址传递,利用函数返回值和外部变量进行函数数据传

8、递,结构变量作为函数参数传递;4函数的嵌套调用及递归调用(领会):函数的嵌套调用、函数的递归调用;5局部变量与全局变量(识记):局部变量与全局变量的定义、初始化及作用范围;6变量的存储类型与变量的初始化(领会):局部变量与全局变量的生存期,静态变量与动态变量的定义、初始化、作用范围及生存期;7编译预处理(领会):文件包含,无参宏定义。六文件1文件的基本概念,C语言中的两种文件(识记);2文件的打开、关闭和文件结束测试,文件的读写,文件的定位(识记)。七算法与编程(综合应用)1用C表达式或函数计算相对应的数学表达式;2连加与连乘的计算,级数的计算;3冒泡法排序与选择法排序;4矩阵的简单运算与显示

9、;5字符串操作;6文件编程应用。八使用Turbo C集成开发环境调试程序1源程序的编写、编辑与改错(领会);2集成环境下的求助Help(识记);3程序的编译与目标代码的生成(识记);4程序的调试(综合应用):单步运行程序,运行到光标处,断点设置,变量内容的跟踪、显示与修改;5了解Turbo C程序的常见错误提示(识记)。、考试说明一考试形式采用无纸化上机考试;考试环境: Windows XP 简体中文版, Turbo C 2.0或以上集成环境(IDE);考试时间: 90分钟。二试卷题型结构1选择题(20小题) 40%;2程序改错题(2小题) 20%;3程序填空题(2小题) 20%;4编程题(2

10、小题) 20%。三、 理论习题1. 第一章 1. C语言的函数体由()括起来。A) <>B) C) D) ()2. 下面叙述错误的是()A) 一个C源程序可由一个或多个函数组成B) 构成C语言源程序的基本单位是语句C) C源程序中大、小写字母是有区别的D) 若一条语句较长,可分写在下一行或多行上3. 下面叙述正确的是()A) 每行最多只能写两条语句B) main()函数必须位于源程序文件的开头C) 所有语句都必须以分号;结束D) 程序中必须含有自定义函数4. C源程序中main()函数的位置()。A) 必须位于程序的最前面B) 必须在自定义函数前面C) 必须在系统库函数后面D) 可

11、以在自定义函数后面5. main()函数的位置()A) 必须位于用户自定义函数的前面B) 必须位于程序文件的最前面C) 可位于用户字定义函数之前,也可位于用户自定义函数之后D) 必须位于用户自定义函数的后面6. 结构化程序设计不包括( )。A) 最优化B) 自顶而下,逐步细化C) 模块化设计D) 结构化编程7. ()是结构化程序设计应遵循的原则A) 根据需要可使用嵌套基本控制结构表示程序逻辑B) 应使用顺序、选择、循环三种基本控制结构表示程序逻辑C) 选用的控制结构可有多个入口和一个出口D) 为提高程序效率,应尽量使用goto语句8. 描述一个算法可以有不同的方式常见的有()A) 机器语言、汇

12、编语言和高级语言B) 自然语言、流程图和伪代码C) 高级语言、字软语言和伪代码D) 汇编语言、高级语言和低级语言9. 下列叙述正确的是()A) 花括号“只能用作函数体的定界符B) 注释部分可在C源程序单独占一行,也可以跟在一行语句后面C) 分号是C语句之间的分隔符,并不调试一条语句的结束D) 函数是C源程序的基本单位,所有函数名都可以由用户命名10. 下面叙述错误的是()A) 语句是构成C语言源程序的基本单位B) 所有语句都必须以分号“;”结束C) C语言源程序必须包含一个main()函数D) 注释部分在程序编译和运行时不起作用11. 能将C源程序转换为目标程序的软件是()A) 编译程序B)

13、汇编程序C) 解释程序D) 编辑程序12. 下面叙述中,( )不是结构化程序设计中的三种基本结构之一。A) 数据结构B) 选择结构C) 循环结构D) 顺序结构2. 第二章(略) 3. 第三章 数据类型、运算符和表达式1. ( )为合法的常量。A) 5,236B) 1.23E+8C) b_kD) 3.21E-6.52. 下列合法的浮点数的是()A) .66B) 123C) 2E0.5D) E23. 下列()是不正确的常量形式;A) x5B) 1.6E6C) 1E-2D) “0”4. ( )为正确的用户标识符。A) min-5B) max_atC) 3_rowD) union5. 下列()是不合法

14、的用户标识符A) DivB) _f6C) _numD) 5x6. 合法的用户标识符是()A) 0.6fB) _structC) forD) 5d7. 正确的常量是()A) a3B) “0”C) 1E6.1D) E-38. 整型常量没有()形式A) 十六进制B) 十进制C) 二进制D) 八进制9. 不合法的长整型常量是()A) 1E10B) 0LC) 6246245D) (Long)624624510. 以下( )是正确的变量名。A) a.beeB) -p11C) intD) p_1111. 以下( )是正确的变量名。A) 5fB) ifC) f.5D) _f512. 以下( )是正确的常量。A

15、) E-5B) 1E5.1C) 'a12'D) 32766L13. 以下( )是不正确的字符串常量。A) 'abc'B) "12'12"C) "0"D) " "14. 以下( )是正确的字符常量。A) "c"B) ''C) 'W'D) "32a"15. ()为非法的字符串常量A) “056”B) 123C) “D) “case”16. 下列不合法的字符常量是()A) B) “a”C) tD) n17. char型变量存放的是

16、( )。A) ASCII代码值B) 字符本身C) 十进制代码值D) 内码值18. ()为正确的字符常量A) 084B) bcdC) 165D) 19. ()运算符不能用于非整型数据运算A) /B) %C) *D) +20. 下列运算符中,优先级最高的是()A) !=B) &&C) +D) +21. 若有定义:int b=-15;则()为正确的赋值表达式。A) *b=6B) b=*5C) b+10=-5D) b+=b*322. 若有定义:float x=2,y; int a=3 ;语句y=1*(x+a)/3;运行后,y的值为()。A) 20B) 1666667C) 10D) 02

17、3. 若有定义:int a,b=5;语句a=(b/2)+b%2;运行后,a的值为()A) 3B) 4C) 0D) 224. 若已经定义:int i,j,k; double x;则下列表达式中语法正确的是()A) j+=(k=4)*jB) x%5C) i=k+2jD) j+2=k25. 若已定义:int n=10,i=4;则赋值运算n%=i+1执行后,n的值是()。A) 1B) 0C) 2D) 326. 若已定义int k=5;float d=3.5;则表达式d+k%3/2的值为()A) 45B) 35C) 4D) 5527. 下面叙述正确的是()A) 2/3与2%3等价B) 5/(int)4.

18、0与5/4等价C) +2与 3等价D) +2与3等价28. 若有定义:int a,b=6;语句a=-b;运行后,a、b的值分别是()。A) 6 6B) 56C) 55D) 6529. 若有定义:int i=3,j=6;则表达式(-i)*(j+)的值为()。A) 10B) 18C) 15D) 1230. 若已经定义:int i=5,j;则语句j=(+i)+(i-);运行后的j的值为()A) 11B) 9C) 10D) 1231. 若已经定义:int x,y,z;则()是不正确。A) x=y+=10*x;B) x=10,y=6;C) x=2.5;D) z=y+x=3032. 若已经定义: doub

19、le x;下列可以用于求x的绝对值的数学函数是()A) fabs(x)B) sqrt(x)C) abs(x)D) labs(x)33. 已知int a='R' 则正确的表达式是( )。A) a=int(3e2)B) 2*a=a+C) a=a+a=a+3D) a%1034. 已知char a='R' 则正确的赋值表达式是( )。A) a=(a+)%4B) a+2=3C) a+=256-D) a='078'35. 语句a=(3/4)+3%2;运行后,a的值为( )。A) 0B) 1C) 2D) 336. 设整型变量a为5,使b不为2的表达式是( )。

20、A) b=(+a)/3B) b=6-(-a)C) b=a%2D) b=a/237. 设单精度型变量f、g的值均为2.0,使f为4.0的表达式是( )。A) f+=gB) f-=g+2C) f*=g-6D) f/=g*1038. 若有定义:int k,i=2,j=4;则表达式k=(+i)*(j-)的值是( )。A) 8B) 12C) 6D) 939. 若有定义: int a=3;语句a+=a-=a*a;运行后,a的值为()A) 6B) 0C) 12D) 340. 若有定义:int b=-15; 则()为正确的赋值表达式。A) b=*5B) *b=6C) b+10=-5D) b+=b*341. 下

21、面叙述正确的是( )。A) 2/3 与 2.0/3.0 等价B) (int)2.0/3 与 2/3 等价C) +5 与 6 等价D) 'A'与"A"等价42. 若有定义int x=1,y=2,n=3;则()为正确的表达式。A) x=y*3,y=(x+n)/yB) (x+y)(y+n)C) float(y/n)D) x=ny43. 若有定义:float x=3.5;int z=8;则表达式 x+z%3/4 的值为( )。A) 3.75B) 3.5C) 3D) 444. 若有定义:float x=3.5,y=3.6,则表达式()的值为6。A) (int)x+(i

22、nt)yB) (int)(x+y)C) int(x+y)D) xy45. 下面叙述正确的是()。A) (3+9)+是正确的表达式B) “abc”+”xxx”是正确表达式C) c语言中整型与字符型变量的混合运算表达式的结果是整型D) 模运算符%两边运算数的数据类型是任意的46. 下列四个运算符,按优先级别由高到低排列的是()A) !、%、=、=B) %、!、=、=C) !、%、=、=D) !、=、%、=47. 若已定义:int x=3,y=2;则下列不正确的赋值表达式是()A) x-=x+=y;B) x=y+2C) x-y=1;D) x=2,y=2;48. 若有定义:int x;char c=A

23、;则正确的赋值表达式是().说明A的ASCII码的十进制值为65,a的ASCII码的十进制值为97A) x=c+ABCB) x=c+32C) x=c+CBAD) x=ABC49. 若有定义:char c1=A,c2=B;语句printf(“%d+%d=%d”,c1,c2,c1+c2); 运行后的结果为()。说明:A的ASCII码的十进制值为65A) 6565ABB) A+B=131C) 65+66=131D) A+B=AB50. 下面叙述错误的是()。A) 算术运算符中只有“*”、“/”优先级高于关系运算符B) 模运算符“%”是C语言基本的算术运算符C) 算术运算符中不包含“=”运算符D) 自

24、加和自减运算符只能用于变量,而不能用于常量或表达式51. 下面关于算术运算符的叙述,错误的是( )。A) %(模运算符)的运算对象只能为整型量B) 算术运算符的结合方向是"自左至右"C) 自加和自减运算符的结合方向是"自右至左"D) 其运算对象不包含函数52. 若已定义:int x=11;double y=3.5;则表达式y/2+x%2/2的值是()A) 3.5B) 1.0C) 1.5D) 1.7553. 若已经定义:int x=2,y;则执行语句y=x%2+(-x);后y的值是()A) 0B) 3C) 1D) 254. 若已经定义:double x=3

25、,y;int z=2;则语句y=(x+z)/2*z;执行后,y的值为()A) 4.0B) 1.0C) 1.25D) 5.055. 若已经定义:double x,y;则下列表达式不能正确计算(x-2)/3*y的是()A) (x-2)*y*1/3B) y/3*(x-2)C) y*(x-2)/3D) (1/3)*(x-2)*y56. 若已经定义:double x=2.5;则求x的平方的正确的函数调用是()A) sqrt(x)B) pow(x,2)C) exp(x)D) rand(2,x)57. 若已经定义:double x;则 exp(x)+sqrt(x)/2所表示的数学式是()58. 对应代数表达

26、式3a÷(b+c),C语言的表达式是()A) 3*a(b+c)B) 3a/(b+c)C) 3*a/b+cD) 3*a/(b+c)59. 若已经定义:double a,b,c;下列表达式中与(ab)*c/2 计算结果不相符合的是()。A) (ab)*c/2B) (ab)*c*1/2C) c/2*(a-b)D) (1/2)*(a-b)*c60. 若已经定义:int a=1,b=2,c=2;则表达式(a+b)/1.0/c的值是()A) 0.0B) 1.0C) 1D) 1.561. 下面叙述正确的是( )。A) 强制类型转换运算的优先级高于算术运算B) 若a和b是整型变量,(a+b)+是合法

27、的C) 'A'*'B' 是不合法的D) "A"+"B"是合法的62. 若已定义:int x=2,y=4;则表达式(double)x/y+y%x的值是()A) 2B) 2.5C) 0D) 0.563. 若已经定义:long int i; char c; double x;则表达式i*c+(int)x的结果的类型是()A) long intB) int C) doubleD) char64. 若已经定义:int n=2 ;double x=2.5;则下列表达式中不符合语法的是()A) (int)(x/n)B) (int)x%n

28、C) (int)(x%n)D) (int)x/n65. 若已经定义:int i=2,j=2;float x=2.5,y=3.5;则表达式(float)(i+j)/2+(int)x%(int)y的值为()A) 4.5B) 4.0C) 3.0D) 3.566. 若有定义:float x=3.5,y=5.5;则表达式()的值为2.A) (int)x+y%7B) (int)(x+y)%7C) int(x+y)%7D) (x+y)%767. 若有定义:int x=2;则正确的赋值表达式是( )。A) a-=(a*3)B) double(-a)C) a*3D) a*4=368. 若已经定义:int b=7

29、;float a=2.5,c=4.0;则表达式a+(b/2*(int)(a+c)%4的值是()A) 45B) 55C) 25D) 3569. getchar()函数的功能是获取终端输入的()A) 一个字符B) 多个字符C) 一个整型变量表达式D) 一个实型变量值70. 只能向终端输出一个字符的是().A) printf()函数B) getchar()函数C) scanf()函数D) putchar()函数71. 若有定义int a=8,b=5;要实现输出形式为:8*5=40,正确的printf()函数调用语句是()A) printf(“%d*%d=%dn”,a,b,a*b);B) printf

30、(“a*b=%dn”,a*b);C) printf(“%d*%d=a*bn”,a,b);D) printf(“a*b=a*bn”);72. 若有定义float x;要从键盘输入数据6.02赋给x,则应选用()语句。A) scanf(“%8.2f”,&x);B) scanf(“%4.2f”,&x);C) scanf(“%f”,&x);D) scanf(“%1.2f”,&x);73. 若已定义:float f; char s20;下列正确的输入语句是()。 注:参考数组章节知识A) scanf(“%s%f”,s,f);B) scanf(“%c%f”,s,&f

31、);C) scanf(“%s%f”,s,&f);D) scanf(“%s%f”,&s,f);74. 若有定义:int x=1234,y=123,z=12;则语句printf("%4d+%3d+%2d", x, y, z);运行后的输出结果为( )。A) 123412312B) 12341234123412341231231231212C) 1234+1234+1234D) 1234+123+1275. 若有语句int a;char c;scanf(“%3d%c”,&a,&c);为将整数135赋给a,字符6赋给c,正确的数据输入方式是()。说明

32、:<CR>代表换行,_代表空格A) 135_6_B) 135_6<CR>C) 1356<CR>D) 135<CR>6<CR>76. 已知 char a;使用scanf()函数输入一个字符给变量a,不正确的函数调用是( )。A) scanf("%d",&a);B) scanf("%lf",&a);C) scanf("%c",&a);D) scanf("%u",&a);77. 要使用以下程序给三个整变量x1,x2,x3分别赋之值

33、1,2,3,正确的数据输入格式是()int x1,x2,x3;scanf(“%d,%d,%d”,&x1,&x2,&x3);A)1,2,3B)1 2 3C)123D)12378. 若已经定义:char c;则下列正确的输入语句是()A) gets(c);B) scanf(“%c”,c);C) getchar(c);D) scanf(“%s”,&c);79. 若已经定义:int x=5,y=7;正确实现输出形式:5+7=12的语句是()A) printf(“%d+%d=%d”,x,y,x+y);B) printf(“x+y=x+y”);C) printf(“%d+%

34、d=x+y”,x,y);D) printf(“x+y=%d”,x+y);80. 要使下列程序段输出的内容为12312345,正确的输入数据格式是()int i,j,k;scanf(“%d%d%d”,&I,&j,&k);printf(“%d%d%dn”,i,j,k);A) 12312345B) 123 123 45C) 123,123,45D) 123,1234581. 若有定义:int x,a;则语句x=(a=3,a+1);运行后,x、a的值依次为( )。A) 3,3B) 4,4C) 4,3D) 3,482. 若已经定义:int x; 则逗号表达式x=5,3+x,x=x

35、*2的值是()A) 15B) 5C) 10D) 1683. 语句x=(a=3,b=+a);运行后,x、a、b的值依次为( )。A) 3,3,4B) 4,4,3C) 4,4,4D) 3,4,384. 若有定义:int x,y,z;语句x=(y=z=3,+y,z+=y);运行后,x的值为()A) 7B) 3C) 8D) 64. 第四章、第五章 程序控制结构(分支、循环语句)1. 若有定义:int a;则表达式( )不能用来判断a值为奇数是“真”,偶数是“假”A) a%21B) !(a%2=0)C) a%2D) !(a%2)2. 若已经定义int x,y;则下列不能正确表示数学关系式|x-y|>

36、;5的表达式是( )A) (x-y)>5 | (x-y)<-5B) (x-y)<-5&&(x-y)>5C) abs(x-y)>5D) (x-y)*(x-y)>253. 判断char型变量C1是否为小写字母的正确表达式为( )A) (a>=c1)&&(z<=C1)B) (c1>= a)&&( C1<= z)C) a<=c1<=zD) (c1>= a)&&( C1<= z)4. 若已定义:int a=0,b=1;则下列表达式值为真的是( )A) a!=

37、0|b!=1B) a+&&b+C) (a=0)&&(b=1)D) a=1|a!=15. 若已经定义: int x=2,y=3;则下列表达式值为假的是( )A) x&&yB) x>y|x<yC) x=(y=x)D) !x|!y6. 若有定义:int a;且表达式!a的值为0,则表达式( )的值为1.A) a= =0B) a=0C) !(a<0|a>0)D) a!=07. 若有定义:int a=1,b=2,c=3,d=4,t=2,k=2;语句(t=a<b)|(k=c<d);运行后,k的值为( )。A) 2B) -1

38、C) 0D) 18. 若已定义:int a=3,b=4,c=5;则下列表达式中值为0的是( )A) a|b+c&&b-cB) a<=bC) !(a<b) && !c|1)D) a&&b9. 能正确表示a和b同时为正或同时为负的逻辑表达式是( )A) a*b>0B) (a+b>0)&&(a+b<0)C) (a>0|b>0)&&(a<0|b<0)D) (a>0&&b>0)&&(a<0&&b<0)

39、10. 若已定义int x=5;则下列程序段的运行结果是( )。if(x-)<5) printf(“%dn”,x);else printf(“%dn”,x+);A) 5B) 4C) 6D) 311. 下列程序段的运行结果是( )。int k=8;switch(k%5)default:printf(“DD”) ; case 1:printf(“AA”);break;case 2:printf(“BB”);case 0:printf(“CC”);A) AAB) DDC) CCD) DDAA12. 下列程序段运行后sum的值为( )。int i=8,sum=0;while(i-)>=5)

40、 sum+=2;A) 10B) 6C) 8D) 413. 若已定义int k=4,s=10;则下列程序段运行结果是( ) if (2*k>9) s=k+5;printf("%dn",s+k);A) 13B) 19C) 10D) 1414. 下列程序段运行后m的值为( )int i,j,m=0;for(i=1.i<=3.i+) for(j=2;j<=4;j+) m=m+i+j;A) 33B) 30C) 45D) 2715. 下列程序段运行后sum的值为( )。int i=8,sum=0;while(i-)>=5)sum+=2;A) 4B) 6C) 8D

41、) 1016. 若已定义int k;下列( )语句与其他三条语句不等价。A) if(k=0) printf(“Yes!n”); else printf(“No!n”);B) if(k=0) printf(“No!n”); else printf(“Yes!n”);C) if(k!=0) printf(“Yes!n”); else printf(“No!n”);D) if(k) printf(“Yes!n”); else printf(“No!n”);17. 若已定义:int i=5,m=1;则( )语句不会产生无限循环。A) while(i=1) m+=3;B) for( ; i>0;

42、i-) m+=3;C) dom+=3;while(i=5);D) for( ;i<10; )m+=3;18. 下列程序段运行时,语句k+=2;执行的次数是( )。int i,k=0;for(i=7;i>3;i- -,i- -)k+=2;A) 1B) 2C) 3D) 419. 叙述正确的是( )。A) while循环体至少无条件执行一次,而do.while循环体可能都不执行B) for循环中,不能用break语句跳出循环体C) for循环中循环体可包含多条语句,但必须用括起来D) while循环中,不能用break语句跳出循环体20. 若已定义:int m=3,n=2,k;则下面正确

43、的switch语句是( )。A) switch(m+n)case 3: k=m+n; break;case 2: k=m-n; break;default: k=m*n;B) switch(m+n)case is 3: k=m+n; break; case is 5:k=m-n;break; default: k=m*n;C) switch(m)case m<0: k=m+n;break; case m=0: k=m-n;break; default: k=m*n;D) switch(m+n) case 3: k=m+n;break; case 2: k=m-n;break; defau

44、lt: k=m*n;21. 设有程序段 int h=8; while(h=0) h=h-2; 叙述正确的是( )。A) 循环语句执行1次B) 循环语句执行3次C) 循环体语句一次也不执行D) 循环体语句执行4次22. 以下程序段的运行结果是( )。int a=-6,b;if(a>0) b=9;else if (a=0) b=0;else if(a<-5) b=-8;else b=-1;printf("%dn",b);A) -1B) -8C) 9D) 023. 以下程序段运行后x的值为( )。int i,x=1;for(i=3;i>0;i-)x=(x+1)*

45、3;A) 54B) 27C) 66D) 924. 以下程序段运行后m的值为( )。int i,m=3;for(i=1;i<=3;i+)m+=1;if(m%2!=0)break;m+=2;A) 6B) 7C) 9D) 825. 以下程序的运行结果是( )。void main() int s5=1,i;for(i=1;i<5;i+)si=si-1+i;for(i=0;i<5;i+)printf("%d ",si);A) 1 2 4 6 8B) 1 2 3 4 5C) 1 2 4 7 11D) 1 2 6 10 1526. 以下程序的运行结果是( )。void

46、main()int k=5; switch(k) default: printf("%d",k) case 1: printf("%d",k); break; case 2: printf("%d",2*k);case 3: printf("%d",3*k); break;A) 5B) 15C) 10D) 5527. 以下程序段运行后m的值为( )。int i,m=1;for(i=1;i<=4;i+) m+=1;if(m%2=0)continue;m+=2;A) 6B) 5C) 12D) 95. 第六章 数组

47、(数组概念、二维数组、字符数组)1. 下列程序段的运行结果是( )。int a=1,3,4,6,9,i,x=1;for(i=0;i<3;i+)x+=ai+i;printf(“%dn”,x);A) 15B) 10C) 9D) 142. 下列程序段的运行结果是( )。int a=8,7,6,5,4,3,2,1,i,sum=0;for(i=0;i<8;i+)if(i<=3) sum+=ai;else sum - = ai;printf(“%dn”,sum);A) 15B) 16C) 10D) 03. 对二维数组arr初始化正确的是( )。A) int arr23=1,2,3,4,0

48、;B) int arr23=1,2,3,4;C) int arr2=1,2,3,4,5;D) int arr=1,3,4,5;4. 下列程序的运行结果是( )。void main()int a5=2,3,5,11,4,b5=12,1,6,9,8;int *pa=a,*pb=b;int i;for(i=0;i<5;i+)if(*(pa+i)<*(pb+i)printf(“%d ”,*(pa+i);A) 11B) 5C) 2D) 5 45. 下列程序段的运行结果是( )。int a=0,1,2,3,4,5,6,7,8,9,i=0,t;while(i<=7)t=ai;ai=ai+2

49、;ai+2=t;i+=2;for(i=0;i<10;i+)printf(“%d”,ai);A) 1357924680B) 2468013579C) 2143658709D) 01234567896. 下列程序段的运行结果是( )。int a33=1,2,3,4,5,6,7,8,9,i;for(i=0;i<3;i+)printf(“%2d”,10-a2-ii);A) 9 5 1B) 3 5 7C) 7 5 3D) 8 4 17. 若已定义char stra50,strb50;能正确从键盘读入字符串的是( )A) scanf(“%s%s”,stra,strb);B) getch(str

50、,strb);C) scanf(“%s%s”,stra50,strb50);D) gets(strb,stra);8. 下列程序定义的二维数组a的() #define M 3 #define N 4 void main() int aMN; A) 第一维和第二维都为3B) 第一维为3,第二维为4C) 第一维和第二维都为4D) 第一维为4,第二维为39. 下列叙述正确的是()。A) 数组中每一个原属都属于同一个数据类型;B) C语言中,数组长度在程序运行中可作动态调整;C) 可利用数组名引用数组的第一元素;D) 定义数组时,若不加类型说明符则为整型;10. 下列程序段的运行结果是( )。char

51、 str = Y,o, u, 0, a, r, e, 0, w, e, l, c, o, m, e;puts(str);A) You areB) welcomeC) You are welcomeD) You11. 若已定义:char str120=”guangzhou”,str220=”2010”;能形成字符串”GUANGZHOU 2O1O”的语句是()。A) strcpy(str2,strupr(str1);B) strcat(strupr(str1),str2);C) strcpy(strupr(str1),str2);D) strcat(str2,strupr(str1);12. 若已

52、定义:char str20=“Good0morning”;则函数strlen(str)的值是()A) 12B) 6C) 4D) 513. 下列程序段的运行结果是()char s17=”abcdef”,s24=”123”;strcpy(s1,s2);printf(”%s %c”,s1,s14);A) 123 e B) abcC) abc eD) 12314. 下列程序段的运行结果是( )。int a=1,3,4,6,9,i,x=1;for(i=0;i<3;i+)x+=ai+1;printf(“%dn”,x);A) 15B) 14C) 9D) 1015. 若已定义:int a4=1,2,3,4,5,6,7,8,9,10,11;则a22的值为( )。A) 4B) 6C) 7D) 1016. 给数组a所有元素赋初值0的语句是( )。A) int a9=9*0;B) int a9=0;C) int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论