当前位置: 首页 > news >正文

C Primer Plus 第6版 编程练习——第6章(上)

本章题比较多,有18题,分上下两部分

1.编写一个程序,创建一个包含26个元素的数组,并在其中存储26个小写字母.然后打印数组中的所有内容.
 

int main(int argc, char** argv)
{char lets[26] = { 0 };for (int i = 0;i < 26;i++){lets[i] = 'a' + i;}for (int i = 0;i < 26;i++){printf("%c", lets[i]);}printf("\n");return 0;
}

2.使用嵌套循环,按下面的格式打印字符:
$
$$
$$$
$$$$
$$$$$

int main(int argc, char** argv)
{for (int i = 0;i < 5;i++){for (int j = 0;j <= i;j++){printf("$");}printf("\n");}return 0;
}

3.使用嵌套循环,按下面的格式打印字母:
F
FE
FED
FEDC
FEDCB
FEDCBA
注意:如果你的系统不使用ASCII或其他以数字顺序编码的代码,可以把字符数组初始化为字母表中的字母:
char lets[27] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
然后用下标选择单独的字母,例如lets[0]是'A',等等

int main(int argc, char** argv)
{const char lets[27] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";for (int i = 5;i >= 0;i--){for (int j = 0;j <= 5 - i;j++){printf("%c", lets[5- j]);}printf("\n");}return 0;
}

4.使用嵌套循环,按下面的格式打印字母:
A
BC
DEF
GHIJ
KLMNO
PQRSTU
如果你的系统不使用ASCII或其他以数字顺序编码的代码,请参照练习3的方案解决

int main(int argc, char** argv)
{const char lets[27] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";int idx = 0;for (int i = 0;i < 6;i++){for (int j = 0;j <= i;j++){printf("%c", lets[idx++]);}printf("\n");}return 0;
}

5.编写一个程序,提示用户输入大写字母.使用嵌套循环以下面金字塔型的格式打印字母:
    A
   ABA
  ABCBA
 ABCDCBA
ABCDEDCBA
打印这样的图形,要根据用户输入的字母来决定.例如,上面的图形是用户输入E后的打印结果.
提示:用外层循环处理行,每行使用3个内层循环,分别处理空格、以升序打印字母、以降序打印字母.
如果你的系统不使用ASCII或其他以数字顺序编码的代码,请参照练习3的方案解决

int main(int argc, char** argv)
{system("chcp 65001");const char lets[27] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";char ch;printf("请输入大写字母:");scanf_s("%c", &ch, 1);for (int i = 0;i <= ch - 'A';i++){for (int j = 0;j < ch - 'A' - i;j++){printf(" ");}for (int j = 0;j <= i;j++){printf("%c", lets[j]);}for (int j = i - 1;j >= 0;j--){printf("%c", lets[j]);}printf("\n");}return 0;
}

6.编写一个程序打印一个表格,每一行打印一个整数、该数的平方、该数的立方.要求用户输入表格的上下限.使用一个for循环.

int main(int argc, char** argv)
{system("chcp 65001");int min, max;printf("请输入表格下限:");scanf_s("%d", &min);printf("请输入表格上限:");scanf_s("%d", &max);printf("|----------|----------|----------|\n|      整数|      平方|      立方|\n|----------|----------|----------|\n");for (int i = min;i <= max;i++){printf("|%10d|%10d|%10d|\n", i, i * i, i * i * i);printf("|----------|----------|----------|\n");}return 0;
}

7.编写一个程序把一个单词读入一个字符数组中,然后倒序打印这个单词。提示:str1en()函数(第4章介绍过)可用于计算数组最后一个字符的下标。
 

int main(int argc, char** argv)
{system("chcp 65001");char word[100] = { 0 };printf("请输入单词:");scanf_s("%s", word, 100);for (int i = strlen(word) - 1;i >= 0;i--){printf("%c", word[i]);}return 0;
}

8.编写一个程序,要求用户输入两个浮点数,并打印两数之差除以两数乘积的结果。在用户输入非数字之前,程序应循环处理用户输入的每对值。

int main()
{system("chcp 65001");printf("请输入两个浮点数:");double a = 0.0, b = 0.0;while (scanf_s("%lf %lf", &a, &b) == 2){printf("%f\n", (a - b) / (a * b));}
}

9.修改练习8,使用一个函数返回计算的结果。

double Calculate(double a, double b)
{return (a - b) / (a * b);
}int main()
{system("chcp 65001");printf("请输入两个浮点数:");double a = 0.0, b = 0.0;while (scanf_s("%lf %lf", &a, &b) == 2){printf("%f\n", Calculate(a, b));}
}

http://www.dtcms.com/a/265233.html

相关文章:

  • 设计模式-享元模式
  • JAVA内存区域划分
  • WEB测试总结
  • ubuntu 安装neo4j
  • 七、分工说明
  • 南方大暴雨及洪水数据分析与可视化
  • 爬虫从入门到精通(22) |TLS指纹
  • 【RHCSA-Linux考试题目笔记(自用)】servera的题目
  • 【C++】--入门
  • HTTPS详解:原理 + 加解密过程 + 面试问答
  • SpringBoot:整合quartz实现定时任务-基础篇
  • 从零用java实现 小红书 springboot vue uniapp (12)实现分类筛选与视频笔记功能
  • uniapp 滚动tab
  • autoware calar 联合运行,自动驾驶虚拟仿真器
  • ESP32S3开发:实现WiFi扫描与连接功能
  • 插值与拟合(3):B样条曲线
  • MySQL 用户管理与权限控制
  • 进阶向:Django框架深度解析各核心组件的作用与协作
  • Spring生态在Java开发
  • 自动驾驶行业向端到端架构转型
  • ArrayList剖析
  • 买卖股票的最佳时机--js 算法
  • linux LAMP 3
  • 开疆智能CCLinkIE转CANopen网关连接GBS20机器人配置案例
  • 第四章 网络传输介质与综合布线基础
  • 04-动态规划
  • OpenHarmony 5.0 解决点击导航栏切换后台按钮再切换到前台导航栏可能覆盖输入法问题,导致输入法下沉,最下面的显示不全
  • day046-tomcat与部署war包、jar包
  • 为什么星敏感器(Star Tracker)需要时间同步?—— 从原理到应用的全解析
  • Day04:玩转标准库中的数据处理与日志记录