收藏 分销(赏)

C语言试题.doc

上传人:a199****6536 文档编号:7239997 上传时间:2024-12-28 格式:DOC 页数:14 大小:46.54KB
下载 相关 举报
C语言试题.doc_第1页
第1页 / 共14页
C语言试题.doc_第2页
第2页 / 共14页
C语言试题.doc_第3页
第3页 / 共14页
C语言试题.doc_第4页
第4页 / 共14页
C语言试题.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、(完整版)C语言试题第1章 C语言概述一、选择题:1、一个C语言程序是由 C 组成.A。主程序 B.子程序 C.函数 D.过程2、一个C语言程序总是从 C 开始执行.A.主程序 B.子程序 C.主函数 D.函数3、以下叙述正确的是 D .A. 在C程序中,main函数必须位于子程序的最前面B。 C程序的每一行中只能写一条语句C。 在对一个C程序进行编译的过程中,可发现注释中的拼写错误D. C语言本身没有输入输出语句5、下面标识符中,不合法的用户标识符为 D .A. Pad B。 a_10 C. _124 D. a#b15、下列关于c语言用户标识符的叙述中正确的是 B 。A. 用户标识符中可以出

2、现下划线和中划线(减号)B. 用户标识符中不可以出现中划线,但可以出现下划线C。 用户标识符中可以出现下划线,但不可以放在用户标识符的开头D. 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头1、下列选项中,可以作为语言标识符的是( ) A、3stu B、stu C、stu3 D、stu.32、下列选项中,不可以作为语言标识符的是( ) A、 num B、turbo_c C、printf D、student33、请选出可用作C语言用户标识符的一组标识符( )A、void, define, WORD B、a3_b3,_123,IF_AC、FOR,abc, Case D、2a,Do

3、,Sizeof4、以下叙述正确的是 .A。在C程序中,main函数必须位于子程序的最前面B。C程序的每一行中只能写一条语句C.在对一个C程序进行编译的过程中,可发现注释中的拼写错误D.C语言本身没有输入输出语句【答案】D【解析】每一个C源程序都必须有、且只能有一个主函数(main函数),但是不必位于最前面,编译之后,运行是会自动搜寻到main函数并开始执行,A项错误;书写程序时,为了清晰,便于阅读和理解,一般是一个说明或一个语句占一行,但这不是必须的,B项错误;编译过程中不对注释进行编译,所以发现不了编译中的拼写错误,C项错误;C语言本身没有输入输出语句,scanf函数和printf函数是标准

4、输入输出库函数,其头文件为stdio。h,D项为答案。5、下面标识符中,不合法的用户标识符为 。A。 Pad B。 a_10 C. _124 D。 ab【答案】D【解析】C语言中规定,标识符只能是字母(AZ,az)、数字(09)、下划线(_)组成的字符串,并且其第一个字符必须是字母或下划线。D包含#,是不合法的;6、 是C语言提供的合法的数据类型关键字。A。 Float B。 signed C。 integer D。 Char【答案】B【解析】在C语言中,关键字都是小写的,所以A和D项错误;integer是Vb的关键字,不是C语言的关键字。7、不正确的字符串常量是 。A。 abc B. “12

5、12” C.”0” D。” “【答案】A【解析】字符串常量是由一对双引号括起的字符序列。A项用的单引号,显然错误;B项,表示的字符序列是:1212 ;C项表示的字符序列是0;D项表示的字符序列是一个空格。8、设有以下定义:#define d 2int a=0;double b=1。25;char c=A;则下面语句中错误的是 。A.a+; B。b+; C。c+; D.d+;【答案】D【解析】因为用define定义的d是常量,其值是不能改变的,D项错误;而a,b,c都是变量,尽管它们都有初赋值,但它们的值允许改变。9、C语言程序的执行,总是起始于【 】。A) 程序中的第一条可执行语句 B) 程序

6、中的第一个函数C) main函数 D) 包含文件中的第一个函数分析:在一个C语言源程序中,无论main函数书写在程序的前部,还是后部,程序的执行总是从main函数开始,并且在main函数中结束。本题正确答案为C。10、下列说法中正确的是【 】.A) C程序书写时,不区分大小写字母B) C程序书写时,一行只能写一个语句C) C程序书写时,一个语句可分成几行书写D) C程序书写时每行必须有行号分析:C语言严格区分大小写字母,如A1”和a1被认为是两个不同的标识符,C程序的书写非常灵活,既可以一行多句,又可以一句多行,且每行不加行号。本题正确答案为C。11、下面对C语言特点,不正确描述的是【 】。A

