C语言分支语句练习

提示:本文章提供多个例子来帮助小白快速了解C语言分支语句(选择语句)。

前言

C语言是结构化的程序设计语言,其中C语言的分支语句包括if语句和switch语句。


一、if语句

1.if语句的语法形式

.

if(表达式)

   语句

2.案例

例1:输⼊⼀个整数,判断是否为奇数,如果是奇数打印是奇数,否则打印数偶数。

#include<stdio.h>
int main()
{
	int num = 0;
	scanf("%d", &num);
	if (num % 2 == 1)
		printf("%d是奇数", num);
	else
		printf("%d是偶数",num);
	return 0;
}

例2:输⼊⼀个年龄,>=18岁就输出:成年,否则就输出:未成年 

#include<stdio.h>
int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age >= 18)
		printf("成年");
	else
		printf("未成年");

	return 0;
}

 例3.要求输⼊⼀个整数,如果是正数,再判断是奇数还是偶数,并输出;如果不是正数则输出不是整数。

#include<stdio.h>
int main()
{
	int num = 0;
	scanf("%d", &num);
	if (num > 0)
	{
		if (num % 2 == 1)
			printf("奇数");
		else
			printf("偶数");

	}
	else
		printf("不是正数");

	return 0;
}

例4:输⼊⼀个⼈的年龄
         如果年龄<18岁,打印"少年"
         如果年龄在18岁⾄44岁打印"⻘年"
         如果年龄在45岁⾄59岁打印"中⽼年"
         如果年龄在60岁⾄89岁打印"⽼年"
         如果90岁以上打印"⽼寿星"

#include<stdio.h>
int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age < 18)
		printf("少年");
	else
	{
		if (age >= 18 && age < 44)
			printf("寿星");
		else
		{
			if (age >= 44 && age < 59)
				printf("中老年");
			else
			{
				if (age >= 59 && age < 89)
					printf("老年");
				else
				{
					printf("老寿星");
				}
			}
		}
	}

	return 0;
}

 例5:

        输⼊⼀个年份year,判断year是否是闰年?
        闰年判断的规则:
        1. 能被4整除并且不能被100整除是闰年?
        2. 能被400整除是闰年?

#include<stdio.h>
int main()
{
	int year = 0;
	scanf("%d", &year);
	if (year % 4 == 0 && year % 100 != 0)
		printf("是闰年");
	else if(year % 400 == 0)
		printf("是闰年");
		
	return 0;
}

二、switch语句

1.switch语句的语法形式

除了if语句,C语言还提供了switch语句用于分支结构

switch语句是一种特殊形式的if......else结构,用于判断条件有多个结果的情况。他把多重的else if改成更易用、可读性更好的形式。

语法形式如下:

switch(expression)
{case value1:statement;
 case value2:statement;
 default:statement;
}

上⾯代码中,根据表达式 expression 不同的值,执⾏相应的 case 分⽀。如果找不到对应的值,
就执⾏ default 分⽀。

注:
• switch 后的 expression 必须是整型表达式.
• case 后的值,必须是整形常量表达式.

2.if语句和switch语句的对比

例1:输⼊任意⼀个整数值,计算除3之后的余数

if语句形式: 

#include<stdio.h>
int main()
{
	int num = 0;
	scanf("%d", &num);
	if (num % 3 == 0)
		printf("余数为0");
	else if (num % 3 == 1)
		printf("余数为1");
	else if (num % 3 == 2)
		printf("余数为2");

	return 0;
}

 switch语句形式:

#include<stdio.h>
int main()
{
	int num = 0;
	scanf("%d", &num);
	switch (num%3)
	{
	case 0:
		printf("余数为0");
		break;
	case 1:
		printf("余数为1");
		break;
	case 2:
		printf("余数为2");
		break;
	default:
		break;
	}

	return 0;
}

上述的代码中,我们要注意的点有:
1. case 和后边的数字之间必须有空格
2. 每⼀个 case 语句中的代码执⾏完成后,需要加上 break ,才能跳出这个switch语句。 

3.案例 

例1:   输⼊⼀个1~7的数字,打印对应的星期⼏?
        例如:
        输⼊:1输出:星期⼀
        输⼊:2输出:星期⼆
        输⼊:3输出:星期三
        输⼊:4输出:星期四
        输⼊:5输出:星期五
        输⼊:6输出:星期六
        输⼊:7输出:星期天

