文章目录

  • 6.16.1
  • 6.16.2
  • 6.16.4
  • 6.16.5
  • 6.16.6
  • 6.16.7
  • 6.16.8
  • 6.16.9
  • 6.16.10
  • 6.16.11
  • 6.16.12
  • 6.16.13
  • 6.16.14
  • 6.16.15
  • 6.16.16
  • 6.16.17
  • 6.16.18

6.16.1

/**
***编写一个程序,创建一个包含26个元素的数组,并在其中存储26个小写字母。
***然后打印数组的所有内容。
**/#include <stdio.h>
#define SIZE 26
int main()
{int i;char letter[SIZE];for (i = 0; i < SIZE; i++)letter[i] = 'a' + i;printf("\n");for (i = 0; i < SIZE; i++)printf("%3c", letter[i]);printf("\n");return 0;
}

6.16.2

/**
***使用嵌套循环,按下面的格式打印字符:
*** $
*** $$
*** $$$
*** $$$$
*** $$$$$
**/#include <stdio.h>
int main()
{char a = '$';int i, j;for (i = 0; i < 5; i++){for (j = 0; j <= i; j++)printf("%c", a);printf("\n");}return 0;
}

/**
***使用循环嵌套,按下面的格式打印字母:
*** F
*** FE
*** FED
*** FEDC
*** FEDCB
*** FEDCBA
**/#include <stdio.h>
int main()
{char start, end;char let = 'F';for (start = let; start >= 'A'; start--){for (end = let; end >= start; end--){printf("%c", end);}printf("\n");}return 0;
}//外层循环F,进入内层循环,循环一次后自减变成E,跳出内层循环
//执行完\n后,外层循环第一次循环结束自减成E。//此时外层的start 是 E,进入内层,初始化end 为F,判断条件满足,打印end:F,自减成E,
//再判断,又满足,此时end变成 E,满足条件,继续打印end:E。就是第二行的 FE。再次自减变成D
//不满足,跳出,外层循环继续...

6.16.4

/**
***使用嵌套循环,按下面的格式打印字母:
***     A
***     BC
***     DEF
***     GHJI
***     KLMNO
***     PQRSTU
**/#include <stdio.h>int main()
{char let = 'A';char c; //外层循环变量,内层循环变量int a, b;for (a = 1; a <= 6; a++){for (b = 1; b <= a; b++){printf("%c", let++);}printf("\n");}return 0;
}

6.16.5

