中国计量学院C语言程序设计1考试试卷A及答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中国计量学院
《C 语言程序设计(1)》课程考试试卷(A )及答案
开课二级学院:信息、机电、计测、质安,考试时间:xx 年xx 月xx 日xx 时
考试形式:闭卷 、开卷□,允许带 入场
考生姓名: 学号: 专业: 班级: 题序 一 二 三 四 五 六 七 八 九 总分 得分
评卷人
试题1(每小题3分,共12分) 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序说明】
输入若干个整数,统计奇数的个数和偶数的个数。

运行示例:
5 1 2 3 4 5
奇数的个数是:3
偶数的个数是:2
【程序】
#include <stdio.h> void main( ) { int n,i,on,jn,x; (1) on=0; (2) for (i=0; i<n; i++) { scanf("%d", &x); if( (3) )
on++;
else
jn++;
}
printf( (4) );
printf("偶数的个数是:%d\n", on); }
【供选择的答案】


线
(1) A、scanf("%d", n); B、scanf(%d, &n);
C、scanf(%d, n);
D、scanf("%d", &n);
(2) A、jn==0; B、jn==1;
C、jn=0;
D、jn=1;
(3) A、x%2 B、x/2
C、x%2==0
D、x/2==0
(4) A、"奇数的个数是:%d", jn B、奇数的个数是:%d\n, jn
C、"奇数的个数是:%d\n", jn
D、 "奇数的总数是:%d\n", jn
试题2(每小题3分,共12分)
阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序说明】
连续输入十个整数,找出并返回最大值及其下标。

运行示例:
10 9 8 7 6 5 4 3 2 1
max=10, imax=0
【程序】
#include <stdio.h>
void main( )
{
int i, max, imax;
(5)
for (i=1; i<11; i++)
{
scanf("%d", &a[i]);
}
max=a[1];
(6)
for(i=2; i<11; i++)
{
if( (7) )
{
(8)
imax=i;
}
}
printf("max=%d, imax=%d\n", max, imax);
}
【供选择的答案】
(5) A、int a[9]; B、int a[10];
C、int a[11];
D、int a(10);
(6) A、; B、imax=1;
C、imax=10;
D、imax=0;
(7) A、 max>a[i] B、 max<a{i}
C、 max<(a+i)
D、 max<a[i]
(8) A、a[i]=max; B、;
C、max=a[i];
D、max==a[i];
试题3(每小题3分,共12分)
阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序说明】
输入一个字符串,按照其ASCII值,从大到小排序。

