全国计算机二级C语言完整复习资料.docx
- 文档编号:12646414
- 上传时间:2023-04-21
- 格式:DOCX
- 页数:74
- 大小:67.14KB
全国计算机二级C语言完整复习资料.docx
《全国计算机二级C语言完整复习资料.docx》由会员分享,可在线阅读,更多相关《全国计算机二级C语言完整复习资料.docx(74页珍藏版)》请在冰豆网上搜索。
全国计算机二级C语言完整复习资料
全国计算机二级C语言(完整复习资料)
考试题型
(1)选择。
——40(40个)
(2)程序填空。
——18(1个)
(3)程序改错。
——18(1个)
(4)程序编程。
——24(1个)
考试时间3.30-4.3
120min无纸化考试
进制之间的转换
二进制与八进制之间的联系:
二进制八进制
0000
0011
0102
0113
1004
1015
1106
1117如00100000则000100000(二进制)
040(八进制)
十进制转二进制:
除2取余法
二进制转十进制:
2的幂次法
八进制转十进制:
除8取余法
附录很重要!
!
尤其是红色字体的。
附录A常用字符与ASCII代码对照表(这个记048,065,097三个就好)
ASCⅡ值
字符
ASCⅡ值
字符
ASCⅡ值
字符
ASCⅡ值
字符
000
NUL
037
%
074
J
111
O
001
SOH
038
&
075
K
112
p
002
STX
039
‘
076
L
113
q
003
ETX
040
(
077
M
114
r
004
EOT
041
)
078
N
115
s
005
END
042
*
079
O
116
t
006
ACK
043
+
080
P
117
u
007
BEL
044
,
081
Q
118
v
008
BS
045
-
082
R
119
w
009
HT
046
。
083
S
120
x
010
LF
047
/
084
T
121
y
011
VT
048
0
085
U
122
z
012
FF
049
1
086
V
123
{
013
CR
050
2
087
W
124
|
014
SO
051
3
088
X
125
}
015
SI
052
4
089
Y
126
~
016
DLE
053
5
090
Z
017
DC1
054
6
091
[
018
DC2
055
7
092
\
019
DC3
056
8
093
]
020
DC4
057
9
094
^
021
NAK
058
:
095
_
022
SYN
059
;
096
023
ETB
060
<
097
a
024
CAN
061
=
098
b
025
EM
062
>
099
c
026
SUB
063
?
100
d
027
ESC
064
@
101
e
028
FS
065
A
102
f
029
GS
066
B
103
g
030
RS
067
C
104
h
031
US
068
D
105
i
032
(space)
069
E
106
j
033
!
070
F
107
k
034
“
071
G
108
l
035
#
072
H
109
m
036
$
073
I
110
n
附录BC语言中的关键字
auto
break
case
char
const
continue
default
do
double
else
enum
extern
float
for
goto
if
int
long
register
return
short
signed
sizeof
static
struct
switch
typedef
union
unsigned
void
volatile
while
附录C运算符和结合性
优先级
运算符
含义
要求运算
对象的个数
结合方向
1
()
圆括号
自左至右
[]
下标运算符
->
指向结构体成员运算符
·
结构体成员运算符
2
!
逻辑非运算符
1
(单目运算符)
自右至左
~
按位取反运算符
++
自增运算符
--
自减运算符
-
负号运算符
(类型)
类型转换运算符
*
指针运算符
&
取地址运算符
sizeof
长度运算符
3
*
乘法运算符
2
(双目运算符)
自左至右
/
除法运算符
%
求余运算符
4
+
加法运算符
2
(双目运算符)
自左至右
-
减法运算符
5
<<
左移运算符
2
(双目运算符)
自左至右
>>
右移运算符
6
<<=>>=
关系运算符
2
(双目运算符)
自左至右
7
==
等于运算符
2
(双目运算符)
自左至右
!
=
不等于运算符
8
&
按位与运算符
2
(双目运算符)
自左至右
9
∧
按位异或运算符
2
(双目运算符)
自左至右
10
|
按位或运算符
2
(双目运算符)
自左至右
11
&&
逻辑与运算符
2
(双目运算符)
自左至右
12
||
逻辑或运算符
2
(双目运算符)
自左至右
13
?
:
条件运算符
3
(三目运算符)
自右至左
15
逗号运算符(顺序求值运算符)
自左至右
说明:
(1)同一优先级的运算符,运算次序由结合方向决定。
例如*与/具有相同的优先级别,其结合方向为自左至右,因此3*5/4的运算次序是先乘后除。
-和++为同一优先级,结合方向为自右至左,因此-i++相当于-(i++)。
(2)不同的运算符要求有不同的运算对象个数,如+(加)和-(减)为双目运算符,要求在运算符两侧各有一个运算对象(如3+5、8-3等)。
而++和-(负号)运算符是单目运算符,只能在运算符的一侧出现一个运算对象(如-a、i++、--i、(float)i、sizeof(int)、*p等)。
条件运算符是C语言中惟一的一个三目运算符,如x?
a:
b。
(3)从上表中可以大致归纳出各类运算符的优先级:
初等运算符()[]->·
↓
单目运算符
↓
算术运算负(先乘除,后加减)
↓
关系运算符
↓
逻辑运算符(不包括!
)
↓
条件运算符
↓
赋值运算符
↓
逗号运算符
以上的优先级别由上到下递减。
初等运算符优先级最高,逗号运算符优先级最低。
位运算符的优先级比较分散(有的在算术运算符之前(如~),有的在关系运算符之前(如<<和>>),有的在关系运算符之后(如&、∧、¦))。
为了容易记忆,使用位运算符时可加圆括号。
附录EC库函数
1.数学函数
使用数学函数时,应该在该源文件中使用以下命令行:
#include
函数名
函数原型
功能
返回值
说明
abs
intabs(intx);
求整数x的绝对值
计算结果
acos
doubleacos(doublex);
计算cos-1(x)的值
计算结果
x应在-1到1范围内
asin
doubleasin(doublex);
计算sin-1(x)的值
计算结果
x应在-1到1范围内
atan
doubleatan(doublex);
计算tan-1(x)的值
计算结果
atan2
doubleatan2(doublex,doubley);
计算tan-1(x/y)的值
计算结果
cos
doublecos(doublex);
计算cos(x)的值
计算结果
x的单位为弧度
cosh
doublecosh(doublex);
计算x的双曲余弦cosh(x)的值
计算结果
exp
doubleexp(doublex);
求ex的值
计算结果
fabs
doublefabs(doublex);
求x的绝对值
计算结果
floor
doublefloor(doublex);
求出不大于x的最大整数
该整数的双精度实数
fmod
doublefmod(doublex,doubley);
求整除x/y的余数
返回余数的双精度数
frexp
doublefrexp(doubleval,int*eptr);
把双精度数val分解为数字部分(尾数)x和以2为底的指数n,即val=x*2n,n存放在eptr指向的变量中
返回数字部分x
0.5≤x<1
log
doublelog(doublex);
求logex,即lnx
计算结果
log10
doublelog10(doublex);
求log10x
计算结果
modf
doublemodf(doubleval,int*iptr);
把双精度数val分解为整数部分和小数部分,把整数部分存在iptr指向的单元
val的小数部分
pow
doublepow(doublex,doubley);
计算xy的值
计算结果
rand
intrand(void);
产生-90到32767间的随机整数
随机整数
sin
doublesin(doublex);
计算sinx的值
计算结果
x的单位为弧度
sinh
doublesinh(doublex);
计算x的双曲正弦函数sinh(x)的值
计算结果
sqrt
doublesqrt(doublex);
计算
计算结果
x应≥0
tan
doubletan(doublex);
计算tan(x)的值
计算结果
x的单位为弧度
tanh
doubletanh(doublex);
计算x的双曲正切函数tanh(x)的值
计算结果
2.字符函数和字符串函数
ANSIC标准要求在使用字符串函数时要包含头文件“string.h”,在使用字符函数时要包含头文件“ctype.h”。
有的C编译不遵循ANSIC标准的规定,而用其他名称的头文件。
请使用时查有关手册。
函数名
函数原型
功能
返回值
包含文件
isalnum
intisalnum(intch);
检查ch是否是字母(alpha)或数字(numeric)
是字母或数字返回1;否则返回0
ctype.h
isalpha
intisalpha(intch);
检查ch是否字母
是,返回1;不是,则返回0
ctype.h
iscntrl
intiscntrl(intch);
检查ch是否控制字符(其ASCII码在0和0x1F之间)
是,返回1;不是,返回0
ctype.h
isdigit
intisdigit(intch);
检查ch是否数字(0~9)
是,返回1;不是,返回0
ctype.h
isgraph
intisgraph(intch);
检查ch是否可打印字符(其ASCII码在ox21到ox7E之间),不包括空格
是,返回1;不是,返回0
ctype.h
islower
intislower(intch);
检查ch是否小写字母(a~z)
是,返回1;不是,返回0
ctype.h
isprint
intisprint(intch);
检查ch是否可打印字符(包括空格),其ASCII码在ox20到ox7E之间
是,返回1;不是,返回0
ctype.h
ispunct
intispunct(intch);
检查ch是否标点字符(不包括空格),即除字母、数字和空格以外的所有可打印字符
是,返回1;不是,返回0
ctype.h
isspace
intisspace(intch);
检查ch是否空格、跳格符(制表符)或换行符
是,返回1;不是,返回0
ctype.h
isupper
intisupper(intch);
检查ch是否大写字母(A~Z)
是,返回1;不是,返回0
ctype.h
isxdigit
intisxdigit(intch);
检查ch是否一个十六进制数字字符(即0~9,或A到F,或a~f)
是,返回1;不是,返回0
ctype.h
strcat
char*strcat(char*str1,char*str2);
把字符串str2接到str1后面,str1最后面的'\0'被取消
str1
string.h
strchr
char*strchr(char*str,intch);
找出str指向的字符串中第一次出现字符ch的位置
返回指向该位置的指针,如找不到,则返回空指针
string.h
strcmp
intstrcmp(char*str1,char*str2);
比较两个字符串str1,str2
str1 str1=str2,返回0; str1>str2,返回正数 string.h strcpy intstrcpy(char*str1,char*str2); 把str2指向的字符串复制到str1中去 返回str1 string.h strlen unsignedintstrlen(char*str); 统计字符串str中字符的个数(不包括终止符'\0') 返回字符个数 string.h strstr intstrstr(char*str1,char*str2); 找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符) 返回该位置的指针,如找不到,返回空指针 string.h tolower inttolower(intch); 将ch字符转换为小写字母 返回ch所代表的字符的小写字母 ctype.h toupper inttoupper(intch); 将ch字符转换成大写字母 与ch相应的大写字母 ctype.h 3.输入输出函数 凡用以下的输入输出函数,应该使用#include 函数名 函数原型 功能 返回值 说明 clearerr voidclearerr(FILE*fp); 使fp所指文件的错误,标志和文件结束标志置0 无 close intclose(intfp); 关闭文件 关闭成功返回0;否则返回-1 非ANSI标准 creat intcreat(char*filen-ame,intmode); 以mode所指定的方式建立文件 成功则返回正数;否则返回-1 非ANSI标准 eof Inteof(intfd); 检查文件是否结束 遇文件结束,返回1;否则返回0 非ANSI标准 fclose intfclose(FILE*fp); 关闭fp所指的文件,释放文件缓冲区 有错则返回非0;否则返回0 feof intfeof(FILE*fp); 检查文件是否结束 遇文件结束符返回非零值;否则返回0 fgetc intfgetc(FILE*fp); 从fp所指定的文件中取得下一个字符 返回所得到的字符,若读入出错,返回EOF fgets char*fgets(char*bu-f,intn,FILE*fp); 从fp指向的文件读取一个长度为(n-1)的字符串,存入起始地址为buf的空间 返回地址buf,若遇文件结束或出错,返回NULL fopen FILE*fopen(char*f-ormat,args,...); 以mode指定的方式打开名为filename的文件 成功,返回一个文件指针(文件信息区的起始地址);否则返回0 fprintf intfprintf(FILE*fp,char*format,args,...); 把args的值以format指定的格式输出到fp所指定的文件中 实际输出的字符数 fputc intfputc(charch,FILE*fp); 将字符ch输出到fp指向的文件中 成功,则返回该字符;否则返回非0 fputs intfputs(char*str,FILE*fp); 将str指向的字符串输出到fp所指定的文件 成功返回0;若出错返回非0 fread intfread(char*pt,unsignedsize,unsigne-dn,FILE*fp); 从fp所指定的文件中读取长度为size的n个数据项,存到pt所指向的内存区 返回所读的数据项个数,如遇文件结束或出错返回0 fscanf intfscanf(FILE*fp,charformat,args,...); 从fp指定的文件中按format给定的格式将输入数据送到args所指向的内存单元(args是指针) 已输入的数据个数 fseek intfseek(FILE*fp,longoffset,intbase); 将fp所指向的文件的位置指针移到以base所给出的位置为基准、以offset为位移量的位置 返回当前位置;否则,返回-1 ftell longftell(FILE*fp); 返回fp所指向的文件中的读写位置 返回fp所指向的文件中的读写位置 fwrite intfwrite(char*ptr,unsignedsize,unsigne-dn,FILE*fp); 把ptr所指向的n*size个字节输出到fp所指向的文件中 写到fp文件中的数据项的个数 getc intgetc(FILE*fp); 从fp所指向的文件中读入一个字符 返回所读的字符,若文件结束或出错,返回EOF getchar intgetchar(void); 从标准输入设备读取下一个字符 所读字符。 若文件结束或出错,则返回-1 getw intgetw(FILE*fp); 从fp所指向的文件读取下一个字(整数) 输入的整数。 如文件结束或出错,返回-1 非ANSI标准函数 open intopen(char*filena-me,intmode); 以mode指出的方式打开已存在的名为filename的文件 返回文件号(正数);如打开失败,返回-1 非ANSI标准函数 printf intprintf(char*form-at,args,...); 按format指向的格式字符串所规定的格式,将输出表列args的值输出到标准输出设备 输出字符的个数,若出错,返回负数 format可以是一个字符串,或字符数组的其实地址 putc intputc(intch,FILE*fp); 把一个字符ch输出到fp所指的文件中 输出的字符ch,若出错,返回EOF putchar intputchar(charch); 把字符ch输出到标准输出设备 输出的字符ch,若出错,返回EOF puts intputs(char*str); 把str指向的字符串输出到标准输出设备,将'\0'转换为回车换行 返回换行符,若失败,返回EOF putw intputw(intw,FILE*fp); 将一个整数w(即一个字)写到fp指向的文件中 返回输出的整数,若出错,返回EOF 非ANSI标准函数 read intread(intfd,char*buf,unsignedcount); 从文件号fd所指示的文件中读count个字节到由buf指示的缓冲区中 返回正真读入的字节个数,如遇文件结束返回0,出错返回-1 非ANSI标准函数 rename intrename(char*old-name,char*newnam-e); 把由oldname所指的文件名,改为由newname所指的文件名 成功返回0;出错返回-1 rewind voidrewind(FILE*fp); 将fp指示的文件中的位置指针置于文件开头位置,并清除文件结束标志和错误标志 无 scanf intscanf(char*forma-t,args,...); 从标准输入设备按for-mat指向的格式字符串所规定的格式,输入数据给args所指向的单元 读入并赋给args的数据个数,遇文件结束返回EOF,出错返回0 args为指针 write intwrite(intfd,char*buf,unsignedcount); 从buf指示的缓冲区输出count个字符到fd所标志的文件中 返回实际输出的字节数,如出错返回-1 非ANSI标准函数 4.动态存储分配函数 ANSI标准建议设4个有关的动态存储分配的函数,即calloc()、malloc()、free()、realloc()。 实际上,许多C编译系统实现时,往往增加了一些其他函数。 ANSI标准建议在“stdlib.h”头文件中包含有关的信息,但许多C编译系统要求用“malloc.h”而不是“stdlib.h”。 读者在使用时应查阅有关手册。 ANSI标准要求动态分配系统返回void指针。 void指针具有一般性,它们可以指向任何类型的数据。 但目前有的C编译所提供的这类函数返回char指针。 无论以上两种情况的哪一种,都需要用强制类型转换的方法把void或char指针转换成所需的类型。 函数名 函数原型 功能 返回值 calloc void*calloc(unsignedn,unsignsize); 分配n个数据项的内存连续空间,每个数据项的大小为size 分配内存单元的起始地址,如不成功,返回0 free voidfree(void*p); 释放p所指的内存区 无 malloc void*malloc(unsignedsize); 分配size字节的存储区 所分配的内存区起始地址,如内存不够,返回0 realloc void*realloc(void*p,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国计算机 二级 语言 完整 复习资料