当前位置:文档之家› c语言二级考点(仅供参考)

c语言二级考点(仅供参考)

c语言二级考点(仅供参考)
c语言二级考点(仅供参考)

第1章C语言概述

函数是C程序的基本单位,一个C程序有且仅有一个main函数

c程序是由函数构成的,函数是C程序的基本单位。

第2章程序的灵魂——算法

结构化程序设计方法:自顶向下,逐步细化,模块化设计,结构化编码

第3章数据类型、运算符与表达式

1、标识符的命名规则:C语言中标识符只能由字母、数字下划线三种字符组成,且第一个字符必须为字母或下划线。C语言是大小写敏感语言,即对大小写字母认为是不同的字符。

2、数据类型

(1)整型常量:C语言中的整型常量有三种形式:十进制整型常量、八进制整型常量和十六进制整型常量。十进制整型常量可以用一串连续的十进制数字来表示;八进制整型常量用数字0开头(注意:不是字母O),后面可以跟一串合法的八进制数字;十六进制整型常量用0x或0X开头,后面可以跟一串合法的十六进制数字。

二进制到十进制:从前往后每一位乘以2^n

十进制到二进制:整数部分除2逆序取余,小数部分乘2顺序取整

十进制到八进制:整数部分除8逆序取余,小数部分乘8顺序取整

八进制到十进制:从前往后每一位乘以8^n

十进制到十六进制:整数部分除8逆序取余,小数部分乘8顺序取整

十六进制到十进制:从前往后每一位乘以16^n

n最后均以0结束

整型常量又有短整型(short int)、基本整型(int)、长整型(long int)和无符号型(unsinged)之分。

(2)整型变量:整型变量也可以分为基本型、短整型、长整型和无符号型四种。分别用int,short int(或short),long int(或long),unsigned int(unsigned short,unsigned long)对它们进行定义。

[signed] int 2字节16位-2^15~2^15-1

Usigned int 2字节16位0~2^16-1

Short 2字节16位-2^15~2^15-1

Usigned short 2字节16位0~2^16-1

Long 4字节32位-2^31~(2^31-1)

Usigned long 4字节32位0~2^32-1

(3)实型常量:C语言中的实型常量有两种表示形式:十进制数形式和指数形式。在用指数形式表示实型数据时,字母E可以用小写e代替,指数部分必须是整数(若为正整数时,可以省略″+″号)。

(4)实型变量:C语言中的实型变量分为两种:单精度类型和双精度类型,

分别用保留关键字float和double进行定义。在一般系统中,一个float型数据在内存中占4个字节;一个double型数据占8个字节(一个long double型数据占16个字节)。

(5)字符常量:有两种形式:一是用单引号括起来的一个单字符,如′a′,′?′,′=′;二是″转义字符″,即以″\″开头的字符序列。常用的转义字符见下表。

字符形式功能

\n 换行

\t 横向跳格(即跳到下一个输出区)

\v 竖向跳格

\b 退格

\r 回车

\f 走纸换页

\\反斜杠字符″\″

\′单引号(撇号)字符

\″双引号(″)字符

\ddd 1到3位8进制数所代表的字符,如\123,表示8进制数123

\xhh 1到2位16进制数所代表的字符,如\x21,表示16进制数23

在转义字符赋给字符变量时,也需要在其二侧加单引号,如:

char c=′\n′;

(6)字符变量:字符变量用来存放一个字符常量,字符变量用char来定义。如:

char a,b;

a=′0′;b=′k′;

printf(″%c %c \n″,a,b);

将输出两个字符ok。

不能将一个字符串常量赋给一个字符变量,如:

a=″0″;b=″k″;

是错误的。

给字符变量赋值可以采用如下三种方法:

①直接赋以字符常量,如char=′A′;

②赋以″转义字符″,如:

char c=′\\′;

printf(″%c″,c);

输出一个字符″\″。

③赋以一个字符的ASCII代码,如字符′a′的ASCII代码为97,则

char c=97;

printf(″%c″,c);

将输出一个字符″a″。实际上,字符数据在内存中是以整数形式(字符ASCII代码)存放的,例如,字符′a′的ASCII码为97,在内存字节中的存放形式为:

01 10 00 01

在输出时,如果指定输出字符的格式符″%c″输出,则输出字符′a′(在输出时先将ASCII码转换为字符)。如果指定按输出整数的格式″%d″输出(如printf(″%d″,c)),则输出一个整数97。

应记住,字符数据与整型数据二者间是通用的,可以互相赋值和运算,如:int a=′A′;

char c=97;

print(″%d\n″,c-a);

将输出一个整数32,因为′A′的ASCII码为65。

(7)字符串常量:C语言中的字符串常量是由一对双引号括起来的字符序列。注意不要将字符常量和字符串常量混淆。C语言对字符串常量的长度不加限制,C编译程序总是自动地在字符串的结尾加一个转义字符‘\0’,作为字符串常量的结束标志。C语言中没有专门的字符串变量,如果要把字符串存放在变量中,则要用一个字符型数组来实现。

第4章最简单的C程序设计——顺序程序设计

1、Printf P81表格

2、Scanf P83表格

3、putchar函数的作用是把一个字符输出到标准输出设备(常指显示器或打印机)上。一般调用形式为putchar(ch) ;

其中ch代表一个字符变量或一个整型变量,ch也可以代表一个字符常量(包括转义字符常量)。

4、getchar函数的作用是标准输入设备(通常指键盘)上读入一个字符。一般调用形式为getchar();

getchar函数本身没有参数,其函数值就是从输入设备得到的字符。

第5章选择结构程序设计

1、逻辑运算符C语言提供三种逻辑运算符:&&(逻辑与)、‖(逻辑或)、!(逻辑非)。

关系运算符中的&&和‖运算符的优先级相同,!运算符的优先级高于前两个。

算术运算符、逻辑运算符和关系运算符三者间的优先级关系为:

! →算术运算符→关系运算符→&&→‖

————————————————→

高低

算一半规则:P94页表格下面

2、用switch语句实现多分支选择结构

(1)switch语句是用来处理多分支选择的一种语句。它的一般形式如下:switch(表达式)

