搜档网
当前位置:搜档网 › C语言复习(全)

C语言复习(全)

C语言复习(全)
C语言复习(全)

C语言复习参考

说明:本复习参考不作为C语言考试的重点,不代表C语言考试的范围,只是总结出来的感觉需要同学们引起注意的一些知识点。复习时,可作为辅助参考资料。建议在全面复习完教材一遍后再参考该资料。

复习建议:教材+课件+课后习题+实验书+平时实验报告和作业+复习参考。

预祝:复习充分,考取好成绩!

第1章C语言程序基础

1.C语言程序的基本结构

(1) C语言由函数组成,有且只有一个main函数。

(2) 每个语句和数据定义的最后必须有一个分号;分号是C语句的必要组成部分。

(3) 可以用/*······*/对C程序的任何部分作注释。

2.标识符

(1) 标识符:给程序中的实体所起的名字。

(2) 标识符的命名规则。

(3) 运算符:注意:①1/3=0,1.0/3=0.3333;②i++和++i的区别;③a+=5; a=a+5;

i=1,j=2,k=3逗号表达式的值为3

3.数据类型

(1) 符号常量定义:#define M 5

(2) 变量必须先定以后使用,不能与关键字、函数名等重名。

(3) 进行变量声明后,计算机系统会为声明的变量分配相应大小的存储空间,用以存放数据。单精度实型(float,%f ):4个字节,双精度实型(double,%lf):8个字节,字符型(char,%c):1个字节,整型(int,%d):4个字节(TC中整型占2个字节)。

(4) 字符常量——单引号(如:?a?),字符串常量——双引号(如:”student”)。

(5) 自动类型转换,如:int a; 则a=3.2的值为3

4.数据的输入/输出

(1) printf语句中格式控制符的类型和个数必须与后面变量的类型和个数一一对应。

(2) 附加格式说明符。

(3) scanf语句中双引号里面的内容尽量简单,不要多加?\n?等字符,双引号里有什么输入时就必须输入什么,普通的变量前面应加&,表示地址的概念(注意如果是数组名,则不加&)。

(4) 使用scanf()函数应注意的问题。

5. 算法

(1) 算法:为解决一个问题而采取的方法和步骤。

(2) 算法+数据结构=程序

(3) 算法的五大特性。

(4) 算法的表示方法:自然语言、传统的程序流程图、N-S流程图。

6. 结构化程序设计的三种基本结构:顺序结构、分支(选择)结构、循环结构。

7. 程序设计语言:机器语言、汇编语言、高级语言。

8. 高级语言翻译成机器语言的两种方式:编译方式、解释方式。

第2章C语言程序的基本结构

1.关系运算符和逻辑运算符

(1) 字符数据按其ASCII码值进行比较;

(2) 应避免两个实数作==或!=的比较;

(3) 注意等号“==”和赋值号“=”的区别;

(4) 关系表达式的值只能是1或0,当表达式成立即为“真”时,值为整数1;否则为“假”,值为整数0。

(5) 表示x∈[-1,1]区间,应写为: x>=-1 && x<=1,不能写为:-1<=x<=1。

2. 如果if、while、for的语句体中有多条语句,必须用大括号括起,构成复合语句。

3. if、while、for中的表达式,一般是逻辑或关系表达式,也可以是任意类型表达式。如while(a=5)……。

4. else只能与if配对使用。仅else本身不能单独作为一个语句使用。

5. switch语句中case后面只能是常量值;若执行完某case后的语句没遇到break,则继续执行下一个case 语句。

6. 循环程序:注意循环变量的初值、修正值、循环条件等,以及循环中用到的某些变量赋初值,如求累加和变量。

7. 一般是先判断条件,再执行循环体;但do—while语句是先执行一遍循环体,再判断条件。

8. 内外层循环的循环控制变量不能重名。

9.break、continue语句。

第3章模块化程序设计

1. 函数

(1) 一个较大的程序常分为若干模块,每个模块实现一个特定的功能。C语言中用函数来实现模块的功能。

(2) 一个C语言源程序文件通常由一个main函数和若干个其它函数组成。

(3)C程序的执行从main函数开始,由主函数调用其它函数,其它函数也可以相互调用,程序流程最后回到main函数,在main函数中结束整个程序的运行。

(4) 一个函数(主调函数)可以多次调用多个函数(被调函数)。同一个函数也可以被一个或多个函数调用任意多次。但不能调用main函数。

(5) 函数不能嵌套定义,但可以相互调用。

2.函数的三大组成要素:函数定义、函数调用、函数声明。

3.函数调用的过程:

(1) 遇到函数调用语句出来找函数;

(2) 进行参数传递,形参传给实参,分两种:传值和传地址;

(3) 执行函数;

(4) 结果返回,取代函数调用语句;

(5) 接着执行下一条语句。

4.函数定义:函数首部+函数体

(1) 函数首部:函数的类型+函数名+函数的参数,如:int func(int a,int y)

(2) 函数的类型为函数返回值的类型,如果函数没有返回值,即没有return语句,则类型为void。如果定义时没指明函数类型,如:fun(int a),默认是int型,返回值不确定。

(3) 函数名为标识符,最好起能代表函数实现功能的名字。

(4) 函数定义中的参数为形参,每个参数都要定义类型,用逗号隔开,形参个数和类型必须与函数调用中的实参一一对应。只有在函数被调用时系统才给形参分配空间,函数执行完空间释放。(在函数中用static定义变量时,变量空间不释放。)

(5) 函数体用花括号括起,函数中除了形参其它用到的变量在函数体中定义,函数返回值用return语句返回。函数中定义的变量只在该函数中起作用(除了形参为地址的情况)。(6) 函数定义的关键是函数首部,先看该函数有没有返回值,即需不需要返回结果,返回值的类型是什么,再确定函数的参数,即看需要告诉函数哪些值才能实现函数的功能。5. 函数调用:函数名+一对括号的形式。如:max(a, b);

(1) 如果函数有返回值,一般要将函数调用的结果赋值给一个变量。如:c=max(a, b);

(2) 括号中的参数为实参,实参和形参个数和类型一一对应。

(3) 只有在主函数中有能直接或间接调用到该函数的函数调用语句,该函数才被执行,否则,函数即使定义也不被执行。

6. 函数声明:将函数首部抄一遍,加一个分号。函数定义在前,使用(被调用)在后,可省略函数声明,反之需要在使用前声明。

7. 函数可嵌套调用,不可嵌套定义。

8. 使用库函数时,应在文件开头用#include命令将有关头文件包含进来。

9. 从作用域角度,变量分为:全局变量、局部变量。

(1) 全局变量:在函数外部定义,作用域从定义开始到本文件结束。其间的所有函数都可以使用它,可在各函数间传递值,但容易带来副作用,降低模块独立性。

