C语言基础知识归纳

C语言基础知识

1. 每个C程序有且只有一个主函数main(),且程序必须从main()

函数开始执行,并在main()函数中结束。

2. 在C语言中,用e来表示科学计数法时,规定在e的前面必

须有数字,后面必须为整数。

3. 用单引号括起来的一个字符常量只能存放一个字符;C语言中

没有字符串变量,只能用字符数组来存储字符串。

4. 外部变量在编译时由系统分配永久的内存空间,所以外部变

量的类型不是自动存储类别。

5. 在一个函数内的复合语句中定义的变量,只能在这个复合语

句范围内有效。

6. 用sizeof(int)计算int类型数据的字节数。

7. C语言运行时,首先系统检查语法的正误,再运行程序的语法;

C语言中,可以在一个函数中嵌套一个函数,但是不能在一个函数中定义一个函数;只有在函数外部定义的函数才是外部函数;C语言的子程序有过程和函数两种。

8. 预处理命令行的位置没有规定,只是习惯放在前面;在源文

件中的可以有多条预处理命令,但一行只能写一条;宏名的大写只是习惯性的表示;宏替换不仅不占用运行时间还不分配内存空间。

9. feof函数的作用是检查文件是否结束,当结束时返回的

值为非零,否则为零。

10. 当定义了数组后,在给其赋值时,不能直接把字符串赋给数

组名。

11. 在赋值表达式中,赋值运算符“=”右侧不能为表达式;在

求余运算符中的两侧都必须为整型;在强制类型转换时,类型名应用括号括起来。

12. 静态局部变量,只有当程序结束后,其值才释放。

13. 当调用函数时,实参是一个数组名,则向函数传送的是数组

每一个元素的地址。

14. 算法的特点为有零个或多个输入,有一个或多个输出,当相

同的输入时,其结果相同;算法正确的程序最终一定会结束。

15. 在C语言中,预处理命令行都以“#”开头;当需要时才用

#include<stdio.h>;预处理的作用就是实现宏定义和条件编译。

16. 当数组元素的下标超出了定义的下标范围时,系统不给出“下

标越界”的字样,而是得出错误的答案,因此在编程时务必检查下标是否越界。

17. 共用体变量不能作为函数的参数,也不能使函数带回共用体

变量。

18. 指向函数的指针变量的定义形式为:数据类型 (*指针变量)

(); ,因此其为指向函数的指针变量。

19. 用C语言编写的代码程序是源程序,只有通过编译、连接才

能进行。

20. 在说明为static时,其生存期得到延长,而其作用域并没有改

变,在定义后系统会自动帮它赋值为0,static为关键字不能被用作它用。

21. 频繁地使用空语句会降低程序的可读性和运算速度。

22. 运算符%两边都应是整数,赋值语句左边应该是变量,而非

表达式,强制转换语句强制类型应加括号。

23. 在逻辑运算符中,其两侧的运算符对象为任意合法的表达式

即可。

24. 函数fread(&Iarray,2,16,fp)的功能是,从fp所指的数据

文件中读取16次2字节的数据存储到数组Iarray中。

25. 整个流式文件也可以随机存取数据,C语言文件中有好多函

数可以达到写入数据时,未经输入数据,达到不覆盖的目的,在进行写操作时,系统会自动关闭文件。

26. 使用putchar、getchat、puts、gets、printf、scanf函数时,必

须在程序的开头出现包含头文件#include”stdio.h”的命令行,而使用字符串处理函数时,必须在程序的开头出现包含头文件#include”string.h”命令行,而使用数学函数时,必须在程序的开头出现包含头文件#include”math.h”的命令行。

27. 一个斜杠与小于等于127任意数字按一个字符计算,一个斜

杠与任意一个字符按一个字符计算。

28. 一个C程序可以有一个或多个程序文件,也可以有一个或多

个函数,所以一个C语言程序可以实现多种算法。