{case 常量表达式1:语句1

case 常量表达式2:语句2

case 常量表达式n:语句n

default :语句n+1

(2)switch语句的执行过程是:首先计算紧跟switch后面的一对圆括号中的表达式的值,当表达式的值与某一个case后面的常量表达式的值相等时,就执行此case后面的语句体并将流程转移到下一个case继续执行,直至switch语句的结束;若所有的case中的常量表达式的值都没有与表达式值匹配,又存在default,则执行default后面的语句,直至switch语句结束;如果不存在default,则跳过switch语句体,什么也不做。

3、选择结构的嵌套

if语句和switch语句都可以嵌套使用,特别要注意,对于构成嵌套的if语句,else子句总是和离它最近的、不带else的if子句相匹配,不能弄混;在一个switch语句中的case后面又嵌套了一个switch语句,在执行内嵌的switch语句后还要执行一条break语句才跳出外层的switch语句。

第6章循环控制

1、for循环结构

(1)for循环语句的一般表达式是:

for(表达式1;表达式2;表达式3) 表达式可省,分号不可省

(2)C语言语法规定:循环体语句只能包含一条语句,若需多条语句,应使用{}括起来

2、while和do while循环结构

(1)while语句用来实现″当型″循环结构,它的一般形式如下:

while(表达式)语句

当表达式为非0值时执行while语句中内嵌的语句;当表达式的值为0时,直接跳过while语句后面的语句,执行下一条语句。

(2)while语句执行的特点是:先判断表达式,后执行语句。

(3)do while用来实现″直到型″循环结构,它的一般形式为:

do语句

while(表达式);

这个语句执行时,先执行一次指定的内嵌的语句,然后判别表达式,当表达式的值为非0时,返回新执行该语句,如此反复,直到表达式的值为等于0为止,此时循环结束。

(4)do while语句执行的特点是:先执行语句,后判断表达式。

3、continue语句和break语句

(1)break语句有两个用途:①在switch语句中用来使流程跳出switch结构,继续执行switch语句后面的语句;②用在循环体内,迫使所在循环立即终止,即跳出所在循环体,继续执行循环体后面的第一条语句。break只能用在循环和switch语句中

(2)continue语句结束本次循环,即跳过循环体中尚未执行的语句。在while和do while语句中,continue语句将使控制直接转向条件测试部分,从而

决定是否继续转向循环。在for循环中,遇到continue语句后,首先计算for语句表达式3的值,然后再执行条件测试(表达式2),最后根据测试结果来决定是否继续转向for循环。

4、循环的嵌套

(1)一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。内嵌的循环中还可以嵌套循环,这就是多层循环。

(2)三种循环(while循环、do while循环和for循环)可以互相嵌套。P121 5、P126判断素数,P127求100-200间全部素数

第7章数组

1、(1)strcat函数:连接两个字符数组中的字符串

(2)strcpy函数:字符拷贝函数

(3)strcmp函数:字符比较函数

(4)strlen函数:测试字符串长度的函数,不包括‘/0’

(5)strlwr函数:将字符串中大写字母转换成小写字母

(6)strupr函数:将字符中小写字母转换成大写字母

1-6函数中参数均为地址或者指针类型P146

第8章函数

1、函数不能嵌套定义,但可以嵌套调用。P168用弦截法求根

如果实参表列含有多个实参,C版本对实参的求值顺序是自右向左。(printf中也是自右向左)

函数参数为变量、数组元素时,形参改变不影响实参的值;函数参数为数组名、变量的地址、指针时,形参改变实参的值也随之改变。(值传递和地址传递)注意:不能通过改变指针形参的值而使指针实参的值改变P228程序

2、递归调用:P171

3、数组作为函数参数P177

4、局部变量和全局变量

(1)局部变量

在一函数内部所定义的变量称为局部变量,局部变量只在本函数范围内有效。

注意:

①不同函数可以使用相同的局部变量名,它们将代表不同的对象,互不干扰;

②一个函数的形参也为局部变量;

③在函数内部,复合语句也可定义变量,这些变量也为局部变量,只在此复合语句中有效。

(2)全局变量

在C语言中,程序的编译单位是源程序文件,一个源程序文件中包含一个或多个函数。在函数之外所定义的变量称为外部变量,也称为全局变量。全局变量可以被包含它的源程序文件中的其他函数所共用,作用域为从定义变量的位置开始到源程序文件结束,全局变量可以增加函数之间数据的联系。

注意:当在同一个源程序文件中,全局变量与局部变量同名时,在局部变量的作用范围内,全局变量不起作用,局部变量起作用。

5、变量的存储类别、作用域及生存期

(1)变量的存储类别

在C语言中,有两类存储类别:自动类别及静态类别。

(2)静态变量:静态类别变量的存储空间在程序的整个运行期间是固定的。只赋一次初值。

格式:static数据类型变量名

在上面的说明格式中,static为静态变量的存储类别标识符。

静态变量的初始化在编译时进行,定义时可用常量或表达式进行显式初始化。对于没有初始化的静态变量,自动初始化为0(整型)或0.0(实型)。

注意:静态变量具有可继承性,这与自动变量有所不同。

(3)外部变量:使用extern可使外部变量使用范围扩充到需要使用它的函数。外部变量可作显式的初始化,若不作初始化,系统将自动地初始化为0或0.0。

格式:[extern]数据类型,变量名

上面的说明格式中,extern使外部变量的作用范围扩大到其他源程序文件中。

注意:局部变量既可以说明为自动类别,也可以说明为静态类别;全局变量只能说明为静态类别。

在整个程序运行期间,静态局部变量在内存的静态存储区中占据着永久的存储单元,甚至在退出函数后下次再进入函数时,静态局部变量仍使用原来的存储单元。由于不释放存储单元,所以这些存储单元中的值将会被保留下来。静态局部变量的生存期将一直延长到程序运行结束。

静态局部变量适合于在函数调用之间必须保留局部变量值的独立变量。

(4)全局变量的作用域及生存期

全局变量的作用域为从变量定义的位置开始,到整个源程序文件结束为止。生存期为整个程序的运行期间。

注意:全局变量在整个程序运行期间都占用内存空间。全局变量必须在函数以外定义,因而降低了函数的通用性,影响函数的独立性。使用全局变量时,当全局变量的值意外改变时,会引起副作用,这种错误一般难以查找。

①在同一编译单位内用extern标识符来扩展全局变量的作用域

当全局变量定义后,在引用函数前,应在引用它的函数中用extern对此全局变量进行说明,以便使编辑程序确定此外部变量已被定义,不必再为它分配存储单元,此时的作用域从extern说明开始,到此函数结束。

注意:全局变量的定义只能出现一次,这时不可使用extern标识符。如果多次引用全局变量,这时必须用extern标识符。

②在不同编译单位内用extern标识符来扩展全局变量的作用域

C语言中的不同函数可以存放在不同的源程序文件中,每个源程序文件可以单独进行编译,进行语法检查,再生成目标文件,最后用系统提供的连接程序把多个目标文件连接成一个可执行程序。

③静态全局变量

当用static标识符说明全局变量时,全局变量为静态全局变量。静态全局

变量只能在定义它的源程序文件中使用,不能被其他源程序文件使用。

第9章预处理命令

1、宏定义(不带参数的宏定义,带参数的宏定义)

(1)编译预处理就是对C源程序进行编译前,由″编译预处理程序″对预处理命令行进行处理的过程。

(2)C语言中,凡是以″#″开头的行,都称为″编译预处理″命令行。C 语言中的编译预处命令有:#define,#undef,#include,#if,#else,#elif,#endif,#ifdef,#ifndef,#line,#pragma,#error。这些预处理命令组成的预处理命令行必须在一行的开头以″#″号开始,每行的未尾不得加″;″号,以区别于C语句、定义和说明语句。

(3)不带参数的宏定义:命令的一般形式为:

#define 标识符字符串

定义中的″标识符″为用户定义的标识符,称为宏名。在预编译时,C预编译程序将出现的宏名替换成″字符串″的内容,这一过程也称为宏展开。

(4)带参数的宏定义:命令的一般形式为

#define宏名(形式参数) 字符串

定义中的″字符串″应包含括号中所指定的形式参数。注意宏名与括号之间不要加空格,否则就成为不带参数的宏定义了。

(5)预编译时,遇到带实参的宏名,则按命令行中指定的字符串从左到右进行置换,原则是:遇到实参则以实参代替,非形参字符原样保留,从而成展开后的内容。

2、“文件包含”处理

(1)文件包含的一般形式为:

#include″头文件名″

#include<头文件名>

头文件名一般由C语言提供,也可以是用户自己编写的,头文件通常用.h 作为后缀。

(2)当头文件名用双引号括起来时,系统首先在使用此命令的文件所在的目录中查找被包含的文件,找不到时,再按系统指定的标准方式检索其它目录;当头文件名用尖括号括起来时,则直接按系统指定的标准检索方式查找被包含的文件。

(3)预编译时,将被包含文件的内容全部复制到包含文件中,这就是文件″包含处理″。

3、条件编译

C语言中的条件编译命令可对源程序代码的各部分有选择地进行编译。条件编译主要有如下3种使用格式:

使用格式1:

#ifdef标识符

程序段1

#else

程序段2

#endif

使用格式2:

#ifndef标识符

程序段1

#else

程序段2

#endif

使用格式3:

#if表达式

程序段1

#else

程序段2

#endif

使用格式1表示如果已定义了“标识符”,则编译“程序段1”,否则编译“程序段2”;使用格式2表示如没有定义了“标识符”,则编译“程序段1”,否则编译“程序段2”;使用格式3表示如“表达式”的值为“真”时,则编译“程序段1”,否则编译“程序段2”。

第10章指针

在C语言中,指针是指一个变量的地址,通过变量的地址″指向″的位置找到变量的值,这种″指向″变量地址可形象地看作″指针″。用来存放指针的变量称为指针变量,它是一种特殊的变量,它存放的是地址值。

一个指针变量只能指向同一类型的变量。

与指针和指针变量有关的两个运算符:

(1)*:指针运算符(或称″间接访问″运算符)

(2)&:取地址运算符

通过*号可以引用一个存储单元,如有如下定义:

int i=123,*p,k;

则p=&I;或k=*p;或k=*&I;都将变量i中的值赋给k。

*p=10;或*&i=10;都能把整数10赋给变量i。这里,等号左边的表达式*p和*&i都代表变量i的存储单元。

各类指针数据类型的定义:P276表格

P224 (3),P234 ④

不能通过改变指针形参的值而使指针实参的值改变P228程序

实参与形参传递:P236表格,P238(1)(2)(3)(4)

多维数组与指针:P243表格区分行指针与列指针

字符串与指针:注意初始化方式char *string=“I love you”或char *string;string=“I love you”含义:把字符串第一个字符赋给string,string指向字符串的第一个字符而不是指向整个字符串。与下面数组的初始化区分开char a[10]=“china”不能写成char a[10];a[10]=“china”P257最后(1)(2)(3)(4)

指针数组和指向指针的指针:指针数组*p[4]={“abc”,”def”,”ghi”,”jkl”}中,p[4]为一个元素值为指针的数组;p为数组的首地址,值为地址;p[0]为数组中元素的值,值为串abc的首地址(p[4]为一个元素值为指针的数组);*p[0]值为a(类似字符串指针)P269程序。指向指针的指针:**p可以看成把前面的p[4]换为*p,方法类似。

指针数组做main函数形参:argc即为命令行中参数个数,argv指向第一个参数,对于P274中间的程序,输入的命令为file1 china Beijing,argc就为3,argv就指向file1

指针变量中只能存放地址(指针),不能将任何非地址类型的数据赋给指针变量

字符串与字符数组

1.字符数组的定义

定义方法与前面介绍的类似,只是将数组定义为字符型即可。例如:

char c[10];

这里定义了一个包含10个元素的字符数组c。

2.字符数组的初始化

对字符数组初始化,可以采用以下方法:

(1)逐个字符赋给数组中各元素;

(2)用字符串常量使字符数组初始化。

3.字符串

在C语言中,字符串是作为字符数组来处理的,字符串可以存放在字符型一维数组中,故可以把字符型一维数组作为字符串变量。

字符串常量是用双引号括起来的一串字符。

C语言中约定用′\0′作为字符串的结束标志,它占内存空间,但不计入串的长度,′\0′的代码值为0。

系统对字符串常量也自动加一个′\0′作为结束符。例如″c language″共有10个字符,但在内存中占11个字节,最后一个字节存放′\0′。

4.字符数组的输入输出

(1)逐个字符输入和输出

①在标准输入输出printf和scanf中使用%c格式描述符;

②使用getchar和putchar函数。例如:

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

scanf(″%c″,&str[i]); /*或str[i]=getchar();*/

str[i]=′\0′;/*人为加上串结束标志*/

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

printf(″%c″,str[i]);/*或putchar(str[i]);*/

(2)字符串整体输入输出

①在标准输入输出函数printf和scanf中使用%s格式描述符;

输入形式:

char str[6];

scanf(″%s″,str);

其中str为字符数组名,代表着str字符数组的起始地址,输入时系统自动在每个字符串后加入结束符′\0′。若同时输入多个字符串,则以空格或回车符分隔。

输入形式:

printf(″%s″,str);

输字符串时,遇第一个′\0′即结束。但可人为控制输出串所占的域宽如:printf(″%6s″,str);/*若字符串中字符多于6个,仍将全部输出*/

printf(″%-6s″,str);/*只输出前6个字符,多余的不输出*/

②使用gets和puts函数输入输出一行

gets函数用来从终端键盘读字符,直到遇换行符为止,换行符不属字符串的内容。

调用形式:

gets(str);

str为字符数组名或字符指针,字符串输入后,系统自动将′\0′置于串尾代替换行符。若输入串长超出数组定义长度时,系统报错。

Puts函数用来把字符串的内容显示在屏幕上。

调用形式:

puts(str);

str的含义同上。输出时,遇到第一个′\0′结束并自动换行,字符串中可以含转义字符

字符串的指针以及指向字符串的指针变量

1.用指针方法实现一个字符串的存储和运算

如:

char * strp=″china″;

此处定义了一个字符指针变量strp,变量中存放的是字符串第一个字符的地址。

C语言对字符串常量是按字符数组处理的,它实际上在内存开辟了一个字符数组用来存放字符串变量,并把字符串首地址赋给字符指针变量strp。

在输出时用

printf(″%s\n″,strp);

通过字符数组名或字符指针变量可以输出一个字符串。而对一个数值型数组,是不能企图用数组名输出它的全部元素的。

2.字符指针变量与字符数组

虽然用字符数组和字符指针变量都能实现字符串的存储和运算,但它们二者之间是有区别的,不应混为一谈,主要有以下几点:

(1)字符数组由若干个元素组成,每个元素中放一个字符,而字符指针变量中存放的是地址(字符串的首地址),决不是将字符串放到字符指针变量中。

(2)对字符数组只能对各个元素赋值,不能用以下办法对字符数组赋值。

Char str[14];

str=″I love China!″;

而对字符指针变量,可以采用下面方法赋值:

char *a;

a=″I love China!″;

但注意赋给a的不是字符,而是字符串的首地址。

(3)赋初值时,对以下的变量定义和赋初值:

char *a=″I love China!″;

等价于:

char *a;

a=″I love China!″;

而对数组初始化时:

static char str[14]={″I love China!″};

不能等价于

char str[14];

str[]={″I love China!″};

即数组可以在变量定义时整体赋初值,但不能在赋值语句中整体赋值。

3.字符串处理函数

C语言中没有对字符串进行合并、比较和赋值的运算符,但几乎所有版本的C语言中都提供了有关的库函数。例如:

(1)strcat函数:连接两个字符数组中的字符串

(2)strcpy函数:字符拷贝函数

(3)strcmp函数:字符比较函数

(4)strlen函数:测试字符串长度的函数

(5)strlwr函数:将字符串中大写字母转换成小写字母

(6)strupr函数:将字符中小写字母转换成大写字母

1-6函数中参数均为地址或者指针类型

第11章结构体和共用体

1、结构体:

定义:struct student

{int num;

char name[20];

};

struct student student1;student2;

struct student stu[10];

或者struct student

{int num;

char name[20];

}student1,student2,stu[10];

引用:student1.num或者student1—>num使用方式与变量和数组类似

注意点:P290中间“请分析以下几种运算”

2、共用体

定义:union data

{int num;

char name[20];

};

union data student1;student2;

union data stu[10];

或者union data

{int num;

char name[20];

}student1,student2,stu[10];

共用体长度取决于共用体中最长的量,每次赋值新的值覆盖旧的值。

3、指向结构体类型数据的指针:P289

4、枚举类型:P312

5、链表:p294-305几个程序

6、用typedef命名已有类型:P315

(1)用typedef可以申明各种类型名,但不能用来定义变量

(2)用typedef只是对已经存在的类型指定一个新的类型名,而没有创造新的类型

(3)#define是在预编译时处理的,它只能做简单的字符替换,而typedef是在编译时处理的,实际上它并不是做简单的字符替换

第12章位运算

1、位运算的含义及应用

(1)位的概念

大多数计算机系统的内存储器是由众多的存储单元构成的。在微机中,每个存储单元是1个字节,它由8位二进制数构成,可以表示28=256种信息,各位的编号从0~7,最左边的位(第7位)是最高位,最右边的位(第0位)是最低位。由于二进制本身的特点,各位上的数字不是1,就是0。

数在计算机中是以二进制表示的,但是它并不是简单地以它本身的数值的二进制形式来直接表示,而要进行一定的编码,以方便计算机进行处理。常用的编码有原码、反码、补码三种。

(2)真值与原码

我们将一个十进制数的二进制表示称为这个十进制数的真值,它代表了这个十进制数本身的数值。下表列出了一些数的真值。

真值举例

数二进制表示真值(16位)

1

7 0

1

111 0000000000000000

0000000000000001

0000000000000111

15

1111

0000000000001111

255

4095

65535 11111111

111111111111

1111111111111111 0000000011111111

0000111111111111

1111111111111111

用真值表示的数只能是正数,对于负数,要用“一”号标明,例如:

-7的真值为-0000000000000111 -65535的真值为-1111111111111111 这势必造成用计算机表示数时的不便,故引入了原码表示法。

在原码表示法中,最高位代表符号位,用“1”表示负数,“0”表示正数;余下的数位用来表示真值的绝对值。

数字零存在着两种表示方法:+0与-0。

(3)反码

若采用反码表示,则对应的原码应按照以下方法进行转换:

①如果真值为正,则它的反码与原码相同;

②如果真值为负,则反码的符号位为1,其余各位就是对原码取反(即原码的1变为0,原码的0变为1)。

(4)补码

I为什么要引入补码

补码具有许多独特的优点:首先它可以变减法运算为加法运算,使得计算时步骤统一,速度提高;其次,在这种系统下的“0”只有惟一的一种表示方法,这就是现代的计算机系统中大多采用补码的原因。

II补码的规定

①正数的原码、补码、反码均相同;

②计算负数的补码时,先置符号位为1,再对剩余原码的位数逐位取反,最后对整个数加1。

在微机上以8位二进制数为一字节的存储单元中采用补码系统,它可以存放的最小整数为-128,最大整数为+127。若采用两个字节来表示一个整数,则可表示的最小整数为-32768,最大整数为+32767。

2、简单的位运算

C语言提供了位(bit)运算的功能,这使它像汇编语言一样用来编写系统程序。位运算符共有六种;

位运算符

位运算符含义

& 位与

︳位或

∧位异或

~位取反

<< 位左移

>> 位右移

本节介绍前四种运算,即位的逻辑运算。

(1)按位与运算

①概念

“按位与”运算符“&”是双目运算符,其功能是将参与运算两数的各对应二进位相与。只能对应的两个二进位均为1时,结果位才为1,否则为0。

②“按位与”与运算的特殊用途

ⅰ.清零

如果想将一个存储单元清零,即使其全部二进位为0,可按这样的方法计算:

找一个数,它的补码形式中各位的值符合如下条件:原来的数中为1的位,新数中相应位为0(注意,并不要求原数为0的位上,新数相应位为1,新数相应位可以是0或1);对二者进行&运算。

ⅱ.取一个数中某些字节

对于一个整数a(占2个字节),如要想得到其中的低字节,只需将a与特定的一个数按位与即可。

③要想将一个数的某一位保留下来,可将该数与一个特定的数进行&处理。

(2)按位或运算

“按位或”运算符“︳”是双目运算符,其功能是将参与运算两数的各对应的二进位相或。只要对应的两个二进位有一个为1时,结果位就为1。参与运算的整数均以补码出现。

(3)按位异或运算

①概念

“按位异或”运算符“∧”是双目运算符,其功能是将参与运算两数的各对应位相异或,当两对应的二进位相异时,结果为1,否则为0。参与运算整数仍以补码出现。

②“异或”运算的特殊应用

ⅰ.使特定位翻转

ⅱ.与0相“异或”,保留原值。

ⅲ.交换两个值。

(4)“取反”运算

“~”是一个一元运算符,即它的运算量只有一个,用来对一个二进制数按位取反,即将0变1,1变0。比如说,~025就是对八进制数25(即二进制数000000000010101)按位求反。

3、移位运算

(1)移位运算符

移位运算是对操作数以二进制位为单位进行左移或右移。

移位操作

运算符名称例子运算功能

>> 右移位b>>3 b右移3位

<< 左移位c<<2 c左移2位

(2)左移运算

左移运算符“<<”是双目运算符,其功能把“<<”左边的运算数的各二进位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0。

a<<4

就把a的各二进位向左移动4位。如a=00000011(十进制3),左移4位后为00110000(十进制48)。

(3)右移运算

右移运算符“>>”是双目运算符,其功能是把“>>”左边的运算数的各二进位全部右移若干位,“>>”右边的数指定移动的位数。例如:

a=15,a>>2

表示把000001111右移为00000011(十进制3)。应该说明的是,对于有符号数,在右移时,符号位将随同移动。当为正数时,最高位补0;而为负数时,符号位为1,最高位是补0或1取决于编译系统的规定。Turbo C 规定补1。

右移运算相当于将运算对象除2.

4、位赋值运算

位赋值运算符。

位赋值运算符

运算符名称例子等价于

&= 位与赋值a&=b a=2&b

︳= 位或赋值a|=b a=a|b

∧= 位异或赋值a∧=b a=a∧b

>>= 右移赋值a>>b a=a>>b

<<= 左移赋值a<<=b a=a<

位赋值运算的过程为:

(1)先对两个操作数进行位操作;

(2)然后把结果赋予第一个操作数,因此第一个操作数必须是变量。

位赋值运算与算术赋值运算相似,它们都统称复合赋值运算。

第13章文件

1.文件打开:

FILE *p;

fp=fopen(“file1.c”,“rw”);

打开方式:P333表格

2.文件读写:P334

上机编程题框架:

#include

main()

{FILE *fp;

…..

fp=fopen(“A:\\myf2.out”,”w”);

if(fp==NULL)

{printf(“cannot open file”);

exit(0);}

…..

fprintf(fp,格式控制,参数表列);

fprintf(fp,”\my exam number is :%s”,”123456”);

}

2018计算机二级C语言考试真题汇总

模拟卷 1 1[ 填空题] 下列给定程序中,函数 fun 的功能是:在形参 S 所指字符串中寻找与参数 C相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则不做任何处理。 例如,若 s 所指字符串为“ baacda”, c 中的字符为 a,执行后 S 所指字符串为“ baaaacdaa ”。 请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序:

参考解析: 【参考答案】 【解题思路】 填空 1:for语句循环条件是判断是否到达字符串结尾,即当前字符是否为‘\0 ’。 填空 2:while语句用以确定字符串的长度,所以变量n 赋初值为 0。 填空 3:题目要求如果找到与参数 c 相同的字符,就在后面插入一个相同的字符,且找到后应该给 数组元素赋值,本题目给出参数为 c。 二、程序修改题 2[ 简答题] 下列给定程序中函数 fun 的功能是:逐个比较 p、q 所指两个字符串对应位置上的字符,并把 ASCII 值大或相等的字符依次存放到 c 所指的数组中,形成一个新的字符串。 例如,若主函数中 a 字符串为“aBCDeFgH”,b 字符串为 "Abcd" ,则 c 中的字符串应为“aBcdeFgH”。 请改正程序中的错误,使它能得出正确的结果。

注意:部分源程序在文件MODl1.C中,不得增行或删行,也不得更改程序的结构! 参考解析: 【参考答案】(1)int k=0; (2)while(*p||*q) 【考点分析】 本题考查:变量初始化,需根据题意确定变量含义,然后对其进行初始化操作;while循环语句。 【解题思路】 (1) 变量 k 存放数组 e 的下标,因此应初始化为0。 (2)while循环语句的循环条件是判断两个字符串是否到达结尾。 三.程序设计题 3[ 简答题]

计算机c语言二级考试复习资料

第一章C语言概述 一、选择题: 1、一个C程序的执行是从( A )。 A本程序的main函数开始,到main函数结束 B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C本程序的main函数开始,到本程序文件的最后一个函数结束 D本程序文件的第一个函数开始,到本程序main函数结束 2、在 C 语言中,每个语句必须以( D )结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 3、C 语言规定:在一个源程序中,main函数的位置( C )。 A. 必须在最开始 B. 必须在系统调用的库函数的后面 C. 可以任意 D. 必须在最后 4、一个C 语言程序是由( B )。 A. 一个主程序和若干子程序组成 B. 函数组成 C. 若干过程组成 D. 若干子程序组成 5、下列说法中错误的是( D )。

A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 6、用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( C )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D. 自动保存源文件 二、填空题: 1、C 语言只有 32 个关键字和 9 种控制语句。 2、每个源程序有且只有一个 main 函数,系统总是从该函数开始执行C语言程序。 3、C 语言程序的注释可以出现在程序中的任何地方,它总是以 \* 符号作为开始标记,以 */ 符号作为结束标记。 4、C 语言中,输入操作是由库函数 scanf 完成的,输出操作是由库函 数 printf 完成的。 5、系统默认的C 语言源程序文件的扩展名是 .c ,经过编译后生成的目标文件的扩展名是 .obj ,经过连接后生成的可执行文件的扩展名是 .exe 。 6、C 语言的标识符只能由字母、数字和下划线三种字符组成。 第三章数据类型、运算符和表达式

计算机二级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语言二级考点(完整版) 第一章…… C语言基础知识 第二章……顺序结构 第三章……选择结构 第四章. ……循环结构 第五章……函数 第六章……指针 第七章……数组与指针 第八章……数组与函数 第九章……字符串 第十章……结构体与共用体 第十一章……文件 第一章C语言基础知识 考点1. C语言程序的结构认识 本节通过一个简单的c程序例子,介绍c语言的基本构成、格式、以及良好的书写风格,使读者对c语言有个初步认识。 例1 计算两个整数之和的c程序: #include main() { int a,b,sum; /*定义变量a,b,sum为整型变量*/ a=20; /*把整数20赋值给整型变量a*/ b=15; /*把整数15赋值给整型变量b*/ sum=a+b; /*把两个数之和赋值给整型变量sum*/ printf("a=%d,b=%d,sum=%d\n",a,b,sum); /*把计算结果输出到显示屏上*/ } 重点说明: 1、任何一个c语言程序都必须包括以下格式: main() { } 这是c语言的基本结构,任何一个程序都必须包含这个机构。括号内可以不写任何内容,那么该程序将不执行任何结果。 2、main()----在c语言中称之为“主函数”,一个c程序有且仅有一个main函数,任何一个c程序总是从main函数开始执行,main函数后面的一对圆括号不能省略。 3、被大括号{ }括起来的内容称为main函数的函数体,这部分内容就是计算机要执行的内容。 4、在{ }里面每一句话后面都有一个分号(;),在c语言中,我们把以一个分号结尾的一句话叫做一个c语言的语句,分号是语句结束的标志。 5、printf(“a=%d,b=%d,sum=%d\n”,a,b,sum); ----通过执行这条c语言系统提供给我们直接使用的屏幕输出函数,用户即可看到运行结果,本程序运行后,将在显示器上显示如下结果: a=20,b=15,sum=35 6、#include 注意:(1)以#号开头(2)不以分号结尾

计算机二级C语言测试题

(第一章) 1. 以下关于算法的描述不正确的是__________。 A. 任何一个问题,它的实现算法是唯一的 B. 描述算法常用的表达工具有流程图、N-S图、PAD图、伪码等 C. 算法的最终实现是计算机程序 D. 正确性和清晰易懂性是一个好算法的基本条件 2.下面是一个加法程序,指出存在的逻辑错误和语法错误。 /* 求整数a和b的和 */ main( ) { int a,b; a=8; b=2000; print("%d\n",a-b); } 3.在每个C程序中都必须包含有这样一个函数,该函数的函数名为__________。 A.main B. MAIN C. name D. function 4.以下叙述不正确的是__________。 A.C程序书写格式规定,一行内只能写一个语句 B.main()函数后面有一对花括号,花括号内的部分称为函数体 C.一个C程序必须有main()函数 D.C规定函数内的每个语句以分号结束 5.以下各标识符中,合法的用户标识符为_________。 A.A#C B.mystery C.main D.ab* 6.已知求解某问题的算法如下: ⑴输入a、b、c三个数。 ⑵将a和b比较,较大者放在a中,小者放在b中。 ⑶将a和c比较,较大者放在a中,小者放在c中。 ⑷将b和c比较,较大者放在b中,小者放在c中。 ⑸依次输出a、b、c。 请根据上述算法描述,把算法的功能表达出来。 【答案】把任意输入的三个数a、b、c按降序排列的顺序输出。 7.一个C语言程序可以包括多个函数,程序总是按照如下_________所描述的方式执行当前的程序。 A.从本程序的main()函数开始,到本程序文件的最后一个函数结束。 B.从本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 C.从main()函数开始,到main()函数结束。 D.从本程序文件的第一个函数开始,到本程序main()函数结束。 8.以下叙述正确的是_________。 A.在C程序中,main()函数必须位于程序的最前面。 B.C程序的每行中只能写一条语句。 C.在对一个C程序进行编译的过程中,可发现注释中的拼写错误。 D.C语言本身没有输入输出语句。 答案: 1. A 2.语法错误是print, 应该为printf;逻辑错误是a-b,应该为a+b。 3.A 4.A 5.B 6.把任意输入的三个数a、b、c按降序排列的顺序输出。 7.C 8.D

计算机二级考试C语言练习题及答案

一、选择题 1). 下列叙述中正确的是( )。 A.调用printf( )函数时,必须要有输出项 B.使用putchar( )函数时,必须在之前包含头文件stdio.h C.在C语言中,整数可以以二进制、八进制或十六进制的形式输出 D.调节getchar( )函数读入字符时,可以从键盘上输入字符所对应的ASCII码 正确答案:B 答案解析:选项A,若printf函数没有输出项,且格式字符串中不含格式信息,则输出的是格式字符串本身,若格式字符串含有格式信息,运行时则出现错误提示;选项C,在C 语言中,整数可以十进制、八进制或十六进制的形式输出;选项D,getchar函数是从标准输入设备读取一个字符。 2). 以下结构体类型说明和变量定义中正确的是( ) A.typedef struct { int n; char c; } REC; REC t1,t2; B.struct REC ; { int n; char c; }; REC t1,t2; C.typedef struct REC; { int n=0; char c=′A′; } t1,t2; D.struct { int n; char c; } REC; REC t1,t2; 正确答案:A 答案解析:定义结构体类型的一般形式为:struct 结构体名 {成员列表};struct 结构体名后不能加″;″号,所以选项B、C)错误,选项D中定义无名称的结构体类型同时定义结构体变量形式应为struct t1,t2;选项A为用户自定义类型,其为正确的定义形式。 3). 若实体A和B是一对多的联系,实体B和C是一对一的联系,则实体A和C的联系是( ) A.一对一 B.一对多 C.多对一 D.多对多 正确答案:B 答案解析:由于B和C有一一对应的联系,而A和B只间有一对多的联系,则通过关系之间的传递,则A和C之间也是一对多的联系。 4). 关于C语言的变量,以下叙述中错误的是( ) A.所谓变量是指在程序运行过程中其值可以被改变的量 B.变量所占的存储单元地址可以随时改变 C.程序中用到的所有变量都必须先定义后才能使用 D.由三条下划线构成的符号名是合法的变量名 正确答案:B

