C语言程序复习题及参考答案_第1页
C语言程序复习题及参考答案_第2页
C语言程序复习题及参考答案_第3页
C语言程序复习题及参考答案_第4页
C语言程序复习题及参考答案_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

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

文档简介

1、c语言程序设计目 录第一章 c语言程序设计概述1一、主要内容1二、练习题部分1三、参考答案3第三章 数据类型、运算符和表达式4一、主要内容4二、练习题5(一)练习题之数据类型5(二)练习题之 运算符和表达式8三、参考答案13(一)练习题之数据类型 参考答案13(二)练习题之 运算符和表达式 参考答案14第四章 顺序程序设计15一、主要内容15二、练习题15三、参考答案16第五章 选择结构程序设计17一、主要内容17二、练习题17三、参考答案22第六章 循环结构25一、主要内容25二、练习题25三、参考答案34第七章 数组39一、主要内容39二、练习题39三、参考答案49第八章 函数54一、主要

2、内容54二、练习题55三、参考答案62第九章 预处理命令67一、主要内容67二、练习题67第十章 指针69一、主要内容69二、练习题69三、参考答案74第十一章 结构体和共用体76一、主要内容76二、练习题76三、参考答案78第十二章 位运算82一、主要内容82二、练习题82第十三章 文件83一、主要内容83二、练习题83三、参考答案85第一章 c语言程序设计概述一、主要内容l c程序基本结构特点l 函数与主函数1. 程序由一个或多个函数组成,函数由函数头和函数体构成。2. 必须有且只能有一个主函数main()3. 程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行。l 程

3、序语句1. c程序由语句组成,用“;”作为语句终止符2. /* */部分为注释,不能嵌套,不产生编译代码l 编译预处理不是c语言的一部分l c程序的运行步骤运行一个c程序,从输入源程序开始,要经过编辑源程序文件(c)、编译生成目标文件(obj)、连接生成可执行文件(exe)和执行四个步骤二、练习题部分一、选择题:1、c语言程序编译过程中产生的文件有: ( )a. 索引文件和文本文件两种 b. 目标文件和可执行文件c. 二进制文件一种 d. ascii码文件和二进制文件两种 2、以下说法中正确的是 : ( )a. c语言程序总是从第一个定义的函数开始执行 b. 在c语言程序中,要调用的函数必须在

4、main函数中定义c. c语言程序总是从main函数开始执行d. c语言程序中,main函数必须放在程序的开始部分3、c语言源程序的基本单位是:( )a. 函数 b. 标识符 c. 表达式 d. 语句4、以下叙述正确的是:( )a) c语言比其他语言高级 b) c语言可以不用编译就能被计算机识别执行c) c语言以接近英语国家的自然语言和数学语言作为语言的表达形式d) c语言出现的最晚、具有其他语言的一切优点5、在一个c语言程序中 :( )a) main函数必须出现在所有函数之前 b) main函数可以在任何地方出现c) main函数必须出现在所有函数之后 d) main函数必须出现在固定位置6

5、、c+语言中工程文件的扩展名是: 。( )a. .cpp b. .prj c. .c d. .obj (说明:bc+环境中工程文件扩展名.prj ,vc中为.dsp)7、c文件的扩展名是:( )(a).cpp (b).prj (c).c (d).txt 8、一个c程序的执行是从: ( )a)本程序的main函数开始,到main函数结束b)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束c)本程序的main函数开始,到本程序文件的最后一个函数结束d)本程序文件的第一个函数开始,到本程序main函数结束9、以下叙述正确的是: ( )a)在c程序中,main函数必须位于程序的最前面b)c程

6、序的每行中只能写一条语句 c)c语言本身没有输入输出语句d)在对一个c程序进行编译的过程中,可发现注释中的拼写错误10、以下叙述不正确的是: ( )a) 一个c源程序可由一个或多个函数组成 b) 一个c源程序必须包含一个main函数c) c程序的基本组成单位是函数d) 在c程序中,注释说明只能位于一条语句的后面11、c语言规定:在一个源程序中,main函数的位置:( )a) 必须在最开始 b) 必须在系统调用的库函数的后面 c) 可以任意 d) 必须在最后12、一个c语言程序是由: ( )a) 一个主程序和若干子程序组成 b) 函数组成 c) 若干过程组成 d) 若干子程序组成13、以下叙述中

