- 题目一:(25分)
- 题目描述:输入终值,输出所有能被7整除的数值及其和
- 评分要求
-
- 根据接收值准确定义变量类型(2分)
- 提示并输入终值(2分)
- 阅读题目确定循环要素:起始值、终值、步长(3分)
- 循环判断指定范围内能被7整除的数值并输出(5分) 核心
- 每5个换行输出(2分)
- 累计全部符合条件的数值和并输出(3分)
- 代码中添加不少于5行的关键注释描述实现思路(3分)
-
答案:
#include<stdio.h>
#include<string.h>
int main(int argc, const char *argv[])
{
int end_num = 0 , i=0 , sum = 0;
int count = 0;//计数
//首先输入终值
printf("请输入终值:");
scanf("%d" , &end_num);
//循环遍历至终值
for(i=1 ; i<=end_num ;i++){
//判断能被7整除的数并输出以及计算总和
if(i%7 == 0){
printf("%-8d", i);
count++;
//判断是否输出5个并换行a
if(count %5 == 0){
printf("\n");
}
//将输出的能被7整出的数求和
sum += i;
}
}
//输出最终能被7整除的数值的和
printf("\n\n%d以内能被7整除的数值和是%d\n" , end_num , sum);
return 0;
}
- 题目二: (20分)
- 题目描述: 注册账号时需输入6位密码,根据密码组成验证其安全等级
- 评分要求
-
- 根据接收用户值定义变量类型,命名遵守规范(2分)
- 利用循环结构、getchar()函数 输入验证密码(3分)
- 判断并统计输入的密码各组成部分个数(4分) 核心
- 如长度不符合要求给出提示信息(1分)
- 根据字母、数字、特殊字符、空格个数验证密码等级(3分) 核心
- 代码中需要添加至少5行关键注释描述实现思路(3分)
-
答案
#include<stdio.h>
#include<string.h>
int main(int argc, const char *argv[])
{
int i = 0 , count =0 ;
char m[100]="0" ;
//输入6位密码
printf("请输入6位密码:");
m[0] = getchar();//先写入第一位使m[0]不为'\0'??????.
while(m[i] !='\n'){
m[i+1]=getchar();
i++;
}
m[i] = '\0';//将最后写入的'/n'改成'/0',防止输出多余的行。
//判断密码长度以及分别数字字符、英语字符和其它字符的个数用于密码强度的判断。
int n1=0, n2=0;//n1.n2分别为数字字符数和英语字符数
if(strlen(m)!=6)
printf("\n 密码长度不符合要求\n");
else{
for(i=0 ; i < strlen(m);i++){
if(m[i]>='0' && m[i]<='9'){
n1++;//数字字符数
}
if(m[i]>='a' && m[i]<= 'z'|| m[i]>'A' && m[i]<'Z'){
n2++;//英文字符数
}
}
//通过对数字字符数,英语字符数和总字符数验证密码等级
if(n1 == strlen(m)){
printf("输入的六位密码等级验证为:低\n");
}else if(n1 + n2 == strlen(m)){
printf("输入的六位密码含有字母、数字等级验证为:中\n");
}else{
printf("输入的六位密码含有字母、数字、空格及其他字符等级验证为:高\n");
}
}
return 0;
}
- 题目三 :(30分)
- 题目描述: 神州租车公司为提升服务质量近期展开满意度调查活动,请输入近期租车6位顾客满意度进行相关运算
-
评分要求 :
-
-
正确定义一维数组 (3分)
-
循环输入6位顾客的满意度值(5分) 核心
-
将 6位用户的满意度按由小到大的顺序排序输出(5分) 核心
-
统计满意度个数,计算百分比并输出 (90分为合格) (4分) 核心
-
判断如果百分比值低于90%则显示信息“服务质量有待改进”,否则提示“保持现有服务质量水平” (3分)
-
代码关键处添加不少于5行的规范注释(5分)
-
-
答案
#include<stdio.h>
#include<string.h>
int main(int argc, const char *argv[])
{
int a[100]={0};
int i = 0;
//循环输入6位顾客的满意度
for(i=0 ; i<6 ; i++){
printf("请输入第%d位顾客的满意度:", i+1);
scanf("%d" , &a[i]);
printf("\n");
}
//把顾客满意度进行排序
for(i = 1; i<6;i++){
for(int j = 0;j<6-i;j++){
if(a[j] > a[j+1]){
a[j] = a[j]^a[j+1];
a[j+1] = a[j]^a[j+1];
a[j] = a[j]^a[j+1];
}
}
}
//输出顾客满意度并计数满意顾客数计算百分比
int n=0;
float b =0;
printf("本次满意度调查由低到高的分数值是:");
for(i=0; i<6 ;i++){
printf("%-6d", a[i]);
if(a[i]>=90)
n++;
}
b = (float)n/6*100;
//输出服务统计结果的提示
printf("\n 满意度为:%.2f%%" ,b);
if(b>=90){
printf("保持现有服务质量水平\n");
}else{
printf("服务质量有待改进\n");
}
return 0;
}
- 题目四 :(25分)
- 题目描述: 输入一批数,输出是3倍数的数值,计算3倍数中的最大值、最小值
- 评分要求
-
- 正确定义一维数组(2分)
- 提示并输入数组长度(2分)
- 循环输入数组元素的值(5分) 核心
- 循环判断并输出数组元素中是3倍数的元素(4分) 核心
- 循环查找数组元素中是3倍数的最小值,最大值并输出结果(4分) 核心
- 代码中添加不少于5行的关键注释描述程序实现思路(4分)
-
答案
#include<stdio.h>
#include<string.h>
int main(int argc, const char *argv[])
{
int i = 0;
//输入数组长度
int n ;
printf("请输入数组长度:");
scanf("%d" , &n);
//输入一批数
int m[n];
for(i=0 ; i<n ; i++){
scanf("%d",&m[i]);
}
//遍历寻找是3倍数的元素
int max=0 , min = 0;
printf("数组中是3倍数的元素包含:");
for(i= 0 ; i<n ;i++){
if(m[i]%3 == 0){
printf("%-8d" , m[i]);
if(max<m[i]);
max = m[i];
if(min>m[i]);
min = m[i];
}
}
printf("数组元素中3的最小倍数是%d 最大倍数是%d\n", min ,max);
return 0;
}
- 题目一:(30分)
- 题目描述:输入操作数及运算符完成数值的加、减、乘、除运算
- 评分要求
- 定义接收操作数及运算符的变量,名称要符合规范(2分)
- 提示并输入第一个操作数(2分)
- 提示并输入运算符[加减乘除用字母代表](2分)
- 提示并输入第二个操作数(2分)
- 采用多分支选择结构switch对输入的操作数进行判断,输入大小写字母都可以调用
- 对应的运算(3分) 核心
- 正常计算两数相加并输出结果(2分)核心
- 正常计算两数相减并输出结果(2分)核心
- 正常计算两数相乘并输出结果(2分)核心
- 正常计算两数相除并输出结果(2分)核心
- 如分母为0则输出提示信息“分母不能为零!”(2分)
- 核心语句需添加不少于5行的规范注释描述实现思路(4分)
答案
#include<stdio.h>
#include<string.h>
int main(int argc, const char *argv[])
{
//定义第一个操作数
double a ;
printf("请输入第一个操作数:");
scanf("%lf", &a);
//记录操作符
getchar();//吸收回车
char x;
printf("请输入运算符[加-P/p 减-S/s 乘 -M/m 除-D/d]:");
scanf("%c", &x);
//记录第二个操作数
double b ,c;
printf("请输入第二个操作数:");
scanf("%lf", &b);
//判断第二个操作数是否为0
if(b == 0){
printf("分母不能为零!\n");
}else{
switch(x){
case 'P': case 'p':x = '+';c = a + b; break;
case 'S': case 's':x = '-';c = a - b; break;
case 'M': case 'm':x = '*';c = a * b; break;
case 'D': case 'd':x = '/';c = a / b; break;
}
//输出计算结果
printf("运算结果\n%.2lf%c%.2lf=%.2lf\n", a , x , b ,c );
}
}
简单一个getchar()吸收了我一个回车和一个小时O- >..< -O