系列文章目录

C primer plus

第二章


文章目录

目录

系列文章目录

文章目录

前言

一、示例

二、第二章习题解答

编程练习



前言

上一节我们初步认识了C语言,接下来我们正式的学习C语言。


一、示例

#include <stdio.h>
int  main(void)
{int num;num=1;printf("I am a simple  "};printf("computer. \n");printf("My favorite number is %d because it is the first. \n",num);return 0;
}

1.1讨论代码含义

#include <stdio.h>

该代码告诉编译器需要把stdio.h库文件中的内容包含在我们所写的代码文件中。

stdio.h是C编译器软件包的标准部分,它提供键盘输入与输出的支持。

int main(void)

主函数体,void表示该函数体的参数为空

{

表示主函数体的函数部分开始

int num;

函数声明,声明一个数据类型为整数类型的变量num。

num=1;

赋值表达式

=为赋值运算符,将=右侧内容赋值给左侧

printf();

调用printf函数进行语句的输出打印

return 0;

return 语句,返回一个值可以是0,1(随便一个整形数据都行)

}

函数体结束

1.2程序细节

1.#include 这行代码是一条预处理指令

头文件<<# include “stdio.h”>>把stdio文件中的所有内容都输入到这一行所在的位置-拷贝粘贴-预处理指令,C编译器在编译C代码之前会对源代码进行预处理,为什么不把这些内置在系统中呢?学过单片机的就明白了,省资源啊,用到什么调用什么

这里我们注意就好,暂时可以不去过于关注细节

2.main()函数

每一个能正常运行的C程序一定都是从main()函数体内的函数语句开始执行的

而int 是main()函数的返回类型,这表明了main()函数是一个返回值为整型数据的函数,返回的值给到操作系统。

()的作用是用于识别main是一个函数,而不是变量或者其它

3.注释

常用的注释方法有

单行注释:

//————从//开始的一行内容将被注释掉

多行注释:

/* ....

......

.....

*/

其中的内容都会被注释掉,良好的编程习惯需要我们简洁高效的编写注释,有利我们程序的理解。

4.分号;

分号告诉编译器一行语句是否结束,一般情况下只要是一行语句结束了就需要带上分号,但是函数体后不能带上分号

二、第二章习题解答

编程练习

1.

#include <stdio.h>
int main()
{
printf("Yasuo Zed\n");
printf("Yasuo\n");
printf("Zed\n");
printf("Yasuo ");
printf("Zed \n");
return 0;
}

2.

#include <stdio.h>
int main()
{
printf("My name is :Yasuo Zed \n");
printf("My address is 艾欧尼亚\n");
return 0;
}

3.

#include <stdio.h>
int main()
{
int age, days;
printf("please input your age :");
scanf("%d",&age);
days=365*age;
printf("You have lived %d days,and your age is %d",days,age);
return 0;
}

4.

#include <stdio.h>
void jolly();
void deny();
int main()
{jolly();jolly();jolly();deny();}
void jolly()
{printf("For he's a jolly good fellow!\n");
}
void deny()
{printf("Which nobody can deny!\n");
}

也可以使用for循环来减少代码量

#include <stdio.h>
void jolly();
void deny();
int main()
{for (int i = 0; i < 3; i++)jolly();deny();}
void jolly()
{printf("For he's a jolly good fellow!\n");
}
void deny()
{printf("Which nobody can deny!\n");
}

5.


本题与第四题思路以及框架基本相同,读者可尝试自行实现

6.

#include <stdio.h>
int main()
{int tose=10;printf("%d\n",tose);printf("%d\n",tose*tose);printf("%d",2*tose);return 0;} 

7.

这里我使用了三种方法,最后一种是最容易想到得最直白得,第一种利用了两个for循环,第二种是含参函数调用;看起来应该内存占用率差不多,但是第一种可能比较难理解吧。

