《C Primer Plus (第6版)中文版》读书笔记------第二章

C Primer Plus

本章介绍以下内容:

运算符:=
函数:main()、printf()
编写一个简单的C程序
创建整型变量,为其赋值并在屏幕上显示其值
换行字符
如何在程序中写注释,创建包含多个函数的程序,发现程序的错误
什么是关键字

简单的C程序示例

#include <stdio.h>
int main (void)                /* 一个简单的C程序  */
{
int num;                            /*   定义一个名为num的变量   */
num = 1;                          /*    为num赋一个值    */
printf ("I am a simple");    /*   使用printf ()函数    */
printf ("computer.\n");
printf ("My favorite number is %d because it is first.\n",num);

return 0;
}
程序运行结果
程序调整

当程序输出在屏幕上一闪而过的时候,在程序return语句前面加一行代码:

getchar();   //这行代码会让程序等待击键,窗口会在用户按下一个键后才关闭

实例解释

C程序解剖
详细讨论代码的含义
#include <stdio.h>   //包含另一个文件

相当于把staio.h文件中所有的内容输入该行所在位置,相当于拷贝-粘贴。#include这行代码相当于一条C预处理指令,即在编译前会对源代码做一些准备工作。stdio.h的含义是标准输入/输出头文件。在C程序顶端的信息集合被称为头文件。

int main (void)              //函数名

int表示main()函数返回一个整数,void表明main()函数不带任何参数。虽然main是一个普通的名称,但C程序一定是从main()函数开始执行。记住函数是C程序的基本模块。

  /* 一个简单的C程序  */        //注释
  /* 一个简单
               的C程序  */

             //注释   这种注释只能写成一行

被//括起来的部分是程序的注释,只是为了帮助读者理解程序,编译器会忽略它们,可以分成多行。还有另外一种注释的方式(//),这种注释只能写成一行。

{                                      //函数体开始

左括号表示函数定义的开始,右括号表示函数定义的结束。

int num;                          //声明

声明完成了两件事,一在函数中有一个名为num的变量,二int表示num是一个整数类型。int是一种基本的C语言数据类型。在函数中,所有的变量必须先声明再使用。
命名变量的规则:可以使用大小写字母、数组和下划线,但是名称的第一个字符必须是字符或下划线,不能是数字,C语言名称区分大小写。
声明变量的好处:把变量放在一起,方便读者查找和理解程序;促使你在写程序之前做一些计划;有助于发现隐藏在程序中的错误,如拼写错误;如果没有声明变量,C程序无法通过编译。

num = 1;                   //赋值表达式

把值1赋给num变量,这里的=不是相等,而是赋值。在计算机中预留了一个空间,给它起一个名字叫做num,然后把1放进去。从右侧把值赋到左侧。可以赋不同的值,num也被称作变量。

printf ("I am a simple");      //调用一个输出函数

调用printf()函数,输出I am a simple。

printf ("computer.\n");          //调用另一个函数

\n为什么没有输出,因为\n组合表示一个换行符,表示在下一行最左边开始新的一行,与键盘的换行(enter)相同。

printf ("My favorite number is %d because it is first.\n",num);

%d被数字1代替了,%d相当于一个占位符,其作用是指明输出num值的位置。(不明白的可以看上面的程序运行结果图)

return 0;               //return语句

有返回值的函数要有return语句,return后面是待返回的值。(不要漏掉它!!!)

}                         //结束

复习题

  1. 如何称呼C程序的基本模块?
  2. 什么是语法错误?给出它的一个英语例子和C语言例子。
  3. 什么是语义错误?给出它的一个英语例子和C语言例子。
  4. Indiana Sloth巳经编好了下面的程序,并想征求您的意见。请帮助他评定。
