收藏 分享(赏)

C语言程序设计—北京理工大学MOOC提交作业.doc

上传人:11xg27ws 文档编号:7470377 上传时间:2019-05-19 格式:DOC 页数:44 大小:766.50KB
下载 相关 举报
C语言程序设计—北京理工大学MOOC提交作业.doc_第1页
第1页 / 共44页
C语言程序设计—北京理工大学MOOC提交作业.doc_第2页
第2页 / 共44页
C语言程序设计—北京理工大学MOOC提交作业.doc_第3页
第3页 / 共44页
C语言程序设计—北京理工大学MOOC提交作业.doc_第4页
第4页 / 共44页
C语言程序设计—北京理工大学MOOC提交作业.doc_第5页
第5页 / 共44页
点击查看更多>>
资源描述

1、第一周作业【练习 1】HelloWorld成绩 0 开启时间 2014 年 10 月 21 日 星期二 08:00折扣 0.8 折扣时间 2014 年 12 月 7 日 星期日 23:55允许迟交 否 关闭时间 2014 年 12 月 7 日 星期日 23:55让我们学习用 C 语言向世界问好。“Hello World”示例程序最早出现于 1972 年,由贝尔实验室成员 Brian Kernighan 撰写的内部技术文件Introduction to the Language B之中。不久同作者于 1974 年所撰写的Programming in C: A Tutorial,也延用这个示例。一

2、般来说,这是每一种计算机编程语言中最基本、最简单的程序,亦通常是初学者所编写的第一个程序。它还可以用来确定该语言的编译器、程序开发环境,以及运行环境是否已经安装妥当。将“Hello World”作为第一个示范程序,已经成为编程语言学习的传统。我们在这里继续传统,这也是一种向前辈们致敬的方式之一吧!最早的程序基本是这个样子的:#include int main()printf(“Hello world.n“);return 0;请模仿上面的程序,看看是否可以通过编译?如果你能通过这个简单的程序,那就让我们继续完成后面的习题吧。略第二周作业【练习 2】学学 scanf 和 printf 的用法吧成

3、绩 0 开启时间 2014 年 10 月 21 日 星期二 08:00折扣 0.8 折扣时间 2014 年 12 月 7 日 星期日 23:55允许迟交 否 关闭时间 2014 年 12 月 7 日 星期日 23:55该如何处理 double 型的数据:如何定义变量类型?如何使用 scanf 函数?如果已知圆柱的底面半径 r ,以及高 h ,则可计算出圆柱的侧面积 s=2 r h ,体积 v= r 2 h 。其中 =3.1415926。输入: 第一行输入圆柱的底面半径 r第二行输入圆柱的高 h输出: s=,v=要求 1. 所有变量都定义为双精度类型2. 结果精确到小数点后两位。作为练习题目:我

4、们已经给您编写好了大部分的代码,请您自己修改几个地方,完成程序的剩余部分。*分隔线*#include#define PAI 3.1415926int main()int r,h;double s,v;scanf(“%d %d“, );s=2*PAI*r*h;v=PAI*r*r*h;printf(“s=%.2f,v= n“,s, );return 0;*分隔线*Code:#include#define PAI 3.1415926int main()int r,h;double s,v;scanf(“%d %d“,s=2*PAI*r*h;v=PAI*r*r*h;printf(“s=%.2f,v=%

5、.2fn“,s,v);return 0;第三周作业1、输出字符的 ASCII 码成绩 10 开启时间 2014 年 10 月 21 日 星期二 10:00折扣 0.8 折扣时间 2014 年 11 月 5 日 星期三 23:55允许迟交 否 关闭时间 2014 年 11 月 12 日 星期三 23:55背景:我们在计算机基础中已经学过:字母在计算机中采用 ASCII 码进行存储。下面要从键盘上输入任意一个字符,然后输出该字符对应的 ASCII 码。输入:一个字符输出:该字符对应的 ASCII 码测试输入期待的输出 时间限制 内存限制额外进程测试用例 1以文本方式显示 1. A以文本方式显示 1

6、. The ASCII of character A is 65.1 秒 64M 0测试用例 2以文本方式显示 1. Z以文本方式显示 1. The ASCII of character Z is 90.1 秒 64M 0测试用例 3 以文本方式显示 以文本方式显示 1. The ASCII of character 0 is 48.1 秒 64M 0测试输入期待的输出 时间限制 内存限制额外进程1. 0测试用例 4以文本方式显示 1. 1以文本方式显示 1. The ASCII of character 1 is 49.1 秒 64M 0测试用例 5以文本方式显示 1. +以文本方式显示 1

