专升本C语言习题知识点笔记

⚠️ 此博客为本人21届专升本C语言学习时针对错题的知识点笔记,具有很强的个人色彩,不具备完整性、通用性、有效性,望周知。祝为了升本梦努力拼搏的学弟学妹成功上岸!🧑‍🎓

exit和return
  • exit(1)表示异常退出
  • exit(0)表示正常退出
  • exit是在调用处强行退出程序,运行一次程序就结束
  • return是语言级别的,它表示了调用堆栈的返回;而exit是系统调用级别的,它表示了一个进程的结束。
  • return是返回函数调用,如果返回的是main函数,则为退出程序
转义字符

转义字符以\或者\x开头,以\开头表示后跟八进制形式的编码值,以\x开头表示后跟十六进制形式的编码值。对于转义字符来说,只能使用八进制或者十六进制。

转义字符的初衷是用于 ASCII 编码,所以它的取值范围有限:

  • 八进制形式的转义字符最多后跟三个数字,也即\ddd,最大取值是\177
  • 十六进制形式的转义字符最多后跟两个数字,也即\xdd,最大取值是\x7f

单引号、双引号、反斜杠是特殊的字符,不能直接表示:

  • 单引号是字符类型的开头和结尾,要使用\'表示,也即'\''
  • 双引号是字符串的开头和结尾,要使用\"表示,也即"abc\"123"
  • 反斜杠是转义字符的开头,要使用\\表示,也即'\\',或者"abc\\123"
#include <stdio.h>
int main(){
    puts("C\tC++\tJava\n\"C\" first appeared!");
    return 0;
}
C    C++    Java
"C" first appeared!

转义字符以十六进制描述时前面不能加0。

变量命名

C语言大小写敏感

教材中只是强调首字符必须为字母, 我们应当知道, 在语言系统中, 下划线和字母具有同等的“效力”

  • 诸如-0xfff十六进制数本身已经包含了符号位, —般不 前面加符号位, 但加上符号位也不错误
  • 0668 在有些C系统中, 八进制数中允许出现8, 但是通常不允许使用8
  • 0x显然后面缺少数值, 但在TC中是允许的
  • OXcdf中 X大写也可
指数形式

由十进制数,加阶码标志“e”或“E”以及阶码(只能为整数,可以带符号)组成。

其一般形式为:

​ a E n(a为十进制数,n为十进制整数)  其值为 a10n。

如:  2.1E5 (等于2.1105)  3.7E-2 (等于3.710-2)  0.5E7 (等于0.5107)  -2.8E-2 (等于-2.810-2)

以下不是合法的实数:  345 (无小数点)  E7 (阶码标志E之前无数字)  -5 (无阶码标志)  53.-E3 (负号位置不对)  2.7E (无阶码)

计算规则
  • C语言浮点型数据不能直接取余(%),可以通过取出整数位/强制转换成int型/库函数等方式进行取余
  • C语言没有根号符号
  • 表达式中的各字符以各自的ASCII码值参与运算
int main()
{
	char x = 'A';
	char a = 'z';

	char c = x - a;
	printf("%d\n", c);//-57
	return 0;
}
  • 算术表达式的类型由表达式计算结果的类型决定
sizeof(float) //一个整型表达式

在表达式中,当不同类型的数据混合在一起进行运算时,系统会按照自动转换规则,将操作数由低类型向高类型转换。例如:

int a;
float f;
double b;
表达式10+a+b+f的数据类型为 double
  • 实型只要参与运算就自动转换为double型
C 数学库函数
double sqrt(double x) //该函数返回 x 的平方根。

int abs(int x) //该函数返回 x 的绝对值。
  
double fabs(double x) //该函数返回 x 的绝对值。
  
double pow(double x, double y) //该函数返回 x 的 y 次幂的结果。

c语言中整型和实型的绝对值函数各自独立,为abs 和fabs;pow为一系统函数pow(y,x)=>y^2

字符(串)操作
字符输入/出函数

getchar()一次读入一个字符

putchar()一次输出一个字符

字符串输入函数
  • gets()函数无法处理缓冲溢出,不会保留读入的换行符

  • fgets()函数通过参数限制读入的字符数,fgets()会保留读入的换行符

    scanf()函数只读取单词,无法读取空白