7、) C语言兼有高级语言和低级语言的双重特点,执行效率高B) C语言既可以用来编写应用程序,又可以用来编写系统软件C) C语言的可移植性较差D) C语言是一种结构式模块化程序设计语言分析:C语言是介于汇编语言和高级语言之间的一种语言,由于它可以直接访问物理地址,对硬件操作,所以C语言既可以编写应用程序,又可以开发系统软件,而且C程序可移植性好于汇编语言,程序清晰具有模块化的特点。本题正确答案为C。12、C语言源程序的最小单位是【 】。A) 程序行 B) 语句 C) 函数 D) 字符分析:程序行、语句、函数都是由字符构成的,字符是C语言的最小单位。本题正确答案为D.13、以下四项中属于C语言关键字

8、的是【 】.A) CHAR B) define C) unsigned D) return分析:C语言有32个关键字(或称保留字),它们都有特定的含意,并且由小写字母组成,所以选项A是错的,选项B不是保留字,选项D是return的错误拼写。本题正确答案为C。32下列字符串不符合标识符规定的是【 】.A) SUM B) sum C) 3cd D) end分析:标识符规定只能由26个英文字母(大小写均可),数字09和下划线组成,且不能以数字开头,题中的3cd不符合规定。本题正确答案为C。二、填空题:1、一个C语言的语句至少应包含一个 分号 。2、C源程序的基本单位是 函数 。3、函数是具有相对独立

9、功能的 程序段 。4、C语言中的标识符可以由3种字符组成,它们是: 英文字母、下划线、数字 ,并且第一个字符必须是字母或 下划线 。 第3章 数据类型、运算符与表达式一、选择题:4、C语言中,最简单的数据类型是 B .A.整形、实型、逻辑型 B.整型、实型、字符型C。整型、字符型、逻辑型 D.整型、实型、逻辑型、字符型6、 B 是C语言提供的合法的数据类型关键字。A。 Float B。 signed C。 integer D. Char7、不正确的字符串常量是 A 。A. abc B. “1212” C.”0” D。” “8、若定义:int a=7;float x=2.5,y=4。7;则表达式

10、x+a%3(int)(x+y)%2/4的值是 B .A。7 B.2.50000 C。3。500000 D。0。000009、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=A+63;后,c2中的值为 A 。A.D B。68 C.C D。不确定的值11、执行下面程序段的输出结果为 B 。 int x=13,y=5; coutk1k2;cink3k4;将10赋给k1,k3,将20赋给k2,k4,则应按 B 格式输入数据。A.1020CR B。10 20CR C.10,20CR D.10 20CR 1020CR 10 20CR 10,20 10,20xy;语句使变量x得到数值

11、11,变量y得到数值12,下面4组输入形式中,正确的是 C 。A. 1112CR B。12,11CRC。11 12 1216、有以下程序段:int m=0,n=0;char c=a;cinmcn;coutm”,”c”,n;若从键盘上输入:10A10CR,则输出结果是 A .A。10,A,10 B.10,a,10 C.10,a,0 D.10,A,01。 、下列选项中,可以作为C语言常量的是( ) A)13.8e B)1/2 C)M D)”abc”2。 下列选项中,不可以作为C语言常量的是( ) A)。88 B)35。6e3 C)4e2 D)3/53. 下列选项中,正确的一组程序是( )A)cha

