C习题集(4)

2019-01-27 14:22

for(i=0;i<2;i++) 输出结果: { printf(\ printf(\ }

25. #include void main()

{ FILE *fp; int i;

char s1[80],s[]=\ fp=fopen(\

fwrite(s,i,1,fp); rewind(fp); fread(s1,i,l,fp); printf(\ printf(\

fseek(fp,10,1); 输出结果: printf(\ fseek(fp,1,1); printf(\ fclose(fp); }

4 程序填空题

根据读下列各题题意填空,写入在程序中的划线处。 1. 输入2个整数,输出它们的最小公倍数和最大公约数。 #include void main( )

{ int m,n,gbs,gys;

scanf( ⑴ );

for(gbs=m; ⑵ ; gbs=gbs+m); gys= ⑶

⑷ }

2. 输入N个实数,输出其中的最大值、最小值。

#include void main()

{ float no1,nmax,nmin; ⑴ scanf(\ nmax=no1; ⑵ for(i=2;i<=n;i++) {

scanf(\⑶ );

if(nox>nmax) nmax=nox; ⑷

15

}

printf(\ }

3. 输入20个数,输出它们的平均值,输出与平均值之差的绝对值为最小的数组元素。 #include ⑴ void main()

{ float a[20],pjz=0,s,t; int i,k; ⑵

for(i=0;i<20;i++) pjz+=a[i]; ⑶ s=fabs(a[0]-pjz); for(i=1;i<20;i++)

if(fabs(a[i]-pjz)

s=fabs(a[i]-pjz); t=a[i]; }

⑷ }

4. 输入若干个字符,分别统计数字字符的个数、英文字母的个数,当输入换行符时输 出统计结果,运行结束。

#include void main()

{ char ch; ⑴

while(( ⑵ )!='\\n') { if(ch>='0'&&ch<='9') s1++;

if(ch>='a'&&ch<='z' ⑶ ) s2++; }

⑷ }

5. 输入m,求n使 n!<=m<=(n+1)!,例如输入726,应输出n=6。 ⑴ void main()

{ int ⑵ ;

scanf( ⑶ ); for(n=2;jc<=m;n++) jc=jc*n;

printf(”n=%d\\n”, ⑷ ); }

222

6. 下列程序计算并输出方程 X+Y+Z=1989 的所有整数解。 #include void main()

16

{ ⑴

for(i1=-45;i1<=45;i1++)

for( ⑵ ) for(i3=-45;i3<=45;i3++)

if( ⑶ )

printf( ⑷ ,i1,i2,i3); }

7. 下列程序求n(n的值由运行时确定)个正整数的最小公倍数。

#include #include void main()

{ int *p,i,n,gbs;

⑴ p= ⑵ ; for(i=0;i

if( ⑶ ) { gbs+=*p; ⑷ }

printf(\ }

8. 调用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) { int i; float t,fh;

if(flag>=0) fh=1; else fh=-1; ⑶ for(i=1;it*fh) t=*(p+i); ⑷ }

9. 对数组按值从大到小的顺序排序后输出。

#include void main()

{ float a[7]={2,6,3,8,3,12,9}; void sort(float*,int); ⑴

for(int i=0;i<7;i++) printf(\

17

printf(\ }

void sort( ⑵ ) { int i,j,k; float t; for(i=0;i

for(j=i+1;j

10. 下列程序读入时间数值,将其加1秒后输出,时间格式为:

hh: mm: ss,即时:分:秒,当小时等于24小时,置为0。 #include

struct { int hour, minute, second; } time; void main(void)

{ scanf(\⑴ ); time.second++; if( ⑵ ==60) {

⑶ time.second=0; if(time.minute==60) {

time.hour++; time.minute=0;

if( ⑷ ) time.hour=0; } }

printf (\ }

11. 将编号从⑴到⑾的同学围成一圈,按下列顺序贺卡:⑴、⑶、⑹、⑻、⑾、⑵、⑸ ⑺、⑽、⑴、⑷、……,计算至少发到第几张时,每位同学发到的贺卡数同样多。 #include void main()

{ int num=1,jg=2,ip=1,i,m[12]; for(i=1;i<12;i++) m[i]=0; while(1) {

m[ip]++; num++; ip+=jg; if(ip>11) ⑴

if(jg==3) jg=2; else ⑵

for(i=2;i<=11;i++) if( ⑶ ) break; if( ⑷ ) break; }

printf (\发到第%d张时每人手中贺卡数一样多\\n”, ⑸ ); }

18

12. 下列函数可以对一维数组按值从大到小或从小到大排序。 void sort(float *p,int n,int swich) { int fh,i,j,l; ⑴

if(swich==0) fh=-1; ⑵ ; for(i=0;i

for(j=i+1; ⑶ ;j++) if(*(p+j)*fh> ⑷ ) l=j; t=*(p+i); *(p+i)=*(p+l); *(p+l)=t; } }

13. 下列函数用矩形公式求f(x)在[a,b]的定积分: 先M等份积分区间求得积分近似值, 再2M等份求得积分近似值,再4M等份求得积分近似值,……,当两次积分近似 值之差的绝对值小于eps时返回计算结果。

float sum(float a,float b,int m,float eps) { float h,s1=0,s2,x; ⑴ while(flag) {

s2=0; x=a; h=(b-a)/m for(i=1;i<=m;i++) {

s2+=(f(x)+f(x+h))*h/2; x=x+h; }

⑵ s1=s2; m=m*2; }

⑶ }

14. 下列函数输出一行字符:先输出kb个空格,再输出n个指定字符(由实参指定)。 #include

void print( ⑴ ) { int i;

for(i=1;i<=kb;i++) ⑵ for( ⑶ ) printf(“%c”,zf); ⑷ }

2n

15. 下列函数求任意阶多项式 a0+a1X+a2X+...+anX的值并返回多项式的值。 float sum( ⑴ ) { float y,t=1; ⑵ y=*a;

for(i=1;i<=n;i++){ ⑶

19


C习题集(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:“十二五”教师继续教育个人达标学习计划

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: