浙工大C语言程序设计试卷1

  • 格式:doc
  • 大小:91.50 KB
  • 文档页数:6

1 2008/2009一学期C程序设计试卷

说明:考生应将所有答案填写在答卷上,否则无效。

一、填空题(每小题2分,共20分)

⑴ 求正整数m的位数,相应C的算术表达式为 。

⑵ 执行程序段“for(i=1;i<15;i=i+4) s=s+i;”后,i的值为 。

⑶ 程序中使用了C的库函数 islower,应包含的头文件为 。

⑷ 下列程序段运行时的输出结果是 。

char p[]={'a','b','c'},q[]="abc"; printf("%d,%d\n",sizeof(p),sizeof(q));

⑸ 下列程序段运行时的输出结果是 。

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2; printf("%d\n",*p+*q);

⑹ 定义函数f,其功能是计算多项式a0+a1x+a2x2+a3x3+...+ an-1xn-1的和,函数f原

型是 。

⑺ 定义函数f,其功能是在一个二维数组中查找最大值的行、列号(要求可传递到主调函

数),函数f原型是 。

⑻ x、y均为结构体类型变量,语句“x=y;”在 的条件下可以执行。

⑼ 若int类型变量a的当前值是52,执行“a/=2^1;”后,a 的值为 。

⑽ 打开g盘根目录下文本文件aaa.txt用于读数据的语句是 fp= ;。

二、程序阅读题(每小题8分,共24分)

阅读下列程序,将运行时的输出结果写在答卷纸相应题号下。

1. #include

void main()

{ int i,j, a[4][4]={{2,-1,2,7},{2,4,3,5},{1,4,-2,3},{4,-2,8,3}};

for(i=0;i<4;i++)

for(j=0;j<4;j++) a[i][j]/=a[i][i];

for(i=0;i<4;i++) {

for(j=0;j<4;j++) printf("%4d",a[i][j]); putchar('\n');

}

}

2. #include

int f(int x,int y)

{ static int a=1;

return a=a+x+y;

}

void main()

{ int a=10,b,c,i;

b=10*a++;

for(i=1;i<3;i++) c=f(a,b);

printf("a,b,c:\n%d\n%d\n%d\n",a,b,c);

} 2 3. #include

#include

void strc(char *strDest, char *strSrc)

{ char temp[80],*p;int i=0;

strcpy(temp,strDest+1);

for(p=strDest+1; p<=strDest+strlen(strSrc); p++) *p=strSrc[i++];

*p='\0'; strcat(strDest,temp);

}

void main()

{ int i;char a[80]="Windows_xp,word_2003,VC_6.0";

for(i=0; a[i]!='\0';i++) if(a[i]==',') strc(a+i,"Microsoft ");

puts(a);

}

三、程序填空题(每空2分,共24分)

阅读下列程序说明和程序,将答案填写在答卷纸相应题号下。

1.【程序说明】输入m后,输出下列形式(以m等于5为例)的m行、m列数字方阵。

1 2 3 4 5 2 3 4 5 1

3 4 5 1 2 4 5 1 2 3 5 1 2 3 4

#include

void main ( )

{ int i,j,k,m;

⑴ ;

for(i=1; ⑵ ;i++) {

for(j=1; ⑶ ;j++) printf(" %d",i+j-1);

for(k=1;j<=m;⑷ ) printf(" %d",k);

printf("\n");

}

}

2.【程序说明】输入20个数,然后输出他们的平均值、他们中与平均值之差为最小的数。

#include

#include

void main()

{ float a[N],x,v=0,d; int i;

for(i=0;i

v/=20; x=a[0];

d= ⑵ ;

for(i=1;i

if( ⑶ ) { d=a[i]-v; ⑷ ; }

printf("%f %f\n",v,x);

} 3 3.【函数说明】链表的节点类型声明如下,下列函数create用于创建含n个stu类型节点的单向链表,函数返回值为链表的头指针。

struct stu { char name[9]; int cj; stu *next; };

⑴ create(int n)

{ int i; stu *h,*p1,*p2;

p1=h= ⑵ ;

scanf("%s%d",h->name,&h->cj);

for(i=2;i<=n;i++) {

p2=(stu*)malloc(sizeof(stu));

scanf("%s%d",p2->name,&p2->cj);

p1->next=p2; ⑶ ;

}

⑷ ;

return h;

}

四、程序设计题(1、2小题各10分,第3小题12分,共32分)

1. 编程,输入x(x>1),正方形A1的边长为x,A2是A1的内接正方形,A3是A2的内接正方形,...,A10是A9的内接正方形。计算并显示A10的面积。

2. 编写通用函数,计算下列表达式的值。

3. 文本文件e:\aaa.txt 中按统一格式已存储若干行学生信息:学号8位字符、空格、成绩3位整数)。编程,将所有需要补考的学生之学号、成绩写入到文本文件e:\bbb.txt 中。 4 2008/09一学期C程序设计答卷

选课班级任课教师 班级

学号 考生姓名

题号(题分) 一(20) 二(24) 三(24) 四(32)

总分

得分

一、填空题(每小题2分,共20分)

⑴ ⑵ ⑶ ⑷ ⑸

⑺ ⑻

⑼ ⑽

二、程序阅读题(每小题8分,共24分)

1. 2.

3.

三、程序填空题(每空2分,共24分)

1. ⑴ ⑵ ⑶ ⑷

2.⑴ ⑵ ⑶ ⑷

3. ⑴ ⑵ ⑶ ⑷

四、程序设计题(1、2小题各10分,第3小题12分,共32分)

1. 编程,输入x(x>1),正方形A1的边长为x,A2是A1的内接正方形,A3是A2的内接正方形,...,A10是A9的内接正方形。计算并显示A10的面积。

5 2. 编写通用函数,计算下列表达式的值。

3. 文本文件e:\aaa.txt 中按统一格式已存储若干行学生信息:学号8位字符、空格、成绩3位整数)。编程,将所有需要补考的学生之学号、成绩写入到文本文件e:\bbb.txt 中。 6 2008/09一学期C程序设计参考答案

一、填空题(每小题2分,共20分)

⑴ (int)log10(m)+1 ⑵ 17 ⑶ ctype.h ⑷ 3,4 ⑸ 10

⑹ float f(float *a,float x,int n)

⑺ void f(float **a,int m, int n,int *i1,int *i2) ⑻ x、y为相同类型

⑼ 17 ⑽ fopen("g:\\aaa.txt","r")

二、程序阅读题(每小题8分,共24分)

1. 1 -1 2 7 2. a,b,c:

0 1 3 5 11

0 -2 1 3 100

1 0 2 1 223

3.

Windows_xp,Microsoft word_2003,Microsofr VC_6.0

三、程序填空题(每空2分,共24分)

1. ⑴ scanf("%d",&m) ⑵ i<=m ⑶ j<=m+1-i ⑷ j++,k++