C语言程序设计上mooc答案.docx

上传人:b****4 文档编号:24598051 上传时间:2023-05-29 格式:DOCX 页数:60 大小:38.45KB
下载 相关 举报
C语言程序设计上mooc答案.docx_第1页
第1页 / 共60页
C语言程序设计上mooc答案.docx_第2页
第2页 / 共60页
C语言程序设计上mooc答案.docx_第3页
第3页 / 共60页
C语言程序设计上mooc答案.docx_第4页
第4页 / 共60页
C语言程序设计上mooc答案.docx_第5页
第5页 / 共60页
点击查看更多>>
下载资源
资源描述

C语言程序设计上mooc答案.docx

《C语言程序设计上mooc答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计上mooc答案.docx(60页珍藏版)》请在冰豆网上搜索。

C语言程序设计上mooc答案.docx

C语言程序设计上mooc答案

第一周作业

【练习1】HelloWorld

成绩

0

开启时间

2014年10月21日星期二08:

00

折扣

折扣时间

2014年12月7日星期日23:

55

允许迟交

关闭时间

2014年12月7日星期日23:

55

让我们学习用C语言向世界问好。

“HelloWorld”示例程序最早出现于1972年,由贝尔实验室成员BrianKernighan撰写的内部技术文件《IntroductiontotheLanguageB》之中。

不久同作者于1974年所撰写的《ProgramminginC:

ATutorial》,也延用这个示例。

一般来说,这是每一种计算机编程语言中最基本、最简单的程序,亦通常是初学者所编写的第一个程序。

它还可以用来确定该语言的编译器、程序开发环境,以及运行环境是否已经安装妥当。

将“HelloWorld”作为第一个示范程序,已经成为编程语言学习的传统。

我们在这里继续传统,这也是一种向前辈们致敬的方式之一吧!

最早的程序基本是这个样子的:

#include<>

intmain()

{

printf("Helloworld.\n");

return0;

}

请模仿上面的程序,看看是否可以通过编译如果你能通过这个简单的程序,那就让我们继续完成后面的习题吧。

第二周作业

【练习2】学学scanf和printf的用法吧

成绩

0

开启时间

2014年10月21日星期二08:

00

折扣

折扣时间

2014年12月7日星期日23:

55

允许迟交

关闭时间

2014年12月7日星期日23:

55

该如何处理double型的数据:

如何定义变量类型如何使用scanf函数

如果已知圆柱的底面半径r,以及高h,则可计算出圆柱的侧面积s=2πrh,体积v=πr2h。

其中π=。

输入:

第一行输入圆柱的底面半径r

第二行输入圆柱的高h

输出:

s=<圆柱的侧面积>,v=<圆柱的体积>

要求

1.所有变量都定义为双精度类型

2.结果精确到小数点后两位。

作为练习题目:

我们已经给您编写好了大部分的代码,请您自己修改几个地方,完成程序的剩余部分。

**********************************************分隔线************

#include<>

#definePAI

intmain()

{

intr,h;

doubles,v;

scanf("%d%d",);

s=2*PAI*r*h;

v=PAI*r*r*h;

printf("s=%.2f,v=\n",s,);

return0;

}

**********************************************分隔线************

Code:

#include<>

#definePAI

intmain()

{

intr,h;

doubles,v;

scanf("%d%d",&r,&h);

s=2*PAI*r*h;

v=PAI*r*r*h;

printf("s=%.2f,v=%.2f\n",s,v);

return0;

}

第三周作业

1、输出字符的ASCII码

成绩

10

开启时间

2014年10月21日星期二10:

00

折扣

折扣时间

2014年11月5日星期三23:

55

允许迟交

关闭时间

2014年11月12日星期三23:

55

背景:

我们在计算机基础中已经学过:

字母在计算机中采用ASCII码进行存储。

下面要从键盘上输入任意一个字符,然后输出该字符对应的ASCII码。

输入:

一个字符

输出:

该字符对应的ASCII码

测试输入

期待的输出

时间限制

内存限制

额外进程

测试用例1

以文本方式显示

1.A

以文本方式显示

1.TheASCIIofcharacter'A'is65.

1秒

64M

0