29. 根据C语言规定,注释语句可以换行写,并且一个“/*”和

其后紧跟的第一个“*/”中间的部分是注释内容,且注释内容不参与程序的运行。例如:b=0; /*b=20;给b赋值*/ 则b=0; 。

30. sizeof是求字节数的运算符,包括‘\0’,而strlen是求字符串

的实际长度的函数,不包括‘\0’,以‘\0’作为结束。

31. 在函数声明时,其中的形参变量、个数、函数的类型必须一

致。

32. C语言源程序经编译后生成后缀为.obj的目标程序;C程序经

过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件;用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中。并不是源程序中的所有行都参加编译。在条件编译形式下,相关内容只在满足一定条件时才进行编译。

33. switch括号后的表达式可以使任何表达式;case后的表达式

必须是常量表达式,常量表达式中不能出现变量,且类型必须是整数、字符型或枚举型。

34. C程序必须由一个或一个以上的函数组成;函数调用可以作

为一个独立的语句存在;若函数有返回值,必须通过return语句返回。

35. 在C语言中,数据只能从实参单向传递给形参,称为“按值”

传递。【在实参传递到形参时,是数值传递,而不是地址传递,形参中值的改变不会影响实参中的值。】

36. 可以用typedef声明新的类型名来代替已有的类型名,而不能

增加新的类型。

37. 在没有限制输出宽度时,一般浮点数的小数位数是6位,不

管输出格式是%f或lf%均如此。

38. C语言中,函数的隐含存储类别是无存储类别。

39. 当实参传递到形参时,地址传递时形参的改变影响实参。

40. 串的长度指的是串中的字符的个数,且其字符个数可以为零。

41. C语言中数据类型有整型、实型、字符型等,实行数据分为

单精度型和双精度型两种。

42. 整型数组只能一个一个地输入或输出,而在字符型数组中可

以对字符串整体地输入与输出。

43. C语言中,文件型指针变量的定义形式为:FILE *文件型指针

名; 。C语言中对二进制文件的访问速度比文本文件快;C语言中,随机文件以二进制代码形式存储数据;C语言中的文本文件以ASCII码形式存储数据。

44. 因为#define是宏定义的标志,而不是C语句,而printf是输

出函数,因此其是C语句。

45. 在实参传递给形参时,地址传递时能够改变,而数值传递时

则不变。

46. 在scanf函数中,必须含有输入项,并且需含有与之一一对应

的转换说明符,在scanf函数的格式字符前可以加入一个正整数指定输入数据的宽度,但不可以实数指定小数位的宽度,输入项是地址表达式。

47. switch语句使用注意事项:(1)switch语句与if语句不同,

仅能判断一种关系:是否恒等;(2)switch语句中case子句的常量可以使整型常量、字符型常量、枚举型数据,或是整型常量表达式,不允许变量;(3)在同一个switch中,case子句的常量不能相同,在嵌套的switch语句中,不同层次的switch之间,可有相同的常量;(4)default子句可以省略。例如:default:printf(“E\n”);(5)case和default子句只能在switch语句中使用,且case和default只起标号作用,可出现在switch中的任何位置;(6)case和default子句后面的语句序列允许由多个可执行语句组成,且不必用“{}”括起来,也可以为空语句;(7)switch语句中可省略break语句,但省略后会改变流程。

48. break语句是限定转向语句,它使流程跳出所在的结构,把流

程转向所在结构之后。continue语句被称为继续语句。该语句的功能是使本次循环提前结束,即跳过循环体中continue语句后面尚未执行的循环体语句,继续进行下一次循环的条件判别。

49. 在C语言中,一个程序必须有一个main()函数,但是其文

件就不一定,因为其可以通过链接来实现多个子函数放到这个主函数中,主函数的位置是不固定的,可以根据自己的爱好和习惯来使用,在C语言中任何函数都不能调用主函数,且与函数的位置有关。 在C程序的函数中不能定义另一个函

数。

