10-11C语言设计试卷及答案 下载本文

内容发布更新时间 : 2024/6/28 18:28:48星期一 下面是文章的全部内容请认真阅读。

中国计量学院2010~ 2011 学年第 1 学期 《C语言程序设计1》课程考试试卷( A )

开课二级学院: 信息学院 ,考试时间: 年____月____日 时 考试形式:闭卷 允许带 笔、学生证或身份证 入场 考生姓名: 学号: 专业: 班级:

装 订 线 题序 得分 评卷人 一 二 三(1) 三(2) 总分 试题一:阅读程序,选择填空(试题一共3小题,每小题各含4个单项选择填空。每空3分,共36分)

1、【程序说明】输入10整数,将其中前5个数从小到大排序,然后输出这10个数。(调用函数排序,地址和值传递的过程,见讲义例37)

运行示例:

Enter 10 integers:10 98 -9 3 6 9 100 -1 0 2 After sorted:-9 3 6 10 98 9 100 -1 0 2 【程序】

#include

void sort ( (1) ) *(27)/*int x[ ]或int *x都可以,与下面的 出现的 x[i]对得上*/ { int i, j, k, t;

for ( i = 0; i < n-1; i++) { //书上的选择法

k = i ;

for ( j = k+1; j < n; j++)

if ( x[j] < x[k]) k = j; t = x[i];

(2) ;(70) x[k] = t;

} }

main()

{ int i, a[10];

printf(\ for(i = 0; i < 10; i++)

scanf(\(72)//a+i等价&a[i]

(4) D ; *(47)//sort(a,5)才能与sort(int x[ ], int n)相配

printf(\ for(i = 0; i < 10; i++)

printf(\}

【供选择的答案】

C(1)A、int x[n],int n

C、int *x,int n B(2)A、x[k]=x[j] x[j]=x[k] C(3)A、a[i]

B、*(a+i)

C、&a[i]

D、sort(a,5)

D、*a[i]

D(4)A、sort(a[5],5)

C、sort(a[],5)

2、【程序说明】输入一个3*4的二维数组,找出最小值以及它的行下标和列下标,并写入文本文件a.dat中。(求二维数组的最小值并记上下标,文件操作,见例21,例53)

运行示例:

Enter a array(3*4):5 19 0 -3 2 1 3 2 10 -9 6 -1 a.dat中的内容:

min = a[2][1] = -9 【程序】

#include main()

{ int i, j, row, col, min, a[3][4];

FILE *fp; //文件操作的四部曲,见讲义 printf(\ for(i = 0; i < 3; i++) for(j = 0; j < 4; j++)

scanf(\

(5) ; (75) row = col = 0;

for(i = 0; i < 3; i++) for(j = 0; j < 4; j++) if(a[i][j] < min ){ (6) ;(70)

row = i; col = j; }

(7) *(58) //以写的方式打开文件a.dat并使fp指向文件头部 fprintf(fp, \fclose(fp); }

【供选择的答案】

A(5) A、min = a[0][0]

C、a[row][col] = 0 C、min = a[i][j]

B、min = &a[0][0] D、min = -1

B、a[row][col] = a[i][j] D、a[row][col] = a[j][i] B、fp=fopen(”a.dat”,”r”); D、fopen(”a.dat”,”r”);

B、sort(a[10],10)

B、int *x,int *n D、int x,int n

C、x[k]=x[i]

D

B、x[i]=x[k]

C(6) A、min = a[row][col]

A(7) A、fp=fopen(”a.dat”,”w”);

C、fopen(”a.dat”,”w”);

B(8) A、a[i][j] B、a[row][col] C、a[j][i] D、

a[col][row] 3、【程序说明】输入一个以回车结束的字符串(少于80个字符),调用sym函数判断该字符串是否对称。若对称,输出”Yes”,否则输出”No”。(用指针定义自定义函数判定回文,见例41)

装 订 线

运行示例1:

Enter a string: abcDcba Yes

运行示例2:

Enter a string: abcdef No 【程序】

#include

int sym(char *s) //指针指向字符串头部

{ int i, n; //指针的类型,指向,移动和取值

for(n = 0; *(s+n) != ’\\0’; n++); for( i = 0; (9) ; i++ )(69)

if(*(s+i) != (10) )*(46)//s+i与s+n-i-1对称 return 0;;

(11) ;*(53) } main()

{ char str[80];

printf(\

gets(str);

if( (12) ) printf(\(67)//if( )的执行过程 else printf(\}

【供选择的答案】

D(9) A、*(s+i)==’\\0’ B、!s[i] A(10)A、*(s+n-i-1)

C、i<=n

D、i<=n/2 D、s[n-i] D、!sym(str)

B、*(s+n-i) C、'\\0'

D(11)A、else return 1 B、return I C、else return i D、return 1 B(12)A、sym(str)=1 B、sym(str)==1 C、sym(str)==0

试题二:阅读程序,选择运行结果(试题一共4小题,第1、2小题各含5个单项选

择填空,第3、4小题各含4个单项选择填空,共18个单项选择填空。每空2分,共36分)

【程序1】(continue, break, exit(0),switch( ), 多重循环,if~else的配对,见省二试卷)

程序1

#include main()

{ int i, m = 15, y = 0;