测试用例2

以文本方式显示

1.Z

以文本方式显示

1.TheASCIIofcharacter'Z'is90.

1秒

64M

0

测试用例3

以文本方式显示

1.0

以文本方式显示

1.TheASCIIofcharacter'0'is48.

1秒

64M

0

测试用例4

以文本方式显示

1.1

以文本方式显示

1.TheASCIIofcharacter'1'is49.

1秒

64M

0

测试用例5

以文本方式显示

1.+

以文本方式显示

1.TheASCIIofcharacter'+'is43.

1秒

64M

0

Code:

#include<>

intmain()

{

charch;

scanf("%c",&ch);

printf("TheASCIIofcharacter'%c'is%d.",ch,ch);

return0;

}

2、一年级的算术题

成绩

10

开启时间

2014年10月21日星期二10:

00

折扣

折扣时间

2014年11月5日星期三23:

55

允许迟交

关闭时间

2014年11月12日星期三23:

55

背景:

小明上小学一年级了,老师已经教会了他们进行整数的+、-、*、/、%计算,下面老师开始出题,给出一个简单的算术表达式,请小明给出计算结果。

输入:

接受两个整数,每个整数之间使用空格分隔。

例如输入格式为:

123444

输出:

分别输出按照整型数据进行+、-、*、/、*之后的运行结果。

测试输入

期待的输出

时间限制

内存限制

额外进程

测试用例1

以文本方式显示

1.103

以文本方式显示

1.10+3=13

2.10-3=7

3.10*3=30

4.10/3=3

5.10%3=1

1秒

64M

0

测试用例2

以文本方式显示

1.11-3

以文本方式显示

1.11+-3=8

2.11--3=14

3.11*-3=-33

4.11/-3=-3

5.11%-3=2

1秒

64M

0

Code

#include<>

intmain()

{

inta,b;

charch=37;

scanf("%d%d",&a,&b);

printf("%d+%d=%d\n",a,b,a+b);

printf("%d-%d=%d\n",a,b,a-b);

printf("%d*%d=%d\n",a,b,a*b);

printf("%d/%d=%d\n",a,b,a/b);

printf("%d%c%d=%d\n",a,ch,b,a%b);

return0;

}

3、判断三角形的形状

成绩

10

开启时间

2014年10月21日星期二10:

00

折扣

折扣时间

2014年11月5日星期三23:

55

允许迟交

关闭时间

2014年11月12日星期三23:

55

要求

输入三角型的三条边,判断三角形的形状。

假设输入的三边边长均>0。

输入:

三角型的3条边的长度(int型)。

输出:

等边三角形:

equilateraltriangle

等腰三角形:

isocelestriangle

不构成三角形:

non-triangle

一般三角形:

triangle

测试输入

期待的输出

时间限制

内存限制

额外进程

测试用例1

以文本方式显示

1.222

以文本方式显示

1.equilateraltriangle.

1秒

64M

0

测试用例2

以文本方式显示

1.322

以文本方式显示

1.isocelestriangle.

1秒

64M

0

测试用例3

以文本方式显示

1.131

以文本方式显示

1.non-triangle.

1秒

64M

0

测试用例4

以文本方式显示

1.345

以文本方式显示

1.triangle.

1秒

64M

0

测试用例5

以文本方式显示

1.232

以文本方式显示

1.isocelestriangle.

1秒

64M

0

测试用例6

以文本方式显示

1.223

以文本方式显示

1.isocelestriangle.

1秒

64M

0

测试用例7

以文本方式显示

1.311

以文本方式显示

1.non-triangle.

1秒

64M

0

测试用例8

以文本方式显示

1.113

以文本方式显示

1.non-triangle.

1秒

64M

0

测试用例9

以文本方式显示

1.543

以文本方式显示

1.triangle.

1秒

64M

0

测试用例10

以文本方式显示

1.453

以文本方式显示

1.triangle.

1秒

64M

0

Code

#include<>

intmain()