50. 在用fprintf输入时,要将其转换为二进制数形式放到文件中。

51. 由C语言构成的指令序列称为C源程序,源程序文件的后缀

为“.c”。而目标程序为“.obj”,可执行程序为“.exe”。

52. 在C语言中,合法的标识符可以由字母、数字和下划线组成,

且第一个字符必须为字母或下划线。

53. C语言规定必须以main作为主函数名。程序要从main()函

数开始执行,最后在main()函数中结束。

54. 赋值运算符左侧的操作数必须是一个变量。

55. 在C语言中,函数的实参单元与形参单元在内存中分配不同

的存储单元。

56. 在一个C语言源程序文件中所定义的全局变量,其作用域为:

由具体定义位置和extern说明来决定范围。【全局变量是在函数外部任意位置上定义的变量,它的作用域是从变量定义的位置开始,到整个源文件结束止。当全局变量定义在后,引用它的函数在前时,应该在引用它的函数中用extern对此全局变量进行说明,以便通知编译程序该变量是一个已在外部定义了的全局变量,这时全局变量的作用域从extern说明处起,延伸到该函数末尾。】

57. C语言中,凡是以“#”号开头的行,都成为“编译预处理”。

对C原程序进行编译前,由编译预处理程序对这些变异预处理命令进行处理。

58. typedef语句的作用仅仅是用“标识符”来表示已存在的“类

型名”,并未产生新的数据类型。

59. 共用体变量中的所有成员共享一段公共存储区,所有成员的

首地址相同。在每一个时刻所有的成员中只有一个有效,即只有最后一个被赋值的成员有效,其余的成员无效。

60. C语言中注释可以出现在任意位置;C语言一行内可以写多

个语句,一个语句可以写在多行上;C语言编写的程序可以放在多个程序文件中。

61. 标识符只能由数字、字母和下划线组成,并且只能以字母和

下划线开头。

62. 在用基本输出语句printf时,格式说明与输出项的个数应该相

同。如果格式说明的个数少于输出项的个数,多余的输出项不予输出,如果格式说明个数多余输出项个数,则对于多余的格式项输出不定制或0。

63. 二维数组定义和初始化允许省略行下标,不允许省略列下标。

64. 预处理命令行是在系统对原程序进行编译之前进行处理的,

不是在程序执行的过程中。

65. gets和getchar函数用于从标准输入设备终端读入字符串和字

符,并非从磁盘文件读入。

66. 动态变量和静态变量都是内存变量,而寄存器变量不保存在

内存上,而是直接存储在CPU的寄存器中。变量的存储类别有自动、静态、寄存器、外部。

67. C语言的源程序是由函数构成的,其基本单位是函数,每一

个函数完成相对独立的功能,其中至少包括一个主函数;C语言的书写格式自由,一行可写多条语句,一条语句也可写在不同行上;C语言规定每个语句以分号结束。可随时添加注释,对程序没影响。

68. 由高级语言编写的程序称为“源程序”,由二进制代码表示的

程序称为“目标程序”。由汇编语言编写的程序称为“汇编程序”。对于计算机本身来说,它只能接收和处理由0到1的代码构成的二进制指令和数据。所以计算机能识别的程序是“目标程序”。而计算机可以直接执行的是可执行程序,即后缀为.exe的程序。

69. C语言源程序不能表示二进制,她 在C语言中,所有的数

值型常量都带有符号,所以整型数量只区别整型和长整型两种形式,整型常量和长整型常量均可用十进制、八进制、十六进制3种形式表示。

70. 宏名没有大小写限制。宏定义可以放在程序中的任何位置,

其有效范围是从定义开始到文件结束。宏代换可以代替任何数据类型,不受数据类型的限制。函数影响运行时间,宏调用影响编译时间。

71. 字符数组可以只存放普通字符,不存放字符串。此时该字符

数组没有存放结束标志‘\0’。

72. 文件由数据序列组成,可以构成二进制文件或文本文件。

 