(2) 局部变量:在函数内部定义,只能在该函数中使用,包括函数的形参和复合语句中定

义的变量,main函数中定义的变量也是局部变量,不能被其它函数使用。

(3) 不同函数内定义的同名变量,互不影响,因其作用域不同,内存空间独立。

10. 变量的存储类别:auto、static、register、extern。

(1) 全局变量的存储类别:static、extern。

(2) 全局变量总是存放在静态存储区间,生存期是整个程序运行期间,只赋一次初值,在程序运行前初始化,默认初值为0。

(3) 用extern对全局变量加以声明,可以将其作用域扩充到整个文件或其它文件。定义全局变量时加上static,可将其作用域限制在本文件中,不能被其它文件使用。

(4) 局部变量的存储类别:auto、static、register。

(5) auto型的生存周期时函数被调期间,两次调用之间不保留值。

(6) static型的生存期是整个程序运行期间,保留上一次调用后的值,且只赋一次初值(在程序运行前初始化,默认初值为0)。

11. 函数的作用域是全局的,可被其它函数调用。

(1) 函数存储类别:static、extern。默认为extern型。

(2) 如:static int func(int a);则函数不被其它文件使用,所以两文件中的同名静态函数,互不干扰。

12. 指针:就是地址。

(1) 内存地址:在计算机中,把内存区划分为一个一个的存储单元,每个单元为一个字节(8位),它们都有一个编号,这个编号就是内存单元的地址。

(2) 一定义变量,系统就在内存中给它分配空间,数据所占有的存储单元个数是由其类型决定的。如:实型数据占4个字节。首地址:第一个单元的地址。

(3) 直接访问:从内存单元中取出变量的值,或将变量的值存入对应的内存单元中。间接访问:先从一个内存单元中获得变量的地址,再根据这个地址找到变量的内存单元,进行数据的读写。

(4) 存放地址的变量称为指针变量,变量的地址称为指针,此时,指针变量和指针有了指向关系。

13. 指针变量的定义,如:int a,*p=&a; “*”为指针的标志。必须给指针变量赋地址值。指针变量定义时必须指定其所指向的变量的数据类型,而且使用过程中只能指向同一种类型的变量。

14. *p为指针变量p所指向的变量的内容,反映了指针变量的引用方法:

(1) 将变量的地址赋给指针变量(p1=&a1)

(2) 将一个指针变量赋给另一个指针变量(p2=p1)

(3) 通过指针变量间接访问它所指向的变量(*p1)

15. p++表示指针指向了下一个元素。

16. 指针作为函数的参数,传递的是实参变量的地址,如:void func(int *p)。调用时用某变量的地址常量,或指向该变量的指针作为实参,如主调函数中有定义int a,*q;q=&a;则可用&a或q作为实参进行调用,即func(&a);或func(q); 都是将变量a的地址传递给形参指针p,使指针p指向变量a,函数中使用*p就是对a的间接访问。就可以改变a的值,或者将结果放入a中。

第4章简单构造数据类型

1. 数组:由相同类型的具有固定个数的元素组成的集合。数组中的所有元素都属于同一个数据类型。每个数组元素都是一个变量,其类型为数组的类型。与相同类型的普通变量完全一样。数组元素在数组中的序号称为下标。通过数组名和下标来唯一的确定每一个元素。

2. 数组定义:int a[10];或int a[N]; 数组长度必须是常量值,不能是变量,可以是在程序开始前定义的符号常量,进行长度定义。

3. 数组名表示数组所占内存区域的首地址(即第1个元素的地址);

4. 数组元素的下标从0开始;如:数组a包含10个元素:a[0], a[1], a[2], …, a[9]。不存在数组元素a[10]。

5. 整个数组占用一段连续的内存单元,各元素按下标顺序存放。

6. 数组不能整体赋值。数组中各元素值的输入/出,应使用循环程序逐个输入/出;如:for (i=0; i<=9; i++) scanf("%d", &a[i]);字符数组例外(gets、puts)。

7. 数组中的两种排序方法:

(1) 冒泡法:外循环为i=0;i

(2) 选择法:外循环为i=0;i

8. 二维数组可以看作是一个矩阵,在内存中按行存放。

(1) 可以将二维数组看作是一种特殊的一维数组,它的每一个元素又是一个一维数组。

(2) 二维数组中各元素值的输入输出一般用两重for循环实现,如:

for (i=0; i<3; i++)

for (j=0; j<4; j++)

scanf("%d", &a[i][j]);

9. 用来存放字符型数据的数组叫字符数组。

(1) 字符数组的每个下标变量中只能存放一个字符。如:char str[20];

(2) 用"%c"格式控制符实现逐个字符的输入输出。如:for (i=0; i<20; i++) printf("%c", str[i]);

10. 字符串是由双引号括起来的字符序列,例如:“Hello World!”。C语言中没有字符串变量,而使用一维字符数组来存放一串字符。

(1) 字符数组:通常定义较长长度,如:char s[50]; 通常用于存放字符串,结束标志为…\0?。

(2) 可用字符串常量为其初始化,如:char s[ ]= “sdkhg”; 也可由键盘输入,如gets(s);输出用puts(s);

(3) 注意:char s[5]={…a?, …d?, …f?, …g?, …w?};此种形式不是字符串,无字符串结束标志,仅仅是普通一维字符数组,不能用puts输出,只能用%c格式逐个输出。

(4) 字符数组的输入/出有两种形式:%c、%s。

11. 字符串数组:字符串数组就是数组中的每一个元素是一个字符串,因为存放字符串的本身是一个字符数组,所以字符串数组实际上是一个二维字符数组。该二维字符数组的第一维表示字符串的个数,第二维表示每个字符串的存储的长度。如:char str[5][10];表示数组str[5][10]可以存储5个字符串,每个字符串可以存储9个字符,

12. 字符串处理函数:strcpy(s1,s2)、strcat(s1,s2)、strcmp(s1,s2)、strclen(s)、strupr(s)、strlwr(s)。

13. 数组与函数

(1) 数组元素作为函数参数,与参数之间是值传递,与普通变量作为函数参数用法一样。

(2) 数组名作为函数参数,传递的是地址,实参的数组名是指针常量,形参的数组名是指针变量,形参可以定义为数组或指针。实参数组和形参数组占同一段内存单元,即表示同一个数组,因此形参数组的变化等同于实参数组的变化

14. 数组与指针

(1) 数组元素的指针就是数组元素的地址。数组名是一个指针常量,不能改变。可以用数组名来将数组的首地址赋给指针变量,找到了数组的首地址,就相当于找到了数组中的每一个元素。

