云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 程序设计基础——基于C语言(第2版) 课后习题参考答案

程序设计基础——基于C语言(第2版) 课后习题参考答案

  • 62 次阅读
  • 3 次下载
  • 2025/5/6 0:30:51

两数A,B公约数CC=AA=1)A%C==0 AND B%C==0C-- 1.5算法思考题

(1)钞票换硬币:把一元钞票换成一分、二分、五分硬币(每种至少一枚),有哪些种换法? 分析:1元相当于100分,设5分、2分、1分的硬币数分别为X、Y、Z,求换法就是在寻找这样一种组合,使得5*X+2*Y+Z =100,所以每当找到1种组合时,将个数记录下来,就可知换法有多少种,算法描述如下:

Count = 0; //用于记录个数,初始为0 for(X=1;X<=20;X++) for(Y=1;Y<=50;Y++) for(Z=1;Z<=100;Z++) {

if(5*X + 2*Y + Z == 100) //可实现交换 Count ++; }

输出Count

(2)百钱买百鸡:一只公鸡值5元,一只母鸡值3元,3只小鸡值1元,现用一百元要买一百只鸡,问有什么方案?

分析:由题意可知,假设公鸡、母鸡、小鸡分别有X、Y、Z只,那么X、Y、Z满足:X+Y+Z=100,而且要满足钱数限定:5*X+3*Y+1/3*Z = 100,由于3只小鸡1元钱,所以小鸡的个数必须是3的整数倍,即:Z是3的整数倍。可通过限制条件,筛选出满足条件的X,Y,Z。当然X、Y、Z还满足以下条件:5*X <= 100;3*Y <= 100;Z <= 100。以下是算法描述:

for(X=0;X<=100;X++) for(Y=0;Y<=100;Y++) for(Z=0;Z<=100;Z++) {

if(5*X<=100 and 3*Y<=100 and z%3==0) {

if(X+Y+Z==100 and 5*X+3*Y+Z/3 == 100) {

输出X、Y、Z; } } }

(3)斐波那契兔子的问题:某人有一对兔子饲养在围墙中,如果它们每个月生一对兔子,且新生的兔子在第二个月后也是每个月生一对兔子,问一年后围墙中共有多少对兔子。

分析:第一个月是最初的一对兔子生下一对兔子,围墙内共有两对兔子。第二个月仍是最初的一对兔子生下一对兔子,共有3对兔子。到第三个月除最初的兔子新生一对兔子外,第一个月生的兔子也开始生兔子,因此共有5对兔子。继续推下去,第12个月时最终共有对377对兔子。由分析知,每个月的兔子都是上个月的兔子与新增兔子之和,而上个月新生的兔子到下个月才会生兔子,所以新增的兔子都是上两月的兔子生的。设每个月的兔子数为F(n),则可列出下列式子:

F(0) = F(1) = 1 F(n) = F(n-1) + F(n-2)

显然可用递归的方法解出此题,算法流程图如下:

开始F(n)=0i=0Fi==0||i==1TF(i) = F(i-1) + F(i-2)F(i)=1i++i==12T输出F(i)F开始

习题2参考答案

(1)请简要描述C语言的发展历史。

答:C语言是一种目前世界上普遍流行、使用广泛的高级程序设计语言,它是在B语言的基础上发展起来的,1972—1973年间,贝尔实验室设计出了C语言。1983年,美国国家标准化协会制定了C语言的标准,称为ANSI C。 (2)略。

(3)C语言的主要特点是什么? 答:C语言的主要特点如下。 ① C程序是由函数组成的。

② 函数由函数头和函数体组成。

③ C程序总是从main函数开始执行。

④ 每个语句和数据声明的最后必须有一个“;”。

⑤ C语言没有自己的输入/输出语句,它的输入/输出由库函数printf和scanf完成。 ⑥ 可以添加注释。

⑦ C语言程序中的变量必须先声明后使用。 (4)如何使用Visual C++ 6.0开发控制台程序? 使用VC6开发控制台程序的方法如下:

答:① 在Miscrosoft Visual C++ 6.0环境下,首先建立一个空的工程。

② 而后建立一个C源程序文件,并在该文件中输入源代码。 ③ 使用Bulid命令或者快捷键F7,进行编译连接。

④ 如果没有错误,选择Execute命令或者快捷键Ctrl+F5,进行执行。

习题3参考答案:

3.1 选择题

1.B 2.D 3.D 4.A 5.A 6.A 7.C 8.C 9.C 10.B 3.2 写出下列程序的输出结果

1.200 310 c8 2.a=100,b=200 3.97,141,61,a 4.

5.aabb c abc 4,3

6.6,6,6,7 3.3 编程题

1.

#include void main() {

int a=500;

printf(\}

输出结果:500,764,1f4 2.

#include void main() {

float x;

scanf(\

printf(\}

输入:66

输出结果:a=66.000,a=6.60000e+001 3.

#include void main() {

char ch1='a',ch2=ch1;

printf(\printf(\}

输出结果:A,65,101,41

a,97,141,61

4.

#include void main() {

float x,y,z,s,v;

scanf(\s=2*(x*y+x*z+y*z); v=x*y*z;

printf(\}

输入:3 4 5

输出结果:Area=94 ,Volume=60 5.

#define PI 3.14

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

两数A,B公约数CC=AA=1)A%C==0 AND B%C==0C-- 1.5算法思考题 (1)钞票换硬币:把一元钞票换成一分、二分、五分硬币(每种至少一枚),有哪些种换法? 分析:1元相当于100分,设5分、2分、1分的硬币数分别为X、Y、Z,求换法就是在寻找这样一种组合,使得5*X+2*Y+Z =100,所以每当找到1种组合时,将个数记录下来,就可知换法有多少种,算法描述如下: Count = 0; //用于记录个数,初始为0 for(X=1;X<=20;X++) for(Y=1;Y<=50;Y++) for(Z=1;Z<=100;Z++) { if(5*X + 2*Y + Z == 100) //可实现交换 Coun

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com