文章为博主拜读谭老师《C程序设计(第四版)》后所做学习笔记,大约耗时10天左右,整理成文档以便自己日后复习回顾,现将其贴出,供各位参考批评指点,如有不当之处请指教(第一次在此发博客,很多地方不甚明白,请各位指点!因自己喜欢讲知识点总结成表格方便记忆比较,不太会用此编辑器,故截图贴出。)。
1.加油
2.程序组成
|

3.数据类型
3.1 数据类型

3.2 常量类型

3.3 转义字符

3.4 格式字符/修饰符
见6.3(1)。

4.运算
4.1优先级
(1)i++与++i不同;
(2)附录D;
4.2不同类型混合运算
float/double>int>char
(1)双目运算有一个为float/double,则结果为double,必有小数点;
(2)char数据与int整型运算,结果为整型;
(3)a=5; a/2:a为整型则结果为2;a为double则结果为2.5;

4.3强制转换类型
(类型名)(表达式)
eg: %要求两侧均为整型,float x; x%3; //不合法,改为int(x)%3

5.头文件
5.1stdio.h
standard input&output. header标准输入和输出.头文件
#include<stdio.h> //标准方式
#include”stadio.h” //先当前目录再标准方式
5.2math.h
5.3stdlib.h
5.4string.h

  1. C语句

6.1 表达式/语句

6.2赋值语句

6.3输入输出
(1)数据输出
6.3输入输出
(1)数据输出


(2)数据输入

(3)字符输出

putchar ( )
说明 ①put character②将ASCII码赋值给字符变量,范围0-127

eg: char a=’B’,b=79 //定义
putchar(a); //常规操作
putchar(b); //ASCII码79对应字符
putchar(‘\131’) //ASCII码131对应字符
putchar(‘\n’) //转义字符换行
输出:BOY
(4)字符输入

getchar ()
说明 ①get character②全部输完后按Enter结束③putchar(getchar());④printf(“c%”,getchar());

#include<stdio.h>
int main()
{
char a,b;
a=getchar(); //输入转换为字符常量
b=a-32; //小写字母转大写字母
putchar(b); //常规输出1
putchar(’\n’); //换行
printf("%c",b); //常规输出2
putchar(’\n’); //换行
return 0;
}
输入:a,输出:A、A

6.4 选择结构
(1)if/else
双分支

(2)?/:

(3)switch/case
多分支

①表达式与常量比较,若相同则一直执行下去,直到遇到break跳出此循环
②多case共用一组语句:
case ‘A’:
case (B): printf(“>60\n”); break;

6.5 循环结构
(1)while/do,while/for



(2)break/continue
改变循环状态

7.数组
7.1 一维数组

7.2 二维数组(矩阵)

7.3 字符数组
字符型数据以字符的ASCII码存储,属于整数形式,一般占用一个字节。

7.4 字符串处理函数
待输入字符数组/连接数组1/复制数组1,必须有元素个数防止过小。

8.函数

8.1 定义/声明

8.2调用

8.3 数组参数

8.4 局部变量/全局变量

为多个源文件共用外部变量,减少“外部变量声明”,可将所有“外部变量声明”集中在一个新建new.h文件中,然后调用#include<new.h>即可。

9.指针
9.1 指针变量
指针:&,地址,&x表示变量x的地址;
指针变量:存放变量x的地址(指针)的变量a,即地址变量,值为地址;
指向:*,*p表示指针变量p所指向的变量x,即x的值;

9.2 数组指针

9.3 二维数组指针


9.4 字符串指针
定义+指向首地址+引用(p1++,p1!=’\0’)


9.5 函数指针



9.6 指针型函数

9.7 指针型数组/指针

10.自定义数据类型
10.1 结构体
(1)结构体变量

(2)结构体数组

(3)结构体指针

10.2 链表
(1)含义
文中有的图片来自百度。
链表:头指针(结点1指针)+结点1(数据+结点2指针)+结点2(数据+结点3指针)…+表尾(空指针NULL)
头文件中存放一个地址,指向一个元素即结点,结点包含用户所需数据和下一结点地址(一般称为next)。。。最后一结点不指向其他元素。
(2)具体分析
利用结构体变量建立动态链表:
#include “stdio.h”
#include<stdlib.h>
#define Len sizeof(struct Student) //结构体长度即所占空间大小
int n;
struct Student //结构体–链表定义
{ long num; //定义结构体的数据包含学生学号、成绩
float score;
struct Student * next; }; //next是指针变量,指向下一结构体变量即结点

