中国计量20072008第二学期C语言程序设计1课程考试试卷B及答案.docx
装订线中国计量学院20192019学年第二学期C语言程序设计(1)课程考试试卷(B)及答案开课二级学院:信息、机电、计测、质安,考试时间:2019年6月27日18时考试形式:闭卷 Ö 、开卷,允许带 入场考生姓名: 学号: 专业: 班级: 题序一二三四五六七八九总分得分评卷人试题1(每小题3分,共12分)阅读下列程序说明和程序,在每小题供应的若干可选答案中,选择一个正确答案。【程序说明】水仙花数是指一个n(>=3)位数字的数,它等于每个数字的n次幂之和。统计1000以内的水仙花数。【程序】#include <stdio.h>void main( ) int i,g,s,b,t;for ( (1) ) (2) g=t%10;t=t/10; (3) b=t/10;if( (4) )printf("%d ",i);【供选择的答案】(1) A、i=100,i<1000,i+ B、i=100;i<999;i+ C、i=100;i<1000;i+ D、i=100,i<999,i+ (2) A、t=i; B、i = t; C、t=i; D、; (3) A、s=t/10; B、s=t%10; C、s=t/100; D、s=t%100;(4) A、i=g*g*g+s*s*s+b*b*b B、 i=g*g+s*s+b*bC、i=g*g*g+s*s*s+b*b*b D、 i=g*g+s*s+b*b试题2(每小题3分,共12分)阅读下列程序说明和程序,在每小题供应的若干可选答案中,选择一个正确答案。【程序说明】连续输入十个整数,找出并返回最大值及其下标。运行示例:10 9 8 7 6 5 4 3 2 1max=10, imax=0【程序】#include <stdio.h>void main( )int i, max, imax; (5) for (i=1; i<11; i+)scanf("%d", &ai);max=a1; (6) for(i=2; i<11; i+)if( (7) ) (8) imax=i;printf("max=%d, imax=%dn", max, imax);【供选择的答案】(5) A、int a9; B、int a10; C、int a11; D、int a(10); (6) A、; B、imax=1; C、imax=10; D、imax=0; (7) A、 max>aiB、 max<aiC、 max<(a+i)D、 max<ai装订线(8) A、ai=max; B、;C、max=ai; D、max=ai; 试题3(每小题3分,共12分)阅读下列程序说明和程序,在每小题供应的若干可选答案中,选择一个正确答案。【程序说明】输入一个字符串,推断其是否是回文。运行示例:levelyes【程序】#include <stdio.h> (9) void main( ) char s80;int i,j,len; (10) len=strlen(s);for(i=0,j=len-1;i<j;i+,j-)if( (11) )printf("Non"); (12) printf("Yesn");【供选择的答案】(9) A、#include <math.h>B、#include <string.h>C、#include <stdlib.h>D、#include <Ctype.h>(10) A、puts(s); B、scanf(“%c”,s); C、gets(s); D、scanf(“%c”,s80);(11) A、*(s+i)=*(s+j) B、(s+i)!=(s+j) C、*(s+i)!=*(s+len-j) D、*(s+i)!=*(s+j) (12) A、break; B、;C、return; D、continue;试题4(每小题3分,共12分)阅读下列程序并答复问题,在每小题供应的若干可选答案中,选择一个正确答案。【程序】#include <stdio.h>void main( )int a5=42,71,49,3,7;int i,j,flag;for(i=0; i < 5; i+)flag=1;for(j=2;j<ai;j+)if(ai%j=0)flag=0;break;printf("%d ",j);(13)程序的输出的第一个数是 (13) 。 A、2 B、42 C、43 D、3(14)程序的输出的第二个数是 (14) 。 A、71B、72 C、2 D、70(15)程序的输出的第三个数是 (15) 。 A、6 B、8 C、7D、49(16)程序的输出的第四个数是 (16) 。 A、2 B、3 C、4 D、5试题5(每小题3分,共12分)阅读下列程序并答复问题,在每小题供应的若干可选答案中,选择一个正确答案。【程序】#include <stdio.h>#include <string.h>void Func(char * s, int n)装订线int len=0,i;for(i=0;si!='0'i+)len+;for(i=n+1;i<len+1;i+)*(s+i-1)=*(s+i);void main( ) char str480="Zhejiang","Hangzhou","Shanghai","student"int i;for(i=0;i<4;i+)Func(stri,i);puts(stri);(17)程序的输出第一行是 (17) 。 A、Zhejiang B、hejiang C、Zejiang D、Zhjiang(18)程序的输出是 (18) 。A、Hangzhou B、angzhou C、HngzhouD、Hagzhou (19)程序的输出是 (19) 。 A、Shanghai B、hanghai C、Sanghai D、Shnghai (20)程序的输出是 (20) 。 A、stuent B、tudent C、sudent D、stdent试题6(每小题3分,共12分)#include <stdio.h>#include <string.h>struct studentchar name80;int grade;struct student * Find(char * s,struct student * p, int n)int i;for (i=0; i < n-1; i+)if (!strcmp(s, (*(p+i).name)return (p+i+1);return p+n-1;void main( )char str80;struct student a4 = "Tom",60, "Jerry",80,"Marry",70,"Bill",90,*pt; gets(str);pt=Find(str, a,4);printf("%s,%dn", pt->name,pt->grade);(21) 用户输入“Tom”,程序运行时,输出 (21) 。A、Tom,60B、tom,60C、Jerry,80 D、Bill,90(22) 用户输入“Jerry”,程序运行时,输出 (22) 。A、Marry,70B、Jerry,80C、Bill,90 D、Tom,60(23) 用户输入“tom”,程序运行时,输出 (23) 。A、Tom,60B、tom,60C、Jerry,80 D、Bill,90(24) 用户输入“Bill”,程序运行时,输出 (24) 。A、Tom,60B、tom,60C、Marry,80 D、Bill,90试题7 (14分)编写程序,输入一个字符串,统计其中的英文字符、数字字符和其他字符的个数,并输出相应的结果。试题8 (14分)编写程序,计算并输出下列算式的值:1+1/2!+1/3!+1/4!+1/5!。要求定义和调用函数Func(n)计算n!,函数返回值的类型是double,并将结果输入到C盘的根书目下文本文件test.txt中。装订线中国计量学院20192019学年第二学期C语言程序设计(1)课程考试试卷(B)参考答案以及评分标准开课二级学院: 信息/计测/机电/质安,学生班级: 07级二本共57班,老师:汪志勤等试题1(每小题3分,共12分)CABA试题2(每小题3分,共12分)CBDC试题3(每小题3分,共12分)BCDC试题4(每小题3分,共12分)AACB试题5(每小题3分,共12分)BCDA试题6(每小题3分,共12分)CADD试题7 (14分)编写程序,输入一个字符串,统计其中的英文字符、数字字符和其他字符的个数,并输出。参考答案以及评分标准:(不唯一)设定计数器3分,输入字符串2分,分类计数9分#include <stdio.h>#include <string.h>void main( ) char s80;int i,a=0,b=0,c=0,len;gets(s);len=strlen(s);for(i=0;i<len;i+)if(si>='a'&&si<='z'|si>='A'&&si<='Z')a+;else if(si>='0'&&si<='9')b+;elsec+;printf("a=%d,b=%d,c=%dn", a,b,c);试题8 (14分)编写程序,计算并输出下列算式的值:1+1/2!+1/3!+1/4!+1/5!。要求定义和调用函数Func(n)计算n!,函数返回值的类型是double,并将结果输入到C盘的根书目下文本文件test.txt中。参考答案以及评分标准:(不唯一)定义子函数4分,求阶乘5分,存入文件4分,格式1分;#include <stdio.h>double Func(int len)double res=1;int i;for(i=1;i<=len;i+)res=res*i;return res;void main()FILE *p;int n,i;double sum=0;scanf("%d", &n);for(i=1;i<=n;i+)sum=sum+1.0/Func(i);p=fopen("c:/test.txt", "w");fprintf(p,"%lf",sum);printf("%lfn",sum);fclose(p);第 9 页