7、正确的是:( )a) c语言的源程序不必通过编译就可以直接运行b) c语言中的每条可执行语句最终都将被转换成二进制的机器指令c) c源程序经编译形成的二进制代码可以直接运行d) c语言中的函数不可以单独进行编译14、以下对c语言函数的描述中,正确的是 :( )a) c程序必须由一个或一个以上的函数组成 b) c函数既可以嵌套定义又可以递归调用c) 函数必须有返回值,否则不能使用函数d) c程序中有调用关系的所有函数必须放在同一个程序文件中15、c 语言的注释定界符是:( )a. b. c. * * d. /* */ 二、填空题:1、c程序的运行需要经过 _ 和 _ _两步进行。2、c语言的编译

8、单位是 _ _。 3、c语言程序由_ _组成。4、结构化设计中的三种基本结构是_ _、_ _和_ _ 。5、c 语言中,一个函数一般由两个部分组成,它们是_ _和_ _。 6、一个c语言程序总是从_ _函数开始执行程序。 7、一个 c 程序中至少应包括一个_ _。8、c语言函数是由函数头和函数体两部分组成。其中,函数头包括_ _,_ _和_ _。9、c程序中用/*/ 括起来的内容是程序的 。10、c源程序的基本单位是 。三、判断题:1、c语言程序的三种基本结构是递归、选择、循环。 ( )2、函数若无返回值,则它的返回值是整数值0。 ( )3、函数若无返回值,则它一定无形参。 ( )三、参考答案

9、一、选择题:15:bcacb 610:bcacd 1115:cbbad二、填空题:1、编译 连接 2、文件3、函数4、顺序结构 选择结构 循环结构 5、函数首部 函数体6、主函数(或main函数)7、函数8、函数类型 函数名 函数参数 9、注释 10、函数三、判断题:1、 2、 3、第三章 数据类型、运算符和表达式(温馨提示:本章内容非常繁琐,细节较多,请将所记笔记中的说明部分和例题好好看看,一般考选择题和填空题)一、主要内容l 标识符命名原则:1. 合法的要求是由字母,数字,下划线组成,并且第一个必须为字母或则是下划线。关键字不可以作为用户标识符号。2. main define scanf

10、printf 及其他库函数的函数名都不是关键字可以用作标识符。3. if与if不同,if是可以做为用户标识符,因为c区分大小写。l 基本数据类型:1. 基本数据类型有哪些?所占空间大小及说明符。2. 整型、实型、字符型常量的合法表示形式,字符串的表示形式。a)实型数据的合法形式:小数形式和指数形式-尤其要注意指数形式的格式e前必有数,e后必为整数。2.333e-1 就是合法的b) 字符数据的合法形式:以单引号括起来的一个字符,注意转义字符p48表3-3。如x6d是合法的字符,ascii码为十六进制的6d,141也合法,ascii码为八进制141,108不合法。c) 字符常量和字符串的区别:a

11、是字符占一个字节,a是字符串占两个字节(含有一个结束符号)。l 常量和变量1. 符号常量的定义格式:eg #define pi 3.14159 (注意宏定义后无分号结尾)2. 变量的定义格式:3. 变量赋初值的方式。 int a=b=c=3;不合法l 数据混合计算时数据类型的转换:p54图3-10。a) 强制类型转换:一定是(int)a 不是 int(a),注意类型上一定有括号的。 b) 注意(int)(a+b)和(int)a+b 的区别。 前是把a+b转型,后是把a转型再加b。l 运算符1. 运算符的优先级别和结合方向:a) 单目运算双目运算b) 算术 关系运算逻辑运算条件运算赋值运算逗号运

12、算2. 算术运算符:a) %要求左右两边都是整型数,运算结果为余数。b) /运算若左右两边都是整型数,结果为整数。c) 自增自减运算符,前置先自增减,再运算;后置先运算,再自增减。自增自减运算符只能作用于变量,不能作用于常量和表达式。如:#define a 3 a+;是错误写法。3. 关系运算符: a)注意赋值=与关系= =的区别。 b) c语言中没有逻辑类型,逻辑“真”用非0表示,逻辑“假”用0表示, c) x在a,b间的关系表达式为x=a & x=x=b。但该表达式语法成立,有运算结果。如3=1=5运算时从左向右依次运算,即3=1为真,值为1,此时,表达式为1=5,运算结果为假,值为0。所

13、以整个1=3=5的值为0.4. 逻辑运算符: a)!优先级别比较高, !&| 。 b)&和|运算时注意短路原则。(常考!)5. 赋值运算符: a)复合赋值运算符的使用。如a=12,则a+=a-=a*=a;运算后a的值6. 条件运算符: a)结合方向从右向左。7. 逗号运算符:优先级别最低;也叫顺序执行运算符,表达式的数值逗号最右边的那个表达式的数值。(2,3,4)的表达式的数值就是4l 表达式1. 能将数学表达式写成c表达式2. 计算表达式的值,注意优先级别和结合方向。二、练习题(一)练习题之数据类型一、选择题:1、以下标识符中,不能作为合法的c用户定义标识符的是 ( )a)putchar b

14、)doublec)_123 d)int2、下列字符序列中, 不可用作c 语言标识符的是 ( )a. b70 b. #ab c. symbol d. a_1 3以下不能定义为用户标识符的是:( )a. main b. _hj c. 208ong d. line12 4. 以下是正确的字符常量是:( )。a. c b. c. w1 d. 32a 5. 以下各项是错误的整型常量的是:( ) a. -0xcdf b. 018 c. 0xe d. 011 6、下列四组选项中,均不是c语言关键字的选项是:( )a) define b) getcc) include d) whileif char scan

15、f gotype printf case pow7、下面四个选项中,均是正确的八进制数或十六进制数的选项是:( )a) -10 b) 0abc c) 0010 d) 0al2 0x8f -017 -0x11 -0xl23-011 0xc 0xf1 -0x88、下面四个选项中,均是正确的数值常量或字符常量的选项是:( )a) 0.0 b) a c) 3 d) +001 0f 3.9e-2.5 011 0xabcd 8.9e lel0xffoo 2e2& 0a 50.9、下面不正确的字符串常量是:( )。a) abc b) 1212 c) 0 d) 10设int类型的数据长度为2字节,则该类型数据

16、的取值范围是: ( )a. 0至65536 b. 0至65535 c. 32767至32768 d. 32768至3276711、在c语言中(以16位pc机为例),5种基本数据类型的存储空间长度的排列顺序为( )a)char int 1ong int = float doubleb)char = int 1ong int = float doublec)char int 1ong int = float = doubled)char = int = 1ong int = float double12若有以下程序段(n所赋的是八进制数) int m=32767,n=0327;printf(%d,

17、%on,m,n);执行后输出结果是:( )a) 32767,327 b) 32767,0327 c) 32767,777 d) 32767,077713设变量a是整形,f是实型,i是双精度型,则表达式10+a+i*f值的数据类型为:( )a. int b. float c. double d. 不确定 14. 在c语言中,char型数据在内存中的存储形式是:( )a. 补码 b. 反码 c. 源码 d. ascii码 15. 字符串a在内存中占据的字节个数为 : ( ) a. 0 b. 1 c. 2 d. 3 16下列为字符常量的是:( )a“a” b. ab c. n d.08417在c语言

18、中,下面字符串能用作变量名的是:( )a. a+b b. auto c. 2-and d. a218.已知字母a的ascii码为十进制数65,且c2为字符型,则执行语句c2 = a + 6 - 3;后c2中的值为()a) d b) 68 c) 不确定的值 d) c19、在c语言中合法的字符型常量是。 ( ) a、“a” b、t c 、65 d、a20、以下选项中,c中正确的整型常量形式是。 ( ) a、0x16 b、-202.18 c、1,000 d、0458二、填空题:1.在c语言中的实型变量分为两种类型,它们是_ _ 和 _ _。2将下列字符串表示成c语言的字符串常量(1)c:tclib_

19、 (2)he said:im a student._(3)85% student passed._3在c语言中,标识符中英文字母的大小写_(是/不是)等价的。换句话说,sum、sum、sum是3个_(相同/不同)的标识符。4已知char w; int x; float y; double z;则表达式:w * x + z - y所求得的数据类型为 。5变量名由字母、数字和下划线组成,并且必须是_打头。6. c语言的数据类型分为基本类型、构造类型、指针类型和空类型 。(正确/错误)。7.已知字母a的ascii码为十进制数97,且设ch为字符型变量,则表达式ch = a + 8 - 3的值为 。三

20、、看程序写结果1如果对以下程序进行编译和运行,其结果为_。main()int x,y; x=555;y=x+2;y=x+2;printf(“x=%d”,x,y);2.执行以下程序,写出程序运行结果_。 main() int c1,c2; c1=97; c2=98; printf(%c %cn,c1,c2); printf(%d %dn,c1,c2);3.执行以下程序,写出程序运行结果_。main() char c1, c2; c1=a ; c2=a ; c1=c1+2 ; c2=c2+2 ; printf(%d %c, c1, c2) ; (二)练习题之 运算符和表达式一、选择题:1、以下运算

21、符中,优先级最高的运算符是( )a. = b. != c. *(乘号) d. () 2、若有以下定义,则能使值为3的表达式是( )int k=7, x=12;a. x%=(k%=5) b. x%=(k-k%5) c. x%=k-k%5 d. (x%=k)-(k%=5) 3、设在tc2.0中有整型变量x,y,z均为3,表达式(x+)+(y+)+(z+)的值是 ( )a. 6 b. 7 c. 8 d. 94、有以下程序运行后的输出结果是: ( ) main() char a=a,b; print(%c,+a); printf(%cn,b=a+); a. b,b b. b,c c. a,b d. a

22、,c 5、有以下程序运行后的输出结果是 :( ) main() char a=a; printf (%c,+a); printf(%cn,a+); a)b,b b)b,c c)a,b d)a,c 6、设a=6,b=4,则表达式b*=a+3的值为 : ( )a)3 b)18 c)27 d)367、有如下程序段,其输出结果是: ( )int a=3;float b=15.6,f=1.5;printf(“%d”,a+(int)b/2+(int)f%3);a)10 b)11 c)12 d)138、以下程序的输出结果是: ( )main( )int a=3 ;printf ( %d %dn , a ,

23、a+) ; a. 4 3 b. 4 4 c. 5 3 d. 5 4 9、以下程序的输出结果是( )。main( )int a=10;printf ( %d %dn , a , a+) ; (a)11 10 (b)11 11 (c)12 20 (d)12 11 10、若有定义:int a=8,b=5,c;执行语句c=a / b+0.4 ; 后c的值为( )。(a)1.4 (b)1 (c)2.0 (d)2 11、若x,i,j和k都是int型变量,则执行下面表达式x = (i = 4, j = 16, k = 32)后x的值为()a) 4 b) 16 c) 32 d) 5212、若有代数式3ae/b

24、c,则不正确的c语言表达式是: ()a) a / b / c * e * 3 b) 3 * a * e / b / cc) 3 * a * e / b * c d) a * e / c / b * 313、以下不正确的叙述是:()a)在c程序中,逗号运算符的优先级最低b)在c程序中,aph和aph是两个不同的变量c)若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变。d)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。14、已知各变量的类型说明如下: ()int i = 8, k, a, b;unsigned long w = 5;d

25、ouble x = 1.42, y = 5.2;则以下符合c语言语法的表达式是:a) a += a -= (b = 4) * (a = 3) b) a = a * 3 = 2c) x % (-3) d) y = f1oat(i)15、若有定义:int a = 7; float x = 2.5, y = 4.7;则表达式x + a % 3 * (int)(x + y) % 2 / 4的值是:( )a) 2.500000 b) 2.7500oo c) 3.500000 d) 0.000000。16、表达式b*=(b=3)+(a=10)的值为: ( )(a)3 (b)19 (c)27 (d)3917

26、、假设所有变量均为整型,则表达式(a = 2, b = 5, b +, a + b)的值是: ()a) 7 b) 8 c) 6 d) 218、若有以下程序: main() int k=2,i=2,m; m=(k+=i*=k); printf(%d,%dn,m,i); 执行后的输出结果是: ( )(a) 8,6 (b) 8,3 (c) 6,4 (d) 7,4 19在c语言中运算对象必须是整型的运算符是:( )a. % b. / c. = = d. b)?a:b后,t 的值是 。16、算术表达式 a=b+3 中, a、b 称为_, 3 称为_,=、+称为_。 17、若有定义:int b = 7;f

27、loat a = 2.5,c = 4.7; 则表达式a + (int)(b / 3 * (int)(a + c) / 2) % 4的值为 。18.c语言中为了简化程序,提高程序的编译效率,在赋值运算符前面加上其他运算符号构成复合运算符。例如:x=x+5 用复合运算符可以写成 。 19、表达式1/4+2.75的值是 。20、若a是int型变量,且a的初值为6,则计算表达式“a+=a-=a*a”后a的值为 21、若s是int型变量,且s=6,则表达式“s%2+(s+1)%2”的值为 。22、若x是int型变量,则执行表达式“x=(a=4,6*2)”后,x的值为 。23、若x和n均是int型变量,且

28、x的初值为12,n的初值为5,则执行表达式“x%=(n%=2)”后,x的值为 。24、设 int x=1/4;则x的值为 。25、若 char w,int x,float y,double z;则表达式w*x+z-y的结果为 类型。26、设 x 的值为15,n 的值为2,则表达式 x*=n+3 运算后 x 的值是 。27、假设有条件 int x=1,y=2,z=3;则表达式z+=xy?+x:+y的值是 。28、int a = 2, b = 3; 表达式 a b ? a + : + b的值为 。29、执行语句a = 5 + (c = 6);后,变量a、c的值依次为 、 。30、表达式a = 3,

29、 a +, - -a的值为 。31、设a、b、c为整型数,且a = 3,b = 5,c = 2,则执行完以下语句:a *= 16 + (b +) - (+ c);后a的值是 。32、 以下程序运行后的输出结果是main( ) int a=1,b=4,c=2; a=(a+b)/c; printf(“%d n”,-a); 运行结果 ;33、 设int a3,b5;float x=7.5,y=3.5;则表达式(float)a+b/2+(int)x%(int)y; 的值是 34、在c语言的表达式中,x=x+5 用复合运算符可以写成 。35、设a=12,表达式a/=a+a 运算后,a的值是 。36若定义

30、:char c=010;则变量c中包含的字符个数是 。37赋值语句是由 加上一个分号构成。38a=12,n=5,表达式a%=(n%=2)值是 。39.设说明为 int a=10; 执行语句 a*=1+2+3; 后a的值是_。40、设int m=1,n=2;则m=-n的结果是 。41、设x为int型变量,则执行语句x=10;x+=x-=x-x;后x的值为 。42、设所有变量均为整型,则表达式(a=5,b=3,-a,+b,a-b)的值为 。三、看程序写结果:1、写出以下程序运行的结果_。main ( ) int i,j,m,n; i=8; j=10; m=+i; n=j+; printf(“%d,

31、%d,%d,%d”,i,j,m,n); 2、阅读下列程序,写出运行结果#include main( ) int a=1,b=4,c=2; a=(a+b)/c; printf(“%d n”,-a); 运行结果 ;3、阅读下列程序,写出运行结果 main() int n=1;printf(%d %d %dn,n,n+,n-); 运行结果 ;4、main( ) int i=3 ;printf(%d , %dn , i , i+); 运行结果 ;5、执行以下程序,写出程序运行结果 main()int a=-017l;printf(%dn,a);三、参考答案(一)练习题之数据类型 参考答案一、选择题:1

32、、b2、b3、c4、b5、b6、a7、c8、d9、a10、d11、a12、a13、c14、d15、c16、c17、d18、a 19、b 20、a二、填空题:1、float double2、 (1) ”c:tclib”(2) ”he said :”i am a student” (3)”85% student passed” 3、不是 ,不同4、double5、字母、下划线6、正确7、 f三、看程序写结果1、x=5552、 a b97 983、67 c(二)练习题之 运算符和表达式 参考答案一、选择题:1、d2、d3、d4、a5、a6、d7、b8、a9、a10、b11、c12、c13、d14、a15、a16、d17、b18、c 19、a 20、d21、a 22、b 23、c 24、c 25、d 26、b 27、d二、填空题:1、-16 2、 26 3、2 4、4 5、下划线6、4 7、 75 8、8 9、i+1 10、111、0 12、e 101 13、1 0 14、由右向左 条件运算符 15、9 16、变量 常量 运算符17、5.5 18、x+=5 19、2.75 20、-60 21、122、12 23、0 24、0 25、double 26、75 27、6 28、4 29、11 6 30、331、54 32、1 33、6.0 34、x+

温馨提示

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

评论

0/150

提交评论