练习18
考试规则:点击你认为正确的选项
1.有以下程序
#include
main()
{
int i,s=0,t0={1 ,2,3,4,5,6,7,8,9};
for(i=0;i<9;i+=2)
s+=*(t+i);
printf(%d\n",s);
}
程序执行后的输出结果是( )。
A.20
回答错误 ✕
B.25
回答正确 √
试题解析
统计1~9九个数中的奇数和,此题考察指向数组的指针。C语言规定数组名代表数组的首地址,也就是第一个元素的地址。因此*(t+i)代表数组的第i+1个元素。程序运行的结果是1+3+5+7+9=25。答案选B
C.45
回答错误 ✕
D.36
回答错误 ✕
点击答题丨点击选项查看对错丨展开动画
2.设有定义
char strD = "Hello";
则语句
printf("%d %d", sizeof(str), strlen(str));
的输出结果是()。
A.6 5
回答正确 √
试题解析
字符数组存放字符串时C语言编译系统会自动在其后面添加上结束标识符^\0',数组str的维数没有指定,所以str含有的元素个数(占用字节数)要比字符串长度大1,所以用sizeof(str)求得的字符串占用字节数为6,用strlen(str)计算出的字符串长度为5,答案选A。
B.6 6
回答错误 ✕
C.5 5
回答错误 ✕
D.5 6
回答错误 ✕
点击答题丨点击选项查看对错丨展开动画
3.有以下程序:
#include
main()
{
int ijx=0;
for(i=0;i<2;i++)
{
x++;
for(=:j<=3j++)
{
if(%2)
continue;
x++;
}
x++;
}
printf("x=%d\n",x);
}
程序执行后的输出结果是( )。
A.x=4
回答错误 ✕
B.x=8
回答正确 √
试题解析
coutinue的作用是跳出循环体中剩余的语句而进行下一次循环。第- -次执行外循环i的值为0,执行x++,x的值变为1,第一次执行内 层循环j的值为0,不满足if条件,执行x++x的值变为2,第二次内循环j的值为1,if条件成立,跳出本次循环第三次执行内循环的值为2,不满足if条件,x的值变为3,第四次执行内循环j的值为3满足条件跳出本次内循环,x的值加1,即为4,第一-次外循环结束。第二次执行外循环时,同理j的值被加了,4次变为8,所以选择B选项。
C.x=6 .
回答错误 ✕
D.x=12
回答错误 ✕
点击答题丨点击选项查看对错丨展开动画