C 语言基础知识
1. 每个C 程序有且只有一个主函数main() ,且程序必须从main() 函数开始执行,并在main() 函数中结束。
2. 在C语言中,用e来表示科学计数法时,规定在e的前面必须有数字,后面必须为整数。
3. 用单引号括起来的一个字符常量只能存放一个字符;C 语言中没有字符串变量,只能用字符数组来存储字符串。
4. 外部变量在编译时由系统分配永久的内存空间,所以外部变量的类型不是自动存储类别。
5. 在一个函数内的复合语句中定义的变量,只能在这个复合语句范围内有效。
6. 用sizeof(int) 计算int 类型数据的字节数。
7. C语言运行时,首先系统检查语法的正误,再运行程序的语法;C语言中,可以在一个函数中嵌套一个函数,但是不能在一个函数中定义一个函数;只有在函数外部定义的函数才是外部函数;C语言的子程序有过程和函数两种。
8. 预处理命令行的位置没有规定,只是习惯放在前面;在源文件中的可以有多条预处理命令,但一行只能写一条;宏名的大写只是习惯性的表示;宏替换不仅不占用运行时间还不分配内存空
间。
9. feo f函数的作用是检查文件是否结束,当结束时返回的值为非零,否则为零。
10. 当定义了数组后,在给其赋值时,不能直接把字符串赋给数组名。
11. 在赋值表达式中,赋值运算符"=”右侧不能为表达式;在求余运算符中的两侧都必须为整型;在强制类型转换时,类型名应用括号括起来。
12. 静态局部变量,只有当程序结束后,其值才释放。
13. 当调用函数时,实参是一个数组名,则向函数传送的是数组每一个元素的地址。
14. 算法的特点为有零个或多个输入,有一个或多个输出,当相同的输入时,其结果相同;算法
正确的程序最终一定会结束。
15. 在 C 语言中,预处理命令行都以“#”开头;当需要时才用
#include<stdio.h>; 预处理的作用就是实现宏定义和条件编译。
16. 当数组元素的下标超出了定义
的下标范围时,系统不给出“下标越界”的字样,而是得出错误的答案,因此在编程时务必检查下标是否越界。
17. 共用体变量不能作为函数的参数,也不能使函数带回共用体变量。
18. 指向函数的指针变量的定义形式为:数据类型(* 指针变量)();,因此其为指向函数的
指针变量。
19. 用C 语言编写的代码程序是源程序,只有通过编译、连接才能进行。
20. 在说明为static 时,其生存期得到延长,而其作用域并没有改变,在定义后系统会自动帮它赋值为0,static 为关键字不能被用作它用。
21. 频繁地使用空语句会降低程序的可读性和运算速度。
22. 运算符%两边都应是整数,赋值语
句左边应该是变量,而非表达式,强制转换语句强制类型应加括号。
23. 在逻辑运算符中,其两侧的运算符对象为任意合法的表达式即可。
24. 函数fread (&larray,2,16,fp)的功能是,从fp所指的数据文件中读取16次2字节的数据
存储到数组larray中。
25.整个流式文件也可以随机存取数据,C语言文件中有好多函数可以达
到写入数据时,未经输入数据,达到不覆盖的目的,在进行写操作时,系统会自动关闭文件。
26. 使用putchar、getchat、puts、gets、printf、seanf函数时,必须在程序的开头岀现包含头文件
#inelude "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',以‘作为结束。
31. 在函数声明时,其中的形参变量、个数、函数的类型必须一致。
32. C 语言源程序经编译后生成后缀为.obj 的目标程序;C 程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件;用 C 语言编写的程序称为源程序,它以ASCII 代码形式存放在一个文本文件中。
并不是源程序中的所有行都参加编译。
在条件编译形式下,相关内容只在满足一定条件时才进行编译。
33. switch 括号后的表达式可以使任何表达式;case 后的表达式必须是常量表达式,常量表达式中不能出现变量,且类型必须是整数、字符型或枚举型。
34. C 程序必须由一个或一个以上的函数组成;函数调用可以作为一个独立的语句存在;若函数有返回值,必须通过return 语句返回。
35. 在C 语言中,数据只能从实参单向传递给形参,称为“按值”传递。
【在实参传递到形参时,是数值传递,而不是地址传递,形参中值的改变不会影响实参中的值。
】
36. 可以用typedef 声明新的类型名来代替已有的类型名,而不能增加新的类型。
37. 在没有限制输岀宽度时,一般浮点数的小数位数是6位,不管输岀格式是%f或If%均如此。
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 ()函数,但是其文件就不一定,因为其可以通过链接来实现多个子函数放到这个主函数中,主函数的位置是不固定的,可以根据自己的爱好和习惯。