c语言知识学习第七章课后题Word格式.docx

上传人:b****5 文档编号:20470873 上传时间:2023-01-23 格式:DOCX 页数:18 大小:76.52KB
下载 相关 举报
c语言知识学习第七章课后题Word格式.docx_第1页
第1页 / 共18页
c语言知识学习第七章课后题Word格式.docx_第2页
第2页 / 共18页
c语言知识学习第七章课后题Word格式.docx_第3页
第3页 / 共18页
c语言知识学习第七章课后题Word格式.docx_第4页
第4页 / 共18页
c语言知识学习第七章课后题Word格式.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

c语言知识学习第七章课后题Word格式.docx

《c语言知识学习第七章课后题Word格式.docx》由会员分享,可在线阅读,更多相关《c语言知识学习第七章课后题Word格式.docx(18页珍藏版)》请在冰豆网上搜索。

c语言知识学习第七章课后题Word格式.docx

进入循环:

静态变量i=1;

i=i+square

(1)=2;

输出2;

循环变量i=0+1=1;

i=1<

3成立

静态变量i=i+square

(2)=2+4=6;

输出6;

循环变量i=i+1=2;

I=2<

静态变量(i保持原值)i=6;

i=i+square(6)=6+36=42;

输出42;

循环变量i=i+1=3;

I=3<

3不成立退出循环

输出循环变量i=3

7-2、

inthour,minute,second;

/*定义全局变量*/

voidupdate()

second++;

if(second==60)

second=0;

minute++;

if(minute==60)

minute=0;

hour++;

if(hour==24)

hour=0;

voiddisplay()

%d:

%d:

%d\n"

hour,minute,second);

voiddelay()

intt;

for(t=0;

t<

100000000;

t++);

/*用循环体为空语句的循环实现延时*/

inti;

second=0;

for(i=0;

i<

1000000;

update();

/*利用循环控制时钟运行时间*/

display();

/*显示时,分,秒*/

delay();

/*模一尺时间为1秒*/

自动跳出时间

7-3、

/*max()函数

找两个数的最大值

两个整数a,b

两数的最大值

*/

intmax(inta,intb)

intmax=0;

max=(a>

b)?

a:

b;

returnmax;

voidmain()

intx=0;

/*输入的两个数x,y*/

inty=0;

intm=0;

/*m用于接收max()函数的返回值*/

inputtwointegernumbers:

"

);

scanf("

%d,%d"

&

x,&

y);

m=max(x,y);

themaxnumberis%d\n"

m);

7-4

/*LCM()函数

计算两个整数的最小公倍数

两整数a,b

最小公倍数

intLCM(inta,intb)

/*循环变量*/

intmin=0;

/*循环寻找范围的最小值*/

/*循环寻找范围的最大值*/

min=(a>

/*最小值为a,b中的最大值*/

max=a*b;

/*最大值为a*b*/

for(i=min;

=max;

i++)

if(i%a==0&

&

i%b==0)

returni;

intx;

/*键盘输入两整数x,y*/

inty;

intm;

/*m用于接收LCM()函数的返回值*/

do{/*输入整数的合法数据*/

输入两个正整数:

scanf("

}while(x<

0||y<

0);

m=LCM(x,y);

最小公倍数为:

7-5、

longfact(intn);

intn=0;

/*输入的值*/

/*接收fact()函数的返回值*/

do{

inputn:

%d"

n);

}while(n<

for(i=1;

=n;

i++)

m=fact(i);

%d!

=%ld\n"

i,m);

/*fact函数

计算n!

n

n!

longfact(intn)

staticlongp=1;

p=p*n;

returnp;

7-6、

longs=0;

/*所求最终结果*/

s=s+m;

1!

+2!

+...+n!

=%ld\n"

s);

7-7、

(1)穷举法:

intGcd(inta,intb);

/*键盘键入两个数*/

/*接收Gcd的返回值*/

输入两个正数:

m=Gcd(x,y);

最大公约数:

/*Gcd()函数

计算两数的最大公约数

两个正数a,b

最大公约数

intGcd(inta,intb)

intt=0;

t=(a<

/*t为a,b中的较小者*/

for(i=t;

i>

=1;

i--)

if(a%i==0&

b%i==0)

(2)欧几里得算法

intr=0;

r=a%b;

if(r!

=0)

do{

a=b;

b=r;

r=a%b;

}while(r!

=0);

returnb;

(3)递归方法:

if(a==b)/*递归出口*/

returna;

else

if(a>

b)

returnGcd(a-b,b);

else

returnGcd(b,b-a);

7-9、

/*old()函数

计算第i个人的年龄

人数i

年龄

intold(inti)

if(i==1)

return10;

returnold(i-1)+2;

intx=5;

/*人数为5*/

/*接收old()函数的返回值*/

y=old(x);

第五个人的年龄为:

y);

7-10、

intflag=0;

/*设置标志变量*/

inta=0;

/*百位*/

intb=0;

/*十位*/

intc=0;

/*个位*/

/*代表acb*/

/*代表bac*/

intp=0;

/*代表bca*/

intq=0;

/*代表cab*/

/*代表cba*/

/*从100~999中找abc*/

intsum=0;

/*观众计算得结果*/

 

说出你的计算结果:

sum);

