c语言考试基础知识点总结,计算机二级c语言知识点
c语言考试基础知识点总结,计算机二级c语言知识点详细介绍
本文目录一览: 计算机二级考试《C语言》知识点归纳(3)
第六章
指针变量的本质是用来放地址,而一般的变量是放数值的。
int *p 中 *p和p的差别:
*p可以当做变量来用;*的作用是取后面地址p里面的数值
p是当作地址来使用。
*p++ 和 (*p)++的之间的差别:改错题目中很重要
*p++是 地址会变化。
(*p)++ 是数值会要变化。
三名主义:(考试的重点)
数组名:表示第一个元素的地址。数组名不可以自加,
他是地址常量名。(考了很多次)
函数名:表示该函数的入口地址。
字符串常量名:表示第一个字符的地址。
第七章
1一维数组的重要概念:
对a[10]这个数组的讨论。
1、a表示数组名,是第一个元素的地址,也就是
元素a[10]的地址。
2、a是地址常量,所以只要出现a++,或者
是a=a+2赋值的都是错误的。
3、a是一维数组名,所以它是列指针,也就是
说a+1是跳一列。
对a[3][3]的讨论。
1、a表示数组名,是第一个元素的地址,也就是
元素a[10]的地址。
2、a是地址常量,所以只要出现a++,或者
是a=a+2赋值的都是错误的。
3、a是二维数组名,所以它是行指针,也就
是说a+1是跳一行。
4、a[0]、a[1]、a[2]也都是地址常量,不可以对
它进行赋值操作,同时它们都是列指针,a[0]+1,
a[1]+1,a[2]+1都是跳一列。
5、注意a和a[0] 、a[1]、a[2]是不同的,它们的
基类型是不同的。前者是一行元素,后三者是一列元素。
二维数组做题目的技巧:
如果有a[3][3]={1,2,3,4,5,6,7,8,9}这样的题目。
步骤一:把他们写成:
第一列 第二列 第三列
a[0]à 1 2 3 ->第一行
a[1]à 4 5 6—>第二行
a[2]à 7 8 9->第三行
步骤二:这样作题目间很简单:
*(a[0]+1)我们就知道是第一行的第一个元素往后
面跳一列,那么这里就是a[0][1]元素,所以是1。
*(a[1]+2)我们就知道是第二行的第一个元素往后面
跳二列。那么这里就是a[1][2]元素,所以是6。
一定记住:只要是二维数组的题目,一定是写成如
上的格式,再去做题目,这样会比较简单。
数组的初始化,一维和二维的,一维可以不写,
二维第二个一定要写
int a[]={1,2} 合法。 int a[][4]={2,3,4}合法。
但int a[4][]={2,3,4}非法。
二维数组中的行指针
int a[1][2];
其中a现在就是一个行指针,a+1跳一行数组元素。
搭配(*)p[2]指针
a[0],a[1]现在就是一个列指针。a[0]+1 跳一个数组
元素。搭配*p[2]指针数组使用
还有记住脱衣服法则:
a[2] 变成 *(a+2) a[2][3]变成 *(a+2)[3]再
可以变成 *(*(a+2)+3)
学生必看的计算机C语言重要考点
计算机二级考试C语言考点总结今年不考明年肯定考
第一章 C 语言基本知识
[考点 1]C程序
用C语言编写的程序称为C语言源程序,源程序文件的后缀名为“.c”。源程序经编译后生成后级名为“obi”的目标文件,再把目标文件与各种库函数连接起来,生成“.exe”可执行文件。C语言有种基本结构:顺序结构、选择结构、循环结构
[考点 2] main 函数
又称主函数,是C程序的人口。main后面跟一对小括号和一对花括号,花括号括起来的部分称为main函数的函数体。一个C程序从main函数开始执行,到main函数体执行完结束,而不论main函数在整个程序中的位置如何。每一个程序有且仅有一个main函数,其他函数都是为main函数服务的
[考点 3]存储形式
计算机在电脑中保存数据是采用二进制形式,由0或1构成的二进制称为位(bit八个位构成一个字节(Byte),1个yte-8个bit。二进制、八进制、十六进制转化为十进制采用乘法,十进制转化为二进制、八进制、十六进制采用除法。数据的存放位置就是它的地址。
[考点4]注释
是对程序的说明,可出现在程序中任意合适的地方,注释从“/*”开始到最近一个“*/”结束,其间任何内容都不会被计算机执行,注释不可以嵌套。
[考点 5] 书写格式
每条语句的后面必须有一个分号,分号是语句的一部分。一行内可写多条语句,一个语句可写在多行上
[考点 6] 标识符
是标识名字的有效字符序列,可以理解为C程序中的单词。标识符的命名规则是:
(1)标识符只能由字母 数字和下划线组成,字母区分大小写
(2)标识符的第一个字符必须是字母或下划线,不能为数字。
C语言标识符分如下3类
1关键字。它们在程序中有固定的含义,不能另作他用。如int、for、switch等。
2预定义标识符。预先定义并具有特定含义的标识符。如defineinclude等。
3用户标识符。用户根据需要定义的标识符。符合命名规则且不与关键字相同
[ 考点 7]常量与变量
常量是指在程序运行过程中,其值不能改变的量。常量分为整型常量、实型常量、字符常量、字符申常量、符号常量5种。在程序运行过中其值可以改变的量称为变量。C语言中没有字符申变量存放字符串使用字符数组
[考点 8]整型数据
整型常量有十进制、八进制、十六进制三种表示形式,没有二进形式。八进制整型常量加前导数字0,十六进制常量加前导X,八进制常量中不会出现8。整型变量可分为基本整型(int)、短整型(shot)、长整型(lang) 和无符号整型(unsigned)。个基本整型占4个字节。其它类型的整型占用字节数和取值范围详见教材第9页
[考点 9]实型数据
实型数据有两种表示形式:小数形式和指数形式。掌握判定指数形式合法性口诀:E前E后必有数,E后必须为整数。实型变量分为单精度型(float)和双精度型(double),单精度型占四个字节
[考点 10]算术运算
算术运算符一共有+、一 *1%这五个。求余运算要求运算对象只能为整型。除法运算符两边运算对象都为整型时,运算结果也为整型即舍掉小数部分。
[考点 11]强制类型转换
将一个运算对象转换成指定类型,格式为(类型名)表达式,注意小括号位置
[考点 12]赋值
赋值运算符为“=”,不同于关系等于“==”、值表达式格式为:变量名=表达式,赋值运算符左边必须为变量,赋值运算是把赋值运算符右边表达式的值赋给左边变量。复合赋值运算符是将算术运算符或位运算符与赋值运算符组合在一起组成的运算符,掌握复合赋直表达式转化为赋值表达式的方法。如n=100可转化为rFn+100。
[考点 13]自加自减运算
自加运算符“++”与自减运算符“_”是单目运算符,运算对象必须是变量。自增自减运算分前缀运算和后缀运算,它们所对应的表达式的值是有区别的,如=it+;等价于iii=i+1;而ilti;等价于i=i+1jFia口诀:加加在前先加后用,加加在后先用后加
[考点 14]逗号运算
逗号运算符运算优先级最低,可将多个表达式构成一个新的表达式。
第二章 顺序结构
[考点 1]运算符、表达式、语句
运算对象加运算符构成表达式,表达式加分号构成表达式语句,运算对象可以是表达式。常量变量如赋值运算符加运算对象构成赋值表达式,赋值表达式加分号又可构成赋值语句。
[考点 2]运算符的优先级和结合顺序
运算符按参加运算的对象数目可分为单目运算符、双目运算符和三目运算符。初等运算符的优先级别最高,然后依次是单目运算符、算术运算符、关系运算符、逻辑运算符(除逻辑非!)、条件运符、赋值运算符、逗号运算符。位运算符优先级介于算术运算符与逻并运算符之间。结合顺序大多为自左向右,而自右向左的有三个:单目运算符、条件运算符和赋值运算符。
[考点 3]printf 函数
格式为:printf(输出控制,输出列表)。输出控制是用一对双引号括起来的,包含格式说明和原样
信息。输出列表包含若干输出项。
[考点 4]printf 函数中格式说明
%对应整型.%f对应单精度实型%对应字符型%对应八进制无符号整型%对应无符号十
六进制整型,%u对应无符号整型,%对应指数型,%对应字符串型。可在%和格式字符之间加一个数来控制数据所占的宽度和小数位数。
[考点 5]scanf 函数
输人项要求带取地址符&。当用键盘输人多个数据时,数据之间用分隔符。分隔符包括空格符、制表符和回车符,但不包括逗号考点]6如何交换两个变量
要使用中间变量,语句为:t-x;x-y;x-t;.
第三章 选择结构
[考点 1]关系运算
C语言用非0表示逻辑真,用0表示逻辑假。关系运算符有6个,分别是>,天,,=,=,前四种优先级高于后两种。关系表达式真时为1.假时为0。注意asbec是不可以的,可用(asb)8&(bec)来表示
[考点 2] 逻辑运算
逻辑运算符共有3个:逻辑与(8&),逻辑或(1),逻辑非(!)。注意短路现象,例atlbl,如果表达式
al的值非零,则表达式bl不再执行。
[考点 3]if 语句
可以单独出现,也可以与els匹配出现。if语句可以套,这时ese总是与离它最近的且没有与
else匹配的f匹配
[考点 4] 条件运算
是唯一的三目运算符,格式为:表达式1?表达式2:表达式3。表达式1值为非0时,整个表达式值为表达式2的值,表达式1值为0时,整个表达式值为表达式3的值口诀:真前假后
[考点 5] switch 语句
格式及执行过程详见教材P33,要注意每条case后有没有break语句的区别。还要注意switch后
小括号里面的表达式不能为实型,case后表达式不能有变量。口诀:switch表不为实,case表不为变。
第四章 循环结构
[ 考点 1] 三种循环结构
三种循环结构分别为:while,dowhile,for,三种结构的格式及执行顺序详见教材第3639.40页。注意for循环中的小括号中必须是两个分号:循环一定要有结束条件,否则成了死循环:do-while0循环最后的whileO:后一定要有分号
[考点 2] break与continue
break是终止所在整个循环,而continue是提前结束本轮循环。break语句可出现在循环结构与switch语句中continue只出现在循环结构中
[ 考点 3] 循环的套
就是循环里面还有循环,计算要一层一层分析,一般只考查两层嵌套,循环嵌套通常是处理二维故组
[考点4]循环结构的复习
循环结构是重点,笔试所占分值一般在13分左右,在上机考试中也是必考点,应用性很强。要
求学员重点理解并多加练习,领会掌握第五章 字符型数据 位运算
[ 考点 1] 字符常量
个字符常量用一对单引号括起来,字符声重只能包括一个字符, ab’是非法的。空格常用’口来表示。字符常量可用对应的ASCI码表示。需记住:’0’的ASCII码为48.A’的ASC码为65a’的ASCII码为97
[ 考点 2] 转义字符
一对单引号中以一个反斜线后跟一个特定字符或八进制、十六进制数来构成转义字符。比如’n表示换行,\101’或’\x41’表示ASCII码为65的字符’A
[考点3]字符型数据可以和整型数据相互转换
如:’0’-0-48A’+32=’a’chara-65;printf(“%%”aa);结果为65A
[考点 4] 位运算符
C语言提供6种位运算符:按位求反~,按位左移人,按位右移》按位与&,按位异或,按位或^。一般情况下需要先转化进制。异或运算的规则:0异或1得到1异或0得到01异或1得到0可记为“相同为0,不同为 1”。
[ 考点 5] putchar 与 getchar 函数
可用于输出或输人单个字符,这两个函数是stdioh文件中的库函数,它们是prinf与scanf函
数的简化。
第六章 函数
[ 考点 1]函数的定义
丽数是具有一定功能的一个程序块。函数的首部为:函数类型函数名(类型1形参1类型2形参
2...·)。在函数定义中不可以再定义函数,即不能定义函数。函数类型默认为 int 型。[考点
[考点 2]库函数
调用C语言标准库函数时要包含include命令,include命令行以#开头,后面是””或◇括起来的后缀为”.h”的头文件。以#开头的一行称为编译预处理命令行,编译预处理不是C语言语句,不加分号,不占运行时间。
[考点 3] 函数的返回值
函数通过return语句返回一个值,返回的值类型与函数类型一样。return语句只执行一次,执行完或丽数体结束后退出雨数
[考点 4]函数的声明
函数要“先定义后调用”,或“先声明再调用后定义”。函数的声明一定要有函数名、函数返回值类型、函数参数类型,但不一定要有形参的名称。
[考点 5] 函数的调用
程序从上往下执行,当碰到函数名后,把值传给调用函数,当程序得到了返回值或调用函数结束.再顺序往下执行
[ 考点 6]函数的参数及值传递
形式参数简称形参,是定义函数时函数名后面括号中的参数。实在参数简称实参,是调用函数时函数名后面括号中的参数。实参和形参分别占据不同的存储单元。实参向形参单向传递数值。“传值”与“传址”的区别:传数值的话,形参的变化不会改变实参的变化。传地址的话,形参的变化就有可能改变实参所对应的量
[考点 7] 函数的递归调用
函数直接或间接地调用自己称为函数的递归调用。递归调用必须有一个明确的结束递归的条件在做递归题时可把递归的步骤一步步写下来,不要弄颠倒了。
[考点 8] 要求掌握的库函数
sgrt0算术平方根函数,fabs0绝对值函数,pow0幂函数,sin0正弦函数
第七章 指针
[考点 1]指针变量
[考点 2]指针变量的定义
指针变量是用来存储地址的,而一般变量是存储数值的。指针变量可指向任意一种数据类型,但不管它指向的数据占用多少字节,一个指针变量占用四个字节。格式为:类型名*指针变量名。二维指针inttsp;可以理解为基类型为(ints)类型
[考点 3]指针变量的初始化
指针变量在使用前必须要初始化,把一个具体的地址赋给它,否则引用时会有副作用,如果不指向任何数据就赋“空值”NLI
[考点 4] 指针变量的引用
&是取地址符,*是间接访问运算符,它们是互逆的两个运算符。在指针变量名前加间接访问运算奇就等价它所指向的量
[考点 5] 指针的运算
*pll和(*p)++之间的差别pt+是地址变化,()是指针变所指的数据化。一个指针变量加一个整数不是简单的数学相加,而是连续移动若干地址。当两个指针指向同一数组时,它们可以比较大小进行减法运算。
第八章 数组
[考点 1] 数组的定义
数组是一组具有相同类型的数据的集合,这些数据称为数组元素。格式为:类型名 数组名[常量表达式]。数组的所占字节数为元素个数与基类型所占字节数的乘积。
[考点 2] 数组的初始化
第一维长度可以不写,其它维必须写。intII=(1,2);合法,int |[3]-234;合法,int12]=(2 34)非法。数组初始化元素值默认为0,没有初始化元素值为随机。如在inta[5]=012);中,元素4值为0:而在inta[5;中,元素a[4]值为一个不确定的随机数
[考点 3] 元素的引用
数组元素的下标从0开始,到数组长度减1结束。所以int[5];中数组最后一个元素是a[4]。要把数组元素看作一个整体,可以把a[4]当作一个整型变量。
[考点 4]字符串的输入与输出
可以用scanf和printf函数,如scanf(”%s”,str);,也可用专门处理字符串的两个函数gets和outs函数,还可以对字符数组逐个元素进行赋值,但一定要在最后赋一个’10。使用gets函数可以接收空格,使用puts函数在最后输出一个换行。
[考点 5]字符串函数
要掌握的四个字符申函数:字符串拷贝函数strcpy()求字符长度函数strlen()字符串链接函数strcat()字符串比较函数stramp()。使用这些函数需在预处理部分包含头文件”stringh"字符串长度要小于字符数组的长度,例:ciarsid10]=”Hello”;sizeof(str)的值为10(数组长度).strlen(str)的值为5(字符串长度)。这些函数是考试常用到的函数,大家一定要熟练应用这几个函数
第十章 结构体与共用体
[考点1]结构体类型的说明结构体是若干个类型数据的集合,结构体类型说明格式如下:struct类型名类型1成员名1类型2成员名2;···小,以上整个部分是一个数据类型与整型的nt是同样地位。可用typedef把结构体类型替换成一个只有几个字母的简短标识符。
[考点 2] 结构体变量的定义
结构体变量是用说明的结构体类型所定义的一个变量,与结构体类型不是一回事。一个结构体变量所占字节数为其所有成员所占字节数之和。如 struct stuchar name 1:int age:ab;则表明定义了两个结构体变量ab每个变量占4个字节。ab与int中的变量ii是同样地位
[考点 3]结构体成员的引用
引用成员可用以下3种方式:(1结构体变量名成员;(2)指针变量名一成员名:(3(指针变量名)成员名。点()成员算符,头(一向
[考点 4] 链表
链表是由一个个结点构成的,一个结点就是一个结构体变量。每个结点可以分为数据域与指针域两个部分,数据域用来存放要存储的数据,指针域用来指向下一个结点。链表是考试中的难点,在C语言和公共基础部分都会考到,要领悟掌握
[考点 5]共用体
共用体的使用格式与结构体相似,共用体定义的关键字为union共用体所占字节数是所有成员中字节数最大的那个
计算机二级c语言知识点
2017计算机二级c语言知识点精选
计算机二级C语言考试内容是什么?为帮助大家更好备考3月计算机考试,我为大家分享计算机C语言二级考试知识点如下:
第一章 数据结构与算法
1.1 算法
1.算法的基本概念
(1) 概念:算法是指一系列解决问题的清晰指令。
(2) 4个基本特征:可行性、确定性、有穷性、拥有足够的情报。
(3) 两种基本要素:对数据对象的运算和操作、算法的控制结构(运算和操作时问的顺序)。
(4) 设计的基本方法:列举法、归纳法、递推法、递归法、减半递推技术和回溯法。
2.算法的复杂度
(1) 算法的时间复杂度:执行算法所需要的计算工作量。
(2) 算法的空间复杂度:执行算法所需的内存空间。
1.2 数据结构的基本概念
数据结构指相互有关联的数据元素的集合,即数据的组织形式。其中逻辑结构反映数据元素之间逻辑关系;存储结构为数据的逻辑结构在计算机存储空间中的存放形式,有顺序存储、链式存储、索引存储和散列存储4种方式。
数据结构按各元素之间前后件关系的复杂度可划分为:
(1) 线性结构:有且只有一个根节点,且每个节点最多有一个直接前驱和一个直接后继的非空数据结构。
(2) 非线性结构:不满足线性结构的数据结构。
1.3 线性表及其顺序存储结构
1.线性表的基本概念
线性结构又称线性表,线性表是最简单也是最常用的一种数据结构。
2.线性表的顺序存储结构
元素所占的存储空间必须连续。
元素在存储空间的位置是按逻辑顺序存放的。
3.线性表的插入运算
在第i个元素之前插入一个新元素的步骤如下:
步骤一:把原来第n个节点至第i个节点依次往后移一个元素位置。
步骤二:把新节点放在第i个位置上。
步骤三:修正线性表的节点个数。
在最坏情况下,即插入元素在第一个位置,线性表中所有元素均需要移动。
4.线性表的删除运算
删除第i个位置的元素的步骤如下:
步骤一:把第i个元素之后不包括第i个元素的n-i个元素依次前移一个位置;
步骤二:修正线性表的结点个数。
1.4 栈和队列
1.栈及其基本运算
(1) 基本概念:栈是一种特殊的线性表,其插入运算与删除运算都只在线性表的一端进行,也被称为“先进后出”表或“后进先出”表。
栈顶:允许插入与删除的一端。
栈底:栈顶的另一端。
空栈:栈中没有元素的栈。
(2) 特点。
栈顶元素是最后插入和最早被删除的元素。
栈底元素是最早插入和最后被删除的元素。
栈有记忆作用。
在顺序存储结构下,栈的插入和删除运算不需移动表中其他数据元素。
栈顶指针top动态反映了栈中元素的变化情况
(3) 顺序存储和运算:入栈运算、退栈运算和读栈顶运算。
2.队列及其基本运算
(1) 基本概念:队列是指允许在一端进行插入,在另一端进行删除的线性表,又称“先进先出”的线性表。
队尾:允许插入的一端,用尾指针指向队尾元素。
排头:允许删除的一端,用头指针指向头元素的前一位置。
(2) 循环队列及其运算。
所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间。
入队运算是指在循环队列的队尾加入一个新元素。
当循环队列非空(s=1)且队尾指针等于队头指针时,说明循环队列已满,不能进行人队运算,这种情况称为“上溢”。
退队运算是指在循环队列的队头位置退出一个元素并赋给指定的变量。首先将队头指针进一,然后将排头指针指向的元素赋给指定的变量。当循环队列为空(s=0)时,不能进行退队运算,这种情况称为“下溢”。
1.5 线性链表
在定义的链表中,若只含有一个指针域来存放下一个元素地址,称这样的链表为单链表或线性链表。
在链式存储方式中,要求每个结点由两部分组成:一部分用于存放数据元素值,称为数据域;另一部分用于存放指针,称为指针域。其中指针用于指向该结点的前一个或后一个结点(即前件或后件)。
1.6 树和二叉树
1.树的基本概念
树是简单的非线性结构,树中有且仅有一个没有前驱的节点称为“根”,其余节点分成m个互不相交的有限集合T1,T2,…,T}mm,每个集合又是一棵树,称T1,T2,…,T}mm为根结点的子树。
父节点:每一个节点只有一个前件,无前件的节点只有一个,称为树的根结点(简称树的根)。
子节点:每~个节点可以后多个后件,无后件的节点称为叶子节点。
树的度:所有节点最大的度。
树的深度:树的最大层次。
2.二叉树的定义及其基本性质
(1) 二叉树的定义:二叉树是一种非线性结构,是有限的节点集合,该集合为空(空二叉树)或由一个根节点及两棵互不相交的左右二叉子树组成。可分为满二叉树和完全二叉树,其中满二叉树一定是完全二叉树,但完全二叉树不一定是满二叉树。二叉树具有如下两个特点:
二叉树可为空,空的二叉树无节点,非空二叉树有且只有一个根结点;
每个节点最多可有两棵子树,称为左子树和右子树。
(2) 二叉树的基本性质。
性质1:在二叉树的第k层上至多有2k-1个结点(k≥1)。
性质2:深度为m的二叉树至多有2m-1个结点。
性质3:对任何一棵二叉树,度为0的结点(即叶子结点)总是比度为2的结点多一个。
性质4:具有n个结点的完全二叉树的深度至少为[log2n]+1,其中[log2n]表示log2n的整数部分。
3.满二叉树与完全二叉树
(1) 满二叉树:满二叉树是指这样的一种二叉树:除最后一层外,每一层上的所有结点都有两个子结点。满二叉树在其第i层上有2i-1个结点。
从上面满二叉树定义可知,二叉树的每一层上的结点数必须都达到最大,否则就不是满二叉树。深度为m的满二叉树有2m-1个结点。
(2) 完全二叉树:完全二叉树是指这样的二叉树:除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。
如果—棵具有n个结点的深度为k的二叉树,它的每—个结点都与深度为k的满二叉树中编号为1~n的结点——对应。
3.二叉树的存储结构
二叉树通常采用链式存储结构,存储节点由数据域和指针域(左指针域和右指针域)组成。二叉树的链式存储结构也称二叉链表,对满二叉树和完全二叉树可按层次进行顺序存储。
4.二叉树的遍历
二叉树的遍历是指不重复地访问二叉树中所有节点,主要指非空二叉树,对于空二叉树则结束返回。二叉树的遍历包括前序遍历、中序遍历和后序遍历。
(1) 前序遍历。
前序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;并且,在遍历左右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。前序遍历描述为:若二叉树为空,则执行空操作;否则①访问根结点;②前序遍历左子树;③前序遍历右子树。
(2) 中序遍历。
中序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树;并且,在遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。中序遍历描述为:若二叉树为空,则执行空操作;否则①中序遍历左子树;②访问根结点;③中序遍历右子树。
(3) 后序遍历。
后序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后遍历右子树,最后访问根结点,并且,在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根结点。后序遍历描述为:若二叉树为空,则执行空操作;否则①后序遍历左子树;②后序遍历右子树;③访问根结点。
1.7 查找技术
(1) 顺序查找:在线性表中查找指定的元素。
(2) 最坏情况下,最后一个元素才是要找的元素,则需要与线性表中所有元素比较,比较次数为n。
(3) 二分查找:二分查找也称折半查找,它是一种高效率的查找方法。但二分查找有条件限制,它要求表必须用顺序存储结构,且表中元素必须按关键字有序(升序或降序均可)排列。对长度为n的有序线性表,在最坏情况下,二分查找法只需比较log2n次。
1.8 排序技术
(1) 交换类排序法。
冒泡排序:通过对待排序序列从后向前或从前向后,依次比较相邻元素的排序码,若发现逆序则交换,使较大的元素逐渐从前部移向后部或较小的元素逐渐从后部移向前部,直到所有元素有序为止。在最坏情况下,对长度为n的线性表排序,冒泡排序需要比较的次数为n(n-1)/2。
快速排序:是迄今为止所有内排序算法中速度最快的一种。它的基本思想是:任取待排序序列中的某个元素作为基准(一般取第一个元素),通过一趟排序,将待排元素分为左右两个子序列,左子序列元索的排序码均小于或等于基准元素的排序码,右子序列的排序码则大于基准元素的排序码,然后分别对两个子序列继续进行排序,直至整个序列有序。最坏情况下,即每次划分,只得到一个序列,时间效率为O(n2)。
(2) 插人类排序法。
简单插入排序法:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。在最坏情况下,即初始排序序列是逆序的情况下,比较次数为n(n-1)/2,移动次数为n(n-1)/2。
希尔排序法:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序。待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。
(3) 选择类排序法。
简单选择排序法:扫描整个线性表。从中选出最小的元素。将它交换到表的最前面;然后对剩下的子表采用同样的方法,直到子表空为止。最坏情况下需要比较n(n-1)/2次。
堆排序的方法:首先将一个无序序列建成堆;然后将堆顶元素(序列中的最大项)与堆中最后一个元素交换(最大项应该在序列的最后)。不考虑已经换到最后的那个元素,只考虑前n-1个元素构成的子序列,将该子序列调整为堆。反复做步骤②,直到剩下的子序列空为止。在最坏情况下,堆排序法需要比较的次数为0(nlog2n)
第二章 程序设计基础
2.1 程序设计方法与风格
(1)设计方法:指设计、编制、调试程序的方法和过程,主要有结构化程序设计方法、软件工程方法和面向对象方法。
(2)设计风格:良好的'设计风格要注重源程序文档化、数据说明方法、语句的结构和输入输出。
2.2 结构化程序设计
1.结构化程序设计的原则
结构化程序设计强调程序设计风格和程序结构的规范化,提倡清晰的结构。。
(1)自顶向下:即先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。
(2)逐步求精:对复杂问题,应设计一些子目标做过渡,逐步细化。
(3)模块化:把程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,把每个小目标称为一个模块;
(4)限制使用GOT0语句。
2.结构化程序的基本结构与特点
(1)顺序结构:自始至终严格按照程序中语句的先后顺序逐条执行,是最基本、最普遍的结构形式。
(2)选择结构:又称为分支结构,包括简单选择和多分支选择结构。
(3)重复结构:又称为循环结构,根据给定的条件,判断是否需要重复执行某一相同的或类似的程序段。
结构化程序设计中,应注意事项:
(1)使用程序设计语言中的顺序、选择、循环等有限的控制结构表示程序的控制逻辑。
(2)选用的控制结构只准许有一个人口和一个出口。
(3)程序语言组成容易识别的块,每块只有一个入口和一个出口。
(4)复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现。
(5)语言中所没有的控制结构,应该采用前后一致的方法来模拟。
(6)尽量避免GOT0语句的使用。
2.3 面向对象的程序设计
面向对象方法的本质是主张从客观世界固有的事物出发来构造系统,强调建立的系统能映射问题域。
对象:用来表示客观世界中任何实体,可以是任何有明确边界和意义的东西。
类:具有共同属性、共同方法的对象的集合。
实例:一个具体对象就是其对应分类的一个实例。
消息:实例间传递的信息,它统一了数据流和控制流。
继承:使用已有的类定义作为基础建立新类的定义技术。
多态性:指对象根据所接受的信息而作出动作,同样的信息被不同的对象接收时有不同行动的现象。面向对象程序设计的优点:与人类习惯的思维方法一致、稳定性好、可重用性好、易于开发大型软件产品、可维护性好。
第三章 软件工程基础
3.1 软件工程基本概念
1.软件的定义与特点
(1)定义:软件是指与计算机系统的操作有关的计算机程序、规程、规则,以及可能有的文件、文档和数据。
(2)特点。
是逻辑实体,有抽象性。
生产没有明显的制作过程。
运行使用期间不存在磨损、老化问题。
开发、运行对计算机系统有依赖性,受计算机系统的限制,导致了软件移植问题。
复杂性较高,成本昂贵。
开发涉及诸多社会因素。
2.软件的分类
软件可分应用软件、系统软件和支撑软件3类。
(1)应用软件是特定应用领域内专用的软件。
(2)系统软件居于计算机系统中最靠近硬件的一层,是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。
(3)支撑软件介于系统软件和应用软件之间,是支援其它软件的开发与维护的软件。
3.软件危机与软件工程
软件危机指在计算机软件的开发和维护中遇到的一系列严重问题。软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序,包括软件开发技术和软件工程管理。
4.软件生命周期
软件产品从提出、实现、使用维护到停止使用的过程称为软件生命周期。
在国家标准中,软件生命周期划分为8个阶段①软件定义期:包括问题定义、可行性研究和需求分析3个阶段。②软件开发期:包括概要设计、详细设计、实现和测试4个阶段。③运行维护期:即运行维护阶段。
5.软件工程的原则
软件工程的原则包括:抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。
3.2 结构化分析方法
需求分析的任务是发现需求、求精、建模和定义需求的过程,可概括为:需求获取、需求分析、编写需求规格说明书和需求评审。
1.常用的分析方法
结构化分析方法:其实质着眼于数据流,自顶向下,逐层分解,建立系统的处理流程。
面向对象分析方法。
2.结构化分析常用工具
结构化分析常用工具包括数据流图、数字字典(核心方法)、判断树和判断表。
(1)数据流图:即DFD图,以图形的方式描绘数据在系统中流动和处理的过程,它只反映系统必须完成的逻辑功能。是一种功能模型。
符号名称作用:
箭头代表数据流,沿箭头方向传送数据的通道
圆或椭圆代表加工,输入数据经加工变换产生输出
双杠代表存储文件,表示处理过程中存放各种数据文件
方框代表源和潭,表示系统和环境的接口
(2)数据字典:结构化分析方法的核心。数据字典是对所有与系统相关的数据元素的一个有组织的列表。以及精确的、严格的定义,使得用户和系统分析员对于输入、输出、存储成分和中间计算结果有共同的理解。
(3)判定树:使用判定树进行描述时,应先从问题定义的文字描述中分清判定的条件和判定的结论,根据描述材料中的连接词找出判定条件之问的从属关系、并列关系、选择关系,根据它们构造判定树。
(4)判定表:与判定树相似,当数据流图中的加工要依赖于多个逻辑条件的取值,即完成该加工的一组动作是由于某一组条件取值的组合引发的,使用判定表比较适宜。
3.软件需求规格说明书
软件需求规格说明书是需求分析阶段的最后成果,是软件开发的重要文档之一。
(1)软件需求规格说明书的作用:①便于用户、开发人员进行理解和交流;②反映出用户问题的结构,可以作为软件开发工作的基础和依据;③作为确认测试和验收的依据。
(2)软件需求规格说明书的内容:①概述;②数据描述;③功能描述;④性能描述;⑤参考文献;⑥附录。
(3)软件需求规格说明书的特点:①正确性;②无歧义性;③完整性;④可验证性;⑤一致性;⑥可理解性;⑦可修改性;⑧可追踪性。
3.3 结构化设计方法
1.软件设计的基本概念和方法
软件没计是一个把软件需求转换为软件表示的过程。
(1)基本原理:抽象、模块化、信息隐藏、模块独立性(度量标准:耦合性和内聚性,高耦合、低内聚)。
(2)基本思想:将软件设计成由相对独立、单一功能的模块组成的结构。
2.概要设计
(1)4个任务:设计软件系统结构、数据结构及数据库设计、编写概要设计文档、概要设计文档评审。
(2)面向数据流的设计方法:数据流图的信息分为交换流和事物流,结构形式有交换型和事务型。
3.详细设计的工具
详细设计的工具包括:
图形工具:程序流程图、N-S、PAD、HIPO。
表格工具:判定表。
语言工具:PDL(伪码)。
3.4 软件测试
1.目的
为了发现错误而执行程序的过程。
2.准则
所有测试应追溯到用户需求。
严格执行测试计划,排除测试的随意性。
充分注意测试中的群集现象。
程序员应避免检查自己的程序。
穷举测试不可能。
妥善保存设计计划、测试用例、出错统计和最终分析报告。
3.软件测试技术和方法
软件测试的方法按是否需要执行被测软件的角度,可分为静态测试和动态测试,按功能分为白盒测试和黑盒测试。
(1)白盒测试:根据程序的内部逻辑设计测试用例,主要方法有逻辑覆盖测试、基本路径测试等。
(2)黑盒测试:根据规格说明书的功能来设计测试用例,主要诊断方法有等价划分法、边界值分析法、错误推测法、因果图法等,主要用于软件确认测试。
4.软件测试的实施
软件测试是保证软件质量的重要手段,软件测试是一个过程,其测试流程是该过程规定的程序,目的是使软件测试工作系统化。
软件测试过程分4个步骤,即单元测试、集成测试、验收测试和系统测试。
单元测试是对软件设计的最小单位——模块(程序单元)进行正确性检验测试。
单元测试的目的是发现各模块内部可能存在的各种错误。
单元测试的依据是详细的设计说明书和源程序。
单元测试的技术可以采用静态分析和动态测试。
3.5 程序的调试
(1)任务:诊断和改正程序中的错误。
(2)调试方法:强行排错法、回溯法和原因排除法。
第四章 数据库设计基础
4.1 数据库系统的基本概念
(1) 数据(Data):描述事物的符号记录。
(2) 数据库(DataBase):长期存储在计算机内的、有组织的、可共享的数据集合。
(3) 数据库管理系统的概念
数据库管理系统(DataBase Management System,DBMS)是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操作、数据维护、数据控制及保护和数据服务等。为完成以上6个功能,DBMS提供了相应的数据语言;数据定义语言(负责数据的模式定义与数据的物理存取构建);数据操纵语言(负责数据的操纵);数据控制语言(负责数据完整性、安全性的定义)。数据库管理系统是数据库系统的核心,它位于用户和操作系统之间,从软件分类的角度来说,属于系统软件。
(4) 数据库技术发展经历了3个阶段。
人工管理阶段→文件系统阶段→数据库系统阶段
(5) 数据库系统的特点:集成性、高共享性、低冗余性、数据独立性、数据统一管理与控制等。
(6) 数据库系统的内部机构体系:三级模式(概念模式、内模式、外模式)和二级映射(外模式/概念模式的映射、概念模式/内模式的映射)构成了数据库系统内部的抽象结构体系。
4.2 数据模型
数据模型是数据特征的抽象,从抽象层次上描述了系统的静态特征、动态行为和约束条件,描述的内容有数据结构、数据操作和数据约束。有3个层次:概念数据模型、逻辑数据模型和物理数据模型。
(1) E—R模型:提供了表示实体、属性和联系的方法。实体间联系有“一对一”、“一对多”和“多对多”。
(2) E-R模型用E-R图来表示。
(3) 层次模型:利用树形结构表示实体及其之问联系。其中节点是实体,树枝是联系,从上到下是一对多关系。
(4) 网状模型:用网状结构表示实体及其之间联系。是层次模型的扩展。网络模型以记录型为节点,反映现实中较为复杂的事物联系。
(5) 关系模型:采用二维表(由表框架和表的元组组成)来表示,可进行数据查询、增加、删除及修改操作。关系模型允许定义“实体完整性”、“参照完整性”和“用户定义的完整性”三种约束。
键(码):二维表中唯一能标识元组的最小属性集。
候选键(候选码):二维表中可能有的多个键。
主键:被选取的一个使用的键。
4.3 关系代数
(1) 关系代数的基本运算:投影、选择、笛卡尔积。
(2) 关系代数的扩充运算:交、连接与自然连接、除。
4.4 数据库设计与管理
1.数据库设计概述
基本思想:过程迭代和逐步求精。
方法:面向数据的方法和面向过程的方法。
设计过程:需求分析→概念设计→逻辑设计→物理设计→编码→测试→运行→进→步修改。
2.数据库设计的需求分析
需求收集和分析是数据库设计的第一阶段,常用结构化分析方法(自顶向下、逐层分解)和面向对象的方法,主要工作有绘制数据流程图、数据分析、功能分析、确定功能处理模块和数据间关系。
数据字典:包括数据项、数据结构、数据流、数据存储和处理过程,是对系统中数据的详尽描述。
3.数据库的设计
(1) 数据库的概念设计:分析数据问内在的语义关联,以建立数据的抽象模型。
(2) 数据库的逻辑设计:从E-R图向关系模型转换,逻辑模式规范化,关系视图设计可以根据用户需求随时创建。实体转换为元组,属性转换为关系的属性,联系转换为关系。
(3) 数据库的物理设计:是数据在物理设备上的存储结构与存取方法,目的是对数据库内部物理结构作出调整并选择合理的存取路径,以提高速度和存储空间。
4.数据库管理
数据库管理包括数据库的建立、数据库的调整、数据库的重组、数据库的安全性与完整性控制、数据库故障恢复和数据库的监控。
;
计算机c语言基础知识
计算机c语言的特性
C语言是世界上最流行、使用最广泛的高级程序设计语言之一。在操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。C语言的主要特性有以下几种:
1、C是高级语言:它把高级语言的基本结构和语句与低级语言的实用性结合起来。
2、C是结构式语言:结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。
3、C语言功能齐全:具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。
4、C语言适用范围大:适合于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。
5、C语言应用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针操作的同时又增强了安全性。
6、C语言创始人D.M.Ritchie6、C语言文件由数据序列组成:可以构成二进制文件或文本文件常用的C语言IDE有Microsoft Visual C++,Dev-C++,Code::Blocks,Borland C++,Watcom C++,Borland C++ Builder,GNU DJGPP C++,Lccwin32 C Compiler 3.1,High C,Turbo C,C-Free,win-tc,xcode等。
计算机c语言的语法结构
1.顺序结构
顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算,输出三步曲的程序就是顺序结构。
2.选择结构
选择结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。选择结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的选择语句。
3.循环结构
循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构,C语言中提供四种循环,即goto循环、while循环、do while循环和for循环。
4.模块化程序结构
C语言的模块化程序结构用函数来实现,即将复杂的C程序分为若干模块,每个模块都编写成一个C函数,然后通过主函数调用函数及函数调用函数来实现一大型问题的C程序编写,因此常说: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)用户标识符。用户根据需要定义的标识符,符合命名规则且不与关键字相同。
关键字不可以作为用户标识符号。main define scanf printf 都不是关键字。迷惑你的地方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。
字符型和整数是近亲:
char a = 65 ;
printf(“%c”, a); 得到的输出结果:a
printf(“%d”, a); 得到的输出结果:65
一般考试表示单个字符错误的形式:'65' "1"
字符是可以进行算术运算的,记住: '0'-0=48
大写字母和小写字母转换的方法: 'A'+32='a' 相互之间一般是相差32。
【知识点9】整型数据
整型一般是两个字节, 字符型是一个字节,双精度一般是4 个字节:
考试时候一般会说,在16 位编译系统,或者是32 位系统。碰到这种情况,不要去管,
一样做题。掌握整型一般是两个字节, 字符型是一个字节,双精度一般是4 个字节就可以了。
【知识点10】转义字符
转义字符的考查:
在程序中 int a = 0x6d,是把一个十六进制的数给变量a 注意这里的0x 必须存在。
在程序中 int a = 06d, 是一个八进制的形式。
在转义字符中, ’x6d’ 才是合法的,0 不能写,并且x 是小写。
‘141’ 是合法的, 0 是不能写的。
‘108’是非法的,因为不可以出现8。
【知识点11】算术运算
算术运算符一共有+、—、*、/、%这五个。%符号两边要求是整数。不是整数就错了。
三种取整丢小数的情况:不是四舍五入是舍掉小数部分。
1、int a =1.6;
2、(int)a;
3、1/2; 3/2;
【知识点12】强制类型转换
将一个运算对象转换成指定类型,格式为(类型名)表达式
一定是 (int)a 不是 int(a),注意类型上一定有括号的。
注意(int)(a+b) 和(int)a+b 的区别。前是把a+b 转型,后是把a 转型再加b。
【知识点13】赋值
是表达式就一定有数值。
赋值表达式:表达式数值是最左边的数值,a=b=5;该表达式为5,常量不可以赋值。
复合赋值运算符:注意:a*=m+2 是 a=a*(m+2)
自加、自减表达式:假设a=5,++a(表达式的值为6), a++(表达式的值为5);
j=a++;等价于j=a;a=a+1; 而j=++a;等价于a=a+1;j=a;。
考试口诀:++在前先加后用,++在后先用后加。
【知识点14】逗号运算
逗号表达式:优先级别最低; 表达式的数值逗号最右边的那个表达式的数值。
(2,3,4)的表达式的数值就是4。
【知识点15】数制转换
一定要记住二进制 如何转换成十进制。
八进制是没有8 的,逢8 进1,018 的数值是非法的。
【知识点16】位运算
会有一到二题考试题目。
C语言提供6种位运算符:按位求反~,按位左移<<,按位右移>>,按位与&,按位异或|,按位或^。
总的处理方法:几乎所有的位运算的题目都要按这个流程来处理(先把十进制变成二进制再变成十进制)。
异或运算的规则:0异或1得到1,0异或0得到0,1异或1得到0。可记为“相同为0,不同为1”。
在没有舍去数据的时候,<
>右移一位表示除以2。
左移一位表示乘以2;>
计算机二级考试C语言知识点归纳
2017年计算机二级考试C语言知识点归纳
计算机二级考试是全国计算机等级考试(National Computer Rank Examination,简称NCRE)四个等级中的一个等级,考核计算机基础知识和使用一种高级计算机语言编写程序以及上机调试的基本技能。下面是2017年计算机二级考试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
\0 空字符(NULL) 000
\ddd 任意字符三位八进制
\xhh 任意字符二位十六进制
6)算术运算符号的优先级别:
同级别的有的是从左到右,有的是从右到左。
7)强制类型转换:
一定是(int)a 不是 int(a),注意类型上
一定有括号的。
注意(int)(a+b)和(int)a+b 的区别。
前是把a+b转型,后是把a转型再加b。
8)表达式的考查:
是表达式就一定有数值。
赋值表达式:表达式数值是最左边的数值,
a=b=5;该表达式为5,常量不可以赋值。
自加、自减表达式:假设a=5,++a(是为6),
a++(为5);
运行的机理:++a 是先把变量的数值加上1,
然后把得到的数值放到变量a中,然后再用这
个++a表达式的数值为6,而a++是先用该表达
式的数值为5,然后再把a的数值加上1为6,
再放到变量a中。 进行了++a和a++后在下面的
程序中再用到a的话都是变量a中的6了。
考试口诀:++在前先加后用,++在后先用后加。
逗号表达式:优先级别最低 ;表达式的数值
逗号最右边的那个表达式的数值。
(2,3,4)的表达式的数值就是4。
9)位运算的考查:
会有一到二题考试题目。
总的处理方法:几乎所有的'位运算的题目
都要按这个流程来处理(先把十进制变成
二进制再变成十进制)。
例1: char a = 6, b;
b = a<<2; 这种题目的计算是先要把a的十进
制6化成二进制,再做位运算。
例2: 一定要记住,
例3: 在没有舍去数据的时候,<
<左移一位表示
乘以2;>>右移一位表示除以2。
10)018的数值是非法的,八进制是没有8的,
逢8进1。
11)%符号两边要求是整数。不是整数就错了。
12) 两种取整丢小数的情况:
1、int a =1.6;
2、(int)a;
第二章
1)printf函数的格式考查:
%d对应整型;%c对应字符;%f对应单精度等等。
宽度的,左对齐等修饰。
%ld对应 long int;%lf 对应double。
2)scanf函数的格式考察:
注意该函数的第二个部分是&a 这样的地址,不是a;
Scanf(“%d%d%*d%d”,&a,&b,&c);跳过输入的
第三个数据。
3)putchar ,getchar 函数的考查:
char a = getchar() 是没有参数的,从键盘得到
你输入的一个字符给变量a。
putchar(‘y’)把字符y输出到屏幕中。
4)如何实现两个变量x ,y中数值的互换
(要求背下来)
不可以把 x=y,y=x; 要用中间变量 t=x;x=y;y=t。
5)如何实现保留三位小数,第四位四舍五入
的程序,(要求背下来)
x=(int)(x*1000+0.5)/1000.0
这个有推广的意义,注意 x = (int)x 这样是
把小数部分去掉。
第三章
特别要注意:c语言中是用非0表示逻辑真的,
用0表示逻辑假的。
1)关系表达式:
表达式的数值只能为1(表示为真),
或0(表示假)
当关系的表达是为真的时候得到1。
如 9>8这个是真的,所以表达式的数值就是1;
2)逻辑表达式:
只能为1(表示为真),或0(表示假)
a) 共有&& || ! 三种逻辑运算符号。
b) !>&&>|| 优先的级别。
c) 注意短路现象。考试比较喜欢考到。
d) 要表示 x 是比0大,比10小的方法。0
不可以的(一定记住)。是先计算0
结果为1或则0;再用0,或1与10比较得到的
总是真(为1)。所以一定要用(0
示比0大比10小。
3)if 语句
else 是与最接近的if且没有else的相组合的。
4)条件表达式:
表达式1 ?表达式2 :表达式3
注意是当非0时候是表达式2的数值,当为0是
就是表达式2的数值。
考试口诀:真前假后。
5)switch语句:
a)一定要注意有break 和没有break的差别,
没有break时候,只要有一个case匹配了,剩下
的都要执行,有break则是直接跳出了swich语句。
b)switch只可以和break一起用,不可以
和continue用。
第四章
1)三种循环结构:
a)for(); while(); do- while()三种。
b)for循环当中必须是两个分号,千万不要忘记。
c)写程序的时候一定要注意,循环一定要有结束
的条件,否则成了死循环。
d) do-while()循环的最后一个while();的分号一定
不能够丢。(当心上机改错)
2) break 和 continue的差别
记忆方法:
break:是打破的意思,(破了整个循环)所以
看见break就退出真个一层循环。
continue:是继续的意思,(继续循环运算),
但是要结束本次循环,就是循环体内剩下的语句
不再执行,跳到循环开始,然后判断循环条件,
进行新一轮的循环。
3)嵌套循环
就是有循环里面还有循环,这种比较复杂,要一层
一层一步一步耐心的计算,一般记住两层是处理
二维数组的。
4) while((c=getchar())!=’\n’)和
while(c=getchar() !=’\n’)的差别
先看a = 3 != 2 和(a=3)!=2 的区别:
(!=号的级别高于=号 所以第一个先计算 3!=2)
第一个a的数值是得到的1;第二个a的数值是3。
考试注意点: 括号在这里的重要性。
第五章
函数:是具有一定功能的一个程序块;
1) 函数的参数,返回数值(示意图):
main()
{
int a = 5,b=6,c;
c = add(a,b);
printf(“%d”,c);
}
调用函数
a,b是实参
整个函数得到一个数值就是
Add函数的返回数值。
int add ( int x,int y)
{
int z;
z=x+y;
return z;
}
被调用函数
x,y是形式参数
函数返回数值是整型
z就是这个add函数计算后得到的结果,就是函数
返回给主程序的返回数值。
程序是在从上往下顺序执行,当碰到了函数add后,
把a,b的数值穿给调用函数,程序暂时中断等待返回数值。
当得到了返回数值后,再顺序的往下执行
2)一定要注意参数之间的传递
实参和形参之间 传数值,和传地址的差别。(考试的重点)
传数值的话,形参的变化不会改变实参的变化。
传地址的话,形参的变化就会有可能改变实参的变化。
3)函数声明的考查:
一定要有:函数名,函数的返回类型,函数的参数类型。
不一定要有:形参的名称。
第六章
指针变量的本质是用来放地址,而一般的变量是放数值的。
int *p 中 *p和p的差别:
*p可以当做变量来用;*的作用是取后面地址p里面的数值
p是当作地址来使用。
*p++ 和 (*p)++的之间的差别:改错题目中很重要
*p++是 地址会变化。
(*p)++ 是数值会要变化。
三名主义:(考试的重点)
数组名:表示第一个元素的地址。数组名不可以自加,
他是地址常量名。(考了很多次)
函数名:表示该函数的入口地址。
字符串常量名:表示第一个字符的地址。
第七章
1一维数组的重要概念:
对a[10]这个数组的讨论。
1、a表示数组名,是第一个元素的地址,也就是
元素a[10]的地址。
2、a是地址常量,所以只要出现a++,或者
是a=a+2赋值的都是错误的。
3、a是一维数组名,所以它是列指针,也就是
说a+1是跳一列。
对a[3][3]的讨论。
1、a表示数组名,是第一个元素的地址,也就是
元素a[10]的地址。
2、a是地址常量,所以只要出现a++,或者
是a=a+2赋值的都是错误的。
3、a是二维数组名,所以它是行指针,也就
是说a+1是跳一行。
4、a[0]、a[1]、a[2]也都是地址常量,不可以对
它进行赋值操作,同时它们都是列指针,a[0]+1,
a[1]+1,a[2]+1都是跳一列。
5、注意a和a[0] 、a[1]、a[2]是不同的,它们的
基类型是不同的。前者是一行元素,后三者是一列元素。
二维数组做题目的技巧:
如果有a[3][3]={1,2,3,4,5,6,7,8,9}这样的题目。
步骤一:把他们写成:
第一列 第二列 第三列
a[0]à 1 2 3 ->第一行
a[1]à 4 5 6—>第二行
a[2]à 7 8 9->第三行
步骤二:这样作题目间很简单:
*(a[0]+1)我们就知道是第一行的第一个元素往后
面跳一列,那么这里就是a[0][1]元素,所以是1。
*(a[1]+2)我们就知道是第二行的第一个元素往后面
跳二列。那么这里就是a[1][2]元素,所以是6。
一定记住:只要是二维数组的题目,一定是写成如
上的格式,再去做题目,这样会比较简单。
数组的初始化,一维和二维的,一维可以不写,
二维第二个一定要写
int a[]={1,2} 合法。 int a[][4]={2,3,4}合法。
但int a[4][]={2,3,4}非法。
二维数组中的行指针
int a[1][2];
其中a现在就是一个行指针,a+1跳一行数组元素。
搭配(*)p[2]指针
a[0],a[1]现在就是一个列指针。a[0]+1 跳一个数组
元素。搭配*p[2]指针数组使用
还有记住脱衣服法则:
a[2] 变成 *(a+2) a[2][3]变成 *(a+2)[3]再
可以变成 *(*(a+2)+3)
;
</左移一位表示
计算机二级C语言考试重点以及复习技巧
二级C语言笔试只有选择题和填空题两种题型。这两种题型的解题方法有所不同,考生在备考时要深化对基本概念和知识点的理解,并注重实践,同时要作一些针对性的练习,特别是历年真题,从中找出规律性的东西以及解题技巧。 一、选择题 这种类型的题,要求考生从四个待选答案中选择一个正确答案。考生可综合运用直选法,排除法等多种方法。但是这类题目考的知识点往往都比较多且细,容易出错,考生在做这类题时,切忌不加分析,一看就选,从而漏掉正确的答案。如2003年9月笔试第49题: 有以下程序 mai( ) { int a[3][3],?p,i; p=&&a[0][0]; for (i=0;i<9;i++) p[i]=i+1; printf("%d\n",a[1][2]); } 程序运行后的输出结果是 (A)3 (B)6 (C)9 (D)2 此题主要考的知识点有:(1)数组与指针的关系;(2)数组的初始化和数组元素的引用。在C语言中,数组与指针有着非常密切的联系。任何能用数组下标完成的操作也都可以用指针来实现。语句“p=&&a[0][0];”使p指向数组中的第0号元素,即a[0][0],指针变量p中存放了数组元素a[0][0]的地址,由于数组元素在内存中是连续存储的,因此,我们就可以通过指针变量p访问数组中的任何一个元素。本题中通过“for (i=0;i<9;i++) p[i]=i+1;”语句使a[3][3]={1,2,3,4,5,6,7,8,9},所以a[1][2]=6。这里要特别注意C语言中数组的下标从0开始,不要错选a[1][2]=3。 二、填空题 填空题主要考查考生对基础知识的准确理解。对于这类型的题,考生应深刻理解题意,明确题目要求,运用相关知识做出正确回答。在历年考试中,考生这部分试题的得分直接决定考试成绩。由于这部分共20个空,计40分,有的考生能得35~40分,而有的考生却得不到10分,直接拉开了最后成绩。在判卷过程中发现考生常犯的错误有以下几个方面: 1.基础知识掌握不扎实,概念理解不准确。 如2003年9月填空第8题: main( ) {int a=1,b=3,c=5; if (c=a+b) printf ("yes\n"); else printf("no"); } 题目问程序运行后的输出结果,答案应是yes。因为“if (c=a+b) printf ("yes\n");”中的条件“c=a+b”是一个赋值语句,c的值为a+b=1+3=4,所以条件为真。而许多考生却把赋值语句“c=a+b”理解为关系表达式“c==a+b”即5=1+3为逻辑假,故答no。 2.答案表述不准确,会做的题却不得分或少得分。 如第12题: main( ) {int i,n[ ]={0,0,0,0,0}; for(i=1;i<=4;i++) {n[i]=n[i-1]?2+1; printf("%d ",n[i]); } }问程序运行后的输出结果是____。答案是“1 3 7 15”许多考生虽然写对了但却在每个数字后加了标点而不得分如“1,3,7,15”或“1. 3. 7. 15”。 又如第19题: 以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串;例如,输入字符串:abc123edf456gh,执行后输出:123456。请填空: #include #include main( ) {char s[80], d[80]; int i, j; gets(s); for(i=j=0;s[i]!='\0' ;i++) if( ) {d[j]=s[i];j++} d[j]='\0' ; puts(d); } 答案应是s[i]<='9'&&&&s[i]>='0'或s[i]<=48&&&&s[i]>=57而许多考生却把“>=”,“<=”写成“≥”,“≤”导致不能得分。 3.注意答题卡的号码并不是试题卷上的题号,而是填空的顺序号。许多考生答题时将答案张冠李戴,位置写错,白白丢了分。 总之,只要考生能准确理解基本知识点,善于动手动脑多练习,举一反三,触类旁通,就能从中找出规律性的东西,轻松通过笔试。来源:考试大-计算机二级考试
我也是学C语言的,可是我学的不好
心里正常就好了,我考的是4数据库技术,没有什么,
1、语言的基本语法25分。主要有C语言的主要特点、各种数据类型、运算符与运算表达式、基本I/O结构应用、基本的程序控制结构、宏的基本定义、文件的基本应用等。
2、程序阅读题30分。考核的主要内容为:选择结构、循环结构的应用、数组的应用、指针特别是指针与字符数组的关系应用、函数应用(参数传输,全局变量,局部变量应用等)。3、程序设计15分。主要是应该熟悉程序控制结构,数组,函数的应用。
复习内容:
C语言的基本概念
C语言的主要特征和程序结构。头文件,函数的开始和结束标志。?源程序的书写格式。数据类型和运算
基本数据类型和常量的表示法。各种变量的定义和初始化。
运算规则和表达式。
赋值表达式、算术表达式、关系表达式、逻辑表达式、条件表达式、逗号表达式。
运算符的优先级、类型的自动转换和强制类型转换,
C语言的基本语句
基本语句:表达式语名、空语句、复合语句。?数据的输入与输出、输入输出函数的调用。选择结构语句。if语句。switch语句。
选择结构的嵌套。循环结构语句。for语句。while语句和do-while语句。continue语句和break语句。
构造类型和指针类型数据
数组、结构、联合类型的说明和正确使用。
指针。
指针与指针变量的概念,指针与地址运算符。
变量、数组、字符串、函数、结构体的指针,以及指向变量、数组、字符串、函数、结构体的指针变量。通过指针引用以上各类型数据。?指针数组,指向指针的指针。
存储区动态分配和释放。
函数
函数的基本结构和定义方法。
函数的调用和参数传递。
函数的嵌套调用、递归调用。
变量的作用域。
Main
()函数的命令行参数引用。
内部函数与外部函数。
库函数的正确使用。
文件只要求缓冲文件系统(即高级磁盘I/O系统)。
文件的概念:文本文件和二进制文件。
文件类型指针。
文件的基本操作:文件的打开与关闭、文件的读写、文件指针的操作。
计算机二级C语言 公共基础知识部分考什么
下资料已发.zip
(54,请注意查收
2010.9二级c语言考试专用上机模拟系统.doc
(61.二级公共基础总结.5k)
10
二级公共基础知识教程
计算机二级C语言考试内容
一、
基本数据结构与算法
1.
算法的基本概念;算法复杂度的概念和意义(时间复杂度与空间复杂度)。
2.
数据结构的定义;数据的逻辑结构与存储结构;数据结构的图形表示;线性结构与非线性结构的概念。
3.
线性表的定义;线性表的顺序存储结构及其插入与删除运算。
4.
栈和队列的定义;栈和队列的顺序存储结构及其基本运算。
5.
线性单链表、双向链表与循环链表的结构及其基本运算。
6.
树的基本概念;二叉树的定义及其存储结构;二叉树的前序、中序和后序遍历。
7.
顺序查找与二分法查找算法;基本排序算法(交换类排序,选择类排序,插入类排序)。
二、
程序设计基础
1.
程序设计方法与风格。
2.
结构化程序设计。
3.
面向对象的程序设计方法,对象,方法,属性及继承与多态性。
三、
软件工程基础
1.
软件工程基本概念,软件生命周戎概念,软件工具与软件开发环境。
2.
结构化分析方法,数据流图,数据字典,软件需求规格说明书。
3.
结构化设计方法,总体设计与详细设计。
4.
软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。
5.
程序的调试,静态调试与动态调试。
四、
数据库设计基础
1.
数据库的基本概念:数据库,数据库管理系统,数据库系统。
2.
数据模型,实体联系模型及E-R图,从E-R图导出关系数据模型。
3.
关系代数运算,包括集合运算及选择、投影、连接运算,数据库规范化理论。
4.
数据库设计方法和步骤:需求分析、概念设计、逻辑设计和物理设计的相关策略。
c语言考哪些内容啊??
全国计算机等级考试二级(C语言)考试内容:
公共基础知识 基本要求 1.掌握算法的基本概念。2.掌握基本数据结构及其操作。 3.掌握基本排序和查找算法。 4.掌握逐步求精的结构化程序设计方法。 5.掌握软件工程的基本方法,具有初步应用相关技术进行软件开发的能力。 6.掌握数据库的基本知识,了解关系数据库的设计。 考试内容 一、基本数据结构与算法 1.算法的基本概念;算法复杂度的概念和意义(时间复杂度与空间复杂度)。 2.数据结构的定义;数据的逻辑结构与存储结构;数据结构的图形表示;线性结构与非线性结构的概念。 3.线性表的定义;线性表的顺序存储结构及其插入与删除运算。 4.栈和队列的定义;栈和队列的顺序存储结构及其基本运算。 5.线性单链表、双向链表与循环链表的结构及其基本运算。 6.树的基本概念;二叉树的定义及其存储结构;二叉树的前序、中序和后序遍历。 7.顺序查找与二分法查找算法;基本排序算法(交换类排序,选择类排序,插入类排序)。 二、程序设计基础 1.程序设计方法与风格 2.结构化程序设计。 3.面向对象的程序设计方法,对象,方法,属性及继承与多态性。 考试方式 1.公共基础知识的考试方式为笔试,与C语言程序设计(C++语言程序设计、Java语言程序设计、Visual Basic语言程序设计、Visual FoxPro数据库程序设计或Access数据库程序设计)的笔试部分合为一张试卷,公共基础知识部分占全卷的30分。 2.公共基础知识有l0道选择题和5道填空题。 C语言程序设计 基本要求 1.熟悉TURBO C集成环境。 2.熟练掌握结构化程序设计的方法,具有良好的程序设计风格。 3.掌握程序设计中简单的数据结构和算法。 4.TURBO C的集成环境下,能够编写简单的C程序,并具有基本的纠错和调试程序的能力。 考试内容 一、C语言的结构 1.程序的构成,MAIN函数和其他函数。 2.头文件,数据说明,函数的开始和结束标志。 3.源程序的书写格式。 4.C语言的风格。 二、数据类型及其运算 1.C的数据类型(基本类型,构造类型,指针类型,空类型)及其定义方法。 2.C运算符的种类、运算优先级和结合性。 3.不同类型数据间的转换与运算。 4.C表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。 三、基本语句 1.表达式语句,空语句,复合语句。 2.数据的输入与输出,输入输出函数的调用。 3.复合语句。 4.GOTO语句和语句标号的使用。 四、选择结构程序设计 1.用IF语句实现选择结构。 2.用SWITCH语句实现多分支选择结构。 3.选择结构的嵌套。 五、循环结构程序设计 1.FOR循环结构。 2.WHILE和DO WHILE循环结构。 3.CONTINUE语句和BREAK语句。 4.循环的嵌套。 六、数组的定义和引用 1.一维数组和多维数组的定义、初始化和引用 2.字符串与字符数组。 七、函数 1.库函数的正确调用。 2.函数的定义方法。 3.函数的类型和返回值。 4.形式参数与实在参数,参数值的传递。 5.函数的正确调用,嵌套调用,递归调用。 6.局部变量和全局变量。 7.变量的存储类别(自动,静态,寄存器,外部),变量的作用域和生存期。 8.内部函数与外部函数。 八、编译预处理 1.宏定义:不带参数的宏定义;带参数的宏定义。 2.“文件包含”处理。 九、指针 1.指针与指针变量的概念,指针与地址运算符。 2.变量、数组、字符串、函数、结构体的指针以及指向变量、数组、字符串、函数、结构体的指针变量。通过指针引用以上各类型数据。 3.用指针作函数参数。 4.返回指针值的指针函数。 5.指针数组,指向指针的指针,MAIN函数的命令行参数。 十、结构体(即“结构”)与共用体(即“联合”) 1.结构体和共用体类型数据的定义方法和引用方法。 2.用指针和结构体构成链表,单向链表的建立、输出、删除与插入。 十一、位运算 1.位运算符的含义及使用。 2.简单的位运算。 十二、文件操作 只要求缓冲文件系统(即高级磁盘I/O系统),对非标准缓冲文件系统(即低级磁盘I/O系统) 不要求。 1.文件类型指针(FILE类型指针)。 2.文件的打开与关闭(FOPEN,FCLOSE)。 3.文件的读写(FPUTC,FGETC,FPUTS,FGETS,FREAD,FWRITE,FPRINTF,FSCANF函数),文件的定位(REWIND,FSEEK函数)。考试方式 1.笔试:120分钟,满分100分,其中含公共基础知识部分的30分。 2.上机:60分钟,满分100分。 上机操作包括: (1)填空。 (2)改错。 (3)编程。
全国计算机等级考试(National Computer Rank Examination,简称NCRE),是在1994年,经原国家教育委员会(现教育部)批准,由教育部考试中心主办,面向社会,用于考查应试人员计算机应用知识与能力的全国性计算机水平考试体系。它是一种重视应试人员对计算机和软件的实际掌握能力的考试。成绩合格者由教育部考试中心颁发考试合格证书。合格证书用中、英文两种文字书写,全国通用。考试内容:一级考核微型计算机基础知识和使用办公软件及因特网(Internet)的基本技能。考试科目:一级MS Office、一级WPS Office、一级Photoshop应用二级考核计算机基础知识和使用一种高级计算机语言编写程序以及上机调试的基本技能。考试科目:语言程序设计(C、C++、Java、Visual Basic、WEB程序设计)、数据库程序设计(VisualFoxPro、Access、MySQL)、办公软件高级应用(MS Office高级应用)三级分为“嵌入式技术”、“信息安全技术”、“数据库技术”、“网络技术”和软件测试技术五个科目。“信息安全技术”考核计算机信息管理应用基础知识及管理信息系统项目和办公自动化系统项目开发、维护的基本技能;“数据库技术”考核数据库系统基础知识及数据库应用系统项目开发和维护的基本功能;“网络技术”考核计算机网络基础知识及计算机网络应用系统开发和管理的基本技能。四级计算机四级包括软件测试工程师、网络工程师、信息安全工程师、嵌入式系统开发工程师、数据库工程师五个科目四级网络工程师证书表明持有人具有网络系统规划、设计的基本能力,掌握中小型网络系统组建、设备配置调试的基本技术,掌握中小型网络系统现场维护与管理的基本技术,可以从事计算机网络规划、设计、组建与管理的相关工作。四级数据库工程师证书表明持有人掌握数据库系统的基本理论和技术,能够使用SQL语言实现数据库的建立、维护和管理,具备利用工具软件开发基本数据库应用系统的能力,能够胜任中小型数据库的维护、管理和应用开发。四级“软件测试工程师”证书表明持有人具有软件工程和软件质量保证的基础知识,掌握软件测试的基本理论、方法和技术,理解软件测试的规范和标准,熟悉软件测试过程;具备制定软件测试计划和大纲、设计测试用例、选择和运用测试工具、执行软件测试、分析和评估测试结果以及参与软件测试过程管理的能力,满足软件测试岗位的要求。
主要考函数,函数中可能包括指针,数组等。
题型基本椒选择,填空,程序修改,程序编写。
二级C语言考试大纲
计算机等级考试二级C语言考试内容分析
一、C语言的结构
1、 程序的构成,main函数和其他函数
2、 头文件,数据说明,函数的开始和结束标志
3、 源程序的书写格式
4、 C语言的风格
分析:这部分考试形式主要是选择题,一般会出1~2个题,都是基本概念。注意程序的书写格式。
二、数据类型及其运算
1、 C的数据类型(基本类型,构造类型,指针类型,空类型)及其定义方法。
2、 C运算符的种类、运算优先级和结合性。
3、 不同类型数据间的转换与运算。
4、 C表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。
分析:这部分考试形式主要是选择题,一般会出4-5个选择题和2-3个填空题。变量主要搞清楚全局变量(extern)和局部变量(在一个函数中或在一个模块中)。运算符要注意是"左结合"或"右结合",3种逻辑运算符:!(逻辑非)、&&(逻辑与)和||(逻辑或),位运算:&、|和~的运算。另外,条件表达式和逗号表达式也是常考题型。
三、基本语句
1、 表达式语句,空语句,复合语句。
2、 数据的输入与输出,输入输出函数的调用。
3、 复合语句。
4、goto语句和语句标号的使用。
分析:这部分主要讨论基本语句,是编程的基础,一般会出1-2个选择题和1-2个填空题。注意:
1、表达式语句的格式。
2、数据的输入与输出和函数的调用。因为这些都是很基础的事情。
四、选择结构程序设计
1、 用if语句实现选择结构。
2、 用switch语句实现多分枝选择结构。
3、 选择结构的嵌套。
分析:这部分主要讲解了选择结构程序设计,一般会出2-3个选择题和2-3个填空题。单支和多支选择的区别和作用,这部分知识会与后面的循环语句结合使用。
五、循环结构程序设计
1、for循环结构。
2、while和do while循环结构。
3、continue语句和break语句。
4、循环的嵌套。
分析:这部分主要讨论了循环结构程序设计,一般会出2-3个选择题和2-3个填空题。
注意几个问题:
1、for(第一语句,第二语句,第三语句)循环中的各语句的执行顺序。
2、搞清楚当型循环while和直到型循环while的区别。
3、转向语句中的continue(结束本次循环)和break(结束本层循环)的区别。
六、数组的定义和引用
1、 一维数组和多维数组的定义、初始化和引用。
2、 字符串与字符数组。
分析:这部分主要讨论了数组和字符串的概念和运用,一般会出3-4个选择题和2-3个填空题。
注意问题:
1、一维数组中,用起泡法或选择法排序属于长考题型;
2、二维数组初始化时,要正确赋值,行列转换也常考;
3、字符数组的长度注意要多算1位,因为字符数组最后要加"\0"。
七、函数
1、 库函数的正确调用。
2、 函数的定义方法。
3、 函数的类型和返回值。
4、 形式参数和实在参数,参数值的传递。
5、 函数的正确调用,嵌套调用,递归调用。
6、 局部变量和全局变量。
7、 变量的存储类别(自动,静态,寄存器,外部),变量的作用域和生存期。
8、 内部函数与外部函数。
分析:这部分主要讨论了函数的相关知识,一般会出4-5个选择题和3-4个填空题,同时,也是编程的重点。函数之间传递参数有传值和传地址两种传递方式。搞清楚局部变量和全局变量的区别。变量的四种存储类别也要搞清楚。内部函数(本文件的其它函数访问,前加static)和外部函数(可为其它文件调用,前加extern)的区别。
八、编译预处理
1、 宏定义:不带参数的宏定义;带参数的宏定义。
2、 "文件包含"处理。
分析:这部分主要讨论了预编译,一般会出1-2个选择题和1-2个填空题。
这部分好掌握,明确两条:
1、宏定义#define后面的就直接带入,再计算。
2、#include文件包含用双引号和尖括号的区别。
九、指针
1、 指针与指针变量的概念,指针与地址运算符。
2、 变量、数组、字符串、函数、结构体的指针以及指向变量、数组、字符串、函数、结构体的指针变量。通过指针引用以上各类型数据。
3、 用指针作函数参数。
4、 返回指针值的指针函数。
5、 指针数组,指向指针的指针,MAIN函数的命令行参数。
分析:这部分主要讲解了指针的用法,既是难点,又是重点,要灵活掌握。一般会出5-6个选择题和3-4个填空题。难点有指针数组、数组指针和指针的指针。相信大家经过努力学习,且善于总结,都能学好这点知识,主要类型题:指针中的选择排序和冒泡排序,字符串的拷贝和倒序输出,这章的知识要和数组结合起来学习,融会贯通。
十、结构体与共用体
1、 结构体和共用体类型数据的定义方法和引用方法。
2、 用指针和结构体构成链表,单向链表的建立、输出、删除与插入。
分析:这部分主要讲解结构体与共用体的知识,一般会有2-3个选择题和1-2个填空题。结构体所占内存的长度等于各成员占的内存长度之和。共用体变量所占的内存长度等于最长的成员的长度。
十一、位运算
1、 位运算符的含义及使用。
2、 简单的位运算。
分析:这部分主要讲解位运算的知识,一般会出1-2个选择题和0-2个填空题。
主要掌握知识:
1、原码、反码和补码的相互转换。
2、掌握位运算符:"&"、"|" 、"^"、"~"和左移右移的应用。
十二、文件操作
只要求缓冲文件系统(即高级磁盘I/O系统),对非标准缓冲文件系统(即低级磁盘I/O系统)不要求。
1、文件类型指针(FILE类型指针)。
2、文件的打开与关闭(fopen,fclose)。
3、文件的读写(fputc,fgetc,fputs,fgets,fread,fwrite,fprint,fscanf函数),文件的定位(rewind, fseek函数)。
分析:这部分主要讲解文件操作的知识,一般会出1-2个选择题和0-1个填空题。主要掌握:文件的打开和关闭、文件的读写和文件的定位。不要求熟练编写程序,但是,文件操作的程序得读懂,上机编程题中就涉及到文件的操作。