2017年计算机二级C语言试题
(27)请选出可用作C语言用户标识符的一组标识符_______。
A)Void B)a3_b3 C)For D)2a
define _123 _abc DO
WORD IF case sizeof
(27)B
知识点:C语言的标识符
评析:c语言规定标识符只能由字母、数字和下划线三种符号组成,而且第一个字符必须是字母或下划线。
选项A中的void和define都和c语言的关键字重名,不合法;
选项C中的case和c语言的关键字重名,不合法;
选项D中的2a是数字打头而且sizeof和c语言的关键字重名,不合法。
(28)请选出以下程序的输出结果_______。
#include
sub(int*s,int y)
{ static int t=3;
y=s[t];t--;
}
main()
{ int a[]={1,2,3,4},i,x=0;
for(i=0;i<4;i++){
sub(a,x);printf("%d",x);}
printf(" ");
}
A)1234 B)432l C)0000 D)4444
(28)C
知识点:函数的形参和实参的关系
评析:x作为函数sub()的实参时,函数对x值的改变没有返回主函数,并不能使得x的值变化,所以在打印时,x的值是始终不变的,即为O。
(29)若有以下说明和语句,请选出哪个是对c数组元素的正确引用_______。
int c[4][5],(*cp)[5];
cp=c;
A)cp+l B)*(cp+3) C)*(cp+1)+3 D)*(*cp+2)
(29)D
知识点:数组元素的引用
评析:cp=c这个语句是将数组第0行的地址赋给了cp。cp+l使指针指向二维数组c的第一行;*(cp+3)是数组c的第三行的第0列的地址值;+(cp+1)+3是数组c的第一行第三列的地址值。
(30)设有以下语句
char a=3,b=6,c;
c=a^b<<2:
则c的二进制值是_______。
A)00011011 B)00010100 C)000ll 100 D)00011000
(30)A
知识点:位运算
评析:“<
(31)设有
static char str[]="Beijing";
则执行
printf("%d ",strlen(strcpy(str, "China")));
后的输出结果为_______。
A)5 B)7 C)12 D)14
(31)A
知识点:字符串的长度
评析:在执行printf()函数前,数组str的长度是7,但是当使用strcpy()函数将新的值赋给str后,strlen()函数返回的应当是现在的str字符串的字符个数,即是5。
(32)以下程序的输出结果是_______。
#include
main()
{ int i;
for(i=1;i<5;i++){
if(i%2)printf("*");
else continue;
printf("#");
}
print"$ ");
}
A)*#*#*#$ B)#*#*#*$ C)*#*#$ D)#*#*$
(32)C
知识点:if语句的判断
评析:当i不可以整除2时打印”*”,然后打印“#”,不能整除2则执行continue,跳过printf(“#”);语句,结束本次循环,返回到循环的起始点。当循环结束后,打印“$”。
(33)有以下程序
#include
main()
{ int c;
while((c=get))!=‘ ’){
switch(C-‘2’){
case O:case 1:putc+4);
case 2:putc+4);break;
case 3:putc+3);
default:putc十2);break;}
}
}
从第一列开始输入以下数据,↙代表一个回车符。
2473↙
程序的输出结果是_______。
A)668977 B)668966 C)66778777 D)6688766
(33)A
知识点:switch()语句
评析:get)函数是从键盘接受一个字符输入;当用户键入的字符不是回车符时,会进入一个多分支选择语句,根据表达式c-‘2’的值进行分支选择:put)是在屏幕上打印一个字符,最后的结果应当为668977。
(34)以下程序的输出结果是________。
main()
{ int w=5;fun(w);printf(" ");}
fun(int k)
{ if(k>O) fun(k_1);
printf("%d",k);
}
A)5 4 3 2 l B)0 1 2 3 4 5
C)1 2 3 4 5 D)5 4 3 2 1 0
(34)B
知识点:函数的递归调用
评析:函数的递归调用就是在调用一个函数的过程中又出现直接或间接地调用该函数本身。fun函数共被调用6次,即fun(5)、fun(4)、fun(3)、fun(2)、fun(1)、fun(O)。其中fun(5)是main函数调用的,其余是在fun函数中调用的。
(35)若fp是指向某文件的指针,且已读到此文件的末尾,则函数feof(f1))的返回值是_________ 。
A)EOF B)0 C)非零值 D)NULL
(35)C
知识点:文件结束符的返回值
评析:函数feof是用来判断文件是否已读到末尾,如果己读到末尾则返回非零值,否则返回O。
(36)算法的时间复杂度是指_______。
A)执行算法程序所需要的时间