C语言分支与循环(10)--- 课程总结
  uUWKQE7Avyk4 2023年11月02日 38 0

一.练习试题

1.请问以下代码执行的结果是多少()

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<windows.h>
int main(void){
	for (int i = 0; i < 10; i++){
		if (i = 5){
			printf("%d\n",i);
		}
	}
	system("pause");
	return 0;
}

A. 1 2 3 4 5 6 7 8 9 10

B. 5 5 5 5 5 5 5 5 5 5

C. 死循环输出5

D. 0 1 2 3 4 5 6 7 8 9


答案:C,这里需要注意for循环声明并变量i并给其赋值(i=0)当i<10的时候进入循环,执行完循环内语句后对变量i进行自增,直到变量i的值不再满足入口条件,不再进入循环,分析完for语句的表达式部分我们再来看一下for语句中的语句部分,这里我们看到了if语句里面的表达式为 i=5 但注意i=5为赋值语句而不是判断语句,如果要对变量i的值进行判断则应该使用 i==5 所以这就导致了变量i无论为何值,每次都会被重新初始化,导致程序进入死循环,如图所示:

C语言分支与循环(10)--- 课程总结_C语言


2.关于if语句说法正确的是()

A.if语句后面只能跟一个语句

B.if语句中0表示假1表示真

C.if语句是一种分支语句,既可实现单分支也可实现多分支

D.else语句总是与最近的if语句像匹配


答案:C,A选项中if语句后面既可以跟随一个语句也可以跟随多个语句,但是跟随多个语句的时候需要用大括号括起来,B选项中0表示假没有问题但是1表示真就太过于绝对,C语言中非零值才表示真,不仅仅是1,D选项则是错误最明显的,else语句遵循就近原则,会就近与if语句进行匹配


3.关于switch语句说法错误的一项是

A.switch语句中default语句可以放在任意位置

B.switch语句中case子句只能是整型常量表达式

C.switch语句中case语句必须在default语句之前

D.switch语句中case语句不要求顺序


答案:C,switch语句中case语句与default语句都没有顺序要求但是我们一般将case语句写在default语句之前


4.观察以下代码计算出func(1)的值()

int func(int a)
{
int b;
switch(a){
case 1: b = 30;
case 2: b = 20;
case 3: b = 10;
default b = 0;
}
return b;
}

A. 30

B. 20

C. 10

D. 0


答案:D,原因是当a=1的时候进入switch执行case 1: b= 30;的后面未添加break语句这就导致程序会一直执行下去直到执行完成default语句,这时候b的值为0,所以最终的结果为0


5.在switch(var)中var的数据类型不能是以下哪一种()

A.int

B.short int

C.long

D.double


答案:D,switch语句中表达式部分只能是整型变量或者常量,而double(与float)为浮点型,所以不满足条件,故选择D

                                                                                                                            2023/7/27

                                                                                                                              王起舟

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
uUWKQE7Avyk4