7、. The ASCII of character + is 43.1 秒 64M 0Code:#includeint main()char ch;scanf(“%c“,printf(“The ASCII of character %c is %d.“,ch,ch);return 0;2、一年级的算术题成绩 10 开启时间 2014 年 10 月 21 日 星期二 10:00折扣 0.8 折扣时间 2014 年 11 月 5 日 星期三 23:55允许迟交 否 关闭时间 2014 年 11 月 12 日 星期三 23:55背景:小明上小学一年级了,老师已经教会了他们进行整数的 +、-、*、/、%

8、 计算,下面老师开始出题,给出一个简单的算术表达式,请小明给出计算结果。输入:接受两个整数,每个整数之间使用空格分隔。例如输入格式为:123 444输出:分别输出按照整型数据进行 +、-、*、/、* 之后的运行结果。测试输入 期待的输出 时间限制 内存限制 额外进程测试用例 1以文本方式显示 1. 10 3以文本方式显示 1. 10+3=132. 10-3=73. 10*3=304. 10/3=35. 10%3=11 秒 64M 0测试用例 2以文本方式显示 1. 11 -3以文本方式显示 1. 11+-3=82. 11-3=143. 11*-3=-334. 11/-3=-35. 11%-3=

9、21 秒 64M 0Code#includeint main()int a, b;char ch = 37;scanf(“%d%d“,printf(“%d+%d=%dn“,a,b,a + b);printf(“%d-%d=%dn“,a,b,a - b);printf(“%d*%d=%dn“,a,b,a * b);printf(“%d/%d=%dn“,a,b,a / b);printf(“%d%c%d=%dn“,a,ch,b,a % b); return 0;3、判断三角形的形状成绩 10 开启时间 2014 年 10 月 21 日 星期二 10:00折扣 0.8 折扣时间 2014 年 11

10、月 5 日 星期三 23:55允许迟交 否 关闭时间 2014 年 11 月 12 日 星期三 23:55要求输入三角型的三条边,判断三角形的形状。假设输入的三边边长均0。输入:三角型的 3 条边的长度(int 型)。输出:等边三角形:equilateral triangle等腰三角形:isoceles triangle不构成三角形:non-triangle一般三角形:triangle测试输入 期待的输出 时间限制内存限制额外进程测试用例 1以文本方式显示 1. 2 2 2以文本方式显示 1. equilateral triangle.1 秒 64M 0测试用例 2以文本方式显示 1. 3 2

11、 2以文本方式显示 1. isoceles triangle.1 秒 64M 0测试用例 3以文本方式显示 1. 1 3 1以文本方式显示 1. non-triangle.1 秒 64M 0测试用例 4以文本方式显示 1. 3 4 5以文本方式显示 1. triangle.1 秒 64M 0测试用 以文本方式显示 以文本方式显示 1 秒 64M 0测试输入 期待的输出 时间限制内存限制额外进程例 5 1. 2 3 21. isoceles triangle.测试用例 6以文本方式显示 1. 2 2 3以文本方式显示 1. isoceles triangle.1 秒 64M 0测试用例 7以文本

12、方式显示 1. 3 1 1以文本方式显示 1. non-triangle.1 秒 64M 0测试用例 8以文本方式显示 1. 1 1 3以文本方式显示 1. non-triangle.1 秒 64M 0测试用例 9以文本方式显示 1. 5 4 3以文本方式显示 1. triangle.1 秒 64M 0测试用例 10以文本方式显示 1. 4 5 3以文本方式显示 1. triangle.1 秒 64M 0Code#includeint main()int a, b, c;scanf(“%d%d%d“,if(a + b c return 0;if(a = b | a = c | b = c)pr

13、intf(“isoceles triangle.n“);return 0;printf(“triangle.n“);elseprintf(“non-triangle.n“);return 0;第四周作业1.【中学】计算时钟的夹角成绩 10 开启时间 2014 年 10 月 28 日 星期二 08:25折扣 0.8折扣时间 2014 年 11 月 12 日 星期三 08:25允许迟交 否 关闭时间 2014 年 11 月 19 日 星期三 08:25背景:钟面上的时针和分针之间的夹角总是在 0 180 之间 ( 包括 0和 180 ) 。举例来说,在十二点的时候两针之间的夹角为 0 ,而在六点的