第二篇:C语言基础知识归纳

C语言基础知识

1. 每个C程序有且只有一个主函数main(),且程序必

须从main()函数开始执行,并在main()函数中结束。

2. 在C语言中,用e来表示科学计数法时,规定在e

的前面必须有数字,后面必须为整数。

3. 用单引号括起来的一个字符常量只能存放一个字

符;C语言中没有字符串变量,只能用字符数组来存储字符串。

4. 外部变量在编译时由系统分配永久的内存空间,所

以外部变量的类型不是自动存储类别。

5. 在一个函数内的复合语句中定义的变量,只能在这

个复合语句范围内有效。

6. 用sizeof(int)计算int类型数据的字节数。

7. C语言运行时,首先系统检查语法的正误,再运行

程序的语法;C语言中,可以在一个函数中嵌套一个函数,但是不能在一个函数中定义一个函数;只有在函数外部定义的函数才是外部函数;C语言的子程序有过程和函数两种。

8. 预处理命令行的位置没有规定,只是习惯放在前面;

在源文件中的可以有多条预处理命令,但一行只能写一条;宏名的大写只是习惯性的表示;宏替换不

仅不占用运行时间还不分配内存空间。

9. feof函数的作用是检查文件是否结束,当结束

时返回的值为非零,否则为零。

10. 当定义了数组后,在给其赋值时,不能直接把字

符串赋给数组名。

11. 在赋值表达式中,赋值运算符“=”右侧不能为

表达式;在求余运算符中的两侧都必须为整型;在强制类型转换时,类型名应用括号括起来。

12. 静态局部变量,只有当程序结束后,其值才释放。

13. 当调用函数时,实参是一个数组名,则向函数传

送的是数组每一个元素的地址。

14. 算法的特点为有零个或多个输入,有一个或多个

输出,当相同的输入时,其结果相同;算法正确的程序最终一定会结束。

15. 在C语言中,预处理命令行都以“#”开头;当

需要时才用#include<stdio.h>;预处理的作用就是实现宏定义和条件编译。

16. 当数组元素的下标超出了定义的下标范围时,系

统不给出“下标越界”的字样,而是得出错误的答案,因此在编程时务必检查下标是否越界。

17. 共用体变量不能作为函数的参数,也不能使函数

带回共用体变量。

18. 指向函数的指针变量的定义形式为:数据类型

(*指针变量)(); ,因此其为指向函数的指针变量。

19. 用C语言编写的代码程序是源程序,只有通过编

译、连接才能进行。

20. 在说明为static时,其生存期得到延长,而其作

用域并没有改变,在定义后系统会自动帮它赋值为0,static为关键字不能被用作它用。

21. 频繁地使用空语句会降低程序的可读性和运算

速度。

22. 运算符%两边都应是整数,赋值语句左边应该是

变量,而非表达式,强制转换语句强制类型应加括号。

23. 在逻辑运算符中,其两侧的运算符对象为任意合

法的表达式即可。

24. 函数fread(&Iarray,2,16,fp)的功能是,从fp

所指的数据文件中读取16次2字节的数据存储到数组Iarray中。

25. 整个流式文件也可以随机存取数据,C语言文件

中有好多函数可以达到写入数据时,未经输入数据,达到不覆盖的目的,在进行写操作时,系统会自动关闭文件。

26. 使用putchar、getchat、puts、gets、printf、scanf

函数时,必须在程序的开头出现包含头文件#include”stdio.h”的命令行,而使用字符串处理函数时,必须在程序的开头出现包含头文件#include”string.h”命令行,而使用数学函数时,必须在程序的开头出现包含头文件#include”math.h”的命令行。

27. 一个斜杠与小于等于127任意数字按一个字符

计算,一个斜杠与任意一个字符按一个字符计算。

28. 一个C程序可以有一个或多个程序文件,也可以

有一个或多个函数,所以一个C语言程序可以实现多种算法。

29. 根据C语言规定,注释语句可以换行写,并且一

