《C Primer Plus(第6版)中文版》一2.12 编程练习

2.12 编程练习

纸上得来终觉浅,绝知此事要躬行。读者应该试着编写一两个简单的程序,体会一下编写程序是否和阅读本章介绍的这样轻松。题目中会给出一些建议,但是应该尽量自己思考这些问题。一些编程答案练习的答案可在出版商网站获取。

1.编写一个程序,调用一次printf()函数,把你的名和姓打印在一行。再调用一次printf()函数,把你的名和姓分别打印在两行。然后,再调用两次printf()函数,把你的名和姓打印在一行。输出应如下所示(当然要把示例的内容换成你的名字):

Gustav Mahler      ←第1次打印的内容
Gustav             ←第2次打印的内容
Mahler             ←仍是第2次打印的内容
Gustav Mahler      ←第3次和第4次打印的内容

2.编写一个程序,打印你的姓名和地址。

3.编写一个程序把你的年龄转换成天数,并显示这两个值。这里不用考虑闰年的问题。

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(),打印最后一条消息。

5.编写一个程序,生成以下输出:

Brazil, Russia, India, China
India, China,
Brazil, Russia

除了main()以外,该程序还要调用两个自定义函数:一个名为br(),调用一次打印一次“Brazil, Russia”;另一个名为ic(),调用一次打印一次“India, China”。其他内容在main()函数中完成。

6.编写一个程序,创建一个整型变量toes,并将toes设置为10。程序中还要计算toes的两倍和toes的平方。该程序应打印3个值,并分别描述以示区分。

7.许多研究表明,微笑益处多多。编写一个程序,生成以下格式的输出:

Smile!Smile!Smile!
Smile!Smile!
Smile!

该程序要定义一个函数,该函数被调用一次打印一次“Smile!”,根据程序的需要使用该函数。

8.在C语言中,函数可以调用另一个函数。编写一个程序,调用一个名为one_three()的函数。该函数在一行打印单词“one”,再调用第2个函数two(),然后在另一行打印单词“three”。two()函数在一行显示单词“two”。main()函数在调用one_three()函数前要打印短语“starting now:”,并在调用完毕后显示短语“done!”。因此,该程序的输出应如下所示:

starting now:
one
two
three
done!

[1] 原书图中叙述有误。根据C11标准,C语言有6种语句,已在图中更正。——译者注

[2] C语言是通过赋值运算符而不是赋值语句完成赋值操作。根据C标准,C语言并没有所谓的“赋值语句”,本书及一些其他书籍中提到的“赋值语句”实际上是表达式语句(C语言的6种基本语句之一)。本书把“赋值语句”均译为“赋值表达式语句”,以提醒初学者注意。——译者注

[3] 在C语言中,return语句是一种跳转语句。——译者注

[4] 市面上许多书籍(包括本书)都把这种语句叫作“函数调用语句”,但是历年的C标准中从来没有函数调用语句!值得一提的是,函数调用本身是一个表达式,圆括号是运算符,圆括号左边的函数名是运算对象。在C11标准中,这样的表达式是一种后缀表达式。在表达式末尾加上分号,就成了表达式语句。请初学者注意,这样的“函数调用语句”实质是表达式语句。本书的错误之处已在翻译过程中更正。——译者注

[5] 英寻,也称为㖊。航海用的深度单位,1英寻=6英尺=1.8米,通常用在海图上测量水深。——译者注

[6] 要理解该句子存在语法错误,需要具备基本的英文语法知识。——译者注

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

时间: 2024-09-19 23:54:06

《C Primer Plus(第6版)中文版》一2.12 编程练习的相关文章

(六十二)第四章总结——《C++ Primer Plus 第6版 中文版》

书是<C++ Primer Plus  第6版  中文版> 数组.指针.结构 是C++的3种复合类型.   注:为了方便,类型名用int为主,变量名用a为主.   数组: 包括数组(例如int a[10];)和字符串(例如char a[10];),还有string类(例如string a="abc";),vector类(例如vector<int>a(5)).array类(array<int,3>a)等. 数组名表示数组所在的(第一个元素)内存地址.

求大神解答一下-C++ primer plus 第6版 中文版 第16章复习题的一个问题

问题描述 C++ primer plus 第6版 中文版 第16章复习题的一个问题 奇葩的是课后居然没答案...... 求正规.严谨.简洁的标准答案! 程序清单16.15(在p708页):functor.cpp //functor.cpp--using a functor #include尖括号iostream尖括号 #include尖括号list尖括号 #include尖括号iterator尖括号 #include尖括号algorithm尖括号 template//functor class