{

inta,b,c;

scanf("%d%d%d",&a,&b,&c);

if(a+b>c&&a+c>b&&b+c>a)

{

if(a==b&&a==c&&b==c)

{

printf("equilateraltriangle.\n");

return0;

}

if(a==b||a==c||b==c)

{

printf("isocelestriangle.\n");

return0;

}

printf("triangle.\n");

}

else

{

printf("non-triangle.\n");

}

return0;

}

第四周作业

1.【中学】计算时钟的夹角

成绩

10

开启时间

2014年10月28日星期二08:

25

折扣

折扣时间

2014年11月12日星期三08:

25

允许迟交

关闭时间

2014年11月19日星期三08:

25

背景:

钟面上的时针和分针之间的夹角总是在0~180之间(包括0和180)。

举例来说,在十二点的时候两针之间的夹角为0,而在六点的时候夹角为180,在三点的时候为90。

本题要解决的是计算12:

00到11:

59之间任意一个时间的夹角。

输入:

每组测试数据包含两个数字:

第一个数字代表小时(大于0小于等于12),第二个数字代表分(在区间[0,59]上)。

输出:

对应每组测试数据,用常用格式显示时间以及这个时候时针和分针间的最小夹角,精确到小数点后一位。

输出格式如下所示。

再看一看,想一想:

是否可以不用if语句,只使用printf函数来简化你的程序

测试输入

期待的输出

时间限制

内存限制

额外进程

测试用例1

以文本方式显示

1.120

以文本方式显示

1.At12:

00theangleisdegrees.

1秒

64M

0

测试用例2

以文本方式显示

1.1230

以文本方式显示

1.At12:

30theangleisdegrees.

1秒

64M

0

测试用例3

以文本方式显示

1.60

以文本方式显示

1.At6:

00theangleisdegrees.

1秒

64M

0

测试用例4

以文本方式显示

1.30

以文本方式显示

1.At3:

00theangleisdegrees.

1秒

64M

0

测试用例5

以文本方式显示

1.33

以文本方式显示

1.At3:

03theangleisdegrees.

1秒

64M

0

测试用例6

以文本方式显示

1.39

以文本方式显示

1.At3:

09theangleisdegrees.

1秒

64M

0

测试用例7

以文本方式显示

1.40

以文本方式显示

1.At4:

00theangleisdegrees.

1秒

64M

0

测试用例8

以文本方式显示

1.559

以文本方式显示

1.At5:

59theangleisdegrees.

1秒

64M

0

测试用例9

以文本方式显示

1.420

以文本方式显示

1.At4:

20theangleisdegrees.

1秒

64M

0

测试用例10

以文本方式显示

1.00

以文本方式显示

1.At0:

00theangleisdegrees.

1秒

64M

0

oCode

#include<>

intmain()