计算机等级考试二级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、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、标识符分为关键字、预定义标识符、用户标识符。

全国计算机等级考试二级C语言真题

2009年3月二级C语言笔试真题((1)—(10)每小题2分,(11)—(50)每题1分,共60分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。 (1)下列叙述中正确的是 A)栈是“先进先出”的线性表 B)队列是“先进先出”的线性表 C)循环队列是非线性结构 D)有序性表既可以采用顺序存储结构,也可以采用链式存储结构 (2)支持子程序调用的数据结构是 A)栈B)树C)队列D)二叉树 (3)某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是 A)10B)8C)6D)4 (4)下列排序方法中,最坏情况下比较次数最少的是 A)冒泡排序 B)简单选择排序 C)直接插入排序 D)堆排序 (5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是 A)编译软件 B)操作系统 C)教务管理系统 D)汇编程序 (6)下面叙述中错误的是 A)软件测试的目的是发现错误并改正错误 B)对被调试的程序进行“错误定位”是程序调试的必要步骤 C)程序调试通常也称为Debug D)软件测试应严格执行测试计划,排除测试的随意性 (7)耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是 A)提高耦合性降低内聚性有利于提高模块的独立性 B)降低耦合性提高内聚性有利于提高模块的独立性

C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度D)内聚性是指模块间互相连接的紧密程度 (8)数据库应用系统中的核心问题是 A)数据库设计 B)数据库系统设计 C)数据库维护 D)数据库管理员培训 (9)有两个关系R,S如下: 由关系R通过运算得到关系S,则所使用的运算为 A)选择B)投影C)插入D)连接 (10)将E-R图转换为关系模式时,实体和联系都可以表示为A)属性B)键C)关系D)域 (11)以下选项中合法的标识符是 A)1-1B)1—1C)-11D)1-- (12)若函数中有定义语句:intk;,则 A)系统将自动给k赋初值0 B)这时k中值无定义 C)系统将自动给k赋初值-1 D)这时k中无任何值 (13)以下选项中,能用作数据常量的是 A)o115B)0118C))115L (14)设有定义:intx=2;,以下表达式中,值不为6的是A)x*=x+1 B)x++,2*x C)x*=(1+x)

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

计算机二年级考试C语言 知识点总结 Newly compiled on November 23, 2020

计算机二级考试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)实型数据的合法形式: 就是合法的,且数据是×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

2020年全国计算机二级C语言考试必考重点知识总结

2020年全国计算机二级C语言考试必考重 点知识总结 C语言知识点总结 (1) 一、常量 (3) 二、标识符 (4) 三、变量 (4) 四、表达式 (5) 五、输入输出函数 (8) 六、C语言的语句 (9) 七、C程序的基本结构 (10) 八、选择结构语句 (10) ?if(表达式) 语句1 else 语句2 (10) ?条件运算符表达式1? 表达式2 : 表达式3 (11) ?switch语句 (11) 九、循环结构 (12) ?for循环语句 (12) ?while循环语句do while循环语句 (13) 十、数组 (13) 十一、字符串函数 15 十二、函数

16 十三、指针 18 十四、宏定义 20 十五、结构体,共用体,枚举类型 21 十六、Turbo C的使用错误!未定义书签。

一、常量 ?数字常量 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,注意符号常量名和符号常

计算机二级C语言考试内容

计算机二级 公共基础知识 基本要求 1.掌握算法的基本概念。 2.掌握基本数据结构及其操作。 3.掌握基本排序和查找算法。 4.掌握逐步求精的结构化程序设计方法。 5.掌握软件工程的基本方法,具有初步应用相关技术进行软件开发的能力。 6.掌握数据库的基本知识,了解关系数据库的设计。 考试内容 一、基本数据结构与算法 1.算法的基本概念;算法复杂度的概念和意义(时间复杂度与空间复杂度)。 2.数据结构的定义;数据的逻辑结构与存储结构;数据结构的图形表示;线性结构与非线性结构的概念。 3.线性表的定义;线性表的顺序存储结构及其插入与删除运算。 4.栈和队列的定义;栈和队列的顺序存储结构及其基本运算。 5.线性单链表、双向链表与循环链表的结构及其基本运算。 6.树的基本概念;二叉树的定义及其存储结构;二叉树的前序、中序和后序遍历。