个“/*”和其后紧跟的第一个“*/”中间的部分是注释内容,且注释内容不参与程序的运行。例如:b=0; /*b=20;给b赋值*/ 则b=0; 。

30. sizeof是求字节数的运算符,包括‘\0’,而strlen

是求字符串的实际长度的函数,不包括‘\0’,以‘\0’作为结束。

31. 在函数声明时,其中的形参变量、个数、函数的

类型必须一致。

32. C语言源程序经编译后生成后缀为.obj的目标程

序;C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件;用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中。并不是源程序中的所有行都参加编译。在条件编译形式下,相关内容只在满足一定条件时才进行编译。

33. switch括号后的表达式可以使任何表达式;case

后的表达式必须是常量表达式,常量表达式中不能出现变量,且类型必须是整数、字符型或枚举型。

34. C程序必须由一个或一个以上的函数组成;函数

调用可以作为一个独立的语句存在;若函数有返回值,必须通过return语句返回。

35. 在C语言中,数据只能从实参单向传递给形参,

称为“按值”传递。【在实参传递到形参时,是数值传递,而不是地址传递,形参中值的改变不会影响实参中的值。】

36. 可以用typedef声明新的类型名来代替已有的类

型名,而不能增加新的类型。

37. 在没有限制输出宽度时,一般浮点数的小数位数

是6位,不管输出格式是%f或lf%均如此。

38. C语言中,函数的隐含存储类别是无存储类别。

39. 当实参传递到形参时,地址传递时形参的改变影

响实参。

40. 串的长度指的是串中的字符的个数,且其字符个

数可以为零。

41. C语言中数据类型有整型、实型、字符型等,实

行数据分为单精度型和双精度型两种。

42. 整型数组只能一个一个地输入或输出,而在字符

型数组中可以对字符串整体地输入与输出。

43. C语言中,文件型指针变量的定义形式为:FILE

*文件型指针名; 。C语言中对二进制文件的访问速度比文本文件快;C语言中,随机文件以二进制代码形式存储数据;C语言中的文本文件以ASCII码形式存储数据。

44. 因为#define是宏定义的标志,而不是C语句,

而printf是输出函数,因此其是C语句。

45. 在实参传递给形参时,地址传递时能够改变,而

数值传递时则不变。

46. 在scanf函数中,必须含有输入项,并且需含有

与之一一对应的转换说明符,在scanf函数的格式字符前可以加入一个正整数指定输入数据的宽度,但不可以实数指定小数位的宽度,输入项是地址表达式。

47. switch语句使用注意事项:(1)switch语句与if

语句不同,仅能判断一种关系:是否恒等;(2)switch语句中case子句的常量可以使整型常量、字符型常量、枚举型数据,或是整型常量表达式,不允许变量;(3)在同一个switch中,case子句的常量不能相同,在嵌套的switch语句中,不同层次的switch之间,可有相同的常量;(4)default子句可以省略。例如:default:printf(“E\n”);(5)case和default子句只能在switch语句中使用,且case和default只起标号作用,可出现在switch中的任何位置;(6)case和default子句后面的语句序列允许由多个可执行语句组成,且不必用“{}”括起来,也可以为空语句;(7)switch语句中可省略break语句,但省略后会改变流程。

48. break语句是限定转向语句,它使流程跳出所在

的结构,把流程转向所在结构之后。continue语句被称为继续语句。该语句的功能是使本次循环提前结束,即跳过循环体中continue语句后面尚未执行的循环体语句,继续进行下一次循环的条件判别。

49. 在C语言中,一个程序必须有一个main()函

数,但是其文件就不一定,因为其可以通过链接来实现多个子函数放到这个主函数中,主函数的位置是不固定的,可以根据自己的爱好和习惯来使用,

在C语言中任何函数都不能调用主函数,且与函数的位置有关。 在C程序的函数中不能定义另一个函数。

50. 在用fprintf输入时,要将其转换为二进制数形式