12、r a; B)char b; C)char c; D)char d A=M; b=55; c=”M; d=”55”4。 已知字母b的ASCII码值为98,如ch为字符型变量,则表达式ch=b+52的值为( )A)e B)d C)102 D)1005。 下列程序的运行结果是( )main( )char c1=6,c2=0;printf(“%c,c,%dn,c1,c2,c1c2);A) 因程序格式不合法,提示出错信息。B) 6,0,6C) 6,0,7D) 6,0,56.以下程序的输出结果是( ) main( ) int x=010,y=10,z=0x10;printf(“%d,d,dn,x,y,z

13、);A) 8,10,16B) 8,10,10C) 10,10,10D) 10,10,167已知各变量的类型定义如下: int i=8,k,a,b; unsigned long w=5; double x=1。42,y=5.2;则以下两组表达式中不符合C语言语法的表达式分别是: A)k=i+ B)(int)x+0。4 C)y+=x+ D)a=2*a=3 A)x%(3) B)w+=-2 C)k=(a=2,b=3,a+b) D)a+=a-=(b=4)(a=3)11在C语言中,合法的字符常量是 A) 084 B) x43 C) ab D) “0”【答案】B【解析】字符常量是用单引号括起来的一个字符,据

14、此定义,选项C和D显然错误。A和B是转义字符.转义字符是一种特殊的字符常量,以反斜线开头,后跟一个或几个字符,它有两种写作形式,ddd和xhh,其中ddd和hh分别为八进制和十六进制的ASCII代码。A选项084,反斜线之后是三位数字,是采用的ddd形式,不过084作为八进制显然是错误的;B项x43,采用的xhh形式,43作为两位十六进制数,对应ASCII代码67,对应的是字符c。12设有如下的变量定义: int i=8, k, a, b; unsigned long w=5; double x=1, 42, y=5.2;则以下符合C语言语法的表达式是 A) a+=a-=(b=4)*(a=3)

15、 B) x%(-3);C) a=a3=2 D) y=float(i)【答案】A【解析】A项是赋值表达式和算术表达式的结合,符合C语言语法;B项中,%是模运算符,要求运算符两侧均为整数,x为double,显然错误;C项是赋值表达式,要求赋值运算符的左侧是变量,3=2部分显然错误;D项,强制类型转换运算符使用错误,应为y=(float)i13以下程序运行后,输出结果是 A) cde B) 字符c的ASCII码值 C) 字符c的地址 D) 出错 main() char *s=”abcde; s+=2; printf(”ldn,s); 【答案】C【解析】char s =”abcde,声明s是一个字符串

16、指针,并且将字符数组abcde”的首地址赋值给了s,s+=2,即是在原来的s地址上向前推进两个字节,又因为数组是在连续空间上存储的一组数据,且一个字符占一个字节,那么也就等价于由数组的第一个字节地址推进到第三个字符的地址,即字符c的地址。答案为c16当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是 A) c=b=a; B) (a=c) (b=c) ; C) (a=c) &(b=c); C) a=c=b;【答案】C【解析】赋值运算符是自右向左运算的.A项是将a的值赋给了b,又将b的值赋给了a,与题意不符;B项和C项都是逻辑运算,且都自左向右运算,它们的区别是:或运算是先计算左边表达

17、式的值,若为真,则结束运算,若为假,继续计算右边表达式,所以,如果a=c为真(只需要a0),那么b=c语句不会执行,即不能完成c给b的赋值;与运算则是两边的表达式都要计算,所以,a=c和b=c都能得到执行,C为正确答案;D项是将b的值赋给了c和a17设有如下定义:int x=l,y=-1;,则语句:printf(”%dn,(x-+y));的输出结果是 A) 1 B) 0 C) 1 D) 2【答案】B【解析】表达式x-&+y中,逻辑运算符的优先级最低,应该先计算它两边的表达式。x- :x参与逻辑运算后,x的值再自减1,那么x参与逻辑表达式的值为1;+y:y自增1后再参与逻辑运算,那么+y参与逻辑

18、表达式的值为1+1=0。x&+y即为1&0,值为0,答案为B。18若定义:int a=7;float x=2。5,y=4.7;则表达式x+a%3(int)(x+y)2/4的值是 。A。7 B.2.50000 C.3.500000 D。0。00000【答案】B【解析】这是一个算术表达式,根据运算符的优先级,应该先计算(x+y),得到值7。2,之后对其进行强制数据类型转换(int),得到值7,取模运算和乘、除运算在同一优先级上,自左向右依次计算,则先进行取模运算,a%3即7%3=1,之后17=7,72=1,1/4=0,即a3*(int)(x+y)%2/4的值为0,那么表达式的值即是x的值,为2。5

