C程序设计(第四版)谭浩强著-学习笔记
文章为博主拜读谭老师《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
- 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程序设计(第四版)谭浩强著-学习笔记相关推荐
- [C程序设计(第四版)].谭浩强.扫描版pdf
内容简介 <中国高等院校计算机基础教育课程体系规划教材:C程序设计(第4版)>是一本公认的学习C语言程序设计的经典教材.根据C语言的发展和计算机教学的需要,作者在<C程序设计(第三版 ...
- C语言程序设计第四版(谭浩强)4.6 写程序,有一个函数,输入x的值,输出相应的y值
//有一个函数:y=x (x<1) // 2x-1 (1<=x<10) // 3x-11 (x>=10) //写程序,输入x的值,输出相应的y值 #include<std ...
- 《C语言程序设计(第四版)谭浩强》学习笔记
<C语言程序设计(第五版)谭浩强>学习笔记 C语言程序设计(第五版)谭浩强>学习笔记 1 C语言概述 1.7 简单的C程序介绍 1.9 C源程序的结构特点 1.12 C语言词汇 2 ...
- C语言程序设计第五版 谭浩强 第四章 课后习题 答案
谭浩强C语言程序设计第五版 第4章 课后习题 答案 点我看视频讲解+可运行源码 记得一键三连哦 第四章 选择结构程序设计 1. 什么是算术运算?什么是关系运算?什么是逻辑运算? [答案解析] 算熟运算 ...
- C语言程序设计第五版谭浩强课后答案 第九章习题答案
C语言程序设计第五版谭浩强第九章答案 1.定义一个结构体变量(包括年.月.日).计算该日在本年中是第几天,注意闰年问题. 2.写一个函数days,实现第1 题的计算.由主函数将年.月.日传递给days ...
- C语言程序设计第五版谭浩强 第七章答案
C语言程序设计第五版谭浩强著 第七章答案 第七章 用函数实现模块化程序设计 1.写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果.两个整数由键盘输人. 题目解析: ...
- C语言程序设计(第4版)谭浩强著—学习笔记chapter one 程序设计与C语言
第一章 程序设计与C语言 1.1机器语言和高级语言 1.2 C语言的出现和发展过程 1.3简单的C语言程序 stdio.h main函数 printf函数 scanf函数 格式字符串 \n换行符 re ...
- C语言程序设计第五版谭浩强课后答案 第六章《利用数组处理批量数据》习题答案 (大一大二、考研、计算机二级必看)
第六章<利用数组处理批量数据>习题答案 1. 用筛选法求100之内的素数 2. 用选择法对10个整数排序 3. 求一个3 X 3的整形矩阵对角线元素之和 4. 有一个已经排好序的数组,要求 ...
- C语言程序设计(第4版)谭浩强著—学习笔记chapter two 数据的存储与运算
第二章 数据的存储与运算 2.1数据在计算机中如何存储 关于整型数据的运算 关于实型数据的运算 关于字符型数据的运算 符号常量 2.2算术运算符和算数表达式 算数运算符 C算数运算式 提高部分(未完) ...
- 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 ...
最新文章
- JavaScript 编程精解 中文第三版 零、前言
- suprahex画进化树_安装使用pyclone进行克隆演化推断
- java图像增强_java图片对比度调整示例代码
- VTK:图片之ImageMedian3D
- 自动刷新获取wifi信号强度,android
- 数据结构(七)---循环队列的实现---java版
- Codeforces Round #635 (Div. 2) D. Xenia and Colorful Gems 暴力 + 二分
- Python小练习1:.txt文件常用读写操作
- OpenJudge NOI 3.3 3340:RPN Calculator
- 人脸识别的前世今生:从人工特征的百花齐放到深度学习的一统江湖
- @Html.ValidationSummary()作用
- java文件读写 教程_Java对文件的读写操作(图文详解)
- as400 c语言程序,AS400上的C編程
- 广州帕克西为化妆品、眼镜、发型提供一站式AR虚拟试戴解决方案
- 《程序员情商》沟通能力练习基本功——趣味绕口令
- 手机怎样和宽带连接无线路由器设置路由器连接服务器,手机如何设置路由器?...
- m4s格式转换mp3_mp4怎么转换成mp3格式?mp4转mp3的傻瓜式方法
- 计算机无法快速预览pdf,电脑中无法使用火狐浏览器预览PDF文档怎么解决
- qq互联登录授权php配置,php如何整合qq互联登录
- android FM的流程