您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 浙工大C语言程序设计期末试卷2
12008/2009一学期C程序设计试卷说明:考生应将所有答案填写在答卷上,否则无效。一、填空题(每小题2分,共20分)⑴判断变量a、b是否绝对值相等而符号相反的逻辑表达式为。⑵执行语句“for(s=0,i=1;i11;i++){if(i==6)break;s+=i;}”后,s值为。⑶程序中使用了内存分配函数malloc,则必须包含的头文件名为。⑷声明“chara[20]=Office2000;”后执行下列语句的输出结果为。a[6]='\0';puts(a);⑸若声明“chara[]=hangzhou,*p=a;”,执行语句“for(i=0;*p!='\0';p++,i++);”后i的值为。⑹自定义函数sort对float类型的数组排序,函数原型为。⑺自定义函数sum求二维数组全体元素之和,函数原型为。⑻x、y均为指针变量,语句“x=y;”在的条件下可以执行。⑼若int类型变量a的当前值是23,执行“a=a2;”后,a的值为。⑽打开g盘根目录下文本文件aaa.txt用于写数据的语句是fp=;。二、程序阅读题(每小题8分,共24分)阅读下列程序,将运行时的输出结果写在答卷纸相应题号下。1.#includestdio.hvoidmain(){inti,j,k,a[4][4]={{2,-1,2,7},{2,4,3,5},{1,4,-2,3},{4,-2,8,3}};for(i=0;i4;i++){k=a[i][i];for(j=0;j4;j++)a[i][j]/=k;}for(i=0;i4;i++){for(j=0;j4;j++)printf(%4d,a[i][j]);putchar('\n');}}2.#includestdio.h#includestring.hvoiddel(char*a,intk){inti,n=strlen(a);for(i=1;i=k;i++){a[n-1]=a[n];n--;puts(a);}}voidmain(){chara[10]=abcdef;del(a,4);}3.#includestdio.hvoidf(floata,floatb,float*c){staticfloatx=0;floaty;2x=(y=ab?a:b)x?y:x;*c=x;}voidmain(){floata[5]={2.5,-1.5,7.5,4.5,6.5},x;for(inti=0;i4;i++){f(a[i],a[i+1],&x);printf(%.1f\n,x);}}三、程序填空题(每空2分,共24分)阅读下列程序说明和程序,将答案填写在答卷纸相应题号下。1.【程序说明】下列程序输入1个大于2的整数,判断其是否为2个大于1的整数的乘积。#includestdio.h⑴voidmain(){intm,i;while(⑵);for(i=2;i=sqrt(m);i++)if(⑶){printf(%d*%d=%d\n,i,m/i,m);break;}if(⑷)printf(不可分解\n);}2.【程序说明】下列函数计算一个二维数组全体元素的和以及主对角元素的和。voidf(⑴){inti,j;⑵;for(i=0;im;i++){*s1=*s1+⑶;for(j=0;jn;j++)*s2=*s2+a[i][j];⑷}3.【函数说明】链表的节点类型声明如下,下列函数中h为链表头指针,函数功能是删除成员cj值小于60的所有节点。structstu{charname[9];intcj;stu*next;};student*del_stu(student*h){student⑴;if(h==NULL)returnh;if(h-cj60){h=h-next;free(p1);p1=h;}while(p1-next!=NULL){p2=⑵;if(⑶){p1-next=p2-next;free(p2);}3elsep1=p2;}⑷;}四、程序设计题(1、2小题各10分,第3小题12分,共32分)1.输入一个正整数n,求1+1/2!+1/3!+……1/n!的值,要求调用自定义函数计算阶乘。2.编写通用函数,在n个元素的一维数组中,统计并返回比相邻元素大的数组元素个数(不考虑a[0]和a[n-1])。3.文本文件e:\c.txt中按统一格式已经存储若干行学生信息:学号8位字符、空格、成绩3位整数)。编程,将所有60分(含60分)以上学生之学号、成绩写入到文本文件e:\c.txt中,并显示总人数、不及格人数。42008/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.输入一个正整数n,求1+1/2!+1/3!+……1/n!的值,要求调用自定义函数计算阶乘。52.编写通用函数,在n个元素的一维数组中,统计并返回比相邻元素大的数组元素个数(不考虑a[0]和a[n-1])。3.文本文件e:\c.txt中按统一格式存储若干行学生信息:学号8位字符、空格、成绩3位整数)。编程,将所有60分(含60分)以上学生之学号、成绩写入到文本文件e:\c.txt中,并显示总人数、不及格人数。62008/09一学期C程序设计参考答案一、填空题(每小题2分,共20分)⑴a==-b⑵15⑶stdlib.h⑷Office⑸8⑹voidsort(float*,int)⑺floatsum(float**,int,int)⑻x、y均为指向同类型数据的一级指针变量⑼5⑽fopen(g:\\aaa.txt,w)二、程序阅读题(每小题8分,共24分)1.10132.abcde3.2.50101abcd7.50-21-1abc7.51021ab7.5三、程序填空题(每空2分,共24分)1.⑴#includemath.h⑵scanf(%d,&m),m3⑶m%i==0⑷isqrt(m)2.⑴float**a,intm,intn,float*s1,float*s2⑵*s1=*s2=0;⑶a[i][i]⑷}3.⑴*p1,*p2⑵p1-next⑶p2-cj60⑷returnh四、程序设计题(1、2小题各10分,第3小题12分,共32分)1.#includestdio.hintf(intk){returnk==0||k==1?1:k*f(k-1);}voidmain(){inti,n;floats=1;while(scanf(%d,&n),n1);for(i=2;i=n;i++)s=s+1.0/f(i);printf(%f\n,s);}2.intf(float*a,intn){inti,k=0;for(i=1;in-1;i++)if(a[i]a[i-1]&&a[i]a[i+1])k++;returny;}3.重点:文件读写(注意格式)函数,文件结束标志,打开、关闭。
本文标题:浙工大C语言程序设计期末试卷2
链接地址:https://www.777doc.com/doc-5184233 .html