19、0000。19已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=A+6-3;后,c2中的值为 。A.D B。68 C。C D。不确定的值【答案】A【解析】字符是以ASCII码的形式存储的,表达式A+6-3的运算实际就是对应ASCII码的算数运算,加减运算是同一优先级的,所以A+63=65+5451=68,即D的ASCII的值。此处定义c2是字符型,所以,c2的值是D;如果c2定义为整型,则c2的值是68。20下面叙述不正确的是【 】。A) C语句末尾必须有分号B) C语言中无论是整数还是实数都能准确的表示C) 运算符“%”只能用于整数运算D) 乘除运算符优先级高于加减运算

20、符21以下叙述正确的是【 】。A) C语句前面必须有行号B) C程序中每行只能写一条语句C) C语言本身没有输入输出语句D) 注释必须跟在一行语句的后面22复合语句应用【 】括起来.A) 小括号B) 方括号C) 大括号D) 尖括号23C语言语句一行写不下时,可以【 】。A) 用逗号换行B) 用分号换行C) 用回车换行D) 在任意一空格处换行24下面程序的输出是【 】。(“表示一个空格)int a=3366;printf(%-08d|,a);A) 0003366 B) |00003366| C) 3366|D) 输出格式非法25若有说明语句:int a; float b;,以下输入语句正确的是【

21、 】。A) scanf(%f%f,&a,&b);B) scanf(f%d,&a,b);C) scanf(d,%f,&a,&b);D) scanf(6。2f%6。2f”,a,&b);26以下程序的输出结果是【 】。main( ) int x=11,y=11;printf(%d%dn,x,y);A) 11,11B) 10,10C) 10,11D) 11,1027执行下面程序段,给x、y赋值时,不能作为数据分隔符的是【 】。int x,y;scanf(%dd”,x,&y);A) 空格B) Tab键C) 回车D) 逗号 28下面合法的语句是【 】.A) int a=8,b;b=+a+;printf(d

22、,%d”,a,b+); B) int a;printf(”d”,scanf(%d”,a));C) char a;scanf(”c,a);char b=scanf(”b=c,&b);D) char c=getchar( ); putchar(int)c);29执行下面程序时,欲将25和2。5分别赋给a和b,正确的输入方法是【 】。int a;float b;scanf(a=d,b=%f,a,&b);A) 252。5B) 25,2。5C) a=25,b=5。5D) a=25b=2。530与数学公式abxy不等价的语句是【 】。A) ab/x*yB) ab/x/yC) ab/(x*y)D) a/(x

23、y)*b31下面不属于C语言的数据类型是【 】.A)整型 B)实型 C) 逻辑型 D) 双精度实型分析:和其它高级语言相比,C语言中没有逻辑型数据,也没有逻辑型变量。本题正确答案为C。33下面四个选项中,均是合法实数的选项是【 】。A)2e4.2 B)33e4 C)0。2e。5 D)-e5 分析:实数有两种表示形式:小数形式和指数形式,小数形式必须有小数点,指数形式中,字母e之前必须有数字,e之后必须是整数.选项A)中的2e4.2”,选项C)中的”0。2e-.5”,选项D)中的-e5均是不合法的。本题正确答案为B。34下列正确的字符型常量是【 】。A) aB) C) rD) 277分析:字符常

24、量的定义是用单引号括起来的一个字符,A和C的定界符不对,D超过了char型数据的表示范围,是转义字符。本题正确答案为B。35若有说明语句char ch1=x41;则ch1【 】。A) 包含4个字符 B) 包含3个字符 C) 包含2个字符 D) 包含1个字符分析:”x41中的41是十六进制数,即十进制的65,题中ch1存放的65是字母A”的ASCII码。本题正确答案为D.36下列程序段输出的字符串长度为【 】。printf(aaacccbddd”);A) 11 B) 12 C) 13 D) 17分析:、b和”为转义字符,程序输出结果为:aaaccddd”.本题正确答案为A。37下列运算符中,要求

25、运算对象必须是整数的是【 】.A) / B) * C) % D) !分析:题目中/”、”*”、”!”的运算对象既可以整数,也可以是实数,只有取余数运算符”%”要求运算对象必须是整数。本题正确答案为C。38下面合法的赋值语句是【 】。A) x+y=2002; B) ch=green”; C) x=(a+b)+; D) x=y=0316;分析:赋值号左端不能为表达式,选项A)是错的;赋值号不能将字符串赋给某个变量,选项B)也是错的;增量运算符“+”不能用于表达式,选项C)也是错的。本题正确答案为D.39已知a为int型,b为double型,c为float型,d为char型,则表达式a+b*c-d/