/** 编写一个程序, 提示用户输入大写字母* 使用嵌套循环以下面金字塔型的格式打印字母:*         A*        ABA*       ABCBA*      ABCDCBA*     ABCDEDCBA*/
#include <stdio.h>int main(void)
{printf("Please enter a capital letter: ");char capital;scanf("%c", &capital);for (char i = 'A'; i <= capital; i++){char j;int space;// 打印空格for (space = capital - i; space > 0; space--){printf(" ");}// 顺序打for (j = 'A'; j <= i; j++){printf("%c", j);}//逆序打印for (char k = j - 2; k >= 'A'; k--){printf("%c", k);}printf("\n");}return 0;
}

6.16.6

/** 编写一个程序打印一个表格, 每一行打印一个整数, 该数的平方, 该数的立方.* 要求用户输入表格的上下限. 使用一个For循环*/#include <stdio.h>
#include <math.h>int main(void)
{int upper, lower;printf("Please enter the upper limit number of the table:");scanf("%d", &upper);printf("Please enter the lower limit number of the table:");scanf("%d", &lower);printf("\tnumber\t|\tsquare\t|\tcube\n");int min = lower < upper ? lower : upper;for (size_t i = 0; i <= abs(upper - lower); i++)printf("\t%d\t|\t%d\t|\t%d\n", min++, min * min, min * min * min);return 0;
}

6.16.7

/** 编写一个程序, 把一个单词读入一个字符串数组中, 然后倒序打印这个单词. * 提示: strlen()函数可用于计算数组的最后一个字符的下标.*/#include <stdio.h>
#include <string.h>
int main(void)
{printf("Please enter a word:");char str[50] = {0};scanf("%s", str);int i = strlen(str);for (i--; i >= 0; i--){printf("%c", str[i]);}return 0;
}

6.16.8

/** 编写一个程序, 要求用户输入两个浮点数, 并打印两数之差除以两数乘积的结果.* 在用户输入非数字之前, 程序应循环处理用户输入的每一对值.
*/
#include <stdio.h>int main(void)
{double a, b;printf("\n\tPlease enter two float number.\n\t");while (scanf("%lf", &a) && scanf("%lf", &b)){printf("(%.2lf - %.2lf) / (%.2lf * %.2lf) = %.2lf", a, b, a, b, (a - b) / (a * b));printf("\n\tPlease enter two float number.\n");}return 0;
}

6.16.9

/** 修改练习题8, 使用一个函数返回计算结果 */
#include <stdio.h>double calc(double a, double b);int main(void)
{double a, b;printf("\nPlease enter two float number.\n");while (scanf("%lf", &a) && scanf("%lf", &b)){printf("(%.2lf - %.2lf) / (%.2lf * %.2lf) = %.2lf", a, b, a, b, calc(a, b));printf("\nPlease enter two float number.\n");}return 0;
}double calc(double a, double b)
{return (a - b) / (a * b);
}

6.16.10

/** 编写一个程序, 要求用户输入一个上限整数和一个下限整数* 计算从上限到下限范围内所有整数的平和的和.并显示计算结果* 然后程序继续提示用户输入.* 直到用户输入的上限 <= 下限整数为止.*/#include <stdio.h>
int main(void)
{int upper, lower;printf("Please enter the lower and upper integer limit :");scanf("%d %d", &lower, &upper);while (1){if (upper <= lower)break;int sum = 0, i;int l = lower;for (i = 0; i <= upper - lower; i++){sum += (l * l);l++;}printf("The sum of squares from %d to %d is %d\n", lower * lower, upper * upper, sum);printf("Enter next set of limits:");scanf("%d %d", &lower, &upper);}
}

6.16.11

/** 编写一个程序,在数组中读入8个整数,然后按倒序打印这8个整数.*/
#include <stdio.h>int main(void)
{int arr[] = {11, 25, 33, 41, 5, 23, 10, 23};printf("\nASC:\t");int i;for (i = 0; i < 8; i++){printf("%d\t", arr[i]);}printf("\nDESC:\t");for (i = sizeof(arr) / sizeof(arr[0]) - 1; i >= 0; i--){printf("%d\t", arr[i]);}printf("\n");return 0;
}

6.16.12

/** 考虑下面两个无线序列:* * 1.0 + 1.0/2.0 + 1.0/3.0 + 1.0/4.0 + ...* 1.0 - 1.0/2.0 + 1.0/3.0 - 1.0/4.0 + ...* * 编写一个程序计算着两个无限序列的总和, 直到到达某次数.* 提示: 奇数个-1相乘 = -1. 偶数个-1相乘 = 1.* 让用户交互式的输入指定的次数, 当用户输入0或负值时结束输入.* 查看运行100项, 1000项, 10000项后的总和, 是否发现每个序列都收敛于某个值?*/
#include <stdio.h>
#include <math.h>
int main(void)
{printf("\nSeries 1 : 1.0 + 1.0/2.0 + 1.0/3.0 + 1.0/4.0 + ...\n");printf("Series 2 : 1.0 - 1.0/2.0 + 1.0/3.0 - 1.0/4.0 + ...\n");printf("\nHow many item do you want to calculate? ");int item;while (scanf("%d", &item) && item > 0){double sum = 0.0;int i;for (i = 1; i <= item; i++)sum += (double)(1.0 / i);printf("\nSeries 2 : The sum of %d item is %.2lf\n", item, sum);sum = 0.0;for (i = 1; i <= item; i++)sum = (i % 2 == 0) ? sum - 1.0 / i : sum + 1.0 / i;printf("\nSeries 2 : The sum of %d item is %.2lf\n", item, sum);printf("\nHow many item do you want to calculate? ");}// 由此可见 Series1 是发散的, Series2 是震荡的. return 0;
}

6.16.13

/** 编写一个程序,创建一个包含8个元素的int类型数组, 分别把数组元素设置为2的前8次幂.* 使用for循环设置数组元素的值, 使用do while循环显示数组元素的值.*/
#include <stdio.h>
#include <math.h>
int main(void)
{int bit[8];int i;for (i = 0; i < 8; i++)bit[i] = pow(2, i + 1);i = 0;do{printf("%d\t", bit[i++]);} while (bit[i] <= pow(2, 8));return 0;
}

6.16.14

/** 编写一个程序, 创建两个包含8个元素的double类型数组* 使用循环提示用户为第一个数组输入8个值, 第二个数组元素的值为第一个数组对应元素的累计之和.* * 例如, 第二个数组的第4个元素的值是第一个数组前4个元素之和,第二个数组的第5个元素的值是第一个数组前5个元素之和.* (用嵌套循环就可以完成,但是利用第二个数组的第5个元素是 第二个数组的第4个元素与第一个数组第5个元素之和, 只用一个循环就能完成不需要嵌套)* arr2[4] = arr2[3] + arr1[4]* 最后使用循环显示两个数组的内容, 第一个数组显示成一行, 第二个数组显示在第一个数组的下一行,* 而且每个元素都与第一个数组个元素相对应.*/
#include <stdio.h>int main(void)
{double arr1[8], arr2[8];printf("Please enter 8 number: ");for (size_t i = 0; i < 8; i++)scanf("%lf", &arr1[i]);arr2[0] = arr1[0];for (size_t i = 1; i < 8; i++)arr2[i] = arr2[i - 1] + arr1[i];for (size_t i = 0; i < 8; i++)printf("%.2lf\t", arr1[i]);printf("\n");for (size_t i = 0; i < 8; i++)printf("%.2lf\t", arr2[i]);return 0;
}

6.16.15

/** 编写一个程序,读取一行输入, 然后把输入的内容倒序打印出来.* 可以把输入存储在char类型的数组中,假设每行字符不超过255.*/
#include <stdio.h>
#include <string.h>
int main(void)
{char arr[255];printf("\nPlease enter a sentences:");gets(arr);printf("\n");for (size_t i = strlen(arr); i > 0; i--){printf("%c", arr[i - 1]);}printf("\n");return 0;
}

6.16.16

/** Daphne以10%的单利息投资了100美元(也就是说, 每年投资获利相当于原始投资的10%).* Deirdre以5%的复合利息投资了100美元(也就是说, 利息是当前余额的5%, 包含之前的利息).* 编写一个程序, 计算需要多少年Deirdre的投资才会超过Daphne, 并显示那时两人的投资额.*/#include <stdio.h>int main(void)
{double Daphne = 100 * 1.1;double Deirdre = 100 * 1.05;int year = 1;printf("Daphne: %.5lf \t Deirdre: %.5lf \t year: %d\n", Daphne, Deirdre, year);while (Deirdre < Daphne){Daphne += 100 * 0.1;Deirdre += Deirdre * 0.05;year++;printf("Daphne: %.5lf \t Deirdre: %.5lf \t year: %d\n", Daphne, Deirdre, year);}return 0;
}

6.16.17

/** Chuckie Lucky 赢得了$1,000,000 (AT税后), 他把奖金存入年利率8%的账户* 在每年的最后一天, Chuckie 取出$100,000.* 计算多少年后Chuckie会去完账户的钱.*/#include <stdio.h>
#define RATE 0.8
int main(void)
{double Chuckie = 1000000;int year = 0;do{printf("No.%2d get interest: %9.2lf\t", year + 1, Chuckie * 0.08);Chuckie *= 1.08;printf("Count: %9.2lf\t", Chuckie);Chuckie -= 100000;printf("After -10w, REST: %9.2lf\n", Chuckie);year++;} while (Chuckie > 100000);printf("\n\nNo.%d year Chuckie will be a poor wretch\n", year);return 0;
}

6.16.18

/** Rabnud博士加入了一个社交圈.起初他有5个朋友.他注意到他的朋友数量以下面的方式增长.* 第一周少了1个朋友, 剩下的朋友数量翻倍, 第二周少了两个朋友, 剩下的朋友数量翻倍. 一般而言, 第N周少N个朋友, 剩下的朋友数量翻倍* 计算并显示Rabnud博士每周朋友数量.该程序一直运行, 直到超过邓巴数. * 邓巴数是粗略估算一个人在社交圈中有稳定关系的成员的最大值, 大概150.*/
#include <stdio.h>
int main(void)
{int friends = 5;int week = 1;do{printf("\nWeek %d has %d friends.\n", week++, friends--);friends *= 2;} while (friends < 150);printf("\nWeek %d has %d friends.\n", week++, friends--);return 0;
}

《C Primer Plus 》第六版 习题 第六章相关推荐

  1. 《C Primer Plus 》第六版 习题 第七章

    文章目录 7.12.1 7.12.2 7.12.3 7.12.4 7.12.5 7.12.6 7.12.7 7.12.8 7.12.9 7.12.10 7.12.11 7.12.1 /** ***编写 ...

  2. C primer plus(第六版)第十一章源代码

    C primer plus(第六版)第十一章源代码 /* 11.1 */ #include<stdio.h> #define MSG "I am a symbolic strin ...

  3. 【再读第六版PMBOK】第一章 引论

    [再读第六版PMBOK]第一章 引论 1)项目 1.1)项目的两大特点 1.2)项目驱动组织变更 1.3)项目的商业价值 1.4)项目启动背景 2)项目管理的重要性 3)项目,项目集,项目组合以及运营 ...

  4. 【再读第六版PMBOK】第二章 项目运行环境

    [再读第六版PMBOK]第二章 项目运行环境 1)事业环境因素 1.1)组织内部事业环境因素 1.2)组织外部事业环境因素 2)组织过程资产 2.1)过程政策,和程序 2.2)组织知识库 3)组织系统 ...

  5. pmbook 知识领域 第六版_PMBOK第六版10大知识领域ITTO思维导图-干货

    PMBOK学习过程中,ITTO(输入.工具.技术.输出)是每年必考的内容,掌握ITTO的脉络,对学习和梳理PMP非常有帮助.知道这个过程要做什么,为什么做,做完有什么成果.也是项目经理必备的技能之一. ...

  6. pmbook 知识领域 第六版_PMBOK第六版10大知识领域ITTO思维导图-干货!

    PMBOK学习过程中,ITTO(输入.工具.技术.输出)是每年必考的内容,掌握ITTO的脉络,对学习和梳理PMP非常有帮助.知道这个过程要做什么,为什么做,做完有什么成果.也是项目经理必备的技能之一. ...

  7. 【c++ primer】第五版第十六章习题答案

    练习16.1 给出实例化的定义. 解: 当编译器实例化一个模版时,它使用实际的模版参数代替对应的模版参数来创建出模版的一个新"实例". 练习16.2 编写并测试你自己版本的 com ...

  8. 【c++ primer】第五版第十四章习题答案

    第十四章 重载运算与类型转换 练习14.1 在什么情况下重载的运算符与内置运算符有所区别?在什么情况下重载的运算符又与内置运算符一样? 解: 不同点: 重载操作符不保证操作数的求值顺序,例如对& ...

  9. C++ Primer Plus(第六版)第四章编程练习参考答案

    答案出于菜鸟之手,希望大家参考,提出建议!!! 一. #include<iostream>using namespace std;int main() {char fname[20];ch ...

