77范文网 - 专业文章范例文档资料分享平台

c语言2次上机

来源:网络收集 时间:2020-04-18 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

C语言程序设计 实验报告

班级 日期 2012/4/16 学生姓名 学号

第 2 次上机

实验1 函数与程序结构 (一) 实验目的

(1)熟悉和掌握函数的定义、声明;函数调用与参数传递方法;以及函数返回值类型的定义和返回值使用。

(2)熟悉和掌握不同存储类型变量的使用。 (3)熟悉多文件编译技术。

(二) 实验内容及要求

1.源程序改错

下面是计算s=1!+2!+3!+?+n!的源程序,在这个源程序中存在若干语法和逻辑错误。要求在计算机上对这个例子程序进行调试修改,使之能够正确完成指定任务。

源程序:

#include void main(void) {

int k;

for(k=1;k<6;k++)

printf(\

}

long sum_fac(int n) {

long s=0; int i; long fac;

for(i=1;i<=n;i++) fac*=i; s+=fac; return s;

} 改后: #include long sum_fac(int); void main(void) {

int k;

for(k=1;k<6;k++)

printf(\}

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)修改上述源程序中的sum_fac函数,使其计算量最小。 (2)修改上述源程序中的sum_fac函数,计算

s?1?

111????2!3!n!

(1)

#include long sum_fac(int); void main(void) {

int k;

for(k=1;k<6;k++)

printf(\}

long sum_fac(int n) {

static long s=0; static long fac=1; fac*=n; s+=fac; return s; }

(2)

#include

double sum_fac(int); void main(void) {

int k;

for(k=1;k<6;k++)

printf(\}

double sum_fac(int n) {

double s=0; int i;

long fac=1;

for(i=1;i<=n;i++) { fac*=i; s+=1.0/fac;} return s; }

3.跟踪调试

下面是计算fabonacci数列前n项和的源程序,现要求单步执行该程序,并观察p,i,sum,n值,即:

(1)刚执行完scanf(\语句时,p,i值是多少? (2)从fabonacci函数返回后,光条停留在哪个语句上? (3)进入fabonacci函数时,watch窗口显示的是什么?

(4)当i=3时,从调用fabonacci函数到返回,n值如何变化? 源程序:

void main(void) {

int i,k;

long sum=0,*p=∑ scanf(\ for(i=1;i<=k;i++){ sum+=fabonacci(i);

printf(\ } }

long fabonacci(int n) {

if(n==1 || n==2) return 1; else

return fabonacci(n-1)+fabonacci(n-2); }

其中,“ long sum=0,*p=∑ ”声明p为长整型指针并用&sum取出sum的地址对p初始化。*p表示引用p所指的变量(*p即sum)。

(1)p=0x0012ff74,i=-858993460(2)sum+=fabonacci(i)(3)显示n的值(4)n从3变成4

4.程序设计

编写并上机调试运行能实现以下功能的程序。

(1) 编写一个程序,让用户输入两个整数,计算两个数的最大公约数并且输出之。要求用递归函数实现求最大公约数,同时以单步方式执行该程序,观察其递归过程。

(2) 编写一个程序,验证歌德巴赫猜想:一个大于等于4的偶数都是两个素数之和。 (3) 编写一个程序,证明对于在符号常量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+7 ?? 20=3+17 (1)

#include int a(int x,int y) {

int temp; temp=x%y; if(temp==0) {

return y; } else {

return a(y,temp); } }

void main() { int x,y;

printf(\ scanf(\

printf(\最大公约数是%d\\n\

}(2)

#include

#include int a(int j) {

int i,n; n=sqrt(j);

for(i=2;i<=n;i++) if(j%i==0)return 0; return j; }

void main() {

int n,j,up;

printf(\ scanf(\ printf(\ for(n=6;n<=up;n+=2){ for(j=3;j<=n/2;j+=2){

if(a(j)&&a(n-j)){printf(\} } }

(3)

#include #include int a(int j) {

int i,n; n=sqrt(j);

for(i=2;i<=n;i++) if(j%i==0)return 0; return j;

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库c语言2次上机在线全文阅读。

c语言2次上机.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/994948.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: