哈工大c语言程序设计精髓mooc慕课612周编程题答案Word文档格式.docx
- 文档编号:20789597
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:18
- 大小:19.06KB
哈工大c语言程序设计精髓mooc慕课612周编程题答案Word文档格式.docx
《哈工大c语言程序设计精髓mooc慕课612周编程题答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《哈工大c语言程序设计精髓mooc慕课612周编程题答案Word文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
else
flag=1;
break;
s=atoi(score);
if(s<
0||s>
100||flag==1)
Inputerror!
else{
if(s>
=90)
grade='
A'
;
elseif(s>
=80)
B'
=70)
C'
=60)
D'
E'
grade:
%c\n"
grade);
return0;
}"
intn,a,i,j;
doublep=0,q=0;
Inputa,n:
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;
sum=%.0f\n"
q);
/*
n块砖(27<
n<
=77),36人搬,男搬4,女搬3,两个小孩抬一块砖,要求一次搬完,问男人、女人和小孩各需多少人请用穷举法编程求解,n的值要求从键盘输入。
输出结果按照男人数量升序给出(见下面示例3)。
程序的运行结果示例1:
Inputn(27<
=77):
28↙
men=0,women=4,children=32
程序的运行结果示例2:
36↙
men=3,women=3,children=30
程序的运行结果示例3:
60↙
men=2,women=14,children=20
men=7,women=7,children=22
men=12,women=0,children=24
输入提示:
输入格式:
%d"
输出格式:
men=%d,women=%d,children=%d\n"
#include"
main()
longn,i,t,s=0;
&
inta,b,c;
for(a=0;
4*a<
=n;
a++)
for(b=0;
4*a+3*b<
b++)
for(c=0;
4*a+3*b+c/2<
c+=2)
if(4*a+3*b+c/2==n&
c%2==0&
a+b+c==36)
a,b,c);
{intyear,month,day;
printf("
Inputyear,month:
scanf("
year,&
month);
switch(month)
case1:
day=31;
break;
case2:
day=28;
case3:
case4:
day=30;
case5:
case6:
case7:
case8:
case9:
case10:
case11:
case12:
default:
day=-1;
}
if((year%4==0&
year%100!
=0||year%400==0)&
month==2)day=29;
if(day!
=-1)
%ddays\n"
day);
return0;
unsignedintComputeAge(unsignedintn){
inti,j,k,s=23,n,c,age;
Theperson'
sageis%u\n"
8+2*n);
intgys(inta,intb)
intr;
r=a%b;
if(r==0)returnb;
elsereturngys(b,r);
Inputa,b:
inta,b;
b);
if(a<
=0||b<
=0){
%d\n"
gys(a,b));
intmedian(inta,intb,intc)
if(a<
b)
if(b<
c){returnb;
else{returna<
cc:
a;
}程序运行结果示例1:
Inputn:
28212
Repeateddigit!
程序运行结果示例2:
12345↙
Norepeateddigit!
%ld"
有重复数字,输出信息:
没有重复数字,输出信息:
intlog[10]={0},a[100];
intb,i=0,n,c,d;
while(n!
=0)
b=n%10;
n/=10;
a[i]=b;
i++;
a[i]=n;
intflag=0;
for(c=0;
c<
c++)
for(d=c+1;
d<
d++)
if(a[c]==a[d])
flag=1;
str[i]!
=str[i+1],则计数器重新初始化为1。
遍历结束时,函数返回max的值。
程序运行结果示例1:
Inputastring:
55↙
5:
5
sgf222257↙
2:
4
输入提示信息:
用gets()输入字符串
%c:
chara[80];
intb,i,j,t=1,tl,num=0;
gets(a);
for(i=0;
strlen(a);
i++){
t=1;
for(j=i+1;
j++){
if(a[j]==a[i]){
t++;
if(i==0){
tl=t;
else{
if(t>
tl){
num=i;
a[num],tl);
从键盘输入一串字符(假设字符数少于8个),以回车表示输入结束,编程将其中的数字部分转换为整型数并以整型的形式输出。
函数原型为intMyatoi(charstr[]);
其中,形参数组str[]对应用户输入的字符串,函数返回值为转换后的整型数。
解题思路的关键是:
1)判断字符串中的字符是否是数字字符;
2)如何将数字字符转换为其对应的数字值;
3)如何将每一个转换后的数字值加起来形成一个整型数。
7hg09y↙
709
9w2k7m0↙
9270
程序运行结果示例3:
happy↙
%7s"
intMyatoi(charstr[]){
inti,j;
for(i=0,j=0;
str[i]!
='
\0'
if(str[i]>
str[i]<
){
str[j]=str[i];
j++;
str[j]='
returnatoi(str);
chars[7];
s);
Myatoi(s));
/*输入n个整数(n从键盘输入,假设n的值不超过100),按奇偶数分成两组并输出。
输出两行,第一行为所有奇数,第二行为所有偶数,保持数据的相对顺序与输入顺序相同。
函数原型如下所示:
voidSeperate(inta[],intn);
ame);
Inputfinalscore:
stu[i].finalScore);
Inputclassscore:
stu[i].classScore);
getchar();
Classcadreornot(Y/N):
%c"
stu[i].work);
StudentsfromtheWestornot(Y/N):
stu[i].west);
Inputthenumberofpublishedpapers:
stu[i].paper);
stu[i].scholarship=0;
if(stu[i].finalScore>
80&
stu[i].paper>
=1)stu[i].scholarship+=8000;
85&
stu[i].classScore>
80)stu[i].scholarship+=4000;
90)stu[i].scholarship+=2000;
stu[i].west=='
Y'
)stu[i].scholarship+=1000;
if(stu[i].classScore>
80&
stu[i].work=='
)stu[i].scholarship+=850;
name:
%s,scholarship:
stu[i].name,stu[i].scholarship);
intts=stu[0].scholarship,k;
for(i=1;
n;
if(ts<
stu[i].scholarship){
k=i;
%sgetthehighestscholarship%d\n"
stu[k].name,stu[k].scholarship);
/*
1)院士奖学金:
期末平均成绩高于80分(>
80),并且在本学期内发表1篇或1篇以上论文的学生每人均可获得8000元;
2)五四奖学金:
期末平均成绩高于85分(>
85),并且班级评议成绩高于80分(>
80)的学生每人均可获得4000元;
3)成绩优秀奖:
期末平均成绩高于90分(>
90)的学生每人均可获得2000元;
4)西部奖学金:
85)的西部省份学生每人均可获得1000元;
5)班级贡献奖:
班级评议成绩高于80分(>
80)的学生干部每人均可获得850元;
*/
请编写一个简单的23根火柴游戏程序,实现人跟计算机玩这个游戏的程序。
为了方便程序自动评测,假设计算机移动的火柴数不是随机的,而是将剩余的火柴根数对3求余后再加1来作为计算机每次取走的火柴数。
如果计算机打算移走的火柴数等于剩下的火柴数,则将计算机打算移走的火柴数减1。
但是计算机不可以不取,剩下的火柴数为1时,必须取走1根火柴。
假设游戏规则如下:
1)游戏者开始拥有23根火柴棒;
2)每个游戏者轮流移走1根、2根或3根火柴;
3)谁取走最后一根火柴为失败者。
Gamestart!
Note:
themaximumnumberis3
Pleaseenterthenumberofmatchesyouaremoving:
5↙
Thenumberyouenterediswrong,pleasere-enter!
3↙
Thenumberofmatchesyouaremovingis:
3
Thenumberofmatchesleftis:
20
Thenumberofmatchesthathavebeenmovedbythecomputeris:
17
1↙
1
16
2
14
2↙
12
11
8
Congratulations!
Youwon!
游戏开始提示信息:
themaximumnumberis3\n"
提示游戏者输入移动的火柴数:
游戏者输入错误数据的提示信息:
输出被游戏者移动的火柴数:
输出被计算机移动的火柴数:
输出被游戏者或计算机移动后剩余的火柴数:
游戏者获胜的输出提示信息:
游戏者失败的输出提示信息:
I'
msorry.Youlost!
\nNote:
inti,j,k,s=23,n,c;
if(n<
=3&
n>
=1&
n<
=s){
;
s-=n;
%d\nThenumberofmatchesleftis:
n,s);
0)
if(s==3)
c=2;
elseif(s==2){
c=1;
elseif(s==1){
c=s%3+1;
s-=c;
c,s);
if(s==0){
elseif(s==0){
题目内容:
请输入星期几的第一个字母(不区分大小写)来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母(小写),否则输出“dataerror”。
pleaseinputthefirstletterofsomeday:
S↙
pleaseinputsecondletter:
u↙
sunday
F↙
friday
h↙
dataer
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 哈工大 语言程序设计 精髓 mooc 慕课 612 编程 答案