26、a结果的类型为【 】。A) int 型 B) float型 C) double型 D) char型分析:不同类型数据混合运算的转换规律是:运算前float型数据会自动转换为double型,char型数据会自动转换为int型。运算时int型数据和double型数据要先化为相同类型,即double型,运算结果也为double型。本题正确答案为C.40下面的程序运行后输出为【 】.#include main( ) int a,b;float c;b=5;c=6;c=b+7;b=c+1;a=sqrt((double)b+c); / *sqrt是开平方库函数,定义代码在math。h中*/printf(d

27、,f,%d”,a+6,c,b);A) 11。000000,12。000000,13。000000B) 11.000000,12。000000,13C) 11。0000000,12,13D) 11,12。000000,13分析:C语言允许将一种类型的数据赋给另一种类型的变量,但是变量的类型并不会因为赋值而发生改变,如本题中将b+7,即12赋给float型变量c,c值应为12。000000而不是整数12,同样a=sqrt((double)b+c),赋值号右边是双精度数,但由于a是整形变量,故a的值为5。本题正确答案为D。二、填空题:1、有以下语句段:int n1=10,n2=20;cout n1e

28、ndln2endl ;要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。n1=10n2=206、以下程序运行后的输出结果是 b .void main()char m; m=B+32; coutb)&!c|1 (4)!(x=a)&(y=b)&08、执行下面的程序段后,a的值为 20 。 int a,b; a=300; b=20; a=a+b; b=a-b; a=a-b; couta;41下面程序段的输出结果是 。int k=10;float a=3。5,b=6。7,c;c=a+k%3(int)(a+b)%2/4;分析:本题考查运算符的优先级概念,式中要先算(a+b)的值,再算强制

29、类型变换,、/、%是同级的要从左到右计算,最后算加法和赋值。本题正确答案为:3。50000042若想通过以下输入语句使a中存放字符串1234,b中存放字符5,则输入数据的形式应该是 。 : 。 char a10,b; scanf(”a=s b=c”,a,&b); : 。【答案】a=1234 b=5【解析】scanf函数是格式化输入函数,它从标准输入设备(键盘) 读取输入的信息.scanf(a=%s b=c,a,&b)要求输入设备(键盘)输入数据的形式是a=s b=c(注意中间要求是空格),这里scanf的意义即是:从键盘顺序读取一串字符,以空格为分隔符,分别赋值给变量a,b;a可以接受一串字符

30、,而b只能接受一个字符,多余的字符将被舍弃,scanf函数结束。所以,键盘上的输入应该是a=1234 b=543执行下列程序的输出结果是【 】。main( )float a=1,b;b=+a*+a;printf(”fn”,b);44执行下列程序的输出结果是【 】。main( )int x=5,y;y=+x+x;printf(y=dn”,y);45下面程序段的执行结果是x=【3】,y=【4】.inta=3,b=5,x,y;x=a+1,b+6;y=(a+1,b+6);printf(”x=%d,y=d”,x,y);分析:此题考查逗号表达式的概念,因逗号运算符的优先级比赋值号还低,所以执行x=a+1,

31、b+6时,x得到的是a+1的值。本题正确答案为 【3】 4, 【4】 11。46已知:int a=5;则执行a+=a=a*a;语句后,a的值为【6】。分析:a+=a=a*a的运算顺序是从右向左,相当于求a+=(a=a*a),其中小括号内的运算得a=5-5*5即a=20,下一步再求a+=a,即a=a+a,将20代入得a=40.本题正确答案为 【6】 -40。47下面程序的运行结果是x=【7】,y=【8】。main( ) float x=4.9;int y;y=(int)x;printf(”x=%f,y=%d,x,y); 分析:强制类型变换并不改变x的原值,x仍为4。9,而变换得到的是中间结果,此题将中间结果赋给了y,另外注意是舍弃小数部分,而不是四舍五入。本题正确答案为 【7】 4。900000 【8】 4。

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服