1、 完美.格式.编辑 专业.资料.整理 北京理工大学 2013 级 C 程序设计非信息类答案 Part 11. 【入门】Hello world.成绩 5 开启时间 2014 年 03 月 3 日 星期一 08:00折扣 0.8 折扣时间 2014 年 03 月 18 日 星期二 23:55允许迟交 否 关闭时间 2014 年 03 月 18 日 星期二 23:55让我们用 C 语言向世界问好。最早的程序基本是这个样子的:#include int main()printf(“Hello world.n“);return 0;请模仿上面的程序,看看是否可以通过编译?如果你能通过这个简单的程序,那就让
2、我们继续完成后面的习题吧。输入:无 输出:Hello world.测试输入 期待的输出 时间限制 内存限制 额外进程测试用例 1 1. 1. Hello world. 1 秒 64M 01. #include 2. int main()printf(“Hello world.n“); return 0; 2. 【入门】输出你的第一个图形成绩 5 开启时间 2014 年 02 月 25 日 星期二 14:00折扣 0.8 折扣时间 2014 年 03 月 18 日 星期二 23:55允许迟交 否 关闭时间 2014 年 03 月 18 日 星期二 23:55完美.格式.编辑 专业.资料.整理 背
3、景:我们已经学习了 printf 函数的基本使用方法,这里给出了一个小程序,它运行的结果是输出一个由星号(*)组成的 4*4 的正方形。程序如下:#include int main()printf(“*n“);printf(“*n“);printf(“*n“);printf(“*n“);return 0; 要求:按照上面的程序范例,编写一个小程序,要求输出的是 4 行由*号组成的等腰三角形。输入:无。 输出:指定图形。测试输入 期待的输出 时间限制 内存限制 额外进程测试用例 1 1. *1. *2. *3. *1 秒 64M 01. #include 2. int main() 3. pri
4、ntf(“ *n“); 4. printf(“ *n“); 5. printf(“ *n“); 6. printf(“*n“); 7. return 0; 3. 【入门】求 A+B成绩 5 开启时间 2014 年 02 月 3 日 星期一 14:00完美.格式.编辑 专业.资料.整理 折扣 0.8 折扣时间 2014 年 03 月 18 日 星期二 23:55允许迟交 否 关闭时间 2014 年 03 月 18 日 星期二 23:55我们已经学了如何使用 scanf 函数中输入整型数据(%d),下面让我们使用 scanf 函数来输入两个整数,然后求它们的和。输入: 整数 1 整数 2 输出:
5、整数 1+整数 2=和测试输入 期待的输出 时间限制 内存限制 额外进程测试用例 1 1. 102. 201. 10+20=30 1 秒 64M 0测试用例 2 1. -102. 101. -10+10=0 1 秒 64M 0测试用例 3 1. 300 200 1. 300+200=500 1 秒 64M 01. #include 2. int main() 3. int a,b; scanf(“%d“, scanf(“%d“, 4. printf(“%d+%d=%dn“,a,b,a+b);return 0; 4. 【入门】求整数的 3 次方成绩 5 开启时间 2014 年 02 月 25 日
6、 星期二 14:00折扣 0.8 折扣时间 2014 年 03 月 18 日 星期二 23:55允许迟交 否 关闭时间 2014 年 03 月 18 日 星期二 23:55输入一个整数 x,输出 x 的 3 次方。想一想,在 C 语言中如何用公式来表达 x 的 3 次方?输入:一个整数。 输出:该整数的 3 次方值。完美.格式.编辑 专业.资料.整理 测试输入 期待的输出 时间限制 内存限制 额外进程测试用例 1 1. 3 1. 27 1 秒 64M 0测试用例 2 1. -3 1. -27 1 秒 64M 01. #include 2. int main()int x;scanf(“%d“,
7、printf(“%dn“,x*x*x);return 0; 5. 【入门】输出字符的 ASCII 码成绩 5 开启时间 2014 年 02 月 25 日 星期二 14:00折扣 0.8 折扣时间 2014 年 03 月 18 日 星期二 23:55允许迟交 否 关闭时间 2014 年 03 月 18 日 星期二 23:55背景:我们在计算机基础中已经学过:字母在计算机中采用 ASCII 码进行存储。下面要从键盘上输入任意一个字符,然后输出该字符对应的 ASCII 码。输入:一个字符 输出: 该字符对应的 ASCII 码说明:如果编程有问题,请先看看教材 P51 的例题 3-4,然后再办法发挥一
8、下测试输入 期待的输出 时间限制 内存限制 额外进程测试用例 1 1. A 1. 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. 0 1. The ASCII of character 0 is 48.1 秒 64M 0测试用例 4 1. 1 1. 1 秒 64M 0完美.格式.编辑 专业.资料.整理 测试输入 期待的输出 时间限制 内存限制 额外进程The ASCII of character 1 is 49.测试用例 5 1. +
9、 1. The ASCII of character + is 43.无限制 64M 01. #include 2. int main()char a;scanf(“%c“, 3. printf(“The ASCII of character %c is %d.n“,a,a); 4. return 0; 6. 【入门】大小写字母转换成绩 5 开启时间 2014 年 03 月 17 日 星期一 08:00折扣 0.8 折扣时间 2014 年 04 月 4 日 星期五 23:55允许迟交 否 关闭时间 2014 年 04 月 6 日 星期日 23:55我们知道,英文字母是分大小写的,下面我们需要编
10、写一个简单的程序,将输入的全部小写字母变换为大写字母,大写字母变换为小写字母,非写字母保持不变。输入: 一个字符 输出: 变换后的字符测试输入 期待的输出 时间限制 内存限制 额外进程测试用例 1 1. A 1. a 1 秒 64M 0测试用例 2 1. Z 1. z 1 秒 64M 0测试用例 3 1. b 1. B 1 秒 64M 0测试用例 4 1. y 1. Y 1 秒 64M 0完美.格式.编辑 专业.资料.整理 测试输入 期待的输出 时间限制 内存限制 额外进程测试用例 5 1. # 1. # 无限制 64M 01. #include 2. int main() 3. char x
11、,y;scanf(“%c“, 4. if(x=65scanf(“%d%d“, 完美.格式.编辑 专业.资料.整理 3. printf(“%d+%d=%dn“,a,b,a+b); 4. printf(“%d-%d=%dn“,a,b,a-b); 5. printf(“%d*%d=%dn“,a,b,a*b); 6. printf(“%d/%d=%dn“,a,b,a/b); 7. printf(“%d%d=%dn“,a,b,a%b);return 0;8. 【中学】判断三角形的形状成绩 5 开启时间 2014 年 03 月 17 日 星期一 08:00折扣 0.8 折扣时间 2014 年 04 月 4
12、 日 星期五 23:55允许迟交 否 关闭时间 2014 年 04 月 6 日 星期日 23:55小明上了初中,开始学习如何求解一元二次方程。要求:输入三角型的三条边,判断三角形的形状。假设输入的三边边长均0。(提示:本题中应该要用到 if 语句嵌套)输入:三角型的 3 条边的长度(int 型)。输出:等边三角形:equilateral triangle. 等腰三角形:isoceles triangle. 不构成三角形:non-triangle. 一般三角形:triangle.测试输入 期待的输出 时间限制 内存限制 额外进程测试用例 1 1. 2 2 2 1. equilateral tri
13、angle. 1 秒 64M 0测试用例 2 1. 3 2 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 01. #include 2. int main()int a,b,c;scanf(“%d%d%d“,3. if(a+b2. #include3. main()int x,y;float z; scanf(“%d%d“, 4. z=fabs(30*x-(float)y*11/2); z=z180?360-z:z;
14、5. if(y 2. int main()3. int year,month,day,ty,m,y,c,d,weeks; scanf(“%d%d%d“,4. ty=year;m=month;if(m 2. #include 3. void main()double a,b,c,d; scanf(“%lf%lf%lf“, 4. d=b*b-4*a*c;if(a=0 5. else if(a=0) printf(“x=%lfn“,c=0?0:-c/b); 6. else if(d=0) printf(“x1=x2=%.6lfn“,b=0?0:-b/(2*a); 7. else if(d0) pri
15、ntf(“x1=%lfnx2=%lfn“,(-b+sqrt(d)/(2*a),(-b-sqrt(d)/(2*a); 8. else if(b=0) printf(“x1=%lfinx2=-%lfin“,sqrt(-d)/(2*a),sqrt(-d)/(2*a); 9. else printf(“x1=%lf+%lfinx2=%lf-%lfin“,-b/(2*a),sqrt(-d)/(2*a),-b/(2*a),sqrt(-d)/(2*a);完美.格式.编辑 专业.资料.整理 12.【中学】找出最大素数成绩 5 开启时间 2014 年 03 月 17 日 星期一 08:00折扣 0.8 折扣时间
16、 2014 年 04 月 11 日 星期五 23:55允许迟交 否 关闭时间 2014 年 04 月 11 日 星期五 23:55小明在中学学习了什么是素数。素数是指一个只能被 1 和它本身整除的数,在数论中占有重要的研究地位,在当代密码学中也被广泛应用。输入: 取值范围 输出: 该范围内的最大素数测试输入 期待的输出 时间限制 内存限制 额外进程测试用例 1 1. 100 1. The max prime number is 97. 1 秒 64M 01. #include2. #include3. int IsPrime(int n) int i;4. for(i=2;i 2. main(
17、) 3. int a,b,c;char op; scanf(“%d%c%d“, 4. switch(op) 5. case+:c=a+b;printf(“%dn“,c);break; 6. case-:c=a-b;printf(“%dn“,c);break; 7. case*:c=a*b;printf(“%dn“,c);break; 8. case/:c=a/b;printf(“%dn“,c);break; 9. case%:c=a%b;printf(“%dn“,c);break;10. return 0;14.【日期】确定母亲节成绩 5 开启时间 2014 年 03 月 8 日 星期六 08
18、:00折扣 0.8 折扣时间 2014 年 04 月 11 日 星期五 23:55允许迟交 是 关闭时间 2014 年 04 月 11 日 星期五 23:55母亲节是每年的五月第二个星期天,针对输入的年份,计算该年的哪一天是母亲节。输入: 年份 输出: 日期(5 月的哪一天)测试输入 期待的输出 时间限制 内存限制 额外进程完美.格式.编辑 专业.资料.整理 测试输入 期待的输出 时间限制 内存限制 额外进程测试用例 1 1. 2014 1. 11 1 秒 64M 0测试用例 2 1. 2015 1. 10 1 秒 64M 0测试用例 3 1. 2012 1. 13 1 秒 64M 01. #
19、include 2. int main() 3. int a,b,n;scanf(“%d“, 4. b=(a-1720)%28; 5. switch(b) 6. case 0:n=14;break;case 1:n=13;break;case 2:n=12;break;case 3:n=11;break;7. case 4:n=9;break;case 5:n=8;break;case 6:n=14;break;case 7:n=13;break;8. case 8:n=11;break;case 9:n=10;break;case 10:n=9;break;case 11:n=8;break
20、;9. case 12:n=13;break;case 13:n=12;break;case 14:n=11;break;case 15:n=10;break;10. case 16:n=8;break;case 17:n=14;break;case 18:n=13;break;case 19:n=12;break;11. case 20:n=10;break;case 21:n=9;break;case 22:n=8;break;case 23:n=14;break;12. case 24:n=12;break;case 25:n=11;break;case 26:n=10;break;ca
21、se 27:n=9;break; 13. printf(“%dn“,n);return 0;15.【图形】输出一行星号成绩 5 开启时间 2014 年 03 月 17 日 星期一 08:00折扣 0.8 折扣时间 2014 年 04 月 11 日 星期五 23:55允许迟交 否 关闭时间 2014 年 04 月 11 日 星期五 23:55现在要用最简单得办法,在一行中输出 N 个星号。 输入:N 值 输出: 一行中 N 个星号。测试输入 期待的输出 时间限制 内存限制 额外进程测试用例 1 1. 4 1. * 1 秒 64M 0完美.格式.编辑 专业.资料.整理 测试输入 期待的输出 时间限
22、制 内存限制 额外进程测试用例 2 1. 8 1. * 1 秒 64M 0测试用例 3 1. 1 1. * 1 秒 64M 0测试用例 4 1. 0 1. 1 秒 64M 01. #include 2. int main()int i,n; scanf(“%d“, 3. for(i=1;i1900),现在我们不能只是直接计算,要先判断给出的日期是否合法,对于非法的日期要给出错误提示信息,合法的日期要再计算是星期几。输入: 年 月 日 输出: 06。星期日用 0 表示,星期一用 1 表示,星期二用 2 表示星期六用 6 表示。假设年份大于 1900。先想一想:我们现在只会使用 if 语句,该如何
23、建立数学模型?测试输入 期待的输出 时间限制 内存限制 额外进程测试用例 1 1. 2013 3 11 1. 1 1 秒 64M 0测试用例 2 1. 2013 13 15 1. month is error. 1 秒 64M 0测试用例 3 1. 2013 3 32 1. day is error. 1 秒 64M 01. #include 完美.格式.编辑 专业.资料.整理 2. #include 3. int main() 4. int a,w,y,m,d,t=0,s=1;scanf(“%d%d%d“, 5. if(yt) printf(“day is error.n“);s=0; 14
24、. if(s=1) a=y/100+1; if(m 2. main()int n,i,y; scanf(“%d“, 3. for(i=n-1,y=1;i=1;i-) y=2*(i+y); 4. if(y=1)printf(“The monkey got %d peach in first day.n“,y); 5. if(y!=1)printf(“The monkey got %d peaches in first day.n“,y); 完美.格式.编辑 专业.资料.整理 6. return 0;18.【小学】三做一年级算术题成绩 5 开启时间 2014 年 03 月 24 日 星期一 14:
25、00折扣 0.8 折扣时间 2014 年 04 月 13 日 星期日 23:55允许迟交 否 关闭时间 2014 年 04 月 20 日 星期日 23:55两个一年级小朋友在一起玩游戏,小明给出一堆一位的正整数和运算要求(+、-、*、/、%),小丽要找出这些整数中的最大值和最小值,然后按照小明的要求算出最大数与最小数进行算术运算的结果。输入: 用逗号分隔的一位正整数序列,及其运算符和等号 输出: 最大数 op 最小数=结果测试输入 期待的输出 时间限制 内存限制 额外进程测试用例 1 1. 5,1,1,2,0,3,+,= 1. 5+0=5 1 秒 64M 0测试用例 2 1. 1,5,2,0,
26、/,= 1. Error! 1 秒 64M 0测试用例 3 1. 1,7,2,2,5,3,/,= 1. 7/1=7 1 秒 64M 01. #include 2. int main() 3. int i,a,max=0,min=100,s; char l100=0,op; 4. gets(l); 5. for(i=0;i=i+2) 6. if(li=) break; 7. else 8. if(li=43|li=45|li=42|li=37|li=47) 9. op=li; 10. else 11. if(li+2=44) 12. a=(li-48)*10+li+1-48;i+; 13. el
27、se a=li-48; 14. if(a=max) 15. max=a; 16. if(a100。输入:n 输出:m测试输入 期待的输出 时间限制 内存限制 额外进程测试用例 1 1. 100 1. 14 无限制 64M 01. #include 2. int main()int m,n,s=0;scanf(“%d“, 3. for(m=1;s 2. int main() int i,j,m=0,n;scanf(“%d“, 3. for(j=1;j 2. #include 3. main() int a,b,i,j,k,m,n; scanf(“%d“, 4. for(i=n-1;i-n;i-)
28、 a=fabs(i);b=n-1-a; 5. for(m=2*a;m0;m-) printf(“ “); 6. for(j=b;j=-b;j-) k=n-b+fabs(j);printf(“%-2d“,k); 7. printf(“n“); return 0;22.【图形】空心的倒三角型成绩 5 开启时间 2014 年 03 月 24 日 星期一 14:00折扣 0.8 折扣时间 2014 年 04 月 20 日 星期日 23:55允许迟交 否 关闭时间 2014 年 04 月 21 日 星期一 23:55请根据要求打印可空心倒三角形。输入: 输入三角形的高度(h = 0)。 输出: 打印相应
29、的空心倒三角形。图样参见测试用例。测试输入 期待的输出 时间限制 内存限制 额外进程测试用例 1 1. 3 1 秒 64M 0完美.格式.编辑 专业.资料.整理 测试输入 期待的输出 时间限制 内存限制 额外进程1. *2. * *3. *测试用例 2 1. 5 1. *2. * *3. * *4. * *5. *1 秒 64M 01. #include 2. main()int r,l,h; scanf(“%d“,3. for(r=1;r 2. #include 3. main() char c;int n,i,j; scanf(“%c%d“, 4. for(c=c+n-1,i=1-n;i
30、2. #include 3. int main()4. int i,j,n,f,t=0;scanf(“%d%d“,t=f;5. for(j=1;j2. #include 3. int main()int n;char a2; scanf(“%d%s“, char ch = a0, t;4. if(ch=A i-) 5. t = (ch+i-A)+26)%26+A; int k = abs(i);完美.格式.编辑 专业.资料.整理 6. for(int j=0; j 2. int main() 3. int i=0,j=0,g,n,t=1;int a100100;scanf(“%d“, 4. f
31、or(g=0;g=0;i+,j-) 7. aij=t; t+; 8. else for(i=g,j=0;i=0i+,j-) 13. aij=t;t+; 14. else 15. for(i=n-1,j=g;i=gi-,j+) 16. aij=t;t+;17. for(i=0;in;i+) for(j=0;jn;j+) 18. if(j=n-1) printf(“%2d“,aij); 19. else printf(“%2d “,aij); 20. printf(“n“);return 0;H2. 晕(选作)成绩 5 开启时间 2014 年 03 月 24 日 星期一 14:00折扣 0.8 折扣时间 2014 年 04 月 20 日 星期日 23:55