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

第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++之和。

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);

// 求整型数组的最大元素

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4