中国计量学院20 ~ 20 学年第 学期 《 C语言程序设计 》课程考试试卷( A )
开课二级学院: 信息工程学院 ,考试时间: 年____月____日 时 考试形式:闭卷√、开卷□,允许带 入场 考生姓名: 学号: 专业: 班级:
装 订 线 题序 得分 评卷人 一 二 总分
一、选择题(每小题3分,共72分)
1. 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】求 2/3 + 3/4 + 4/5 + 5/6 + 6/7… 的前10项之和。 运行示例: sum = 8.396789 【程序】
#include
{ int i, b = 2; double s; (1) for(i = 1; (2) ; i++){ s = s + (3) ; (4) }
printf(“sum = %f\\n”, s); return 0; }
【供选择的答案】 (1)A、s = 0; B、s = 1; C、s = -1; D、; (2)A、i<10 B、i <= 10 C、i>10 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*4的二维数组,找出最大值以及它的行下标和列下标,并写入文本文件a.txt中。 运行示例:
中国计量学院20 ? 20 学年第 2 学期《C语言程序设计》课程试卷(A)第 1 页 共 6 页
Enter a array(3*4): 7 18 0 -5 2 -1 6 3 -10 8 9 -2
a.dat中的内容:max = a[0][1] =18 【程序】 #include
{ int i, j, row, col, max, a[3][4]; FILE *fp;
printf(“Enter array(3*4):\\n”); for(i = 0; i < 3; i++) for(j = 0; j < 4; j++) scanf(“%d”, &a[i][j] );
(5) ; row = col = 0;
for(i = 0; i < 3; i++) for(j = 0; j < 4; j++) if(a[i][j] > max ){ (6) ;
row = i; col = j; }
(7) fprintf(fp, “max = a[%d][%d] = %d\\n”, row, col, (8) ); fclose(fp); }
【供选择的答案】 (5) A、max = a[0][0] (6) A、max = a[row][col] C、max = a[i][j]
B、max = &a[0][0] C、a[row][col] = 0
B、a[i][j] = max D、a[row][col] = max
D、max = 100
(7) A、fp=fopen(“a.txt”,”w”); C、fopen(“a.txt”,”w”); (8) A、a[i][j]
B、fp=fopen(“a.txt”,”r”); D、fopen(“a.txt”,”r”);
C、a[j][i]
D、a[col][row]
B、a[row][col]
3. 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】函数reverse ( char *s ) 将字符串s逆置。例如字符串 “123abc”,经过逆置后变为” cba321”。主函数从键盘读取一个字符串,调用reverse ( char *s )函数后,将逆置后字符串输出。 【程序】
#include
中国计量学院20 ? 20 学年第 2 学期《C语言程序设计》课程试卷(A)第 2 页 共 6 页
{ 装 订 线
char *str, ch ;
if ( *s == ‘\\0’ ) return ; str= ( 9 ) ; while (s < str) {
ch = *s ; *s = *str; *str = ch ;
( 10 )
} }
void main() {
char str[80];
int i=0; ( 11 ) ; ( 12 ) ; printf(“%s”, str) ; }
【供选择的答案】 (9) A、strlen(s) (10)A、str--;
B、strlen(s)-1 C、s+strlen(s) B、str++; s--; C、s++;
D、s+strlen(s)-1 D、str--; s++;
(11)A、gets(str) B、getchar(str) C、scanf(“%s”, &str); D、scanf(“%c”, str);
4. 阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序1】
#include
{ int i, m = 14, y = 0;
for (i = 2; i <= m/2; i++) if (m % i == 0)
{ y++ ; continue; } printf(“%d”, y); }
【程序2】
#include
{ int i, m = 14, y = 0;
for (i = 2; i <= m/2; i++) if (m % i == 0)
{ y++ ; break; }
printf(“%d”, y);
中国计量学院20 ? 20 学年第 2 学期《C语言程序设计》课程试卷(A)第 3 页 共 6 页
(12)A、reverse(char *str) B、reverse (char str[]) C、reverse(str) D、str= reverse(str)
}
【程序3】
#include
{ char choice=‘2’ ; switch(choice){
case '1': printf(“A”); case '2': printf(“B”);
case '3': printf(“C”); break; default: printf(“D”); } }
【程序4】
#include
{ int j, k, s1, s2; s1 = s2 = 0;
for (j = 1; j <= 4; j++) { s1++;
for (k = 1; k <= j; k++) s2++; }
printf(“%d %d”, s1, s2); }
【供选择的答案】
(13) 程序1运行时,输出 。 A、0 A、0 A、B
B、1 B、1
C、2 C、2
D、3 D、3
(14) 程序2运行时,输出 。 (15) 程序3运行时,输出 。
B、BC
C、BCD
D、ABCD
(16) 程序4运行时,输出 。
A、0 10 B、4 0 C、4 4 D、4 10
5. 阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。 #include
{ int k = 1 ; s = s + k; k++; }
中国计量学院20 ? 20 学年第 2 学期《C语言程序设计》课程试卷(A)第 4 页 共 6 页
void f2( int n ) { if(n>3) f2(n/4); 装 订 线
printf(“%d”, n%4); }
void main()
{ int i, a = 2, b = 3 ;
printf(“%d\\n”, M(a+b, a-b)); printf(“%d\\n”, s ); for( i=1; i<3; i++) f1();
printf(\ f2(100); }
【供选择的答案】
(17) 程序运行时,第1行输出 A、-1 A、0 A、0
B、-5
(18) 程序运行时,第2行输出 B、1
B、1
(19) 程序运行时,第3行输出 (20) 程序运行时,第4行输出 A、1210
。 。
C、2
C、2
D、3
D、3 D、0
。
C、5
D、7
。
C、100
B、0121
6. 阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序1】 #include
char ch, a[10], *s[10] = {\ while ((ch = getchar())!=‘\\n’ && k < 9 ) if (ch>=‘5’ && ch<=‘8’) a[k++] = ch; a[k] = '\\0';
for (k = 0; a[k]!= '\\0'; k++)
printf(\‘9’-a[k])-1] );
}
【程序2】 #include
中国计量学院20 ? 20 学年第 2 学期《C语言程序设计》课程试卷(A)第 5 页 共 6 页