c语⾔设计基础答案第⼆版,程序设计基础——基于C语⾔(第2
版)课后习题参考答案...
两数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),则可列出下列式⼦:
基础c语言代码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

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。