(2) 如:int a[10],*p=a;则a代表数组首地址,是指针常量。元素的表示方法:a[i]、*(a+i)、p[i]、*(p+i);元素地址:&a[i]、a+i、&p[i]、p+i。

(3) 区别:a实指针常量,只不能变,而p是指针变量,可进行增减运算;所以常通过p 的增减运算来快速访问数组a,如:while(p

(4) 理解(*p)++、*p++、*(p++)、p++的含义。执行p++后指针拨动的单元数(由元素类型决定)。

15. 字符串与指针

(1) 用字符指针指向一个字符串。如:char *s="I love China!"; 程序在定义字符指针变量s 时,把字符串首地址(即存放字符串的字符数组的首地址)赋给s。

(2) 对字符串中字符的存取,可用下标方法,也可用指针方法。如:下标法:for (i=0; a[i]!='\0'; i++) b[i]=a[i]; b[i]='\0'; 指针法:for ( ; *pa!='\0'; pa++, pb++) *pb=*pa; *pb='\0';

(3) 字符指针与字符数组的区别。

(4) 字符指针作为函数参数:将一个字符串从一个函数传递到另一个函数,可以用地址传递的方法,即用字符数组名作参数或用指向字符串的指针变量作参数。在被调用的函数中可以改变字符串的内容,在主调函数中可以得到改变了的字符串。

第5章复杂构造数据类型

1.当要存储表格形式的数据时(表格中的每一项类型可能不一致),可以定义为结构体类型。

2. 结构体:struct

(1) 注意,在结构体类型的定义后面有分号。可理解为一个学生的信息。

(2) 结构体变量定义的三种形式:先定义结构体类型,再定义结构体变量;再定义结构体类型的同时定义结构体变量;省略结构体名,缺点:以后不能再定义该结构体类型的变量。

(3) 结构体类型的定义可放在函数内或者函数外,一般放在所有函数的前面,再它定义后的所有函数都可以使用。

(4) 结构体的成员可以是任何类型,成员引用:结构体变量名.成员名。

(5) 结构体变量占用内存大小为:各成员占用内存之和。

(6) 不能将一个结构体变量作为一个整体进行输入输出;只能对结构体中的各个成员分别进行输入输出。

3. 结构体数组即基类型是结构体的数组,数组中的每个元素都是结构体变量。可理解为40名学生的信息。同普通数组一样使用。初始化时注意双重括号。

4. 结构体变量的指针就是该变量所占据的内存段的起始地址。

(1) 结构体指针:(*p).成员名或p ->成员名

(2) 只能用结构体变量地址赋值,不能赋某成员的地址,如:p=&https://www.sodocs.net/doc/ac14166249.html,;是错误的。5. 共用体:所谓“共用体(union)”是指使几个不同的变量共占同一段内存的数据类型。

(1) 定义形式同结构体。成员引用:共用体变量名.成员名。

(2) 占用内存大小为:共用体中较长的成员的长度。

(3) 某一时刻只有一个成员起作用,最后一个存放的成员值有效。

(4) 结构体类型与共用体类型可互相嵌套使用,即结构体成员的类型也可以是共用体类型,反之亦然。

6. 枚举类型:将变量的所有取值一一列举出来,变量的值只限于列举出来的值的范围内

(1) 如:enum week{sun,mon,tues,wen,thur,fri,sat}day;

(2) 枚举元素就是枚举变量的可能取值,如:day=mon;

(3) 枚举元素视为常量,其值就是序号(0 ~ n-1)。也可以在定义时改变其值,如:enum weekday{Sun=7, Mon, Tue, Wed=0, Thu, Fri, Sat}; 则Mon的值为8,Thu的值为1。

第6章磁盘数据存储

1. 文件的类型:ASCII码文件(文本文件)、二进制文件。

2. 文件的基本操作:读和写,使用有关文件函数来完成,需包含头文件stdio.h。

3. 文件操作的四大步骤:

(1) 定义文件类型指针;

(2) 打开文件;

(3) 向文件写入数据,或从文件读取数据;

(4) 关闭文件。

4. 文件的打开方式:r(只读,要求文件必须存在)、w(只写,文件存在重新写,不存在新建一个)、a(追加)、r+(读写,先读后写,要求文件必须存在)、w+(读写,先写后读,文件不存在新建)、a+(读写,先追加再读),如果读写对象是二进制文件,则在后面加?b?,即rb、wb、ab、rb+、wb+、ab+。

5. fopen与fclose需配对出现!

6. 文件读写分类函数:fgetc(fp)、fputc(ch,fp)、fread(*p,size,n,fp)、fwrite(*p,size,n,fp)、fgets(*str,n,fp)、fputs(*str,fp)、fscanf(fp, “格式控制符”,地址列表)、fprintf(fp, “格式控制符” ,输出列表)。

7. 文件定位函数

(1) rewind函数

(2) 位置指针随机移动函数fseek

(3) 求文件位置指针当前位置的函数ftell

补充:如何写出函数定义?(函数体包括函数首部和函数体)

例如:1、将指定的字符打印n次。

思考:首先考虑函数首部怎么写,函数首部三个要素:函数类型(即返回值的类型)、函数名、函数参数(形参)。(1)这个函数有没有结果需要返回?没有,只要在函数里把字符打印n次工作就结束了,因此,函数类型(没有返回值)为void。(2)函数名可取与功能相关的名字,如print。(3)函数的参数,要告诉这个函数哪些信息,函数才能执行?一个需要知道指定的字符是什么,第二个需要知道打印多少次,即n的值为多少。因此参数就可以定义出来了:(char ch, int n)。这样,函数首部就可以写出来了:void print(char ch, int n)。

下面考虑函数体:函数体主要是实现函数的功能,在本例中即如何实现将字符ch打印n次。可用循环实现:for(i=0;i

因此,完整的函数定义可参考如下:

void print(char ch, int n)

{ int i;

for (i=0; i

putchar(ch);

putchar('\n');

}

进一步考虑,这样的函数定义,对应的函数调用语句怎么写?

还是三个要素:函数返回值、函数名、函数参数(实参)。这个函数没有返回值,在函数调用时不需要赋值;函数名,为函数定义时取的函数名print;函数参数为函数定义中形参的具体的值,如(‘*’,20),即将*打印20次。因此完整的函数调用语句为:print(…*?,20);

例如:2、求整数x的n次幂(n>0)

函数首部:(1)函数类型,求完整数x的n次幂后有个结果,而且需要将这个结果返回给主调函数,这个结果比较大,一般将这个结果定义为float类型,即这个函数有返回值,返回值为float类型。因此,函数的类型为float。(2)函数名,可取为power。(3)函数的参数,需要知道x的值和n的值函数才能执行运算得出结果,因此形参为(int x, int n)。

函数首部:float power(int x, int n)

函数体:int i, mul=1;

for (i=1; i<=n; i++)

mul=mul*x;

return(mul);(函数需要返回最后的运算结果,用return实现,注意返回值的类型应与函数的类型一致)

函数定义:float power(int x, int n)

{

int i;

float mul=1;

for (i=1; i<=n; i++)

mul=mul*x;

return(mul)

}

函数调用语句:因为函数有返回值,应将这个返回值赋值给一个同种类型的变量,否则将得不到这个值。因此,需要在主调函数中定义一个float 类型的变量来接收return回来的mul 值。函数调用语句可写为mul=power(5,3);表示求5的3次幂。

计算机二级C语言高效考点

计算机二级C语言高效考点 2017年计算机二级C语言高效考点锦集 C语言基本知识 【考点1】C程序 C语言程序结构有三种:顺序结构,循环结构(三个循环结构),选 择结构(if和switch) 【考点2】main函数 每个C语言程序中main函数是有且只有一个。读程序都要从 main()入口,然后从最上面顺序往下读(碰到循环做循环,碰到选择做 选择)。 【考点3】存储形式 计算机的数据在电脑中是以二进制的形式保存。最低的存储单元是bit(位),位是由为0或者1构成。byte是指字节,一个字节=八 个位。数据存放的位置就是它的地址。 【考点4】注释 是对程序的说明,可出现在程序中任意合适的地方,注释从“/*”开始到最近一个“*/”结束,其间任何内容都不会被计算机执行, 注释不可以嵌套。 【考点5】书写格式 每条语句的后面必须有一个分号,分号是语句的一部分。一行内可写多条语句,一个语句可写在多行上。 【考点6】标识符 合法的用户标识符考查: 合法的要求是由字母,数字,下划线组成。有其它元素就错了。

并且第一个必须为字母或则是下划线。第一个为数字就错了。 C语言标识符分如下3类 (1)关键字。它们在程序中有固定的含义,不能另作他用。如int、for、switch等。 (2)预定义标识符。预先定义并具有特定含义的标识符。如define、include等。 (3)用户标识符。用户根据需要定义的标识符,符合命名规则且不与关键字相同。 关键字不可以作为用户标识符号。maindefinescanfprintf都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。 【考点7】实型数据 实型数据的合法形式:小数形式和指数形式。掌握判定指数形式合法性。 2.333e-1就是合法的,且数据是2.333×10-1。 考试口诀:e前e后必有数,e后必为整数。 【考点8】字符 字符数据的合法形式:: '1'是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。 '0'的ASCII数值表示为48,'a'的ASCII数值是97,'A'的ASCII数值是65。 字符型和整数是近亲: chara=65; printf(“%c”,a);得到的输出结果:a

谭浩强C语言知识点总结

谭浩强C语言知识点总 结 文件编码(GHTU-UITID-GGBKT-POIU-WUUI-8968)

C语言最重要的知识点总体上必须清楚的: 1)程序结构是三种: 顺序结构、选择结构(分支结构)、循环结构。 2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。 3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址. 4)bit是位是指为0 或者1。 byte 是指字节, 一个字节 = 八个位.概念常考到的: 1、编译预处理不是C语言的一部分,不占运行时间,不要加分号。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。 2、define PI ; 这个写法是错误的,一定不能出现分号。 3、每个C语言程序中main函数是有且只有一个。 4、在函数中不可以再定义函数。 5、算法:可以没有输入,但是一定要有输出。 6、break可用于循环结构和switch语句。 7、逗号运算符的级别最低,赋值的级别倒数第二。 第一章 C语言的基础知识 第一节、对C语言的基础认识 1、C语言编写的程序称为源程序,又称为编译单位。 2、C语言书写格式是自由的,每行可以写多个语句,可以写多行。 3、一个C语言程序有且只有一个main函数,是程序运行的起点。

第二节、熟悉vc++ 1、VC是软件,用来运行写的C语言程序。 2、每个C语言程序写完后,都是先编译,后链接,最后运行。(.c---?.obj---?.exe)这个过程中注意.c和.obj文件时无法运行的,只有.exe文件才可以运行。(常考!) 第三节、标识符 1、标识符(必考内容): 合法的要求是由字母,数字,下划线组成。有其它元素就错了。 并且第一个必须为字母或则是下划线。第一个为数字就错了 2、标识符分为关键字、预定义标识符、用户标识符。 关键字:不可以作为用户标识符号。main define scanf printf 都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。 预定义标识符:背诵define scanf printf include。记住预定义标识符可以做为用户标识符。 用户标识符:基本上每年都考,详细请见书上习题。 第四节:进制的转换 十进制转换成二进制、八进制、十六进制。 二进制、八进制、十六进制转换成十进制。 第五节:整数与实数 1)C语言只有八、十、十六进制,没有二进制。但是运行时候,所有的进制都要转换成二进制来进行处理。(考过两次)

