一、 题目一:(25分)
- 题目描述:输入终值,输出所有能被7整除的数值及其和
- 评分要求
(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=0,sum=0;
printf("输入终值:");
scanf("%d",&n);
for(i=1;i<n;i++){
if(i%7==0){
printf("%-5d",i);
sum=sum+i;
if(i%5==0){
printf("\n");
}
}
}
printf("\n%d以内能被7整除的数值和是:%d\n",n,sum);
return 0;
}
二、 题目二: (20分)
-
题目描述: 注册账号时需输入6位密码,根据密码组成验证其安全等级
-
评分要求
(1). 根据接收用户值定义变量类型,命名遵守规范(2分)
(2). 利用循环结构、getchar()函数 输入验证密码(3分)
(3). 判断并统计输入的密码各组成部分个数(4分) 核心
(4). 如长度不符合要求给出提示信息(1分)
(5). 根据字母、数字、特殊字符、空格个数验证密码等级(3分) 核心
(6). 代码中需要添加至少5行关键注释描述实现思路(3分)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
char a[100]="";
int i=0,j=0,x=0,y=0,z=0,w=0;
printf("请输入6位密码:");
while(1){
a[i]=getchar();
if(a[i]=='\n'){
break;
}
i++;
}
while(a[j]!='\0'){
if(a[j]>='a'&&a[j]<='z'){
x=1;
}
if(a[j]>='0'&&a[j]<='9'){
y=1;
}
if(a[j]>32&&a[j]<48){
z=1;
}
if(a[j]==32){
w=1;
}
j++;
}
int sum=0;
sum=x+y+z+w;
if(i!=6){
printf("密码长度不符合要求\n");
}else if(sum==4){
printf("输入的六位密码中含有字母、数字、空格及其他字符 等级验证为:高\n");
}else if(sum==3){
printf("输入的六位密码中含有三种组合 等级验证为:中\n");
}else if(sum==2){
printf("输入的六位密码中含有两种组合 等级验证为:中\n");
}else if(sum==1){
printf("输入的六位密码中含有一种组合 等级验证为:低\n");
}
return 0;
}
三、 题目三 :(30分)
-
题目描述: 神州租车公司为提升服务质量近期展开满意度调查活动,请输入近期租车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 a[10];
int i,j;
for(i=0;i<6;i++){
printf("请输入第%d位顾客的满意度:",i+1);
scanf("%d",&a[i]);
}
for(i=1;i<6;i++){
for(j=0;j<6-i;j++){
if(a[j]>a[j+1]){
int t=a[j];a[j]=a[j+1];a[j+1]=t;
}
}
}
printf("本次满意度调查由低到高的分数值是:");
int sum=0;
for(i=0;i<6;i++){
printf("%5d",a[i]);
if(a[i]>89){
sum++;
}
}
sum=sum*100;
printf("\n 满意度为%.2f\n",(float)sum/6);
if(sum/6==100.00){
printf("保持现有服务质量水平\n");
}else{
printf("服务质量有待改进\n");
}
return 0;
}
四、 题目四 :(25分)
-
题目描述: 输入一批数,输出是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 n,i;
printf("请输入数组长度:");
scanf("%d",&n);
int a[n],b[n];
printf("请依次输入数组元素值:");
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
int min=0,max=0;
printf("数组中是3倍数的元素包含:");
for(i=0;i<n;i++){
if(a[i]%3==0){
printf("%-5d",a[i]);
if(max<a[i]){
max=a[i];
}
if(min==0){
min=a[i];
}else if(min>a[i]){
min=a[i];
}
}
}
printf("\n数组元素中3的最小倍数是%d 最大倍数是%d\n",min,max);
return 0;
}
五、 题目五:(30分)
-
题目描述:输入操作数及运算符完成数值的加、减、乘、除运算
-
评分要求
(1) 定义接收操作数及运算符的变量,名称要符合规范(2分)
(2) 提示并输入第一个操作数(2分)
(3) 提示并输入运算符加减乘除用字母代表
(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 a,b;
char c;
printf("请输入第一个操作数:");
scanf("%f",&a);
printf("请输入运算符[加-P/p 减-S/s 乘-M/m 除-D/d]:");
scanf(" %c",&c);
printf("请输入s第二个操作数:");
scanf("%f",&b);
printf("运算结果\n");
switch(c){
case 'p':
case 'P':
printf("%.2f+%.2f=%.2fa\n",a,b,a+b);
break;
case 's':
case 'S':
printf("%.2f-%.2f=%.2f\n",a,b,a-b);
break;
case 'm':
case 'M':
printf("%.2f*%.2f=%.2f\n",a,b,a*b);
break;
case 'd':
case 'D':
if(b!=0){
printf("%.2f/%.2f=%.2f\n",a,b,a/b);
}else{
printf("分母不能为零!\n");
}
break;
default:
printf("字符输入错误\n");
}
return 0;
}