{

inthour,minute,temp;

floatangle,h_angle,m_angle;

scanf("%d%d",&hour,&minute);

temp=hour;

if(hour==12)temp=0;

h_angle=temp*+minute*;

m_angle=minute*;

angle=h_angle>m_angleh_angle-m_angle:

m_angle-h_angle;

if(angle>angle=-angle;

printf("At%d:

%02dtheangleis%.1fdegrees.\n",hour,minute,angle);

return0;

}

2.【日期】确定母亲节

成绩

10

开启时间

2014年10月28日星期二10:

35

折扣

折扣时间

2014年11月12日星期三10:

35

允许迟交

关闭时间

2014年11月19日星期三10:

35

母亲节是每年的五月第二个星期天,针对输入的年份,计算该年的哪一天是母亲节。

输入:

年份

输出:

日期(5月的哪一天)

测试输入

期待的输出

时间限制

内存限制

额外进程

测试用例1

以文本方式显示

1.2014

以文本方式显示

1.11

1秒

64M

0

测试用例2

以文本方式显示

1.2015

以文本方式显示

1.10

1秒

64M

0

测试用例3

以文本方式显示

1.2012

以文本方式显示

1.13

1秒

64M

0

Code:

#include<>

intmain()

{

intyear,n,week,total,day;

scanf("%d",&year);

if((year%4==0&&year%100!

=0)||year%400==0)

{

week=(year+year/4+year/400-year/100-1)%7;

for(n=0;n<5;n++)

{

if(n==0)total=0;

if(n==1||n==3)total+=31;

if(n==2)total+=29;

if(n==4)total+=30;

}

}

else

{

week=(year+year/4+year/400-year/100)%7;

for(n=0;n<5;n++)

{

if(n==0)total=0;

if(n==1||n==3)total+=31;

if(n==2)total+=28;

if(n==4)total+=30;

}

}

week=(week+total)%7;

if(week==0)week=7;

day=7-week+8;

printf("%d\n",day);

return0;

}

3.【日期】计算星期

成绩

10

开启时间

2014年10月28日星期二10:

40

折扣

折扣时间

2014年11月12日星期三10:

40

允许迟交

关闭时间

2014年11月19日星期三10:

40

给出任意一个年月日(年>1900),现在我们不能只是直接计算,要先判断给出的日期是否合法,对于非法的日期要给出错误提示信息,合法的日期要再计算是星期几。

输入:

年月日

输出:

0~6。

星期日用0表示,星期一用1表示,星期二用2表示......星期六用6表示。

假设年份大于1900。

先想一想:

我们现在只会使用if语句,该如何建立数学模型

测试输入

期待的输出

时间限制

内存限制

额外进程

测试用例1

以文本方式显示

1.2013311

以文本方式显示

1.1

1秒

64M

0

测试用例2

以文本方式显示

1.20131315

以文本方式显示

1.monthiserror.

1秒

64M

0

测试用例3

以文本方式显示

1.2013332

以文本方式显示

1.dayiserror.

1秒

64M

0

Code:

#include<>

intmain()

{

intyear,month,day,n,week,total;

scanf("%d%d%d",&year,&month,&day);

if(year<=1900){

printf("yeariserror.\n");

return0;

}

if(month>=13||month<1){

printf("monthiserror.\n");

return0;

}

if(day<0){

printf("dayiserror.\n");

return0;

}

switch(month){

case1:

case3:

case5:

case7:

case8:

case10:

case12:

if(day>31)

{printf("dayiserror.\n");return0;}

break;

case4:

case6:

case9:

case11:

if(day>30)

{printf("dayiserror.\n");return0;}

break;

case2:

if((year%4==0&&year%100!

=0)||year%400==0)

{

if(day>29){printf("dayiserror.\n");return0;}

}

else

{

if(day>28){printf("dayiserror.\n");return0;}

}

break;

}

if((year%4==0&&year%100!

=0)||year%400==0)

{

week=(year+year/4+year/400-year/100-1)%7;

for(n=0;n

{

if(n==0)total=0;

if(n==1||n==3||n==5||n==7||n==8||n==10)total+=31;

if(n==2)total+=29;

if(n==4||n==6||n==9||n==11)total+=30;

}

}

else

{

week=(year+year/4+year/400-year/100)%7;

for(n=0;n

{

if(n==0)total=0;

if(n==1||n==3||n==5||n==7||n==8||n==10)total+=31;

if(n==2)total+=28;

if(n==4||n==6||n==9||n==11)total+=30;

}

}

week=(week+total+day-1)%7;

printf("%d\n",week);

return0;

}

4.【中学】求最后3位数值(选做)

成绩

0

开启时间

2014年10月28日星期二10:

45

折扣

折扣时间

2014年11月12日星期三10:

45

允许迟交

关闭时间

2014年11月19日星期三10:

45

小明在中学会求一个数的n次方了,但计算机还不会,请你来编写一个程序吧。

由于计算机比较“笨”,所以我们编写程序的功能不用太强,只要能算出a的n次方的最后3位数就可以了。

输入:

a和n的值。

假设a<=150。

输出:

求a的n次方的最后3位数。

提示:

再想一想,你的方法对吗你用的是什么数据类型

测试输入

期待的输出

时间限制

内存限制

额外进程

测试用例1

以文本方式显示

1.100

以文本方式显示

1.Thelast3numbersis1.

1秒

64M

0

测试用例2

以文本方式显示

1.28

以文本方式显示

1.Thelast3numbersis256.

1秒

64M

0

测试用例3

以文本方式显示

1.10010

以文本方式显示

1.Thelast3numbersis000.

1秒

64M

0

oCode:

#include<>

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

当前位置:首页 > 工作范文 > 行政公文

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

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