1、1C语言A卷答案课案卷20132014学年第1学期计算机程序设计C(2-1)期末考试试卷 专业班级 姓 名 学 号 开课系室 计算机应用技术系 考试日期 2014年 1月10日 题 号一二三总分得 分阅卷人一、程序阅读题(每空2分,共20分)1. 若想通过以下输入语句给a赋值1,给b赋值2,则输入数据的形式应该是【1】。 scanf(%d,%d,&a,&b); 1,22.如果a和b的值分别为20和10,下列语句printf(%d+%d=%d,a,b,a+b);输出到屏幕上的结果是【2】。 20+10=30 3.下面程序的输出结果为【3】。#include int main() int x =
2、10,y = 3; printf(%dn,x/y); 3 return 0;4.设i,j,k均为int型变量,则执行完下面的for循环后,k的值为【4】。10 for(i = 0,j = 10; i = j; i +,j -) k =i + j;5. 水仙花数是指一个三位数的各位数字的立方和是这个数本身,请阅读下面程序并完成填空。#include int fun(int n) int i,j,k,m; m = n; 【5】 k=0 ; while(m) 【6】j=m%10 ; m = m / 10; k = k + j * j * j; if(k = n) return 1 【7】 ; els
3、e return 0;int main() int i; for(i = 100; i 1000; i +) if( fun(i) 【8】 = 1) printf(%d is ok!n ,i); return 0;6. 程序功能是:从键盘输入一行字符,将其中的所有数字字符转换为按先后顺序排列的一个整数。例如,输入的一行字符为“a2b0D04”,输入结果为整数2004,请补充完整程序。#include int main() int n = 0; char ch; ch = getchar(); while(ch != n) if( ch=0 & ch=9 【9】 ) n = n * 10 + c
4、h - 0; ch = getchar(); printf(value = %dn,n); return 0;7.有以下程序#include int sub(int n) return (n / 10 + n % 10);int main() int x,y; scanf(%d,&x); y = sub(sub(sub(x); printf(%dn,y); return 0;若运行时输入:1234,程序的输出结果是【10】 10 。二、程序改错题(每处错误2分,共20分,请修改并且只能修改/*found*/的下一行)1.下面这段代码是让计算机计算 a和b的积。#include /*found【
5、1】*/int mian( ) int main()/*found【2】*/int a,b,c; float a,b,c;scanf(%f%f,&a,&b);c = a * b;/*found【3】*/ printf(%Fn,c); printf(“%fn”,c); return 0;2.下面这段代码求m和n的最大公约数。#include int main() int m,n,r;/*found【4】*/ scanf(%d%d,m,n); scanf(“%d%d”,&m,&n); do /*found【5】*/ r = m / n; r=m%n; m = n; n = r;/*found【6】
6、*/ while(r = 0); r!=0/*found【7】*/ printf(最大公约数是:%dn,r); printf(最大公约数是:%dn,n); return 0;3.下面这段代码是用来求1+1/1+1/2+1/3+1/n。#include /*found【8】*/int Fun(int n) float Fun(int n) int i;/*found【9】*/ double sum = 0.0; float sum=0.0; for(i = 1;i = n;i +) /*found【10】*/ sum = sum + 1 / i; sum=sum+1.0/i; return su
7、m;int main() int n; scanf(%d,&n); printf(1+1/1+1/2+1/3+.+1/n = %fn,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的值。输入 一行,包含两个
8、非负整数A和B(A和B均在int类型可表示的范围内)。输出 输出小明A+B的结果。样例输入 35 80样例输出 15#include int main() int a,b; scanf(%d%d,&a,&b); printf(%dn,(a+b)%100); return 0;2星期几 输入今天是星期几的序号(星期天的序号为0),输出明天是星期几的英文单词。周日到周六的英文表示:Sun,Mon,Tue,Wed,Thu,Fri,Sat输入 一个整数(0-6)输出 所表示的英文样例输入 0样例输出 Mon#include int main() int a; scanf(%d,&a); switch(
9、a) case 0: printf(Monn); break; case 1: printf(Tuen); break; case 2: printf(Wedn); break; case 3: printf(Thun); break; case 4: printf(Frin); break; case 5: printf(Satn); break; case 6: printf(Sunn); break; return 0;3ASCII Since all we know the ASCII code, your job is simple: input numbers and output
10、 corresponding messages. Input The 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.Output Output the corresponding message in just one line. Warning: no extra characters are allowed.Sample Input
11、19 87 101 108 99 111 109 101 32 116 111 32 65 67 77 32 67 108 117 98Sample Output Welcome to ACM ClubHint CharacterASCII codeA65a97Whitespace32#include int main() int a,b,i; scanf(%d,&a); for(i=0;ia;i+) scanf(%d,&b); printf(%c,b); return 0;4数校庆纪念品 六十载弦歌不辍,一甲子薪火相传。2013年10月,中国石油大学迎来了60周年华诞。校庆期间对每位荣归母校
12、的校友都将提供一份完全立方体包装的纪念品,志愿者将其堆放在墙角,具体堆放形状如下图所示: 因为纪念品堆得实在是太有规律了,你只要知道它的层数就可以计算所有纪念品的数量了。输入 输入数据只有一个整数n,表示这堆纪念品的层数(1=n=100)。输出 一个整数,表示这堆纪念品的总数量。样例输入 5样例输出 35#include int main() int i,n,t,sum; scanf(%d,&n); sum=0; t=0; for(i=1;i=n;i+) t=t+i; sum=sum+t; printf(%dn,sum); return 0;5电梯 正在建设的工科楼E座将会成为校内最高建筑,假设该建筑内只有一个电梯。现在有一个由N个正整数组成的请求列表,每个数字表明了电梯将依次停留的楼层顺序。电梯每上行1层将花费6秒,下行1层将花费4秒。电梯在每一层停留一次,将花费5秒。 对于一个给定的请求列表,请计算出按照顺序途径每一层楼所花费的总时间。电梯一开始停留在第0层,并且在完成请求队列之后不需要返回地面(第0层)。输入 输入共2行。第一行为一个正整数N,表示请求队列中需要经过的楼层数目;第二行为N个正整数,表示电梯依次经过的楼层数,每个数都少于30。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1