中国大学MOOC 哈工大 C语言程序设计精髓第六周编程题答案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
case8: day=31;break;
case9: day=30;break;
case10: day=31;break;
case11: day=30;break;
case12: day=31;break;
default:day=-1;printf("Input error!\n");
}
if((year%4==0&&year%100!=0||year%400==0)&&month==2) day=29;
}
else if (s >= 70)
{
grade = 'C';
}
else if (s >= 60)
{
grade = 'D';
}
else
{
grade = 'E';
}
printf("grade: %c\n", grade);
return 0;
}
6.2编程计算a+aa+aaa+…+aa…a(n个a)的值(4分)
switch(month)
{
case1: day=31;break;
case2: day=28;break;
case3: day=31;break;
case4: day=30;break;
case5: day=31;break;
case6: day=30;break;
case7: day=31;break;
if(day!=-1)
printf("%d days\n",day);
return0;
}
#include "stdio.h"
main()
{
int a, b, c;
long n, i, t, s = 0;
printf("Input n(27<n<=77):\n");
scanf("%d", &n);
for (a = 0; 4 * a <= n; a++)
for (b = 0; 4 * a + 3 * b <= n; b++)
{
printf("Input error!\n");
printf("Please input score:\n");
continue;
}
else{
break;
}
}
s = atoi(score);
if (s >= 90)
{
grade = 'A';
}
else if (s >= 80)
{
grade = 'B';
for (c = 0; 4 * a + 3 * b + c / 2 <= n; c += 2)
if (4 * a + 3 * b + c / 2 == n && c%2 == 0 && a+b+c==36)
{
printf("men=%d,women=%d,children=%d\n", a, b, c);
#include<stdio.h>
#include <string.h>
int main()
{
char score[100];
int flag = 0, i, s;
char grade;
printf("Please input score:\n");
while (1)
{
flag=0;
scanf("%s", scorቤተ መጻሕፍቲ ባይዱ);
6.1下面代码的功能是将百分制成绩转换为5分制成绩,具体功能是:如果用户输入的是非法字符或者不在合理区间内的数据(例如输入的是a,或者102,或-45等),则程序输出Input error!,并允许用户重新输入,直到输入合法数据为止,并将其转换为5分制输出。目前程序存在错误,请将其修改正确。并按照下面给出的运行示例检查程序。
for (i = 0; i < strlen(score); i++)
{
if (score[i] >= '0' && score[i] <= '9')
{
continue;
}
else
{
flag = 1;
break;
}
}
s = atoi(score);
if (s < 0 || s > 100 || flag == 1)
scanf("%d,%d",&a,&n);
for(i=1;i<=n;i++)
{
for(j=0,p=0;j<i;j++)
{
p=p+a*pow(10,j);
}
q=p+q;
}
printf("sum=%.0f\n",q);
return0;
}
6.3
搬砖问题(4分)
题目内容:
n块砖(27<n<=77),36人搬,男搬4,女搬3,两个小孩抬一块砖,要求一次搬完,问男人、女人和小孩各需多少人?请用穷举法编程求解,n的值要求从键盘输入。输出结果按照男人数量升序给出(见下面示例3)。
}
}
6.4
编程输出某年某月有多少天(考虑到闰年)。(5分)
题目内容:
从键盘输入一个年份和月份,输出该月有多少天(考虑闰年),用switch语句编程。
#include<stdio.h>
intmain()
{intyear,month,day;
printf("Input year,month:\n");
scanf("%d,%d",&year,&month);
题目内容:
编程计算a+aa+aaa+…+aa…a(n个a)的值,n和a的值由键盘输入。例如,当n=4,a=2,表示计算2+22+222+2222的值。
#include<stdio.h>
#include<math.h>
intmain()
{
intn,a,i,j;
doublep=0,q=0;
printf("Input a,n:\n");
case9: day=30;break;
case10: day=31;break;
case11: day=30;break;
case12: day=31;break;
default:day=-1;printf("Input error!\n");
}
if((year%4==0&&year%100!=0||year%400==0)&&month==2) day=29;
}
else if (s >= 70)
{
grade = 'C';
}
else if (s >= 60)
{
grade = 'D';
}
else
{
grade = 'E';
}
printf("grade: %c\n", grade);
return 0;
}
6.2编程计算a+aa+aaa+…+aa…a(n个a)的值(4分)
switch(month)
{
case1: day=31;break;
case2: day=28;break;
case3: day=31;break;
case4: day=30;break;
case5: day=31;break;
case6: day=30;break;
case7: day=31;break;
if(day!=-1)
printf("%d days\n",day);
return0;
}
#include "stdio.h"
main()
{
int a, b, c;
long n, i, t, s = 0;
printf("Input n(27<n<=77):\n");
scanf("%d", &n);
for (a = 0; 4 * a <= n; a++)
for (b = 0; 4 * a + 3 * b <= n; b++)
{
printf("Input error!\n");
printf("Please input score:\n");
continue;
}
else{
break;
}
}
s = atoi(score);
if (s >= 90)
{
grade = 'A';
}
else if (s >= 80)
{
grade = 'B';
for (c = 0; 4 * a + 3 * b + c / 2 <= n; c += 2)
if (4 * a + 3 * b + c / 2 == n && c%2 == 0 && a+b+c==36)
{
printf("men=%d,women=%d,children=%d\n", a, b, c);
#include<stdio.h>
#include <string.h>
int main()
{
char score[100];
int flag = 0, i, s;
char grade;
printf("Please input score:\n");
while (1)
{
flag=0;
scanf("%s", scorቤተ መጻሕፍቲ ባይዱ);
6.1下面代码的功能是将百分制成绩转换为5分制成绩,具体功能是:如果用户输入的是非法字符或者不在合理区间内的数据(例如输入的是a,或者102,或-45等),则程序输出Input error!,并允许用户重新输入,直到输入合法数据为止,并将其转换为5分制输出。目前程序存在错误,请将其修改正确。并按照下面给出的运行示例检查程序。
for (i = 0; i < strlen(score); i++)
{
if (score[i] >= '0' && score[i] <= '9')
{
continue;
}
else
{
flag = 1;
break;
}
}
s = atoi(score);
if (s < 0 || s > 100 || flag == 1)
scanf("%d,%d",&a,&n);
for(i=1;i<=n;i++)
{
for(j=0,p=0;j<i;j++)
{
p=p+a*pow(10,j);
}
q=p+q;
}
printf("sum=%.0f\n",q);
return0;
}
6.3
搬砖问题(4分)
题目内容:
n块砖(27<n<=77),36人搬,男搬4,女搬3,两个小孩抬一块砖,要求一次搬完,问男人、女人和小孩各需多少人?请用穷举法编程求解,n的值要求从键盘输入。输出结果按照男人数量升序给出(见下面示例3)。
}
}
6.4
编程输出某年某月有多少天(考虑到闰年)。(5分)
题目内容:
从键盘输入一个年份和月份,输出该月有多少天(考虑闰年),用switch语句编程。
#include<stdio.h>
intmain()
{intyear,month,day;
printf("Input year,month:\n");
scanf("%d,%d",&year,&month);
题目内容:
编程计算a+aa+aaa+…+aa…a(n个a)的值,n和a的值由键盘输入。例如,当n=4,a=2,表示计算2+22+222+2222的值。
#include<stdio.h>
#include<math.h>
intmain()
{
intn,a,i,j;
doublep=0,q=0;
printf("Input a,n:\n");