11有以下程序
程序的输出结果是
A.10B.9C.8D.7
参考答案:B
参考解析:首先注意for循环的控制条件,当b>=20或者a>100则跳出for循环,也即b<20且a<=100时执行for循环;第一次进入循环a=1,b=1均满足循环条件,但b%3==1条件满足,故执行b=b+3,得到b=4,注意有continue,所以后面语句不执行,直接跳转到a++这个语句,所以第一次循环完之后a=2,b=4;进入第二轮循环,b%3==1也是满足的,故再次b=b+3,此轮循环执行之后a=3,b=7,进入下一轮。此后和前面循环同理,都是b%3==1满足,因为每次都是加3,而之后又去模3,且都跳过for后面语句直接执行a++,所以,一直循环到b=22跳出for循环。此时a为8。综合起来就是,每次循环b增加3,a增加1,且当b>22时跳出循环。结束程序。所以b从1增加到22,有(22-1)/3=7,所以a=1+7=8.因此B选项。
12下列关系表达式中,结果为。假”的是
A.3<=4B.(3<4)==1C.(3+4)>6D.(3 !=4)>2
参考答案:D
参考解析:B选项中。关系表达式(3<4)==1即1==1,结果为真;C选项中,(3+4)>6即7>6,结果为真;A选项中,3<=4结果为真。D选项中,(3 !=4)>2即1>2,结果为假。因此D选项正确。
13有以下程序
程序运行后的输出结果是
A.5 6 1 2B.3 4 5 6C.1 2 5 6D.5 6 3 4
参考答案:D
参考解析:funl函数中的a、b为局部变量,fun2函数中的a.b为全局变量。执行funl函数后输出5,6;执行完fun2后a变为3,b变为4,所以结果为3,4。D选项正确。
14若有以下程序
执行时若输入:
Fig flower is red.<回车>
则输出结果是
A.Fig flower is red.is blue.
B.Fig flower is red.
C.Fig floweris red.
D.Fig floweris
参考答案:B
参考解析:本题考查字符数组的赋值以及字符串的处理函数,本题中输入字符串Fig flower is red时,首先是将前10个字符赋值给字符数组a,然后执行gets(B.后,将后续字符存放到b中,当输出时,首先输出字符数组a,然后输出字符串b,所以结果为B选项。
15有以下程序
程序运行后的输出结果是
A.wowB.fwoC.twoD.fix
参考答案:B
参考解析:考查二维数组元素的引用。当i为0时,代码处理结果为第一个字符串的第一个字符与第四个字符串的第一个字符调换,当i为1时,代码处理结果为第而个字符串的第一个字符与第五个字符串的第一个字符调换,所以a[1]为fwo。
16关于“whlile(条件表达式)循环体”,以下叙述正确的是
A.循环体的执行次数总是比条件表达式的执行次数多一次
B.条件表达式的执行次数总是比循环体的执行次数多一次
C.条件表达式的执行次数与循环体的执行次数一样
D.条件表达式的执行次数与循环体的执行次数无关
参考答案:B
参考解析:while循环是先判断条件,满足条件后执行循环体,执行完后接着判断条件,执行,直到最后一次判断条件后不成立,跳出循环,所以最后一次执行了条件表达式,但是没有执行循环体,所以选择B选项。
17以下叙述中错误的是
A.只要类型相同,结构体变量之间可以整体赋值
B.函数的返回值类型不能是结构体类型,只能是简单类型
C.可以通过指针变量来访问结构体变量的任何成员
D.函数可以返回指向结构体变量的指针
参考答案:B
18以下叙述中正确的是
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选项正确。
19有以下程序
程序的运行结果是
A.14B.20C.10D.16
参考答案:A
参考解析:*(*(P+m)+k)系统默认为指针指向数组中第[m][k]个元素,因此,在for循环中,n+=*(*(P+m)+k);执行的是将数组x[0][1]和x[1][1]累加后赋值给n,最后进行输出,答案为A选项。
20若有定义语句:int m[][3]={1,2,3,4,5,6,7};,则与该语句等价的是
A.int m[][3j={{1,2,3},{4,5,6},{i 7}};
B.int m[][3]={{1,2},{3,4},{5,6,7}};
C.int m[][3]={{1,2,3},{4,5},{6,7}};
D.int nl[][3]={{1},{2,3,4},{5,6,7}};
参考答案:A
参考解析:
二维数组的初始化有两种方式,一种是分行初始化,方式为:数据类型数组名[行下标表达式][列下标表达式]={{第0行初值},{第1行初值表},…{最后l行初值表}};,如果初值表只对部分元素赋初值,没有被赋初值的元素将被自动赋值为0。另一种是按二维数组在内存中的排列顺序给各元素赋初值,这种方式就是不分行将所有数据依次列在一个花括号里,方式为:数据类型数组名[行下标表达式][列下标表达式]={初值表};,这种方式的赋值就是将初值表的数据依次赋予数组的每个元素,其中赋值是按照数组元素在内存中的位置进行的。题目中的初始化语句是第二种方法,如果用第一种方法应该是int m[][3]={{1,2,3},{4,5,6{,{7{};,这里应该保证除了最后一行,每一行都满列有3个元素,A选项正确。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |