2012年9月计算机二级C语言真题及答案

当k=3时,s[4]=4!= '\\0',k++=4,a=7+(s[4]- '\\0'+1)=7+(4+1)=12;当k=4时,s[5]= '\\0'结束循环,输出变量k和 a值。

(32)A)

【解析】这个程序的执行过程是当i=0时,j=1,a[0][0]=o

j=2,a[1][0]=t =a[2][0]=t;不置换;当i=2时,j=3,a[2][0]=t>a[3][0]=f;置换a[2][0]=f, a[3][0]=t;此时,a[2][0]=f,a[1][0]=t, 再置换a[2][0]=t,a[1][0]=f,;当i=3时,j=4,a[3][0]=f=a43][0]=f;不置换;所以a[1]的结果为fwo。

(33)B) (34)A) 时,输出8。

(35)C)

【解析】执行fun(&a,&b,q);语句时,在内存中开辟了一块内存空间,存放变量a与b的和,

并用指针变量q引用它,但是当这条语句执行结束,这块内存空间又释放了,指针这量q仍然引用的是变量a 的地址,所以输出结果为1。

(36)D) (37)B) (38)A) (39)B) (40)D)

【解析】在主函数中,定义了结构体STU数组c[2],并对其赋初始值。执行f(c)时,在函数

f()中,把结构体变量b的值赋给了c[1]。

数据类型,原来类型名依然有效。为了便于识别,一般习惯将新的类型名用大写字母表示。

【解析】函数的返回值类型可以是结构体类型。

【解析】变量b的值等于2,其向左移动2位,其值等于8,即b<<2的值等于8。而3||b做 【解析】在程序中定义了一个整型数组a[6],并对它赋初值,并以写入的方式打开了文件

【解析】函数fun1()的作用是输出局部变量a和b的值,在主函数中执行fun1(5,6)的结果是 【解析】在函数func(int n)中定义了局部静态变量num,,其初始值等于1,所以在主函数中

输出5,6;函数fun2()的作用是给变量a和b分别赋值3,4;执行fun2()的作用是输出3,4。

执行func(3),输出4,此时静态变量num的值等于4,当退出函数func(3)时,其值不会丢失,所以当在执行func(4)

【解析】typedef语句的作用仅仅是用“标识符”来代表已存在的“类型名”,并未产生新或运算的结果等于1。所以表达式(b<<2)/(3||b)的值等于8。

d2.dat。然后利用一个for循环把数组a中的元素数据写入文件d2.dat中,调用函数rewind把将文件内部的位置 指针重新指向一个文件的开头,再利用for循环语句把文件中的数据依次写入到倒序排列的数组a中,最后输出 数组a中的数组元素。

二、填空题 (1)【1】6

【解析】根据二叉树的性质,度为0的结点个数比度为2的结点多一个。所以本题中度为0的结点的个数 为24。在二叉树的第k层上,最多有2

k-1 (k>=1)个结点。所以第一层上最多1个结点,第二层上最多2个结点,

第三层上最多4个结点,第四层上最多8个结点,第5层上最多16个结点。前5层的总共结点个数等于31,而 本题度为2的结点个数为23,因此第5层上只能有8个度为2的结点,即在第6层上还有16个度为0的结点。

(2)【2】20

【解析】栈是先进后出的数据结构,所以当栈顶指针top等于20时,当前栈中的元素个数等于20。 (3)【3】逻辑独立性

【解析】数据独立性是指当总体逻辑结构改变时,其局部逻辑结构不变,从而根据局部逻辑结构编写的应 用程序不必修改。

(4)【4】选择

【解析】关系数据库中能实现的专门关系运算包括:选择、连接和投影。 (5)【5】系统

【解析】Unix操作系统属于系统软件。 (6)【6】(a<=b)||(a>b)

2012年9月笔试真卷及答案详解 第11页(共12页)

【解析】表达式!(a<=b)含义是对a小于等于b取非,所以与其等价的表达式是(a<=b)||(a>b)。 (7)【7】%lf%f

【解析】对于变量a和b的输入采用实数的形式,所以scanf函数的输入格式符为 %lf%f。 (8)【8】224

【解析】当从键盘上输入01234567!时,根据程序中switch()语句,当输入的字符为'1'、'3'时,变量n1++; 所以n1的值等于2;当输入的字符为'2'、'4'时,变量n2++;所以n2的值等于2;当输入的字符为其他字符时, 变量n3++;所以n3的值等于4。所以答案为224。

(9)【9】16

【解析】程序的功能是求1、3、5、7之和,等于16。 (10)【10】4321

【解析】在程序的while循环中,每次求出n的个位上的数字,然后n的值减小10位,所以输出结果为4321。 (11)【11】7

【解析】函数*st()的作用是返回*a与*c中较大数的指针,所以在主函数中,执行st(p)时,返回变量k的指 针,因而输出结果为7。

(12)【12】22

【解析】根据C语言中对带参数的宏的定义,2*(N+M)2))=2*(3+(3+1)*2)=22。 (13)【13】2

【解析】在C语言中在每个字符串的最后都增加一个字符串结束标识字符'\\0',所以本题中的字符串在内存 中占有2个字节。

(14)【14】6

【解析】根据函数的迭代,f(3)=3*f(2)=3*2*f(1)=3*2*1*f(1)=3*2*1*1=6。 (15)【15】 p->next

【解析】在while循环中输出循环链表的每个结点,p->next指向当前结点的下一个结点。

2012年9月笔试真卷及答案详解 第12页(共12页)

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4