C语言程序的设计_实验报告2.4.docx

上传人:doc321 文档编号:12824656 上传时间:2021-12-06 格式:DOCX 页数:15 大小:116.83KB
返回 下载 相关 举报
C语言程序的设计_实验报告2.4.docx_第1页
第1页 / 共15页
C语言程序的设计_实验报告2.4.docx_第2页
第2页 / 共15页
C语言程序的设计_实验报告2.4.docx_第3页
第3页 / 共15页
C语言程序的设计_实验报告2.4.docx_第4页
第4页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C语言程序的设计_实验报告2.4.docx》由会员分享,可在线阅读,更多相关《C语言程序的设计_实验报告2.4.docx(15页珍藏版)》请在三一文库上搜索。

1、下载可编辑C 语言程序设计实验报告专业班级日期11月26日成绩实验组别第2(2.4)次实验指导教师李开学生姓名学号同组人姓名实验名称流程控制实验一、实验目的( 1)熟悉和掌握函数的定义 、声明;函数调用与参数传递方法 ;以及函数返回值类型的定义和返回值使用 。( 2)熟悉和掌握不同存储类型变量的使用。( 3)熟悉多文件编译技术 。二、实验任务4.2实验内容及要求1 源程序改错下面是计算s=1!+2!+3!+n! 的源程序 ,在这个源程序中存在若干语法和逻辑错误。要求在计算机上对这个例子程序进行调试修改,使之能够正确完成指定任务。#include<stdio.h>void main(

2、void)int k;for(k=1;k<6;k+)printf("k=%dtthe sum is %ldn",k,sum_fac(k);long sum_fac(int n)long s=0;int i;long fac;for(i=1;i<=n;i+)fac*=i;.专业 .整理 .下载可编辑s+=fac;return s;2 源程序修改替换( 1)修改第 1题中 sum_fac 函数,使其计算量最小 。111( 2)修改第 1s13!题中 sum_fac 函数,计算2!n。3 跟踪调试计算 fabonacci数列前 n 项和的程序如下:其中 , longs

3、um=0,*p=&sum;声明 p 为长整型指针并用&sum取出 sum 的地址对p 初始化。 *p 表示引用p 所指的变量 ( *p 即 sum )。void main(void)int i,k;long sum=0,*p=&sum;scanf("%d",&k);for(i=1;i<=k;i+)sum+=fabonacci(i);printf("i=%dtthe sum is %ldn",i,*p);long fabonacci(int n)if(n=1 | n=2)return 1;elsereturn fabo

4、nacci(n-1)+fabonacci(n-2);单步执行程序,观察 p,i,sum,n 值。( 1)刚执行完 scanf("%d",&k); 语句, p,i 值是多少 ?( 2)从 fabonacci函数返回后光条停留在哪个语句上?( 3)进入 fabonacci 函数 , watch 窗口显示的是什么 ?( 4)当 i=3 ,从调用 fabonacci函数到返回 , n 值如何变化 ?4 程序设计(1 )编程让用户输入两个整数,计算两个数的最大公约数并且输出之(要求用递归函数实.专业 .整理 .下载可编辑现求最大公约数)。 同时以单步方式执行该程序,观察递归过

5、程 。(2 )编程验证歌德巴赫猜想:一个大于等于4 的偶数都是两个素数之和。编写一个程序证明对于在符号常量BEGIN 和 END 之间的偶数这一猜测成立。例如,如果 BEGIN 为 10, END 为 20,程序的输出应为 :GOLDBACH'S CONJECTURE:Every even number n>=4 is the sum of two primes. 10=3+7 12=5+720=3+175选做题假设一个 C 程序由 file1.c 、 file2.c 两个源文件和一个file.h 头文件组成 , file1.c 、 file2.c和 file.h 的内容分别如下

6、 ,试编辑该多文件 C 程序,并编译和链接 。然后运行生成的可执行文件 。源文件 file1.c 的内容为 :#include "file.h"int x,y; /*外部变量的定义性说明*/char ch; /*外部变量的定义性说明*/void main(void)x=10;y=20;ch=getchar();printf("in file1 x=%d,y=%d,ch is %cn",x,y,ch);func1();源文件 file2.c 的内容为 :#include "file.h"void func1(void)x+;y+;ch+

7、;printf("in file2 x=%d,y=%d,ch is %cn",x,y,ch);头文件 file.h 的内容为 :#include <stdio.h>.专业 .整理 .下载可编辑extern int x,y;/*外部变量的引用性说明*/extern char ch;/* 外部变量的引用性说明*/void func1(void);/* func1函数原型*/4.3 多源文件 C 程序的建立 (结合第 5 题)三、实验步骤及结果(要求给出源程序和程序运行结果。另外,根据实验内容,记录编辑 、编译 、链接 、调试程序的操作过程和实验现象)( 2.4 内容

8、 )1 源程序改错下面是计算s=1!+2!+3!+n! 的源程序 ,在这个源程序中存在若干语法和逻辑错误。要求在计算机上对这个例子程序进行调试修改,使之能够正确完成指定任务。#include<stdio.h>void main(void)int k;for(k=1;k<6;k+)printf("k=%dtthe sum is %ldn",k,sum_fac(k);long sum_fac(int n)long s=0;int i;long fac;for(i=1;i<=n;i+)fac*=i;s+=fac;return s;.专业 .整理 .下载可编

9、辑(修改后 )#include<stdio.h>long sum_fac(int n);int main(void)int k;for(k=1;k<6;k+)printf("k=%dtthe sum is %ldn",k,sum_fac(k);long sum_fac(int n)long s=0;int i;long fac=1;for(i=1;i<=n;i+)fac*=i;s+=fac;return s;2 源程序修改替换( 1)修改第 1 题中 sum_fac 函数,使其计算量最小。#include<stdio.h>long sum

10、_fac(int n);int main(void).专业 .整理 .下载可编辑int k;for(k=1;k<6;k+)printf("k=%dtthe sum is %ldn",k,sum_fac(k);return 0;long sum_fac(int n)static long s=0;static long fac=1;fac*=n;s+=fac;return s;111s13!( 2)修改第 1 题中 sum_fac 函数,计算2!n。#include<stdio.h>float sum_fac(int n);int main(void)int

11、 k;.专业 .整理 .下载可编辑for(k=1;k<6;k+)printf("k=%dtthe sum is %fn",k,sum_fac(k);float sum_fac(int n)float s=0;int i;long fac=1;for(i=1;i<=n;i+)fac*=i;s+=1.0/fac;return s;3 跟踪调试计算 fabonacci数列前 n 项和的程序如下:其中 , longsum=0,*p=&sum;声明 p 为长整型指针并用&sum取出 sum 的地址对p 初始化。 *p 表示引用p 所指的变量 ( *p 即

12、sum )。void main(void)int i,k;long sum=0,*p=&sum;scanf("%d",&k);for(i=1;i<=k;i+)sum+=fabonacci(i);printf("i=%dtthe sum is %ldn",i,*p);.专业 .整理 .下载可编辑long fabonacci(int n)if(n=1 | n=2)return 1;elsereturn fabonacci(n-1)+fabonacci(n-2);单步执行程序,观察 p,i,sum,n 值。( 1)刚执行完 scanf(&

13、quot;%d",&k); 语句 , p,i 值是多少 ?i=29p=5sum=0( 2)从 fabonacci函数返回后光条停留在哪个语句上?printf("i=%dtthe sum is %ldn",i,*p);( 3)进入 fabonacci 函数 ,watch 窗口显示的是什么 ?( 4)当 i=3 ,从调用 fabonacci函数到返回 , n 值如何变化 ?n=3 到 n=2 到 n=1 到 n=3.专业 .整理 .下载可编辑4 程序设计(1 )编程让用户输入两个整数,计算两个数的最大公约数并且输出之(要求用递归函数实现求最大公约数)。 同时以

14、单步方式执行该程序,观察递归过程 。#include<stdio.h>#include<math.h>int Greatest_Common_divisor(int m,int n);int main(void)int m,n;printf("input two numbern");scanf("%d%d",&m,&n);Greatest_Common_divisor(m,n);return 0;int Greatest_Common_divisor(int m,int n)int i;i=abs(m-n);if(

15、i=m)|(i=n)printf("%d",i);elseif(m>n)Greatest_Common_divisor(n,i);elseGreatest_Common_divisor(m,i);.专业 .整理 .下载可编辑(2 )编程验证歌德巴赫猜想:一个大于等于4 的偶数都是两个素数之和。编写一个程序证明对于在符号常量BEGIN 和 END 之间的偶数这一猜测成立。例如,如果 BEGIN 为 10, END 为 20,程序的输出应为 :GOLDBACH'S CONJECTURE:Every even number n>=4 is the sum of

16、 two primes.10=3+712=5+720=3+17#include<stdio.h>int isprime(int n)int j,x;for( j=2;j<n;j+)if(n%j=0)x=0;break;elsex=1;return(x);.专业 .整理 .下载可编辑int as(int n,int m)int i;printf("GOLDBACH'S CONJECTURE:n");printf("Every even number n>=4 is the sum of two primesn"); for

17、( ;n <= m;n+=2)for(i=2;i<=(n/2);i+)if(isprime(i)!=0)&&(isprime(n-i)!=0)printf("%d=%d+%dn",n,i,n-i);break;elsecontinue;int main()int n,m;scanf("%d%d",&n,&m);as(n,m);return 0;.专业 .整理 .下载可编辑5选做题假设一个 C 程序由 file1.c 、 file2.c 两个源文件和一个file.h 头文件组成 , file1.c 、 file2

18、.c和 file.h 的内容分别如下 ,试编辑该多文件 C 程序,并编译和链接 。然后运行生成的可执行文件 。源文件 file1.c 的内容为 :#include "file.h"int x,y; /*外部变量的定义性说明*/char ch; /*外部变量的定义性说明*/void main(void)x=10;y=20;ch=getchar();printf("in file1 x=%d,y=%d,ch is %cn",x,y,ch);func1();源文件 file2.c 的内容为 :#include "file.h"void fu

19、nc1(void)x+;.专业 .整理 .下载可编辑y+;ch+;printf("in file2 x=%d,y=%d,ch is %cn",x,y,ch);头文件 file.h 的内容为 :#include <stdio.h>extern int x,y;/*外部变量的引用性说明*/extern char ch;/* 外部变量的引用性说明*/void func1(void);/* func1函数原型*/#include <stdio.h>extern int x,y;/*外部变量的引用性说明*/extern char ch;/*外部变量的引用性说明

20、*/void func1(void);/* func1函数原型*/int x,y; /*外部变量的定义性说明*/char ch; /*外部变量的定义性说明*/void main(void)x=10;y=20;ch=getchar();printf("in file1 x=%d,y=%d,ch is %cn",x,y,ch);func1();.专业 .整理 .下载可编辑void func1(void)x+;y+;ch+;printf("in file2 x=%d,y=%d,ch is %cn",x,y,ch);四、实验体会了解更多有关C 语言的语法知识和循环结构以及熟练了调试过程。.专业 .整理 .

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1