您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 浙工大C语言程序设计期末试卷6
12009/2010二学期C程序设计试卷说明:考生应将所有答案填写在答卷上,否则无效。一、填空题(每小题2分,共20分)1.表达式“pow(27,1/3)”的值为。2.声明“intx=24,y=3;”,执行语句“x%=x++/--y;”,x的值为。3.将条件“a、b不全为0”写作C的逻辑表达式为。4.自定义函数f计算平面上两点间的距离,函数原型应为。5.自定义函数f如下,表达式f(5)的值为。intf(intn){returnn0?n*f(n-1):1;}6.声明“chars1[20]=Windows2007”,执行“s1[7]='\0';puts(s1)”的显示结果为。7.函数f定义如下,执行语句sum=f(3)+f(5)后,sum的值应为。intf(intm){staticinti=2;ints=0;for(;i=m;i++)s+=i;returns;}8.数组定义为“inta[4][5];”,引用“a[1]+3”表示。9.声明“intx=23;”,执行“x=x2;”后x的值为。10.x是32位int类型变量,设置其最高位为1的赋值语句为。二、程序阅读题(每小题8分,共24分)阅读下列程序,将运行时的输出结果写在答卷纸相应题号下。1.#includestdio.hvoidmain(){inti,j,a[6]={1,4,3,2,5,-2},b[6]={2,4,3,4,2,1};for(i=0;i6;i++)for(j=0;j6;j++)if(a[i]==b[j]){printf(%d\t,a[i]);break;}putchar('\n');}2.#includestdio.hvoidf2(intx){if(x1)f2(x/2);printf(%d,x%2);}voidmain(){inti,a[4]={6,12,25,27};for(i=0;i4;i++){printf(%d--,a[i]);f2(a[i]);printf();}putchar('\n');}23.#includestdio.hstructaaa{inti1,j1,i2,j2;};structaaaf3(double**a,intn){inti,j;doublex1,x2;structaaay;x1=x2=a[0][0];for(i=0;in;i++)for(j=0;jn;j++){if(a[i][j]=x1){x1=a[i][j];y.i1=i;y.j1=j;}if(a[i][j]=x2){x2=a[i][j];y.i2=i;y.j2=j;}}returny;}voidmain(){structaaax;doubleb[4][4]={{1,3,-2,4},{2,5,7,-5},{-6,2,-3,1},{3,4,3,1}};double*c[4]={b[0],b[1],b[2],b[3]};x=f3(c,4);printf(%d\t%d\t%d\t%d\n,x.i1,x.j1,x.i2,x.j2);}三、程序填空题(每空2分,共16分)阅读下列程序说明和程序,将答案填写在答卷纸相应题号下。1.【程序说明】输入1个大于2的整数,判断其是否为2个大于1的整数的乘积。#includestdio.h⑴voidmain(){intm,i;while(⑵,m3);for(i=2;i=sqrt(m);i++)if(⑶){printf(%d*%d=%d\n,i,m/i,m);break;}if(⑷)printf(不可分解\n);}2.【函数说明】h为student类型节点组成链表的头指针,删除从头节点起第1个满足“cj60”的节点。*flag为0表示链表中无可删除节点。类型标识符student定义为structstudent{charname[9];intcj;student*next;};student*del_stu(student*h,int*flag){student⑴;*flag=0;if(h==NULL)returnh;if(⑵){/*删除头节点*/h=h-next;free(p1);*flag=1;returnh;}while(p1-next!=NULL){3⑶;/*p2指向下一节点*/if(p2-cj60){/*p2指向需删除节点则删除*/⑷;free(p2);*flag=1;break;}elsep1=p2;}returnh;}四、程序设计题(每小题各10分,共40分)1.输入a、b、c三个数,判断分别以a、b、c为边长能否组成三角形,并显示判断结果。2.输入正整数n后,输入n个实数到一维数组a,按值从小到大排序后输出(提示:用malloc函数动态分配数组a的存储空间)。3.自定义函数f,调用f可返回n个int类型数组元素中出现次数最多的那个元素值。如全体数组元素为1、5、7、-3、6、5、1、6、4、5、3,则返回5。4.文本文件e:\score_a.txt中按格式“%12s%4d%4d”存储若干行信息,分别为学号、程序设计课程的考试成绩、平时成绩。编程,在文件e:\score_b.txt中写入增加了总成绩的学生信息:总成绩=考试成绩×0.85+平时成绩×0.15。42009/2010二学期C程序设计答卷选课班级任课教师班级学号考生姓名题号(题分)一(20)二(24)三(16)四(40)总分得分一、填空题(每小题2分,共20分)⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽二、程序阅读题(每小题8分,共24分)1.2.3.三、程序填空题(每空2分,共16分)1.⑴⑵⑶⑷2.⑴⑵⑶⑷四、程序设计题(每小题10分,共40分)1.输入a、b、c三个数,判断分别以a、b、c为边长能否组成三角形,并显示判断结果。2.输入正整数n后,输入n个实数到一维数组a,按值从小到大排序后输出(提示:用malloc函数动态分配数组a的存储空间)。53.自定义函数f,调用f可返回n个int类型数组元素中出现次数最多的那个元素值。4.文本文件e:\score_a.txt中按格式“%12s%4d%4d”存储若干行信息,分别为学号、程序设计课程的考试成绩、平时成绩。编程,在文件e:\score_b.txt中写入增加了总成绩的学生信息:总成绩=考试成绩×0.85+平时成绩×0.15。62009/2010二学期C程序设计参考答案一、填空题(每小题2分,共20分)⑴1⑵1⑶!(a==0&&b==0)⑷floatf(float,float,float,float)⑸120⑹Windows⑺14⑻&a[1][3]⑼5⑽x=x|0x8000二、程序阅读题(每小题8分,共24分)1.14322.6--11012--110025--1100127--110113.1220三、程序填空题(每空2分,共16分)1.⑴#includemath.h⑵scanf(%d,&m)⑶m/i==(int)(m/i)⑷isqrt(m)2.⑴*p1=h,*p2⑵h-cj60⑶p2=p1-next⑷p1-next=p2-next四、程序设计题(每小题10分,共40分)程序1.#includestdio.h程序2.#includestdio.hvoidmain()#includestdlib.h{floata,b,c;voidmain()if(a+bc&&a+cb&&b+ca){intn,i,j,k;float*a,temp;printf(Yes\n);scanf(%d,&n);elsea=(float*)malloc(sizeof(float)*n);printf(No\n);for(i=0;in;i++)scanf(%f,a+i);}for(i=0;in-1;i++){k=i;程序3.intf(int*a,intn)for(j=i+1;jn;j++)if(a[j]a[k])k=j;{inty=a[0],max=0,d,i,j;temp=a[i];a[i]=a[k];a[k]=temp;for(i=0;in;i++){}d=0;for(i=0;in;i++)printf(%f\n,a[i]);for(j=0;jn;j++)}if(a[i]==a[j])d++;if(dmax){max=d;y=a[i];}}returny;}程序4.#includestdio.hvoidmain(){FILE*pa,*pb;charxh[13];intcj1,cj2;pa=fopen(e:\\score_a.txt,r);pb=fopen(e:\\score_b.txt,w);while(fscanf(pa,%12s%4d%4d,xh,&cj1,&cj2)!=EOF)fprintf(pb,%12s%4d%4d%4d\n,xh,cj1,cj2,cj1*0.85+cj2*0.15);fclose(pa);fclose(pb);}
本文标题:浙工大C语言程序设计期末试卷6
链接地址:https://www.777doc.com/doc-5184296 .html