7.顺序查找与二分法查找算法;基本排序算法(交换类排序,选择类排序,插入类排序)。 二、程序设计基础 1.程序设计方法与风格 2.结构化程序设计。 3.面向对象的程序设计方法,对象,方法,属性及继承与多态性。 三、软件工程基础 1.软件工程基本概念,软件生命周期概念,软件工具与软件开发环境。 2.结构化分析方法,数据流图,数据字典,软件需求规格说明书。 3.结构化设计方法,总体设计与详细设计。 4.软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。 5.程序的调试,静态调试与动态调试。 四、数据库设计基础 1.数据库的基本概念:数据库,数据库管理系统,数据库系统。 2.数据模型,实体联系模型及E―R图,从E―R图导出关系数据模型。 3.关系代数运算,包括集合运算及选择、投影、连接运算,数据库规范化理论。

全国计算机二级考试C语言(最全复习资料)

二级公共基础知识作为必考内容出现,出题形式为选择题前10道,占考试总分的10%。 考试其它比重: 1、C语言程序的结构占总分1% 2、数据类型及其运算占总分4% 3、选择结构程序设计占比分的3% 4、循环结构占比分的5% 5、数组的定义和引用占比分的5% 6、函数占比分的5% 7、编译预处理占比分1% 8、指针占比分的5% 9、结构体占比分的3% 10、位运算占比分的2% 11、文件操作占比分的2% 考试方式 上机考试,时长120分钟 单选题40分(含公共基础10分),操作题60分(包括程序填空题、程序修改题、程序设计题) 第一部分 C语言知识复习资料 第一章C语言基本知识(90分) 【考点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】标识符 是标识名字的有效字符序列,可以理解为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】算术运算 算术运算符一共有+、—、*、/、%这五个。求余运算要求运算对象只能为整型,除法运算符两边运算对象都为整型时,运算结果也为整型即舍掉小数部分。 【考点11】强制类型转换 将一个运算对象转换成指定类型,格式为(类型名)表达式,注意小括号位置。 【考点12】赋值 赋值运算符为“=”,不同于关系等于“= =”。赋值表达式格式为:变量名=表达式,赋值运算符左边必须为变量,赋值运算是把赋值运算符右边表达式的值赋给左边变量。

