C语言串讲笔记.docx
- 文档编号:11711187
- 上传时间:2023-03-30
- 格式:DOCX
- 页数:77
- 大小:203.48KB
C语言串讲笔记.docx
《C语言串讲笔记.docx》由会员分享,可在线阅读,更多相关《C语言串讲笔记.docx(77页珍藏版)》请在冰豆网上搜索。
C语言串讲笔记
C语言程序设计串讲笔记
串讲的目的和作用:
1、将相对零散的知识建立一个整体的筐架,形成整体的知识体系。
2、将考核知识点进行提炼
本次串讲的要讲解的重要知识点(共37个)
1、高级语言与C语言的特点
2、C语言的基本字符集、转义字符、保留字及其含义和C语言标识符的构成规则。
3、C程序的基本结构与书写C程序的基本规则
4、C语言中数据类型的分类
5、整型、实型、字符型、字符串常量的书写方法
6、符号常量的应用和宏定义命令的使用
7、整型、实型、字符型变量的定义、初始化方法
8、基本类型数据在内存中的存放方式
9、基本运算符的运算规则、优先级别和结合性
10、掌握算术表达、关系和逻辑表达式、赋值表达式、逗号和条件表达式的构成和运算规则
11、变量赋值及表达式计算时的数据类型转换规则
12、字符输入/输出函数和格式输入/输出函数的使用
13、三条选择语句和三种选择结构的程序设计
14、三条循环语句和三种循环结构的程序设计
15、一维数组的定义、初始化和数组元素的引用方法
16、二维数组的定义、初始化和数组元素的引用方法
17、字符数组的定义、初始化和数组元素的引用方法
18、字符数组中存放的字符串的输入/输出和处理方法
19、字符串处理的常用系统函数及其使用
20、指针变量的定义、初始化、赋值和一般使用形式
21、指向变量的指针变量、指向一维数组元素的指针变量、指向字符串的指针变量的使用方法。
22、指针数组的定义、初始化和引用
23、函数的结构与定义方法,握函数的一般调用方法
24、函数调用时参数的值传递方法、地址传递方法、返回值传递方法和利用全局外部变量在函数间传递数据的方法。
25、变量的存储类型及其定义方法、变量的生存期和作用域。
26、函数嵌套调用和递归函数的特点和设计方法
27、指针型函数的定义方法和调用方法
28、常用系统函数的使用
29、结构型数据的特点和应用及结构型的定义方法
30、结构型变量的定义、初始化和成员引用方法
31、结构型数组的定义、初始化和引用结构型数组元素的成员的方法。
32、结构型指针变量的定义、初始化和利用结构型指针变量引用结构型数据的成员的方法
33、用户自定义类型的定义和使用
34、文件名的组成规则、文件的分类及其特点
36、文件型指针的定义方法
37、缓冲文件系统中各类系统函数的使用
u
(1)打开/关闭文件函数的使用方法。
u
(2)文件尾测试函数的使用方法。
u(3)文件读/写中字符读/写函数的使用方法。
u(4)文件读/写中字符串读/写函数的使用方法。
u(5)文件读/写中数据读/写函数的使用方法。
u(6)文件定位函数(定位文件头、随机定位)的使用方法。
第一章 概述
程序:
是用某种计算机能理解并执行的计算机语言描述解决问题的方法步骤。
机器语言:
采用计算机能直接识别和执行的二进制代码来表示的程序设计语言。
汇编语言:
采用文字方式(助记符)表示的程序设计语言,其中大部分指令和机器语言中的指令一一对应,但不能被计算机的硬件直接识别。
机器语言和编语言又称为“面向机器的语言”或“低级语言”。
高级语言:
是描述算法过程很方便、同时脱离了对机型的要求,能在任何计算机上运行的计算机语言。
又称为“面向过程的语言”。
用高级语言编写的程序称为源程序。
高级语言程序的执行有两种:
一种是翻译一句执行一句,称为“解释执行”方式,完成翻译工作的程序就称为“解释程序”;
一种是全部翻译成二进制程序后再执行,承担翻译工作的程序就称为“编译程序”,编译后的二进制程序称为“目标程序”。
C语言的主要特点:
比其它高级语言更接近硬件,比低级语言更容易描述算法,程序易编、易读、易查错、易修改。
可以说兼有高级语言和低级语言的优点。
C语言既可以用来编写系统软件,也可以用来编写应用软件。
1.编译程序的功能是()
A.将汇编语言程序转换为目标程序
B.将汇编语言程序转换为高级语言程序
C.将高级语言程序转换为目标程序
D.将高级语言程序转换为汇编语言程序
答案:
C
第二章 C语言的基本知识
C语言的基本词法
1字符集
C语言的字符集就是ASCII字符集,主要包含下列几类:
(1)大小写英文字母A~Z、a~z(52个)
(2)数字0、1、2、…、9(10个)
(3)非字母数字的可显示字符(33个)键盘可输入的字符。
字符集的真题
1.C语言不能选用的字母是()
A.wB.πC.ID.i
答案:
B
2.转义字符
在C语言的字符集中,还有一些不可显示的字符,C语言使用所谓的“转义字符”在程序中表示这些字符。
转义字符由“反斜杠字符\”开始后跟单个字符或若干个字符组成。
\n
\t
\v
\b
\r
\f
回车换行符号
Tab符号
垂直制表符号
左退一格符号
回车符号
换页符号
\a
\"
\’
\\
\ddd
\xhh
响铃符号
双引号
单引号
反斜杠
1~3位8进制数ddd对应的符号
1~2位16进制数hh对应的符号
转义字符的有关真题
1.下列不正确的转义字符是()
A.′\\′B.′\″
C.′\086′D.′\0′
答案:
C
2.下列转义字符中错误的是()
A′\000′B.′\14′
C.′\x111′D.′\2′
答案:
C
3.保留字
auto
break
case
char
continue
const
default
do
double
else
enum
自动
中止
情况
字符
继续
常量
缺省
做
双
否则
枚举
extern
float
for
goto
int
if
long
register
return
short
signed
外部
浮点
对于
转向
整
如果
长
寄存器
返回
短
带符号
sizeof
static
struct
switch
typedef
union
unsigned
void
volatile
while
计算字节数
静态
结构
开关
类型定义
共用
无符号
空
可变的
当
说明:
1、所有的保留字均由小写字母组成的,一旦有一个字母大写,其不再是保留字原来的含义。
2、根据关键字的作用,可分其为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类。
•保留字的有关真题
•1.下列标识符中,不是C语言保留字的是()
•charB.while
•C.minD.default
•答案:
C
•2.下列不属于C语言保留字的是()
•charB.while
•C.typedefD.look
•答案:
D
•3.表示空类型的保留字是。
•答案:
void(注意一定小写)
•数据类型关键字(12个):
char,double,enum,float,int,long,short,signed,struct,union,unsigned,void
•控制语句关键字(12个):
break,case,continue,default,do,else,for,goto,if,return,switch,while
•存储类型关键字(4个):
auto,extern,register,static
•其它关键字(4个):
const,sizeof,typedef,volatile
4.标识符
标识符是用户自定义的字符序列,比如符号常量名、变量名、数组名、函数名等。
C语言规定,标识符是由字母或下划线开头的字母、数字、下划线组成的字符序列。
标识符中的字母是区分大小写的。
标识符的有关真题
1.正确的C语言用户自定义标识符是()
A.printB.floatC.whenD.random
答案:
A
2.可以用作C程序标识符的一组是( )
A.printoodbaBc
B.i\amone-half3pai
C.Pxqline#His.age
D.Cppwhilepow
答案:
A
3.C语言标识符的第一个字符必须为下划线或者。
答案:
字母
C程序构成的特点:
(1)C程序是由若干个函数构成的。
每个C程序有且仅有一个主函数,该主函数的函数名规定为main。
(2)每个函数(包括主函数)的定义分为两个部分:
函数头和函数体。
函数头:
返回值的类型函数名(类型形式参数1,...)
函数体:
{数据定义部分
实现函数功能的语句串
}
函数名后面的一对圆括号“()”是用来写函数的参数的。
参数可以有,也可以没有,但圆括号不能省略。
(3)C程序中的每个语句以“分号”作为语句的结束,“分号”是C语句的组成部分,不可以省略。
(4)用“/*”和“*/”括住的任意字符序列,称为“注释”。
源程序编译时,注释被忽略。
(5)C程序的书写格式很灵活,在一行上可以书写多个语句,一个语句也可以写在多行上。
在程序清单的任何一处都可以插入空格符号或回车符号。
但是,为了程序清单层次分明、便于阅读,通常都采用缩格并对齐的书写方法。
(6)C程序的执行总是从主函数开始,并在主函数中结束。
主函数和其它函数的位置是任意的。
其它函数总是通过函数调用语句被执行。
(7)主函数可以调用任何其它函数;任何其它函数都可以相互调用,但不能调用主函数。
(8)C语言编译系统区分字母大小写。
C程序构成的真题
1.构成一个C程序的是()
A.一个主函数和若干个非主函数
B.若干个主函数和若干个非主函数
C.一个主函数和最多一个非主函数
D.若干个主函数和最多一个非主函数
答案:
A
2.组成C语言程序的是()
A.过程B.函数C.子程序D.主程序和子程序
答案:
B
3.一个C程序一般由若干个函数构成,其中至少应包含一个函数。
答案:
主
4.C语言程序编译时,程序中的注释部分()
A.参加编译,并会出现在目标程序中
B.参加编译,但不会出现在目标程序中
C.不参加编译,但会出现在目标程序中
D.不参加编译,也不会出现在目标程序中
答案:
D
第三章 基本数据类型、运算符和表达式
C语言数据类型及分类关系图
┌带符号整型
┌带符号整型┼带符号短整型
│└带符号长整型
┌整型┤┌无符号整型
│└无符号整型┼无符号短整型
│└无符号长整型
┌基本类型┤┌单精度型
│├实型┤
││└双精度型
│└字符型
数据类型┤┌数组型
├构造类型┤
│└结构型
├指针型
└空类型(void)
C语言数据类型的真题
1.属于C语言基本数据类型的是()
A.指针型B.无符号整型
C.数组型D.结构型
答案:
B
常量
整型常量
在C语言中,整型常量有三种书写形式:
(1)十进制整数:
由数字0-9和正负号表示。
如:
0、-111、+15、21等。
(2)八进制整数(在前面0)。
例如00、-0111、+015、021。
(3)十六进制整数(在前面0x)。
例如0x0、-0x111、+0xff、0x2d。
整型常量在一般微型机中占用2个字节,数值范围都是十进制的-32768+32767。
长整型常量(在整数的末尾字母“L”):
长整型常量在计算机中占用4个字节。
10和10L是不同的整型常量,虽然它们有相同的数值,但它们在内存中占用不同数量的字节。
常量的真题
1、C语言的长整型数值在计算机中占用的字节个数是()
A.1B.2C.3D.4
答案:
D
2、在C语言中,整型常量的书写形式包括:
八进制、十进制和进制。
答案:
十六
实型常量
实型常量只使用十进制,它的书写形式有两种:
1、十进制数形式:
(必须有小数点)如0.123,.123,123.0,0.0,123.
2、指数形式:
(e或E之前必须有数字;指数必须为整数)如:
12.3e3,123E2,1.23e4,e-5,1.2E-3.5
说明:
1、实型常量在一般的微型机中占用4个字节数。
2、实型常量有效数字是7位。
实型常量的真题
1.C语言中,错误的int类型的常数是( )
A.1E5B.0C.037D.0xaf
答案:
A
2、在C语言中,一个双精度数-5.88在二进制文件里占用的字节数是。
答案:
8
字符常量
字符常量用两个单引号(’)前后括住的单个字符来表示。
例如,’a’、’1’、’%’、’A’、’\n’、’\101’。
说明:
1、C语言规定,字母是区分大小写的。
2、在内存中,每个字符常量都占用一个字节,具体存放的是该字符对应的ASCII代码值。
3、在C语言中,一个字符常量也可以看成是“整型常量”,其值就是该字符的ASCII代码值。
例如,’a’,可以看作是97。
4、如果其值在0~127之间,整型常量也可以将其看成一个字符型常量.例如97,可以当成字符常量’a’来使用。
字符常量真题
1.设charx=′a′;则printf(″x=﹪c,y=﹪c\n″,x,97);的输出是()
A.x=a,y=97B.x=97,y=a
C.x=97,y=97D.x=a,y=a
答案:
D
2.设chara=‘\70’;则变量a中( )
A.包含1个字符B.包含2个字符C.包含3个字符D.是非法表示
答案:
A
字符串常量
字符串常量简称为“字符串”。
字符串就是用两个双引号(")前后括住的一串字符。
空字符串:
没有字符的字符串称为“空字符串”。
例如,""。
字符串的长度:
一个字符串中所有字符的个数称为该字符串的长度
例如,“”的长度为0;“ab12c”的长度为5;"\101\n\x43ab"的长度为5
说明:
1、空串与空格串是不同的。
空串前者不含任何字符,长度为0;空格串是包含若干空格字符的字符串其长度为所含空格字符的个数。
2、每个字符串在内存中占用的字节数等于字符串的长度+1。
其中最后一个字节存放的字符为“空字符”,其值为0,书写时常用转义字符“\0”来表示,称为字符串结束标记。
字符串常量真题
1.下列数据中,不是C语言常量的是()
A.′\n′B.″a″C.e-2D.012
答案:
C
2.字符串″ABCD\t\\\123″的长度是。
答案:
7
符号常量
符号常量的定义方法如下:
#define符号常量常量
【例】#definePI3.14159
说明:
1、符号常量标识符的规则构成,建议用大写英文字母组成。
其中的常量可以是任何类型的常量。
2、符号常量的定义一般放在程序的开头,每个定义必须独占一行,其后不跟分号。
宏定义命令
宏定义命令的一般格式如下:
#define宏名一串符号
说明:
1、其中的“#”表示这是一条预处理命令。
凡是以“#”开头的均为预处理命令。
“define”为宏定义命令。
“一串符号”可以是常数、表达式、格式串等。
2、当对源程序清单进行编译之前,将把所有的“宏名”替换成对应的“一串符号”,切不可自行添加其它符号。
3、宏可以嵌套宏定义
宏定义的真题
1.下列叙述中,正确的是()
A.引用带参的宏时,实际参数的类型应与宏定义时的形式参数类型相一致
B.宏名必须用大写字母表示
C.宏替换不占用运行时间,只占编译时间
D.在程序的一行上可以出现多个有效的宏定义
答案:
C
2.在下列有关宏替换的叙述中,正确的说法是()
A.宏替换占用运行时间
B.宏名有类型
C.带参数的宏替换和函数等价
D.宏替换只是字符替换
答案:
D
3.下列程序的运行结果是()
#defineA5
#defineBA+1
main()
{inta;
a=B;
printf(″%d\n″a--);
}
A.6B.5C.4D.出错
答案:
A
变量
变量的概念
在程序运行过程中,其值可以被改变的量称为变量。
变量的四个要素
(1)变量名。
每个变量都必须有一个名字──变量名,变量命名遵循标识符命名规则。
(2)变量值。
在程序运行过程中,变量值存储在内存中。
(3)变量类型:
intcharfloat等
(4)变量的存储类型:
aotoregisterstaticexit
变量的数据类型及其定义
数据类型
数据类型符
占用字节数
数值范围
整型
int
2(或4)
同短整型(或长整型)
短整型
short
2
-32768~+32767(-215~215-1)
长整型
long
4
-~+
(-231~231-1)
无符号整型
unsigned[int]
2(或4)
同无符号短整型(或长整型)
无符号短整型
unsignedshort
2
0~65535(0~216-1)
无符号长整型
unsignedlong
4
0~(0~232-1)
单精度实型
float
4
-1038~1038(保留7位有效数字)
双精度实型
double
8
-10308~10308(保留11位有效数字)
字符型
char
1
-128~+127
有名常量的定义
定义方法如下:
const数据类型符变量名1=初值1,变量名2=初值1,...;
说明:
有名常量的值是通过赋初值的方式获得,不能用赋值方式获得值。
而且,获得初值后,程序中将不能改变其值。
【例】定义有名常量举例。
constcharchar_y=’Y’,char_n=’N’;
/*定义字符型有名常量char_y和char_n,其值分别为字符Y和N*/
运算符
算术运算符(+、-;+、-、*、/、%)
说明:
(1)除运算(/)和运算对象的数据类型有关。
例如,14/5=21/2=01/2.0=0.51.0/2=0.5。
(2)模运算(%)的对象必须是整型数据,结果是整除后的余数,运算结果的符号必须与被除数相同。
例如,14%5=414%-5=4-14%5=-4-14%-5=-4。
增1、减1运算符(++--)
注意:
增1、减1运算符的运算对象是变量,不能是常量或表达式。
关系运算符(>=、>、<=、<==、!
=)和逻辑运算符(&&||!
)
说明:
(1)关系运算和逻辑运算的结果是整型数据0或1。
(2)运算符的优先级如下:
!
优先于双目算术运算符优先于关系运算符优先于&&优先于||
注意:
用&&对两个表达式进行计算时,若第一个表达式的值为“假”,则运算结果与第二个表达式的值无关,结果肯定为“假”,所以C语言规定此时第二个表达式将不再计算。
同样用||对两个表达式进行计算时,若第一个表达式的值为“真”,则运算结果与第二个表达式的值无关,结果肯定为“真”,所以C语言规定此时第二个表达式也不再计算。
赋值运算符(=)
算术自反赋值运算符(+=-=*=/=%=)
说明:
(1)算术自反赋值运算符和赋值运算符的优先级是相同的,只比逗号运算符高。
(2)自反赋值运算符右边的表达式是自动加括号的。
【例】“c%=a-3”不能理解为“c=c%a-3”,应理解为“c=c%(a-3)”。
逗号运算符(,)
说明:
(1)由逗号运算符组成的式子也是表达式,其值等于右边表达式的值。
(2)任何运算符都优先于号运算符。
条件运算符(?
:
)
说明:
(1)条件运算符是唯一的三目运算符。
(2)条件运算符的优先级:
优先于赋值、算术自反赋值运算符逗号运算符(排倒数第三)
长度运算符(sizeof())
【例】设变量定义如下:
intn;表达式sizeof(n)的值是2。
表达式sizeof(long)的值是4。
位运算符(~&|^)
位运算的对象只能是整型数据(包括字符型)。
运算结果仍是整型数据。
a
b
a&b
a|b
a^b
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
位移位运算符(<<左移,>>右移)
运算符真题
1.下列表达式的值为0的是()
A.3﹪5B.3/5.0C.3/5D.3<5
答案:
C
2.设inta=3;则表达式a<1&&--a>1的运算结果和a的值分别是
()
A.0和2B.0和3C.1和2D.1和3
答案:
B
3.设intm1=5,m2=3;表达式m1>m2?
(m1=1):
(m2=-1)运算后,m1和m2
的值分别是()
A.1和-1B.1和3C.5和-1D.5和3
答案:
B
4.设floatm=4.0,n=4.0;使m为10.0的表达式是()
A.m-=n*2.5B.m/=n+9C.m*=n-6D.m+=n+2
答案:
D
5.表达式5&2||5|2的值是()
A.0B.1C.2D.3
答案:
B
6.设intx=-1;执行表达式++x||++x||++x后,x的值是()
A.0B.1C.2D.3
答案:
B
7.设intx;则执行printf(″%x\n″,~x^x);的结果是()
A.0B.1C.ffD.ffff
答案:
D
8.C语言中计算a3正确的表达是()
A.a^3B.pow(a,3)C.a**3D.power(a,3)
答案:
B
9.不用第三个变量,将变量a和b的值进行互换的操作是()
A.a+=b;b-=a;a-=b;B.a+=b;b=a-b;a-=b;
C.b-=a;a-=b;a-=b;D.b-=a;a=b-a;a+=b;
答案:
B
10.设inta=1,b=2,c=4;经过表达式(c=a!
=b)&&(a==b)&&(c=b)运算后,a、b和c的值分别是()
A.1,2,0B.1,2,1
C.1,2,2D.1,2,3
答案:
B
11.若定义了inta,x,y;,则下列语句中不正确的是()
A.x=3,y=5;B.++x;C.x=y+=x*30;D.a=y+x=30;
答案:
D
12.若定义了x=100;,则表达式x++>100?
x+20:
x+10的值是()
A.110B.111C.120D.121
答案:
B
13.执行语句printf(″%x″,-1);后输出结果是()
A.-1B.–ffffC.1D.ffff
答案:
D
14.设floata=2,b=4,c=3;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 串讲 笔记
![提示](https://static.bdocx.com/images/bang_tan.gif)