哈工大 C语言程序设计精髓 MOOC慕课 612周编程题答案Word下载.docx

上传人:b****6 文档编号:21605279 上传时间:2023-01-31 格式:DOCX 页数:18 大小:19.08KB
下载 相关 举报
哈工大 C语言程序设计精髓 MOOC慕课 612周编程题答案Word下载.docx_第1页
第1页 / 共18页
哈工大 C语言程序设计精髓 MOOC慕课 612周编程题答案Word下载.docx_第2页
第2页 / 共18页
哈工大 C语言程序设计精髓 MOOC慕课 612周编程题答案Word下载.docx_第3页
第3页 / 共18页
哈工大 C语言程序设计精髓 MOOC慕课 612周编程题答案Word下载.docx_第4页
第4页 / 共18页
哈工大 C语言程序设计精髓 MOOC慕课 612周编程题答案Word下载.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

哈工大 C语言程序设计精髓 MOOC慕课 612周编程题答案Word下载.docx

《哈工大 C语言程序设计精髓 MOOC慕课 612周编程题答案Word下载.docx》由会员分享,可在线阅读,更多相关《哈工大 C语言程序设计精髓 MOOC慕课 612周编程题答案Word下载.docx(18页珍藏版)》请在冰豆网上搜索。

哈工大 C语言程序设计精髓 MOOC慕课 612周编程题答案Word下载.docx

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<

c?

c:

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?

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↙

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1