资源描述:
《浙工大C语言程序设计期末试卷4》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、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)的返冋值是ofloatf(floatx,intn){if(n=0)return1;elsereturnx*f(x,nT);}(4)程序中使用了C的库函数malloc,应包含的头文件为(5)下列程序段运行时的输出结果是-chars[]="Windows",
2、t[]="xp";printf(/z%sz,,strcat(s,t));(6)函数f定义如下,执行语句sum二f(3)+f(5)后,sum的值应为_intf(intin){staticinti=2;ints=0;for(;i<=m;i++)s+=i:returns;}(7)定义函数f返回m行n列float类型数组屮最大值,其函数原型为(8)表达式7
3、-2的值为o(9)若int类型变量a的当前值是7,执行'匕二小>2”后,a的值为_(10)以“追加”方式打开文本文件e:aa.txt的函数为二、程序阅读题(每小题8分,共
4、24分)阅读下列程序,将运行时的输出结果写在答卷纸相应题号下。1.#include#ineludevoidmain(){doublex[4]二{123.45,-34.72,0.876,-765.3};inti,y,k;for(i=0;i<4;i++){y=fabs(x[ij);k二0;while(y){k++;y/=10;}printf("%d",k);}}2.#include#ineludechar*f(char*ss,intx){intn;n=(i
5、nt)log10(x)/log10(2)+1;ss[n]=' ';while(x!=0){ss[--n]二char(x%2+'O');x/=2;}returnss+n;}voidmain(){inti,a[4]={12,15,21,17};chars[10];for(i=0;i<4;i++)puts(f(s,a[i]));}1.运行时的输入数据为:10/5/24/6/35/-4/0/^include^includestructnode{intx;node*next;};voidmai
6、n(){node*head,*pl,*p2;intn二0;floatave二0;while(l){p2二(node*)maHoc(sizeof(node));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;
7、}}三、程序填空题(每空2分,共24分)阅读下列程序说明和程序,将答案填写在答卷纸相应题号下。1.【程序说明】显示所输入整数的所有因子之和(输入12则显示1、2、3、4、6之和)。(1){intm,s=l,i;scanf("%d",&m);for((2);i<=m/2;i++)if((3))s二s+i;⑷;2.【程序说明】调用find函数求实参数组中最大值,再调用find函数求实参数组中最小值。^includevoidmain(){floats,a[7]={2,6,3,8,3,12,9},find(flo
8、at*,int,int);s二find(a,7,1);_0J;(2);printf(〃%frT,s);floatfind(float*p,intn,intflag){inti;floatt,fh;if(flag==l)fh=l:elsefh二T;⑶;for(i=l;it*fh)t=p[i];(4);}1.【函数说明】函数f统计并返回float类型二维数组中正数、负数和零的个数。struetxxx{intzs,fs,lin;};xxxf(0)){inti,j;_(2)y;(3);for(i
9、=0;i0)y.zs++;elseif(a[i][j]<0)y.fs++;elsey.1in++;(4);四、程序设计题(1、2小题各10分,第3小题12分,共32分)1.编程,输入a(l