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

2.下列程序的运行结果是 【42】 。

main()

{ int a=2,b=3,c=4,d=5,x=0; if(a

if (!c) x=1; else x=2; else

if (d) x=3; else x=4;

printf(\}

3.下列程序的运行结果是 【43】 。

main()

{ int m=24,n=9,t; t=m%n; while(t)

{ m=n,n=t,t=m%n; }

printf(\}

4.下列程序的运行结果是_ 【44】 。

#include main()

{ int c=5;

printf(\ }

5.下列程序的运行结果是_ 【45】 。

main()

{ char a[3][6]={\ int i,j,n[3];

for(i=0;i<3;i++) { for(j=0;j<6;j++) if (a[i][j]=='\\0')

{ n[i]=j; break; } printf(\ } }

第 9 页 共 13 页

6.下列程序的运行结果是 【46】 。

#include main()

{ int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; int *p=a[0];

printf(\}

7.下列程序的运行结果是 【47】 。

void f(int *a, int b) { *a=*a+10; b=b+100; } main()

{ int x=5, y=8; f(&x, y);

printf(\ }

8.下列程序的运行结果是 【48】 。

int fun(int n) { if (n==0) return 0; else

return n+fun(n-1); }

main()

{ printf(\}

9.下列程序的运行结果是 【49】 。

#define MAX 3 int a[MAX]; void fun1() { int k,t=0;

for (k=0; k

for (k=0; k

{ fun2(a); }

第 10 页 共 13 页

} 10.下列程序的运行结果是 【50】 。

#include struct sample { int a,b; char ch[5]; };

void f1(struct sample *); main()

{ struct sample arg;

arg.a=1000; arg.b=100; strcpy(arg.ch , \

f1(&arg); printf(\ %s\\n\}

void f1(struct sample *parm)

{ parm->a = parm->a + parm->b; parm->ch[2] = 'x'; }

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

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

x2x3??? ,从键盘输入x,求ex的1.下面程序的功能是:利用公式 e?1?x?2!3!x近似值 ,直到最后一项的绝对值小于10-6为止。请填空完善程序

#include main()

{ float t, x, e; int i;

scanf(\

t=1, i=1, e = x ; /* found error 【51】 */ do

{ t= x*x / i ; /* found error 【52】 */ e += t; i++;

}while(abs(t)<1e-6); /* found error 【53】 */ printf(\}

第 11 页 共 13 页

2.假设数组a的各元素已经按从小到大的顺序排序,下面程序的功能是利用二分查找算法在数组a中查找是否有一个元素的值是b。如果存在,显示该元素的下标,否则显示-1。请填空完善程序。

#define N 10 main()

{ int a[N]={2,5,7,9,12,15,16,19,23,26}, b, low, high, mid; scanf(\

low=0; high=N-1; mid=(low+high)/2; while(low

{ if (b = a[mid]) /* found error 【54】 */ break;

else if ( b > a[mid] ) /* found error 【55】 */ high= mid -1; else

low= mid +1;

mid=(low+high)/2 ; }

if ( low > high ) /* found error 【56】 */ printf(\ else

printf(\}

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

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

1.下面程序的功能是:求给定四个字符串中最大的一个,并输出。请填空完善程序。

#include #include main()

{ char *s[]={\ char *max; int i;

【57】 ; for(i=1; i<=3; i++)

if (strcmp(max,s[i]) 【58】 ) max= s[i];

puts( 【59】 ); }

第 12 页 共 13 页

2.下面程序的功能是:通过函数 average 计算数组中各元素的平均值。请填空完善程序。 float average (int *pa, int n) { int i; float avg = 0.0; for (i=0; i

3.下面程序的功能是:从键盘输入一串以回车结束的字符,并将它们写入到文本文件E:\\t1.txt中。要求小写字母转换为大写字母写入文件,大写字母和其它字符直接写入文件。请填空完善程序。 #include main()

{ 【63】 *fp ; char ch;

fp=fopen( \ 【64】 ); while( (ch=getchar()) != '\\n' ) { if ( ch >= 'a' && ch <= 'z' ) ch -= 32 ;

【65】 ; }

fclose(fp); }

第 13 页 共 13 页