全国计算机二级考试C语言培训资料文档格式.docx
- 文档编号:20191201
- 上传时间:2023-01-17
- 格式:DOCX
- 页数:35
- 大小:41.12KB
全国计算机二级考试C语言培训资料文档格式.docx
《全国计算机二级考试C语言培训资料文档格式.docx》由会员分享,可在线阅读,更多相关《全国计算机二级考试C语言培训资料文档格式.docx(35页珍藏版)》请在冰豆网上搜索。
=
②逻辑运算符:
!
&
&
||
这2种运算符的结果只为0和1。
对逻辑运算符,只看值的真和假(1代表真,0代表假),而不管值的大小,所有的非0值都为真,即1,只有0为假。
如5>
4>
3,其结果为0(先作5>
4运算,得结果1,再用1和3作1>
3运算,得结果0)。
(4)逗号运算符
形式:
表达式1,表达式2,……表达式n
结合性:
从左向右
优先级:
15,只比赋值运算符高
逗号表达式的值:
等于表达式n的值
用途:
常用于循环for语句中
如a=3,a=a+4,a+6。
表达式的值为a+6的值,即13,而a的值为7。
5、三种结构的控制语句
(1)三种结构:
顺序结构,选择结构,循环结构。
(2)选择结构
if–else,switch
①格式:
if(expression)
statement1
[else
statement2]
if-else格式中,if可以单独出现,但else不能单独出现,必须与if配对(配对原则:
else总是和它上面离它最近的未配对的if配对),if-else还可以嵌套。
②格式:
switch(表达式)
{
case
E1:
语句组1;
break;
E2:
语句组2;
…….
En:
语句组n;
[default:
语句组;
]
}
说明:
E1,E2,…En是常量表达式,且值必须互不相同
语句标号作用,必须用break跳出
case后可包含多个可执行语句,且不必加{}
switch可嵌套
多个case可共用一组执行语句
(3)循环结构
①while语句:
格式:
while(表达式)
{循环体语句;
}
先判断表达式,后执行循环体,循环体有可能一次也不执行
循环体可为任意类型语句
下列情况,退出while循环
条件表达式不成立(为零)
循环体内遇break,return。
无限循环:
while
(1)
循环体;
②do-while语句:
do
while(表达式);
先执行循环体,后判断表达式
至少执行一次循环体
do-while
可转化成while结构
③for语句:
格式:
for(循环变量赋初值;
循环条件;
循环变量增值)
{循环体语句;
说明:
for语句中expr1,expr2,expr3类型任意,都可省略,但分号;
不可省
for(;
;
)相当与for(;
1;
)
for语句可以转换成while结构
④三种循环可以嵌套,如:
for(;
4次;
{
……
do
}while(3次);
while(5次)
}
…...
for循环每变化一次,do-while要循环3次,while要循环5次。
⑤break,continue语句
break语句:
功能:
在循环语句和switch语句中,终止并跳出循环体或开关体
break只能终止并跳出最近一层的结构
break不能用于循环语句和switch语句之外的任何其它语句之中
continue语句:
结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断
仅用于循环语句中
6、数组
概念:
构造数据类型之一
数组:
有序数据的集合,用数组名标识
元素:
属同一数据类型,用数组名和下标确定
一维数组的定义:
定义方式:
数据类型数组名[常量表达式];
例
inta[6];
一维数组的初始化:
inta[5]={1,2,3,4,5};
数组不初始化,其元素值为随机数
对static数组元素不赋初值,系统会自动赋以0值
可以只给部分数组元素赋初值
当全部数组元素赋初值时,可不指定数组长度
一维数组的引用:
数组必须先定义,后使用
只能逐个引用数组元素,不能一次引用整个数组
数组元素表示形式:
数组名[下标]
其中:
下标可以是常量或整型表达式
二维数组的定义:
数据类型 数组名[常量表达式][常量表达式];
二维数组的初始化:
inta[2][3]={{1,2},{4}};
二维数组的引用:
数组名[下标][下标];
数组元素的存放顺序
原因:
内存是一维的
二维数组:
按行序优先
字符数组:
定义:
charc[10],ch[3][4];
引用:
charch[6]={“Hello”};
charch[6]=“Hello”;
charch[]=“Hello”;
常用的字符串处理函数:
字符串输出函数puts
puts(字符数组)
向显示器输出字符串(输出完,换行)
字符数组必须以‘\0’结束
字符串输入函数gets
gets(字符数组)
从键盘输入一以回车结束的字符串放入字符数组中,并自动加‘\0’
输入串长度应小于字符数组维数
字符串连接函数strcat
strcat(字符数组1,字符数组2)
把字符数组2连到字符数组1后面
返值:
返回字符数组1的首地址
字符数组1必须足够大
连接前,两串均以‘\0’结束;
连接后,串1的‘\0’取消,新串最后加‘\0’
字符串拷贝函数strcpy
strcpy(字符数组1,字符串2)
将字符串2,拷贝到字符数组1中去
拷贝时‘\0’一同拷贝
不能使用赋值语句为一个字符数组赋值
字符串比较函数strcmp
strcmp(字符串1,字符串2)
比较两个字符串
比较规则:
对两串从左向右逐个字符比较(ASCII码),直到遇到不同字符或‘\0’为止
返回int型整数,
a.若字符串1<
字符串2,返回负整数
b.若字符串1>
字符串2,返回正整数
c.若字符串1==字符串2,返回零
字符串比较不能用“==”,必须用strcmp
字符串长度函数strlen
strlen(字符数组)
计算字符串长度
返回字符串实际长度,不包括‘\0’在内
7、函数
①定义形式:
现代形式:
函数类型
函数名(形参类型说明表)
{说明部分
语句部分}
例
intmax(intx,inty)
intz;
z=x>
y?
x:
y;
return(z);
传统形式:
函数名(形参表)
形参类型说明
{
说明部分
语句部分
例intmax(x,y)
intx,y;
②函数返回值
return(表达式);
或return
表达式;
或return;
功能:
使程序控制从被调用函数返回到调用函数中,同时把返值带给调用函数
函数中可有多个return语句
若无return语句,遇}时,自动返回调用函数
若函数类型与return语句中表达式值的类型不一致,按前者为准,自动转换------函数调用转换
void型函数
③函数参数及其传递方式
形式参数:
定义函数时函数名后面括号中的变量名
实际参数:
调用函数时函数名后面括号中的表达式
实参必须有确定的值
形参必须指定类型
形参与实参类型一致,个数相同
若形参与实参类型不一致,自动按形参类型转换———函数调用转换
形参在函数被调用前不占内存;
函数调用时为形参分配内存;
调用结束,内存释放
值传递方式
方式:
函数调用时,为形参分配单元,并将实参的值复制到形参中;
调用结束,形参单元被释放,实参单元仍保留并维持原值
特点:
形参与实参占用不同的内存单元
单向传递
地址传递方式
函数调用时,将数据的存储地址作为参数传递给形参
形参与实参占用同样的存储单元
“双向”传递
实参和形参必须是地址常量或变量
④函数的嵌套与递归调用
嵌套调用:
C规定:
函数定义不可嵌套,但可以嵌套调用函数
递归调用:
8、宏定义
不带参数宏定义
一般形式:
#define
宏名
[宏体]
功能:
用指定标识符(宏名)代替字符序列(宏体)
例#definePI3.14(用标识符PI代替3.14)
带参宏定义
#define
宏名(参数表)
宏体
例#define
POWER(x)
x*x
9、指针
(1)变量与地址,地址与内容的关系
(2)&
与*运算符
含义:
取变量的地址
单目运算符
2
自右向左
*含义:
取指针所指向变量的内容
注意与乘法运算符区别
(3)指针变量的定义
[存储类型]数据类型*指针名;
int*p1,*p2;
float
*q;
staticchar*name;
指针变量的初始化:
[存储类型]数据类型*指针名=初始地址值
(4)指针变量的使用
与其他变量的使用相类似,区别是一般变量存的是值,而指针变量存的是地址。
针变量必须先赋值,再使用
(5)指针与数组
①int
array[10];
int
*p;
p=&
array[0];
p=array;
//
或int*p=&
或int*p=array;
(组名是表示数组首地址的地址常量)
②针变量的赋值运算
p=&
a;
p)(将变量a地址
p=array;
p)(将数组array首地址
array[i];
p)(将数组元素地址
p1=p2;
p1)(指针变量p2值
整型变量p,也不能把p的值不能把一个整数
指针变量与其指向的变量具有相同数据类型
③指针与数组间的等价关系
对于一维数组:
数组名array表示数组的首地址,即array[0]的地址;
数组名array是地址常量
array+i是元素array[i]的地址
array[i]==*(array+i)
对二维数组inta[3][4]:
a-----二维数组的首地址,即第0行的首地址
a+i-----第i行的首地址
a[i]==*(a+i)------第i行第0列的元素地址
a[i]+j==*(a+i)+j-----第i行第j列的元素地址
*(a[i]+j)==*(*(a+i)+j)==a[i][j]
a+i=&
a[i]=a[i]=*(a+i)=&
a[i][0]值相等,含义不同
a+I==&
a[i],表示第i行首地址,指向行
a[i]==*(a+i)==&
a[i][0],表示第i行第0列元素地址,指向列
(6)指针与函数
函数指针:
函数在编译时被分配的入口地址,用函数名表示
①指向函数的指针变量:
定义形式:
数据类型
(*指针变量名)();
如int
(*p)();
函数指针变量赋值:
如p=max;
函数调用形式:
c=max(a,b);
等价c=(*p)(a,b);
②指针作为函数参数
指针作函数参数,采用的是地址传递。
(7)、指针数组
定义:
数组中的元素为指针变量
[存储类型]数据类型*数组名[数组长度说明];
int*p[4];
8、指针总结
定
义
含义
inti;
定义整型变量i
int*p;
p为指向整型数据的指针变量
inta[n];
定义含n个元素的整型数组a
int*p[n];
n个指向整型数据的指针变量组成的指针数组p
int(*p)[n];
p为指向含n个元素的一维整型数组的指针变量
intf();
f为返回整型数的函数
int*p();
p为返回指针的函数,该指针指向一个整型数据
int(*p)();
p为指向函数的指针变量,该函数返回整型数
int**p;
p为指针变量,它指向一个指向整型数据的指针变量
一、
例题
(1)单选
1、程序的基本单位是
A)程序行 B)语句 C)函数 D)字符
2、下列符号中,不合法的C语言标识符是
。
A.a3b
B.i_f
C._xy
D.3ok
3、下列表达中,是C语言合法的常量的是
A.23
B.‘ab’
C.03
D.3+5
4、程序设计所规定的三种基本控制结构是
A)输入、处理、输出
B)树形、网形、环形
C)顺序、选择、循环
D)主程序、子程序、函数
5、在C语言中,合法的字符常量是(
)
A)'
\084'
B)'
\x43'
C)'
ab'
D)"
\0"
6、下列标识符合法的是(
)。
A)long
B)_po@int
C)3abc
D)main
7、设有intx=11;
则表达式(x++*1/3)的值是
A)3
B)4
C)11
D)12
8、合法的数组定义是(
A)chara[6]="
string"
B)inta[5]={0,1,2,3,4,5};
C)chars="
D)inta[]={0,1,2,3,4,5};
9、设x和y均为int型变量,则以下语句:
x+=y;
y=x-y;
x-=y;
的功能是()
A)把x和y按从大到小排列
B)把x和y按从小到大排列
C)无确定结果
D)交换x和y中的值
10、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()
A)-3
B)9
C)-12
D)6
11、在C语言中,不正确的int类型的常数是
A)32768
B)0
C)037
D)0xAF
12、下列正确的字符常量是()
A)‘\105’
B)’*’
C)’\4F’
D)’\A’
13、y、z和k都是int型变量,则执行表达式:
x=(y=4,z=16,k=32)
后,x的值为(
A)4
B)16
C)32
D)52
14、下列各语句定义了数组,其中哪一个是正确的(
A、inta[5],b[2,3];
B、charno(10);
C、intx[];
D、intx[5]={1,2,3};
15、若变量a、iI已正确定义,且i已正确赋值,合法的语句是()
A)a==1
B)++i;
C)a=a++=5;
D)a=int(i);
16、能正确表示逻辑关系:
“a≥=10或a≤0”的C语言表达式是
A)a>
=10ora<
=0B)a>
=0|a<
=10C)a>
=10&
a<
=0D)a>
=10‖a<
=0
17、以下程序段
intk=0
while(k=1)k++;
while循环执行的次数是
A)无限次
B)有语法错,不能执行
C)一次也不执行
D)执行1次
18、以下叙述正确的是
A)do-while语句构成的循环不能用其它语句构成的循环来代替。
B)do-while语句构成的循环只能用break语句退出。
C)用do-while语句构成的循环,在while后的表达式为非零时结束循环。
D)用do-while语句构成的循环,在while后的表达式为零时结束循环。
19、在C语言程序中(
A、函数的定义可以嵌套,但函数的调用不可以嵌套
B、函数的定义和函数的调用均不可以嵌套
C、函数的定义不可以嵌套,但函数的调用可以嵌套
D、函数的定义和函数的调用均可以嵌套
20、下面能正确进行字符串赋值操作的语句是(
).
A)
chars[5]={“ABCDE”};
B)
chars[5]={‘A’、’B’、’C’、’D’、’E’};
C)
char*s;
s=“ABCDEF”;
D)
scanf(“%s”,s);
21、若有以下定义和语句:
(
intw[2][3],(*pw)[3];
pw=w;
则对w数组元素非法引用是
A)*(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国计算机 二级 考试 语言 培训资料