全国计算机等级考试二级C培训讲义.docx
- 文档编号:12637781
- 上传时间:2023-04-21
- 格式:DOCX
- 页数:140
- 大小:229.78KB
全国计算机等级考试二级C培训讲义.docx
《全国计算机等级考试二级C培训讲义.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C培训讲义.docx(140页珍藏版)》请在冰豆网上搜索。
全国计算机等级考试二级C培训讲义
第一章程序设计和C语言
本章考纲:
1.程序的构成,main函数和其他函数。
2.头文件,数据说明,函数的开始和结束标志以及程序中的注释。
3.源程序的书写格式。
4.C语言的风格。
本章考试方式:
以笔试和上机两种形式考核。
笔试中常考查
(1)、
(2)、(4),分值约占2%。
上机程序改错中常考查(3),抽中几率约为8%。
本章知识要点:
1.了解程序设计的基本概念
2.熟记计算机语言的分类
3.重点掌握算法的概念及特性
4.重点掌握C程序构成及书写格式
5.重点掌握上机步骤及编程环境
本章内容:
一、程序:
是指可以被计算机连续执行的一条条指令的集合,是人与机器进行对话的语言。
用程序设计语言编写程序的过程称为程序设计。
二、计算机语言是人与计算机进行交流的工具。
分为机器语言、汇编语言和高级语言。
三、算法:
是为解决一个问题而采取的方法和步骤,可以采用伪代码、流程图和N-S图等进行算法描述。
算法具有:
有穷性、确定性、有效性、零个或多个输入、一个或多个输出的特性。
四、三种基本的控制结构:
顺序、选择、循环结构。
五、C程序构成及书写特点
C程序的基本单位是函数。
一个C程序由一个或多个函数构成,有且只能有一个主函数(main)。
不论main函数在整个程序中的位置如何,C程序的执行总是从main开始到main结束,各函数之间可以相互调用,但其他函数不能调用主函数。
函数的构成形式:
编译预处理命令
返回值类型函数名称(形参类型形参)
{
变量定义
执行语句
/*…注释…*/或者//注释
执行语句
}
……
书写格式:
标识符区分大小写,一般变量采用小写,符号常量采用大写。
C语句用分号(;)表示结束。
但是在预处理命令、函数头、花括号之后不能加分号。
六、上机步骤及开发环境
1.编辑源程序,源程序以“.c”作为扩展名
2.编译,将源程序转换成目标代码,形成“.obj”的二进制文件
3.连接,将目标文件和库函数及其他文件连接,形成可执行的二进制文件“.exe”
4.运行
开发环境:
VC6.0
历年考试真题:
1、下列叙述中错误的是(D)——2006年4月选择第44题
A.C语言源程序经编译后生成后缀为.obj的目标程序
B.C语言经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
C.用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
D.C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
2、下列叙述中错误的是(B)——2006年4月选择第45题
A.算法正确的程序最终一定会结束
B.算法正确的程序可以有零个输出
C.算法正确的程序可以有零个输入
D.算法正确的程序对于相同的输入一定有相同的结果
3、下列叙述中错误的是(A)——2006年9月选择第11题
A.一个C语言程序只能实现一种算法
B.C程序可以由多个程序文件组成
C.C程序可以由一个或多个函数组成
D.一个C函数可以单独作为一个C程序文件存在
4、下列叙述中正确的是(D)——2006年9月选择第12题
A.每个C程序文件中都必须要有一个main()函数
B.在C程序中main()函数的位置是固定的
C.C程序中所有函数之间都可以相互调用,与函数所处位置无关
D.在C程序的函数中不能定义另一个函数
5、在算法中,对需要执行的每一步操作,必须给出清楚、严格的规定,这属于算法的(C)——2007年4月选择第11题
A.正当性
B.可行性
C.确定性
D.有穷性
6、下列叙述中错误的是(D)——2007年4月选择第12题
A.计算机不能直接执行用C语言编写的源程序
B.C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件
C.后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件
D.后缀为.obj和.exe的二进制文件都可以直接运行
7、下列叙述中错误的是(C)——2007年4月选择第14题
A.C语言是一种结构化程序设计语言
B.结构化程序由顺序、分支、循环3种基本结构组成
C.使用3种基本结构构成的程序只能解决简单问题
D.结构化程序设计提倡模块化的设计方法
8、对于一个正常运行的C程序,下列叙述中正确的是(A)—2007年4月选择第15题
A.程序的执行总是从main函数开始,在main函数结束
B.程序的执行总是从程序的第一个函数开始,在main函数结束
C.程序的执行总是从main函数开始,在程序的最后一个函数中结束
D.程序的执行总是从程序中的第一个函数开始,在程序的最后一个函数结束
9、C语言源程序名的后缀是(B)——2007年9月选择第11题
A..exe
B..c
C..obj
D..cp
10、下列叙述中正确的是(C)——2007年9月选择第14题
A.C语言程序将从源程序中第一个函数开始执行
B.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C.C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束
D.main可作为用户标识符,用以命名任意一个函数作为主函数
第二章数据类型及运算
本章考纲:
1.C的数据类型(基本类型、构造类型、指针类型、空类型)及定义方法。
2.C运算符的种类、运算优先级和结合性。
3.不同类型数据间的转换与运算
4.C表达式类型(赋值表达式、算术表达式、关系表达式、逻辑表达式、条件表达式、逗号表达式)和求值规则。
本章考试方式:
以笔试和上机两种形式考核。
笔试中多出现在选择题第13至18题,填空题第6、7题,分值约占10%。
上机考中,
(1)、(3)和(4)是考查重点,在3种题型中均有体现,抽中几率约为56%。
本章知识要点:
1.重点掌握标识符的合法性判断,符号常量的使用
2.重点掌握整型变量和实型变量的分类及说明以及整型常量和实型常量的表示方法
3.熟记字符常量和字符串常量的表示,重点掌握字符运算原理
4.重点掌握数据类型的转换原理及执行过程
5.重点掌握算术运算符的分类及运算符的优先级和结合性
6.重点掌握复合的赋值表达式及表达式类型转换
7.重点掌握自增自减运算符的用法(优先级、结合性和执行过程)
8.重点掌握逗号运算符的执行过程
本章内容:
一、标识符:
由字母、数字和下划线组成,并且必须以字母或下划线开头。
C语言中的关键字不能用作其他用途,如不能用作变量或函数名。
1、以下选项中合法的标识符是(C)——(2009年3月)
A)1_1B)1-1C)_11D)1__
2、以下选项中不合法的标识符是(C)——(2008年4月)
A)printB)FORC)&aD)_00
3、可在C程序中用做用户标识符的一组标识符是(A)——(2007年9月)
A)andB)DateC)HiD)case
_2007y-m-dDr.TomBigl
4、按照C语言规定的用户标识符命名规则,不能出现在标识符中的是(B)——(2007年4月)
A)大写字母B)连接符C)数字字符D)下划线
5、以下不合法的用户标识符是(C)——(2006年4月)
A)j2_KEYB)DoubleC)4dD)_8_
二、常量和变量
在程序运行过程中,其值不能被改变的量称为常量。
符号常量的表示:
#define标识符常量
#definePI3.14159
/*PI就是一个符号常量,代表3.14159*/
main()
{floatr,area;
r=3;
area=PI*r*r;
printf("\narea=%f",area);
}
在程序运行过程中,其值可以改变的量称为变量。
一个变量具有两个要素:
变量名和变量值。
一个变量名实质上是代表内存中的一个存储单元,该单元中的存储的内容就是变量值,通过变量名来引用变量的值。
三、整型数据
整型常量有3种表示方法:
十进制表示法:
123,-456,112L等
八进制表示法:
014,077
十六进制表示法:
0xA0F
注:
只有十进制数可以是负数,其余进制只能是无符号数。
无符号数可用后缀u(U)表示。
整型变量分为以下3类:
基本整型:
用int表示,在VC6内存中占4个字节
短整型:
用shortint或short表示,在内存中占2个字节
长整型:
用longint或long表示,在内存中占4个字节
还可以加上unsigned,将变量定义为无符号型。
四、实型数据
实型常量有两种表示方式:
十进制小数形式:
3.1415、0.123、.145、34.、123f
指数形式:
6.0E3(E或e之前必需有数,之后必须是整数)
实型变量分3类:
单精度:
float占4个字节,有6-7位有效位数
双精度:
double占8个字节,有15-16位有效位数
长双精度:
longdouble占16个字节,有18-19位有效位数
五、字符型数据(在内存中存放的是字符量的ASCII码)
字符常量:
一对单引号括起来的单个字符。
(转义字符),’a’、’\n’
字符变量:
类型说明符char,在内存中占一个字节。
C语言允许对整型变量赋字符值,也允许对字符变量赋整型值。
1、以下选项中不属于字符常量的是(B)——(2008年4月)
A)'C'B)"C"C)'\xCC0'D)'\072'
2、以下合法的字符常量的是(A)
A)'\x13'B)’\081’C)'65'D)”\n”
3、已知大写字母A的ASCII码是65,小写字母a的ASCII码是97。
下列不能将变量c中的大写字母转换为对应小写字母的语句是(D)——(2007年4月)
A)c=(c-‘A’)%26+’a’B)c=c+32
C)c=c-‘A’+’a’D)c=(‘A’+c)%26-‘a’
4、以下选项中,值为1的表达式(B)。
——(2006年9月)
A)1-‘0’B)1-‘\0’C)’1’-0D)’\0’-‘0’
六、字符串常量:
用一对双撇号括起来的零个或多个字符序列。
如:
”china”
在存储字符串时,系统会在字符串的末尾自动加上一个’\0’作为字符串的结束标志,所以“china”在内存中实质是占6个字节的空间。
C语言没有字符串变量,对字符串的处理都是通过字符数组来完成。
1、以下选项中,能用作数据常量的是(D)——(2009年3月)
A)o115B)0118C)1.5e1.5D)115L
2、以下选项中不能作为C语言合法常量的是(A)。
A)'cd'B)0.1e+6C)"\a"D)'\011'
3、以下不合法的数值常量是(C)
A)011B)lelC)8.0E0.5D)0xabcd
4、C源程序中不能表示的数制是(A)。
——(2008年9月)
A)二进制B)八进制C)十进制D)十六进制
5、以下关于long、int和short类型数据占用内存大小的叙述中正确的是(D)——(2007年9月)
A)均占4个字节B)根据数据的大小来决定所占内存的字节数
C)由用户自己定义D)由C语言编译系统决定
6、以下选项中,合法的一组C语言数值常量是(B)——(2007年9月)
A)028B)12.C).177D)0x8A
.5e-30Xa234e1.510,000
-0xf4.5e00abc3.e5
七、变量的定义
C语言规定,变量必须先定义后使用。
变量定义形式:
数据类型变量名1[,变量名2,…….];
如:
intsum,a;
floatscore,b;
charc;
变量在定义时可以初始化,如:
intsum=0,a=1;
floatscore=0.0,b=1.5;
charc=’a’;
此赋初值错误:
intsum=a=1;赋初值只能对单个变量进行。
1、以下选项中正确的定义语句是(C)。
——(2008年9月)
A)doublea;b;B)doublea=b=7;C)doublea=7,b=7;D)double,a,b;
2、以下定义语句中正确的是(B)——(2008年4月)
A)inta=b=0;B)charA=65+1,b='b';
C)floata=1,*b=&a,*c=&b;D)doublea=0.0;b=1.1;
3、下列定义变量的语句中错误的是(D)。
——(2006年9月)
A)int_int;B)doubleint_;C)charFor;D)floatUS$
八、不同数据类型之间的转换
一个运算符两边的运算数类型不一致时,需转换成相同类型,即较低类型转换成教高类型(此过程编译系统自动完成)。
类型转换图:
可以使用强制类型转换,格式:
(类型说明符)(表达式)
如:
(double)a;
(int)(x+y);
(int)x+y;
main()
{floatx;inti;
x=3.6;i=(int)x;
printf("x=%f,i=%d",x,i);
}
结果:
x=3.600000,i=3
main()
{floatx,y;
inti,j;
x=3.6;y=3.8;
i=(int)x+(int)y;
j=(int)(x+y);
printf("i=%d,j=%d",i,j);
}
九、算术运算符
加(+)、减(-)、乘(*)、除(/)、求余(%)、自增(++)、自减(--)
注:
当两个整数进行除法运算时,得到的结果仍然为整数,如5/2=2,要想得到小数,必须将分子或分母中的任意一个转换成浮点数,如1.0/2=0.5。
求余运算要求两侧的操作数均为整型。
运算符都有优先级和结合性,见书后附录。
除单目运算、赋值运算符和条件运算符是右结合性外,其他运算都是左结合性。
1、表达式(int)((double)(5/2)+2.5)的值是【6】——(2009年3月)
答案:
4
2、以下不能正确表示代数式2ab/cd的C语言表达式是(D)。
——(2008年9月)
A)2*a*b/c/dB)a*b/c/d*2C)a/c/d*b*2D)2*a*b/c*d
3、以下选项中,当x为大于1的奇数时,值为0的表达式(D)
A)x%2==1B)x/2C)x%2!
=0D)x%2==0
4、表达式3.6-5/2+1.2+5%2的值是(D)——(2006年4月)
A)4.3B)4.8C)3.3D)3.8
十、赋值运算符合表达式
C语言中的赋值运算符是“=”,其功能是将右侧表达式的值赋给左侧的变量
如:
a=5;b=c=8;
复合的赋值表达式:
变量operater=表达式,operater代表运算符。
如:
a+=5,等价于a=a+5;a+=x+y,等价于a=a+(x+y)
1、设变量已正确定义并赋值,以下正确的表达式是(C)——(2008年4月)
A)x=y*5=x+zB)int(15.8%5)C)x=y+z+5,++yD)x=25%5.0
2、若变量均已正确定义并赋值,以下合法的C语言赋值语句是(A)——(2007年9月)
A)x=y==5;B)x=n%2.5;C)x+n=I;D)x=5=4+1;
3、若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是(A)——(2006年9月)
A)++x,y=x--B)x+1=yC)x=x+10=x+yD)double(x)/10
4、设变量a和b已正确定义并赋初值。
请写出与a-=a+b等价的赋值表达式【6】——(2008年9月)
答案:
a=-b;
十一、自增和自减运算
++和--运算,其功能是使变量的值自动加和减1。
如:
a++,等价于a=a+1
自增和自减有两种用法:
前置运算:
如++a,其运算规则是先使变量的值增(减)1,然后再以变化后的表达式值参与其他运算。
后置运算:
如a++,其运算规则是变量先参与其他运算,然后再使变量的值增(减)1。
1、设有定义:
intx=2;,以下表达式中,值不为6的是(D)——(2009年3月)
A)x*=x+1B)x++,2*xC)x*=(1+x)D)2*x,x+=2
2、设有定义:
intk=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是(A)——(2007年4月)
A)k++B)k+=1C)++kD)k+1
十二、逗号表达式
表达式1,表达式2[,表达式3,…..,表达式n]
其计算过程是从左到右逐个求每个表达式的值,取最右边一个表达式的值作为该逗号表达式的值。
#include
voidmain()
{inta,b;
a=1;
b=(a++,a+3);
printf("a=%d\n",a);
printf("b=%d\n",b);
}
a=2
b=5
1、有以下程序
main()
{intx,y,z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);
}
程序运行后的输出结果是(C)。
——(2006年9月)
A)2,3,3B)2,3,2C)2,3,1D)2,2,1
2、设变量已正确定义为整型,则表达式n=i=2,++i,i++的值为[]
答案:
3
3、以下程序输出结果是[]——(2007年4月)
main()
{inta=10;
a=(3*5,a+4);
printf(“a=%d\n”,a);
}
答案:
14
第三章基本语句
本章考纲:
1.表达式语句、空语句、复合语句。
2.输入输出函数的调用,正确输入数据并正确设计输出格式。
本章考试方式:
多以上机形式考核,在3种题型中均有体现,抽中几率约为35%。
本章知识要点:
1.重点掌握各种语句的使用。
2.熟记scanf和printf函数的格式
3.重点理解scanf函数中地址列表的含义,重点掌握格式控制串中不同字符的作用。
4.重点理解printf函数中格式控制串的含义,重点掌握格式控制串中不同字符的作用。
5.重点理解getchar和putchar函数的作用。
本章内容:
一、C语句分类
C语句可以分为5类:
1.控制语句:
用来实现对程序流程的选择、循环、转向和返回等进行控制。
如:
if等
2.函数调用语句,如:
printf("thisisacprogram”);
3.表达式语句:
在表达式的末尾加上分号构成的语句。
如:
a=a+4;
4.空语句:
单独的一个分号“;”构成的语句。
空语句的执行不产生任何动作,有时用来作流程的转向点,也可以用来作循环语句的循环体。
5.复合语句:
由一对花括号“{}”把一些语句括起来,在语法上作为一个整体对待,相当于一条语句。
如:
{z=x+y;z++;}
1、若函数中有定义语句:
intk;,则(B)——(2009年3月)
A)系统将自动给k赋初值0
B)这时k中值无定义
C)系统将自动给k赋初值-1
D)这时k中无任何值
2、以下能正确定义且赋初值的语句是(B)。
——(2005年9月)
A)intn1=n2=10; B)charc=32;
C)floatf=f+1.1; D)doublex=12.3E2.5;
二、scanf函数
用来从标准输入设备(键盘)输入数据到计算中。
一般格式:
scanf(格式控制串,地址表列)
如:
scanf(“%d%f%c”,&a,&b,&c);
“格式控制串”用来指定每个输入项的输入格式。
通常由若干个格式说明组成,格式说明由“%”开头,后跟格式字符,如“%d”,“%c”等。
格式字符说明见辅导教材p43页。
“地址表列”需要读入的是所有变量的地址或字符串的首地址。
使用说明:
1.除了格式说明符和附加格式字符外,如果还有其他字符,则在输入数据时要求按一一对应的位置原样输入这些字符。
形式1:
scanf(“%d,%d”,&a,&b);
正确的输入方式:
12,35
形式2:
scanf(“a=%d,b=%d”,&a,&b);
正确的输入方式:
a=12,b=35
2.可以指定输入数据所占的列数,系统自动按指定的数据截取所需的数据。
如:
scanf(“%4d%4d”,&a,&b);
当输入12345678时,系统自动将1234赋给a,将5678赋给b。
如:
scanf(“%4c”,&ch);如果从键盘输入xyz3个字符,由于ch只能接收一个字符,系统自动将第一个字符‘x’赋给ch。
3.输入的数值数据之间用间隔符(空格、制表符或回车符)隔开,间隔符数量不限,如果在格式说明中认为制定宽度时,也可以使用此方式。
4.在%后有一个“*”附加格式字符,表示跳过它指定的列数。
5.地址表应该是变量的地址,因此,应该在变量名前加上取地址的运算符“&”。
6.在用“%c”格式输入字符时,空格和转义字符都将作为有效字符进行输入。
如:
scanf(“%c%c%c”,&c1,&c2,&c3);
如果输入ab后按下回车键,则c1、c2、c3的值分别为a、空格、b
7.键盘输入数据的个数应该与格式要求的个数相同,少于要求个数时,函数等待输入,直到满足要求或遇到非法字符为止;多于要求个数时,多余的数据将留在缓冲区作为下一次输入操作的输入数据。
8.在输入数据时,遇到以下情况时该输入结束
●遇到空格,或按回车键或按跳格(TAB)键
●按指定的宽度结束
●遇到非法输入
1、若有定义语句:
doublex,y,*px,*py,执行了px=&x,py=&y;之后,正确的输入语句是(B)——(2009年3月)
A)scanf(“%f%f”,x,y);
B)scanf(“%f%f”,&x,&y);
C)scanf(“%lf%le”,px,py);
D)scanf(“%lf%lf”,x,y);
2、程序段:
intx=12;
doubley=3.141593;printf(“%d%8.6f”,x,y);的输出结果是(A)——(2009年3月)
A)123.141593
B)123.141593
C)12,3.141593
D)123.141593
3、有以下程序
#include
main()
{inta1,a2;charc1,c2;
scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);
printf(“%d,%c,%d,%c”,a1,c1,a2,c2);
}
若想通过键盘输入,使得a1的值为12,a2的是为34,c1的值为字符a,c2的值为字符b,程序输出结果是:
12,a,34,b,则正确的输入格式是(A)(以下_代表空格,
A)12a34b
B)12_a34_b
C)12,a,34,b
D)12_a34_b
4、若变量已正确定义为int型,要通过语句scanf("%d,%d,%
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国 计算机等级考试 二级 培训 讲义
![提示](https://static.bdocx.com/images/bang_tan.gif)