浙工大C语言程序设计期末试卷4

更新时间:2023-10-24 15:33:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2008/2009二学期C程序设计试卷

说明:考生应将所有答案填写在答卷上,否则无效。 一、填空题(每小题2分,共20分)

⑴ 将a、b、c中最大值赋值到d的表达式是 。 ⑵ 若k=5、s=0,执行“while(k) s=s+k--;”后,s、k的值依次为 。 ⑶ 调用函数f(1.1,3)的返回值是 。 float f(float x,int n)

{ if(n==0) return 1; else return x*f(x,n-1); }

⑷ 程序中使用了C的库函数malloc,应包含的头文件为 。 ⑸ 下列程序段运行时的输出结果是 。 char s[]=\ printf(\

⑹ 函数f定义如下,执行语句 sum=f(3)+f(5) 后,sum的值应为 。 int f(int m)

{ static int i=2; int s=0;

for(;i<=m;i++) s+=i; return s; }

⑺ 定义函数f返回m行n列float类型数组中最大值,其函数原型为 。 ⑻ 表达式 7|-2 的值为 。

⑼ 若int类型变量a的当前值是7,执行“a=a>>2”后,a的值为 。 ⑽ 以“追加”方式打开文本文件e:\\aa.txt的函数为 。 二、程序阅读题(每小题8分,共24分)

阅读下列程序,将运行时的输出结果写在答卷纸相应题号下。 1. #include #include 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[i]); k=0;

while(y) { k++; y/=10; } printf(\ } }

2. #include

#include

char *f(char *ss,int x) { int n;

n=(int)log10(x)/log10(2)+1; ss[n]='\\0';

while(x!=0) { ss[--n]=char(x%2+'0'); x/=2; }

1

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,*p1,*p2; int n=0; float ave=0; while(1) {

p2=(node*)malloc(sizeof(node)); scanf(\

if(n++==0) head=p1=p2; else {p1->next=p2;p1=p2;} if(p2->x==0) { p2->next=NULL; break; } }

ave/=n; p1=head; while(p1->next){

if(p1->xnext; } }

三、程序填空题(每空2分,共24分)

阅读下列程序说明和程序,将答案填写在答卷纸相应题号下。

1.【程序说明】显示所输入整数的所有因子之和(输入12则显示1、2、3、4、6之和)。 ⑴ { int m,s=1,i; scanf(\

for( ⑵ ; i<=m/2;i++) if( ⑶ ) 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); ⑴ ; ⑵ ; printf(\ }

float find(float *p,int n,int flag)

2

{ int i; float t,fh;

if(flag==1) fh=1; else fh=-1; ⑶ ;

for(i=1;it*fh) t=p[i]; ⑷ ; }

3.【函数说明】函数f统计并返回float类型二维数组中正数、负数和零的个数。 struct xxx { int zs,fs,lin; }; xxx f( ⑴ ) { int i,j; ⑵ y; ⑶ ;

for(i=0;i

if(a[i][j]>0) y.zs++; else if(a[i][j]<0) y.fs++; else y.lin++; ⑷ ; }

四、程序设计题(1、2小题各10分,第3小题12分,共32分)

1. 编程,输入a(1

an?1?an?2?qn?3???a2?a1?a03. 文件e:\\aaa.txt 中按统一格式已存储若干行商品信息:商品编号(s)、空格、数量(?0.3)、空格、价格(?0.2)。编程,将文件中商品编号首字符为'1'的商品价格改为9折。

3

2008/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. 编程,输入a(1

2. 编写通用函数,计算下列表达式的值。

4

3. 文件e:\\aaa.txt 中按统一格式已存储若干行商品信息:商品编号(s)、空格、数量(?0.3)、空格、价格(?0.2)。编程,将文件中商品编号首字符为'1'的商品价格改为9折。

5

2008/09二学期C程序设计参考答案

一、填空题(每小题2分,共20分)

⑴ d=(d=a>b?a:b)>c?d:c ⑵ 15、0 ⑶ 1.331 ⑷ stdlib.h ⑸ Windows xp ⑹ 14 ⑺ float f(float**,int,int) ⑻ -1 ⑼ 1 ⑽ fopen(\二、程序阅读题(每小题8分,共24分)

1. 3 2. 1100 3. 10 2 1111 5 0 10101 6 3 10001 -4 三、程序填空题(每空2分,共24分)

1. ⑴ include ⑵ i=2 ⑶ m%i==0 ⑷ printf(\2.⑴ printf(\⑵ s=find(a,7,非1即可)

⑶ t=p[0] ⑷ return t

3. ⑴ float **a,int m,int n ⑵ xxx y ⑶ y.zs=y.fs=y.lin=0 ⑷ return y 四、程序设计题(1、2小题各10分,第3小题12分,共32分)

1. #include void main()

{ float a,x=1; int n=0;

while(scanf(\

do { x=x*1.1;n++; } while(x<=a); printf(\ }

2. float f3(float *a,int n)

{ float y=0; int i;

for(i=0;i

}

3. #include

void main()

{ FILE *pa,*pb; char aa[11]; float sl,jg; pa=fopen(\ pb=fopen(\

while( fscanf(pa,\

if(aa[0]=='1') fprintf(pb,\ else fprintf(pb,\ fclose(pa); fclose(pb); remove(\

rename(\ }

6

本文来源:https://www.bwwdw.com/article/l6c2.html

Top