当前位置:文档之家› 中国石油大学华东2013-2014第一学期c语言期末考试答案

中国石油大学华东2013-2014第一学期c语言期末考试答案

《计算机程序设计C(2-1)》期末考试试卷专业班级姓名学号开课系室计算机应用技术系考试日期 2014年 1月10日一、程序阅读题(每空2分,共20分)1.若想通过以下输入语句给a赋值1,给b赋值2,则输入数据的形式应该是【1】。

scanf("%d,%d",&a,&b);2.如果a和b的值分别为20和10,下列语句printf("%d+%d=%d",a,b,a+b);输出到屏幕上的结果是【2】。

3.下面程序的输出结果为【3】。

#include <stdio.h>int main(){int x = 10,y = 3;printf("%d\n",x/y);return 0;}4.设i,j,k均为int型变量,则执行完下面的for循环后,k的值为【4】。

for(i = 0,j = 10; i <= j; i ++,j --)k =i + j;5. 水仙花数是指一个三位数的各位数字的立方和是这个数本身,请阅读下面程序并完成填空。

#include <stdio.h>int fun(int n){int i,j,k,m;m = n;【5】;while(m){【6】;m = m / 10;k = k + j * j * j;}if(k == n)【7】;elsereturn 0;}int main(){int i;for(i = 100; i < 1000; i ++){1if( 【8】== 1){printf("%d is ok!\n" ,i);}}return 0;}6. 程序功能是:从键盘输入一行字符,将其中的所有数字字符转换为按先后顺序排列的一个整数。

例如,输入的一行字符为“a2b0D04”,输入结果为整数2004,请补充完整程序。

#include <stdio.h>int main(){int n = 0;char ch;ch = getchar();while(ch != '\n'){if( 【9】){n = n * 10 + ch - '0';}ch = getchar();}printf("value = %d\n",n);return 0;}7.有以下程序#include <stdio.h>int sub(int n){return (n / 10 + n % 10);}int main(){int x,y;scanf("%d",&x);y = sub(sub(sub(x)));printf("%d\n",y);return 0;}若运行时输入:1234<回车>,程序的输出结果是【10】。

二、程序改错题(每处错误2分,共20分,请修改并且只能修改/************found************/的下一行)1.下面这段代码是让计算机计算a和b的积。

#include <stdio.h>/**********found【1】**********/int mian( ){/**********found【2】**********/int a,b,c;scanf("%f%f",&a,&b);c = a * b;/**********found【3】**********/printf("%F\n",c);return 0;}2.下面这段代码求m和n的最大公约数。

#include <stdio.h>int main(){int m,n,r;/**********found【4】**********/scanf("%d%d",m,n);do {/**********found【5】**********/r = m / n;m = n;n = r;/**********found【6】**********/}while(r == 0);/**********found【7】**********/printf("最大公约数是:%d\n",r);return 0;}3.下面这段代码是用来求1+1/1+1/2+1/3+…+1/n。

#include <stdio.h>/**********found【8】**********/int Fun(int n){int i;/**********found【9】**********/double sum = 0.0;for(i = 1;i <= n;i ++){/**********found【10】**********/sum = sum + 1 / i;}return sum;}int main(){int n;scanf("%d",&n);printf("1+1/1+1/2+1/3+...+1/n = %f\n",Fun(n));return 0;}三、程序设计题(每题10分,共60分)1.小明A+B小明今年3岁了,现在他已经能够认识100以内的非负整数,并且能够进行100以内的非负整数的加法计算。

对于大于等于100的整数,小明仅保留该数的最后两位进行计算。

如果计算结果大于等于100,那么小明也仅保留计算结果的最后两位。

例如,对于小明来说:1)1234和34是相等的。

2)35+80=15。

现给定非负整数A和B,你的任务是代表小明计算出A+B的值。

输入一行,包含两个非负整数A和B(A和B均在int类型可表示的范围内)。

输出输出小明A+B的结果。

样例输入35 80样例输出152.星期几输入今天是星期几的序号(星期天的序号为0),输出明天是星期几的英文单词。

周日到周六的英文表示:Sun,Mon,Tue,Wed,Thu,Fri,Sat输入一个整数(0-6)输出所表示的英文样例输入样例输出Mon3.ASCIISince all we know the ASCII code, your job is simple: input numbers and output corresponding messages.InputThe first line contains one integer T (1<=T<=1000).The input will contain T positive integers separated by whitespaces .The integers will be no less than 32.OutputOutput the corresponding message in just one line.Warning: no extra characters are allowed.Sample Input1987 101 108 99 111 109 101 32 116 111 32 65 67 77 32 67 108 117 98Sample OutputWelcome to ACM ClubHint4.数校庆纪念品六十载弦歌不辍,一甲子薪火相传。