struct Student * creat(void) //定义函数,返回一指向链表头的指针
{ struct Student * head; //头指针
struct Student * p1,*p2; //结点1.2的地址指针
n=0;
p1=p2=(struct Student *) malloc(Len); //开辟新单元并将地址赋值p1/p2,(struct Student *) 是将malloc返回的指针转换成struct Student类型指针,也可省略不写,因为编译系统能实现隐式类型转换
scanf(“%ld,%f,&p1->num,&p1->score”); //输入第一个学生学号、成绩
head=NULL; //初始化表头
while(p1->num!=0) //如果有输入
{
n=n+1;
if(n==1) head=p1; //第一次输入则把首次开辟空间的地址给表头
else p2->next=p1; //不是第一次则把最新开辟空间地址给p2所指向的结点内指针,如结点1内的结点2指针
p2=p1; //然后将p2指针指向最新开辟空间,如结点1
p1=(struct Student *) malloc(Len); //再开辟新单元,如结点2
scanf(“%ld,%f,&p1->num,&p1->score”); //输入第2个学生学号、成绩
}
p2->next=NULL; //最后一个结点内指针应为空
return(head); //返回此链表首地址
}

int main()
{
struct Student *pt;
pt=creat(); //函数返回链表第一个节点的地址
if(pt!=NULL)
do
{printf(“%ld %f\n”,pt->num,pt->score); //输出结点数据
pt=pt->next;} //指向下一结点
while(p!=NULL);
}
10.3 共用体

10.4 typedef声明新类型
(1)格式
按定义变量的方式,把变量名换上新类型名,并且在最前面加上“typedef”,就声明了新类型名代表原来的类型!
①命名一个简单地类型名代替复杂的类型表达方法:
typedef struct{int num;char name[20];float score;} Data;
Data birthday; //定义结构体变量birthday
Data *p; //定义结构体指针变量p,指向此结构体类型数据
②数组:
typedef int Num[10]; //声明Num为整型数组类型名
Num a; //定义a为整形数组名,它有100个元素
③指针类型:
typedef char * String; //声明String为字符指针类型
String p,s[10]; /定义p为字符指针变量,s为字符指针数组
(2)define/typedef
#define Count int //只是简单地字符串替换
typedef int Count; //有;
(3)新头文件
当不同源文件中用到同一类型数据(尤其是想数组、指针、结构体、共用体等)时,常用typedef声明一些数据类型,可以把所有的typedef名称声明单独放在一个头文件.h中,然后再需要用到的文件中用#include指令把它们包含到文件中。
extern:为多个源文件共用外部变量,减少“外部变量声明”,可将所有“外部变量声明”集中在一个新建new.h文件中,然后调用#include<new.h>即可。

C程序设计(第四版)谭浩强著-学习笔记相关推荐

  1. [C程序设计(第四版)].谭浩强.扫描版pdf

    内容简介 <中国高等院校计算机基础教育课程体系规划教材:C程序设计(第4版)>是一本公认的学习C语言程序设计的经典教材.根据C语言的发展和计算机教学的需要,作者在<C程序设计(第三版 ...

  2. C语言程序设计第四版(谭浩强)4.6 写程序,有一个函数,输入x的值,输出相应的y值

    //有一个函数:y=x (x<1) // 2x-1 (1<=x<10) // 3x-11 (x>=10) //写程序,输入x的值,输出相应的y值 #include<std ...

  3. 《C语言程序设计(第四版)谭浩强》学习笔记

    <C语言程序设计(第五版)谭浩强>学习笔记 C语言程序设计(第五版)谭浩强>学习笔记 1 C语言概述 1.7 简单的C程序介绍 1.9 C源程序的结构特点 1.12 C语言词汇 2 ...

  4. C语言程序设计第五版 谭浩强 第四章 课后习题 答案

    谭浩强C语言程序设计第五版 第4章 课后习题 答案 点我看视频讲解+可运行源码 记得一键三连哦 第四章 选择结构程序设计 1. 什么是算术运算?什么是关系运算?什么是逻辑运算? [答案解析] 算熟运算 ...

  5. C语言程序设计第五版谭浩强课后答案 第九章习题答案

    C语言程序设计第五版谭浩强第九章答案 1.定义一个结构体变量(包括年.月.日).计算该日在本年中是第几天,注意闰年问题. 2.写一个函数days,实现第1 题的计算.由主函数将年.月.日传递给days ...

  6. C语言程序设计第五版谭浩强 第七章答案

    C语言程序设计第五版谭浩强著 第七章答案 第七章 用函数实现模块化程序设计 1.写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果.两个整数由键盘输人. 题目解析: ...

  7. C语言程序设计(第4版)谭浩强著—学习笔记chapter one 程序设计与C语言

    第一章 程序设计与C语言 1.1机器语言和高级语言 1.2 C语言的出现和发展过程 1.3简单的C语言程序 stdio.h main函数 printf函数 scanf函数 格式字符串 \n换行符 re ...

  8. C语言程序设计第五版谭浩强课后答案 第六章《利用数组处理批量数据》习题答案 (大一大二、考研、计算机二级必看)

    第六章<利用数组处理批量数据>习题答案 1. 用筛选法求100之内的素数 2. 用选择法对10个整数排序 3. 求一个3 X 3的整形矩阵对角线元素之和 4. 有一个已经排好序的数组,要求 ...

  9. C语言程序设计(第4版)谭浩强著—学习笔记chapter two 数据的存储与运算

    第二章 数据的存储与运算 2.1数据在计算机中如何存储 关于整型数据的运算 关于实型数据的运算 关于字符型数据的运算 符号常量 2.2算术运算符和算数表达式 算数运算符 C算数运算式 提高部分(未完) ...

  10. C语言程序设计第五版 谭浩强目录大纲

    第1章程序设计和C语言1 1.1什么是计算机程序1 1.2什么是计算机语言1 1.3C语言的发展及其特点3 1.4最简单的C语言程序5 1.4.1最简单的C语言程序举例5 1.4.2C语言程序的结构9 ...

最新文章

  1. JavaScript 编程精解 中文第三版 零、前言
  2. suprahex画进化树_安装使用pyclone进行克隆演化推断
  3. java图像增强_java图片对比度调整示例代码
  4. VTK:图片之ImageMedian3D
  5. 自动刷新获取wifi信号强度,android
  6. 数据结构(七)---循环队列的实现---java版
  7. Codeforces Round #635 (Div. 2) D. Xenia and Colorful Gems 暴力 + 二分
  8. Python小练习1:.txt文件常用读写操作
  9. OpenJudge NOI 3.3 3340:RPN Calculator
  10. 人脸识别的前世今生:从人工特征的百花齐放到深度学习的一统江湖
  11. @Html.ValidationSummary()作用
  12. java文件读写 教程_Java对文件的读写操作(图文详解)
  13. as400 c语言程序,AS400上的C編程
  14. 广州帕克西为化妆品、眼镜、发型提供一站式AR虚拟试戴解决方案
  15. 《程序员情商》沟通能力练习基本功——趣味绕口令
  16. 手机怎样和宽带连接无线路由器设置路由器连接服务器,手机如何设置路由器?...
  17. m4s格式转换mp3_mp4怎么转换成mp3格式?mp4转mp3的傻瓜式方法
  18. 计算机无法快速预览pdf,电脑中无法使用火狐浏览器预览PDF文档怎么解决
  19. qq互联登录授权php配置,php如何整合qq互联登录
  20. android FM的流程

热门文章

  1. [C++ Quiz] Intermediate level
  2. 器械传递的方法_天津304不锈钢传递窗报价_碧海云天
  3. DPDK DPVS 笔记 -> 基本框架整理
  4. 常见排序算法之快速排序
  5. 闲来无事写个qt实现机器人
  6. 输出ipv4,ipv6特定段的所有地址,ipv6地址转换成网络字节序
  7. could not find or load the Qt platform plugin windows的解决方法
  8. 资源编译器 rc .exe 的参数
  9. java编程常用软件
  10. ElementUI实现表单校验