for(i=100;

=999;

a=i/100;

b=i/10%10;

c=i%10;

m=a*100+c*10+b;

n=b*100+a*10+c;

p=b*100+c*10+a;

q=c*100+a*10+b;

r=c*100+b*10+a;

if((m+n+p+q+r)==sum)

{

flag=1;

/*一旦找到就退出循环*/

break;

}

if(flag==0)/*未找到说明计算错误*/

{printf("

你算错了!

你想的数是%d%d%d\n"

a,b,c);

二、收集资料并整理,叙述结构化程序设计的基本思想;

根据自己的编程,说说你对结构化程序设计的理解。

模块化程序设计:

1、定义:

将系统划分为若干个子系统,任务划分为若干个子任务,本质思想就是实现不同层次的数据或过程的抽象过程。

2、模块分解的基本原则

(1)、保证模块的相对独立性——高聚合、低耦合。

高聚合:

模块内部的联系越紧密越好,就是使模块的功能要相对独立和单一。

低耦合:

模块之间的联系越松越好,就是使模块之间的接口越简单越好。

(2)、模块的实现细节对外不可见——信息隐藏。

外部:

关心做什么;

内部:

关心怎么做。

实质:

把不需要调用者知道的信息都封装在模块内部,是模块的实现细节对外不可见。

3、设计好模块接口

(1)、接口指罗列出一个模块的所有的与外部打交道的变量等

(2)、定义好后不要轻易改动。

(3)、在模块开头(文件的开头)进行函数声明。

4、结构化程序设计思想:

(1)、逐步求精:

将一个完整的、较复杂的问题分解成若干个相对独立的、较为简单的子问题,若这些子问题还较为复杂可再分解它们,直到能够容易的用某种高级语言表达为止。

(2)、自底向上:

先编写出基础程序段,然后再扩大、扩充和升级。

(3)、自顶向下:

先写出结构简单的、清晰的主程序来表达整个问题;

在此问题中包含的复杂子问题用子程序来实现;

直到每个细节都可用高级语言表达为止。

总结:

逐步求精技术-------是一种由不断的自底向上修正的所补充的自顶向下的程序设计方法。

其特点:

<

1>

、程序结构清晰、容易阅读、容易修改

2>

、可简化程序的正确性验证,可减少程序调试的时间和复杂度。

5、用逐步求精实现技术求解问题的步骤为:

、对实际问题进行全局性分析、决策,确定数学模型。

、确定程序的总体结构,将整个问题分解成若干个相对独立的子问题。

3>

、确定子问题的具体功能及其相互关系。

4>

、在抽象的基础上,将整个问题逐一精细化,直到能用确定的高级语言描述为止。

我对结构化程序设计的理解:

1、由于将复杂程序分解,对每个子程序的检查可局限于内部,结构化设计可减少错误的发生,易寻找错误。

2、可精简程序设计的复杂程度,对一个特定的功能只需局限于一个相对独立的子程序的设计。

3、结构化程序设计也是模块化程序设计的一种,增强可读性。

4、结构化设计要注意参数之间的传递,实际是以参数的传递为纽带。

三、收集资料,简要叙述C语言编码中应注意的基本编码规范。

1、代码行:

(1)、一行内只写一条语句,一行代码只定义一个变量。

容易阅读并且便于程序测试和写注释。

(2)、在定义变量时同时初始化该变量。

可避免初始化被遗忘,或者引用未初始化的变量。

2、对齐与缩进:

(1)、程序的分界符{和}一般独占一行,且位于同一列,同时与应用他们的语句左对齐,这样便于查看{和}的配对情况

(2)、采用梯形层次对应好个层次,同层次的代码在同层次的缩进层上,即位于同一层{和}之内的代码在{右边数格出左对齐。

(3)、一般用设置为4个空格的Tab键缩进。

3、空行及代码行内的空格

(1)、在每个函数定义结束后加一空行,能起到是程序布局美观、整洁和清晰的作用。

(2)、在一个函数体内,相邻的两组逻辑上紧密相关的语句块之间加空行。

(3)、关键字后加空格,用于突出关键字。

列如:

int、float等后面至少加一个空格,if、for、while等后面加一个空格

(4)、函数名后面不加空格,一般与关键字区分开

(5)、赋值、算术、关系、逻辑等运算符的前后各加一个空格,但一元运算符前后不加。

(6)、对表达式较长的for、if语句,为了紧凑,可在适当的地方去掉一些空格。

(7)、左圆括号向后紧跟,右圆括号、逗号、分号向前进跟,紧跟处不留空格。

(8)、函数参数的逗号分隔符和for中的分号后面加一个空格,可增加单行的清晰度。

4、长行拆分

如果代码行太长,则要在适当的位置进行拆分,拆分出的新行要进行适当的缩进,使排版整齐。

5、程序注释:

(1)、在重要的程序文件的首部,对程序的功能、编程者、编程日期以及其他相关信息(如:

版本号)加以注释说明

(2)、在用户自定义函数的前面,对函数接口加以说明

(3)、在一些重要的语句行的右方,如在定义一些非通用的变量、函数调用、较长的多重嵌套的语句块结束处加以说明。

(4)、在一些重要的语句块的上方,尤其是在语义转折处,对代码的功能、原理进行解释。

成绩

批阅教师

批阅日期

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

当前位置:首页 > PPT模板 > 动态背景

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1