2007级C语言程序设计试卷_1B(2008.6) 下载本文

三、程序改错题:(每题 6 分,共 12 分)

(说明:请将”found error”行的错误更正, 并将正确答案按照题号填写在“程序改错题答题处”,不可增加语句)

1.下面程序的功能是:显示100~200之间的所有素数。

#include main() { int i,j; for (i=100;i<=200;i++) { for (j=1; j<=sqrt(i); j++) /* found error 【51】 */ if(i%j==0) continue ; /* found error 【52】 */ if ( i%j == 0 ) /* found error 【53】 */ printf(\ } }

2.以下程序的功能是:采用“冒泡排序法”对N个数据进行升序排序。

# define N 10 main() { int i, j, k;

float a[N]={9,1,0,8,2,7,3,6,4,5}, t;

for (i=0; i<=N ; i++) /* found error 【54】 */ for (j=i; ja[j+1] ) { t=a[j], a[j]=a[i], a[i]=t;} /* found error 【56】 */ for (i=0;i

四、完善程序填空题:(每空2分,共18分)

(说明:请将正确答案按照题号填写在“程序改错题答题处”)

1.以下程序的功能是:从10个数中找出最大值和最小值。请填空完善程序。

int max , min ;

void find(int *p ,int n) { int *q ;

max=min=*p;

for (q=p; 【57】 ;q++) if (max<*q) max=*q;

else if ( 【58】 ) min=*q;

}

第 11 页 共 12 页

main()

{ int i,num[10];

for (i=0;i<10;i++) scanf(\ 【59】 ; printf(\}

2.函数fun的功能是:使一个字符串按逆序存放,请填空完善程序。 void fun (char str[] ) { char m; int i, j;

for(i=0,j=strlen(str);i< 【60】 ;i++, 【61】 ) { m=str[i];

str[i]= 【62】 ; str[j-1]=m; } printf(\ }

3.二进制文件t2.dat中存有若干个学生的姓名和成绩。下面程序的功能是:查找所有学生中成绩最高的学生信息。请填空完善程序。

#include struct student

{ char name[10]; int score; }; main()

{ FILE *fp;

struct student p,maxp; fp= 【63】 ; maxp.score=0;

while(fread(&p,sizeof(p),1,fp)!=0 ) if (maxp.score

第 12 页 共 12 页