C语言知识点总结 完美版

PS这个文档是我从百度文库找的,其中存在一些错误在我能力范围之内的已被纠正过来了,并且有些内容我做了适当的修改。来不及复习的同学如果觉得书太多懒得看,可以看看这个,已经复习的同学也可以查漏补缺哈。复习的话建议书本加网上作业。预祝大家考试过过过! C语言最重要的知识点 总体上必须清楚的: 1)程序结构是三种:顺序结构、选择结构(分支结构)、循环结构。 2)读程序都要从main()入口,然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。 3)计算机的数据在电脑中保存是以二进制的形式.数据存放的位置就是它的地址. 4)bit是位是指为0或者1。byte是指字节,一个字节=八个位. 概念常考到的: 1、编译预处理不是C语言的一部分,不占运行时间,不要加分号。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。 2、define PI3.1415926;这个写法是错误的,一定不能出现分号。 3、每个C语言程序中main函数是有且只有一个。 4、在函数中不可以再定义函数。(但能嵌套调用) 5、算法:可以没有输入,但是一定要有输出。 6、break可用于循环结构和switch语句。(continue不能用于switch语句) 7、逗号运算符的级别最低,赋值的级别倒数第二。 第一章C语言的基础知识 第一节、对C语言的基础认识 1、C语言编写的程序称为源程序,又称为编译单位。 2、C语言书写格式是自由的,每行可以写多个语句,可以写多行。 3、一个C语言程序有且只有一个main函数,是程序运行的起点。 第二节、熟悉vc++ 1、VC是软件,用来运行写的C语言程序。 2、每个C语言程序写完后,都是先编译,后链接,最后运行。(.c---→.obj---→.exe)这个过程中注意.c和.obj文件时无法运行的,只有.exe文件才可以运行。(常考!)第三节、标识符 1、标识符(必考内容): 合法的要求是由字母,数字,下划线组成。有其它元素就错了。 并且第一个必须为字母或则是下划线。第一个为数字就错了 2、标识符分为关键字、预定义标识符、用户标识符。

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. feo f函数的作用是检查文件是否结束,当结束时返回的值为非零,否则为零。 10. 当定义了数组后,在给其赋值时,不能直接把字符串赋给数组名。 11. 在赋值表达式中,赋值运算符"=”右侧不能为表达式;在求余运算符中的两侧都必须为整型;在强制类型转换时,类型名应用括号括起来。 12. 静态局部变量,只有当程序结束后,其值才释放。 13. 当调用函数时,实参是一个数组名,则向函数传送的是数组每一个元素的地址。 14. 算法的特点为有零个或多个输入,有一个或多个输出,当相同的输入时,其结果相同;算法 正确的程序最终一定会结束。15. 在 C 语言中,预处理命令行都以“#”开头;当需要时才用 #include; 预处理的作用就是实现宏定义和条件编译。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 语言程序可以实现

