好文档 - 专业文书写作范文服务资料分享网站

2012年3月计算机二级C语言笔试真题文字word版+详细答案解析

天下 分享 时间: 加入收藏 我要投稿 点赞

hi.http://m.diyifanwen.net//liuzhiqianghome

2012年3月全国计算机等级考试二级C语言真题

(12)【答案】A)

【解析】实型数据在内存中存储的二进制位数是有限的,例如float型数据在内存中有24位二进制尾数。而一个十进制实数转化为二进制实数时,其有效数字位数有可能会超过尾数的存储长度,从而导致有效数字丢失而产生误差。 (13)【答案】B)

【解析】一个正确的算法可以有零个或者多个输入,必须有一个或者多个输出。 (14)【答案】C)

【解析】一个C程序有且只有一个主函数 main()。一个C 程序可以包含多个不同名字的子函数。C程序在书写时没有严格的缩进要求。 (15)【答案】B)

【解析】考察C语言中输入格式,因为在输入格式中定义好了”%c%c”,其中没有任何符号,所以中间不能加任何字符,包含不能加逗号、回车和空格,因为这些也算是字符。所以在输入时也不可以有任何间隔符号。 (16)【答案】D)

【解析】字符常量有两种表示方法:

一种是用该字符的图形符号,如'b' ,'y','*'。另外还可以用字符的ASCII码表示,即用反斜符(\\)开头,后跟字符的ASCII码,这种方法也称为转义序列表示法,具体方法是:有两种形式:一种是用字符的八进制ASCII码,表示为:\\odd.这里,ddd是八进制值(o可以省略)。另一种使用字符的十六进制ASCII码值,表示为 \\0xhh或0Xhh 这里hh是两位十六进制值。

本题中D)选项?\\019'使用是八进制表示,不应该出现9,所以错误。 (17)【答案】A)

hi.http://m.diyifanwen.net//liuzhiqianghome

2012年3月全国计算机等级考试二级C语言真题

【解析】考察C语言关于赋值的应用,首先执行a-=a-5,即a=a-(a-5),使得a的值为5,然后执行c=(a-=a-5),即将a的值5赋给变量c,使得c的值也为5。然后执行下句逗号表达式中的a=b,把b的值0赋给a,此时a的值为0,然后执行b=b+4,使得b的值为4。最后打印输出。 (18)【答案】D)

【解析】本题考察自增运算符,++x表示先将x值加1后再用,x++表示先使用x值,用后加1,所以本题中ABC选项都会输出x+1的值,只有D选项会输出x值。

(19)【答案】C)

【解析】在C语言中非0的值表示真,0表示假。 (20)【答案】A)

【解析】考察if语句和自增自减运算符,判断条件中if(a++<9)是先用后加,即a的值为9,所以条件不成立,但是a已经进行了自增1操作,a的值此时为10。执行else语句时,因为打印a--,是先用后减,所以先输出10,然后a的值变为9。

(21)【答案】C)

【解析】本题考察switch语句的应用,case分支后面如果没有break,那么就会顺序执行下面的case,直到遇到break跳出。所以第一次循环后s的值为3打印输出。第二次s的值为:s=s+3,s=s+4,即为10,打印输出。第三次没有匹配成功直接执行default语句,s=s+4,所以s的值为14,打印输出。 (22)【答案】A)

【解析】考察for循环语句,本题中k初始值为-1,执行一次循环体,执行完后k值为0,不满足k<0条件,推出循环,所以执行了一次。 (23)【答案】C)

hi.http://m.diyifanwen.net//liuzhiqianghome

2012年3月全国计算机等级考试二级C语言真题

【解析】考察for语句和if语句,第一次循环a的值为0 ,a%2也为0 ,条件不满足所以打印的是(c+a)即变量c的值“A”。第二次a的值为1,条件a%2的值为1,条件满足打印字符(b+a)即字符 “2”。第三次a的值为2,条件不满足,打印(a+c)即字符”C”。同理打印后续字符为“4E6”。 (24)【答案】A)

【解析】考察数组和指针的概念,本题中*k指向数组m的首地址。*(k+2)现将指针后移两个元素,即为m[2]的首地址,然后取出m[2]的值6,所以选择A选项。选项B的值是一个地址无意义。选项C的值为4。选项D使得m[0]的值为4。

(25)【答案】D)

【解析】考察指针的概念和应用,数组名本身就是地址,所以不需要在用&符号。C选项不能对所有元素赋值而是反复再给一个数值赋值且是死循环。 (26)【答案】B)