运行示例:
cjlu
uljc
【程序】
#include <stdio.h>
(9)
void main( )
{
char s[80],temp;
int i,j,len;
gets(s);
(10)
for(i=0;i<len-1;i++)
for(j=0;j<len-1-i;j++)
if( (11) )
{
temp=s[j];
s[j]=s[j+1];
s[j+1]=temp;
}
(12)
}
【供选择的答案】
(9) A、#include <math.h> B、#include <string.h>
C、#include <stdlib.h>
D、#include <Ctype.h>
(10) A、length=strlen(s); B、length=sizeof(s);
C、len=strlen(s);
D、len=sizeof(s);
(11) A、’s[j+1]’>’s[j]’ B、s[j+1]+’A’>s[j]+’A’
C、s[j+1]+’0’>s[j]+’0’
D、*(s+j+1)>*(s+j)
(12) A、printf(%s,s); B、printf(s);
C、printf(“%c”,s);
D、puts(s);
试题4(每小题3分,共12分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序】
#include <stdio.h>
int k = 5;
void Test()
{
int k = 5; /* 第5行 */
printf("k=%d,", k);
k++;
}
void main()
{
int j;
for(j=0;j<2;j++)
Test();
printf("k=%d\n", k);
}
(13)程序的输出是(13) 。

A、k=5,k=6,k=7
B、k=5,k=6,k=5
C、k=5,k=5,k=6
D、k=5,k=5,k=5
(14)将第5行改为“static int k=5;”后,程序的输出是(14) 。

A、k=5,k=5,k=5
B、k=5,k=5,k=6
C、k=5,k=6,k=5
D、k=5,k=6,k=7
(15) 将第5行改为“k=5;”后,程序的输出是(15) 。

A、k=5,k=6,k=5
B、k=5,k=5,k=5
C、k=5,k=5,k=6
D、k=5,k=6,k=7
(16) 将第5行改为“;”后,程序的输出是(16) 。

A、k=5,k=5,k=6
B、k=5,k=6,k=7
C、k=5,k=5,k=5
D、k=5,k=6,k=5
试题5(每小题3分,共12分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序】
#include <stdio.h>
#include <string.h>
void swap(int * a,int * b)
{
int t;
t=*a;
*a=*b;
*b=t;
}
void swap1(int a, int b)
{
int t;
t=a;
a=b;
b=t;
}
void main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
int i;
for(i=0; i<10; i++) // 第23行
swap(&a[i],&a[9-i]);//第24行
for(i=0; i<10; i++)
printf("%d ", a[i]);
}
(17)程序的输出是(17) 。

A、1 2 3 4 5 6 7 8 9 10
B、10 9 8 7 6 5 4 3 2 1
C、0 1 2 3 4 5 6 7 8 9
D、 9 8 7 6 5 4 3 2 1 0
(18)将第23行改为“for(i=0; i<5; i++)”后,程序的输出是(18) 。

A、1 2 3 4 5 6 7 8 9 10
B、10 9 8 7 6 5 4 3 2 1
C、0 1 2 3 4 5 6 7 8 9
D、 9 8 7 6 5 4 3 2 1 0
(19) 将第24行改为“swap1(a[i],a[9-i]);”后,程序的输出是 (19) 。

A、1 2 3 4 5 6 7 8 9 10
B、10 9 8 7 6 5 4 3 2 1
C、0 1 2 3 4 5 6 7 8 9
D、 9 8 7 6 5 4 3 2 1 0
(20) 将第23行改为“for(i=0; i<5; i++);”,第24行改为“swap1(a[i],a[9-i]);”后,程序的输出是(20) 。

A、1 2 3 4 5 6 7 8 9 10
B、10 9 8 7 6 5 4 3 2 1
C、0 1 2 3 4 5 6 7 8 9
D、 9 8 7 6 5 4 3 2 1 0
试题6(每小题3分,共12分)
#include <stdio.h>
#include <string.h>
struct student
{
char name[80];
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 str[80];
struct student a[4] =
{{"Tom",60}, {"Jerry",80},{"Marry",70},{"Bill",90}},*pt;
gets(str);
pt=Find(str, a,4);
printf("%s,%d\n", pt->name,pt->grade);
}
(21) 用户输入“Tom”,程序运行时,输出 (21) 。

A、Tom,60
B、tom,60
C、Jerry,80
D、Bill,90
(22) 用户输入“Jerry”,程序运行时,输出(22) 。

A、Marry,70
B、Jerry,80
C、Bill,90
D、Tom,60
(23) 用户输入“tom”,程序运行时,输出 (23) 。

A、Tom,60
B、tom,60
C、Jerry,80
D、Bill,90
(24) 用户输入“Bill”,程序运行时,输出 (24) 。

A、Tom,60
B、tom,60
C、Marry,80
D、Bill,90
试题7 (14分)
编写程序,输入50个学生的数学成绩和英语成绩int grade[50][3],统计并输出每门课程的平均分以及至少一门课程不及格学生的人数、两门课程都不及格的人数。

试题8 (14分)
编写程序,输入一个正整数n,计算并输出下列算式的值。

要求定义和调用函数Func(n)计算1+1/2+1/3+……+1/n,函数返回值的类型是double,并将结果输入到C盘根目录下的文本文件test.txt中。

中国计量学院
《C语言程序设计(1)》课程考试试卷(A)
参考答案以及评分标准
开课二级学院:信息/计测/机电/质安,学生班级:07级二本共57班,教师:
试题1(每小题3分,共12分)DCCC
试题2(每小题3分,共12分)CBDC
试题3(每小题3分,共12分)BC(B\C\D均可)D
试题4(每小题3分,共12分)DCCB
试题5(每小题3分,共12分)ABAA
试题6(每小题3分,共12分)CADD
试题7 (14分)#include <stdio.h>
#define N 50 // 以上1分
void main()
{
int grade[N][3];
int i;
int num1=0, num2=0;
double ave1=0,ave2=0; // 以上1分
for(i=0;i<N;i++)
scanf("%d%d",&grade[i][0],&grade[i][1]); // 以上1分
for(i=0;i<N;i++) // 1分
{
ave1=ave1+grade[i][0]; // 1分
ave2=ave2+grade[i][1]; // 1分
}
ave1=ave1/N;
ave2=ave2/N;//以上1分
printf("%lf,%lf\n", ave1,ave2); // 1分
for(i=0;i<N;i++) // 1分
{
if(grade[i][0]<60||grade[i][1]<60) // 1分num1++; // 1分
if(grade[i][0]<60&&grade[i][1]<60) // 1分num2++; // 1分
}
printf("%d,%d\n", num1, num2); // 1分
}
试题8 (14分)#include <stdio.h> // 1分
double Func(int len) // 1分
{
int i=1;
double sum=0; // 1分
for(;i<=len;i++) // 1分
{
sum=sum+1.0/i; // 2分
}
return sum; // 1分
}
void main()
{
int n;
FILE *p; // 以上1分
scanf("%d", &n); // 1分
printf("%lf\n", Func(n)); // 1分
p=fopen("c://test.txt","w"); // 1分
fprintf(p,"%lf",Func(n)); // 2分
fclose(p); // 1分
}。

相关文档
最新文档