字符串输出函数
  • puts()函数会自动添加换行符
  • fputs()可以输出到文件,不添加换行符
  • printf()函数输出多种数据
常用字符串函数
  • strlen()获取字符串长度
  • strcat()和strncat() 拼接字符串
  • strcmp()与strncmp() 比较字符串
  • strcp()与strncp() 复制字符串
  • sprintf()合并多个元素
文件输入输出
文件输出函数
  • fprintf()函数
  • fputs()函数
文件输入函数
  • fscanf()函数
  • fgets()函数
文件随机模式
  • fseek()和ftell()函数
  • fgetpos()和fsetpos()函数
二进制读写函数
  • fread()函数
  • fwrite()函数
其他常用函数
  • ungetc()
  • fflush()
  • setbuf()
其他:

计算机系统不能存储字符本身, 存储的是字符的 ASCII码。

在16位系统下:

  • ​ char 1字节
  • ​ int 2字节
  • ​ long 4字节
  • ​ float 4字节
  • ​ double 8字节

在这里插入图片描述

printf()格式中的长度修饰符:

1、%L修饰符(注意大写的L):和浮点转换说明符一起使用,表示一个long double值。
  示例:“%Lf”和“%10.4Le”

注:%l的修饰符(小写的l):和整数说明符一起使用,表示一个long int 或者unsigned long int 类型值。
  示例:“%ld”和“%8lu”。

2、%h修饰符:和整数转换说明符一起使用,表示一个short int 或者 unsigned short int 类型数值。
  示例:“%hu”、“%hx”和“%6.4hd”

​ 3、#要求输出数据的类型特征符号,如%#x意思是带格式0x的16进制输出

int main()
{
	int y = 2456;
	printf("y=%#8o\n", y);//y=   04630 空3格
  //printf("y=%8o\n", y);//y=    4630 --空4格
	return 0;
}

4、占位符

例如%7.2f指的是格式化为float的浮点数格式。

  • 其中的7指的是最后输出总的占位符为7位,包含小数点,小数点也占一位,不足时前面补上空格符,缺几个补几个。
  • 其中的.2指的是保留最后的2位小数。
  • 比如%7.2f的2.5输出就是:(加号代表空格符)+++2.50。
  • 如果超出宽度则按实际输出

(scanf)输入实型数据时,不能限定输入数据的宽度与小数点位数。输入无法控制,只有输出可以。

在C系列语言中赋值语句就是赋值表达式加一个分号。

用计算机高级语言编写的程序一般称为源程序(代码)。

  • 23
    点赞
  • 235
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是C语言本所有详细知识点: 1. 基本语法:数据类型、变量、常量、运算符、表达式、流程控制语句、函数、指针、数组、结构体、共用体、文件操作等。 2. 数据类型:整型、浮点型、字符型、布尔型、枚举类型等。 3. 变量:变量定义、变量初始化、变量作用域、变量生命周期等。 4. 常量:常量定义、常量类型、常量表达式、常量指针等。 5. 运算符:算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、条件运算符等。 6. 表达式:算术表达式、逻辑表达式、条件表达式等。 7. 流程控制语句:顺序结构、分支结构、循环结构、跳转结构等。 8. 函数:函数定义、函数调用、函数参数、函数返回值、递归函数等。 9. 指针:指针定义、指针运算、指针数组、指针函数、指针与数组、指针与字符串等。 10. 数组:数组定义、数组初始化、二维数组、动态数组、数组与指针、数组与字符串等。 11. 结构体:结构体定义、结构体初始化、结构体成员、结构体指针、结构体与数组、结构体与文件操作等。 12. 共用体:共用体定义、共用体初始化、共用体成员、共用体与结构体等。 13. 文件操作:文件打开、文件读取、文件写入、文件关闭等。 14. 预处理指令:宏定义、条件编译、文件包含等。 15. 动态内存分配:malloc、calloc、realloc、free等。 16. 字符串操作:字符串定义、字符串赋值、字符串长度、字符串拼接、字符串比较等。 17. 标准库函数:数学函数、字符函数、字符串函数、时间函数、文件函数等。 18. 位运算:位运算符、位移运算符、位运算与逻辑运算的区别等。 19. 数据结构:链表、栈、队列、树、图等。 20. 算法:排序算法、查找算法、递归算法、动态规划算法等。 以上是C语言本所有详细知识点,希望对您有所帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值