900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 南京邮电大学C语言实验报告三

南京邮电大学C语言实验报告三

时间:2020-08-12 17:07:12

相关推荐

南京邮电大学C语言实验报告三

实验三: 函数实验

实验题目1【见实验教材实验四的题目2】编程序exp4_2.c,巧用函数调用,打印不同行数和字符构成的等腰三角形。具体要求:定义一个函数原型void DrawTriangle (int n,char c); ,实现功能为打印一个n行的由字符c组成的等腰三角形。主程序调用该函数,实现打印5行“ '*' ”、10行

“ '#' ”的等腰三角形。

实验解答:

源程序exp4_2.c的代码是:

#include <stdio.h>void DrawTriangle(int n,char c);int main(){int n;char c;DrawTriangle( 5,'*');printf("\n");DrawTriangle( 10,'#');return 0;}void DrawTriangle(int n,char c){int i,j;for(i=1;i<=n;i++){for (j=1;j<=n-i;j++){printf(" ");}for (j=1;j<=2*i-1;j++){printf("%c",c);}printf("\n");}}

实验题目2【见实验教材实验四的题目5】编程序exp4_5.c,验证歌德巴赫猜想:2000以内的正偶数(不包括2)都能够分解为两个质数之和。(算法提示:将整数分解为两个整数,然后判断它们是否均为质数。若是,则满足题意并输出;否则重新进行分解和判断。其中,判断一个整数是否为质数采用函数实现。每个偶数只要得到一种分解就停止,不必要求出该偶数的所有质数和组合)。

实验解答:源程序exp4_5.c的代码是:

#include <stdio.h>#include<math.h>int judgeprime (int n){int i,k;int judge =1;if (n==1)return 0;k=(int) sqrt (n);for(i=2;judge&&i<=k;i++)if(n%i==0)return 0;return 1;}int main(){int x,m,n;for(x=4;x<=2000;x+=2){for (n=3;n<(x/2);n+=2){m=x-n;if(judgeprime(n)&&judgeprime(m)){printf("%d=%d+%d\n",x,m,n);}}}return 0;}

实验题目3【见实验教材实验四的题目7】编程序exp4_7.c,用递归方法实现求解两个整数的最大公约数,并与迭代方法作比较。

实验解答:

①程序exp4_7.c代码如下:

#include <stdio.h>int fun (int m,int n){int x,y;if(m%n==0)return(n);else return (fun(n,m%n));}int main(){int x,y,z;scanf("%d,%d",&x,&y);z = fun (x,y);printf("%d",z);return 0;}迭代方法#include <stdio.h>int main(){int m,n,r;scanf("%d%d",&m,&n);r=m%n;while(r){m=n;n=r;r=m%n;}printf("最大公约数为:%d\n",n);return 0;}

实验题目4【见实验教材实验四的题目8】用调试器观察程序exp4_8.c的运行过程,并记录各种变量在每一步执行时的变化情况,在表格中填写每一个跟踪步每个变量对应的值。程序代码如下。

#include<stdio.h>int a = 1;int f(int a){auto int b = 2;static int c = 3;a = a+1;b = b+1;c = c+1;return (a+b+c);}int main(){int i;for (i=0;i<3;i++){a = a+2;printf("%d \n",f(a));}return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。