放到文件中。

51. 由C语言构成的指令序列称为C源程序,源程

序文件的后缀为“.c”。而目标程序为“.obj”,可执行程序为“.exe”。

52. 在C语言中,合法的标识符可以由字母、数字和

下划线组成,且第一个字符必须为字母或下划线。

53. C语言规定必须以main作为主函数名。程序要

从main()函数开始执行,最后在main()函数中结束。

54. 赋值运算符左侧的操作数必须是一个变量。

55. 在C语言中,函数的实参单元与形参单元在内存

中分配不同的存储单元。

56. 在一个C语言源程序文件中所定义的全局变量,

其作用域为:由具体定义位置和extern说明来决定范围。【全局变量是在函数外部任意位置上定义的变量,它的作用域是从变量定义的位置开始,到整个源文件结束止。当全局变量定义在后,引用它的函数在前时,应该在引用它的函数中用extern对此全

局变量进行说明,以便通知编译程序该变量是一个已在外部定义了的全局变量,这时全局变量的作用域从extern说明处起,延伸到该函数末尾。】

57. C语言中,凡是以“#”号开头的行,都成为“编

译预处理”。对C原程序进行编译前,由编译预处理程序对这些变异预处理命令进行处理。

58. typedef语句的作用仅仅是用“标识符”来表示

已存在的“类型名”,并未产生新的数据类型。

59. 共用体变量中的所有成员共享一段公共存储区,

所有成员的首地址相同。在每一个时刻所有的成员中只有一个有效,即只有最后一个被赋值的成员有效,其余的成员无效。

60. C语言中注释可以出现在任意位置;C语言一行

内可以写多个语句,一个语句可以写在多行上;C语言编写的程序可以放在多个程序文件中。

61. 标识符只能由数字、字母和下划线组成,并且只

能以字母和下划线开头。

62. 在用基本输出语句printf时,格式说明与输出项

的个数应该相同。如果格式说明的个数少于输出项的个数,多余的输出项不予输出,如果格式说明个数多余输出项个数,则对于多余的格式项输出不定制或0。

63. 二维数组定义和初始化允许省略行下标,不允许

省略列下标。

64. 预处理命令行是在系统对原程序进行编译之前

进行处理的,不是在程序执行的过程中。

65. gets和getchar函数用于从标准输入设备终端读

入字符串和字符,并非从磁盘文件读入。

66. 动态变量和静态变量都是内存变量,而寄存器变

量不保存在内存上,而是直接存储在CPU的寄存器中。变量的存储类别有自动、静态、寄存器、外部。

67. C语言的源程序是由函数构成的,其基本单位是

函数,每一个函数完成相对独立的功能,其中至少包括一个主函数;C语言的书写格式自由,一行可写多条语句,一条语句也可写在不同行上;C语言规定每个语句以分号结束。可随时添加注释,对程序没影响。

68. 由高级语言编写的程序称为“源程序”,由二进

制代码表示的程序称为“目标程序”。由汇编语言编写的程序称为“汇编程序”。对于计算机本身来说,它只能接收和处理由0到1的代码构成的二进制指令和数据。所以计算机能识别的程序是“目标程序”。而计算机可以直接执行的是可执行程序,即后缀为.exe的程序。

69. C语言源程序不能表示二进制,她 在C语言中,

所有的数值型常量都带有符号,所以整型数量只区别整型和长整型两种形式,整型常量和长整型常量均可用十进制、八进制、十六进制3种形式表示。

70. 宏名没有大小写限制。宏定义可以放在程序中的

任何位置,其有效范围是从定义开始到文件结束。宏代换可以代替任何数据类型,不受数据类型的限制。函数影响运行时间,宏调用影响编译时间。

71. 字符数组可以只存放普通字符,不存放字符串。

此时该字符数组没有存放结束标志‘\0’。

72. 文件由数据序列组成,可以构成二进制文件或文

本文件。

相关推荐