【C语言】if语句选择题

前言

题目一:

题目二:

题目三:

题目四:

题目五:

题目六:

题目七:

题目八:


前言

关于if语句相关的选择题


题目一:

关于if语句说法正确是:( )

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

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

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

D .else语句总是和它的对齐的if语句匹配

选择C。

讲解:选项A是错误的,if语句后面不是只能跟一条语句,可以跟多条语句,跟多条语句时,需要用大括号{}进行包裹,跟一条语句时可以省略{}; 选项B的错误的在于后半句,if语句应该为0表示假,非0表示真; 选项D的错误在于else语句是跟离它最近的if进行匹配,不是跟它对齐的if语句进行匹配。


题目二:

下面代码执行的结果是:( )

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

#include <stdio.h>
int main()
{
	int i = 0;
	for (i = 0; i<10; i++)
	{
		if (i = 5)
			printf("%d ", i);
	}
	return 0;
}

选择C。

讲解:for循环里的if语句中,条件判断语句为i = 5,= 为赋值操作符,因此i的值总是为5,陷入死循环打印5; 这里需要注意赋值 = 与等于 == 之间的区别,对于这种情况,也是往往会出错,我们可以这样写:如想让i等于5打印,可以将变量和常量换个位置,如:5 == i,当写错了,编译器就会进行报错,防止影响后续的逻辑。


题目三:

下面代码的执行结果是什么( )

A .secondthird

B .hello

C .firstsecond

D .hellothird

#include <stdio.h>
int main() {
	int x = 3;
	int y = 3;
	switch (x % 2) {
	case 1:
		switch (y)
		{
		case 0:
			printf("first");
		case 1:
			printf("second");
			break;
		default: printf("hello");
		}
	case 2:
		printf("third");
	}
	return 0;
}

选择D。

讲解:Switch选择语句有一个易错点,就是case或default后有没有跟break,当没有break时,不会跳出switc语句,会顺延执行下去,直到switch语句结束,因此这道题最外层的switch中的case1后没有break,程序打印完"hello"后又进入case 2中执行。


题目四:

switch(c)语句中,c不可以是什么类型( )

A .int

B .long

C .char

D .float

选择D。

讲解:switch选择语句中,switch(整型表达式/枚举类型),枚举类型中的成员可以用整形进行表示,case 整型常量表达式/枚举常量;我们需要注意:字符类型char本质上也属于整型家族,因为char类型在内存中以ASCll码进行存储,ASCII码本质上是一组整数。枚举类型(enum)在C语言中实际上是一组命名的整数常量。


题目五:

则func(1) = (      )

A .30

B .20

C .16

D .0

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

选择D。

讲解:case或default后有没有跟break,当没有break时,不会跳出switc语句,会顺延执行下去,直到switch语句结束。


题目六:

关于switch说法不正确的是:( )

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

B .switch语句中case后的表达式只能是整形常量表达式

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

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

选择C。

讲解:switch语句中对于case子句与default子句摆放位置是不要求的,因为switch语句是根据switch()中()里的为准,进行选择,并不是顺序执行。


题目七:

程序的输出结果是?( )

A .10

B .9

C .8

D .7

#include <stdio.h>
int main()
{
	int a = 0, b = 0;
	for (a = 1, b = 1; a <= 100; a++)
	{
		if (b >= 20) break;
		if (b % 3 == 1)
		{
			b = b + 3;
			continue;
		}
		b = b-5;
	}
	printf("%d\n", a);
	return 0;
}

选择C。

图解如下:


题目八:

关于while(条件表达式) 循环体,以下叙述正确的是( )? (假设循环体里面没有break,continue,return,goto等等语句)  

A .循环体的执行次数总是比条件表达式的执行次数多一次

B .条件表达式的执行次数总是比循环体的执行次数多一次

C .条件表达式的执行次数与循环体的执行次数一样

D .条件表达式的执行次数与循环体的执行次数无关

选择B。

讲解:

  • 在第一次循环之前,条件表达式 会被执行一次。
  • 对于每一次循环体的执行,之前都会先执行一次 条件表达式
  • 当 条件表达式 的值为假时,循环体不再执行,但 条件表达式 已经被执行了最后一次。

因此,条件表达式 的执行次数总是比循环体的执行次数多一次。这是因为即使循环体一次都不执行(例如,如果初始的 条件表达式 的值就是假),条件表达式 仍然会被执行一次。

注意:其它的循环也是如此,for循环、do...while循环

  • 22
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
常见的C语言选择题知识点汇总包括: 1. 数据类型:了解C语言的基本数据类型(如int、float、char等),以及它们的取值范围和存储空间大小。 2. 运算符和表达式:理解C语言中的各种运算符(如算术运算符、关系运算符、逻辑运算符等)以及它们的优先级和结合性。 3. 控制语句:掌握C语言中的条件语句(如if-else语句、switch语句)、循环语句(如for循环、while循环)以及跳转语句(如break语句、continue语句)的使用。 4. 数组:了解C语言中数组的定义和使用,包括数组的初始化、访问数组元素、多维数组等。 5. 函数:掌握C语言中函数的定义和调用,了解函数参数传递的方式(如值传递和引用传递)以及函数返回值的使用。 6. 指针:了解指针的概念和使用,包括指针变量的定义、指针运算、指针与数组的关系等。 7. 结构体和联合体:了解结构体和联合体的定义和使用,包括结构体成员的访问、结构体数组等。 8. 文件操作:了解C语言中文件的打开、读写和关闭操作,包括使用标准库函数进行文件操作。 9. 内存管理:了解动态内存分配和释放的概念和方法,包括使用malloc()、calloc()、realloc()和free()等函数。 10. 预处理指令:了解C语言中的预处理指令,如宏定义、条件编译等。 以上是常见的C语言选择题知识点汇总,希望对你有帮助!如果还有其他问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值