浙工大C语言程序设计期末试卷13

2007/08二学期C程序设计试卷

说明:考生应将所有答案填写在答卷上,否则无效。 一、填空题(每小题2分,共20分)

⑴ 判断变量a、b中必有且只有一个为0的逻辑表达式为 。

⑵ 若a=52、b=23、c=-19,表达式“((y=(a

⑸ 声明“char s1[20]=\张三56\”后,使字符串s1为\张三\的赋值表达式为 。 ⑹ 在一维float类型数组中查找并返回最大值与最小值的函数f原型是 。 ⑺ 动态分配n个double类型数据存储空间并将首地址返回指针变量p,写作 。 ⑻ x、y均为结构体类型变量,语句“x=y;”在 的条件下可以执行。 ⑼ 执行“n=-37; n^=25; m=n^25;后”,m的值为 。 ⑽ 执行“a=3; b=-7; c=a&b;”后,c的值为 。 二、程序阅读题(每小题8分,共24分)

阅读下列程序,将运行时的输出结果写在答卷纸相应题号下。 1. #include void main()

{ float a[4][3]={{2.3,-1.5,2.6},{1.2,13.4,-3.2},{2.1,1.4,-2},{6.2,1.4,2}}; int i,j,i0=0,j0=0; float c; for(i=0;i<4;i++)

for(j=0;j<3;j++) if(a[i][j]>a[i0][j0]) { i0=i;j0=j;} for(j=0;j<3;j++){ c=a[0][j];a[0][j]=a[i0][j];a[i0][j]=c;} for(i=0;i<4;i++) {

for(j=0;j<3;j++) printf(\ } }

2. #include void f(int x) { int y=x;

printf(\ if(x/10) f(x/10); }

void main() {

f(1234); }

3. #include #include

int f(char *s)

{ int i; for(i=0;s[i]!='\\0';i++)

if(s[i]=='_') { strcpy(s+i,s+i+1);return 1;} return 0; }

void main()

{ char ss[40]=\ while(f(ss)) puts(ss); }

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

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

1.【程序说明】输入正整数x,求k1、k2、k3、k4、k5使得x=50?k1+20?k2+10?k3+5?k4

+k5,且k1+k2+k3+k4+k5为最小。

⑴ void main()

{ int x,k1,k2,k3,k4,k5;

while(scanf(\⑵ ); k1=x/50; x=xP; k2=x/20; ⑶ ; k3=x/10; x=x; ⑷ ; k5=x%5;

printf(\ }

2

2.【函数说明】下列程序计算方程a?x+b?x+c=0的实根。 #include #include struct root { ⑴ ; };

root f(float a,float b,float c) { ⑵ ;

x.x1=(-b+sqrt(b*b-4*a*c))/2/a; x.x2=(-b-sqrt(b*b-4*a*c))/2/a; ⑶ ; }

void main() { float a,b,c; root y;

scanf(\ if(b*b-4*a*c<0)

printf(\方程无实根\\n\ else {

y=f(a,b,c); printf(\⑷ ); } }

3.【函数说明】head为stu类型节点组成链表的头指针,删除所有满足条件“cj<60”的节点,函数返回头指针或NULL。

类型标识符stu定义为 struct stu { char name[9]; int cj; stu *next; }; stu *del_stu(stu *head) { ⑴ ; while(1) {

if(head==NULL) return NULL;

if(head->cj<60) { p1=head; ⑵ ; free(p1);} else break; }

p1=head;

while(p1->next!= ⑶ ) { ⑷ ;

if(p2->cj<60) { p1->next=p2->next;free(p2); } }

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

1. 编程,输入若干个数x,输出函数x=sin(y)所对应的y值(角度值)。当输入的x之绝对值大于1时运行结束。

2. 编写通用函数,将double类型一维数组按值从小到大排序。

3. 文本文件e:\\c.txt 中,按统一格式存储若干行信息。每行12个字符分别为:学号(8位字符)、考试成绩(3位整数)、交作业次数(1位整数)。编程,更新该文件中的信息,将所有学生成绩再加交作业次数(相加后的成绩若大于100则按100写入)。

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4