C Primer Plus(第6版)(中文版) 在文末,有需要的同学请自己下载
2.12 编程练习
第1题
编 写 一 个 程 序, 调 用 一 次 printf() 函 数, 把 你 的 姓 名 打 印 在 一 行。 再 调 用 一 次 printf() 函 数, 把 你 的 姓 名 分 别 打 印 在 两 行。 然 后, 再 调 用 两 次 printf() 函 数, 把 你 的 姓 名 打 印 在 一 行。 输 出 应 如 下 所 示( 当 然 要 把 示 例 的 内 容 换 成 你 的 姓 名):
答案代码:
#include <stdio.h>
int main(void)
{
printf("Gustav Mahler\n");//第一次打印
printf("Gustav\nMahler\n");//第二次打印
printf("Gustav ");//第三次打印
printf("Mahler");//第四次打印
return 0;
}
运行结果:

第2题
编 写 一 个 程 序, 打 印 你 的 姓 名 和 地 址。
答案代码:
#include <stdio.h>
int main(void)
{
printf("My name is Sherlock Holmes.\n");
printf("My address is:221B Baker Street, London, England. ");
return 0;
}
运行结果:

第3题
编 写 一 个 程 序 把 你 的 年 龄 转 换 成 天 数, 并 显 示 这 两 个 值。 这 里 不 用 考 虑 闰 年 的 问 题。
答案代码:
#include <stdio.h>
int main(void)
{
int age,day;
age = 30;
day =365 * age ;
printf("My age is %d ,the days are %d .",age,day);
return 0;
}
运行结果:

第4题
编 写 一 个 程 序, 生 成 以 下 输 出:
For he’s a jolly good fellow!
For he’s a jolly good fellow!
For he’s a jolly good fellow!
Which nobody can deny!
除 了 main() 函 数 以 外, 该 程 序 还 要 调 用 两 个 自 定 义 函 数: 一 个 名 为 jolly(), 用 于 打 印 前 3 条 消 息, 调 用 一 次 打 印 一 条; 另 一 个 函 数 名 为 deny(), 打 印 最 后 一 条 消 息。
答案代码:
#include <stdio.h>
void jolly(void);
void deny(void);
int main(void)
{
jolly();
jolly();
jolly();
deny();
return 0;
}
void jolly(void)
{
printf("For he's a jolly good fellow!\n");
}
void deny(void)
{
printf("Which nobody can deny!");
}
运行结果:

第5题
编 写 一 个 程 序, 生 成 以 下 输 出:
Brazil, Russia, India, China
India, China,
Brazil, Russia
除 了 main() 以 外, 该 程 序 还 要 调 用 两 个 自 定 义 函 数: 一 个 名 为 br(), 调 用 一 次 打 印 一 次“ Brazil, Russia”; 另 一 个 名 为 ic(), 调 用 一 次 打 印 一 次“ India, China”。 其 他 内 容 在 main() 函 数 中 完 成。
答案代码:
#include <stdio.h>
void br(void);//这行有没有都行
void ic(void);//这行有没有都行
void br(void)
{
printf("Brazil, Russia");
}
void ic(void)
{
printf("India, China");
}
int main(void)
{
br();
printf(", ");
ic();
printf("\n");
ic();
printf(", \n");
br();
return 0;
}
运行结果:

第6题
编 写 一 个 程 序, 创 建 一 个 整 型 变 量 toes, 并 将 toes 设 置 为 10。 程 序 中 还 要 计 算 toes 的 两 倍 和 toes 的 平 方。 该 程 序 应 打 印 3 个 值, 并 分 别 描 述 以 示 区 分。
答案代码:
#include <stdio.h>
int main(void)
{
int toes,toes_double,toes2;
toes = 10;
toes2 = toes * toes;
toes_double = 2 * toes;
printf("The toes is %d, twice the toes is %d, toes suqared is %d.",toes,toes_double,toes2);
return 0;
}
```c
运行结果:

第7题
许 多 研 究 表 明, 微 笑 益 处 多 多。 编 写 一 个 程 序, 生 成 以 下 格 式 的 输 出:
Smile! Smile! Smile!
Smile! Smile!
Smile!
该 程 序 要 定 义 一 个 函 数, 该 函 数 被 调 用 一 次 打 印 一 次“ Smile!”, 根 据 程 序 的 需 要 使 用 该 函 数。
答案代码:
#include <stdio.h>
void sm(void);//这行有没有都行
void sm(void)
{
printf("Smile!");
}
int main(void)
{
sm();sm();sm();
printf("\n");
sm();sm();
printf("\n");
sm();
return 0;
}
运行结果:

第8题
在 C 语 言 中, 函 数 可 以 调 用 另 一 个 函 数。 编 写 一 个 程 序, 调 用 一 个 名 为 one_three() 的 函 数。 该 函 数 在 一 行 打 印 单 词“ one”, 再 调 用 第 2 个 函 数 two(), 然 后 在 另 一 行 打 印 单 词“ three”。 two() 函 数 在 一 行 显 示 单 词“ two”。 main() 函 数 在 调 用 one_three() 函 数 前 要 打 印 短 语“ starting now:”, 并 在 调 用 完 毕 后 显 示 短 语“ done!”。 因 此, 该 程 序 的 输 出 应 如 下 所 示:
starting now:
one
two
three
done!
答案代码:
#include <stdio.h>
void one_three(void);//这行有没有都行
void two(void);//这行有没有都行
void two(void)
{
printf("two\n");
}
void one_three(void)
{
printf("one\n");
two();
printf("three\n");
}
int main(void)
{
printf("starting now:\n");
one_three();
printf("done!");
return 0;
}
运行结果:

C Primer Plus(第6版)(中文版)
链接:https://pan.baidu.com/s/1F-S2Iwn41KNh4XyVupi_4w
提取码:g2jr
这篇博客详细记录了C Primer Plus第6版的第2章编程练习的解答,包括8道题目。每道题都提供了答案代码及相应的运行结果。读者可以参考此博客来理解和验证编程练习的解决方案。

——第2章&spm=1001.2101.3001.5002&articleId=125911396&d=1&t=3&u=6dae9443dc5d45eb9ed283aa05f537c6)
15万+

被折叠的 条评论
为什么被折叠?