C语言二级考试考点总结

公共基础 1.1算法 特征1)可行性(3)有穷性(运行时间的有限)2)确定性(4)拥有足够的情报(输入可以没有) 结构化程序的组成:顺序结构、选择结构、循环结构。 复杂度:时间复杂度(运算次数)和空间复杂度(存储空间)。两者无直接关系 1.3线性表 在复杂线性表中,由若干项数据元素组成的数据元素称为记录,而由多个记录构成的线性表又称为文件。 线性表存储空间不一定连续,且各元素的存储顺序是任意的。 1.4栈和队列 栈(一端操作)按照“先进后出”(FILO)或“后进先出”(LIFO)组织数据,栈具有记忆作用。 队列(两端操作)是“先进先出”(FIFO)或“后进后出”(LILO)的线性表。(队尾插入,队头删除) 1.6树与二叉树 A B C D E F G H I J K L M N O P Q R 二叉树的遍历: 前序遍历结果是:A、B、D、H、P、Q、I、R、E、J、K、C、F、L、M、G、N、O 中序遍历结果是:P、H、Q、D、R、I、B、J、E、K、A、L、F、M、C、N、G、O 后序遍历结果是:P、Q、H、R、I、D、J、K、E、B、L、M、F、N、O、G、C、A (1)前序遍历(DLR),首先访问根结点,然后遍历左子树,最后遍历右子树; (2)中序遍历(LDR),首先遍历左子树,然后访问根结点,最后遍历右子树; (3)后序遍历(LRD),首先遍历左子树,然后访问遍历右子树,最后访问根结点。 满二叉树是指除最后一层外,每一层上的所有结点有两个子结点,每一层上有2n-1个结点;总共2n-1个结点.完全二叉树是指除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺少右边的若干结点。 叶子结点总是比度为2的结点多一个。总结点数=叶子结点+度为1的结点+度为2的结点.例:某二叉树总共有60个叶子结点和59个度为1的结点,求总结点数(169) 1.7查找技术

