9.7 C语言基础-练习复习

题目描述:输入终值,输出所有能被7整除的数值及其和

题目要求:

  1. 根据接收值准确定义变量类型(2分)
  2. 累计全部符合条件的数值和并输出(3分)
  3.  每5个换行输出(2分)
  4.  循环判断指定范围内能被7整除的数值并输出(5分) 核心
  5. 阅读题目确定循环要素:起始值、终值、步长(3分)
  6. 提示并输入终值(2分)
  7. 代码中添加不少于5行的关键注释描述实现思路(3分)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	int n;//用于接收终值
	//提示输入一个终值
	printf("请输入终值:");
	scanf("%d",&n);
	int i=0,count=0,sum=0;
	for(i=7;i<n;i++){//遍历7-n的所有值
		if(i%7==0){//找出能被7整除的数,并打印、累计次数及累计求和
			printf("%-5d",i);
			count++;
			sum+=i;
		}
		if(count==5){
			printf("\n");//每输出5个数即换行
			count=0;//每输出一个换行后计数清空,重新累计
		}
	}
	printf("\n%d以内能被7整除的数值和是%d\n",n,sum);//输出所有被7整除的和
	return 0;
}

运行结果:

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

  1. 根据接收用户值定义变量类型,命名遵守规范(2分)
  2. 根据字母、数字、特殊字符、空格个数验证密码等级(3分) 核心
  3. 如长度不符合要求给出提示信息(1分)
  4. 判断并统计输入的密码各组成部分个数(4分) 核心
  5. 利用循环结构、getchar()函数 输入验证密码(3分)
  6. 代码中需要添加至少5行关键注释描述实现思路(3分)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, const char *argv[])
{
	char ch[100]={0};//定义一个数组接收字符串
	int i,count1=0,count2=0,count3=0,count4=0;//定义4个标签用来统计字母、数字、空格和其他字符
	//提示输入6位密码
	while(1){//一直输入,直到密码等级为高时退出
	printf("请输入6位密码:");
	gets(ch);//输入密码
	for(i=0;i<strlen(ch);i++){//遍历字符串
		//分别对四种字符进行统计
		if((ch[i]>='a'&&ch[i]<='z')||(ch[i]>='A'&&ch[i]<='Z')){
			count1++;
		}else if(ch[i]>='0'&&ch[i]<='9'){
				count2++;
		}else if(' '==ch[i]){
				count3++;
		}else{
				count4++;
		}
	}
	if(count1+count2+count3+count4!=6){
		printf("密码长度不符合要求\n");//对于密码长度不等于6的进行判断
	}else if(count1>0&&count2>0&&(0==count3||0==count4)){//含有字母和数字字符
		printf("输入的六位密码中含有字母、数字 等级验证为:中\n");
	}else if(count1>0&&count2>0&&count3>0&&count4>0){//四种字符都包含
		printf("输入的六位密码中含有字母、数字、空格及其他字符 等级验证为:高\n");
		break;//密码等级为高时,退出输入
	}else {//其他类型的情况都验证为低
		printf("输入的六位密码 等级验证为:低\n");
	}
	count1=count2=count3=count4=0;//一次循环后统计结果清空
	}
	return 0;
}

运行结果:

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

题目要求:

  1.  正确定义一维数组 (3分)
  2. 循环输入6位顾客的满意度值(5分) 核心
  3. 将 6位用户的满意度按由小到大的顺序排序输出(5分) 核心
  4.  统计满意度个数,计算百分比并输出 (90分为合格) (4分) 核心
  5. 判断如果百分比值低于90%则显示信息“服务质量有待改进”,否则提示“保持现有服务质量水平” (3分)
  6. 代码关键处添加不少于5行的规范注释(5分)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	int arr[100]={0};//定义一个数组用于接收输入值
	int i;
	for(i=0;i<6;i++){//输入6位顾客满意度
		printf("请输入第%d位顾客的满意度:",i+1);
		scanf("%d",&arr[i]);//注意&符号不能省略
	}
	//将数据从小到大进行排序,使用冒泡排序
	int flag=0;
	for(i=0;i<6-1;i++){
		for(int j=0;j<6-1-i;j++){
			if(arr[j]>arr[j+1]){
				int temp=arr[j];
				arr[j]=arr[j+1];
				arr[j+1]=temp;
				flag=1;
			}
		}
		if(0==flag){//当某一趟flag标记未发生改变时,表明剩下的数据已经有序,结束趟数循环
			break;
		}
		flag=0;
	}
	//统计满意度
	int count=0;
	for(i=0;i<6;i++){
		if(arr[i]>=90){
			count++;
		}
	}
	//输出分数值
	printf("本次满意度调查由低到高的分数值是:");
	for(i=0;i<6;i++){
		printf("%-5d",arr[i]);
	}
	//输出满意度
	if(count<6){
		printf("\n满意度为%.2f%%\n服务质量有待改进\n",(float)count*100/6);
	}else{
		printf("\n满意度为%.2f%%\n保持现有服务质量水平\n",(float)count*100/6);
	}
	return 0;
}

