《C++程序设计教程(第2版)》课后习题

2025-07-06

第1章 C++语言简介

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|)cos(|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?13. 编写程序求斐波那契数列的第n项和前n项之和。斐波那契数列是形如

0, 1, 1, 2, 3, 5, 8, 13, ... 其通项为:

F0 = 0; F1 = 1; Fn = Fn?1+Fn?2。

x31?3?x5(2n)!x2n?14. 编程求arcsinx?x???...?2n?...,其中x?1。 22?32?4?52(n!)(2n?1)提示:结束条件可用 u??,其中u为通项,ε为预先给定的精度要求。 5. 用牛顿迭代法求方程:2x3—4x2十3x一6=0在1.5附近的根。 提示:迭代公式 xn?1?xn?f(xn)

f'(xn)结束迭代过程的条件为(f(xn?1)??)与(xn?1?xn??)同时成立,其中ε为预先给

定的精度要求。

6. 求解猴子吃桃问题。猴子在第一天摘下若干个桃子,当即就吃了一半,又感觉不过瘾,

于是就多吃了一个。以后每天如此,到第10天想吃时,发现就只剩下了一个桃子。请编程计算第一天猴子摘的桃子个数。

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 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?Cn5.用弦截法求一元方程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。

3.编写程序,把10个整数1、2、…、10赋予某个int型数组,然后用int型指针输出该数组元素的值。

4.用指针编写一个程序,当输入一个字符串后,要求不仅能够统计其中字符的个数,还能分别指出其中大、小写字母、数字以及其他字符的个数。

提示:要输入包含空格的字符串需借助输入流对象的get()成员函数,如cin.get(str, 100); 语句就能将从键盘输入的前99个字符(含可能出现在其中的任意个空格)存入到字符数组str中去,若用户输入字符数少于99,则以回车换行表示输入结束。 5.编写一个函数, 用于将一个字符串转换为整型数值。其原型为: int atoi(char *string);

其中参数string为待转换的字符串(其中包括正、负号和数字),返回值为转换结果。 6.编写一个函数,用于生成一个空白字符串,其原型为:

char *mystrspc(char *string, int n); 其中参数string为字符串,n为空白字符串的长度 (空格符的个数)。返回值为指向string的指针。

第7章 函数与指针

1.使用递归算法编写如下程序:对于任意给定的实数X和整数k>0,计算Xk。 2.Ackermann函数ack(m,n)由以下递归定义:

ack(0, n)=n+1 ack(m, 0)=ack(m-1, 1)

ack(m, n)=ack(m-1, ack(m, n-1)) 编写一个计算此函数的递归程序。

其中m>0, n>0


《C++程序设计教程(第2版)》课后习题.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:多点温度检测 - 图文

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219