#include <stdio.h>
void display(int a);
int main()
{for (int i = 4; i > 1; i--){display(i);printf("\n");}return 0;
}
void display(int a)
{for (int i = a; i > 1; i--){printf("Smile!");}
}
#include <stdio.h>
void display(int a)
{for(int i=0;i<a;i++)printf("Smile!");
}
int main()
{display(3);printf("\n");display(2);printf("\n");display(1);printf("\n"); return 0;
}
#inlcude <stdio.h>
void display()
{
printf("Smile!);
}
int main()
{
display();display();display();
printf("\n");
display();display();
printf("\n");
display();
return 0;
}

8.

#include <stdio.h>
void one_three()
{printf("one!\n");
}
void two()
{printf("two!\n");
}
int main()
{printf("starting now:\n");one_three();two();printf("three!\n");printf("done!");return 0;
}

总结

本书第二章得内容就到这里,下周更新第三章内容得学习重点和讲解

C primer plus——C进阶探幽相关推荐

  1. 算法竞赛从入门到进阶pdf_ACMICPC/CCPC算法竞赛入门建议

    繁花落尽,我心中仍有花落的声音,一朵,一朵,在无人的山间轻轻飘落. 欢迎喜欢 CodeForces,Atcoder,牛客,leetcode,Codechef 小伙伴们一起来van呀~ 交流群:1104 ...

  2. 第一学期ACM之旅总结篇

    是我大一第一学期ACM之旅总结篇鸭,纪念逝去的青春: 自加入ACM集训队以来已有三个月之久,虽然一开始什么都不懂,但对ACM充满期待与向往.入队以后,通过和队员们一起学习以及各个学长的指导下,我慢慢地 ...

  3. C++ Primer Plus学习(八)——函数进阶

    函数进阶 内联函数 引用变量 默认参数 函数重载 函数模板 总结 C++还提供了许多新的函数特性,使之有别于C语言.新特性包括内联函数.按引用传递变量.默认的参数值.函数重载(多态)以及模板函数. 内 ...

  4. C++ Primer Plus学习笔记之函数探幽

    前言 个人觉得学习编程最有效的方法是阅读专业的书籍,通过阅读专业书籍可以构建更加系统化的知识体系. 一直以来都很想深入学习一下C++,将其作为自己的主力开发语言.现在为了完成自己这一直以来的心愿,准备 ...

  5. 《C++ Primer Plus》第8章 函数探幽 学习笔记

    C++ 扩展了 C 语言的函数功能.通过将 inline 关键字用于函数定义,并在首次调用该函数前提供其函数定义,可以使得 C++ 编译器将该函数视为内联函数.也就是说,编译器不是让程序跳到独立的代码 ...

  6. 《C++ Primer Plus 6th》读书笔记 - 第8章 函数探幽

    1. 摘录 默认参数指的是当函数调用中省略了实参时自动使用的一个值. 默认参数并非编程方面的重大突破,而只是提供了一种便捷的方式.使用默认参数,可以减少要定义的析构函数.方法以及方法重载的数量. 试图 ...

  7. 【c++ primer】第八章 函数探幽

    一,C++内联函数         定义:  inline double  square (double x){return x*x;}//含有关键字inline的内联函数         描述:内联 ...

  8. 《C++ Primer Plus(第六版)》(11)(第八章 函数探幽 复习题答案)

    8.7 复习题 1.经常被调用,逻辑简单,代码少,一般要求没有递归,没有循环. 2. void song(const char * name, int times); a.void song(cons ...

  9. C++ Primer Plus (第六版)编程练习记录(chapter8 函数探幽)

    1.编写通常接受一个参数(字符串的地址),并打印该字符串的函数.然而,如果提供了第二个参数(int类型),且该参数不为0,则该函数打印字符串的次数将为该函数被调用的次数(注意,字符串的打印次数不等于第 ...

最新文章

  1. SAP WM中阶Storage Type的Capacity Check – Usage check based on material
  2. mac上安装python详细教程_mac安装python环境
  3. jetson nano 摄像头购买
  4. cp命令复制目录 不覆盖
  5. Android Studio运行报错:无法访问XXX......请删除该文件或确保该文件位于正确的类路径子目录中
  6. POJ - 1190 生日蛋糕(dfs+剪枝)
  7. Loadrunner学习笔记(三)
  8. 产品定额的一些陷阱思考
  9. WCF我应该再深入一些
  10. android 打开免打扰模式,Android 6.0设置模块免打扰功能浅析
  11. 数字电子技术基础(十三):时序逻辑电路(状态机)(移位寄存器、计数器、信号发生器)
  12. 《潜伏在办公室》 作者:陆琪
  13. linux raid卡驱动添加到内核,如何在Linux上编译RAID卡驱动方法详解
  14. matlab信号处理基础(音频和图像)
  15. 中国Top20天使投资机构和中国Top20VC投资机构
  16. 《工程伦理与学术道德》第一章习题
  17. c语言中怎么用scanf给二维数组赋值,关于VC++6.0无法用scanf()输入浮点值赋给二维数组的问题...
  18. linux怎么杀掉僵尸进程,Linux中如何杀掉僵尸进程
  19. IntelliJ IDEA 如何增加运行时候的内存
  20. 下拉菜单中自动亮度调节P 上背光调节

热门文章

  1. android数字滚动动画,数字滚动效果 RollingText
  2. source insight如何设置背景
  3. 玩起 Centos 篇
  4. 【JDK7】新特性(7) 监听文件系统的更改
  5. 成功人士分析问题的11种思维方式
  6. Hadoop的NameNode在启动时都做了哪些事情?源码解析
  7. 20190917练习题总结——选择题
  8. 《算法笔记》第三章3.2节、3.3节、3.4节学习笔记
  9. Python-----(3)数
  10. “颜经济”下的科技“美”学战役