C语言知识点总结【完美版】

C语言最重要的知识点 总体上必须清楚的: 1)程序结构是三种: 顺序结构、选择结构(分支结构)、循环结构。 2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。 3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址. 4)bit是位是指为0 或者1。 byte 是指字节, 一个字节 = 八个位. 概念常考到的: 1、编译预处理不是C语言的一部分,不占运行时间,不要加分号。 C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。误的,一定不能出现分号。 3、每个C语言程序中main函数是有且只有一个。 4、在函数中不可以再定义函数。 5、算法:可以没有输入,但是一定要有输出。 6、break可用于循环结构和switch语句。 7、逗号运算符的级别最低,赋值的级别倒数第二。 第一章 C语言的基础知识 第一节、对C语言的基础认识 1、C语言编写的程序称为源程序,又称为编译单位。 2、C语言书写格式是自由的,每行可以写多个语句,可以写多行。 3、一个C语言程序有且只有一个main函数,是程序运行的起点。

第二节、 2、每个C语言程序写完后,都是先编译,后链接,最后运行。(.c---→.obj---→.exe)这个过程中注意.c和.obj文件时无法运行的,只有.exe文件才可以运行。(常考!)(程序编辑-程序编译-程序连接-程序运行) 第三节、标识符 1、标识符(必考内容): 合法的要求是由字母,数字,下划线组成。有其它元素就错了。 并且第一个必须为字母或则是下划线。第一个为数字就错了 2、标识符分为关键字(保留字)、预定义标识符、用户定义标识符。关键字:不可以作为用户标识符号。main define scanf printf 都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。(关键字都是小写) 预定义标识符:背诵define scanf printf include。记住预定义标识符可以做为用户标识符。 用户标识符:基本上每年都考,详细请见书上习题。 第四节:进制的转换 十进制转换成二进制、八进制、十六进制。 二进制、八进制、十六进制转换成十进制。 第五节:整数与实数 1)C语言只有八、十、十六进制,没有二进制。但是运行时候,所

计算机二级考试C语言知识点总结

计算机二级考试C语言知识点总结 (完全针对考试大纲) 概述 总体上必须清楚的: 1)程序结构是三种: 顺序结构, 循环结构(三个循环结构), 选择结构(if 和switch) 2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。 3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址. 4)bit是位是指为0 或者1。byte 是指字节, 一个字节= 八个位. 5)一定要记住二进制如何划成十进制。 概念常考到的: 1)、编译预处理不是C语言的一部分,不再运行时间。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。 2)、每个C语言程序中main函数是有且只有一个。 3)、在函数中不可以再定义函数。 4)、算法的是一定要有输出的,他可以没有输入。 5)、break可用于循环结构和switch语句。 6)、逗号运算符的级别最低。 第一章 1)合法的用户标识符考查: 合法的要求是由字母,数字,下划线组成。有其它元素就错了。 并且第一个必须为字母或则是下划线。第一个为数字就错了。 关键字不可以作为用户标识符号。main define scanf printf 都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。

2)实型数据的合法形式: 2.333e-1 就是合法的,且数据是2.333×10-1。 考试口诀:e前e后必有数,e后必为整数。. 3)字符数据的合法形式:: '1' 是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。 '0' 的ASCII数值表示为48,'a' 的ASCII数值是97,'A'的ASCII数值是65。 4)整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节: 考试时候一般会说,在16位编译系统,或者是32位系统。碰到这种情况,不要去管,一样做题。掌握整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节就可以了。 5)转义字符的考查: 在程序中int a = 0x6d,是把一个十六进制的数给变量a 注意这里的0x必须存在。 在程序中int a = 06d, 是一个八进制的形式。 在转义字符中,’\x6d’才是合法的,0不能写,并且x是小写。 ‘\141’是合法的。 ‘\108’是非法的,因为不可以出现8。 转义字符意义ASCII码值(十进制) \a 响铃(BEL) 007 \b 退格(BS) 008 \f 换页(FF) 012 \n 换行(LF) 010 \r 回车(CR) 013 \t 水平制表(HT) 009 \v 垂直制表(VT) 011 \\ 反斜杠092 \? 问号字符063 \' 单引号字符039 \" 双引号字符034

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;预处理的作用就是实现宏定义和条件编译。 16.当数组元素的下标超出了定义的下标范围时,系统不给出“下 标越界”的字样,而是得出错误的答案,因此在编程时务必检查下标是否越界。 17.共用体变量不能作为函数的参数,也不能使函数带回共用体 变量。 18.指向函数的指针变量的定义形式为:数据类型(*指针变量) ();,因此其为指向函数的指针变量。 19.用C语言编写的代码程序是源程序,只有通过编译、连接才 能进行。 20.在说明为static时,其生存期得到延长,而其作用域并没有改

C语言循环知识点总结

循环 特点:在满足特定条件的情况下,反复执行某程序段。 While循环 While循环的格式是这样的:while(条件表达式){语句代码},意思是满足括号内的条件时,执行花括号内的语句代码。或者更专业一点来说,当括号内的条件表达式返回值为真时,执行花括号内的代码,一直到条件表达式的返回值为假时,跳出循环。 While循环很容易出现死循环这种状况,就是因为忘记写了“增量”这个东西。 上面的代码就是少了count++,这个增量,所以,条件表达式一直满足,就一直执行,就造成了死循环。 此时,应该这样改进:

一些例子:

