C语言程序设计习题4_第1页
C语言程序设计习题4_第2页
C语言程序设计习题4_第3页
C语言程序设计习题4_第4页
C语言程序设计习题4_第5页
免费预览已结束,剩余6页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、习题4参考解答1.写出下面函数的运行结果。#include<stdio.h>void fx701(int k,int n,float a);int main()int k=1,n=5;float a=3.2,b=8.5;printf("调用前:k=%d n=%d a=%.2f b=%.2fn",k,n,a,b);仅701(k,n,a);printf("调用后:k=%d n=%d a=%.2f b=%.2fn",k,n,a,b);return 0;void fx701(int k,int n,float a)int q=100;float b,

2、x=6.2;k+=q; n*=q; a-=x; b=3.5*a;printf("函数中:k=%d n=%d a=%.2f b=%.2fn",k,n,a,b);解:调用前:k=1 n=5 a=3.20 b=8.50函数中:k=101 n=500 a=-3.00 b=-10.50调用后:k=1 n=5 a=3.20 b=8.502.编写一个函数,实现从键盘输入一个整数,如果该整数为素数,则返回1,否则返回0。解:#include<stdlib.h>#include<stdio.h>int Is_prime(int i)int j=0;for(j=2;j&

3、lt;i;j+)if(0=(i%j)return 0;return 1;int main()int i;printf("Please input a number:");scanf("%d",&i);if(1=Is_prime(i)printf("%d is a prime.n",i);elseprintf("%d is not a prime.n",i);system("pause");return 0;程序运行结果如下:Please input a number:13/13 is a

4、 prime.Please input a number:8/14 is not a prime.15 设计两个函数,分别求矩形的周长和面积,并在主函数中调用这两个函数。解:#include<stdio.h>float area(float a,float b)float s;s=a*b;return(s);float zc(float afloat b)float p;p=2*(a+b);return(p);int main()float a,b,s,p;printf("请输入长方形的边长a,b:");scanf("%f%f",&a

5、,&b);s=area(a,b);p=zc(a,b);printf("长方形的周长为 p=%f,长方形的面积为s=%f",p,s);程序运行情况如下:请输入长方形的边长a,b:3 4/长方形的周长为 p=14.000000,长方形的面积为 s=12.00000016 编写一个函数求一个整数 n的阶乘,在主函数中计算并输出10!的值。解:#include<stdio.h>float fc(int n)float s;if(n=1|n=0) s=1;else s=n*fc(n-1);return(s);int main()float k;k=fc(10);p

6、rintf("10!=%fn",k);return 0;程序运行结果如下:10!=3628800.00000017 已知函数fun2的原型说明为"long fun2(int m,int n);",调用该函数计算 mn的和(其 中n>m>0),例如:若 m=5, n=20,则计算5+6+7+8+-+20的值。要求在主函数中通过键 盘输入m和n的值,并输出和的值。解:#include<stdio.h>long fun2(int m,int n)long s;int i;s=0;for(i=m;i<=n;i+)s=s+i;retu

7、rn(s);int main()int n,m,sum;printf("请输入 m,n 的值 n>m:n");scanf("%d%d",&m,&n);sum=fun2(m,n);printf("sum=%dn",sum);return 0;程序运行结果如下:请输入m,n的值n>m:5 20 /n次。sum=2006 .编写一个函数重复打印给定的字符解:#include <stdio.h>void fun2(char m,int n)int i;for(i=1;i<=n;i+) printf

8、("%c",m);printf("n");int main()char m;int n;printf("请输入给定的字符n");scanf("%c",&m);printf("请输入打印的次数n");scanf("%d",&n);fun2(m,n);return 0;程序运行结果如下:请输入给定的字符*/请输入打印的次数5/*7 .写出程序的运行结果,并上机验证其结果。#include<stdio.h>void fun1()int x=5;print

9、f("x=%d'n",x);void fun2(int x)printf("x=%dn",+x);int main()int x=2;fun1();printf("x=%d'n",x);return 0;解:x=5x=3x=28 .指出下列程序中各变量的存储属性,并写出程序的执行结果。(1) #include<stdio.h>void add(int i);int main()int i=1;add(i);printf("main:i=%d'n",i);return 0;void

10、 add(int i)i=i+3;printf("add:i=%dn",i);解:add:i=4main:i=1其中,i是自动型变量。(2) #include<stdio.h>int i=1;void add1();int main()add1();printf("i=%dn",i);return 0;void add1()i=i+3;解:i=4其中,该变量是外部型变量。(3) #include<stdio.h>(4) d add2(int i);int main()int i=2;add2(i);add2(i);return 0

11、;void add2(int i)static int j=5;j=i+j;printf("j=%dn",j);解:j=7j=9其中,变量i是静态型变量。9 .编写程序实现以下图形的输出。* * * * * * * * * * * * *解:#include<stdio.h>void main()int i,j,k;先打印上边的四行控制要打印的空格数量控制要打印的星号数for(i=1;i<=5;i+)for(j=1;j<=5-i;j+) printf("");for(k=1;k<=2*i-1;k+) printf("

12、;*");printf("n");10.写出程序的运行结果。#include<stdio.h># define X 5# define Y X+1# define Z Y*X/2 int main()int a;a=Y;printf("%d %dn”,Z,-a);return 0;解:7 511 .编写一个函数,将一个十进制整数转换为二进制数。解:#include <stdio.h>void main()long num;int ozb();printf("请输入一个十进制数:");scanf("%l

13、d",&num);printf("%ld 的二进制数为:",num);ozb(num);int ozb(long num)int a32=0,i=0;while(num>=1)ai=num%2;num=num/2;i+;for(i=i-1;i>=0;i-)printf("%d",ai);printf("n");return(ai);程序运行结果如下:请输入一个十进制数:5 /5的二进制数为:10112 .编写一个函数,找出任意整数的全部因子。解:#include<stdio.h>int N;vo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论