浙工大C语言程序设计期末试卷4
(6页)
本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!
9.9 积分
2008/2009二学期C程序设计试卷说明:考生应将所有答案填写在答卷上,否则无效。一、 填空题(每小题2分,共20分)(1) 将a、b、c中最大值赋值到d的表达式是 (2) 若 k=5、s=0,执行 “while(k) s=s+k--;” 后,s、k 的值依次为 _⑶调用函数f(l.l,3)的返冋值是 ofloat f(float x, int n){ if(n=0) return 1; else return x*f(x, nT); }(4) 程序中使用了 C的库函数malloc,应包含的头文件为 (5) 下列程序段运行时的输出结果是 -char s[]="Windows ", t[]="xp"; printf (/z%s\nz,, strcat (s, t));(6) 函数f定义如下,执行语句sum二f(3)+f(5)后,sum的值应为_ int f(int in){ static int i=2; int s=0;for(;i<=m;i++) s+=i: return s; }(7) 定义函数f返回m行n列float类型数组屮最大值,其函数原型为(8) 表达式7|-2的值为 o(9) 若int类型变量a的当前值是7,执行'匕二小>2”后,a的值为_(10) 以“追加”方式打开文本文件e:\aa. txt的函数为 二、 程序阅读题(每小题8分,共24分)阅读下列程序,将运行时的输出结果写在答卷纸相应题号下。1. #include#inelude void main(){ double x[4]二{123. 45,-34. 72,0. 876,-765. 3} ; int i,y,k; for (i=0;i<4;i++) {y=fabs(x[ij); k二0;while (y) { k++; y/=10; }printf("%d\n", k);}}2. #include #inelude char *f(char *ss,int x){ int n;n= (int) log 10(x)/log 10(2) +1; ss[n]='\0';while(x!=0) { ss[--n]二char (x%2+'O') ; x/=2; }return ss+n;}void main(){ int i, a[4] = {12, 15, 21, 17}; char s[10];for(i=0;i<4;i++) puts(f(s, a[i]));}3. 运行时的输入数据为:10/ 5/ 24/ 6/ 35/ -4/ 0/^include ^include struct node { int x; node *next; };void main(){ node *head, *pl, *p2; int n二0; float ave二0; while(l) {p2 二(n ode*) ma Hoc (si zeo f (n ode));scanf("%cT, &p2->x); ave+=p2->x;if(n++=0) head二pl二p2; else {pl->next=p2;pl=p2;}if(p2->x~0) { p2-〉next二NULL; break; }}ave/=n; pl二head;while(pl->next) {if(pl->xx);pl=pl->ncxt;}}三、程序填空题(每空2分,共24分)阅读下列程序说明和程序,将答案填写在答卷纸相应题号下。1. 【程序说明】显示所输入整数的所有因子之和(输入12则显示1、2、3、4、6之和)。(1){ int m, s=l, i;scanf ("%d", &m);for ( (2) ; i<=m/2; i++) if ( (3) ) s二s+i;⑷ ;2. 【程序说明】调用find函数求实参数组中最大值,再调用find函数求实参数组中最小值。 ^include void main(){ float s, a[7] = {2, 6, 3, 8, 3, 12, 9}, find (float*, int, int);s 二find (a, 7, 1) ; _0J ;(2) ; printf (〃%f\rT, s);float find(float *p,int n,int flag){ int i; float t, fh;if(flag==l) fh=l: else fh二T;⑶ ;for(i=l;it*fh) t=p[i];(4) ;}3. 【函数说明】函数f统计并返回float类型二维数组中正数、负数和零的个数。 struet xxx { int zs, fs,lin; };xxx f( 0) ){ int i, j; _(2) y;(3) ;for(i=0;i0) y. zs++; else if (a[i] [j]<0) y. fs++; else y. 1 in++; (4) ;四、程序设计题(1、2小题各10分,第3小题12分,共32分)1. 编程,输入a (l
天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。