C Primer Plus 第6版 第六章 编程练习参考答案
编译环境VS Code+WSL GCC 源码请到文末下载 。
注意:本章部分题目中用到了math.h 用gcc编译时加上-lm参数。
/*第1题*************************/
#include<stdio.h>
int main(void)
{
int i;
char char_arry[26]={0};
for(i=0;i<26;i++)
{
char_arry[i]='a'+i;
}
for(i=0;i<26;i++)
{
printf("%c ",char_arry[i]);
}
putchar(10);
}
/*第2题*************************/
#include<stdio.h>
int main()
{
int i,j;
for (i = 0; i < 5; i++)
{
for(j = 0; j < i+1 ;j++)
putchar('$');
putchar('\n');
}
return 0;
}
/*第3题*************************/
#include<stdio.h>
int main()
{
int i,j;
for (i = 0; i < 6; i++){
for(j = 0;j <= i;j++)
printf("%c",'F'-j);
putchar(10);
}
return 0;
}
/*第4题*************************/
#include<stdio.h>
int main()
{
char start = 'A';
int i,j;
for(i=0;i<6;i++){
for(j=0;j<=i;j++){
printf("%c",start);
start++;
}
putchar(10);
}
return 0;
}
/*第5题*************************/
#include<stdio.h>
int main()
{
char a,tmp;
int i,j;
printf("请输入一个大写字母:");
tmp=a=getchar();
for(i=5;i>0;i--){
for(j=i-1;j>0;j--)
putchar(' ');
for(j=6-i;j>0;j--)
printf("%c",a++);
a--;
for(j=5-i;j>0;j--)
printf("%c",--a);
putchar('\n');
a=tmp;
}
return 0;
}
/*第6题*************************/
#include<stdio.h>
int main()
{
int input;
printf("请输入表格的行数:");
scanf("%d",&input);
printf("-------------------\n");
for(;input>0;input--){
printf("| %3d | %3d | %3d |\n",input,input*input,input*input*input);
printf("-------------------\n");
}
return 0;
}
/*第7题*************************/
#include<stdio.h>
#include<string.h>
int main()
{
char arry[100]={0};
int lenth,i;
printf("请输入一些字符:");
scanf("%s",arry);
lenth = strlen(arry);
printf("逆序打印这些字符:");
for(i= --lenth;i>=0;i--)
{
putchar(arry[i]);
}
putchar(10);
return 0;
}
/*第8题*************************/
#include<stdio.h>
int main()
{
float input_1,input_2,res;
printf("请输入两个数(输入非数字退出):");
while (scanf("%f %f",&input_1,&input_2)==2)
{
if(input_1>input_2){
res = (input_1 - input_2) / (input_1 * input_2);
}
else if(input_1<input_2)
{
res = (input_2 - input_1) / (input_2 * input_1);
}
else
{
res = 0;
}
printf("%g %g %g\n",input_1,input_2,res);
}
}
/*第9题*************************/
#include<stdio.h>
float func(double input_1,double input_2);
int main()
{
float input_1,input_2,res;
printf("请输入两个数(输入非数字退出):");
while (scanf("%f %f",&input_1,&input_2)==2)
{
res = func(input_1,input_2);
printf("%g %g %g\n",input_1,input_2,res);
}
}
float func(double input_1,double input_2)
{
double res;
if(input_1>input_2){
res = (input_1 - input_2) / (input_1 * input_2);
}
else if(input_1<input_2)
{
res = (input_2 - input_1) / (input_2 * input_1);
}
else
{
res = 0;
}
return res;
}
/*第10题*************************/
#include<stdio.h>
#include<string.h>
int main()
{
int input_1,input_2,res,i;
char tmp;
printf("请输入一个下限整数和一个上限整数(输入相同的数退出程序):");
while (1)
{
if(scanf("%d %d",&input_1,&input_2)!=2){
do{tmp =getchar();}
while(tmp != '\n');
//while(tmp>='0'&&tmp<='9');//有个BUG,在输入N个非数字字符就会输出N个错误提示。
printf("输入错误,请重新输入:");
continue;
}
else if(input_1 > input_2){
printf("输入错误,请重新输入:");
continue;
}
else if(input_1 == input_2){
printf("程序退出...\n");
break;
}
for(i=input_1;i<=input_2;i++)
res += i*i;
printf("两个数的平方从%d到%d的和是%d\n",input_1*input_1,input_2*input_2,res);
printf("请输入一个下限整数和一个上限整数(输入相同的数退出程序):");
}
}
/*第11题*************************/
#include<stdio.h>
int main()
{
int arry[]={1,2,3,4,5,6,7,8};
int i;
for(i=7;i>=0;i--){
printf("%d",arry[i]);
}
putchar(10);
return 0;
}
/*第12题*************************/
#include<stdio.h>
double arr_add_fun(int len);
double arr_add_fun_(int len);
int main()
{
int arr_len;
double res;
while (1)
{
printf("请输入次数(输入负数或0退出):");
scanf("%d",&arr_len);
if (arr_len > 0)
{
res = arr_add_fun(arr_len)+arr_add_fun_(arr_len);
printf("%d项的和是%g\n",arr_len,res);
}
else
{
printf("程序退出...\n");
break;
}
}
return 0;
}
double arr_add_fun(int len)
{
double res = 0,cnt = 1.0;
int i;
for(i=1;i<=len;i++)
{
res += 1.0 / cnt++;
}
return res;
}
double arr_add_fun_(int len)
{
double res = 0,cnt = 1.0;
int i;
for(i=1;i<=len;i++)
{
if(i%2 == 0){
res -= 1.0 / cnt++;
}
else
{
res += 1.0 / cnt++;
}
}
return res;
}
/*第13题*************************/
#include<stdio.h>
#include<math.h>
/************************************/
/* 请添加-lm参数,例如:gcc 13.c -lm */
/************************************/
int main()
{
int i,res;
int arry[8],*p=arry;
for(i=0;i<8;i++){
arry[i]=pow(2,i);
}
i=0;
do{
printf("%d ",arry[i++]);
}
while (i<8);
putchar(10);
return 0;
}
/*第14题*************************/
#include<stdio.h>
int main()
{
double num_arr[8],num_arr_[8];
int i;
printf("请输入8个数(按Enter键入)\n");
for(i=0;i<8;i++){
printf("请输入第%d个数:",i+1);
scanf("%lf",&num_arr[i]);
}
num_arr_[0]=num_arr[0];
for(i=1;i<8;i++)
num_arr_[i]=num_arr[i]+num_arr_[i-1];
for(i=0;i<8;i++)
printf("%-3g ",num_arr[i]);
putchar(10);
for(i=0;i<8;i++)
printf("%-3g ",num_arr_[i]);
putchar(10);
return 0;
}
/*第15题*************************/
#include<stdio.h>
int main()
{
char arry[255]={0};
char rec,i=0;
printf("请输入一些字符:");
do{
scanf("%c",&rec);
arry[i]=rec;
i++;
}
while (rec != '\n');
arry[i]='\0';
for(i--;i>=0;i--)
{
printf("%c",arry[i]);
}
putchar(10);
return 0;
}
/*第16题*************************/
#include<stdio.h>
int main()
{
int year=0;
double daphne=100,deirdre=100;
do{
year++;
daphne += 100 * 0.1;
deirdre *= 1.05;
}
while (deirdre <= daphne);
printf("需要%d年deirdre会超过daphne。\n",year);
printf("deirdre能拿到%g dollars\ndaphne能拿到%g dollars\n",deirdre,daphne);
return 0;
}
/*第17题*************************/
#include<stdio.h>
int main()
{
int year = 1;
double dollar=1000000;
do{
year++;
dollar += dollar * 0.08;
dollar -= 100000;
}
while (dollar > 100000);
printf("需要%d年。\n",year);
return 0;
}
/*第18题*************************/
#include<stdio.h>
int main()
{
int frieds = 5,week = 1;
while (frieds <= 150){
frieds -= week;
frieds *= 2;
if(frieds > 150)
break;
printf("第%d周有%d个朋友。\n",week,frieds);
week++;
}
return 0;
}
C Primer Plus 第6版 第六章 编程练习参考答案的更多相关文章
- 《C++ Primer》 第四版 第7章 函数
<C++ Primer> 第四版 第7章 函数 思维导图笔记 超级具体.很具体,图片版,有利于复习查看 http://download.csdn.net/detail/onlyshi/94 ...
- c primer plus(五版)编程练习-第六章编程练习
1.编写一个程序,创建一个具有26 个元素的数组,并在其中存储26 个小写字母.并让该程序显示该数组的内容. #include<stdio.h> #define SIZE 26 int m ...
- C primer plus 第五版十二章习题
看完C prime plus(第五版)第十二章,随带完成了后面的习题. 1.不使用全局变量,重写程序清单12.4的程序. 先贴出12.4的程序,方便对照: /* global.c --- 使用外部变量 ...
- 读Javascript高级程序设计第三版第六章面向对象设计--创建对象
虽然Object构造函数或者对象字面量都可以用来创建单个对象,但是缺点非常明显:使用同一接口创建很多对象,会产生大量重复代码. 工厂模式 1 function CreatePerson(name,a ...
- java编程思想第四版第六章习题
(略) (略) 创建两个包:debug和debugoff,他们都包含一个相同的类,该类有一个debug()方法,第一个版本显示发送给控制台的String参数,而第二版本什么也不做,使用静态import ...
- java编程思想 第四版 第六章 个人练习
欢迎加群:239063848 进群须知:本群仅用于技术分享与交流.问题公布与解答 禁止闲聊.非诚勿扰 练习1:(1)在某个包中创建一个类,在这个类所处的包的外部创建该类的一个实例. import mi ...
- c++primer 第l六章编程练习答案
6.11.1 #include<iostream> #include<cctype> int main() { using namespace std; char ch; ci ...
- sprinng in action 第四版第六章中的ValidationMessages.properties不起作用
文件名必须是ValidationMessages.properties,必须放在类的根目录下
- java编程思想第四版第六章总结
1. 代码重构 为什么f要代码重构 第一次代码不一定是完美的, 总会发现更优雅的写法. 代码重构需要考虑的问题 类库的修改不会破坏客户端程序员的代码. 源程序方便扩展和优化 2. 包 创建一个独一无二 ...
- C++ Primer Plus(第6版)习题(第二章)
1..编写一个C++程序,它显示您的姓名和地址. #include<iostream> using namespace std; int main() { string name,addr ...
随机推荐
- Web渗透08_文件上传
1 文件上传漏洞概述 文件上传几乎是每一个web,或者说是任何 服务器客户端模式 应用的必备功能,用户在自己的文章,博文中要上相关图片.用户上传自己的头像.网盘用户上传各种文件.等等.若服务器对此没有 ...
- git安装-Tortoise git 安装汉化教程
1.首先下载 去官网下载 如果下载比较慢的,链接自取 https://pan.quark.cn/s/fcb9d0b39c7f 2. 安装git 3. 安装git图形化工具Tortoise git 4. ...
- docker bulid tag push到自己的docker hub 仓库
-t(或 --tag)参数:用于给构建的镜像指定标签(tag).标签的格式通常是 [仓库名/][用户名/]镜像名:版本号 -f(或 --file)参数: 指定构建镜像所使用的 Dockerfile 的 ...
- DCDC电路设计之FB引脚布线
该随笔从与非网上搬运,原文: 案例讲解,DCDC电源反馈路径的布线规则 下面为正文内容: 在本文中,将对用来将输出信号反馈给电源ic的FB引脚的布线进行说明. 反馈路径的布线 反馈信号的布线在信号布线 ...
- gal game 杂谈——前言
gal game 杂谈--前言 大年三十凌晨(早上)打算开始写了吧,作为第一篇先写一些前言好了. 第一次接触gal game还是在B站上看到有人玩<我和她的世界末日>当时觉得挺有意思的,加 ...
- VS中使用Qt方法详解
相信大家都知道在 Qt Creator 中可以使用 MSVC 编译工具对 Qt 项目进行编译.若有人比较习惯于使用 Visual Studio,或某些项目必须使用 Visual Studio,也可以在 ...
- 孤立森林(IForest)代码实现及与PyOD对比
孤立森林(Isolation Forest)是经典的异常检测算法(论文网址).本文用python对其进行实现,以及与常用的异常检测包PyOD进行效果对比. 简单来说,孤立森林(IForest)中包含若 ...
- 什么是静态(static)?什么是静态方法,静态变量,静态块和静态类?
本文由 ImportNew - 唐小娟 翻译自 Journaldev.如需转载本文,请先参见文章末尾处的转载要求. static是Java中的一个关键字,我们不能声明普通外层类或者包为静态的.stat ...
- Java Concurrent
本文节选自 Effective Java by Joshua Bloch 和 Concurrent Programming in Java by Doug Lea. 1.1 概述 多线程程序设计比单线 ...
- Windows下驱动安装
推荐使用金山毒霸中的电脑医生进行驱动或DLL文件的扫描,查找并下载 dll文件下载地址: https://www.wenjian.net/ 可以进行下载,告诉该文件的放置路径 其他: