-
题目一:(25分)
-
题目描述:输入终值,输出所有能被7整除的数值及其和
数据展示:
代码展示:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int a , sum=0 , m=0; //定义输入值,求和值,以及判断换行的值
printf("题目:输入终值,输出所以被7整除的数值及其和\n");
printf("请输入:");
scanf("%d",&a );
for(int i=1;i<a;i++){
if(i%7==0){ //模7换行
printf("%-2d ",i); //调整格式
sum+=i; //求模7的和
m++; //计数
if(m%5==0) printf("\n"); //一行有五个就换行
}
}
printf("\n\n100以内能被7整除的数值和是:%d\n",sum);
return 0;
}
- 评分要求
-
- 根据接收值准确定义变量类型(2分)
- 提示并输入终值(2分)
- 阅读题目确定循环要素:起始值、终值、步长(3分)
- 循环判断指定范围内能被7整除的数值并输出(5分) 核心
- 每5个换行输出(2分)
- 累计全部符合条件的数值和并输出(3分)
- 代码中添加不少于5行的关键注释描述实现思路(3分)
-
-
题目二: (20分)
-
题目描述: 注册账号时需输入6位密码,根据密码组成验证其安全等级
输出框展示:
代码展示:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
printf("题目:注册账号时需输入6位密码,根据密码组成验证其安全等级\n");
int n=0,flag1=0,flag2=0,flag3=0,flag4=0,x=0;
char a[20]={0};
printf(" 请输入6位密码: ");
while(n!=15){ //当所以类型都包含就是1111转换成十进制就是15
n=0;
x=0;
flag1=0;
flag2=0;
flag3=0;
flag4=0;
while(a[x-1]!=10||x==0){ //用来判断回车符合退出第一次输入密码
a[x]=getchar();
// printf("%d %d\n",x,a[x]); //测试数组每个下标以及下标表示的内容
x++;
}
if(x!=7) {
printf("密码位数不正确,请再次输入密码:");
x=0;
continue;
}
// printf("%s\n",a); //测试输出的字符串
x=0;
// printf("%ld\n",strlen(a)); //用来测试字符串
for(int i=0 ;i<6;i++){
if(a[i]>65&&a[i]<122){
flag1=8;
}else if(a[i]>48&&a[i]<57){
flag2=4;
}else if(a[i]== ' '){
flag3=2;
}else{
flag4=1;
}
n=flag1+flag2+flag3+flag4;
// printf("%d\n",n); //测试密码每位相加是多少,用来判断各个的值
}
if(n==4||n==8||n==2||n==1) { //以下判断有几个不同类型的字符用来选择输出内容
printf("输入的六位的密码 等级验证为:低\n");
printf("密码太简单,请再次输入密码:");
}
else if(n==12||n==3||n==5||n==6||n==9||n==10) {
printf("请输入六位数的密码 该密码等级为中\n");
printf("密码太简单,请再次输入密码:");
}
else if(n==7||n==11||n==13||n==14) {
printf("请输入六位数密码 该秘密等级为高\n");
printf("密码太简单,请再次输入密码:");
}
else printf("请输入六位数密码 该秘密等级为极高\n");
}
return 0;
}
- 评分要求
- 代码中需要添加至少5行关键注释描述实现思路(3分)
- 根据字母、数字、特殊字符、空格个数验证密码等级(3分) 核心
- 如长度不符合要求给出提示信息(1分)
- 判断并统计输入的密码各组成部分个数(4分) 核心
- 利用循环结构、getchar()函数 输入验证密码(3分)
- 根据接收用户值定义变量类型,命名遵守规范(2分)
-
题目三 :(30分)
-
题目描述: 神州租车公司为提升服务质量近期展开满意度调查活动,请输入近期租车6位顾客满意度进行相关运算
数据展示:
代码展示:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int n,j=0,k=0;
int a[20];
float b;
printf("题目:神州租车公司为提升服务质量近期展开满意度调查活动,请输入近期租车6位顾客满意度进行相关运算\n");
for(int i=0 ; i<6 ;i++){
printf("请输入第%d位顾客的满意度:",i+1);
scanf("%d",&a[i]);
}
int min;
for(int i=0 ; i<6 ; i++){
min = i;
for(int j=i+1;j<6 ; j++){
if(a[j]<a[min]){
min = j;
}
}
int t = a[i];
a[i] = a[min];
a[min] = t;
}
for(int i=0 ; i<6 ; i++){
if(a[i]>=90) j++;
else k++;
b=(float)j/(j+k);
// printf("%d %d %d\n",j,k,a[i]);
}
printf("\t满意度为:%.2f%%\n",b*100);
if(j<6) printf("服务质量有待改变\n");
else printf("保持现有服务质量水平\n");
return 0;
}
- 评分要求 :
- 判断如果百分比值低于90%则显示信息“服务质量有待改进”,否则提示“保持现
- 统计满意度个数,计算百分比并输出 (90分为合格) (4分) 核心
- 将 6位用户的满意度按由小到大的顺序排序输出(5分) 核心
- 循环输入6位顾客的满意度值(5分) 核心
- 正确定义一维数组 (3分)
有服务质量水平” (3分)
-
-
- 代码关键处添加不少于5行的规范注释(5分)
-
-
题目四 :(25分)
-
题目描述: 输入一批数,输出是3倍数的数值,计算3倍数中的最大值、最小值
数据展示:
代码展示:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
printf("题目:输入一批数,输出是3倍数的数值,计算3倍数中的最大值、最小值\n");
int a[100] , d , min,max , b[100],j=0;
printf("请输入数组长度:");
scanf("%d",&d);
printf("请依次输入数组元素值:");
for(int i=0 ; i<d ; i++){ //输入数组内容,长度为d
scanf("%d",&a[i]);
}
printf(" 数组中3倍数的元素包含:");
for(int i=0 ; i<d ; i++){ //当可以被3整除,赋值到b数组
if(a[i]%3==0) {
b[j] = a[i];
j++;
printf("%d\t",a[i]);
}
}
min = 0;
max = 0;
for(int i=0 ; i<j ; i++){ //在b数组中依次找小的值,下标赋值给min
if(b[i]<b[min]){
min = i;
}
ifb[i]>b[max]){
max = i;
}
}
printf("\n元素中3的倍数最小的值是:%d\n",b[min]); //利用min找到最小值
printf("\n元素中3的倍数最大的值是:%d\n",b[max]); //利用max找到最大值
return 0;
}
- 评分要求
-
- 正确定义一维数组(2分)
- 提示并输入数组长度(2分)
- 循环输入数组元素的值(5分) 核心
- 循环判断并输出数组元素中是3倍数的元素(4分) 核心
- 循环查找数组元素中是3倍数的最小值,最大值并输出结果(4分) 核心
- 代码中添加不少于5行的关键注释描述程序实现思路(4分)
-
-
题目五:(30分)
-
题目描述:输入操作数及运算符完成数值的加、减、乘、除运算
数据展示:
代码展示:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
printf("题目:输入操作数及运算符完成数值的加、减、乘、除运算a\n");
printf("请输入第一个操作数:");
float n,m;
char i,j;
float a;
scanf("%f",&n);
printf("请输入运算符[加-P/p 减-S/s 乘-M/m 除-D/d]");
getchar();
scanf("%c",&i);
printf("请输入第二个操作数:");
scanf("%f",&m);
printf("运算结果为\n");
if(i=='P'||i=='p'){
a=n+m;
j='+';
}
if(i=='S'||i=='s'){
a=n-m;
j='-';
}
if(i=='M'||i=='m'){
a=n*m;
j='*';
}
if(i=='D'||i=='d'){
if(0==m) {
printf("分母不能为0/n");
return 0;
}
else a=n+m;
j='/';
}
printf("%.2f%c%.2f=%.2f\n",n,j,m,a);
return 0;
}
- 评分要求
- 定义接收操作数及运算符的变量,名称要符合规范(2分)
- 提示并输入第一个操作数(2分)
- 提示并输入运算符[加减乘除用字母代表](2分)
- 提示并输入第二个操作数(2分)
- 采用多分支选择结构switch对输入的操作数进行判断,输入大小写字母都可以调用
- 对应的运算(3分) 核心
- 正常计算两数相加并输出结果(2分)核心
- 正常计算两数相减并输出结果(2分)核心
- 正常计算两数相乘并输出结果(2分)核心
- 正常计算两数相除并输出结果(2分)核心
- 如分母为0则输出提示信息“分母不能为零!”(2分)
- 核心语句需添加不少于5行的规范注释描述实现思路(4分)