第一题
1、以下叙述中正确的是( )
A: 只能在循环体内和switch语句体内使用break语句
B: 当break出现在循环体中的switch语句体内时,其作用是跳出该switch语句体,并中止循环体的执行
C: continue语句的作用是:在执行完本次循环体中剩余语句后,中止循环
D: 在while语句和do-while语句中无法使用continue语句
答案及解析 A
break和continue语句,可以出现在循环语句和switch语句中;
break的作用是立刻跳出当前循环;
continue的作用是,不执行后面的语句,直接去下一次循环;
第二题
2、下列 for 循环的次数为( )
for(int i = 0 ; i || i++ < 5;);
A: 0
B: 5
C: 1
D: 无限
答案及解析 D
本题是考察的逻辑或的应用,有1就是1,全0才是0,所以这就注定了逻辑或的结果要么是1,要么是0,恒小于5,所以是死循环;
但是要注意的是,逻辑或,左边成立,不会执行右边;
第三题
3、以下描述中正确的是( )
A: 由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B: do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
C: 在do-while循环体中,不一定要有能使while后面表达式的值变为零("假")的操作
D: do-while循环中,根据情况可以省略while
答案及解析 C
A:错误,do-while循环,循环体内部可以是复合语句,任意嵌套;
B:错误,while(表达式)后面必须有分号
C:正确,while后面的表达式随便定,根据自身需要
D:错误,不可以省略,因为while后面的表达式是代表的循环条件的判断
第四题
4、设函数 fun 和实参数组的说明是如下形式,则对函数的调用语句中,正确的是( )
1. void fun(char ch,float x[]); 2. float a[10];
A: fun("asd" , a[]);
B: fun('x' , A);
C: fun('68' , 2.8);
D: fun(32 , a);
答案及解析 D
对于函数调用来说,实参的类型要和形参的类型保持一致,所以先看形参的类型是char类型和数组类型,但是我们要知道,数组在传参的本质是指针,所以fun函数的形参类型分别是char和float*类型;
A:错误,传的是字符串,不是char类型,字符串默认传的是首元素地址;
B:错误,A啥也不是,程序也没有定义,而且A和a不一样,严格区分大小写
C:错误,2.8是float类型,不是float*类型;
D:正确,32可以当作字符类型的ASCII值,32对应的字符是‘ ’(空格);a是float数组的数组名,数组名是首元素地址,是float类型。
第五题
5、在c语言中,一个函数不写返回值类型,默认的返回类型是( )
A: int
B: char
C: void
D: 都不是
答案及解析 A
这个大家可以测试一下,C语言规定,函数不写返回值类型,默认返回类型是int
但是永远不要这么写!