2013年10月,中国石油大学迎来了60周年华诞。

校庆期间对每位荣归母校的校友都将提供一份完全立方体包装的纪念品,志愿者将其堆放在墙角,具体堆放形状如下图所示:因为纪念品堆得实在是太有规律了,你只要知道它的层数就可以计算所有纪念品的数量了。

输入输入数据只有一个整数n,表示这堆纪念品的层数(1<=n<=100)。

输出一个整数,表示这堆纪念品的总数量。

样例输入5样例输出355.电梯正在建设的工科楼E座将会成为校内最高建筑,假设该建筑内只有一个电梯。

现在有一个由N个正整数组成的请求列表,每个数字表明了电梯将依次停留的楼层顺序。

电梯每上行1层将花费6秒,下行1层将花费4秒。

电梯在每一层停留一次,将花费5秒。

对于一个给定的请求列表,请计算出按照顺序途径每一层楼所花费的总时间。

电梯一开始停留在第0层,并且在完成请求队列之后不需要返回地面(第0层)。

输入输入共2行。

第一行为一个正整数N,表示请求队列中需要经过的楼层数目;第二行为N个正整数,表示电梯依次经过的楼层数,每个数都少于30。

输出花费的总时间样例输入32 3 1样例输出416.吃巧克力2013年12月8日,ACM俱乐部的小武代表学校参加了在吉林大学举办的第38届ACM国际大学生程序设计竞赛现场赛,返校时带了一盒好吃又精美的巧克力给滨滨(盒内共有N 块巧克力,20 > N >0)。

小武告诉滨滨每天可以吃一块或者两块巧克力。

假设滨滨每天都吃巧克力,问滨滨共有多少种不同的吃完巧克力的方案。

例如:如果N=1,则滨滨第1天就吃掉它,共有1种方案;如果N=2,则滨滨可以第1天吃1块,第2天吃1块;也可以第1天吃2块,共有2种方案;如果N=3,则滨滨第1天可以吃1块,剩2块;也可以第1天吃2块剩1块,共有2+1=3种方案;如果N=4,则滨滨可以第1天吃1块,剩3块;也可以第1天吃2块,剩2块,共有3+2=5种方案。

输入一个正整数N。

输出滨滨吃巧克力的方案数目。

样例输入4样例输出5#include <stdio.h>/*在下面完成Func函数,答题纸上只需要写Func函数即可*/int main( ){int n;scanf("%d",&n);printf("总共有%d种方案\n",Func(n));return 0;}答题页一、程序阅读题(每空2分,共20分)1. 2.3. 4.5. 6.7. 8.1. 2.3. 4.5. 6.7. 8.9. 10.三、程序设计题(每处10分,共60分)Array1. #include <stdio.h>#include <stdlib.h>int main(){int a[2],i,j=0;for(i=0;i<2;i++){scanf("%d",&a[i]);}for(i=0;i<2;i++){j=j+a[i];}if(j<100){printf("%d\n",j);}else{printf("%d\n",j%100);}return 0;} 2.2. #include <stdio.h>#include <stdlib.h>int main(){int a;scanf("%d",&a);if(a==0)printf("Mon\n");if(a==1)printf("Tue\n");if(a==2)printf("Wed\n");if(a==3)printf("Thu\n");if(a==4)printf("Fri\n");if(a==5)printf("Sat\n");if(a==6)printf("Sun\n");return 0;}3. #include <stdio.h>#include <stdlib.h>int main(){int a[100]={0};int i,n;scanf("%d",&n);for(i=0;i<n;i++){scanf("%d",&a[i]);}for(i=0;i<n;i++){printf("%c",a[i]);}printf("\n");return 0;} 4. #include <stdio.h>#include <stdlib.h>int main(){int i,n,j,a=0;scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=i;j++){a=a+j;}}printf("%d\n",a);return 0;}5. #include <stdio.h>#include <stdlib.h>int main(){int n,i,sum;scanf("%d",&n);int a[n];for(i=0;i<n;i++){scanf("%d",&a[i]);}sum=a[0]*6;for(i=0;i<n-1;i++){if(a[i]<a[i+1]){sum=sum+(a[i+1]-a[i])*6;}if(a[i]>a[i+1]){sum=sum+(a[i]-a[i+1])*4;}}sum = sum + n * 5;printf("%d\n",sum);return 0;} 6. int Func(int n){if(n==1) return 1;if(n==2) return 2;else return Func(n-1)+Func(n-2);}。

相关主题