浙工大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++