Do-while循环 与while不同的只有一个地方,就是先执行一遍代码,再进行判断。也就是说,不管你while的条件表达式成不成立,返回值为不为假,我都执行一遍循环体的代码。 随机数arc4random() 产生随机数的方法,arc4random()可以产生int范围内的任意一个随机数,包括有正数和负数,为什么会出现负数呢?因为,在存储的时候,生成的数的最高位的数字为1,此时,会认为这个1是符号位的负,因此会出现负数。这时,我们应该把这些情况避免掉,在输出之前,用unsigned 来定义一个变量来接收产出的随机数;在输出的过程中,占位符不再用%d,而是用%u来代替。 另一个值得注意的是,随机数产生的时候,数字会很大,而我们在代码过程中,不需要这么大的数,此时,想要把这个数减小,可以用取余的办法来限制。

在产生一个随机数的时候,可以让它在固定的区间内产生,那么就会用到这个公式: 若是规定在负空间生成随机数,那么就将公式改成: 一些例子:

(完整版)谭浩强C语言知识点总结

C语言最重要的知识点 总体上必须清楚的: 1)程序结构是三种:顺序结构、选择结构(分支结构)、循环结构。 2)读程序都要从main()入口,然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。 3)计算机的数据在电脑中保存是以二进制的形式?数据存放的位置就是他的地址? 4)b it是位是指为0或者1。byte 是指字节,一个字节=八个位. 概念常考到的: 1、编译预处理不是C语言的一部分,不占运行时间,不要加分号。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。 2、define PI 3.1415926; 这个写法是错误的,一定不能出现分号。 3、每个C语言程序中main函数是有且只有一个。 4、在函数中不可以再定义函数。 5、算法:可以没有输入,但是一定要有输出。 6、break可用于循环结构和switch语句。 7、逗号运算符的级别最低,赋值的级别倒数第二。 第一章C语言的基础知识 第一节、对C语言的基础认识 1、C语言编写的程序称为源程序,又称为编译单位。 2、C语言书写格式是自由的,每行可以写多个语句,可以写多行。 3、一个C语言程序有且只有一个main函数,是程序运行的起点。 第二节、熟悉VC++ 1、VC是软件,用来运行写的C语言程序。 2、每个C语言程序写完后,都是先编译,后链接,最后运行。(.c--- .obj--- .exe )这 个过程中注意.c和.obj文件时无法运行的,只有.exe文件才可以运行。(常考!) 第三节、标识符 1、标识符(必考内容): 合法的要求是由字母,数字,下划线组成。有其它元素就错了。 并且第一个必须为字母或则是下划线。第一个为数字就错了 2、标识符分为关键字、预定义标识符、用户标识符。 关键字:不可以作为用户标识符号。main define sca nf printf 都不是关键字。迷惑 你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。 预定义标识符:背诵defi ne scanf printf in clude 。记住预定义标识符可以做为用户 标识符。 用户标识符:基本上每年都考,详细请见书上习题。 第四节:进制的转换 十进制转换成二进制、八进制、十六进制。 二进制、八进制、十六进制转换成十进制。 第五节:整数与实数 1)C语言只有八、十、十六进制,没有二进制。但是运行时候,所有的进制都要转换成二进制来进行处理。(考过两次) a 、C语言中的八进制规定要以0开头。018的数值是非法的,八进制是没有8的,逢 8进1。

全国计算机等级考试二级c语言公共基础知识总结

