1.输入终值,输出所有能被7整除的数值及其和
题目要求:
(1).根据接收值准确定义变量类型(2分)
(2).提示并输入终值(2分)
(3).阅读题目确定循环要素:起始值、终值、步长(3分)
(4). 循环判断指定范围内能被7整除的数值并输出(5分) 核心
(5). 每5个换行输出(2分)
(6). 累计全部符合条件的数值和并输出(3分)
(7). 代码中添加不少于5行的关键注释描述实现思路(3分)
int main(int argc, const char *argv[])
{
printf("请输入终值:");
int num;
scanf("%d",&num);
int sum=0;
int count=0;
//从1到终值循环
for(int i=1;i<=num;i++)
{
//判断能否被7整除
if(i%7==0)
{
printf("%-8d ",i);
//统计输出数字的个数
count++;
//计算输出数字之和
sum+=i;
//每输出五个数换行
if(count%5==0)
printf("\n");
}
}
printf("\n");
printf("%d以内能被7整除的数值和为:%d\n",num,sum);
return 0;
}
运行结果:
2. 注册账号时需输入6位密码,根据密码组成验证其安全等级
int main(int argc, const char *argv[])
{
char arr[100];
//分别用于标记数字,字母,空格和特殊字符
int flag0=0,flag1=0,flag2=0,flag3=0;
//分别用于计算数字,字母,空格和特殊字符数量
int count1=0,count2=0,count3=0,count4=0;
while(1)
{
printf("请输入六位密码:");
//gets可以吸收输入的空格 scanf不可以
gets(arr);
for(int i=0;i<strlen(arr);i++)
{
//统计各项数据
if(arr[i]>='0'&&arr[i]<='9')
{
flag0=1;
count1++;
}
else if(arr[i]>='a'&&arr[i]<='z'||arr[i]>='A'&&arr[i]<='Z')
{
flag1=1;
count2++;
}
else if(arr[i]==' ')
{
flag2=1;
count3++;
}
else
{
flag3=1;
count4++;
}
}
printf("密码组成为:数字%d个,字母%d个,空格%d个,特殊字符%d个\n",count1,count2,count3,count4);
//将用于统计数量的数据重新初始化为0
count1=0,count2=0,count3=0,count4=0;
if(strlen(arr)==6){
//验证密码等级
if(flag0==1&&flag1==0&&flag2==0&&flag3==0)
{
printf("输入的六位密码等级验证为低\n");
}
if(flag0==1&&flag1==1&&flag2==0&&flag3==0)
{
printf("输入的六位密码中含有字母和数字 等级验证为中\n");
}
if(flag0==1&&flag1==1&&flag2==1&&flag3==0)
{
printf("输入的六位密码中含有字母和数字和空格 等级验证为较高\n");
}
if(flag0==1&&flag1==1&&flag2==1&&flag3==1)
{
printf("输入的六位密码中含有字母,数字,空格和特殊字符 等级验证为高\n");
}
}
else
{
printf("密码长度不符合要求\n");
}
}
return 0;
}
运行结果:
3. 神州租车公司为提升服务质量近期展开满意度调查活动,请输入近期租车6位顾客满意度进行相关运算
评分要求 :
正确定义一维数组 (3分)
循环输入6位顾客的满意度值(5分) 核心
将 6位用户的满意度按由小到大的顺序排序输出(5分) 核心
统计满意度个数,计算百分比并输出 (90分为合格) (4分) 核心
判断如果百分比值低于90%则显示信息“服务质量有待改进”,否则提示“保持现有服务质量水平” (3分)
代码关键处添加不少于5行的规范注释(5分)
int main(int argc, const char *argv[])
{
int arr[6];
for(int i=0;i<6;i++)
{ //输入六个满意度
printf("请输入%d位顾客的满意度:",i+1);
scanf("%d",&arr[i]);
if(arr[i]>100||arr[i]<0)
{
printf("输入有误请重新输入\n");
break;
}
}
//简单选择排序
for(int i=0;i<6-1;i++)
{
int index=i;
for(int j=i+1;j<6;j++)
{ //将输入数据从小到大排序
if(arr[j]<arr[index])
{
index=j;
}
}
//当下标发生改变时,交换数值
if(index!=i)
{
int temp=arr[index];
arr[index]=arr[i];
arr[i]=temp;
}
}
printf("本次满意度调查由低到高的分数值为:");
for(int i=0;i<6;i++)
{
printf("%-5d",arr[i]);
}
printf("\n");
//统计评分超过90的数量
int count=0;
for(int i=0;i<6;i++)
{
if(arr[i]>=90)
{
count++;
}
}
//计算满意率
float m=count/6.0;
printf("\t满意度为%.2f%%\n",m*100);
if(m>=0.9)
{
printf("保持现有服务质量水平\n");
}
else
printf("服务质量有待改进\n");
return 0;
运行结果:
4.题目描述: 输入一批数,输出是3倍数的数值,计算3倍数中的最大值、最小值
评分要求
(1).正确定义一维数组(2分)
(2).提示并输入数组长度(2分)
(3).循环输入数组元素的值(5分) 核心
(4).循环判断并输出数组元素中是3倍数的元素(4分) 核心
(5).循环查找数组元素中是3倍数的最小值,最大值并输出结果(4分) 核心
(6).代码中添加不少于5行的关键注释描述程序实现思路(4分)
int main(int argc, const char *argv[])
{
int n;
printf("请输入数组长度:");
scanf("%d",&n);
int arr[n];
printf("请依次输入数组元素值");
for(int i=0;i<n;i++)
{
scanf("%d",&arr[i]);
}
printf("数组中是三的倍数的元素有:");
//计算数组中3倍数的个数
int count=0;
int brr[n];
for(int i=0;i<n;i++)
{ //找出数组中三的倍数
if(arr[i]%3==0)
{
printf("%d\t",arr[i]);
//将三的倍数赋值给brr数组
brr[count]=arr[i];
count++;
}
}
printf("\n");
//将brr数组第一个元素赋值给max和min
int max=brr[0];
int min=brr[0];
//循环找出最大值和最小值
for(int i=1;i<count;i++)
{
if(brr[i]>max)
{
max=brr[i];
}
if(brr[i]<min)
{
min=brr[i];
}
}
printf("数组元素中3倍数最小值为:%d\t",min);
printf("最大值为:%d\n",max);
return 0;
}
运行结果:
5.题目描述:输入操作数及运算符完成数值的加、减、乘、除运算
(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分)
int main(int argc, const char *argv[])
{
float a;
printf("请输入第一个操作数:");
scanf("%f",&a);
//吸收输入的回车字符
getchar();
char ch;
printf("请输入运算符[加-P/p 减-S/s 乘-M/m 除-D/d]:");
scanf("%c",&ch);
getchar();
float b;
printf("请输入第二个操作数:");
scanf("%f",&b);
getchar();
//运算符判断进行何种运算
switch(ch)
{
//加法运算
case 'P':
case 'p': printf("%.2f+%.2f=%.2lf\n",a,b,a+b); break;
//减法运算
case 's':
case 'S': printf("%.2f-%.2f=%.2lf\n",a,b,a-b); break;
//乘法运算
case 'm':
case 'M': printf("%.2f*%.2f=%.2lf\n",a,b,a*b); break;
//除法运算,判断b是否为零
case 'd':
case 'D': b==0?printf("分母不能为零\n"):printf("%.2f/%.2f=%.2lf\n",a,b,a/b);
}
return 0;
}
运行结果: