【专升本】C语言程序设计(谭浩强第五版)快速复习笔记

C语言程序设计-谭浩强第五版

P0、基础知识

必备单词

  • include :标准输入输出流
  • define:宏定义,预处理
  • return 、continue
  • typedef: 给数据类型区别名
  • struct:结构体
  • union :共用体
  • sizeof:求变量或类型的字节数
  • sqrt(x):开x的平方
  • pow(x,n)。它返回值就是x的n次方
  • abs(x):求绝对值

符号优先级

img

img

格式化字符

 
%d            //整型输出
 
%ld           //长整型输出
 
%o            //以八进制数形式输出整数
 
%x            //以十六进制数形式输出整数,或输出字符串的地址
 
%u             //以十进制数输出unsigned型数据(无符号数)
 
注意:%d与%u的区别是,有无符号(正负号)和数值范围(%u范围大)不同,也就是极限的值不同,不然数值打印出来会出错。
 
%c            //用来输出一个字符
 
%s            //用来输出一个字符串
 
%f            //用来输出实数,以小数形式输出,默认情况下保留小数点6位
 
%.5f        //用来输出实数,保留小数点5位
 
%e            //以指数形式输出实数eg:a=3e+10<=>3*10^10;
注意:e的前面和后面的值必须是整数
 
%g            //根据大小自动选f格式或e格式,且不输出无意义的零
 
 

题型分析

在这里插入图片描述

进制脚标

在这里插入图片描述

进制转换

  • 非十转十(步骤:1.确定权 2.标指数)

在这里插入图片描述

在这里插入图片描述

  • 十转非十(短除法,从下取余)

在这里插入图片描述

ASCII码

在这里插入图片描述

大小写字母的ASCII码相差:32位(也就是空格)

ASCII码对照表

在这里插入图片描述

转义字符

在这里插入图片描述

  • \ :单个斜杠表示上下两行是连续的,类似英语中的 -

P1.程序设计基本概念

1.1、程序

在这里插入图片描述

P4 、变量

变量的取名

  1. 英文字母、数字、下划线

  2. 不能够是数字开头

  3. 不能够使用关键字(共44个)

在这里插入图片描述

数据类型

在这里插入图片描述

P5、常量和宏定义

常量

在这里插入图片描述

定义符号常量

在这里插入图片描述

命名规范和变量类似。

P6、数据类型

在这里插入图片描述

在这里插入图片描述

sizeof运算符,用于获取数据类型或表达式的长度

在这里插入图片描述

signed 和 unsigned

声明变量是否带符号位

声明一个不带符号位int变量num

unsigned int num

P7、取值范围

放心吧,为了让你听懂这节课,我已经在我女性同学身上做了实验。在昨天买菜的路上,就试探的问了一下,嘿man,哦不,嘿baby,你知道这个二进制是怎么回事吗?她说不知道。我说那你想知道吗?她说不想知道,哎呀!一下我就火了,哎呀pia pia两下,我就给了她两个大耳光。然后我就给她普及了什么是二进制,什么是cpu的基本原理,又讲了C语言的基本数据类型,还有今天我们讲的这个取值范围。完了回家之后,我就整了几道题给她做做,做不完你别吃饭,唉!她就居然都做对了。所以我在想,你应该是可以听得懂的。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

P8、字符和字符串

在这里插入图片描述

在这里插入图片描述

p9、算术运算符

在这里插入图片描述

在这里插入图片描述

自加自减运算符(重点)

在这里插入图片描述

前值用法

在这里插入图片描述

后值用法

在这里插入图片描述

int i=2;
i++ = a; //那么a的值等于2,i的值为3    

逗号运算符

从左往右计算,结果取最后的值

int a,b;
求 a=2,b=5,b++,a+b 的值
//原式 = 2,5,5,8
所以结果为:8

在这里插入图片描述

类型转换

  • 使用整型去存放浮点型 则会错误
printf("%d\n",1 + 2.0); //会报错
  • 解决自动转换错误:强制类型转换
printf("%d\n",1 + (int)2.0); //结果位3

P10、关系运算符、逻辑运算符

关系运算符

在这里插入图片描述

逻辑运算符

在这里插入图片描述

短路与运算

  • a && b :a为false则不执行b
  • a || b : a为true则不执行b

P11、顺序结构

赋值语句

在这里插入图片描述

数据输出

%f输出将会保留6位小数

float f = 24.56;
printf(%f,f) //输出结果为:24.560000

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

数据的输入

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

符合语句和空语句

在这里插入图片描述

P12、选择循环结构

if语句

  • if中的else遵循就近原则,选择最近未匹配的if进行配对

  • if语句只能控制后面的一条语句。

在这里插入图片描述

条件运算符(C程序中唯一的三目运算符

在这里插入图片描述

switch语句

在这里插入图片描述

在这里插入图片描述

如果没有break,则会出现case穿透,且break只跳出一层switch

while语句

在这里插入图片描述

do-while语句

在这里插入图片描述

for语句

在这里插入图片描述

break与continue

在这里插入图片描述

在这里插入图片描述

P13、函数

  • C程序基本结构是函数最小功能单位是语句
  • 函数在调用前应该先定义不是必须先定义

在这里插入图片描述

函数的定义

  • 形参:定义函数时的参数,用于接收值,参数只能是变量
  • 实参:函数使用时候的参数,用于传递值

返回值

  • void: 声明无返回值类型函数,实际上是有返回,但无值
  • return:用于返回数据,但只能返回一个值

函数的调用

  • 参数调用和递归调用,是重点!
  • 主函数不能调用自身
  • 主函数具有有参函数无参函数两种形式

在这里插入图片描述

在这里插入图片描述

  • 若函数首部省略返回类型,则默认为int

函数的说明

在这里插入图片描述

删去函数体加分号即可;

14、数组

一维数组

在这里插入图片描述

长度声明必须是整型常量

一维数组的初始化

在这里插入图片描述

二维数组

在这里插入图片描述

二维数组的初始化

在这里插入图片描述

在这里插入图片描述

可以少赋值,但不能多赋值,错误示范如下

int a[2][3] = {1,2,3,4,5,6,7};  //三个一组,多出了一个7

15、指针

指针于变量

在这里插入图片描述

指针的赋值

在这里插入图片描述

空指针的定义

在这里插入图片描述

//定义一个空指针
int *p = 0     //方式1
int *p = null  //方式2

&和*的用法

  • “ & ” :用于取变量的地址
  • “ * ”:用于取指针内容
  • “ ** ”:二级指针,也称指针的指针,即指针的指针地址(多级指针也一样)

函数之间的地址传递

在这里插入图片描述

16、指针与一维数组

在这里插入图片描述

a 等价于a[0]的地址:a <==> &a[0]

在这里插入图片描述

  • 注意避坑!

    //下面两个式子并不一样,有括号先算括号
    *(p+1)=
    *q+1=
    

在这里插入图片描述

在这里插入图片描述

地址可以相减,但不能相加

函数之间对一维数组的引用

在这里插入图片描述

在这里插入图片描述

17、指针与二维数组

在这里插入图片描述

一维数组和二维数组对吧

在这里插入图片描述

18、数组指针、指针数组(必考)

在这里插入图片描述

如何判断

  • 括号把指针说明符与变量先结合,则为数组指针
  • 变量和[ ]先结合,则为指针数组

总结:变量先和谁结合,就是谁

指针函数、函数指针

在这里插入图片描述

判断和数组一样!

19、字符串

字符串不能使用关系运算符进行比较,比如 ==,>

字符数组

在这里插入图片描述

  • 和整型数组一样,可以少赋值,不能多赋值,未赋值的默认为“/0”

字符数组和字符串

在这里插入图片描述

  • 字符数组存放字符串的条件:字符数组长度 >= 字符串长度+1

字符串指针

在这里插入图片描述

输入输出函数

在这里插入图片描述

字符串输入输出函数

在这里插入图片描述

小结

在这里插入图片描述

20、字符串函数(必考)

在这里插入图片描述

  • \t:制表符
  • \x:后接十六进制
  • \0: 后接八进制
  • \n: 回车

sizeof()函数:计算长度,函数参数可以是变量,也可以是常量

strcpy(a,b):字符串复制,讲字符串b复制到字符串a

**strcat(a,b)😗*字符串连接,字符串a接上字符串b

**strcmp(a,b)😗*字符串比较,a大于b返回1,相等返回0,小于返回-1

21、变量的作用域和存储类

变量的作用域

在这里插入图片描述

在这里插入图片描述

变量的分类

  • 按照作用域分类:局部变量全局变量
  • 按照生存分类:静态变量动态变量

变量的存储类

在这里插入图片描述

关键字:auto,static

总结

在这里插入图片描述

  • 静态变量的生存期为:整个程序

22、编译预处理

在这里插入图片描述

注意!替换的是文本,不是计算值

例题1

#define k 2+3  //那么k的内容为2+3,并不是5
k/k = 2+3/2+3 = 2+(3/2)+3 = 6  //注意运算优先级

例题2

#define f(x) x*x  //见到f(x)就替换为 x*x
int a=6,b=2;
f(a) + f(b) = 40 //理解为a*a + b*b
f(a+b) = a+b * a+b = a+(b*a)+b = 20
    

例题3

在这里插入图片描述

23、标识符

在这里插入图片描述

  • 预处理可以做用户标识符,但关键字不行
  • 预定义可以使用大小写

24、预处理

主要的三种预处理功能:宏定义、文件包含、条件编译

文件包含

在这里插入图片描述

条件编译

在这里插入图片描述

自定义类型

在这里插入图片描述

typedef:给数据类型取别名

结构体

在这里插入图片描述

注意:结构体声明**{}后必须带分号**

结构体变量的定义

定义的几种形式

在这里插入图片描述

在这里插入图片描述

结构体初始化

初始化的几种形式

在这里插入图片描述

结构体成员的引用

在这里插入图片描述

  • 3
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值