C 语言复习要点二.docx
- 文档编号:11196622
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:101
- 大小:57.54KB
C 语言复习要点二.docx
《C 语言复习要点二.docx》由会员分享,可在线阅读,更多相关《C 语言复习要点二.docx(101页珍藏版)》请在冰豆网上搜索。
C语言复习要点二
C语言复习要点
2009年5月
本次考试有两大题型:
1.选择题30分(15道)
2.操作题(编程题)2*35分,
选择题
一、程序结构
1以下叙述中正确的是A
A)C程序中注释部分可以出现在程序中任意合适的地方
B)花括号"{"和"}"只能作为函数体的定界符
C)构成C程序的基本单位是函数,所有函数名都可以由用户命名
D)分号是C语句之间的分隔符,不是语句的一部分
答案分析:
花括号可以作为复合语句的定界符,所以B答案不正确;
main函数是C程序的主函数,函数名固定为main,不可由用户命名;
每个语句和数据定义的最后必须有一个分号,分号是C语句的必要组成部分。
2下列叙述中正确的是D
A)C语言编译时不检查语法
B)C语言的子程序有过程和函数两种
C)C语言的函数可以嵌套定义
D)C语言所有函数都是外部函数
答案分析:
(1)C语言相对其它高级语言而言,放宽了语法检查,因此程序设计自由度大,但并不是不检查语法。
(2)C语言程序是由函数构成的。
(3)函数不能嵌套定义,其定义部分相对独立。
(4)C语言本身没有定义内部函数,所有函数都是外部函数,主要有:
系统提供的库函数和用户自己编制设计的函数。
3以下叙述中正确的是A
A)构成C程序的基本单位是函数
B)可以在一个函数中定义另一个函数
C)main()函数必须放在其它函数之前
D)所有被调用的函数一定要在调用之前进行定义
答案分析:
(1)C程序是由函数构成的。
(2)一个函数由两部分组成:
函数的首部和函数体。
(3)一个C程序总是从main函数开始执行的,而不论main函数在整个程序中的位置如何(main函数可以放在程序最前头,也可以放在程序最后,或在一些函数之前,在另一些函数之后)。
(4)C程序书写出形式自由,一行内可以写几个语句,一个语句可以分写在几行上。
每个语句和数据定义的最后必须有一个分号。
(5)C程序本身没有输入输出语句。
输入和输出的操作是由库函数scanf和printf等函数来完成的。
(6)可以用/*......*/对C程序中的任何部分作注释。
4一个C语言程序是由B
A)一个主程序和若干子程序组成B)函数组成
C)若干过程组成D)若干子程序组成
答案分析:
程序是由函数构成的。
一个C源程序至少包含一个main函数,也可以包含一个main函数和若干个其他函数。
因此,函数是C程序的基本单位。
被调用的函数可以是系统提供的库函数,也可以是用户根据需要自己编制设计的函数。
数。
5C语言规定,在一个源程序中,main函数的位置C
A)必须在最开始B)必须在系统调用的库函数的后面
C)可以任意D)必须在最后
6以下叙述不正确的是D
A)一个C源程序可由一个或多个函数组成
B)一个C源程序必须包含一个main函数
C)C程序的基本组成单位是函数
D)在C程序中,注释说明只能位于一条语句的后面
答案分析:
可以用/*……*/对C程序中的任何部分作注释。
C语言对源程序编译时不对注释语句进行编译。
7以下叙述正确的是C
A)在C程序中,main函数必须位于程序的最前面
B)C程序的每行中只能写一条语句
C)C语言本身没有输入输出语句
D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误
8一个C程序的执行是从A
A)本程序的main函数开始,到main函数结束
B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C)本程序的main函数开始,到本程序文件的最后一个函数结束
D)本程序文件的第一个函数开始,到本程序main函数结束
9在一个C程序中B
A)main函数必须出现在所有函数之前
B)main函数可以在任何地方出现
C)main函数必须出现在所有函数之后
D)main函数必须出现在固定位置
10以下叙述中正确的是C
A)C语言比其他语言高级
B)C语言可以不用编译就能被计算机识别执行
C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
D)C语言出现的最晚,具有其他语言的一切优点
二、标识符命名、数据类型、运算符和表达式
如算术运算符、逻辑运算符、关系比较运算符、条件运算符、逗号运算符等。
还包括逻辑运算的短路情况,尤其要注意++和—的不同用法。
以及运算符所允许的类型
1设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为C
A)intB)floatC)doubleD)不确定
答案分析:
不同类型的数据进行表达式运算时,系统会自动将较小范围(即优先级低)的数据类型转换为较大范围的数据类型,运算结果取较大范围的数据类型。
各类型比较:
char 2已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3';后,c2中的值为A A)DB)68C)不确定的值D)C 答案分析: 字符数据可以用ASCII码方式运算,执行语句c2='A'+'6'-'3'可以表示为c2=65+'6'-'3',结果为c2=68,显然,字母D的ASCII码为十进制数68,所以答案为(A). 3若有以下定义,则能使值为3的表达式是D intk=7,x=12; A)x%=(k%=5)B)x%=(k-k%5) C)x%=k-k%5D)(x%=k)-(k%=5) 答案分析: (A)x%=(k%=5)-->x%=2-->0 (B)x%=(k-k%5)-->x%=5-->2 (C)x%=k-k%5-->x%=5-->2 (D)(x%=k)-(k%=5)-->5-2-->3 4设有说明: charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型为D A)floatB)charC)intD)double 5设C语言中,一个int型数据在内存中占2个字节,则unsignedint型数据的取值范围为C A)0--255B)0--32767C)0--65535D)0--2147483647 6表达式18/4*sqrt(4.0)/8值的数据类型为C A)intB)floatC)doubleD)不确定 7若有条件表达式(exp)? a++: b--,则以下表达式中能完全等价于表达式(exp)的是B A)(exp==0)B)(exp! =0) C)(exp==1)D)(exp! =1) 8在C语言中,char型数据在内存中的存储形式是D A)补码B)反码C)原码D)ASCII码 答案分析: (1)将一个字符常量放到一个字符变量中,实际不并不是把该字符本身放到内存单元中去,而是将该字符的相应的ASCII码放到存储单元中。 (2)既然在内存中,字符数据以ASCII码存储,它的存储形式就与整数的存储形式类似。 C语言使字符型数据和整型数据库之间可以通用。 一个字符数据库既可以以字符形式输出,也可以以整数形式输出。 9若运行时给变量x输入12,则以下程序的运行结果是A main() {intx,y; scanf("%d",&x); y=x>12? x+10: x-12; printf("%d\n",y); } A)0B)22C)12D)10 答案分析: 本题中,表达式x>12的结果是不成立的,所以执行的语句是x-12,因为运行时给变量x输入12,所以最终结果应该是0,即A为正确答案。 10sizeof(float)是B A)一个双精度型表达式B)一个整型表达式 C)一种函数调用D)一个不合法的表达式 11若有定义: inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是A A)2.500000B)2.750000C)3.500000D)0.000000 12若有说明语句: charc='\72';则变量cA A)包含1个字符B)包含2个字符 C)包含3个字符D)说明不合法,c的值不确定 答案分析: C语言的字符型常量中,允许用一种特殊形式的字符常量,就是以一个"\"开头的字符序列.其中"\ddd"表示用ASCII码(八进制数)表示一个字符,本例中的charc='\72'即表示将ASCII码值为72的字符赋给变量c 13在C语言中,int、char和short三种类型数据在内存中所占用的字节数D A)由用用户自己定义B)均为2个字节 C)是任意的D)由所用机器的机器字长决定 14若以下变量均是整型,且num=sum=7;则计算表达式sUM=num++,sUM++,++num后sum的值为A A)7B)8C)9D)10 15设intx=1,y=1;表达式(! x||y--)的值是B A)0B)1C)2D)-1 16设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是B A)n=(n*100+0.5)/100.0B)m=n*100+0.5,n=m/100.0 C)n=n*100+0.5/100.0D)n=(n/100+0.5)*100.0 答案分析: B答案中,先求出n*100+0.5的值,n的第三位小数四舍五入,后面的小数忽略变成整数m,将m/100.0的值赋给n时,先将m的值转换成浮点数,接着求出表达式的值赋给n。 17能正确表示逻辑关系: "a≥10或a≤0"的C语言表达式是D A)a>=10ora<=0B)a>=0|a<=10C)a>=10&&a<=0D)a>=10‖a<=0 18下列变量定义中合法的是A A)short_a=1-.1e-1;B)doubleb=1+5e2.5; C)longdo=0xfdaL;D)float2_and=1-e-3; 答案分析: 语言规定规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。 19下列程序执行后的输出结果是(小数点后只写一位)A main() {doubled;floatf;lingl;inti; i=f=1=d=20/3; printf("%d%ld%f%f\n",i,l,f,d); } A)666.06.0B)666.76.7 C)666.06.7D)666.76.0 答案分析: 20/3是两个整数相除,结果也是整数6。 然后将6赋给d,将d的值赋给l,将将l的值赋给f,将f的值赋给i。 20下列程序的输出结果是C main() {doubled=3.2;intx,y; x=1.2; y=(x+3.8)/5.0; printf("%d\n",d*y); } A)3B)3.2C)0D)3.07 答案分析: 本题中先将x转换为浮点型再与3.8相加,得到的结果与5.0相除。 最后将得到的结果去掉小数位化成整型数据赋给y。 21设有intx=11;则表达式(x++*1/3)的值是A A)3B)4C)11D)12 答案分析: ++i,--i(在使用i之前,先使i的值加(减)1) i++,i--(在使用i之后,使i的值加(减)1) 22有如下程序段D inta=14,b=15,x; charc='A'; x=(a&&b)&&(c<'B'); 执行该程序段后,x的值为 A)tureB)falseC)0D)1 答案分析: C语言提供一种特殊的运算符——逗号运算符。 用它将两个表达式连接起来的表达式称为逗号表达式,又称为“顺序求值运算符”。 逗号表达式的一般形式为 表达式1,表达成2…..表达成n 逗号表达式的求解过程是: 先求解表达式1,再求表达式2……再求表达式n。 整个逗号表达式的值是表达式n值。 23设以下变量均为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) 24设有说明语句: chara='\72';则变量aA A)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法 25以下符合C语言语法的赋值表达式是B A)d=9+e+f=d+9B)d=9+e,f=d+9 C)d=9+e,e++,d+9D)d=9+e++=d+7 26有如下程序D main() {inty=3,x=3,z=1; printf("%d%d\n",(++x,y++),z+2); } 运行该程序的输出结果是 A)34B)42C)43D)33 27若有以下程序段, intc1=1,c2=2,c3; c3=1.0/c2*c1; 则执行后,c3中的值是A A)0B)0.5C)1D)2 28若变量a、i已正确定义,且i已正确赋值,合法的语句是B A)a==1B)++i;C)a=a++=5;D)a=int(i); 29若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是C A)1B)2C)2.0D)2.5 30若变量已正确定义并赋值,下面符合C语言语法的表达式是B A)a: =b+1B)a=b=c+2C)int18.5%3D)a=a+7=c+b 31下列叙述中正确的是D A)C语言中既有逻辑类型也有集合类型 B)C语言中没有逻辑类型但有集合类型 C)C语言中有逻辑类型但没有集合类型 D)C语言中既没有逻辑类型也没有集合类型 32有如下函数调用语句 func(rec1,rec2+rec3,(rec4,rec5)); 该函数调用语句中,含有的实参个数是A A)3B)4C)5D)有语法错 33有以下程序 main() {inti=10,j=1; printf("%d,%d\n",i--,++j); } 执行后输出结果是B A)9,2B)10,2C)9,1D)10,1 34在C语言中,要求运算数必须是整型的运算符是D A)/B)++C)! =D)% 答案分析: (A)的"/"为除法运算符,其运算对象可以是整数或实数等类型; (B)的++表示自增运算,作用是使变量的值增1; (C)的! =为关系运算符,表示两数互不相等; (D)的"%"为取余运算,要求前后两数必须是整型数,作用是取两数相除后的余数. 35下列四个选项中,均是C语言关键字的选项是B A)autoenumincludeB)switchtypedefcontinue C)signedunionscanfD)ifstructtype 36下列四组选项中,均不是C语言关键字的选项是A A)defineIFtypeB)getccharprintf C)includescanfcaseD)whilegopow 37假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是B A)7B)8C)6D)2 38若x,i,j和k都是int型变量,则计算下面表达式后,x的值为C x=(i=4,j=16,k=32); A)4B)16C)32D)52 39C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符C A)必须为字母B)必须为下划线 C)必须为字母或下划线D)可以是字母,数字和下划线中任一字符 40有以下程序 main() {chara,b,c,*d; a='\';b='\xbc'; c='\0xab';d="\017"; print("%c%c%c\n",a,b,c,*d); } 编译时出现错误,以下叙述中正确的是D A)程序中只有a='\';语句不正确 B)b='\xbc';语句不正确 C)d="\0127";语句不正确 D)a='\';和c='\0xab';语句都不正确 答案分析: 在C语言中,字符型数据可以转义字符的方式表示,如'\n'表示回车换行,'\t'表示到下一个制表位,'\\'表示一个斜杠字符,'\''表示单引号字符,'\0bbb'表示八进制数的字符(其中bbb应是一个八进制数),'\xbb'表示十六进制数的字符(其中bb应是一个十六进制数)。 41下面四个选项中,均是合法整型常量的选项是A A)160-0xffff011B)-0xcdf01a0xe C)-01986,0120668D)-0x48a2e50x 答案分析: C语言里整常数可用以下三种形式表示: (1)十进制整数。 如160,-45,0。 (2)八进制整数。 以0开头的数是八进制数。 如011,-01,012。 (3)十六进制整数。 以0x开头的数是16进制数。 如-0xffff,0xcdf,0xe,-0x48a。 42有以下程序 main() {inti=1,j=1,k=2; if((j++‖k++)&&i++) printf("%d,%d,%d\n",i,j,k); } 执行后输出结果是C A)1,1,2B)2,2,1C)2,2,2D)2,2,3 答案分析: 本题中,j的值为1,为真,则(j++||k++)的值必须真,所以系统将不再对k++进行运算,而&&运算则要求判断两边表达式的值,所以i++也执行了,最后结果为: C。 43有以下程序段 intm=0,n=0;charc='a'; scanf("%d%c%d",&m,&c,&n); printf("%d,%c,%d\n",m,c,n); 若从键盘上输入: 10A10<回车>,则输出结果是: A A)10,A,10B)10,a,10C)10,a,0D)10,A,0 44若有以下程序段 intm=0xabc,n=0xabc; m-=n; printf("%X\n",m); 执行后输出结果是C A)0X0B)0x0C)0D)0XABC 45下列关于单目运算符++、--的叙述中正确的是D A)它们的运算对象可以是任何变量和常量 B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量 C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量 D)它们的运算对象可以是char型变量、int型变量和float型变量 46若有以下程序段(n所赋的是八进制数) intm=32767,n=032767; printf("%d,%o/n",m,n); 执行后输出结果是A A)32767,32767B)32767,032767 C)32767,77777D)32767,077777 47下列关于C语言用户标识符的叙述中正确的是B A)用户标识符中可以出现在下划线和中划线(减号) B)用户标识符中不可以出现中划线,但可以出现下划线 C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头 D)用户标识符中可以出现在下划线和数字,它们都可以放在用户标识符的开头 48在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为A A)char B)char=int C)char D)char=int=longint<=float 49下面四个选项中,均是不正确的八进制数或十六进制数的选项是D A)0160x8f018B)0abc0170xa C)010-0x110x16D)0a127ff-123 50以下正确的叙述是D A)在C程序中,每行中只能写一条语句 B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数 C)在C程序中,无论是整数还是实数,都能被准确无误地表示 D)在C程序中,%是只能用于整数运算的运算符 51以下不正确的叙述是D A)在C程序中,逗号运算符的优先级最低 B)在C程序中,APH和aph是两个不同的变量 C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变 D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值 52已知各变量的类型如下: inti=8,k,a,b; unsignedlongw=5; doublex=1.42,y=5.2; 则以下符合C语言语法的表达式是A A)a+=a-=(b=4)*(a=3)B)a=a*3+2 C)x%(-3)D)y=float(i) 答案分析: 由于a没有赋初值,所以B答案不符合C语言语法。 C答案中的x是double型数据,不能参加取余运算,%运算符只适用于整型数。 D答案正确写法应为: y=(float)i;表示强制类型转换。 53已知各变量的类型说明如下: intk,a,b; unsignedlongw=5; doublex=1.42; 则以下不符合C语言语法的表达式是A A)x%(-3)B)w+=-2 C)k=(a=2,b=3,a+b)D)a+=a-=(b=4)*(a=3) 答案分析: %模运算符,或称求余运算符,%两侧均应为整型数据。 A答案中的x是浮点型(double)数据。 54下面不正确的字符串常量是A A)'abc'B)"12'12"C)"0"D)"" 55下面四个选项中,均是不合法的用户标识符的选项是C A)AP_0doB)floatla0_A C)b-agotointD)_123tempint 56下面四个选项中,均是正确的八进制数或十六进制数的选项是C A)-100x8f-011B)0abc-0170xc C)0010-0x110xf1D)0a12-0x123-0xa 57C语言中运算对象必须是整型的运算符是A A)%=B)/C)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言复习要点二 语言 复习 要点