#include<stdio.h>
int main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day)
	{
	case 1:
		printf("星期一");
		break;
	case 2:
		printf("星期二");
		break;
	case 3:
		printf("星期三");
		break;
	case 4:
		printf("星期四");
		break;
	case 5:
		printf("星期五");
		break;
	case 6:
		printf("星期六");
		break;
	case 7:
		printf("星期日");

	default:
		break;
	}


总结

这里出了几道简单的例题供大家参考以及练习

<think>好的,我现在需要处理用户关于C语言if语句练习题的需求。首先,用户之前提到过寻找if语句相关的练习题,并且引用了几个示例代码。我得确保提供的练习题符合用户的需求,同时参考他们提供的引用内容。 首先,我需要回顾用户提供的引用内容。引用[1]中有关于三角形判断和四个变量排序的代码,这涉及到多个if语句和条件判断。引用[2]和[5]中的例子是关于使用if语句进行变量排序和条件处理的,比如三个变量的排序和二分查找。引用[4]提到了switch语句,但用户现在需要if语句,所以可能需要忽略这部分。引用[3]提到递归和控制语句练习,但用户明确需要if语句,所以重点还是在条件判断上。 用户的需求是寻找if语句练习题,示例可能包括条件判断、多个变量的比较、不同类型的分支处理等。根据提供的引用,已有的例子包括三角形类型判断、四个数排序、三个数排序等。我需要设计几个不同的练习题,涵盖基本到稍微复杂的条件判断,同时确保问题之间有递进性。 接下来,我需要确保练习题覆盖不同的应用场景,比如数值比较、类型判断、逻辑运算等。例如,判断闰年涉及到多个条件的组合;成绩转换使用多分支if-else结构;计算运费可能涉及嵌套的if语句;判断字符类型则需要处理不同的字符范围;而三个数排序则练习多个条件的排列组合。 同时,练习题需要符合初学者的水平,从简单到复杂。例如,前两题可以是单一条件的判断和转换,后面逐渐增加条件复杂度,如多个变量的比较和嵌套条件。每个练习题都应该有明确的输入输出要求,方便用户测试代码是否正确。 还要注意题目的描述清晰,要求明确,避免歧义。例如,判断闰年的条件需要准确,包括能被4整除但不能被100整除,或者能被400整除。成绩转换要明确不同分数区间的对应等级。运费问题可能需要根据距离和重量分段计算,这里可以设计不同的费率。 此外,参考用户提供的代码示例,比如引用[1]中的三角形判断使用了嵌套的if-else结构,这可以作为类似题目的模板。四个变量排序的代码虽然用的是交换方法,但也可以改编成需要多个条件判断的题目,比如三个数排序的练习题。 最后,确保每个练习题都涉及到if语句的不同方面,如逻辑运算符(&&、||)、嵌套if、多分支else if等。这样用户可以通过练习全面掌握if语句的使用。同时,提供参考答案或思路,帮助用户验证自己的解决方案是否正确。</think>### C语言if语句练习题(含示例代码) 以下是5个由浅入深的if语句练习题,涵盖条件判断、多分支结构、逻辑运算等核心知识点: --- #### **1. 闰年判断** 输入年份,输出是否为闰年 条件:能被4整除但不能被100整除,或能被400整除 示例代码: ```c int year; scanf("%d", &year); if((year%4 == 0 && year%100 != 0) || year%400 == 0) { printf("闰年"); } else { printf("非闰年"); } ``` --- #### **2. 成绩等级转换** 输入0-100的分数,输出等级: - 90-100: A - 80-89: B - 70-79: C - 60-69: D - <60: E 要求使用if-else if-else结构实现[^2] --- #### **3. 快递运费计算** 输入包裹重量(kg)和运送距离(km): - 首重1kg内10元,续重每kg加5元 - 距离>100km时,每超50km加3元 示例输入:2.5kg, 180km 计算过程: 重量费用 = 10 + (2.5-1)*5 = 17.5元 距离费用 = (180-100)/50取整=1 → 加3元 总费用=20.5元 --- #### **4. 字符类型判断** 输入一个ASCII字符,判断类型: - 大写字母(65-90) - 小写字母(97-122) - 数字(48-57) - 其他字符 要求用if嵌套结构实现[^5] --- #### **5. 三数排序(不使用数组)** 输入三个不同整数,按从大到小输出 进阶要求:用最少的比较次数实现 示例代码片段: ```c if(a < b) { int t=a; a=b; b=t; } // 确保a>=b if(a < c) { int t=a; a=c; c=t; } // 确保a最大 if(b < c) { int t=b; b=c; c=t; } // 确保b>=c printf("%d %d %d", a,b,c); ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wu_peixuann

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值