最新文章

  1. Storm概念学习系列之storm的特性
  2. Universal-Image-Loader,android-Volley,Picasso、Fresco和Glide开源组件加载网络图片的优缺点比较...
  3. sqlserver 微信昵称_sql server用户名和登录名的区别和联系
  4. 再来一波不错的学习资源
  5. zookeeper简单命令
  6. java怎么让遮罩层下面滚动_vue项目弹出层后禁止body底层的滚动事件
  7. [蓝桥杯]试题 基础练习 芯片测试
  8. 页面s升级中_你的电脑要不要升级内存?怎么升级?答案都在这里
  9. GHOST重装系统后分区丢失只剩C盘的数据恢复方法
  10. Windows phone 7中关于Zune软件使用几个问题
  11. 视频教程-VB程序设计入门基础-其他
  12. 【Python计量】statsmodels对虚拟变量进行回归
  13. lambda函数 python菜鸟教程-python
  14. echart 水滴图水波颜色设置
  15. ssh 使用新法:公网(合法 ip)用户访问内网(私有 ip)服务器(http,ftp,sshd,cvs...),内网的朋友不妨一看。
  16. 机器学习 周志华 第一章课后习题
  17. 反恐精英服务器维修,China.com 反恐精英专区
  18. [转载]使用 SVK 构建分布式版本控制环境
  19. 2016年终总结,新的一年新的开始
  20. nCodeDL 分析实例(一)高周疲劳

热门文章

  1. 华硕K40in升级10.9指导
  2. 随机生成游戏角色昵称(使用Excel配置XML文件)上
  3. stop and stare
  4. C. Minimum Value Rectangle(基本不等式等式成立的条件)
  5. 年龄估计系列(1)年龄性别调研:论文阅读和github资源汇总/数据库/挑战/思考
  6. 2019最新4月电脑壁纸大全,信修修带你选舒服的!
  7. 利用Histcite+Web Of Science帮助领域文献了解
  8. 任正非:必须成功,就要抓住人性的欲望!(深度好文)
  9. 数据库一对一 一对多 多对多关系
  10. 人脉存折 五个朋友决定你的富贵