第 1 页:选择题 |
第 2 页:程序填空题 |
第 3 页:程序修改题 |
第 4 页:程序设计题 |
一、选择题
1[单选题] 设有定义:char*C;以下选项中能够使C正确指向一个字符串的是( )。
A.char str( )=”string”;C=str;
B.scanf(”%s”,
C.;C.c=getchar( );
D.*c=”strin9”;
参考答案:A
参考解析:A选项为正确用法,先将字符串存于字符数组中,然后将数组名赋给字符指针(数组名代表数组首地址,定义数组时为其分配确定地址)。C选项错误,getchar()函数只能输入一个字符给字符型变量,而不是字符指针。B选项和D选项有类似的错误,两个选项并无语法错误,但运行时可能会出现问题。因为在B选项和D选项中,字符指针没有被赋值,是个不确定的值,指向一个不确定的内存区域,这个区域可能存放有用的指令或数据。在这个不确定的区域重新存放字符串,可能会发生无法预知的错误。因此A选项正确。
2[单选题] 若有以下程序
则程序的输出结果是
A.5,6,0B.6,0,0C.6。6,1D.5,6,1
参考答案:C
参考解析:本题重点考查C语言中for语句和逻辑表达式,for语句的一般形式为:
for(表达式1;表达式2;表达式3)语句其循环中的“表达式1(循环变量赋初值)”、“表达式2(循环条件)”和“表达式3(循环变量增量)”都是选择项,即可以缺省,但“;”不能缺省。该题目中省了“表达式1(循环变量赋初值)”和“表达式3(循环变量增量)”。for(;a&&(b==0);){b+=a s a-=e++;}相当于while(a&&(b==0)){b+=a;a-=c++;}。因此c选项正确。
3[单选题] 以下叙述中正确的是
A.对于逻辑表达式:a++|| b++,设a的值为1,则求解表达式的值后,b的值会发生改变
B.对于逻辑表达式:a++&&b++,设a的值为0,则求解表达式的值后。b的值会发生改变
C.else不是一条独立的语句,它只是if语句的一部分
D.关系运算符的结果有三种:0,1,-1
参考答案:C
参考解析:B选项和A选项中,&&、||都是先计算左边表达式的值,当左边表达式的值能确定整个表达式的值。而且&&、||的优先级比++高,所以题中只需判断a的值即可知道符合表达式的真假;D选项中,关系运算符的结果有“真”和“假”两种。因此c选项正确。
4[单选题] 以下选项中合法的c语言常量是( )。
A.,C—STR’B.2014.1C.”\l.0D.2EK
参考答案:B
参考解析:所谓常量是指在程序运行的过程中,其值不能被改变的量。在C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。选项A是字符串,但使用单引号,错误,选项c,D,为实型常量中指数形式,但指数形式e(E)之前必须是数字,之后必须为整数,错误。故答案为B选项。
5[单选题] 有以下程序-
程序运行后的输出结果是( )。
A.4B.2C.8D.1
参考答案:C
参考解析:在c语言中,需要在main函数后面定义函数,需要提前声明,否则调用报错,无法找到该函数。HI=f(f(f(n))),一共调用3次f()函数,f()函数是对n:it2,因此,结果是n}2}2$2,得到结果为8。故答案为c选项。
6[单选题] 若有定义:float x=1.5;int a=1,b=3,c=2;则正确的switch语句是( )。
参考答案:A
参考解析:B选项中switch((int)x);语句中不应该有最后的分号。switch(exprl),中的exprl不能用浮点类型或10n9类型,也不能为一个字符串,所以c错误。ca”后面常量表达式的类型必须与switch后面表达式的类型一致,所以D错误。
7[单选题] 有以下程序
程序运行后的输出结果是
A.41;20;80;B.41;22;64;C.40;21;80;D.43;20;81;
参考答案:A
参考解析:声明结构类型S中有两个整形变量x,y,在main函数中,为s结构类型定义一个数组变量data初始化3个结构体元素,分别两两赋值给结构体中的x,y。在for循环中,对3个结构体元素y值转换成二进制数后向右移一位,再对此时x,y值依次进行输出,答案为A选项。
8[单选题] 设有定义:char*C;以下选项中能够使C正确指向一个字符串的是( )。
A.char str( )=”string”;C=str;
B.scanf(”%s”,
C.;C.c=getchar( );
D.*c=”strin9”;
参考答案:A
参考解析:A选项为正确用法,先将字符串存于字符数组中,然后将数组名赋给字符指针(数组名代表数组首地址,定义数组时为其分配确定地址)。C选项错误,getchar()函数只能输入一个字符给字符型变量,而不是字符指针。B选项和D选项有类似的错误,两个选项并无语法错误,但运行时可能会出现问题。因为在B选项和D选项中,字符指针没有被赋值,是个不确定的值,指向一个不确定的内存区域,这个区域可能存放有用的指令或数据。在这个不确定的区域重新存放字符串,可能会发生无法预知的错误。因此A选项正确。
9[单选题] 若有以下程序
则程序的输出结果是
A.5,6,0B.6,0,0C.6。6,1D.5,6,1
参考答案:C
参考解析:本题重点考查C语言中for语句和逻辑表达式,for语句的一般形式为:
for(表达式1;表达式2;表达式3)语句其循环中的“表达式1(循环变量赋初值)”、“表达式2(循环条件)”和“表达式3(循环变量增量)”都是选择项,即可以缺省,但“;”不能缺省。该题目中省了“表达式1(循环变量赋初值)”和“表达式3(循环变量增量)”。for(;a&&(b==0);){b+=a s a-=e++;}相当于while(a&&(b==0)){b+=a;a-=c++;}。因此c选项正确。
10[单选题] 以下叙述中正确的是
A.对于逻辑表达式:a++|| b++,设a的值为1,则求解表达式的值后,b的值会发生改变
B.对于逻辑表达式:a++&&b++,设a的值为0,则求解表达式的值后。b的值会发生改变
C.else不是一条独立的语句,它只是if语句的一部分
D.关系运算符的结果有三种:0,1,-1
参考答案:C
参考解析:B选项和A选项中,&&、||都是先计算左边表达式的值,当左边表达式的值能确定整个表达式的值。而且&&、||的优先级比++高,所以题中只需判断a的值即可知道符合表达式的真假;D选项中,关系运算符的结果有“真”和“假”两种。因此c选项正确。
11[单选题] 以下选项中合法的c语言常量是( )。
A.,C—STR’B.2014.1C.”\l.0D.2EK
参考答案:B
参考解析:所谓常量是指在程序运行的过程中,其值不能被改变的量。在C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。选项A是字符串,但使用单引号,错误,选项c,D,为实型常量中指数形式,但指数形式e(E)之前必须是数字,之后必须为整数,错误。故答案为B选项。
12[单选题] 有以下程序-
程序运行后的输出结果是( )。
A.4B.2C.8D.1
参考答案:C
参考解析:在c语言中,需要在main函数后面定义函数,需要提前声明,否则调用报错,无法找到该函数。HI=f(f(f(n))),一共调用3次f()函数,f()函数是对n:it2,因此,结果是n}2}2$2,得到结果为8。故答案为c选项。
13[单选题] 若有定义:float x=1.5;int a=1,b=3,c=2;则正确的switch语句是( )。
参考答案:A
参考解析:B选项中switch((int)x);语句中不应该有最后的分号。switch(exprl),中的exprl不能用浮点类型或10n9类型,也不能为一个字符串,所以c错误。ca”后面常量表达式的类型必须与switch后面表达式的类型一致,所以D错误。
14[单选题] 有以下程序
程序运行后的输出结果是
A.41;20;80;B.41;22;64;C.40;21;80;D.43;20;81;
参考答案:A
参考解析:声明结构类型S中有两个整形变量x,y,在main函数中,为s结构类型定义一个数组变量data初始化3个结构体元素,分别两两赋值给结构体中的x,y。在for循环中,对3个结构体元素y值转换成二进制数后向右移一位,再对此时x,y值依次进行输出,答案为A选项。
15[单选题] 有以下程序:
程序执行后的输出结果是( )。
A.x=4B.X=8C.x=6D.x=12
参考答案:B
参考解析:eoulinue的作用是跳出循环体中剩余的1语句而进行下一次循环。第一次执行外循环i的值为0,执行|x++,x的值变为l,第一次执行内层循环j的值为0,不满足if1条件,执行x++,x的值变为2,第二次内循环j的值为1,if条1件成立,跳出本次循环,第三次执行内循环j的值为2,不满足l if条件,x的值变为3,第四次执行内循环j的值为3满足条件1跳出本次内循环,x的值加l,即为4,第一次外循环结束。第1二次执行外循环时,同理,i的值被加了,4次,变为8,所以选择I,B选项。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |