C语言,流程控制综合练习题

练习1:实现判断一个整数,属于哪个范围:大于 0;小于 0;等于 0

#include<stdio.h>
void main(){
	
	int num = 0;
	printf("请输入一个整数:");
	scanf("%d",&num);
	
	if(num > 0){
		printf("范围大于0");
	}else if(num == 0){
		printf("范围等于0"); 
	}else{
		printf("范围小于0"); 
	}
	 
}

练习2: 判断一个年份是否为闰年

#include<stdio.h>
void main(){
	
	//判断一个年份是否为闰年
	int num = 0;
	
	printf("请输入你要输入的年份:");
	scanf("%d",&num);
	
	if((num % 4 == 0 && num % 100 != 0) || (num % 400 == 0)){
		printf("%d是闰年",num);
	}else{
		printf("%d是平年",num);
	}
	
	 
}

练习3:判断一个整数是否是水仙花数,所谓水仙花数是指一个 3 位数,其各个位上数字立方和等于其本身。

例如:

153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3

#include<stdio.h>
void main(){
	
	/*
	思路分析 1. 先获取到一个三位数的各个位的数字 使用 / 和 % 
			 2. 将得到各个数字(百位,十位,个位) 立方,并求和判断是否和原数相等
	*/
	
	
	int num = 0;
	printf("请输入数字:");
	scanf("%d",&num);
	int num1 = num / 100; //百位
	int num2 = num % 100 / 10; //十位 
	int num3 = num % 10; //十位
	
	
	if((num == num1 * num1 * num1 + num2 * num2 * num2 + num3 * num3 * num3)){
		printf("你输入的:%d 是水仙花数",num); 
	}else{
		printf("你输入的:%d 不是水仙花数",num); 
	}
}

在这里插入图片描述

练习4:保存用户名和密码,判断用户名是否为“张三”,密码是否为 1234,如果是,提示登录成功,否则提示登录失败

#include<stdio.h>
#include<string.h>
void main() {

	//保存用户名和密码,判断用户名是否为“张三”,密码是否为 1234,如果是,提示登录成功,否则提示登录失败

	char name[10] = "";
	char pwd[10] = "";

	printf("请输入用户名:");
	scanf("\n%s",name);
	printf("请输入密码:");
	scanf("\n%s",pwd);

	//int strncmp(const char *str1, const char *str2)

	if(strcmp("张三",name) == 0 && strcmp("1234",pwd) == 0) {
		printf("\n登陆成功");
	} else {
		
		printf("\n登陆失败");
	}

}

在这里插入图片描述

练习5:编写程序,根据输入的月份和年份,求出该月的天数(1-12), 就是需要考虑闰年(2 月份 29)和平年(2 月份 28)

#include<stdio.h>

void main() {

//编写程序,根据输入的月份和年份,求出该月的天数(1-12), 就是需要考虑闰年(2 月份 29)和平年(2 月份 28)
	
	int year = 0; //年 
	int month = 0; //月
	
	printf("请输入年份:");
	scanf("%d",&year);
	printf("\n请输入月份");
	scanf("%d",&month);
	
	
	//1,3,5,7,8,10,12 --- 31 
	//2 月份 :闰年(2 月份 29)和平年(2 月份 28)
	//其他 30 
	switch(month){
		case 1: 
		case 3: 
		case 5: 
		case 7: 
		case 8: 
		case 10: 
		case 12: 
			printf("%d 年的 %d 月是%d", year, month, 31); 
			break;
		case 2: //判断 year 是闰年还是平年 
			if( (year % 4 == 0 && year % 100 !=0) || year % 400 == 0) { 
				printf("%d 年的 %d 月是%d天", year, month, 29); 
			}else{
				printf("%d 年的 %d 月是%d天", year, month, 28); 
			}
			break;
		default: 
			printf("%d 年的 %d 月是%d天", year, month, 30); 
			break;
	} 
 
}

在这里插入图片描述

练习6:定义变量保存一个数,判断(if)是否能被 3 整除或(||)能被 7 整除(%),如果是,则提示:能,否则提示:不能

#include<stdio.h>

void main() {

//定义变量保存一个数,判断(if)是否能被 3 整除或(||)能被 7 整除(%),如果是,则提示:能,否则提示:不能
 	
 	int num = 212;
 	
 	if(num % 3 == 0 || num % 7 == 0){
 		printf("是"); 
	 }else{
	 	printf("不是"); 
	 }
	 
}

在这里插入图片描述

练习7:输入星期几,如果是星期一到星期三,打印:AAA,星期四到星期五,打印:BBB,星期六到星期日,打印 CCC, 如果都不是,提示,输入错误

switch语句不可以用字符型,但Java的版本过了 1.8 之后 可以用字符型。

#include<stdio.h>

void main() {

	//输入星期几,如果是星期一到星期三,打印:AAA,星期四到星期五,打印:BBB,星期六到星期日,打印 CCC, 
	//如果都不是,提示,输入错误
	
	int week = 0;
	printf("请输入星期:");
	scanf("%d",&week);
	
	switch(week){
		case 1:
		case 2: 
		case 3:
			printf("AAA");
			break;
		case 4:
		case 5:
			printf("BBB");
			break;
		case 6:
		case 7:
			printf("CCC");
			break; 
		
		default:
			printf("输入错误");
			break;
	}
}

在这里插入图片描述

练习8:请使用 for、while、do—while 三种形式打印 1000——9999 年内所有的闰年

for

#include<stdio.h>

void main() {

	int num ;
	for (num  = 1000;num < 10000;num++){
		if((num % 4 == 0 && num % 100 != 0) || num % 400 == 0){
			printf("\n%d是闰年",num);
		}
	}
}

while

#include<stdio.h>

void main() {

	int num ;
	while(num < 10000){
		if((num % 4 == 0 && num % 100 != 0) || num % 400 == 0){
			printf("\n%d是闰年",num);
		}	
		num++;
	}
}

do…while

#include<stdio.h>

void main() {

	int num ;

	do {
		if((num % 4 == 0 && num % 100 != 0) || num % 400 == 0) {
			printf("\n%d是闰年",num);
		}
		num++; 
	} while(num < 10000);

}

练习9:输出小写的 a-z 以及大写的 Z—A

#include<stdio.h>

void main() {

	char n,m;

	for(n = 'a'; n <= 'z'; n++) {
		printf("%c ", n);
	}
	printf("\n====================================\n");
	for(m = 'Z'; m >= 'A'; m--) {
		printf("%c ", m);
	}
}

在这里插入图片描述

练习10:求出 1-1/2+1/3-1/4……1/100 的和

#include<stdio.h>

void main() {

	//求出 1-1/2+1/3-1/4…..1/100 的和 
	//思路分析,找到算式的规律,并求解 
	// 1-1/2+1/3-1/4…..1/100 = (1/1)-(1/2)+(1/3)-(1/4)..... (1/100) 
	// 分母为奇数, 则符号时 + 
	// 分母为偶数, 则符号时 -
	
	//定义一个变量 sum 来统计和
	double sum = 0.0;
	int i;
	for(i = 1;i <= 100;i++){
		//如果i是奇数
		if(i % 2 != 0){
			sum += 1.0/i; // 注意,考虑保留小数 1.0 而不是 1
		}else{
			sum -= 1.0/i;
		}
	}
	
	printf("总和为sum = %.2f",sum);
	
}

在这里插入图片描述

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值