C二级试题及答案解析_第1页
C二级试题及答案解析_第2页
C二级试题及答案解析_第3页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、1. 以下有 4组用户标识符,其中合法的一组是 ()A) For -subCaseB) 4d DO SizeC) f2_G3 IFabcD) WORD void define答案 c解析:标识符的命名规则:由字母、数字、下划线组成,第一个字符必须是字母或者下划线,标示符的命名不能同 C 语言的关键字相同 (关键字表格教材第 6页)A-sub 错误; B, 4d 错误; Dvoid 是关键字。注意:关键字都是小写的,如果大写就不是关键字了。2、以下选项中合法的字符常量是()oA) 、 BB) 010 , C) 68 D) D答案 B解析:字符常量使用括起来的。参考课本 24 页 转义字符书写方法

2、 : 加上字母; 加上 13 位八进制数,这里八进制数以 0 开头; 加 上 12 位十六进制数,这里十六进制数以 x 开头。例如:,n,第一种方法, 012,第二种方法,xa ,第三种方法4、 设变量a是整型,f是实型,i是双精度型,则表达式10+a+i*f值的数据类型为()。A) intB) floatC) doubleD)不确定答案:C,按照低精度转换成高精度的原则(教材34页)5、. 以下程序的输出结果是main ()char c= z ;printf ( %c , c25);A) aB) ZC) z-25D) y答案: A解析:方法一:Z,对应的ASCII码是122,122-25=9

3、7,输岀的是 “即字符的形式,97对应小写字母 a。方法二:与小写字母 z 相差 22 的就是小写字母 a6、设有int x=ll;则表达式(x+*l的值是()。A) 3B)4C) 11D) 12答案: A解析:x+,先取x的值再乘以1除以3,11*1=11,11/3=3因为都是整形的数据,因此相除之后的结果应该为整形。7、假设所有变量均为整型,则表达式(a=2, b=5, b+, a+b) 的值是 () 。A)7 B)8C)D)答案: B62解析:逗号表达式的值为表达式最右边式子的值,计算过程 a=2,b=5,b=b+l=6,a+b=2+6=8; 最右 边式子是 a+b 其值为 8, 因此整

4、个逗号表达式的值为&8、以下程序的输出结果是() 。#includemain ()int a=10, b=10:printf ( 、 %d, %dn, a+, 一 b);A) 10, 10B) & 10C) 10, 9 D) 8,9答案: C解析:本题是运算的使用,首先看输出函数的输出项,从右边开始往左计算,-b,- 在 b 的前面,因此先进行 b-1运算,再输岀b的值,b输岀值为9; a+, +在a的后面,先输岀a的值再进行a+1运算,因此a输岀的值应该为 10.9、以下程序的输岀结果是()o main () int k=17 ;printf ( z %d, %o, %xn, k, k, k

5、) ;A) 17, 021, 0x11B)17, 17, 17B) 17, 0x11, 021D)17, 21, 11答案:D10 、若变量已正确说明为float 类型,要通过语句seanf(%f %f %f” &a,&b,&c);给 a 赋 于A) 10 回车22回车33回车C) 10.0 回车22.0 33.0 回10.0,22.0,33.0回车D) 10 22 回车33回车10.0, b 赋予 22.0, c 赋予 33 . 0 ,不正确的输入形式是 () :答案 B, 输入函数的使用方法,使用 scanf 函数输入时按空格或者回车将数据隔开11、 若有条件表达式(exp)?a+:b-,

6、则以下表达式中能完全等价于表达式(exp)的是()。A) (exp=0)B) (exp !=0)C) (exp=l)D) (exp! =1)答案 B解析:我们先分析题目的条件,如果exp为真(也就是说exp不为0)那么输岀a+,否则 输岀b-,很明显应该选择 exp! =012、当 a=l,b=3,c=5,d=4 时,执行完下面一段程序后 x 的值是 () 。if(ab)l if(cd) x=l;2else2if(ac)3if(bd) x=2;4else x=3;4else x=6;3else x=7;1A) 1B) 2C) 3D) 6答案为B解析:如果if-else语句掌握熟练可直接分析程序