全国计算机等级考试二级c语言公共基础知识总结 第一章数据结构与算法 1.1算法 算法:是指解题方案的准确而完整的描述。 算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。 算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。特征包括: (1)可行性; (2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解 释,不允许有多义性; (3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后 终止,包括合理的执行时间的含义; (4)拥有足够的情报。 算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。 指令系统:一个计算机系统能执行的所有指令的集合。 基本运算包括:算术运算、逻辑运算、关系运算、数据传输。 算法的控制结构:顺序结构、选择结构、循环结构。 算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法' 算法复杂度:算法时间复杂度和算法空间复杂度。 算法时间复杂度是指执行算法所需要的计算工作量。 算法空间复杂度是指执行这个算法所需要的内存空间。 1.2数据结构的基本基本概念 数据结构研究的三个方面: (1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构; (2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的 存储结构; (3)对各种数据结构进行的运算。 数据结构是指相互有关联的数据元素的集合。 数据的逻辑结构包含: (1)表示数据元素的信息; (2)表示各数据元素之间的前后件关系。

数据的存储结构有顺序、链接、索引等。 线性结构条件: (1)有且只有一个根结点; (2)每一个结点最多有一个前件,也最多有一个后件。 非线性结构:不满足线性结构条件的数据结构。 1.3线性表及其顺序存储结构 线性表是由一组数据元素构成,数据元素的位置只取决于自己的序号,元素 之间的相对位置是线性的。 在复杂线性表中,由若干项数据元素组成的数据元素称为记录,而由多个记 录构成的线性表又称为文件。 非空线性表的结构特征: (1)且只有一个根结点a1,它无前件; (2)有且只有一个终端结点an,它无后件; (3)除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只 有一个后件。结点个数n称为线性表的长度,当n=0时,称为空表。 线性表的顺序存储结构具有以下两个基本特点: (1)线性表中所有元素的所占的存储空间是连续的; (2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。 ai的存储地址为:ADR(ai)=ADR(a1)+(i-1)k, ,ADR(a1)为第一个元素的地 址,k代表每个元素占的字节数。 顺序表的运算:插入、删除。(详见14--16页) 1.4栈和队列 栈是限定在一端进行插入与删除的线性表,允许插入与删除的一端称为栈 顶,不允许插入与删除的另一端称为栈底。 栈按照“先进后出” (FILO)或“后进先出”(LIFO)组织数据,栈具有记忆作用。用top表示栈顶位置,用bottom表示栈底。 栈的基本运算:(1)插入元素称为入栈运算;(2)删除元素称为退栈运算; (3)读栈顶元素是将栈顶元素赋给一个指定的变量,此时指针无变化。 队列是指允许在一端(队尾)进入插入,而在另一端(队头)进行删除的线 性表。Rear指针指向队尾,front指针指向队头。 队列是“先进行出” (FIFO)或“后进后出”(LILO)的线性表。 队列运算包括(1)入队运算:从队尾插入一个元素;(2)退队运算:从队头删

C语言知识点总结(正式版)

C语言知识点总结 C语言知识点总结 (1) 一、常量 (2) 二、标识符 (2) 三、变量 (2) 四、表达式 (3) 五、输入输出函数 (4) 六、C语言的语句 (5) 七、C程序的基本结构 (5) 八、选择结构语句 (5) if(表达式) 语句1 else 语句2 (5) 条件运算符表达式1? 表达式2 : 表达式3 (6) switch语句 (6) 九、循环结构 (6) for循环语句 (6) while循环语句do while循环语句 (6) 十、数组 (7) 十一、字符串函数 (7) 十二、函数 (8) 十三、指针 (9) 十四、宏定义 (10) 十五、结构体,共用体,枚举类型 (10) 十六、Turbo C的使用 (12)

一、常量 数字常量 i.普通数字:1,35,2.7 ii.指数形式:2.45e-2等价于2.45*10-2注意e大小写皆可,e前面的数字不能省,就算是1也不能省,后面的数字一定要是整数iii.长整型,单精度浮点型:3235L,32.5F 分别表示3235是长整型数据, 32.5是单精度浮点型左,若不写上L,F则表示3235是整型,32.5是 双精度浮点型,L,F大小写皆可 字符常量 i.普通字符常量:用单引号把一个字符括起来,如?A?,?@? ii.转义字符常量:一对单引号括起来并以“\”开头的字符序列,如?\n?(回车)、?\123?(8进制123对应的字符), ?\x23?(16进制23对应的字符) 字符串常量 用一对双引号把一个字符序列括起来,如“ABCef”,系统存放字符串 常量,每个字符分配一个字节,各字符所占字节紧邻,并且字符串末尾 会给再开一个字节里面放一个’\0’做为结束标志。 符号常量 定义格式#define 符号常量名符号常量值,如#define N 20则定义了符 号常量N,其值为20,注意符号常量名和符号常量值之间是用空格隔开,而不是写上=号,#define和符号常量名之间也有空格的。 二、标识符 命名规则 以数字,字母,下划线这三类字符组成,但只能以字母或下划线开头, 而不能也数字开头,另外不能将关键字做为标识符。32个关键字表在 P365附录B 变量名,函数名,符号常量名全都是标识符 三、变量 变量的定义格式 类型名变量名; 如int a;定义了一个整型常量a。变量名是由人类随便定义的,符合命 名规则的前提下,爱写啥就写啥。所以什么flag,cc,y1或者函数名fun,find 等全部是自定的用来做为名字而已,没有更特别的意义。 类型名 int整型,long长整型:用于存放整数,只是数值范围不同 float单精度浮点型double双精度浮点型:用于存放实数,数值范围, 精度不同 char字符型:用于存放字符 变量赋值,初始化 int a=3;定义的同时初始化 a=6*9;定义后在程序中进行赋值 变量的值

C语言报错整理大全

C语言错误代码及错误信息错误释义error 1: Out of memory 内存溢出 error 2: Identifier expected 缺标识符 error 3: Unknown identifier 未定义的标识符 error 4: Duplicate identifier 重复定义的标识符 error 5: Syntax error 语法错误 error 6: Error in real constant 实型常量错误 error 7: Error in integer constant 整型常量错误 error 8: String constant exceeds line 字符串常量超过一行 error 10: Unexpected end of file 文件非正常结束 error 11: Line too long 行太长 error 12: Type identifier expected 未定义的类型标识符 error 13: Too many open files 打开文件太多 error 14: Invalid file name 无效的文件名 error 15: File not found 文件未找到 error 16: Disk full 磁盘满 error 17: Invalid compiler directive 无效的编译命令 error 18: Too many files 文件太多 error 19: Undefined type in pointer def 指针定义中未定义类型 error 20: Variable identifier expected 缺变量标识符 error 21: Error in type 类型错误 error 22: Structure too large 结构类型太长 error 23: Set base type out of range 集合基类型越界 error 24: File components may not be files or objectsfile分量不能是文件或对象error 25: Invalid string length 无效的字符串长度 error 26: Type mismatch 类型不匹配 error 27:error 27:Invalid subrange base type 无效的子界基类型 error 28:Lower bound greater than upper bound 下界超过上界 error 29:Ordinal type expected 缺有序类型 error 30:Integer constant expected 缺整型常量 error 31:Constant expected 缺常量

C语言知识点总结完美版

C语言最重要的知识点总体上必须清楚的: 1)程序结构是三种: 顺序结构、选择结构(分支结构)、循环结构。 2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。 3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址. 4)bit是位是指为0 或者1。 byte是指字节, 一个字节 = 八个位. 概念常考到的: 1、编译预处理不是C语言的一部分,不占运行时间,不要加分号。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。 2、#define PI ;这个写法是错误的,一定不能出现分号。 3、每个C语言程序中main函数是有且只有一个。 4、在函数中不可以再定义函数。 5、算法:可以没有输入,但是一定要有输出。 6、break可用于循环结构和switch语句。 7、逗号运算符的级别最低,赋值的级别倒数第二。 第一章 C语言的基础知识 第一节、对C语言的基础认识 1、C语言编写的程序称为源程序,又称为编译单位。 2、C语言书写格式是自由的,每行可以写多个语句,可以写多行。 3、一个C语言程序有且只有一个main函数,是程序运行的起点。 第二节、熟悉vc++ 1、VC是软件,用来运行写的C语言程序。 2、每个C语言程序写完后,都是先编译,后链接,最后运行。(.c---?.obj---?.exe)这个过程中注意.c和.obj文件时无法运行的,只有.exe文件才可以运行。(常考!)

第三节、标识符 1、标识符(必考内容): 合法的要求是由字母,数字,下划线组成。有其它元素就错了。 并且第一个必须为字母或则是下划线。第一个为数字就错了 2、标识符分为关键字、预定义标识符、用户标识符。 关键字:不可以作为用户标识符号。main define scanf printf 都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。 预定义标识符:背诵define scanf printf include。记住预定义标识符可以做为用户标识符。 用户标识符:基本上每年都考,详细请见书上习题。 第四节:进制的转换 十进制转换成二进制、八进制、十六进制。 二进制、八进制、十六进制转换成十进制。 第五节:整数与实数 1)C语言只有八、十、十六进制,没有二进制。但是运行时候,所有的进制都要转换成二进制来进行处理。(考过两次) a、C语言中的八进制规定要以0开头。018的数值是非法的,八进制是没有8的,逢8进1。 b、C语言中的十六进制规定要以0x开头。 2)小数的合法写法:C语言小数点两边有一个是零的话,可以不用写。 在C语言中可写成1. 在C语言中可以写成.1。 3)实型数据的合法形式: a、就是合法的,且数据是×10-1。

c语言知识点总结

