C语言程序复习题及参考答案.docx
- 文档编号:10326550
- 上传时间:2023-02-10
- 格式:DOCX
- 页数:141
- 大小:90.35KB
C语言程序复习题及参考答案.docx
《C语言程序复习题及参考答案.docx》由会员分享,可在线阅读,更多相关《C语言程序复习题及参考答案.docx(141页珍藏版)》请在冰豆网上搜索。
C语言程序复习题及参考答案
C语言程序设计
第一章C语言程序设计概述
一、主要内容
c程序基本结构特点
函数与主函数
1.程序由一个或多个函数组成,函数由函数头和函数体构成。
2.必须有且只能有一个主函数main()
3.程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行。
程序语句
4.C程序由语句组成,用“;”作为语句终止符
5./**/部分为注释,不能嵌套,不产生编译代码
编译预处理不是C语言的一部分
C程序的运行步骤
运行一个C程序,从输入源程序开始,要经过编辑源程序文件(•C)、编译生成目标文件(•obj)、连接生成可执行文件(•exe)和执行四个步骤
二、练习题部分
一、选择题:
1、C语言程序编译过程中产生的文件有:
()
A.索引文件和文本文件两种B.目标文件和可执行文件
C.二进制文件一种D.ASCII码文件和二进制文件两种
2、以下说法中正确的是:
()
A.C语言程序总是从第一个定义的函数开始执行
B.在C语言程序中,要调用的函数必须在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、C++语言中工程文件的扩展名是:
。
()
A..cppB..prjC..cD..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程序的每行中只能写一条语句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、以下叙述中正确的是:
()
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语言的编译单位是____。
3、C语言程序由___组成。
4、结构化设计中的三种基本结构是__、__和___。
5、C语言中,一个函数一般由两个部分组成,它们是___和___。
6、一个C语言程序总是从__函数开始执行程序。
7、一个C程序中至少应包括一个___。
8、C语言函数是由函数头和函数体两部分组成。
其中,函数头包括___,____和___。
9、C程序中用/*……*/括起来的内容是程序的。
10、C源程序的基本单位是。
三、判断题:
1、C语言程序的三种基本结构是递归、选择、循环。
()
2、函数若无返回值,则它的返回值是整数值0。
()
3、函数若无返回值,则它一定无形参。
()
三、参考答案
一、选择题:
1~5:
BCACB6~10:
BCACD11~15:
CBBAD
二、填空题:
1、编译连接
2、文件
3、函数
4、顺序结构选择结构循环结构
5、函数首部函数体
6、主函数(或main函数)
7、函数
8、函数类型函数名函数参数
9、注释
10、函数
三、判断题:
1、×2、×3、×
第三章数据类型、运算符和表达式
(温馨提示:
本章内容非常繁琐,细节较多,请将所记笔记中的说明部分和例题好好看看,一般考选择题和填空题)
一、主要内容
标识符命名原则:
1.合法的要求是由字母,数字,下划线组成,并且第一个必须为字母或则是下划线。
关键字不可以作为用户标识符号。
2.maindefinescanfprintf及其他库函数的函数名都不是关键字可以用作标识符。
3.If与if不同,If是可以做为用户标识符,因为C区分大小写。
基本数据类型:
6.基本数据类型有哪些?
所占空间大小及说明符。
7.整型、实型、字符型常量的合法表示形式,字符串的表示形式。
a)实型数据的合法形式:
小数形式和指数形式-----尤其要注意指数形式的格式e前必有数,e后必为整数。
2.333e-1就是合法的
b)字符数据的合法形式:
以单引号括起来的一个字符,注意转义字符P48表3-3。
如‘\x6d’是合法的字符,ASCII码为十六进制的6d,‘\141’也合法,ASCII码为八进制141,‘\108’不合法。
c)字符常量和字符串的区别:
'a'是字符占一个字节,
"a"是字符串占两个字节(含有一个结束符号)。
常量和变量
8.符号常量的定义格式:
eg#definePI3.14159(注意宏定义后无分号结尾)
9.变量的定义格式:
10.变量赋初值的方式。
inta=b=c=3;不合法
数据混合计算时数据类型的转换:
P54图3-10。
a)强制类型转换:
一定是(int)a不是int(a),注意类型上一定有括号的。
b)注意(int)(a+b)和(int)a+b的区别。
前是把a+b转型,后是把a转型再加b。
运算符
1.运算符的优先级别和结合方向:
a)单目运算>双目运算
b)算术>关系运算>逻辑运算>条件运算>赋值运算>逗号运算
2.算术运算符:
a)%要求左右两边都是整型数,运算结果为余数。
b)/运算若左右两边都是整型数,结果为整数。
c)自增自减运算符,前置先自增减,再运算;后置先运算,再自增减。
自增自减运算符只能作用于变量,不能作用于常量和表达式。
如:
#defineA3
A++;是错误写法。
3.关系运算符:
a)注意赋值=与关系==的区别。
b)c语言中没有逻辑类型,逻辑“真”用非0表示,逻辑“假”用0表示,
c)x在[a,b]间的关系表达式为x>=a&&x<=b,不能写为a>=x>=b。
但该表达式语法成立,有运算结果。
如3>=1>=5运算时从左向右依次运算,即3>=1为真,值为1,此时,表达式为1>=5,运算结果为假,值为0。
所以整个1>=3>=5的值为0.
4.逻辑运算符:
a)!
优先级别比较高,!
>&&>||。
b)&&和||运算时注意短路原则。
(常考!
)
5.赋值运算符:
a)复合赋值运算符的使用。
如a=12,则a+=a-=a*=a;运算后a的值
6.条件运算符:
a)结合方向从右向左。
7.逗号运算符:
优先级别最低;也叫顺序执行运算符,表达式的数值逗号最右边的那个表达式的数值。
(2,3,4)的表达式的数值就是4
表达式
1.能将数学表达式写成c表达式
2.计算表达式的值,注意优先级别和结合方向。
二、练习题
(一)练习题之数据类型
一、选择题:
1、以下标识符中,不能作为合法的C用户定义标识符的是()
A)putcharB)double
C)_123D)INT
2、下列字符序列中,不可用作C语言标识符的是()
A.b70B.#abC.symbolD.a_1
3.以下不能定义为用户标识符的是:
()
A.MAINB._HJC.208ongD.LINE12
4.以下是正确的字符常量是:
()。
A."c"B.'\\'C.'W1'D."\32a"
5.以下各项是错误的整型常量的是:
()
A.-0xcdfB.018C.0xeD.011
6、下列四组选项中,均不是C语言关键字的选项是:
()
A)defineB)getcC)includeD)while
IFcharscanfgo
typeprintfcasepow
7、下面四个选项中,均是正确的八进制数或十六进制数的选项是:
()
A)-10B)0abcC)0010D)0al2
0x8f-017-0x11-0xl23
-0110xc0xf1-0x8
8、下面四个选项中,均是正确的数值常量或字符常量的选项是:
()
A)0.0B)"a"C)'3'D)+001
0f3.9E-2.50110xabcd
8.9elel0xFFOO2e2'&'
'\'''0a50.
9、下面不正确的字符串常量是:
()。
A)'abc'B)"12'12"C)"0"D)""
10.设int类型的数据长度为2字节,则该类型数据的取值范围是:
()
A.0至65536B.0至65535C.-32767至32768D.-32768至32767
11、在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为()
A)char B)char=int<1ongint<=float C)char D)char=int=1ongint<=float 12.若有以下程序段(n所赋的是八进制数) intm=32767,n=0327; printf("%d,%o\n",m,n); 执行后输出结果是: () A)32767,327B)32767,0327C)32767,777D)32767,0777 13.设变量a是整形,f是实型,i是双精度型,则表达式10+′a′+i*f值的数据类型为: () A.intB.floatC.doubleD.不确定 14.在C语言中,char型数据在内存中的存储形式是: () A.补码B.反码C.源码D.ASCII码 15.字符串"a"在内存中占据的字节个数为: () A.0B.1C.2D.3 16.下列为字符常量的是: () A.“a”B.‘ab’C.‘\n’D.‘\084’ 17.在C语言中,下面字符串能用作变量名的是: () A.a+bB.autoC.2-andD.a2 18.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句 c2='A'+'6'-'3';后c2中的值为() A)DB)68C)不确定的值D)C 19、在C语言中合法的字符型常量是。 () A、“A”B、‘\t’C、65D、A 20、以下选项中,C中正确的整型常量形式是。 () A、0x16B、-202.18C、1,000D、0458 二、填空题: 1.在C语言中的实型变量分为两种类型,它们是___和______。 2.将下列字符串表示成C语言的字符串常量 (1)C: \TC\LIB_____________ (2)Hesaid: "I’mastudent."________________ (3)85%studentpassed.____________________________ 3.在C语言中,标识符中英文字母的大小写________(是/不是)等价的。 换句话说,sum、Sum、SUM是3个_______(相同/不同)的标识符。 4.已知charw;intx;floaty;doublez; 则表达式: w*x+z-y所求得的数据类型为。 5.变量名由字母、数字和下划线组成,并且必须是______打头。 7.已知字母a的ASCII码为十进制数97,且设ch为字符型变量, 则表达式ch='a'+'8'-'3'的值为。 三、看程序写结果 1.如果对以下程序进行编译和运行,其结果为________。 main() {intx,y;x=555;y=x+2; y=x+2; printf(“x=%d”,x,y);} 2.执行以下程序,写出程序运行结果________。 main() { intc1,c2; c1=97; c2=98; printf("%c%c\n",c1,c2); printf("%d%d\n",c1,c2); } 3.执行以下程序,写出程序运行结果________。 main() {charc1,c2; c1='A';c2='a'; c1=c1+2;c2=c2+2; printf("%d%c",c1,c2); } (二)练习题之运算符和表达式 一、选择题: 1、以下运算符中,优先级最高的运算符是() A.=B.! =C.*(乘号)D.() 2、若有以下定义,则能使值为3的表达式是() intk=7,x=12; A.x%=(k%=5)B.x%=(k-k%5)C.x%=k-k%5D.(x%=k)-(k%=5) 3、设在tc2.0中有整型变量x,y,z均为3,表达式(x++)+(y++)+(z++)的值是() A.6B.7C.8D.9 4、有以下程序运行后的输出结果是: () main() {chara='A',b; print("%c,",++a); printf("%c\n",b=a++); } A.B,BB.B,CC.A,BD.A,C 5、有以下程序运行后的输出结果是: () main() {chara='a'; printf("%c,",++a); printf("%c\n",a++); } A)b,bB)b,cC)a,bD)a,c 6、设a=6,b=4,则表达式b*=a+3的值为: () A)3B)18C)27D)36 7、有如下程序段,其输出结果是: () inta=3; floatb=15.6,f=1.5; printf(“%d”,a+(int)b/2+(int)f%3); A)10B)11C)12D)13 8、以下程序的输出结果是: () main() {inta=3; printf("%d%d\n",a,a++);} A.43B.44C.53D.54 9、以下程序的输出结果是()。 main() { inta=10; printf("%d%d\n",a,a++);} (A)1110(B)1111(C)1220(D)1211 10、若有定义: inta=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)4B)16C)32D)52 12、若有代数式3ae/bc,则不正确的C语言表达式是: () A)a/b/c*e*3B)3*a*e/b/c C)3*a*e/b*cD)a*e/c/b*3 13、以下不正确的叙述是: () A)在C程序中,逗号运算符的优先级最低 B)在C程序中,APH和aph是两个不同的变量 C)若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变。 D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。 14、已知各变量的类型说明如下: () inti=8,k,a,b; unsignedlongw=5; doublex=1.42,y=5.2; 则以下符合C语言语法的表达式是: A)a+=a-=(b=4)*(a=3)B)a=a*3=2 C)x%(-3)D)y=f1oat(i) 15、若有定义: inta=7;floatx=2.5,y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值是: () A)2.500000B)2.7500OOC)3.500000D)0.000000。 16、表达式b*=(b=3)+(a=10)的值为: () (A)3(B)19(C)27(D)39 17、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是: () A)7B)8C)6D)2 18、若有以下程序: main() {intk=2,i=2,m; m=(k+=i*=k);printf("%d,%d\n",m,i); } 执行后的输出结果是: () (A)8,6 (B)8,3 (C)6,4 (D)7,4 19.在C语言中运算对象必须是整型的运算符是: () A.%B./C.==D.<= 20.若有以下定义: intx=10,y=3,z;则语句: printf(“%d\n”,z=(x%y,x/y));的输出结果为() A.1B.0C.2D.3 21.下列哪一个表达式的值是整数类型()。 A.15/2B.15/2+2.0C.25/5.0D.0.5*10 22.若doublex=2,y;则执行y=x+3/2;后,y的值是()。 A.3.500000B.3.000000C.2.000000D.3 23、以下运算符中优先级最低的是() A)&&B)&C)||D)| 24、设以下变量均为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) 25.设有以下定义 inta=0;doubleb=1.25;charc=’A’; #defined2 则下面语句中错误的是: () (A)a++;(B)b++(C)c++;(D)d++; 26、若有intx=12,n=5;则x%=(n%=2);后x的值是。 () A、1B、0 C、-1D、2 27、设有定义intk=0;则以下四个表达式中与其它三个的值不同的是。 () A、k++B、k+=1 C、++kD、k+1 二、填空题: 1、若有以下定义intm=5,y=2;则计算表达式y+=y-=m*=y后的y值是。 2、若a为int型变量,则下面表达式的值为。 (a=4*5,a*2),a+6 3、若a是int型变量,则执行表达式"a=25/3%3"后,a的值为。 4、s=3,s++,s;这个语句执行完后,s的值为。 5、C语言中的标识符只能由三种字符组成,他们是字母、数字和。 6、已知i=5;写出语句a=--i,执行后整型变量a的值是。 7、设x的值为15,n的值为2,则表达式x*=n+3运算后x的值是。 8、intx=2;x*=y=z=4;则x的值为。 9、表达式i++相当于表达式i=。 10、若s是unsignedint型变量,则下面表达式的值是________。 s%2+(s+1)%2 11、程序段执行后c3的值是_______。 intc1=1,c2=2; floatc3; c3=1/c2*c1; 12、已知’a’的ASCII码为97,printf(“%5c\n”,’e’)的输出是______; printf(“%5d\n”,’e’)的输出是___________。 13、表达式: 5%2=__________,2/3=__________。 14、在C语言中,单目运算符的结合方向(运算方向)是_____________;唯一的一个三目运算符是_____________。 15、设a,b,t为整型变量,初值为a=7,b=9,执行完语句t=(a>b)? a: b后,t的值是。 16、算术表达式a=b+3中,a、b称为_________,3称为________,=、+称为_________。 17、若有定义: intb=7;floata=2.5,c=4.7; 则表达式a+(int)(b/3*(int)(a+c)/2)%4的值为。 18.C语言中为了简化程序,提高程序的编译效率,在赋值运算符前面加上其他运算符号构成复合运算
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 程序 复习题 参考答案