运行结果:

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

题目要求:

  1. 正确定义一维数组(2分)
  2. 提示并输入数组长度(2分)
  3. 循环输入数组元素的值(5分) 核心
  4. 循环判断并输出数组元素中是3倍数的元素(4分) 核心
  5. 循环查找数组元素中是3倍数的最小值,最大值并输出结果(4分) 核心
  6. 代码中添加不少于5行的关键注释描述程序实现思路(4分)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	int arr[100]={0};//接收输入元素
	//提示输入数组长度
	int n;
	printf("请输入数组长度:");
	scanf("%d",&n);
	//依次输入数组值
	int i;
	printf("请依次输入数组元素值:");
	for(i=0;i<n;i++){
		scanf("%d",&arr[i]);//&符号不能省略
	}
	int arr1[100]={0};//定义一个新数组用于接收3倍数的数
	int j=0;//用于新数组的下标
	for(i=0;i<n;i++){
		if(arr[i]%3==0){
			arr1[j]=arr[i];
			j++;//统计3倍数的数之后j已经指向下一位位置
		}
	}
	int min=arr1[0];//假设arr1[0]是最小倍数
	int max=arr1[0];//假设arr1[0]是最大倍数
	for(i=1;i<j;i++){//通过打擂台方法找出最小和最大倍数
		if(min>arr1[i]){
			min=arr1[i];
		}
		if(max<arr1[i]){
			max=arr1[i];
		}
	}
	//依次输出arr1元素
	printf("数组中是3倍数的元素包含:");
	for(i=0;i<j;i++){
		printf("%-5d",arr1[i]);
	}
	//输出3的最大和最小倍数
	printf("\n数组元素中3的最小倍数是%d   最大倍数是%d\n",min,max);
	return 0;
}

运行结果:

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

题目要求:

(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分)

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	//提示输入第一个操作数
	float f_num;
	printf("请输入第一个操作数:");
	scanf("%f",&f_num);
	//提示请输入运算符
	char ch;
	printf("请输入运算符[加-P/p 减-S/s 乘-M/m 除-D/d]:");
	scanf(" %c",&ch);//对于输入字符时,在%c前增加空格,吸收前面回车留下的垃圾字符
	//提示输入第二个操作数
	float l_num;
	printf("请输入第二个操作数:");
	scanf("%f",&l_num);
	//对输入运算符进行判断
	if('P'==ch||'p'==ch){
		ch='+';
	}else if('S'==ch||'s'==ch){
		ch='-';
	}else if('M'==ch||'m'==ch){
		ch='*';
	}else if('D'==ch||'d'==ch){
		ch='/';
		if(0==l_num){//除法运算时,对输入分母为零时做出判断
			ch=' ';
			printf("分母不能为零!\n");
		}
	}else {
		printf("输入运算符有误,请重新输入\n");
	}
	//对输入运算符进行相应选择,执行相应运算
	switch(ch){
		case '+':
				printf("运算结果\n%.2f+%.2f=%.2lf\n",f_num,l_num,f_num+l_num);break;
		case '-':
				printf("运算结果\n%.2f-%.2f=%.2lf\n",f_num,l_num,f_num-l_num);break;
		case '*':
				printf("运算结果\n%.2f*%.2f=%.2lf\n",f_num,l_num,f_num*l_num);break;
		case '/':
				printf("运算结果\n%.2f/%.2f=%.2lf\n",f_num,l_num,f_num/l_num);break;
		default:
				break;
	}
	return 0;
}

运算结果:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值