7、做题目。否则,先将if和else配对(题目 上红色数字即为配对情况)如果ab成立则执行x=7 ;否则如果cd成立则x=l ;否则,当ac成立x=6,否则,当 bd成 立则x=2,否则x=3 ;由题目可见,ab不成立,cd不成立,而ay)z 二 x ;x 二 y; y 二乙A) x=10, y=20, z=30B) x=20, y 二 30, z=30C) x=20,y=30, z=10D)x=20,y=30, z=20答案:B解析:x=10,y=20因此xy不成立,语句 z=x;不被执行,继续执行x二y; y=z, x=20, y=30,而z的值保持不变。14、有如下程序mai n()irrt

8、 x=l, a=0, b=0;switch(x)case 0:決+;case 1:a+;case 2:a+;b+ ;printf (“ a=%d, b=%d, a, b);该程序的输岀结果是()oA) a=2, b=lB) a=l, b=lC) a=l, b=0D) a=2, b=2答案A解析:x=l,执行a+ ;先取a的值,在将a=a+l=l,接下来执行a+, b+同样的道理,先执行a=l, 和b=0,再进行+1运算,最后 a=a+l=2,b=b+l=l。15、以下程序的输岀结果是 ()。main() int a= -1, b=4, k;k=(+a0)&!(b_=0);printf( 4t%

9、d%d%dn , k, a, b);A) 104 B) 103 C) 003 D) 004答案 D解析:+a先取将a=a+l再进行a与0的比较,显然 0 0是不成立的,因此k=0,! (b 一=0)不参与计算,因此 b 的值仍为 416、若变量 a、i 已正确定义,且 i 已正确赋值,合法的语句是 ()=A) a=lB) +i;C) a=a+=5;D) a=int(i);答案 B17、 下面程序段的运行结果是()?int n=0;while(n+ 二 2);printf ( %d , n”);A) 2B) 30 4D)有语法错答案 C解析 : while 语句的循环体为空,这里要注意语句后面的

10、分号,断定循环体为空,因此第一次循环 n=0, n=2 为真, n+, n=l ;第二次循环 n=l, n=2 成立, n+, n=2 ; 第三次循环,n=2, nmain ()irrt a=l, b=10;dob-=a;a+;while(b-0);printf ( an” , a, b);B) a=2, b=8A) a=3, b=llC) a=l, b=-l D) a=4, b=9答案 B解析: do-while 循环先执行后判断,因此先执行 b=b-a=10-l=9, a=a+l=l+l=2, 判断 b 0 是否成 立, b=90 不成立,循环结束, b 二 b-l=8, 最后输出 a=2

11、, b=820、设有程序段int k=10;while(k=0) k=k-l;则下面描述中正确的是 () 。A) while 循环执行 10 次B) 循环是无限循环0 循环体语句一次也不执行D) 循环体语句执行一次答案: C解析: while 语句先判断后执行 k=0 不成立,循环体不被执行。21、语句 while(IE); 中的表达式 ! E 等价于 () 。A) E=0B) EU1C) E!二 0D) E=1答案:A解析:只有当 E 为 0 的时候! 0 才为真,也就是只有当 E=0 时 wh 订 e 循环体才被执行。22、t 为 int 类型,进人下面的循环之前, t 的值为 0,则以下

12、叙述中正确的是 () 。while( t=l)A) 循环控制表达式的值为 0C)循环控制表达式不合法 答案 BB) 循环控制表达式的值为1D)以上说法都不对25、以下程序的输出结果是 ()o main ()int a, b;for(a=l, b=l;a=20) break; if(b%3=l) b+=3;continue;b-=5; printf ( 、 %dn, a);)D)10A) 7 B) 8 C) 9 答案: a=l,b=l,b% 3=l,b=b+3=4;a=2,b% 3=l,b=b+3=7; a=3,b%3=l,b=10 a=4,b% 3=l,b=13 a=5,b% 3=l,b=16

13、 a=6,b% 3=l,b=19a=7,b%3=l,b=21a=8,b=20, 循环结束,因此 a 的值为 826、以下程序的输出结果是 () 。 main () int i, j, x=0;for(i=0;i2;i+) x+;for(j=0;jn) m-=n;while( nm) n-=m;printf (m=%dn, m);A) m=3 m=65, n=14B) m=2m!=mnm=m_n=65-m匸mn14m=m-n=37m!=mnm=m-n=23m!=mnm=m-n=9m!=nmn=n-m=14-9=5Fh!=mnm=m_n=9_5=4Fh!=nnmn=n-m=5-4=lRi!=mnm