14、时候夹角为 180 ,在三点的时候为 90 。本题要解决的是计算 12:00 到 11:59 之间任意一个时间的夹角。输入:每组测试数据包含两个数字:第一个数字代表小时 ( 大于 0 小于等于 12) ,第二个数字代表分 ( 在区间 0, 59 上 ) 。输出:对应每组测试数据,用常用格式显示时间以及这个时候时针和分针间的最小夹角,精确到小数点后一位。输出格式如下所示。再看一看,想一想:是否可以不用 if 语句,只使用 printf 函数来简化你的程序?测试输入 期待的输出 时间限制内存限制额外进程测试用例 1以文本方式显示 1. 12 0以文本方式显示 1. At 12:00 the ang

15、le is 0.0 degrees.1 秒 64M 0测试用例 2以文本方式显示 1. 12 30以文本方式显示 1. At 12:30 the angle is 165.0 degrees.1 秒 64M 0测试用例 3以文本方式显示 1. 6 0以文本方式显示 1. At 6:00 the angle is 180.0 degrees.1 秒 64M 0测试用例 4以文本方式显示 1. 3 0以文本方式显示 1. At 3:00 the angle is 90.0 degrees.1 秒 64M 0测试用例 5以文本方式显示 1. 3 3以文本方式显示 1. At 3:03 the ang

16、le is 73.5 degrees.1 秒 64M 0测试用例 以文本方式显示 以文本方式显示 1. At 3:09 the angle is 40.5 degrees.1 秒 64M 0测试输入 期待的输出 时间限制内存限制额外进程6 1. 3 9测试用例 7以文本方式显示 1. 4 0以文本方式显示 1. At 4:00 the angle is 120.0 degrees.1 秒 64M 0测试用例 8以文本方式显示 1. 5 59以文本方式显示 1. At 5:59 the angle is 174.5 degrees.1 秒 64M 0测试用例 9以文本方式显示 1. 4 20以文

17、本方式显示 1. At 4:20 the angle is 10.0 degrees.1 秒 64M 0测试用例 10以文本方式显示 1. 0 0以文本方式显示 1. At 0:00 the angle is 0.0 degrees.1 秒 64M 0o Code#includeint main()int hour, minute, temp;float angle, h_angle, m_angle;scanf(“%d%d“,temp = hour;if(hour = 12) temp = 0;h_angle = temp * 30.0 + minute * 0.5;m_angle = mi

18、nute * 6.0;angle = h_angle m_angle ? h_angle - m_angle : m_angle - h_angle;if(angle 180.0) angle = 360.0 - angle;printf(“At %d:%02d the angle is %.1f degrees.n“,hour,minute,angle);return 0;2.【日期 】确定母亲节成绩 10 开启时间 2014 年 10 月 28 日 星期二 10:35折扣 0.8 折扣时间 2014 年 11 月 12 日 星期三 10:35允许迟交 否 关闭时间 2014 年 11 月

19、19 日 星期三 10:35母亲节是每年的五月第二个星期天,针对输入的年份,计算该年的哪一天是母亲节。输入:年份输出:日期(5 月的哪一天)测试输入 期待的输出 时间限制 内存限制 额外进程测试用例 1 以文本方式显示 1. 2014以文本方式显示 1. 111 秒 64M 0测试用例 2 以文本方式显示 1. 2015以文本方式显示 1. 101 秒 64M 0测试用例 3 以文本方式显示 1. 2012以文本方式显示 1. 131 秒 64M 0Code:#includeint main()int year, n, week, total, day;scanf(“%d“,if(year %

20、 4 = 0 for(n = 0;n 1900),现在我们不能只是直接计算,要先判断给出的日期是否合法,对于非法的日期要给出错误提示信息,合法的日期要再计算是星期几。输入:年 月 日输出:06。星期日用 0 表示,星期一用 1 表示,星期二用 2 表示星期六用 6 表示。假设年份大于 1900。先想一想:我们现在只会使用 if 语句,该如何建立数学模型?测试输入 期待的输出 时间限制内存限制额外进程测试用例 1以文本方式显示 1. 2013 3 11以文本方式显示 1. 11 秒 64M 0测试用例 2以文本方式显示 1. 2013 13 15以文本方式显示 1. month is error

21、.1 秒 64M 0测试用例 3以文本方式显示 1. 2013 3 32以文本方式显示 1. day is error.1 秒 64M 0Code:#includeint main()int year, month, day, n, week, total;scanf(“%d%d%d“,if(year = 13 | month 31)printf(“day is error.n“); return 0; break;case 4:case 6:case 9:case 11: if(day 30)printf(“day is error.n“); return 0; break;case 2:i

