第 1 页:选择题 |
第 5 页:程序填空题 |
第 6 页:程序改错题 |
第 7 页:程序设计题 |
11设a、b、e、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值是( )。
A.0B.1C.2D.3
参考答案:C
参考解析:因为a>b不成立,故表达武a>b的值为0,即把0赋给rn,因此&&左边表达式的值为0,0与任何值&&运算都为0,于是不再计算&&.右边表达式的值,所以此时的l3.仍然为2。
12以下选项中不合法的用户标识符是( )。
A.abC.CB.fileC.MainD.PRINTF
参考答案:A
参考解析:C语言规定标识符只能由字母、数字、下划线组成,并且只能由字母或下划线开头。A中包含点符号,因此A选项不合法。
13为了提高软件的独立性,模块之间最好是( )。
A.控制耦合B.公共耦合C.内容耦合D.数据耦合
参考答案:D
参考解析:在程序设计中,各模块间的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚、低耦合,以有利于提高模块的独立性。耦合性与内聚性是模块独立的两个定性标准,是互相关联的。
14以下程序的输出结果是( )。
main()
{ char*s=”l2134211”;
int v[4]={0,0,0,0),k,i;
for(k=0;s[k];k++)
{ switch(s[k])
{case…1:i=0;
case'2':i=1:
ease'3':i=2;
case'4':i=3;}
)
vEij++;
)
for(k=0;k<4;k++)printf(”%d¨,v[k]);
A.4 2 1 1B.0 0 0 8C.4 6 7 8D.8 8 8 8
参考答案:B
参考解析:本题考查switch,case语句,当k=0时,循环体成立,执行switch后表达式的值为’l’,执行case'1’,i的值为0,因为没有break语句,继续执行其后的语句,到最后一个语句时i的值为3,此时v[i]++,v[3]=1,接着执行k++后,k的值为1,当k=1时,循环成立。执行switch后的表达式的值为…2,执行case'2',i的值为1,因为没有break语句,继续执行其后的语句,到最后一个语句时,i的值为3,此时viii++,v[3]=2,接着执行k++后,k的值为2,依次下去,case'4'也会执行,最后i的值一定为3,到v[3]=8时循环结束,而vE03-vEz]的值一直没有变化,故选择8选项。
15若有定义“int a=5,b=7;”,则表达式a%=(b%2)运算后,a的值为( )。
A.0B.1C.11D.3
参考答案:A
参考解析:本题考查“%”运算符的使用。运算符“%”是整数除法的余数。本题中表达式a%=(b%2)等价于a=a%(b%2)=5%(7%2)=5%1=0。
16下列合法的声明语句是( )。
A.int _abc=50;B.double int=3+5c2.5:C.long do=11;D.float 3_asd=3e-3;
参考答案:A
参考解析:标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或者下划线。B选项int不是表达变量类型的标识符,它不能再用做变量名和函数名。c选项d0是c语言的一个关键字。D选项标识符不符合只能以字母或下划线开始的要求。
17有以下程序:
#include
main()
{ int a[]={2,4.6.8},*p=a,i;
for(i=0;i<4;i+.+)a[i]=*p++;
printf(”%d\n”,a[2]);
程序的输出结果是( )。
A.6B.8C.4D.2
参考答案:A
参考解析:p=a,相当于重新把a中的内容赋给a本身,所以a[2]=6。
18设a=1,b=2,c=3,d=4,则表达式:“a
A.4B.3C.2D.1
参考答案:D
参考解析:在三目运算符中,优先级相同,按从右到左的结合性计算,a
19下列程序的输出结果是( )。
main()
(int i=1,j=2,k=3;
if(i++==1&&(++j==3==||k++==
3))
printf(”%d%d%d\n”,i,j,k);
)
A.1 2 3B.2 3 4C.2 2 3D.2 3 3
参考答案:D
参考解析:本题考查自增运算符“++”、逻辑与运算符“&&”和逻辑或运算符“||”。自增运算符“十十”出现在变量之前,表示先使变量的值加1,再使用变量的值进行运算;出现在变量之后,表示先使用变量的值进行运算,再使用变量的值加1。当逻辑与运算符“&&”两边的运算对象都为真时,逻辑表达的值才为真;当逻辑或运算符“||”只要一个值为l,值就为l。根据运算符的优先级,题中应先计算内层括号中的值。++j是先自加后运算,因此运算时J的值等于3,所以表达式++j一3成立,即表达式的值为l;1与任何数都为进行或(||)运算,结果都为1,因此k一3的表达式i++是先运算后自加,因此运算时i为l,所以i十+一1成立,自加1后i一2。if语句的条件为真即“1”,所以输出i、j、k的值分别是2,3,3。
20以下程序的输出结果是( )。
main()
{char str[][10]={¨china”,”beijing”),*p=str;
printf(”%s\n”,p十10):
A.ChinaB.BeijingC.ngD.ing
参考答案:B
参考解析:本题考查指针,由*P—str可知,指针P指向字符串数组的首地址。二维数组str为每个字符串分配的存储空间是10个字节,因此p+10指向str[1][o],输出的字符串就是数组中的第2个字符串。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |