计算机C语言考纲.docx
- 文档编号:13609772
- 上传时间:2023-06-15
- 格式:DOCX
- 页数:55
- 大小:657.06KB
计算机C语言考纲.docx
《计算机C语言考纲.docx》由会员分享,可在线阅读,更多相关《计算机C语言考纲.docx(55页珍藏版)》请在冰点文库上搜索。
计算机C语言考纲
◆基本要求
1.GoShu8.Com熟悉VisualC++6.0集成开发环境。
2.掌握结构化程序设计的方法,具有良好的程序设计风格。
3.掌握程序设计中简单的数据结构和算法并能阅读简单的程序。
4.在VisualC++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.循环的嵌套。
二级C考试大纲
一、2010年计算机等级考试二级C考试大纲
◆基本要求
1.熟悉VisualC++6.0集成开发环境。
2.掌握结构化程序设计的方法,具有良好的程序设计风格。
3.掌握程序设计中简单的数据结构和算法并能阅读简单的程序。
4.在VisualC++6.0集成环境下,能够编写简单的C程序,并具有基本的纠错和调试程序的能力。
◆考试内容,如下表
◆考试方式
1.笔试:
90分钟,满分100分,其中含公共基础知识部分的30分。
2.上机:
90分钟,满分100分
3.上机操作包括:
(1)填空。
(2)改错。
(3)编程。
二、最近3次二级C真题分析(考核内容、题型及分数分布)
◆2010年3月二级C真题考核内容、题型及分数分布
◆2009年9月二级C真题考核内容、题型及分数分布
三、第一章考核知识点分析第1章程序设计基本概念
1.1程序和程序设计
1.1.1C程序
连续执行的一条条指令的集合称为“程序”。
计算机并不能直接识别由高级语言编写的程序,它只能接受和处理由0和1的代码构成的二进制指令或数据。
这种形式的指令称为“机器语言”。
每条C语句,经过编译(Compile)最终都将转换成二进制的机器指令。
由C语言构成的指令序列称为C源程序。
C源程序经过C编译程序编译之后生成一个后缀为.OBJ的二进制文件(称为目标文件),然后由“连接程序”(Link),把此.OBJ文件与C语言提供的各种库函数连接起来生成一个后缀为.EXE的可执行文件。
在操作系统环境下,只需点击或输入此文件的名字(而不必输入后缀.EXE),该可执行文件就可运行。
1.1.2程序设计
简单的程序设计一般包含以下几个部分:
确定数据结构、确定算法、编码、在计算机上调试程序、整理并写出文档资料。
◆【例题分析】
(2007.4试题)下列叙述中错误的是(D)
A)计算机不能直接执行用C语言编写的源程序
B)C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件
C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件
D)后缀为.obj和.exe的二进制文件都可以直接运行
(2009.9试题)以下叙述中正确的是(D)A)程序设计的任务就是编写程序代码并上机调试
B)程序设计的任务就是确定所用数据结构
C)程序设计的任务就是确定所用算法
D)以上三种说法都不完整
1.2算法
学习计算机程序设计语言的目的,是要用语言作为工具,设计出可供计算机运行的程序。
有了一个好的算法,就可以用任何一种计算机高级语言把算法转换为程序(编写程序)。
算法是指为解决某个特定问题而采取的确定且有限的步骤。
一个算法应当具有以下五个特性:
有穷性、确定性、可行性、有零个或多个输入、有一个或多个输出。
算法可以用各种描述方法来进行描述,最常用的是伪代码、流程图和N-S流程图。
1.3结构化程序设计和模块结构
1.3.1结构化程序
结构化程序由三种基本结构组成:
顺序结构、选择结构、循环结构。
1.3.2模块化结构
当计算机在处理较复杂的任务时常常把这个复杂的任务分解为若干个子任务,每个子任务又分成很多个小子任务,每个小子任务只完成一项简单的功能。
在程序设计时,用一个个小模块来实现这些功能,每个程序设计人员分别完成一个或多个小模块。
我们称这样的程序设计方法为“模块化”的方法,由一个个功能模块构成的程序结构为模块化结构。
在进行程序设计时,首先应当集中考虑主程序中的算法,写出主程序后再动手逐步完成子程序的调用。
对于这些子程序也可用调试主程序的同样方法逐步完成其下一层子程序的调用。
这就是自顶向下、逐步细化、模块化的程序设计方法。
c语言是一种结构化程序设计语言。
它提供了三种基本结构的语句;提供了定义“函数”的功能,在c语言中没有子程序的概念,它提供的函数可以完成子程序的所有功能;C语言允许对函数单独进行编译,从而可以实现模块化。
另外,c语言还提供了丰富的数据类型。
这些都为结构化程序设计提供了有力的工具。
第一章补充知识点
四、第一章补充知识点
1、C语言由函数组成,有且仅有一个主函数--main(),一个程序总是从主函数开始执行;
2、C语言的语句由“;”结束,书写格式自由,一行可写多个语句,一个语句可分多行书写;
3、C程序是大小写敏感的(严格区分字母大小写);
◆【例题分析】
(2010.3试题)以下叙述正确的是(B)
A)C语言程序是由过程和函数组成的
B)C语言函数可以嵌套调用的,例如:
fun(fun(x))
C)C语言函数不可以单独编译
D)C语言中除了main函数,其他函数不可作为单独文件形式存在
(习题)以下说法中正确的是(C)
A)C语言程序总是从第一个定义的函数开始执行
B)在C语言程序中,要调用的函数必须在main()函数中定义
C)C语言程序总是从main()函数开始执行
D)C语言程序中的main()函数必须放在程序的开始部分
4、C程序的文件扩展名必须是.c;
5、C语言的两种注释方式:
//行尾注释或/*块注释*/;
6、使用输入/出库函数时需在预处理命令中包含stdio.h头文件;
7、要求熟记本章中出现的几种定界符:
<>、""、;、()、\n、//等;◆【例题分析】
(2007.9试题)C语言源程序名的后缀是(B)
A).exe
B).C
C).obj
D).cp
(2008.4试题)以下叙述中正确的是(C)
A)C程序中的注释只能出现在程序的开始位置和语句的后面
B)C程序书写格式严格,要求一行内只能写一个语句
C)C程序书写格式自由,一个语句可以写在多行上
D)用C语言编写的程序只能放在一个程序文件中8、程序员要养成良好的编程风格:
加注释、低格格式等;
9、编写C程序的一般流程:
定义变量(声明区,须在程序开始部分)、变量初始化、计算或处理、输出结果;
10、熟悉C语言32个关键字、34个运算符、9种控制语句。
◆【例题分析】
(2010.3试题)以下关于C语言的叙述中正确的是(A)
A)C语言中的注释不可以夹在变量名或关键字的中间
B)C语言中的变量可以在使用之前的任何位置进行定义
C)在C语言算述表达式的书写中,运算符两侧的运算数类型必须一致
D)C语言的数值常量中夹带空格不影响常量值的正确表示
11、自定义函数由函数首部+函数体{…}组成
函数首部格式为:
类型名+函数名+([参数类型参数名,参数类型参数名,……]);
例:
intmax(intx,inty)
{
……
}
12、系统已经定义好了的函数称库函数,如scanf()、printf()等,库函数可在C:
\ProgramFiles\MicrosoftVisualStudio\VC98\Include路径下查到;
13、函数调用使用实参,函数定义使用形参。
例:
#include
main()
{
inta,b,c;
printf("请输入用逗号隔开的2个数:
\n");
scanf("%d,%d",&a,&b);
c=max(a,b); //函数调用
printf("两个数中较大的数=%d\n",c);
}
intmax(intx,inty) //函数定义,函数首部
{ //{}函数体
intz;
if(x>y)z=x;
elsez=y;
return(z);
}
五、第一章能力点
1、使用VisaulC++6.0调试C程序的能力;
2、VisaulC++6.0中识读出错信息的能力;
3、编写简单的C程序的能力。
思考:
体会学习C语言的三个境界
(1)了解C语言基础知识,模仿例题程序编写一些简单的程序,能读懂一些简单的程序,如二级C考试;
(2)能熟练运用C语言进行C程序设计,如大学生ACM程序设计竞赛;
(3)能熟练运用C语言进行C程序设计,能读懂C程序设计的算法进行程序填空,如计算机资格与水平考试。
第二章考核知识点分析
第2章C程序设计的初步知识
2.1简单C语言程序的构成和格式
例2.1求矩形的面积。
程序如下:
#include
main()
{
doublea,b,area;
a=1.2; /*将矩形的两条边长分别赋给a和b*/
b=3.6;
area=a*b; //计算机矩形的面积并存储到变量area中b
printf(“a=%f,b=%f,area=%f\n”,a,b,area);/*输出矩形的两条边长和面积*/
}
2.2标识符、常量和变量
2.2.1标识符
在C语言中,有许多符号的命名,如变量名、函数名、数组名等,都必须遵守一定的规则,按此规则命名的符号称为标识符。
合法标识符的命名规则是:
标识符可以由字母、数字和下划线组成,并且第一个字符必须为字母或下划线。
在C语言程序中,凡是要求标识符的地方都必须按此规则命名。
以下都是合法的标识符:
area、PI、_ini、a_array、sl234、Pl01P。
以下都是非法的标识符:
456P、cade-Y、W.W、a&b。
C语言的标识符可以分为以下三类:
关键字、预定义标识符、用户标识符。
2.2.2常量
所谓常量是指在程序运行过程中,其值不能被改变的量。
在C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。
整型常量还可以进一步分为短整型常量、长整型常量等。
整型常量和实型常量又称数值型常量,它们有正值和负值的区分。
基本整型常量只用数字表示,不带小数点,例如12、-1、0等。
实型常量必须用带小数点的数表示,例如3.14159、-2.71828、0.0等。
'A'和'd'则是字符型常量,而”NCRE”和”Beijing”是字符串常量。
2.2.3符号常量
在C语言程序中,可以用一个符号名来代表一个常量,称为符号常量。
这个符号名必须在程序中进行特别的”指定”,并符合标识符的命名规则。
例2.2计算圆面积。
#definePI3.14159/*定义符号名Pl为3.14159*/
main()
{
doubler,s;r=5.0:
s=PI*r*r:
printf(“s=%f\n”,s);
}
2.2.4变量
所谓变量是指在程序运行过程中其值可以改变的量。
程序中用到的所有变量都必须有一个名字作为标识,变量的名字由用户定义,它必须符合标识符的命名规则。
如例2.1中的a、b和area就是由用户定义的变量名。
一个变量实质上是代表了内存中的某个存储单元。
在程序中,变量a就是指用a命名的某个存储单元,用户对变量a进行的操作就是对该存储单元进行的操作;给变量a赋值,实质上就是把数据存入该变量所代表的存储单元中。
C语言规定,程序中所有变量都必须先定义后使用。
对变量的定义通常放在函数体内的前部,但也可以放在函数的外部或复合语句的开头。
像常量一样,变量也有整型变量、实型变量、字符型变量等不同类型。
在定义变量的同时要说明其类型,系统在编译时就能根据其类型为其分配相应的存储单元。
◆【例题分析】◆【例题分析】
(2010年3月)以下C语言用户标示符中,不合法的是(D)
A)_1
B)AaBc
C)a_b
D)a-b
(2009年9月)以下选项中,能用作用户标识符的是(C)
A)void
B)8_8
C)_0_
D)unsigned
(2009年3月)以下选项中合法的标识符是(C)
A)1_1
B)1-1
C)_11
D)1__。
整型数据
2.3 整型数据
2.3.1 整型常量
整型常量可以用十进制、八进制和十六进制等形式表示。
八进制数,如010、011、016等。
十六进制数用数字0和字母X(或大写字母X)开头,如Ox10、OXde、Oxf等都是合法的十六进制数。
十六进制数中的字母a、b、e、d、e、f既可以用小写也可以用大写。
只有十进制数可以是负数,而八进制和十六进制数只能是正整数。
在VC6.0中可以在长整型常量的后面加一个字母l(L的小写)或L,例如:
l23L、3451、OL、123456L等,这些常量在内存中占四个字节。
无符号整数在数的末尾应该加上字母后缀u或U,若是长整型无符号整型常量,则可以加后缀lu或LU。
2.3.2 整型变量整型变量可以分为基本型(int)、短整型(shortint)、长整型(int或longint)、无符号型(unsigned)四种。
不同的编译系统为int变量开辟的内存单元大小不同。
VC6.0为int变量开辟4个字节(32个二进制位)的内存单元,允许存放的数值范围是:
-2147483648~2147483647。
整型的变量只能存放整型数值。
若不指定变量为无符号型,则变量隐含为有符号型(signed)。
短整型无符号常量的取值应在0~65535范围内,长整型无符号常量的取值在0~4294967295的范围内。
注意:
无符号常量不能表示成小于0的负数,例如:
-200U是不合法的。
2.3.3 整型数据的分类
前面介绍的int类型通常称为基本整型。
除此之外,C语言中整型数据还有其他三种类型:
短整型(shortint)、长整型(int或longint)、无符号型(unsigned)。
若不指定变量为无符号型,则变量隐含为有符号型(signed)。
不同的编译系统或计算机系统对这几类整型数所占用的字节数有不同的规定。
下表显示了TurboC中各种类型的整数的类型说明符及表示数的范围。
2.3.4 整数在内存中的存储形式
1、位、字节、字长
计算机中,内存储器的最小存储单位称为“位(bit)”。
由于只能存放0或1,因此称为二进制位。
大多数计算机把8个二进制位组成一个“字节(byte)”,并给每个字节分配一个地址。
若干字节组成一个“字(word)”,用一个“字”来存放一条机器指令或一个数据。
一个字含多少个字节随机器的不同而不同,如32位机器、64位机器。
2、有符号数
通常把一个字节中的最右边一位称为最低位,最左边一位称为最高位。
对于一个有符号整数,其中最高位(最左边的一位)用来存放整数的符号,称为符号位。
若是正整数,最高位放置0;若是负整数,最高位放置1。
在内存中正整数用“原码”形式存放,负整数是以“补码”形式存放的。
例如,求10000101(十进制数-5)的补码,步骤如下:
(1)求原码的反码。
把原码除符号位之外的二进制码按位取反,即把1变成0,0变成1,即得到该原码的反码。
例如10000101的反码为11111010。
(2)把所得的反码加1,即得到原码的补码。
因此11111010加1得11111011,这就是-5在内存中的二进制码。
若用两个字节表示,即为:
111111*********13、无符号数
用两个字节存放一个整数时,若说明为无符号整数,则最高位不再用来存放整数的符号,16个二进制位全部用来存放整数,因此无符号整数不可能是负数。
这时,若内存中存放的16个二进制位全部为1,则它所代表的整数就不再是-1,而是65535。
◆【例题分析】
(2009年3月)若函数中有定义语句:
intk;,则(B)
A)系统将自动给k赋初值0
B)这时k中的值无定义
C)系统将自动给k赋初值-1
D)这时k中无任何值
(2008年9月)C源程序中不能表示的数制是(A)
A)二进制
B)八进制
C)十进制
D)十六进制(习题)以下选项中正确的整型常量是(B)
A)12.
B)-20
C)1,000
D)456实型数据
2.4 实型数据
2.4.1 实型常量
实型常量又称实数或浮点数。
在C语言中可以用两种形式表示一个实型常量。
在内存中,实数一律是以指数形式存放的。
1、小数形式
小数形式是由数字和小数点组成的一种实数表示形式,例如1.123、.123、123.、0.0等都是合法的实型常量。
注意:
小数形式表示的实型常量必须要有小数点。
2、指数形式
以“e”或“E”后跟一个整数来表示以10为底的幂数。
2.3026可以表示为0.23026E1、2.3026e0、23.026e-1。
C语言的语法规定,字母e或E之前必须要有数字,且e或E后面的指数必须为整数。
如e3、.5e3.6、.e3、e等都是非法的指数形式。
注意:
在字母e或E的前后以及数字之间不得插入空格。
2.4.2 实型变量
C语言中实型变量分为单精度型和双精度型两种,分别用类型名float和double进行定义。
在一般计算机系统中,为float类型的变量分配4个字节的存储单元,为double类型的变量分配8个字节的存储单元。
实型的变量只能存放实型数,不能用整型变量存放一个实数,也不能用实型变量存放一个整数。
在VC6.0中单精度实数(float类型)的数值范围约在-1038~1038之间,并提供7位有效数字位;绝对值小于l0-38的数被处理成零值。
双精度实数(double类型)的数值范围约在-10308~10308之问,并提供l5~16位有效数字位,具体精确到多少位与机器有关;绝对值小于l0-308的数被处理成零值。
因此double型变量中存放的数据要比float型变量中存放的数据精确得多。
注意,在VC6.0中,所有的float类型数据在运算中都自动转换成double型数据。
注意:
在计算机中可以精确地存放一个整数,不会出现误差,但实型数的数值范围较整型大,还往往存在误差
◆【例题分析】
(2009年3月)以下选项中,能用作数据常量的是(D)
A)o115
B)0118
C)1.5e1.5
D)115L
(习题)以下选项中正确的实型常量是(B)
A)0
B)3.1415
C)0.329×102
D).872
(习题)以下选项中不正确的实型常量是(B)
A)2.607E-1
B)0.8103e2
C)-77.77
D)456e-2赋值表达式
2.6 赋值表达式
2.6.1 赋值运算符和赋值表达式
在C语言中,赋值号“=”是一个运算符,称为赋值运算符。
由赋值运算符组成的表达式称为赋值表达式,其形式如下:
变量名=表达式
赋值号的左边必须是一个代表某一存储单元的变量名,对于初学者来说,只要记住赋值号左边必须是变量名即可。
赋值号的右边必须是C语言中合法的表达式。
赋值运算的功能是先求出右边表达式的值,然后把此值赋给赋值号左边的变量,确切地说,是把数据存入以该变量为标识的存储单元中去。
例如,a和b都被定义成int类型变量:
a=10; /*把常量10赋给变量a*/
b=a; /*把a中的值赋给变量b,a中的值不变*/
在程序中可以多次给一个变量赋值,每赋一次值,与它相应的存储单元中的数据就被更新一次,内存中当前的数据就是最后一次所赋的那个数据。
2.6.2 复合赋值表达式
在赋值运算符之前加上其他运算符可以构成复合赋值运算符。
C语言规定可以使用10种复合赋值运算符,其中与算术运算有关的复合赋值运算符有:
+=、-=、*=、/=、%=(注意:
两个符号之间不可以有空格)。
复合赋值运算符的优先级与赋值运算符的优先级相同。
表达式n+=1的运算规则等价于n=n+1,表达式n*=m+3的运算规则等价于n=n*(m+3),因为运算符“+”的优先级高于复合赋值运算“*=”。
其他以此类推。
赋值运算符与位运算结合的5种复合赋值运算符:
&=、^=、!
=、<<=、>>=。
例,已有变量a,其值为9,计算表达式a+=a-=a+a的值。
计算a-=a+a,得a=-9,再计算a+=-9,结果a=-18。
2.6.3 赋值运算中的类型转换
在赋值运算中,只有在赋值号右侧表达式的类型与左侧变量类型完全一致时,赋值操作才能进行。
如果赋值运算符两侧的数据类型不一致,在赋值前,系统将自动先把右侧表达式求得的数值按赋值号左边变量的类型进行转换,也可以用强制类型转换的方式人为地进行转换后将值赋给赋值号左边的变量。
这种转换仅限于数值数据之间,通常称为“赋值兼容”。
对于另外一些数据,例如后面将要讨论的地址值就不能赋给一般的变量,称为“赋值不兼容”。
◆【例题分析】
(2009年3月)设有定义:
intx=2;以下表达式中,值不为6的是(D)
A)x*=x+1
B)x++,2*x
C)x*=(1+x)
D)2*x,x+=2
(2010年3月)若有定义语句:
intx=10;,则表达式x-=x+x的值为(B)
A)-20
B)-10
C)0
D)10自增、自减运算符和逗号运算符
2.7 自增、自减运算符和逗号运算符
2.7.1 自增运算符“++”和自减运算符“--”
(1)自增/减运算符“++/--”的运算结果是使运算对象的值增1或减l。
如i++,相当于i=i+1;i--,相当于i=i-1。
因此,自增或自减运算本身也是一种赋值运算。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 语言
![提示](https://static.bingdoc.com/images/bang_tan.gif)