资源预览内容
第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
第9页 / 共12页
第10页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1 国家计算机二级考试知识点复习全国计算机等级考试C语言与公共基础知识部分第一部分 C 语言知识复习资料第一章 C 语言基本知识【考点 1】C程序用 C语言编写的程序称为C语言源程序,源程序文件的后缀名为“.c ” 。源程序经编译后生成后缀名为 “.obj ”的目标文件, 再把目标文件与各种库函数连接起来,生成“ .exe ”可执行文件。 C语言有三种基本结构:顺序结构、选择结构、循环结构。【考点 2】main 函数又称主函数,是C 程序的入口。 main 后面跟一对小括号和一对花括号,花括号括起来的部分称为main 函数的函数体。一个C程序从 main 函数开始执行,到main 函数体执行完结束,而不论main 函数在整个程序中的位置如何。每一个程序有且仅有一个 main 函数,其他函数都是为main 函数服务的。【考点 3】存储形式计算机在电脑中保存数据是采用二进制形式,由0 或 1 构成的二进制称为位(bit ) ,八个位构成一个字节(Byte) ,1 个 Byte=8 个 bit 。二进制、八进制、十六进制转化为十进制采用乘法,十进制转化为二进制、 八进制、十六进制采用除法。数据的存放位置就是它的地址。【考点 4】注释是对程序的说明,可出现在程序中任意合适的地方,注释从“/* ”开始到最近一个“*/ ”结束,其间任何内容都不会被计算机执行,注释不可以嵌套。【考点 5】书写格式每条语句的后面必须有一个分号,分号是语句的一部分。一行内可写多条语句,一个语句可写在多行上。【考点 6】标识符名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 12 页 - - - - - - - - - 2 是标识名字的有效字符序列,可以理解为C程序中的单词。标识符的命名规则是:(1)标识符只能由字母、数字和下划线组成,字母区分大小写。(2)标识符的第一个字符必须是字母或下划线,不能为数字。C语言标识符分如下3 类(1)关键字。它们在程序中有固定的含义, 不能另作他用。 如 int 、for 、switch等。(2)预定义标识符。预先定义并具有特定含义的标识符。如define 、include等。(3)用户标识符。用户根据需要定义的标识符,符合命名规则且不与关键字相同。【考点 7】常量与变量常量是指在程序运行过程中, 其值不能改变的量。 常量分为整型常量、 实型常量、字符常量、 字符串常量、 符号常量 5 种。在程序运行过程中其值可以改变的量称为变量。 C语言中没有字符串变量。存放字符串使用字符数组。【考点 8】整型数据整型常量有十进制、八进制、十六进制三种表示形式,没有二进制形式。八进制整型常量加前导数字0,十六进制常量加前导0X,八进制常量中不会出现8。整型变量可分为基本整型(int ) 、短整型( short ) 、长整型( long ) 、和无符号整型( unsigned ) 。一个基本整型占4 个字节。其它类型的整型占用字节数和取值范围详见教材第9 页。【考点 9】实型数据实型数据有两种表示形式:小数形式和指数形式。掌握判定指数形式合法性。口诀: E前 E后必有数, E后必须为整数。实型变量分为单精度型(float )和双精度型( double ) ,单精度型占四个字节。【考点 10】算术运算名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 12 页 - - - - - - - - - 3 算术运算符一共有 +、 *、/ 、% 这五个。求余运算要求运算对象只能为整型,除法运算符两边运算对象都为整型时,运算结果也为整型即舍掉小数部分。【考点 11】强制类型转换将一个运算对象转换成指定类型,格式为(类型名)表达式,注意小括号位置。【考点 12】赋值赋值运算符为“ =” ,不同于关系等于“ = =” 。赋值表达式格式为:变量名=表达式,赋值运算符左边必须为变量, 赋值运算是把赋值运算符右边表达式的值赋给左边变量。复合赋值运算符是将算术运算符或位运算符与赋值运算符组合在一起组成的运算符,掌握复合赋值表达式转化为赋值表达式的方法。如n+=100 可转化为n=n+100。【考点 13】自加自减运算自加运算符“ +”与自减运算符“ - ”是单目运算符,运算对象必须是变量。自增自减运算分前缀运算和后缀运算,它们所对应的表达式的值是有区别的,如j=i+; 等价于 j=i;i=i+1;而 j=+i; 等价于 i=i+1;j=i;。口诀:加加在前先加后用,加加在后先用后加。【考点 14】逗号运算逗号运算符运算优先级最低,可将多个表达式构成一个新的表达式。第二章 顺序结构【考点 1】运算符、表达式、语句运算对象加运算符构成表达式, 表达式加分号构成表达式语句, 运算对象可以是表达式、常量、变量。如赋值运算符加运算对象构成赋值表达式,赋值表达式加分号又可构成赋值语句。【考点 2】运算符的优先级和结合顺序运算符按参加运算的对象数目可分为单目运算符、双目运算符和三目运算符。 初等运算符的优先级别最高,然后依次是单目运算符、算术运算符、关系运算符、逻辑运算符(除逻辑非!) 、条件运算符、赋值运算符、逗号运算符。位运算符优先级介于算术运算符与逻辑运算符之间。结合顺序大多为自左向右, 而自右向左名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 12 页 - - - - - - - - - 4 的有三个:单目运算符、条件运算符和赋值运算符。【考点 3】printf函数格式为:printf(输出控制,输出列表 )。输出控制是用一对双引号括起来的,包含格式说明和原样信息。输出列表包含若干输出项。【考点 4】printf函数中格式说明%d对应整型,%f对应单精度实型, %c对应字符型,%o对应八进制无符号整型, %x对应无符号十六进制整型,%u对应无符号整型, %e对应指数型, %s对应字符串型。可在 % 和格式字符之间加一个数来控制数据所占的宽度和小数位数。【考点 5】scanf 函数输入项要求带取地址符 &。当用键盘输入多个数据时,数据之间用分隔符。分隔符包括空格符、制表符和回车符,但不包括逗号。【考点】 6 如何交换两个变量要使用中间变量,语句为:t=x; x=y; x=t;。第三章 选择结构【考点 1】关系运算C语言用非 0 表示逻辑真,用 0 表示逻辑假。关系运算符有6 个,分别是 ,=,=,=,!= ,前四种优先级高于后两种。关系表达式真时为1,假时为 0。注意 abc 是不可以的,可用 (ab)&(bc) 来表示。【考点 2】逻辑运算逻辑运算符共有 3 个:逻辑与(& ) ,逻辑或(| ) ,逻辑非(! ) 。注意短路现象,例 a+|b+ ,如果表达式 a+的值非零,则表达式b+不再执行。【考点 3】if语句可以单独出现,也可以与else 匹配出现。 if语句可以嵌套,这时else 总是与离它最近的且没有与else 匹配的 if匹配。【考点 4】条件运算是唯一的三目运算符, 格式为:表达式 1?表达式 2: 表达式 3。表达式 1 值为非 0时,整个表达式值为表达式2 的值,表达式 1 值为 0 时,整个表达式值为表达式名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 12 页 - - - - - - - - - 5 3 的值。口诀:真前假后【考点 5】switch 语句格式及执行过程详见教材P33,要注意每条 case 后有没有 break 语句的区别。还要注意 switch 后小括号里面的表达式不能为实型, case 后表达式不能有变量。口诀: switch 表不为实, case 表不为变。第四章循环结构【考点 1】三种循环结构三种循环结构分别为: while ,do-while ,for ,三种结构的格式及执行顺序详见教材第 36、39、40 页。注意 for 循环中的小括号中必须是两个分号;循环一定要有结束条件,否则成了死循环;do-while()循环最后的 while();后一定要有分号。【考点 2】break 与 continue break 是终止所在整个循环, 而 continue 是提前结束本轮循环。 break 语句可出现在循环结构与 switch 语句中, continue 只出现在循环结构中。【考点 3】循环的嵌套就是循环里面还有循环, 计算要一层一层分析, 一般只考查两层嵌套, 循环嵌套通常是处理二维数组。【考点 4】循环结构的复习循环结构是重点,笔试所占分值一般在13 分左右,在上机考试中也是必考点,应用性很强。要求学员重点理解并多加练习,领会掌握。第五章 字符型数据位运算【考点 1】字符常量一个字符常量用一对单引号括起来,字符常量只能包括一个字符,ab是非法的。空格常用来表示。字符常量可用对应的ASCII 码表示,需记住:0的 ASCII 码为 48, A的 ASCII 码为 65, a的 ASCII 码为 97。【考点 2】转义字符名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 12 页 - - - - - - - - - 6 一对单引号中以一个反斜线后跟一个特定字符或八进制、十六进制数来构成转义字符。比如 n 表示换行, 101 或x41 表示 ASCII 码为 65 的字符A 。【考点 3】字符型数据可以和整型数据相互转换如: 0-0=48 A+32=a char a=65;printf(“%d%c ”,a,a);结果为65A 【考点 4】位运算符C语言提供 6 种位运算符:按位求反 ,按位左移 ,按位与 &,按位异或 | ,按位或 。一般情况下需要先转化进制。异或运算的规则:0 异或 1 得到 1,0 异或 0 得到 0,1 异或 1 得到 0。可记为“相同为0,不同为 1” 。【考点 5】putchar 与 getchar 函数可用于输出或输入单个字符,这两个函数是stdio.h文件中的库函数,它们是printf与 scanf 函数的简化。第六章 函数【考点 1】函数的定义函数是具有一定功能的一个程序块。 函数的首部为:函数类型函数名(类型 1 形参 1,类型 2 形参 2,) 。在函数定义中不可以再定义函数,即不能嵌套定义函数。函数类型默认为int型。【考点 2】库函数调用 C语言标准库函数时要包含include命令, include命令行以 #开头,后面是” ”或括起来的后缀为” .h ”的头文件。以 #开头的一行称为编译预处理命令行,编译预处理不是C语言语句,不加分号,不占运行时间。【考点 3】函数的返回值函数通过 return语句返回一个值,返回的值类型与函数类型一样。return语句只执行一次,执行完或函数体结束后退出函数。【考点 4】函数的声明函数要“先定义后调用”,或“先声明再调用后定义”。函数的声明一定要有函数名、函数返回值类型、函数参数类型,但不一定要有形参的名称。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 12 页 - - - - - - - - - 7 【考点 5】函数的调用程序从上往下执行, 当碰到函数名后, 把值传给调用函数, 当程序得到了返回值或调用函数结束,再顺序往下执行。【考点 6】函数的参数及值传递形式参数简称形参,是定义函数时函数名后面括号中的参数。实在参数简称实参,是调用函数时函数名后面括号中的参数。实参和形参分别占据不同的存储单元。实参向形参单向传递数值。“传值”与“传址”的区别:传数值的话,形参的变化不会改变实参的变化。传地址的话,形参的变化就有可能改变实参所对应的量。【考点 7】函数的递归调用函数直接或间接地调用自己称为函数的递归调用。递归调用必须有一个明确的结束递归的条件。在做递归题时可把递归的步骤一步步写下来,不要弄颠倒了。【考点 8】要求掌握的库函数sqrt()算术平方根函数, fabs() 绝对值函数, pow()幂函数, sin() 正弦函数第七章 指针【考点 1】指针变量指针变量是用来存储地址的, 而一般变量是存储数值的。 指针变量可指向任意一种数据类型,但不管它指向的数据占用多少字节,一个指针变量占用四个字节。【考点 2】指针变量的定义格式为:类型名 * 指针变量名。二维指针int *p;可以理解为基类型为 (int *)类型。【考点 3】指针变量的初始化指针变量在使用前必须要初始化,把一个具体的地址赋给它, 否则引用时会有副作用,如果不指向任何数据就赋“空值”NULL 。【考点 4】指针变量的引用&是取地址符, *是间接访问运算符, 它们是互逆的两个运算符。 在指针变量名前加间接访问运算符就等价它所指向的量。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 12 页 - - - - - - - - - 8 【考点 5】指针的运算*p+和(*p)+ 之间的差别:*p+是地址变化,(*p)+ 是指针变量所指的数据变化。一个指针变量加一个整数不是简单的数学相加,而是连续移动若干地址。 当两个指针指向同一数组时,它们可以比较大小进行减法运算。第八章 数组【考点 1】数组的定义数组是一组具有相同类型的数据的集合,这些数据称为数组元素。 格式为:类型名 数组名 常量表达式 。数组的所占字节数为元素个数与基类型所占字节数的乘积。【考点 2】数组的初始化第一维长度可以不写, 其它维必须写。int a=1,2;合法, int a3=2,3,4;合法, int a2=2,3,4;非法。数组初始化元素值默认为0,没有初始化元素值为随机。如在int a5=0,1,2;中,元素 a4 值为 0;而在 int a5; 中,元素 a4 值为一个不确定的随机数。【考点 3】元素的引用数组元素的下标从0 开始,到数组长度减1 结束。所以 int a5; 中数组最后一个元素是 a4 。要把数组元素看作一个整体,可以把a4 当作一个整型变量。【考点 4】二维数组数组 a23=1,2,3,4,5,6;中含 6 个元素,有 2 行 3 列。第一行为 a0 行,第 2 行为 a1 行,a0 、a1 叫行首地址,是地址常量。 *(a0+1)是第一行第一个元素往后跳一列, 即元素 a01值为 2,*(a0+3)是第一行第一个元素往后跳三个,即元素a10值为 4。【考点 5】行指针是一个指针变量,占四个字节,行指针指向一行连续数据,形式为:int (*p)2;,p 只能存放含有两个整型元素的一维数组的首地址。注意(*p) 两边的小括号不能省略,否则就成了指针数组,是若干指针元素的集合。【考点 6】数组名数组名是数组的首地址。 数组名不能单独引用, 不能通过一个数组名代表全部元素。数组名是地址常量,不能对数组名赋值,所以a+是错误的。但数组名可以名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 12 页 - - - - - - - - - 9 作为地址与一个整数相加得到一个新地址。【考点 7】元素形式的转换助 记 : “ 脱衣 服法 则” a2 变 成 *(a+2) , a23变 成 *(a+2)3再可 变成*(*(a+2)+3)。第九章 字符串【考点 1】字符串常量及表示字符串常量是由双引号括起来的一串字符,如”ABC ” 。在存储字符串时,系统会自动在其尾部加上一个空值 0 ,空值也要占用一个字节, 也就是字符串” ABC ”需要占四个字节。【考点 2】字符数组C语言没有字符串变量,只能采用字符数组来存储字符串。数组的大小应该比它将要实际存放的最长字符串多一个元素,从而存放0 。【考点 3】字符串赋值可以用下面的形式进行赋值: char str=”Hello! ”; 或 char *p;p= ”Hello! ” ; ,但不能用下面的形式: char str10;str=”Hello ”; 因为 str 是一个地址常量,不能进行赋值操作。【考点 4】字符串的输入与输出可以用 scanf 和 printf函数,如 scanf( ”%s ”,str);,也可用专门处理字符串的两个函数 gets 和 puts 函数,还可以对字符数组逐个元素进行赋值,但一定要在最后赋一个 0 。使用 gets 函数可以接收空格,使用puts 函数在最后输出一个换行。【考点 5】字符串函数要掌握的四个字符串函数: 字符串拷贝函数strcpy() , 求字符串长度函数strlen() ,字符串链接函数 strcat () ,字符串比较函数 strcmp() 。使用这些函数需在预处理部分包含头文件”string.h” 。字符串长度要小于字符数组的长度,例:char str10=”Hello ”;sizeof(str)的值为 10(数组长度),strlen(str)的值为 5(字符串长度)。这些函数是考试常用到的函数,大家一定要熟练应用这几个函数。第十章 结构体与共用体名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 12 页 - - - - - - - - - 10 【考点 1】结构体类型的说明结构体是若干个类型数据的集合, 结构体类型说明格式如下: struct 类型名 类型 1 成员名 1; 类型 2 成员名 2; ; ,以上整个部分是一个数据类型, 与整型的 int是同样地位。可用 typedef 把结构体类型替换成一个只有几个字母的简短标识符。【考点 2】结构体变量的定义结构体变量是用说明的结构体类型所定义的一个变量,与结构体类型不是一回事。一个结构体变量所占字节数为其所有成员所占字节数之和。如struct stuchar name10;int age; a,b;则表明定义了两个结构体变量a,b, 每个变量占 14 个字节。 a,b 与 int i,j;中的变量 i,j是同样地位。【考点 3】结构体成员的引用引用成员可用以下3 种方式:(1)结构体变量名 . 成员名; (2)指针变量名 -成员名: (3) (*指针变量名) . 成员名。点( . )称为成员运算符,箭头( -)称为结构指向运算符。【考点 4】链表链表是由一个个结点构成的, 一个结点就是一个结构体变量。 每个结点可以分为数据域与指针域两个部分, 数据域用来存放要存储的数据, 指针域用来指向下一个结点。链表是考试中的难点, 在 C语言和公共基础部分都会考到, 要领悟掌握。【考点 5】共用体共用体的使用格式与结构体相似,共用体定义的关键字为union ,共用体所占字节数是所有成员中字节数最大的那个。第十一章文件【考点 1】文件类型指针文件指针是一个指向结构体类型的指针,定义格式为:FILE *指针变量名。在使用文件时,都需要先定义文件指针。【考点 2】文本文件与二进制文件文本形式存放的是字符的ASCII 码,二进制形式存放的是数据的二进制。例如“100” 如果是文本形式就是存储 1 、 0 、 0 三个字符的 ASCII 码 (00110001 00110000 00110000) ,如果是二进制形式就把100 转化成二进制( 01100100) 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 12 页 - - - - - - - - - 11 【考点 3】打开文件文件的打开形式如下: FILE *fp; fp=fopen(“c:lab.c”, ”rb”); 。fopen函数的前面一部分为文件名, 后面一部分为文件的使用方式。 打开方式详见教材第 127 页,其中 r 代表读, w代表写, a 代表添加, b 代表二进制位的。【考点 4】文件函数判断文件结束 feof函数,移动文件指针位置fseek 函数,获得文件位置ftell函数,文件位置移到开头rewind 函数,文件字符输入输出fgetc函数和 fputc函数,文件输入输出fscanf函数和 fprintf函数,文件字符串输入输出fgets函数和 fputs 函数,读写二进制文件fread 函数和 fwrite函数。以上函数要求知道格式会用, 清楚是用于二进制文件还是文本文件,要把教材文件这章仔细复习下,不要在考试的时候把这些文件函数搞混了。第十二章深入讨论【考点 1】编译预处理凡以#开头的这一行,都是编译预处理命令行,编译预处理不加分号,不占运行时间。 宏替换仅是简单的文本替换, 如#define f(x) (x)*(x)和#define f(x) x*x 替换 f(2+2) 时就有区别,前者展开为 (2+2)*(2+2) ,后者为 2+2*2+2。如果源文件 f2.c中有#include ”f1.c ”可以理解为把源文件f1.c原样包含到f2.c中,使 f1.c和 f2.c融合到一起成为一个C程序编译。所以一个C程序必有主函数,但一个C源文件未必有主函数。【考点 2】标识符作用域局部变量是在函数内或复合语句内定义的变量,作用域为定义它的函数内。 局部变量有三种类型:自动auto,寄存器 register和静态 static。自动变量随着函数的使用与否创建消失;寄存器变量分配在cpu 中,没有内存地址;静态变量占用固定存储单元,在程序执行过程不释放,直到程序运行结束。全局变量是在函数外定义的变量,作用域从定义它的位置到整个源文件结束为止,生存期为整个程序运行期间。全局变量都是静态变量。【考点 3】动态存储分配malloc(size)用来创建连续 size 个字节存储区,返回值类型为 void *型。 malloc函数常用于动态创建链表结点,如int *p; p=(int *)malloc(sizeof(int);。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 12 页 - - - - - - - - - 12 calloc (n,size )创建 n 个同一类型的存储空间,可以理解为n 个 malloc 。free(p)释放动态分配的存储单元。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 12 页 - - - - - - - - -
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号