9.7练习

1.输入终值,输出所有能被7整除的数值及其和

题目要求:

(1).根据接收值准确定义变量类型(2分)

(2).提示并输入终值(2分)

(3).阅读题目确定循环要素:起始值、终值、步长(3分)

(4). 循环判断指定范围内能被7整除的数值并输出(5分) 核心

(5). 每5个换行输出(2分)

(6). 累计全部符合条件的数值和并输出(3分)

(7). 代码中添加不少于5行的关键注释描述实现思路(3分)

int main(int argc, const char *argv[])
{
	printf("请输入终值:");
		int num;
	scanf("%d",&num);
	
	int sum=0;
	int count=0;
	//从1到终值循环
	for(int i=1;i<=num;i++)
	{
		//判断能否被7整除
		if(i%7==0)
		{
			printf("%-8d ",i);
			//统计输出数字的个数
			count++;
			//计算输出数字之和
			sum+=i;
			//每输出五个数换行
			if(count%5==0)
			printf("\n");
		}
	}

	printf("\n");
	printf("%d以内能被7整除的数值和为:%d\n",num,sum);
	return 0;
}

运行结果:

 

2. 注册账号时需输入6位密码,根据密码组成验证其安全等级

 

int main(int argc, const char *argv[])
{
	char arr[100];
	//分别用于标记数字,字母,空格和特殊字符
	int flag0=0,flag1=0,flag2=0,flag3=0;
	//分别用于计算数字,字母,空格和特殊字符数量
	int count1=0,count2=0,count3=0,count4=0;

	
	while(1)
	{
		printf("请输入六位密码:");
		//gets可以吸收输入的空格 scanf不可以
		gets(arr);
			
	for(int i=0;i<strlen(arr);i++)
	{
		//统计各项数据
		if(arr[i]>='0'&&arr[i]<='9')
		{
			flag0=1;
			count1++;
		}
		else if(arr[i]>='a'&&arr[i]<='z'||arr[i]>='A'&&arr[i]<='Z')
		{
			flag1=1;
			count2++;
		}
		else if(arr[i]==' ')
		{
			flag2=1;
			count3++;
		}
		else
		{
			flag3=1;
			count4++;
		}
	}
		printf("密码组成为:数字%d个,字母%d个,空格%d个,特殊字符%d个\n",count1,count2,count3,count4);
		 //将用于统计数量的数据重新初始化为0
		 count1=0,count2=0,count3=0,count4=0;
		 
		 if(strlen(arr)==6){
		 //验证密码等级
		if(flag0==1&&flag1==0&&flag2==0&&flag3==0)
		{
			printf("输入的六位密码等级验证为低\n");
		}
		if(flag0==1&&flag1==1&&flag2==0&&flag3==0)
		{
			printf("输入的六位密码中含有字母和数字 等级验证为中\n");
		}
		if(flag0==1&&flag1==1&&flag2==1&&flag3==0)
		{
			printf("输入的六位密码中含有字母和数字和空格 等级验证为较高\n");
		}
		if(flag0==1&&flag1==1&&flag2==1&&flag3==1)
		{
			printf("输入的六位密码中含有字母,数字,空格和特殊字符 等级验证为高\n");
		}
	}
		 else
		 {
			 printf("密码长度不符合要求\n");
		 }
	}
	return 0;
}

运行结果:

3. 神州租车公司为提升服务质量近期展开满意度调查活动,请输入近期租车6位顾客满意度进行相关运算

评分要求 :

 正确定义一维数组 (3分)

循环输入6位顾客的满意度值(5分) 核心

将 6位用户的满意度按由小到大的顺序排序输出(5分) 核心

统计满意度个数,计算百分比并输出 (90分为合格) (4分) 核心

判断如果百分比值低于90%则显示信息“服务质量有待改进”,否则提示“保持现有服务质量水平” (3分)

代码关键处添加不少于5行的规范注释(5分)

