代码练习1

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

  • 题目二: 20分)
  1. 题目描述:  注册账号时需输入6位密码,根据密码组成验证其安全等级
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	int ch, n=0, g=0, i, zm=0, sz=0, kg=0, qt=0;
	printf("请输入六位密码:");	
	char a[100];
	do{
		ch=getchar();  				//用getchar逐个读取输入的六位密码,包括空格
		a[n]=ch;
		putchar(a[n]);              //putchar逐个输出查看
		n++;
	}while(ch!='\n'); 				//读取到回车结束
	
	if(n!=7){ 						//密码包括回车为7位
		printf("%d密码长度不符合要求\n", n); 	//密码长度不是六位报错
	}else{
		printf("输入的六位密码中含有");
		for(i=0; i<n; i++){
			if(zm==0){ 			//字母计数器,若已有字母判定则跳过,防止重复
				if((a[i]>=65 && a[i]<=90) || (a[i]>=97 && a[i]<=122)){
					printf("字母 "); //符合区间,输出字母
					g++; 		//密码强度+1
					zm++; 		//字母计数器+1,下次会跳过
				}
			}
			if(sz==0){ 			//数字计数器,防止重复
				if(a[i]>=48 && a[i]<=57){
					printf("数字 ");  //符合区间,输出数字
					g++; 		//密码强度+1
					sz++; 		//数字计数器+1
				}
			}
			if(kg==0){ 			//空格计数器
				if(a[i]==32){
					printf("空格 ");
					g++;
					kg++;
				}
			}
			if(qt==0){ 			//其他计数器
				if((a[i]<65 || a[i]>90)){
					if(a[i]<97 || a[i]>122){
						if(a[i]<48 || a[i]>57){
							if(a[i]!=32){
								printf("及其他字符 ");
								g++;
								qt++;
								}
							}
						}
					}
												
			}
		}
	}
		
	printf("等级验证为:"); 		//密码强度为1输出低, 2/3输出中,4输出高
	switch(g){
		case 1: printf("低\n"); break;
		case 2: printf("中\n"); break;
		case 3: printf("中\n"); break;
		case 4: printf("高\n"); break;
	}
	return 0;
}

  1.  评分要求
      1. 根据接收用户值定义变量类型,命名遵守规范(2分)
      2. 利用循环结构、getchar()函数 输入验证密码(3分)
      3. 判断并统计输入的密码各组成部分个数(4分) 核心
      4. 如长度不符合要求给出提示信息(1分)
      5. 根据字母、数字、特殊字符、空格个数验证密码等级(3分) 核心
      6. 代码中需要添加至少5行关键注释描述实现思路(3分)
  • 题目 :(30分)
  1. 题目描述  神州租车公司为提升服务质量近期展开满意度调查活动,请输入近期租车6位顾客满意度进行相关运算
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	int i, n=6, j, t, min=0, g=0;
	float k;
	int a[100], b[100];
	for(i=0; i<n; i++){  			//循环输入六位顾客的满意度,存入a[i]
		printf("请输入第%d位顾客的满意度:", i+1);
		scanf("%d", &a[i]);
	}
	                                //换位,将满意度由大到小排列	
	for(i=0; i<n-1; i++){
		min = i;
		for(j=i+1; j<n; j++){
			if (a[min]>a[j]){
				min = j;
			}
			if(i != min){
				t=a[i], a[i]=a[min], a[min]=t;
			}
		}
	}

	for(i=0; i<n; i++){ 	//判定满意度符合的个数
		printf("%d ", a[i]);
		if(a[i]>=90){
			g++;
		}
	}
	k=g*100.0/n; 		//计算符合的百分比
	printf("\n满意度为%.2f%%\n", k);
	if(k>=90){         //判定满意度是否符合要求,并输出对应反馈
		printf("保持现有服务质量\n");
	}else{
		printf("服务质量需要提高\n");
	}
	return 0;
}
  1. 评分要求 :
      1.  正确定义一维数组 (3分)
      2.  循环输入6位顾客的满意度值(5分) 核心
      3.  将 6位用户的满意度按由小到大的顺序排序输出(5分) 核心
      4.  统计满意度个数,计算百分比并输出 (90分为合格) (4分) 核心
      5.  判断如果百分比值低于90%则显示信息“服务质量有待改进”,否则提示“保持现

有服务质量水平” (3分)

      1. 代码关键处添加不少于5行的规范注释(5分)
  • 题目 :(25分)
  1. 题目描述:  输入一批数,输出是3倍数的数值,计算3倍数中的最大值、最小值
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	int i, n, j, t, min=0, max=0, g=0;
	
	int a[100];
	printf("请输入数组长度:");
	scanf("%d", &n);
	printf("请依次输入数组元素值:");
	for(i=0; i<n; i++){
		scanf("%d", &t);
		if(t%3==0){ 		//判定是否为3的倍数
			a[g]=t;
			g++; 			//g为计数器,统计符合的数的个数
		}
	}
	min=a[0];              //假定第一个数为最大和最小数
	max=a[0];
	printf("数组中是三倍数的元素包含:");
	for(i=0; i<n; i++){     	//跟所有元素依次比较    
		printf("%d", a[i]);
			if(min>a[i]){
				min=a[i];        //当前最小数不是最小,就用最小覆盖
		}
			if(max<a[i]){        //当前最大数不是最大,就用最大覆盖
				max=a[i];
			}
	}
	printf("数组元素中3的最小倍数是%d最大倍数是%d", min, max);

	
	return 0;
}
  1. 评分要求
      1. 正确定义一维数组(2分)
      2. 提示并输入数组长度(2分)
      3. 循环输入数组元素的值(5分) 核心
      4. 循环判断并输出数组元素中是3倍数的元素(4分) 核心
      5. 循环查找数组元素中是3倍数的最小值,最大值并输出结果(4分) 核心
      6. 代码中添加不少于5行的关键注释描述程序实现思路(4分)
  • 题目五:(30分)
  1. 题目描述输入操作数及运算符完成数值的加、减、乘、除运算
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	char f;
	float a, b, r;
	printf("请输入第一个操作数:"); //输入第一个数
	scanf("%f", &a);
	printf("请输入运算符[加一P/p 减一S/s 乘一M/m 除一D/d]:"); //输入运算符
	scanf("%s", &f);
	printf("请输入第二个操作数:"); //输入第二个数
	scanf("%f", &b);
	printf("运算结果\n");
	if(b==0){
		printf("分母不能为零!"); 		//进行分母是否为零的错误判定
	}else{
			switch(f){ 	//根据输入的运算符判定符合的case,应该有重复度更小的写法
			case 'p': case 'P': r=a+b, printf("%.2f+%.2f=%.2f", a, b, r); break;
			case 's': case 'S': r=a-b, printf("%.2f-%.2f=%.2f", a, b, r); break;
			case 'm': case 'M': r=a*b, printf("%.2f*%.2f=%.2f", a, b, r); break;
			case 'd': case 'D': r=a/b, printf("%.2f/%.2f=%.2f", a, b, r); break;
			}
		}
	
	return 0;
}

          

  1. 评分要求
  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分)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值