22、f(year % 4 = 0 return 0; elseif(day 28) printf(“day is error.n“); return 0; break;if(year % 4 = 0 for(n = 0;n o int main()o o int a, n, i, total = 1;o scanf(“%d%d“,o if(n = 0) total = 1;o for(i = 1; i int main()int a = 1,b = 1,c = 1,maxnum,count = 0;scanf(“%d“,for(c = 1;c int main()int maxnum, minnu

23、m, n, g, s, b, q, count = 0;while(1)scanf(“%d%d“,if(minnum = 0 if(minnum 999 n 100。输入:n输出:m测试输入 期待的输出 时间限制 内存限制 额外进程测试用例 1 以文本方式显示 以文本方式显示 1 秒 64M 0测试输入 期待的输出 时间限制 内存限制 额外进程1. 100 1. 14Code:#includeint main()int max, i = 0, sum = 0;scanf(“%d“,while(sum int main()int n, x, y, count = 0;scanf(“%d“,for

24、(y = 0; y int main()int n, i, q, p;char ch;scanf(“%c%d“,for(i = 0; i = 0; i-)for(q = i; q 0; q-)printf(“ “);if(q = 1)printf(“%c“, ch + i);printf(“n“);return 0;邮票组合成绩 10 开启时间 2014 年 11 月 12 日 星期三 06:20折扣 0.8 折扣时间 2014 年 11 月 26 日 星期三 06:20允许迟交 否 关闭时间 2014 年 12 月 3 日 星期三 06:20背景:我们寄信都要贴邮票,在邮局有一些小面值的邮票

25、,通过这些小面值邮票中的一张或几张的组合,可以满足不同邮件的不同的邮资。现在,邮局有 4 种不同面值的邮票。在每个信封上最多能贴 5 张邮票,面值可相同,可不同。输入:四种邮票的面值。输出:用这四种面值组成的邮资最大的从 1 开始的一个连续的区间。说明:如结果为 10,则表明使用 4 张邮票可组合出 1、2 、3、4 、5、6、7 、8、9 、10这些邮资。名词解释:邮资:就是你寄东西需要花多少钱。邮票面额:是由国家发行的具有固定价格的花纸片,被称为邮票。如果你寄东西,邮局称了重量,告诉你要 240 分。这样你就要贴邮票了。如果现在邮局的邮票有面值为 80 分、50 分、20 分和 10 分的

26、四种,你就可以采用不同的组合得到240 的邮资,例如:采用 3 张 80 分的可以凑出 240 分;或者 24 张 10 分的凑起来 240分也可以。显然不同邮票的组合都可以得到同样一种邮资。测试输入 期待的输出 时间限制内存限制额外进程测试用例 1以文本方式显示 1. 1 4 12 21以文本方式显示 1. The max is 71.1 秒 64M 0测试用例 2 以文本方式显示 1. 1 3 7 12以文本方式显示 1. The max is 46.1 秒 64M 0Code:#includeint main()int i5,t3126,n,n1,n2,n3,n4,temp = 0;i0

27、 = 0;for(n = 1; n tn1)temp = tn;tn = tn1;tn1 = temp;temp = 0;for(n = 0; n int main()int n, m, l, i100, temp;scanf(“%d“,for(m = 0; m il)temp = im;im = il;il = temp;printf(“%d“,i0);temp = i0;for(m = 1; m #include int main()char s5100, t100;int i, n;for(i = 0; i 5; i+)scanf(“%s“,si);for(i = 0; i 4; i+)

28、for(n = i + 1; n 5; n+)if(strcmp(si,sn) 0)strcpy(t,si);strcpy(si,sn);strcpy(sn,t);for(i = 0; i 5; i+)printf(“%sn“,si);return 0;2.寻找矩阵的鞍点成绩 10 开启时间 2014 年 11 月 27 日 星期四 03:00折扣 0.8 折扣时间 2014 年 12 月 10 日 星期三 03:00允许迟交 否 关闭时间 2014 年 12 月 17 日 星期三 03:00二维数组中的鞍点,即该位置上的元素是所在行上的最大值,是所在列上的最小值。二维数组也可能没有鞍点。输入

29、一个二维数组的行数 n,列数 m,二维数组的诸元素值;输出数组的鞍点,以及鞍点所在的行列号。输入:第一行为矩阵的行数和列数,从第二行开始,为矩阵本身(假设输入的矩阵只有 0 和 1 个鞍点)3 41 3 5 32 3 4 13 2 6 7输出:Point: a12 = 4 (下标从 0 开始)测试输入 期待的输出 时间限制内存限制额外进程测试用例 1以文本方式显示 1. 3 42. 1 3 5 33. 2 3 4 14. 3 2 6 7以文本方式显示 1. Point:a12=41 秒 64M 0测试用例 2以文本方式显示 1. 3 42. 1 2 3 4以文本方式显示 1. No Point1 秒 64M 0

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报