int main(int argc, const char *argv[])
{
	int arr[6];

	for(int i=0;i<6;i++)
	{ 	//输入六个满意度
		printf("请输入%d位顾客的满意度:",i+1);
		scanf("%d",&arr[i]);
		if(arr[i]>100||arr[i]<0)
		{
			printf("输入有误请重新输入\n");
			break;
		}
	}
	
	//简单选择排序
	for(int i=0;i<6-1;i++)
	{
		int index=i;
		for(int j=i+1;j<6;j++)
		{ 	//将输入数据从小到大排序
			if(arr[j]<arr[index])
			{
				index=j;
			}
		}
		//当下标发生改变时,交换数值
		if(index!=i)
		{
		int temp=arr[index];
		arr[index]=arr[i];
		arr[i]=temp;
		}
	}

	printf("本次满意度调查由低到高的分数值为:");
	for(int i=0;i<6;i++)
	{ 	
		printf("%-5d",arr[i]);
	}
	printf("\n");
		//统计评分超过90的数量
		int count=0;
		for(int i=0;i<6;i++)
		{
		if(arr[i]>=90)
		{
			count++;
		}
		}
		//计算满意率
		float m=count/6.0;
		printf("\t满意度为%.2f%%\n",m*100);
		if(m>=0.9)
		{
			printf("保持现有服务质量水平\n");
		}
		else
			printf("服务质量有待改进\n");

	return 0;

运行结果:

 

 4.题目描述:  输入一批数,输出是3倍数的数值,计算3倍数中的最大值、最小值

评分要求

(1).正确定义一维数组(2分)

(2).提示并输入数组长度(2分)

(3).循环输入数组元素的值(5分) 核心

(4).循环判断并输出数组元素中是3倍数的元素(4分) 核心

(5).循环查找数组元素中是3倍数的最小值,最大值并输出结果(4分) 核心

(6).代码中添加不少于5行的关键注释描述程序实现思路(4分)

int main(int argc, const char *argv[])
{
	int n;
	printf("请输入数组长度:");
	scanf("%d",&n);
		
	int arr[n];
	printf("请依次输入数组元素值");
	for(int i=0;i<n;i++)
	{
		scanf("%d",&arr[i]);
	}
	
	printf("数组中是三的倍数的元素有:");
	//计算数组中3倍数的个数
	int count=0;
	int brr[n];
	for(int i=0;i<n;i++)
	{ 	//找出数组中三的倍数
		if(arr[i]%3==0)
		{
			printf("%d\t",arr[i]);
			//将三的倍数赋值给brr数组
			brr[count]=arr[i];
			count++;
		}
	}
	printf("\n");
	//将brr数组第一个元素赋值给max和min
	int max=brr[0];
	int min=brr[0];
	//循环找出最大值和最小值
	for(int i=1;i<count;i++)
	{
			if(brr[i]>max)
			{
			max=brr[i];
			}
			if(brr[i]<min)
			{
			min=brr[i];
			}
	}
	printf("数组元素中3倍数最小值为:%d\t",min);
	printf("最大值为:%d\n",max);
	return 0;
}

运行结果:

 

 

5.题目描述输入操作数及运算符完成数值的加、减、乘、除运算

(1)定义接收操作数及运算符的变量,名称要符合规范(2分)

(2)提示并输入第一个操作数(2分)

(3)提示并输入运算符[加减乘除用字母代表](2分)

(4)提示并输入第二个操作数(2分)

(5)采用多分支选择结构switch对输入的操作数进行判断,输入大小写字母都可以调用

(6)对应的运算(3分)  核心

(7)正常计算两数相加并输出结果(2分)核心

(8)正常计算两数相减并输出结果(2分)核心

(9)正常计算两数相乘并输出结果(2分)核心

(10)正常计算两数相除并输出结果(2分)核心

(11)如分母为0则输出提示信息“分母不能为零!”(2分)

(12)核心语句需添加不少于5行的规范注释描述实现思路(4分)

int main(int argc, const char *argv[])
{
	float a;
	printf("请输入第一个操作数:");
	scanf("%f",&a);
	//吸收输入的回车字符
	getchar();
	
	char ch;
	printf("请输入运算符[加-P/p 减-S/s 乘-M/m 除-D/d]:");
	scanf("%c",&ch);
	getchar();

	float b;
	printf("请输入第二个操作数:");
	scanf("%f",&b);
	getchar();

	//运算符判断进行何种运算
	switch(ch)
	{
		//加法运算
		case 'P':
		case 'p':   printf("%.2f+%.2f=%.2lf\n",a,b,a+b); break;
		//减法运算
		case 's':
		case 'S':	printf("%.2f-%.2f=%.2lf\n",a,b,a-b); break;
		//乘法运算
		case 'm':
		case 'M':   printf("%.2f*%.2f=%.2lf\n",a,b,a*b); break;
		//除法运算,判断b是否为零
		case 'd':
		case 'D':   b==0?printf("分母不能为零\n"):printf("%.2f/%.2f=%.2lf\n",a,b,a/b);
	}
	return 0;
}

运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值