【解析】函数中的形参a[]已经退化为一个指针,所以AC都不对,D选项中只是传入一个指针,并没有把数组的元素挨个赋值,正确选项为B。 (27)【答案】A)

【解析】选项A中a = /*p1-m;表示方式不正确,未能正确表示出含义。 (28)【答案】D)

【解析】考察指针数组的概念,D选项中str为二维字符数组,不能够直接把一个字符串赋值到二维数组的某一行中。 (29)【答案】C)

【解析】考察函数声明基本用法,C选项中函数的第一形参没有指名是数组,代表的是一个整型数,声明不正确。

hi.http://m.diyifanwen.net//liuzhiqianghome

2012年3月全国计算机等级考试二级C语言真题

(30)【答案】B)

【解析】考察转义字符的用法,strlen函数的作用是求得字符串长度,\\n与\\1均是反义字符各表示一个字符所以打印值为8。 (31)【答案】C)

【解析】考察scanf和gets输入字符串的区别,scanf语句接收字符时遇到空格就作为一个字符串的结束,所以a数组中为this ,b数组中为is,但是getchar函数见到回车才认为结束所以c数组为 a cat!。所以打印结果如选项C。 (32)【答案】A)

【解析】考察函数的嵌套调用,当运行fun(?z?),调用fun(?y?),然后嵌套调用fun(?x?),输出结果为先输出x,然后输出y,最后输出z。 (33)【答案】D)

【解析】考察for循环函数调用,执行fun(3)是输出****,然后输出#,执行fun(4)时输出*****,然后输出#,所以选项D)正确。 (34)【答案】D)

【解析】考察静态局部变量,静态局部变量属于静态存储方式,它具有以下特点:

(1)静态局部变量在函数内定义,它的生存期为整个源程序。

(2)静态局部变量只能在定义该变量的函数内使用该变量。退出该函数后, 尽管该变量还继续存在,但不能使用它。

(3)允许对构造类静态局部量赋初值。若未赋以初值,则由系统自动赋以0值。 (4) 根据静态局部变量的特点, 可以看出它是一种生存期为整个源文件的量。虽然离开定义它的函数后不能使用,但如再次调用定义它的函数时,它又可继续使用,而且保存了前次被调用后留下的值。

hi.http://m.diyifanwen.net//liuzhiqianghome

2012年3月全国计算机等级考试二级C语言真题

根据这个特点,函数第一次调用时,会将数组a变为35345,当第二次调用时,函数内的j值为2,所以会将数组a的第三个元素更改为7,所以最终结果为35745,选项D)正确。 (35)【答案】B)

【解析】考察宏定义的使用,根据该宏的定义,S(k+j)=(k+j)*k+j*2=39, S(k-j)=(k-j)*k-j*2=11,所以答案为39,11选项B)正确。 (36)【答案】D)

【解析】通过分析代码,可以看出来,函数的作用就是把数组某个元素的变为这个元素位置加5后对用的元素值,所以执行完之后输出数组x的前五个元素的值,其实就是数组x的后五个元素的值,即6 7 8 9 10。 (37)【答案】C)

【解析】考察结构体的用法,在引用结构体中的成员变量时,可以使用?.?来引用,当指针指向结构体时,可以使用?->?来指向结构体重的成员,C选项引用错误。 (38)【答案】B)

【解析】考察结构体的用法,结构体数组存储了三个人的信息,x+2代表了指向第三个元素,所以输出name为Zhao。 (39)【答案】D)

【解析】考察移位操作,执行c=(a<<2)<<1语句时,首先是 a左移两位,其等效于将a乘以4,得到48,然后将48左移一位,相当于是乘以2,所以结果为c=96,选项D正确。 (40)【答案】A)

【解析】考察文件的操作,函数 ftell() 用于得到文件位置指针当前位置相对于文件首的偏移字节数。在随机方式存取文件时,由于文件位置频繁的前后移动,

2012年3月计算机二级C语言笔试真题文字word版+详细答案解析

hi.http://m.diyifanwen.net//liuzhiqianghome2012年3月全国计算机等级考试二级C语言真题(12)【答案】A)【解析】实型数据在内存中存储的二进制位数是有限的,例如float型数据在内存中有24位二进制尾数。而一个十进制实数转化为二进制实数时,其有效数字位数有可能会超过尾数的存储
推荐度:
点击下载文档文档为doc格式
7jtf4486c238ccg96p9w
领取福利

微信扫码领取福利

微信扫码分享