《2022年浙工大C语言程序设计期末试卷 .pdf》由会员分享,可在线阅读,更多相关《2022年浙工大C语言程序设计期末试卷 .pdf(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1 2008/2009 二学期 C程序设计试卷说明:考生应将所有答案填写在答卷上,否则无效。一、填空题 (每小题 2 分,共 20 分) 将 a、b 中最小值赋值到c 的条件表达式是。 执行程序段“ for(i=1;i16;i=i+3) s=s+i;”后, i 的值为。 调用函数f(4) 的返回值是。 int f(int n) return n=1? 1:f(n-1)+2; 程序中使用了C的库函数 strcmp ,应包含的头文件为。 下列程序段运行时的输出结果是。 char s=Windows2000; printf(%d,%cn,sizeof(s),*(s+3); 定义函数f 对 1 个 f
2、loat类型 1 维数组按值从小到大排序,函数 f 原型是。 定义函数f 计算 m行 n 列 float类型数组所有元素之和,其函数原型为。 表达式 13&11、-3|3 的值分别为。 。 若 int类型变量 a 的当前值是 -15 ,执行“ a=a27;b=a27 ”后, b 的值为。 用函数 fscanf从磁盘文本文件读取数据,读到文件末尾时,函数的返回值为。二、程序阅读题(每小题8 分,共 24 分)阅读下列程序,将运行时的输出结果写在答卷纸相应题号下。1. #include void main() float a8=1.5,-2.3,6.7,4.5,7.6,-3.1,5.4,3.2;
3、int i,j,k; for(i=0;i4;i+) k=0; for(j=0;j8;j+) if(i=j) continue; if(aiaj) k+; printf(%dn,k); 2. #include #include int f2(char *s) int i,j; for(i=0;istrlen(s);i+) for(j=i+1;jstrlen(s);j+) if(si=sj) strcpy(s+j,s+j+1); return 1; return 0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 -
4、 - - - - - - 第 1 页,共 6 页 - - - - - - - - - 2 void main() char x=Office-2007; puts(x); while(f2(x) puts(x); 3. 运行时的输入数据为: 2 4 -3 3 0 5 5 0 0 0 #include #include struct node int a,b; node *f; ; void main() node *head,*p1,*p2;int i=0; while(1) p2=(node*)malloc(sizeof(node); scanf(%d%d,&p2-a,&p2-b); if(
5、i+=0) head=p1=p2; else p1-f=p2, p1=p2; if(p2-a=0 & p2-b=0) p2-f=NULL; break; p1=head; while(p1-f) printf(%d,%dn,p1-a,p1-b);p1=p1-f; 三、程序填空题(每空 2 分,共 24 分)阅读下列程序说明和程序,将答案填写在答卷纸相应题号下。1. 【程序说明】输入 1 个整数后从个位至高位输出各位(输入 12 输出 21, 输入 -576 输出 -675 ) 。 #include void main( ) int m; (1) ; if( (2) ) putchar(-);
6、(3) ; while(m0) printf(%d,m%10); (4) ; 2 【程序说明】统计并输出二维数组中正数、负数和零的个数。 #include void f2(float *a,int m,int n, ) int i,j; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - 3 for(i=0;im;i+) for(j=0;j0) *zs+; else if(aij0) *fs+; else *lin+; void m
7、ain() float b56,*c5;int i,j,x,y,z; for(i=0;i5;i+) ; for(i=0;i6;i+) for(j=0;jn;j+) scanf(%f,&aij); ; printf(正数 %d个,负数 %d个,零 %d个n,x,y,z); 3. 【函数说明】函数f 的返回值为float类型数组中最大值、最小值与平均值。 struct xxx float max,min,ave; ; f(float *a,int n) y.max=y.min=a0; ; for(i=0;in;i+) y.ave+=ai; if(aiy.max) y.max=ai; y.ave/=
8、n; ; 四、程序设计题(1、2 小题各 10 分,第 3 小题 12 分,共 32 分)1. 编程,输入a、b(0ab) ,求最小的n 满足 a 的 n 次方大于或等于b(如 a、b 分别为2.5 、14.8 ,则 n 为 3) 。2. 编写通用函数,计算下列表达式的值。1210210100.nnaaaaaaaaaa3. 文本文件e:aaa.txt 中按统一格式已存储若干行商品信息:商品名称(%20s ) 、空格、数量( %f10.3 ) 、空格、价格(%f10.2 ) 。编程,删除文件中数量为0 的商品信息。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - -
9、- - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 6 页 - - - - - - - - - 4 2008/09 二学期 C程序设计答卷选课班级任课教师班级学号考生姓名题号(题分)一(20)二(24)三(24)四(32)总分得分一、填空题 (每小题 2 分,共 20 分)二、程序阅读题(每小题8 分,共 24 分)1. 2. 3. 三、程序填空题(每空 2 分,共 24 分)1. 23. 四、程序设计题(1、2 小题各 10 分,第 3 小题 12 分,共 32 分)1. 编程,输入a、b( 0ab) ,求最小的n 满足 a 的 n 次方大于或等于b。2
10、. 编写通用函数,计算下列表达式的值。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 6 页 - - - - - - - - - 5 3. 文本文件e:aaa.txt 中按统一格式已存储若干行商品信息:商品名称(%20s ) 、空格、数量( %f10.3 ) 、空格、价格(%f10.2 ) 。编程,删除文件中数量为0 的商品信息。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - -
11、- - - 第 5 页,共 6 页 - - - - - - - - - 6 2008/09 二学期 C程序设计参考答案一、填空题 (每小题 2 分,共 20 分) c=ab?a:b 16 7 string.h 12,d void f(float *,int) float f(float*,int,int) 9 、-1 -15 EOF 或-1 二、程序阅读题(每小题8 分,共 24 分)1. 5 2. Office-2007 3. 2, 4 6 Ofice-2007 -3, 3 1 Ofice-2007 0, 5 3 Ofice-207 5, 0 三、程序填空题(每空 2 分,共 24 分)1.
12、 scanf(%d,&m) m0 m=-m m/=10 2 int *zs, int *fs, int *lin *zs=*fs=*lin=0 ci=bi f2(c,5,6,&x,&y,&z) 3. xxx xxx y;int i; y.ave=0 return y 四、程序设计题(1、2 小题各 10 分,第 3 小题 12 分,共 32 分)1. #include void main() float a,b,x; int n; while(scanf(%f%f,&a,&b),a=b|a=0); x=a; n=1; while(xb) x=x*a,n+; printf(%dn,n); 2.
13、float f(float *a,int n) float y=0,t=1; int i; for(i=0;in;i+) t=t*ai, y=y+t; return y; 3. #include void main() FILE *pa,*pb; char aa21; float sl,jg; pa=fopen(e:aaa.txt,r); pb=fopen(e:temp.txt,w); while( fscanf(pa,%20s%f%f,aa,&sl,&jg)!=EOF) if(jg!=0) fprintf(pb,%20s %f10.3 %f10.2,aa,sl,jg); fclose(pa); fclose(pb); remove(e:aaa.txt); rename(e:temp.txt,e:aaa.txt); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 6 页 - - - - - - - - -