c程序设计钱能第二版答案
【篇一:《c++程序设计教程(第2版)》课后习题】
t>1. 修改例1-1的hello world!程序,使其能够在计算机屏幕上显示:i am a student, and i like programming!
2. 修改例1-3的加法计算器程序,编写一个乘法计算器程序。
3. 修改例1-4的生日卡程序,使其能够输入和显示日期。
4. 参考例1-5,使用梯形法计算下式定积分的值。
?1
?1(sinx?ex)dx
其中积分区域等分数可取为200,并将计算结果和手算结果相比较。 提示:ex用标准数学函数库cmath中的库函数exp(x)表示。
5. 仿照例1-6,编写一个计算矩形面积的程序。
第2章 基本数据类型
1. 为例2-2添加数据检验部分。给出三边长,检验其是否能构成一个三角形的方法是检查是否任意两边和均大于第三边。如果检验不合格,输出信息“error data!”
2. 输入两个角度值x、y,计算如下式子的值。
sin(|x|?|y|)
x?y|)
3. 编写一个程序,要求完成以下要求:
1)
2)
3)
4) 提示用户输入任意的3个小数; 显示这三个小数; 将这三个小数相加,并显示其结果; 将结果按四舍五入方法转换成整数并显示。
4. 从键盘输入任意三个整数,然后输出这三个数并计算其平均值。
5. 编写一个程序,将字符串“love”译成密码,译码方法采用替换加密法,其加密规则是:将原来的字母用字母表中其后面的第3个字母的来替换,如字母c就用f来替换,字母y用b来替换。
提示:分别用4个字符变量来存储l、o、v和e,利用ascii表中字母的排列关系,按照译码方法对各个变量进行运算后输出即可。
第3章 控制结构
1. 编写计算阶乘 n!的程序。
2. 计算1!+2!+3!+4!+......+10!,即10?i!
i?1
3. 编写程序求斐波那契数列的第n项和前n项之和。斐波那契数列是形如 0, 1, 1, 2, 3, 5, 8, 13, ...
其通项为:
f0 = 0;
f1 = 1;
fn = fn?1+fn?2。
x31?3?x5(2n)!x2n?1
4. 编程求arcsinx?x???...?2n?...,其中x?1。 22?32?4?52(n!)(2n?1)
5. 用牛顿迭代法求方程:2x3—4x2十3x一6=0在1.5附近的根。
提示:迭代公式 xn?1?xn?f(xn) f(xn)
6. 求解猴子吃桃问题。猴子在第一天摘下若干个桃子,当即就吃了一半,又感觉不过瘾,于
是就多吃了一个。以后每天如此,到第10天想吃时,发现就只剩下了一个桃子。请编程计算第一天猴子摘的桃子个数。
printf函数返回值 7. 编写一个程序,寻用户输入的几个整数中的最小值。并假定用户输入的第一个数值指定后面要输入的数值个数。例如:当用户输入数列为: 5 20 15 300 9 700时,程序应该能够到最小数9
8. 有一分数序列
23581321,,,,,,...1235813
(即后一项的分母为前一项的分子,后项的分子为前一项分子与分母之和),求其前n项之和。
9. 求a+aa+aaa+aaaa+... ...+aa...a(n个),其中a为1~9之间的整数。 例如:当a = 1, n = 3时,求1+11+111之和;
当a = 5, n = 7时,求5+55+555+5555+55555+555555+5555555之和。
10. 猜幻数游戏。由系统随机给出一个数字(即幻数),让游戏者去猜,如果猜对,则打印
成功提示;否则,打印出错提示,并提示游戏者选择下一步动作,最多可以猜5次。
第4章 数组与字符串
1.使用数组来求斐波那挈数列的第n项和前n项之和。
2.编写程序,将4阶方阵转置,如下所示。
?4?2 ??3??1689??4?6745??
??881615???5711??9231?785?? 4167??51511?
转置前方阵a 转置后方阵a
3.使用数组编写一个统计学生课程平均分的程序:
输入6个学生的学号和3门课程的成绩(整数形式),统计每个学生3门课程的平均分(整数形式),最后输出统计结果。输出格式:
学号 高数 英语 体育 平均分
-----------------------------------------------------------------
4. 编写一个程序,要求用户输入一个十进制正整数,然后分别转换成为二进制数、八进制数和十六进制数输出。
5.输入10个字符到一维字符数组s中,将字符串置逆。即s[0]与s[9]互换,s[1]与[8]互换,...,s[4]与s[5]互换,输出置逆后的数组s。
6.替换加密(恺撒加密法):
加密规则是:将原来的小写字母用字母表中其后面的第3个字母的大写形式来替换,大写字母按同样规则用小写字母替换,对于字母表中最后的三个字母,可将字母表看成是首未衔接的。如字母c就用f来替换,字母y用b来替换。
请将字符串“i love you”译成密码。
第5章 函数
1.编写字符串反转函数mystrrev( ),该函数的功能为将指定字符串中的字符顺序颠倒排列。然后再编写主函数验证之。函数声明为:
void mystrrev(char string[])
该函数无需返回值。
提示:求字符串长度可以直接调用库函数strlen( ),但在程序首部应加上 #include cstring
2.编写一组求数组中最大最小元素的函数。该组函数的原型为
int imax(int array[], int count); // 求整型数组的最大元素
int imin(int array[], int count); // 求整型数组的最小元素
其中参数count为待考察的数组中的元素个数,函数的返回值即为求得的最大或最小元素之值。要求同时编写出主函数进行验证。
3.编写函数isprime(int a)用来判断变量a是否为素数,若是素数,函数返回1,否则返回0。调用该函数出任意给定的n个整数中的素数。
4.打印出以下的杨辉三角形(要求打印出10行)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
… …
提示:打印杨辉三角形有两种方法:
1)杨辉三角形表现的是二项式(a?b)n的展开式的系数。例如,(a?b)2?a2?2ab?b2, 故杨辉三角形的第三行(对应n=2)为
1
2 1 一般地,二项式(a?b)n的展开式为 0n01n?11mn?mmn0ncnab?cnab?...?cnab?...?cnab
其中第m项cn?mn!。 m!(n?m)!
2)可直接根据杨辉三角形的形式来推出每项的值。由下面的杨辉三角形可以看出,杨辉三角形每行的第一个数和最后一个数均为1,除第一行外,每行中间的各数等于上一
mmm?1行位于该数左上方和正上方的两数之和,即cn。 ?1?cn?cn
5.用弦截法求一元方程f(x)?0在区间?x0,x1?之间的一个根。
提示:考虑当区间?x0,x1?足够小,在此区间中方程f(x)?0仅有一个单根的情况,如下图所示。
图5.6 弦截法求方程的解
此时如f(x0)和f(x1)异号,则可用两点间直线公式求出x2:
x2?x0?x0?x1f(x0) f(x0)?f(x1)
然后用x2代入原式求出f(x2),判断f(x2)与f(x1)和f(x0)中的哪一个同号,就用x2和f(x2)代替之,即如果f(x2)和f(x0)同号,就用x2和f(x2)代替x0和f(x0),反之用x2和f(x2)代替x1和f(x1),然后再继续上述过程直至|f(x)|小于给定的误差控制值。
第6章 指针
1.使用指针编写一个对整型数组进行排序的函数,排序方法使用例4-6的交换排序法(冒泡排序法)。
2.编写程序,将某一个输入的位数不确定的正整数按照标准的三位分节格式输出,例如,当用户输入82668634时,程序应该输出82,668,634。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论