二级C语言基础知识点总结 第一章 1,函数是从主函数(main())开始执行,回到主函数(main())结束; 2,一个程序的编译是从第一个函数(语句)开始,到最后一个函数(语句)结束; 第二章 1,算法的特性:有穷性,确定性,有一个或者0个输入,有一个或者多个输出;有效性2,算法(程序)的几个结构:选择结构,顺序结构,循环结构 第三章 1,int类型是2个字节,float是4个字节,dooble是8个字节 2,数据类型分为:基本类型(整型,实型,字符型,枚举型),指针类型,构造类型(结构体类型,数组类型,共用体类型),空类型(空类型合法哦,不要忘记了这个特殊哦)3,变量的地址是确定的,变量变的地方只是地址里面的值。 4,用户标志符,由数字,字母,下划线构成,第一个不能是数字,但是32个关键字除外。5,注意int的最大表示范围是-32768――+32767,当超过这个范围的时候,即以%d输出+32768时结果为-32768 6,长整形(long)表示方法是在数字后面加L,如果一个变量a=3,那么表示的是一个整形的3,如果是a=3L,那么就是长整形的3;当分别以%o,%ld,%x (8进制,长整形,16进制)输出的时候,结果没有前面的0,0X,和后面的L 例:int a=075,b=ox14;long int c=5L; printf(“%o,%x,%ld”,a b c); 结果为(75,14,5) 7,当出现’\0’的什么时候为结束,什么时候为八进制的转义字符:当’\0’后面有1-7之间的数字的时候为转义字符;其他的时候为字符串结束标志,注意转义字符有哪些(参考书p8) 这样一个例题若strlen(”abc\089”)=3 strlen(“abc\012”)=4 8,强制转换不会改变一个变量的值,只是改变其作用的那个表达式的值。 9,++,――,当++,——,在变量后面的时候表示在本次运算的时候不会改变,在下次引用或者参与运算的时候才会自变;当++,――,在变量的前面的时候则是在本次运算就会发生自变(顺便掌握++,――结合性是右结合,若i+++j等价于(i++)+j; 10,复合运算符要注意当等号后面接的是表达式的时候要把表达式看成一个整体即x *=y+8等价于x=x*(y+8),y+8是一个整体 第四章 1,格式输入和输出的时候,注意格式。要严格按照题目的格式进行操作。(在做题的时候尤其是读程序写结果的时候要细心哈!) 2,%d,%md,%m..nd, %e,以及相应的几种格式是什么意思,参考书p13 第五章 1,关系运算符,>,<,<=,>=,= =,!= ,==和!=优先级最低,主意=与==的区别:=是赋值的意思,表达式的值是对变量赋的值,==是关系运算符,关系运算表达式的值为0或者1. 2,逻辑运算符,&& ,||,!在这几个中优先级!> && > ||,优先级是体现在结合性上而不是运算的先后性上。例如 a=b=c=1;d=++a||++b&&++c在这个里面&&最高那就是加粗部分先看成一个整体,运算顺序还是从++a开始,即做完这个运算后,可以依次判断出后边的运算式子没有必要计算了,所以d=1,a=2,b=1,c=1

《C语言程序设计》知识点总结知识讲解

《C语言程序设计》知识点总结

C语言最重要的知识点 总体上必须清楚的: 1)程序结构是三种: 顺序结构、选择结构(分支结构)、循环结构。 2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。 3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是它的地址. 4)bit是位是指为0 或者1。 byte是指字节, 一个字节 = 八个位. 概念常考到的: 1、编译预处理不是C语言的一部分,不占运行时间,不要加分号。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。 2、define PI 3.1415926; 这个写法是错误的,一定不能出现分号。 3、每个C语言程序中main函数是有且只有一个。 4、在函数中不可以再定义函数。 5、算法:可以没有输入,但是一定要有输出。 6、for循环中for语句写成 for(i=0; i<100; i++); ,这个写法是有问题的,for的后面如果出现分号,相当于for循环体是空的。 7、break可用于循环结构和switch语句。 8、逗号运算符的级别最低,赋值的级别倒数第二。 第一章 C语言的基础知识 第一节、对C语言的基础认识 1、C语言编写的程序称为源程序,又称为编译单位。 2、C语言书写格式是自由的,每行可以写多个语句,可以写多行。 3、一个C语言程序有且只有一个main函数,是程序运行的起点。 第二节、熟悉vc++ 1、VC是软件,用来运行写的C语言程序。 2、每个C语言程序写完后,都是先编译,后链接,最后运行。(.c--- →.obj---→.exe)这个过程中注意.c和.obj文件时无法运行的,只有.exe文件才可以运行。 第三节、标识符 1、标识符 合法的要求是由字母,数字,下划线组成。有其它元素就错了。 并且第一个必须为字母或则是下划线。第一个为数字就错了 2、标识符分为关键字、保留标识符、用户标识符。

C语言数组知识点总结

C语言数组知识点总结内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128)

数组定义:数组是有序的并且具有相同类型的数据的集合。 一维数组 1、一般形式:类型说明符数组名[常量表达式];例如: int a[10]; 元素为 a[0]----a[9]. 2、常量表达式中不允许包含变量,可以包含常量或符号常量。 3、数组元素下标可以是任何整型常量、整型变量或任何整型表达式。 4、可以对数组元素赋值,数组元素也可以参与运算,与简单变量一样使用。 5、使用数值型数组时,不可以一次引用整个数组,只能逐个引用元素。 6、需要整体赋值时只可以在定义的同时整体赋值。如 int a[10]={0,1,2,3,4,5,6,7,8,9};正确。 int a[10]; a[10]={0,1,2,3,4,5,6,7,8,9};错误。 7、可以只给一部分元素赋值。例如: int a[10]={5,8,7,6};后面没有赋值的元素值默认为0。 8、对全部数组元素赋值时可以不指定数组长度,例如: int a[10]={0,1,2,3,4,5,6,7,8,9};可以写成 int a[]={0,1,2,3,4,5,6,7,8,9}; 但是,既不赋初值,也不指定长度是错误的。例如:int a[];错误。 二维数组 1、一般形式:类型说明符数组名[常量表达式1][常量表达式2];例如: int a[3][4];可以看成是包含3个一维数组,每个一维数组里包含4个元素。 一共3*4=12个元素。

所有元素为 a[0][0],a[0][1],a[0][2],a[0][3] a[1][0],a[1][1],a[1][2],a[1][3] a[2][0],a[2][1],a[2][2],a[2][3] 2、与一维数组一样元素下标可以是是任何整型常量、整型变量或任何整型表达式。 3、需要整体赋值时只可以在定义的同时整体赋值。例如: int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};正确。 int a[3][4]; a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};错误。 4、可以把所有数据写在一个花括号内。例如: int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};正确。 5、可以只对部分元素赋值。例如: int a[3][4]={{1},{5},{9}};其余未赋值的元素默认为0。 int a[3][4]={{1},{5,6}};可以看成是int a[3][4]={{1,0,0,0},{5,6,0,0},{0,0,0,0}}; 6、对全部数组元素赋值时可以省略第一维长度,第二维不可以省略。例如: a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; 可以写成a[][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; 或者a[][4]={1,2,3,4,5,6,7,8,9,10,11,12}; 字符数组 1、定义:char a[10];字符数组a长度为10。每个元素只能存放一个字符。例如: a[0]='h';a[1]='a';a[2]='p';…… 2、初始化:

相关主题