1、中国计量学院 20 20 学年第 2 学期C 语言程序设计课程试卷(A)第 1 页 共 6 页中国计量学院 20 20 学年第 学期 C 语言程序设计 课程考试试卷( A )开课二级学院: 信息工程学院 ,考试时间: 年_月_日 时考试形式:闭卷、开卷,允许带 入场考生姓名: 学号: 专业: 班级: 题序 一 二 总分得分评卷人一、选择题(每小题 3 分,共 72 分)1. 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】求 2/3 + 3/4 + 4/5 + 5/6 + 6/7 的前 10 项之和。 运行示例:sum = 8.396789【程序】#incl
2、ude int main( ) int i, b = 2;double s;(1) for(i = 1; (2) ; i+)s = s + (3) ;(4) printf(“sum = %fn”, s);return 0;【供选择的答案】(1)A、s = 0; B、s = 1; C、s = -1; D、;(2)A、i10 D、i=10(3) A、double(b)/b+1 B、b/(b+1) C、1.0*b/(b+1) D、1.0*b/ b+1(4) A、b+ ; B、b = b+2; C、b = b-1; D、;2. 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。装
3、订线中国计量学院 20 20 学年第 2 学期C 语言程序设计课程试卷(A)第 2 页 共 6 页【程序说明】输入一个 3*4 的二维数组,找出最大值以及它的行下标和列下标,并写入文本文件 a.txt 中。运行示例:Enter a array(3*4):7 18 0 -5 2 -1 6 3 -10 8 9 -2a.dat 中的内容:max = a01 =18【程序】#include void main() int i, j, row, col, max, a34;FILE *fp;printf(“Enter array(3*4):n”);for(i = 0; i max )(6) ;row =
4、 i; col = j;(7) fprintf(fp, “max = a%d%d = %dn”, row, col, (8) );fclose(fp);【供选择的答案】(5) A、max = a00 B、max = B、fp=fopen(“a.txt”,”r”);C、fopen(“a.txt”,”w”); D、fopen(“a.txt”,”r”);(8) A、aij B、arowcol C、aji D、acolrow3. 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。【程序说明】函数 reverse ( char *s ) 将字符串 s 逆置。例如字符串 “123ab
5、c”,经过逆置后变为” cba321”。主函数从键盘读取一个字符串,调用 reverse ( char *s )函数后,将逆置后字符串输出。【程序】中国计量学院 20 20 学年第 2 学期C 语言程序设计课程试卷(A)第 3 页 共 6 页#include #include void reverse(char *s) char *str, ch ; if ( *s = 0 ) return ; str= ( 9 ) ;while (s void main() int i, m = 14, y = 0;for (i = 2; i void main() int i, m = 14, y = 0
6、;for (i = 2; i void main() char choice=2 ;switch(choice)case 1: printf(“A”);case 2: printf(“B”);case 3: printf(“C”); break;default: printf(“D”);【程序 4】#include void main() int j, k, s1, s2;s1 = s2 = 0;for (j = 1; j #define M(x, y) x*yint s=0;void f1() int k = 1 ;中国计量学院 20 20 学年第 2 学期C 语言程序设计课程试卷(A)第
7、5 页 共 6 页s = s + k;k+;void f2( int n ) if(n3) f2(n/4);printf(“%d”, n%4);void main() int i, a = 2, b = 3 ;printf(“%dn”, M(a+b, a-b);printf(“%dn”, s );for( i=1; ivoid main( ) int k = 0 ;char ch, a10, *s10 = “123“,“231“,“312“,“321“ ; while (ch = getchar()!=n int score2;*p;void main() int i = 0;struct s
8、tud t4= “Lisa“,98,87, “Tom“,89,86, “John“,68,79, “Lili“,94,90 ;p=t+2;printf(“%s n“, t0.name);printf(“%dn“, p-score0 + p-score1);(21) 程序 1 运行时,输入 56#,输出 。A、321 312 B、123 321 C、231 D、231 312 (22) 程序 1 运行时,输入 79#,输出 。A、321 312 B、123 321 C、231 D、231 312(23)程序 2 运行时,第 1 行输出 。A、Lisa B、Tom C、John D、Lili(24
9、)程序 2 运行时,第 2 行输出 。A、185 B、175 C、184 D、147二、编程题(共 28 分)1. 输入实数 x,然后按下式计算并输出 y 的值。(8 分)80sin2434 xxy或2输入 80 个实数,存放在数组 a 中,计算并输出平均值,统计并输出这 80 个数中小于平均值的个数。 (10 分)3按下面要求编写程序:(10 分)1)定义函数 fact(k),其功能是计算 1!+2!+3!+k!的值并返回。函数返回值的类型是double;2)编写 main()函数,输入正整数 n 和实数 x,调用 1)中的函数 fact(k),计算表达式 s 的值并输出。 !3!21.!3
10、1!2 nxxs 中国计量学院 20 20 学年第 2 学期C 语言程序设计课程试卷(A)第 7 页 共 6 页中国计量学院 20 20 学年第 2 学期C 语言程序设计课程试卷(A)第 8 页 共 6 页试卷(A)参考答案及评分标准开课二级学院: ,学生班级: ,教师: 一、选择题(每小题 3 分,共 72 分)1.ABCA 2. ACAB 3.DDAC 4.CBBD 5.CACA 6. ACAD二、编程(共 28 分)(解法不唯一,仅供参考)1. (8 分)#include (1 分) #include void main() double x,y; (1 分)scanf(“%lf”, (1 分)if (x=0double aN, aver=0;for(i=0;ivoid main() int i,n; (1 分)double s=0, x, t=1;scanf(“%d %lf “, (1 分)for(i=1;i=n;i+) (3 分)t=t*x;s+=t/fact(i);printf(“s=%fn“,s); (1 分)