【转】c++.primer.plus.第五版.中文版[下载]

c++.primer.plus.第五版.中文版[下载] 一共有5部分.全部下载完才可解压阅读. c++.primer.plus.第五版.中文版(一) c++.primer.plus.第五版.中文版(二) c++.primer.plus.第五版.中文版(三) c++.primer.plus.第五版.中文版(四) c++.primer.plus.第五版.中文版(五) "在遇到无法解决的问题时,我总会求助于C++ Primer一书."--Bruce Eckel,"编程思想"

c语言-关于C Primer Plus第5版的二叉树的问题

问题描述 关于C Primer Plus第5版的二叉树的问题 //从树中删除一个项目 bool DeleteItem(const Item *pi,Tree *ptree) { Pair look; look = SeekItem( pi, ptree); //如果要删除的项目本身不存在 if(look.child == NULL) { return false; } //删除根项目 if(look.child == ptree->root) { DeleteNode(&ptree->

谁有&amp;amp;lt;&amp;amp;lt;CLR Via C#&amp;amp;gt;&amp;amp;gt;第三版中文版的电子书

问题描述 谁有<<CLRViaC#>>第三版中文版的电子书,我是个初学者,看网上推荐此书的人多,想看一下,我的QQ:330784617.谢谢!! 解决方案 解决方案二:试一试我一般看英文的,虽然很少看书:(解决方案三: 解决方案四:第二版有的,想看第三版.

《Python Cookbook(第3版)中文版》——6.12 读取嵌套型和大小可变的二进制结构

6.12 读取嵌套型和大小可变的二进制结构 6.12.1 问题 我们需要读取复杂的二进制编码数据,这些数据中包含有一系列嵌套的或者大小可变的记录.这种数据包括图片.视频.shapefile(zh.wikipedia.org/zh-cn/Shapefile)等. 6.12.2 解决方案 struct模块可用来编码和解码几乎任何类型的二进制数据结构.为了说明本节中提到的这种数据,假设我们有一个用Python数据结构表示的点的集合,这些点可用来组成一系列的三角形: polys = [ [ (1.0,

C Primer Plus 第6版 编程练习 2.12 答案

1# 2# #include<stdio.h> int main(void) { printf("胡八一\n"); printf("胡\n八一\n"); printf("姓名:胡八一\n"); printf("地址:山东省青岛市\n"); system("pause"); return 0; } 3# #include<stdio.h> int main(void) { int a

《Python Cookbook(第2版)中文版》——1.12 控制大小写

1.12 控制大小写 任务 将一个字符串由大写转成小写,或者反其道而行之. 解决方案 这正是字符串对象提供upper和lower方法的原因.每个方法都不需要参数,直接返回一个字符串的拷贝,其中的每个字母都被改变成大写形式-或小写形式: big = little.upper( ) little = big.lower( ) 非字母的字符按照原样被复制. s.capitalize和s[:1].upper()+s[1:].lower()相似:第一个字符被改成大写,其余字符被转成小写.s.title也很

《Python Cookbook(第3版)中文版》——1.12 找出序列中出现次数最多的元素

1.12 找出序列中出现次数最多的元素 1.12.1 问题 我们有一个元素序列,想知道在序列中出现次数最多的元素是什么. 1.12.2 解决方案 collections模块中的Counter类正是为此类问题所设计的.它甚至有一个非常方便的most_common()方法可以直接告诉我们答案. 为了说明用法,假设有一个列表,列表中是一系列的单词,我们想找出哪些单词出现的最为频繁.下面是我们的做法: words = [ 'look', 'into', 'my', 'eyes', 'look', 'in

《iOS 6核心开发手册(第4版)》——2.12节构建触摸式转盘

2.12 构建触摸式转盘 iOS 6核心开发手册(第4版) 下一个秘诀是创建一个触摸式转盘,就像老款的iPod上使用的触摸式转盘一样.触摸式转盘提供了无限的可滚动输入.用户可以顺时针或者逆时针旋转他们的手指,并且对象的值将相应地增加或减小.每转一圈,转盘(即转动360°)对应于值改变1.0.顺时针的改变为正,逆时针的改变则为负.每次触摸的值会累加起来,也可以对它进行复位(只需把控件的value属性重新设置为0.0即可).这个属性不是UIControl实例的一个标准部分,即使许多控件都会使用该值.