include studio.h
int main{void) /*该程序可显示出一年中有多少周/*
(
int s
s:  = 56;
print (There are s weeks in a year.):
return 0:
  1. 假设下面的每一个例子都是某个完整程序的一部分,它们每个将输出什么结果?
    a. printf ("Baa Baa Black Sheep.");
    printf ("Have you any wool?\n");
    b. printf ("Begone!\n0 creature of lard!");
    c. printf ("What?\nNo/nBonzo?\n");
    d. int num;
    num = 2;
    printf (+ %d = %d"» num, num. num + num);

  2. 下面哪几个是C的关键字? main, int* function* chm** =

  3. 如何以下面的格式输出 words 和 lines 的值:wThere were 3020 words and 350 lines?这里,3020 和350代表两个变量的值。

  4. 考虑下面的程序:

#include <stdio.h>
int main (void)
{
int a, b;
a = 5;
b = 2;  /* 第7行  */ 
b = a;  /* 第  8 行  */ 
a = b;  /* 第  9 行*/ 
printf ("%d %d\n', b, a); 
return 0;
}

请问在第7行、第8行和第9行之后程序的状态分别是什么?
9.考虑下面的程序:

#include <stdio.h>
int main(void)
{
int x, y;
x = 10;
y = 5;          /*   第7行  */
y = x + y;      /*   第8行  */
x = x * y;   /*   第9行  */
printf("%d %d \n",x,y);
return 0;
}

请问在第7行、第8行和第9行之后程序的状态分别是什么?

编程练习

1.编写一个程序,调用printf ()函数在一行上输出您的名和姓,再调用一次printf ()函数在两个单 独的行上输出您的名和姓,然后调用一对printf ()函数在一行上输出您的名和姓。输出应如下所示(当然 里面要换成您的姓名):
Anton Bruckner 第一个输出语句
Anton 第二个输出语句
Bruckner 仍然是第二个输出语句
Anton Bruckner 第三个和第四个输出语句

  1. 编写一个程序输出您的姓名及地址。

  2. 编写一个程序,把您的年龄转换成天数并显示二者的值。不用考虑平年(fractional year)和闰年(leap year)的问题。

  3. 编写一个能够产生下面输出的程序:
    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 ()函数之外,要使用两个用户定义的函数:一个用于把上面的夸奖消息输出一次; 另一个用于把最后一行输出一次。

  4. 编写一个程序,创建一个名为toes的整数变量。让程序把toes设置为10。再让程序计算两个toes 的和以及toes的平方。程序应该输出所有的3个值,并分别标识它们。

  5. 编写一个能够产生下列输出的程序:

Smile!Smile!Smile!

SmilelSmile!

Smile!

在程序中定义一个能显示字符串smile!一次的函数,并在需要时使用该函数。

  1. 编写一个程序,程序中要调用名为one_three ()的函数。该函数要在一行中显示单词"one",再调用 two ()函数,然后再在另一行中显示单词"three",函数two ()应该能在一行中显示单词"two”。main ()函 数应该在调用one_three ()函数之前显示短语"starting now: ",函数调用之后要显示”done!"。这样,最后的 输出结果应如下所示:

starting now:
one
two
three
done!

(个人见解,欢迎大家观看,有不足之处,敬请指导!!! 有兴趣的朋友也可以买这本书来观看,互相交流,侵删!!!方便的朋友点赞支持一下,谢谢~)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,384评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,845评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,148评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,640评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,731评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,712评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,703评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,473评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,915评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,227评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,384评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,063评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,706评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,302评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,531评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,321评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,248评论 2 352

推荐阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,340评论 0 2
  • 题目来源:1、中兴、华为、慧通、英华达、微软亚洲技术中心等中外企业面试题目;2、C 语言面试宝典(林锐《高质量编程...
    月震阅读 1,809评论 0 1
  • C语言的学习要从基础开始,这里是100个经典的算法-1C语言的学习要从基础开始,这里是100个经典的 算法 题目:...
    Poison_19ce阅读 1,134评论 0 0
  • 1、c语言的函数有以下特点: (1)才源程序由函数组成,一个主函数main()+若干其他函数 C程序中的函数类似文...
    滕王阁序阅读 1,339评论 0 6
  • 今天小编给大家带来c语言学习之路--由浅入深(快速掌握c基础)。温馨提示:亮点在最后! 1.第一个C程序:Hell...
    云上伞阅读 599评论 0 1