2015年计算机二级 《C语言》考前押题密卷 (2)
一、选择题
1没有定义:char p[]= ('1','2','3'),*q=p;,以下不能计算出一个char 型数据所占
字节数的表达式是 ( )。
A.sizeof (p)B.sizeof (char)C.sizeof (*q)D.sizeof (p[o])
参考答案:A
参考解析:选项 A 计算的是 p 口字符数组首地址所占的内存字节数。选项 B、C 和 D
都能计算出一个字符型数据所占的字节数。
2 结构化程序没计主要强调的是 ( )。
A.程序的规模
B.程序的效率
C.程序设计语言的先进性
D.程序的易读性
参考答案:D
参考解析:程序不光是编写完就结束了,为了测试和维护程序,往往还需其他人阅读和跟
踪程序,因此程序设计的风格应该强调简单和清晰,即程序的易读性,“清晰第一、效率第
二”。
3 标准库函数fgets (S,n,file)的功能是 ( )。
A. 从文件 file 中读取长度为 n 的字符串存入字符数组 s 中
B. 从文件 file 中读取长度不超过 n-1个字符的字符串放到字符数组 S 中
C. 从文件 file 中读到n 个字符串存入字符数组 s 中
D. 从文件 file 中读取长度为 n-1个字符的字符串存人字符数组 s 中
参考答案:B
参考解析:本题考查 fgets ()函数的使用调用形式:fgets (S,n,fp)。fgets 函数参数
说明:“s”可以是一个字符数组名,也可以是指向字符串的指针;“n”为要读取的最多的字
符个数;“fp”是指向该文件型指针。fgets 函数的功能是:从 fp 所指向的文件中读取长度不
超过n-1个字符的字符串,并将该字符串放到字符数组 S 中,读入字符串后会自动在字符
串末尾加入”\0”结束符,表示字符串结束。
4 有以下程序
#includemain
()
{inty=9;
0;y 一)
if (y%3==0)printf (”%d”,——y);
)
程序的运行结果是 ( )。
A.741B.963C.852D.87542l
参考答案:C
参考解析:在 for 循环中,当Y 的值为 9、6 或3 时,执行输出语句,输出表达式 “一
一Y”的值。y 先自减 1,然后再输出Y 的值。
5有以下程序:
main ()
{int a[]={2,4,6,8,10},y=0,x,*p;
p=&a[1]; for (x-=1;x<3;x++)y+
=p[x]; printf (“%d\n,y”);
}
程序运行后的输出结果是 ( )。
A.10B.1.1C.14D.15
参考答案:C
参考解析:由题目的语句 P=&a[1]可知,P 指向a 数组中下标为 l 的元素 “4”,又因为
P 为指针变量,所以PIx]与* (p+x)等价,因而在 for 循环语句中,第一次循环 P[1]指向a
数组中下标为 2 的元素 “6”,第二次循环p[2]指向a 数组中下标为 3 的元素 “8”,所以y=
6+8=14,因而选项 c 为正确答案。
6 下列程序的运行结果是 ( )。
main ()
(intx=1,y=3,a=0;
while (x++!= (y-=1))
{a+=1;
if (y
}
printf (”%d,%d,%d\n”,x,y,a);
}
A.2,3,2B.2,3,1C.1,3,3D.3,1,2
参考答案:D
参考解析:本题考查 while 循环。第一次循环,Y=y-1,y=2,循环条件成立,x=l,
X++后值为 1,x 自加变成 2,进入循环,a=a+1=1,判断 if语句条件是否成立,y
7 若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后
序遍历的结点访问顺序是 ( )。
A.bdgcefhaB.gdbeefhaC.bdgaechfD.gdbehfca
参考答案:D
参考解析:后序遍历是指首先遍历左子树或左子结点,然后遍历右子树或右子结点,最后