出国留学网为考生们整理了2018年计算机二级C语言考前冲刺题(2),希望能帮到大家,想了解更多资讯,请关注我们,我们会及时更新。
2018年计算机二级C语言考前冲刺题(2)
选择题
1[单选题] 有以下程序:
程序运行后的输出结果是( )。
A.12 7
B.12 12
C.11 11
D.11 7
参考答案:D
参考解析:本题考查宏定义的用法,宏定义只是做个简单的替换,所以本题中执行f(2)=(2*N+1)=11,执行f(1+1)=(1+1*N+1)=7。选项D正确。
2[单选题] 有以下程序:
执行后的输出结果是( )。
A.28,0
B.28,1
C.16,0
D.16,-1
参考答案:D
参考解析:分析程序可知,d0语句1…whi1e(语句2),每次循环在语句1中a的值减1,在语句2中判断a的值后,a的值又减1,所以在每次循环体执行完后,b累加的a的值分别为7,5,3,1,a的值分别为6,4,2,0,最后当a为O时,whi1e判断条件为fa1se,此时a的值再减1,为-1,到此循环结束,所以b的值为16,a的值为-1,故答案选D。
3[单选题] 设栈的存储空间为S(1:50),初始状态为top=51。现经过一系列正常的人栈与退栈操作后,top=50,则栈中的元素个数为( )。
A.1
B.0
C.50
D.49
参考答案:A
参考解析:栈是一种特殊的线性表,它所有的插入与删除都限定在表的同一端进行。入栈运算即在栈顶位置插人一个新元素,退栈运算即取出栈顶元素赋予指定变量。栈为空时,栈顶指针top=0,经过入栈和退栈运算,指针始终指向栈顶元素。初始状态为top=51,当top=50时,则栈中S(50:51)存储着元素,51-50=1.元素个数为l。故本题答案为A选项。
4[单选题] 程序执行后的输出结果是( )。
A.1
B.2
C.3
D.4
参考答案:C
参考解析:该程序中int * p1=&a,*p2=&b,*P=&c;指定义三个指针变量,并赋值,即使p1指向a;p2指向 b;p指向c。*P=*p1*(*p2);该条语句是给P所指的存1储单元c赋值,就是p1所指的存储单元的值,即a的值,与p2所指的存储单元b的值相乘,也就是c=a×b,等价于c=1×3=3;因此C选项正确。
5[单选题] 以下不能使指针s所指存储单元的值增1的选项是( )。
A.(*s)++;
B.*s=*s+1;
C.*s++;
D.++*s;
参考答案:C
参考解析:选项A首先获取s指向的存储单元的值,使用完该值后,将该值自增1,正确;选项B首先获取s指向的存储单元的值,并将该值加1后重新赋给该存储单元,正确;选项D首先获取s指向的存储单元的值,然后将该值自增1,再使用加1后的新值,正确;选项C中,*s++的含义是首先获取s指向的存储单元的值,然后再将指针s向后移动一位,所以答案为C。
6[单选题] 以下选项中关于程序模块化的叙述错误的是( )。
A.可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序
B.把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块
C.把程序分成若干相对独立的模块,可便于编码和调试
D.可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序
参考答案:A
参考解析:程序模块化思想中,可以采用自顶向下、逐步细化的方法。所以选项A中“自底向上”的说法是错误的。
7[单选题] 以下选项中,当X为大于1的奇数时,值为0的表达式是( ):
A.x%2==0
B.x/2
C.x%2!=0
D.x%2==1
参考答案:A
参考解析:算术运算符的优先级高于关系运算符的优先级,所以当X为大于1的奇数时,A选项的值为假,即0。B选项的值为不定值,但绝对不是0。C选项的值为真,即1。D选项的值为真,即1。
8[单选题] 若有定义语句:
int a[2][3],*p[3];
则以下语句中正确的是( )。
A.p=a;
B.p[0]=8;
C.p[0]=&a[1][2];
D.p[1]=&a;
参考答案:C
参考解析:A选项错误,因为p是指向一个指针数组,作为数组名,不能指向别的地方。B选项错误,因为p[0]是一个int指针,也就是int*;而a是一个指向指针的指针int**。C选项正确,因为p[0]是一个int*a[1][2]是int,&a[1][2]是int*,类型吻合。D选项错误,因为a作为数组名,不能取地址。即使能取,P[1]是int*,&a是int***,类型不对。因此C选项正确。
9[单选题] 以下不合法的字符常量是( )。
A.'\\'
B.'\"'
C.'\018'
D.'\xcc'
参考答案:C
参考解析:转义字符中,八进制的表示形式为\ddd,但是八进制中不能包含数字8,所以C选项不合法。
10[单选题] 设有以下语句:
则下面叙述中正确的是( )。
A.CIN是struct TT类型的变量
B.TT是struct类型的变量
C.可以用TT定义结构体变量
D.可以用CIN定义结构体变量
参考答案:D
参考解析:本题考查typedef重新声明一种结构体类型,其中CIN为结构体类型名,而不是结构体变量,所以D选项正确。