2019年计算机二级考试考点C语言的几大考点

2019年计算机二级考试考点C语言的几大考点 导语:###为您整理了2017年全国计算机二级考点模拟试题,方便广大网友查阅!更多计算机软件水平考试相关信息请访问计算机软件水平考试网。 【考点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。

计算机二级C语言要求

基本要求 1. 熟悉Visual C++ 6. 0 集成开发环境。 2. 掌握结构化程序设计的方法,具有良好的程序设计风格。 3. 掌握程序设计中简单的数据结构和算法并能阅读简单的程序。 4. 在Visual C++ 6. 0 集成环境下,能够编写简单的C 程序,并具有基本的纠错和调试程序的能力。 考试内容 一、C 语言程序的结构 1. 程序的构成,main 函数和其他函数。 2. 头文件,数据说明,函数的开始和结束标志以及程序中的注释。 3. 源程序的书写格式。 4. C 语言的风格。 二、数据类型及其运算 1. C 的数据类型(基本类型,构造类型,指针类型,无值类型)及其定义方法。 2. C 运算符的种类、运算优先级和结合性。 3. 不同类型数据间的转换与运算。 4. C 表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。 三、基本语句 1. 表达式语句,空语句,复合语句。 2. 输入输出函数的调用,正确输入数据并正确设计输出格式。 四、选择结构程序设计 1. 用if 语句实现选择结构。 2. 用switch 语句实现多分支选择结构。 3. 选择结构的嵌套。 五、循环结构程序设计 1. for 循环结构。 2. while 和do-while 循环结构。 3. continue 语句和break 语句。 4. 循环的嵌套。 六、数组的定义和引用 1. 一维数组和二维数组的定义、初始化和数组元素的引用。 2. 字符串与字符数组。 七、函数 1. 库函数的正确调用。 2. 函数的定义方法。 3. 函数的类型和返回值。 4. 形式参数与实在参数,参数值的传递。 5. 函数的正确调用,嵌套调用,递归调用。 6. 局部变量和全局变量。 7. 变量的存储类别(自动,静态,寄存器,外部),变量的作用域和生存期。 八、编译预处理 1. 宏定义和调用(不带参数的宏,带参数的宏)。 2. “文件包含冶处理。 九、指针 1. 地址与指针变量的概念,地址运算符与间址运算符。

2020全国计算机等级考试二级C语言知识点全套复习提纲(精华版)

全国计算机等级考试二级C语言全套复习提纲(精华 版)

目录 第一部分公共 基础知识 第1 章算法与数据结构 (1) 考点1 算法 (1) 考点2 数据结构 (1) 考点3 线性表及其顺序存储结构 (1) 考点4 栈和队列 (1) 考点5 线性链表 (2) 考点6 树与二叉树 (2) 考点7 查找技术 (3) 考点8 排序技术 (3) 第2 章程序设计基础.4 考点1 程序设计方法 与风格 (4) 考点2 结构化程序设计 (5) 考点3 面向对象的程序设计 (5) 第3 章 . 软件工程基础 5 考点1 软件工程基本概念 (5) 考点2 软件分析方法6 考点3 结构化设计方法 (7) 考点4 软件测试 (8) 考点5 程序的调试 (9) 第4 章数据库设计基础

(9) 考点1 数据库系统的基本概念 (9) 考点2 数据库系统的基本概念 (10) 考点3 关系代数 (12) 考点4 数据库设计与管理 (12) 第二部分二级 C 语言 第1 章程序设计基本概念 (14) 考点1 程序设计 (14) 考点2 C 程序的结构和格式 (14) 考点3 常量和变量.14 考点4 算术表达式.15 考点5 赋值表达式 .16 考点6 自加、自减和逗号运算 (16) 第2 章顺序结构 (17) 考点1 字符型常量与变量 (17) 考点2 putchar 与getchar 函数 (17) 考点3 printf 函数 (17) 考点4 scanf 函数 (18) 考点5 位运算的含义和应用 (18) 第3 章选择结构 (19) 考点1 关系运算符和关系表达式 (19) 考点2 逻辑运算符和逻辑表达式 (19)

C语言二级考试试题及答案