14、=m-n=4-l=3m!=mnm=m-n=3-l=2Fh!=mnm=m-n=2-l=lm=n循环结束,最后 m的值为1)28、设有数组定 char array=C) m=lD) m=0nChina n;则数组airay所占的空间为(A) 4个字节B) 5个字节0 6个字节D) 7个字节29、假定int类型变量占用两个字节,若有定义 字节数是(D ) oA)B)C)3610:intx10=0,2,4;贝U数组x在内存中所占D)2030、 执行下列程序时输入:123 v空格456v空格789v回车,输岀结果是 (D )。main() char s100;int c, i;sca nf(%c, &

15、c);sca nf(%d, & i);scanf(%s, s);prin tf(%c, %d, %sn, c, i, s);)A) 123,456, 789B) 1,456, 789C) 1,23,456, 789D) 1, 23,45631、 以下程序的输岀结果是(D ) omain ()char w 10 = ABCD, EFGH, IJKL, MNOP, k;for (k=l;k v 3;k+) printf ( sn, wk);iA) ABCDB) ABCDC) EFGD) EFGHFGHEFGJKIJKLKLIJoM32、函数调用strcat( strcpy(strl,str2),

16、str3 )的功能是(C )str3之后str3之后A)将串strl复制到串str2中后再连接到串B)将串strl连接到串str2之后再复制到串C)将串str2复制到串strl中后再将串str3连接到串strl之后D)将串str2连接到串33.有以下定义:strl之后再将串strl复制到串str3之后D)数组x的长度小余数组y的长度char x =abcdefg;chary=a . b. Cg;则正确的叙述为(C )oA)数组x和数组y等价C)数组x的长度大于数组y的长度它与对应形参之间的数据传递方式是(B) oB)单向值传递D)传递方式由用户指定34、在调用函数时,如果实参是简单变 量,A

17、)地址传递C)由实参传给形参,再由形参传回实参B)数组x和数组y的长度相同35、以下函数值的类型是 (A ) o fun( float x) float y; y=3*X 4; return y;)A) int B) 不确定 C)voidD) float36、以下程序的输出结果是 (B )o int a, b; void fun() a=100; b=200; main() int a=5, b=7; fun();D)75printf( n%d%dn n, a, b); )A) 100200 B) 57 C) 20010037、设有以下函数: f ( int a)int b=0; static

18、 int c=3;b+; c+;return(a+b+c);如果在下面的程序中调用该函数,则输出结果是 (A ) main() o int a=2, i;for(i=0;iv3;i+) printf(%dn, f(a);A) 7B) 7 C) 7 D) 78910 7911i=0, a=2, c=3, b=l, c=4, a+b+c=7 i=l, a=2, c=4, b=l, c=5, a+b+c=8 i=2, a=2, c=5, b=l, c=6, a+b+c=938、有如下函数调用语句: func(recl, rec2+rec3, (rec4, rec5); 在该函数调用语句中,含有的实参

19、个数是 (A ) 。A) 3B) 4C) 5D )有语法错39、 在 C 语言中,变量的隐含存储类别是(A )。A) autoB) staticC) exter nD)无存储类别40、 在下列的函数调用中,不正确的是(D )。A) max (a, b) ;B) max (3, a+b) ;C)max (3, 5) ;D) int max (a, b) ;41、在下列叙述中,错误的一条是( A ) oA ) 主函数 main 中定义的变量在整个文件或程序中有效B ) 不同函数中,可以使用相同名字的变量C) 函数中的形式参数是局部变量D ) 在一个函数内部,可在复合语句中定义变量,这些变量只在本复

20、合语句中有效42、在下列叙述中,错误的一条是()。A) scanf 函数可以用来输入任何类型的多个数据B ) 数组名作函数参数时,也采用“值传递”方式O 如果形参发生改变,不会改变主调函数的实参值D )函数的实参与形参的类型应一致43、下列程序执行后输出的结果是( A )。 int d= 1;fun (int p )int d=5;d+=p+;printf ( %d ”,d) ;main ()int a=3;fun ( a) ;d+=a+;printf (“ n”,d) ;A) 84B) 96C) 94D) 85A)单精度B)字符0双精度数D )整44、宏定义#define PI 3.1415926的作用是:指定用标识符 PI来代替一个(B )。45、 以下程序的输出结果是(C )。#define f(x) x*x main() int a=6, b=2, c ; c=f(a)/f(b) ; printf(%dn, c) ;A) 9 B)

温馨提示

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

评论

0/150

提交评论