网站大量收购闲置独家精品文档,联系QQ:2885784924

《C语言程序设计项目化教程》课件第1章.ppt

《C语言程序设计项目化教程》课件第1章.ppt

  1. 1、本文档共287页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

(3)判断x-i是否是素数,若是,执行步骤(4);若不是,执行步骤(5)。

(4)输出i和x-i。

(5)使i增1。

(6)重复执行步骤(2),直到ix/2为止。

以上验证步骤可由函数even()来完成,判断某数是否是素数由函数isprime()来完成,若是素数,返回1,若不是,返回0。源程序如下:

#includemath.hintisprime(int);

voideven(int);

main()

{?inta;

printf(Inputaevennumber:);

scanf(%d,a);

if(a%2==0)even(a);elseprintf(The%dis\'tevennumber.\n,a);

}

voideven(intx)

{?inti;

for(i=2;i=x/2;i++)

if(isprime(i))

if(isprime(x-i))

printf(%d=%d+%d\n,x,i,x-i);}

isprime(inta)

{?inti;

for(i=2;i=sqrt(a);i++)

if(a%i==0)return0; /*a一旦能被某个数整除,即不是素数*/

return1; /*a不能被2到 之间的任何数整除,即是素数*/

}程序运行结果如下:

Inputaevennumber:36↙

36=5+31

36=7+29

36=13+23

36=17+19

本例程序的执行过程是:在main()函数中输入a变量的值后,判断其是否是偶数,若是,就调用函数even();在even()函数的执行过程中又调用了自定义函数isprime()函数和库函数printf()函数。这种在一个被调用函数的执行过程中又调用另一个函数的调用方式称为函数的嵌套调用。2)说明

(1)?C语言不允许函数嵌套定义,但却允许函数嵌套调用。所谓函数的嵌套调用,是指在执行被调用函数期间,被调用函数又调用了其他函数。这与其他语言的子程序嵌套调用的情形是类似的,其关系可表示为如图1-12所示,图中的序号表示执行顺序。图1-12函数的嵌套调用示意图(2)图1-12表示了两层嵌套的情形。其执行过程是:在执行main()函数中调用f1()函数的语句时,即转去执行f1()函数;在执行f1()函数中调用f2()函数的语句时,又转去执行f2()函数;f2()函数执行完毕,返回f1()函数的调用处,继续执行其后续语句;f1()函数执行完毕,返回main()函数的调用处,继续执行后续语句。【例1.15】计算s?=?1k?+?2k?+?3k+?…?+?nk。

本题可编写两个函数:一个是用来计算ik的函数f1(),另一个是用来计算累加和的函数f2()。主函数main()先调用f2()计算累加和,再在f2()中调用f1(),由f1()计算出ik的值后返回给f2()函数,在循环结构中计算累加和。

假设k=4,n=5,程序如下:

#definek4

#definen5longf1(intn,intk) /*计算n的k次方*/

{?longpower=n;

inti;

for(i=1;ik;i++)power*=n;

returnpower;

}

longf2(intn,intk) /*计算1到n的k次方之累加和*/{?longsum=0;

inti;

for(i=1;i=n;i++)sum+=f1(i,k);

returnsum;

}

main()

{?

printf(Sumof%dpowersofintegersfrom1to%d=,k,n);

printf(%d\n,f2(n,k));

}程序运行结果如下:

Sumof4powerofintegersfrom1to5=979

在本例程序中,函数f1()和f2()的返回值均为长整型,都在主函数之前定义,故不必再在主函数中对f1()和f2()加以声明。

在主函数中,调用函数f2()求 的值。在f2()中又发生对函数f1()的调用

您可能关注的文档

文档评论(0)

酱酱 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档