1.若i,j和k都是int型变量,则表达式(i=4,j=16,k=32,i=j)的值为 A. 4 B. 16 C. 32 D. 52 2.若有函数内部说明:int a[3][4];则数组a中各元素 A. 可在程序的运行阶段得到初值0 B. 可在程序的编译阶段得到初值0 C. 不能得到确定的初值 D. 可在程序的编译或运行阶段得到初值0 3.一个C语言程序是由 A. 一个主程序和若干子程序组成 B. 函数组成 C. 若干过程组成 D. 若干子程序组成 4.若有说明 int a[2][4];则a数组元素的非法引用是 A. a[0][2*1] B. a[1][3] C. a[4-3][0] D. a[0][4] 5.阅读下面程序,则执行后的输出结果是___。 #include "stdio.h" main() {int x,y,z; x=1;y=2;z=3; if(x>y)if(x>z)printf("%d",x); else printf("%d",y); printf("%d\n",z); } A. 0 B. 1 C. 2 D. 3 6.下面程序的输出结果为 main() { int a,b;b=(a=3*5,a*4,a*5); printf("%d",b ;} A. 60 B. 75 C. 65 D. 无确定值 7.下列选项中不是结构化程序基本结构的是 A. 顺序结构 B. 跳转分支结构 C. 选择结构 D. 循环结构 8.所有C函数的结构都包括的三部分是 A. 语句、花括号和函数体 B. 函数名、语句和函数体 C. 函数名、形式参数和函数体 D. 形式参数、语句和函数体 9.设int a=5,b=6,表达式(--b==6)?++a:--b的值是___ A. 5 B. 6 C. 7 D. 4 10.下列叙述中不是C语言的特点的是______。 A. 简洁、紧凑,使用方便、灵活,易于学习和应用 B. C语言是面向对象的程序设计语言 C. C语言允许直接对位、字节和地址进行操作 D. C语言数据类型丰富、生成的目标代码质量高 11.下列关于C语言注释的叙述中错误的是______。 A. 以“/*”开头并以“*/”结尾的字符串为C语言的注释符 B. 注释可出现在程序中的任何位置,用来向用户提示或解释程序的意义 C. 程序编译时,不对注释作任何处理 D. 程序编译时,需要对注释进行处理 12.s1和s2已正确定义并分别指向两个字符串。 若要求:当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是 A. if(s1>s2)S; B. if(strcmp (s1,s2))S; C. if(strcmp(s2,s1)>0) S; D. if(strcmp (s1,s2)>0)S; 13.设i,j,k均为int型变量,则执行完下面的for语句后,k的值为___ 。 for(i=0, j=10; j>=i; i++, j--) k=i+j; A. 10 B. 20 C. 8 D. 0 14.已知:int c[3][4];则对数组元素引用正确的是 A. c[1][4] B. c[1.5][0] C. c[1+0][0]

c语言二级考点(仅供参考)

第1章C语言概述 函数是C程序的基本单位,一个C程序有且仅有一个main函数 c程序是由函数构成的,函数是C程序的基本单位。 第2章程序的灵魂——算法 结构化程序设计方法:自顶向下,逐步细化,模块化设计,结构化编码 第3章数据类型、运算符与表达式 1、标识符的命名规则:C语言中标识符只能由字母、数字下划线三种字符组成,且第一个字符必须为字母或下划线。C语言是大小写敏感语言,即对大小写字母认为是不同的字符。 2、数据类型 (1)整型常量:C语言中的整型常量有三种形式:十进制整型常量、八进制整型常量和十六进制整型常量。十进制整型常量可以用一串连续的十进制数字来表示;八进制整型常量用数字0开头(注意:不是字母O),后面可以跟一串合法的八进制数字;十六进制整型常量用0x或0X开头,后面可以跟一串合法的十六进制数字。 二进制到十进制:从前往后每一位乘以2^n 十进制到二进制:整数部分除2逆序取余,小数部分乘2顺序取整 十进制到八进制:整数部分除8逆序取余,小数部分乘8顺序取整 八进制到十进制:从前往后每一位乘以8^n 十进制到十六进制:整数部分除8逆序取余,小数部分乘8顺序取整 十六进制到十进制:从前往后每一位乘以16^n n最后均以0结束 整型常量又有短整型(short int)、基本整型(int)、长整型(long int)和无符号型(unsinged)之分。 (2)整型变量:整型变量也可以分为基本型、短整型、长整型和无符号型四种。分别用int,short int(或short),long int(或long),unsigned int(unsigned short,unsigned long)对它们进行定义。 [signed] int 2字节16位-2^15~2^15-1 Usigned int 2字节16位0~2^16-1 Short 2字节16位-2^15~2^15-1 Usigned short 2字节16位0~2^16-1 Long 4字节32位-2^31~(2^31-1) Usigned long 4字节32位0~2^32-1 (3)实型常量:C语言中的实型常量有两种表示形式:十进制数形式和指数形式。在用指数形式表示实型数据时,字母E可以用小写e代替,指数部分必须是整数(若为正整数时,可以省略″+″号)。 (4)实型变量:C语言中的实型变量分为两种:单精度类型和双精度类型,

全国计算机等级考试二级C语言考试大纲及重点详解

2014年全国计算机等级考试二级C语言考试大纲 ◆基本要求 1.熟悉Visual C++ 6.0 集成开发环境。 2.掌握结构化程序设计的方法,具有良好的程序设计风格。 3.掌握程序设计中简单的数据结构和算法并能阅读简单的程序。 4.在Visual C++ 6.0 集成环境下,能够编写简单的C程序,并具有基本的纠错和调试程序的能力 ◆考试内容 一、C语言程序的结构 1.程序的构成,main函数和其他函数。 2.头文件,数据说明,函数的开始和结束标志以及程序中的注释。 3.源程序的书写格式。 4.C语言的风格。 二、数据类型及其运算 1.C的数据类型(基本类型,构造类型,指针类型,无值类型)及其定义方法。 2.C运算符的种类、运算优先级和结合性。 3.不同类型数据间的转换与运算。 4.C表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。 三、基本语句 1.表达式语句,空语句,复合语句。 2.输入输出函数的调用,正确输入数据并正确设计输出格式。 四、选择结构程序设计 1.用if语句实现选择结构。 2.用switch语句实现多分支选择结构。 3.选择结构的嵌套。 五、循环结构程序设计 1.for循环结构。 2.while和do-while循环结构。 3.continue语句和break语句。 4.循环的嵌套。 六、数组的定义和引用 1.一维数组和二维数组的定义、初始化和数组元素的引用。 2.字符串与字符数组。 七、函数 1.库函数的正确调用。

2.函数的定义方法。 3.函数的类型和返回值。 4.形式参数与实在参数,参数值传递。 5.函数的正确调用,嵌套调用,递归调用。 6.局部变量和全局变量。 7.变量的存储类别(自动,静态,寄存器,外部),变量的作用域和生存期。 八、编译预处理 1.宏定义和调用(不带参数的宏,带参数的宏)。 2.“文件包含”处理。 九、指针 1.地址与指针变量的概念,地址运算符与间址运算符。 2.一维、二维数组和字符串的地址以及指向变量、数组、字符串、函数、结构体的指针变量的定义。通过指针引用以上各类型数据。 3.用指针作函数参数。 4.返回地址值的函数。 5.指针数组,指向指针的指针。 十、结构体(即“结构”)与共同体(即“联合”) 1.用typedef说明一个新类型。 2.结构体和共用体类型数据的定义和成员的引用。 3.通过结构体构成链表,单向链表的建立,结点数据的输出、删除与插入。 十一、位运算 1.位运算符的含义和使用。 2.简单的位运算。 十二、文件操作 只要求缓冲文件系统(即高级磁盘I/O系统),对非标准缓冲文件系统(即低级磁盘I/O系统)不要求。 1.文件类型指针(FILE类型指针) 2.文件的打开与关闭(fopen,fclose)。 3.文件的读写(fputc,fgetc,fputs,fgets,fread,fwrite,fprintf,fscanf函数的应用),文件的定位(rewind,fseek 函数的应用)。 考试题型 (1)选择。——40 (2)程序填空。——18 (3)程序改错。——18 (4)程序编程。——24 考试时间3.30-4.3 120min 无纸化考试 总体上必须清楚的: 1)程序结构是三种: 顺序结构, 循环结构(三个循环结构), 选择结构(if 和switch)

相关主题
文本预览
相关文档 最新文档