大学计算机二级C语言15章精讲同csdn博客.docx
- 文档编号:27915471
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:42
- 大小:97.02KB
大学计算机二级C语言15章精讲同csdn博客.docx
《大学计算机二级C语言15章精讲同csdn博客.docx》由会员分享,可在线阅读,更多相关《大学计算机二级C语言15章精讲同csdn博客.docx(42页珍藏版)》请在冰豆网上搜索。
大学计算机二级C语言15章精讲同csdn博客
第一节标识符——掌握
一、定义:
在C语言中,有许多符号名都必须准守一定的规则,按此规则命名的符号叫做标识符。
命名规则:
由字母,数字,下划线组成,且以字母或下划线开头。
Eg:
123(不是),a-123(不是),a_123(是的),_(是的)
注意:
C语言区分大小写
二、分类
1、关键字:
系统预先定义——不能做其他使用
掌握:
关键字的含义。
Eg:
int,float,doueble,char,ifelse,for,do
2、预定义标识符:
系统预先定义——可做他用,但最好别用。
掌握:
预定义的含义Eg:
printf,scanf,puts,gets,putchar,getchar
3、自定义标识符:
用户自己定义,必须要遵循规则。
(一般是由字母组成)
第二节常量
一、定义:
常量就是在程序中不变的量。
(具体值)——了解
二、分符号常量和直接常量。
——掌握
三、符号常量:
用标识符代表一个常量。
注意:
符号常量在使用前必须先定义。
一般形式为:
#define标识符常量——掌握
提示:
符号常量一般用大写(与变量区分)
Eg:
符号常量的使用:
#difinePRICE30
main()
{intnumtotal;
num=10;
total=num*PRICE;
printf("total=%d",total);
四、直接常量:
——掌握
(一)分类:
整型,实型,字符型,字符串型。
每一种形式的样式,组成,注意事项
(二)具体介绍:
1、整型常量——整数
整型常量就是整常数。
在C语言中,使用的整常数有八进制、十六进制和十进制三种。
1)十进制整常数:
十进制整常数没有前缀。
其码数为:
0-9(和正负号)
称为十进制的原因:
逢十进一没有前缀
Eg:
123
2)八进制整常数:
八进制整常数必须以0开头,即以0作为八进制的前缀。
取码取值为0
-7
Eg:
0123
3)十六进制整常数:
十六进制整常数的前缀为0X或0x,其数码取值为0-9,A-F或a-f.
10在十六进制中表示a,11为b,12为c,13为d,14为e,15为f.
补充:
进制之间的转化
二进制:
0和1组成
A.十进制-->二进制除二取余倒排。
Eg:
2|_10_
2|_5_--0/|\===>10由十进制变为二进制为1010
2|_2_--1|
2|_1_--0|
0--1
B.十进制-->N进制除N取余倒排
Eg:
16|_196_
16|_12_--4/|\===>196由十进制变为十六进制为0xc4
0--12|
C.二进制-->十进制自右至左,次幂从零依次递增,结果相加。
Eg:
1010转化为十进制
1010
<-----
0*2^0+1*2^1+0*2^2+1*2^3=10
D.N进制变为十进制自右至左,次幂从零依次递增,结果相加
Eg:
0X2B
<-----
11*16^0+2*16*1=43
E.M进制变为N进制M-->十进制,十进制-->N进制
2、实型常量:
——小数
实型也成为浮点型,实型常量也称为实数或浮点数
形式:
十进制小数形式,指数形式。
1)十进制数形式:
由数码0-9和小数点,正负号组成。
注意:
必须有小数点。
Eg:
1.23-123.456123.(相当于123.0).123(相当于0.123).(相当于0.0)都是合法的
2)指数形式(科学计数法形式):
由十进制数加阶码标志“e”或“E”以及阶码(只能为整数,可以带符号)
注意:
e的前后必须有数字,并且e后面为整数
Eg:
1.23*10^5=1.23E51.23*10-7=1.23E-7
E为阶码标志,5和-7为阶码
3、字符常量:
用单引号括起来的一个字符。
两种形式:
普通字符常量和转义字符
组成:
字母,符号和数字
注意:
1)字符常量只能用单引号括起来,不能用双引号或或其他括号
2)字符常量只能是单个字符,不能是字符串
3)字符串可以是字符集中任意字符,但数字被定义为字符型之后就不能参与数值运算。
如'5'和5是不同的,‘5’是字符常量,不能参与运算。
说明:
计算机处理数据时,首先把对应的数据转换成ASCII码值,然后把ASCAII码值转换
成二进制数来处理。
常见的ASCAII码值:
大写字母:
’A’65‘B’66.........’Z’90
小写字母:
’a’97‘b’98..........’z’122
数字字符:
’0’48‘1’49..........’9’57
整数ASCII码值是他本身
补充:
转义字符——控制
组成:
\,字母,数字,符号
转义字符是一种特殊的字符常量。
转义字符以反斜线”\“开头,后跟一个或几个字
符。
转义字符主要用来表示那些用一般字符不便表示的控制代码。
常用的转义字符及其含义
转义字符
转义字符的意义
ASCII码
\n
回车换行
Printf(“hello\n“,\n)
10
\t
横向跳到下一制表位置
(每个制表位8个二进制位)
9
\b
退格
8
\r
回车
13
\f
走纸换页
12
\\
反斜线符“\”
92
\'
单引号符
39
\"
双引号符
34
\a
鸣铃
7
\ddd
1到3位八进制数所代表的字符
\xhh
1到2位十六进制数所代表的字符
注意:
ddd和hh分别为八进制和十六进制的ASCII代码,如\101表示字母“A”,\102表示字母“B”,\134表示反斜线,\XOA表示换行等。
4、字符串常量:
由一对双引号扩起的字符序列。
组成:
字母,符号,数字
字符串常量和字符常量是不同的量,他们之间主要有以下区别:
1)字符常量由单引号扩起,字符串常量由双引号括起来。
2)字符常量只能是单个字符,字符串常量则可以含一个或多个字符
3)可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字符变量
注意:
在C语言中没有相应的字符串变量。
字符串常量占的内存字节数等于等于字符串中字节数加一。
增加一个字节中存放字符”\0”(ASCII值为0),这是字符串结束的标志。
例如:
字符常量”a”和字符串常量”a”虽然都只有一个字符,但在内存中的情况是不同的。
字符串常量多了一个”\0”
第3节变量
==房间(房间不会变,房间里面的人会变。
之所以变化,是因为存储的常量在变化)
1、定义:
变量就是储存常量的量
掌握:
分类,类型说明符,占用的字节数
2、分类:
整型变量实型变量字符变量
3、具体介绍:
(1)整型变量
1、分类
1)基本型:
类型说明符为int,在内存中占4个字节。
2)短整型:
类型说明符为shortint或short。
在内存中占两个字节。
3)长整形:
类型说明符为longint或long,在内存中占4个字节。
以上三个类型可以存放所有所有整数(正整数,负整数,0)
4)无符号型:
类型说明符为unsigned。
无负数。
——分为三类默认为无符号基本整形(目的是来存放更大的数)
注意:
其中基本型,短整型,长整形也称为有符型。
2、有符号型,无符号型的不同
Eg:
短整型:
2个字节16个二进制位
无符号短整型:
2个字节16个二进制位
有符号:
符号位
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
MAX=32767
无符号:
-32768——32767
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
MAX=65535
范围:
0——65535
3、整型变量的定义的一般形式为:
类型说明符变量名标识符,变量名标识符...........;
变量名标识符:
用户起名,符合命名规则。
Eg:
inta,b;
Shortc,d;
Unsignede,f;
在书写变量定义时,应注意以下几点:
允许在一个类型说明符后,定义多个相同类型的变量,各变量之间用逗号间隔。
类型说明符和变量名之间至少用一个空格间隔。
最后一个变量名之后必须以“;”号结尾。
变量定义必须放在变量使用之前。
一般放在函数体开头部分。
(2)、实型变量
1、分类
单精度(float型)4个字节
双精度(double型)8个字节
长双精度型(longdouble型)16个字节
2、实型变量的定义的一般形式为
类型说明符变量名标识符1,变量名标识符2.......;
(3)、字符变量
类型:
字符型char1个字节
1、字符变量的定义的一般形式为
类型说明符变量名标识符1,变量名标识符2.........;
Eg:
cherc;
注意:
当把字符放入字符变量中时,字符变量中的值就是该字符的ASCII值,所以字符变量可以作为整型变量来处理,可以参与整形变量的任何运算。
Eg:
charc=‘a’
Inta=10;
c+a=97+10=107
第4节数据类型的转换
1、数据类型的转换的意义:
让不同类型的数据相互运算成为可能。
2、自动转换:
——掌握
自动转换发生在不同数据类型的量混合运算时,由编译系统自动完成
水平方向强制转换,垂直方向按最高精度转换。
(垂直方向的意思是:
如果有一个int和一个unsigned运算,那么int会转换为unsigned)
Eg:
1/2=0(int和int运算只能为int,小数取整)
1.0/2=0.5(int和double运算结果是unsigned)
结论:
运算中有小数点,结果肯定有小数点,没有小数点则结果肯定没有小数点
3、强制转换:
强制类型转换是通过类型转换运算来实现的。
格式(类型说明符)(表达式)
其功能是把表达式的运算结果强制转换成类型说明符所表示的类型
Eg:
(double)(1/2)=0.0(得出结果之后再用double)
Double1/2=0.5(先对一进行double然后再除2)
(int)(1.0/2)=0
在使用强制转换时应注意一下问题:
1、类型说明符和表达式都必须加括号(单个变量可以不加括号),如把int(x+y)写成intx+y则成了把x转换成int型之后在与y相加。
2、无论是强制转换或是自动转换,都只是为了本次运算的需要而对数据据长度进行的临时性转换,而不改变数据说明时对该变量定义的类型。
第5节表达式
1、表达式的定义——由常量、变量和运算符组成的
二、表达式的分类:
掌握点:
运算符的功能、运算符的优先级、表达式间的优先级
(1)算数表达式(四)关系表达式
(2)赋值表达式(五)逻辑表达式
(3)逗号表达式(六)条件表达式
3、具体介绍:
(一)、算数表达式——数学
1、运算符:
()
+(取正)、-(取负)优先级依次递减
*、/、%(取余)
+、-
Eg:
15%-4=-1
过程:
15除以-4上-4余-1,不上-3的原因是C语言规定异号取余时,余数符号要和除数的符号相同,如果不相同,结果就为余数加除数。
2、优先级:
依次递减
(相同优先级的运算符按照从左向右的顺序运算——左结合性)
3、注意:
A、取余要求必须为整数B、运算结果为最高精度,系统会自动转换。
(2)赋值表达式
1、运算符:
=
2、赋值表达式格式:
变量=常量(变量)
Eg:
inta,b;
a=3;/*把3赋值给变量a*/
b=a:
/*把a的值赋给b*/
Charc;
c=a:
/*把字符常量a赋给c*/
3、注意:
A、赋值表达式左边必须为变量
B、赋值表达式中类型转换
Eg:
inta=3.14:
(a的值为3)
Doubleb=4(b的值为4.0)
C、赋值表达式的值为最后的赋值结果。
(3)、逗号表达式
1、运算符:
,
2、格式:
表达式1,表达式2,表达式3,.........
3、运算过程:
先计算1,再计算2,一直计算到最后表达式的值即为逗号表达式的值。
Eg:
a=3,b=4,c=a+b;==>表达式值为7
a=5,b=6,c=b*3;==>表达式值为18
表达式的补充
补充一:
复合赋值表达式:
1、运算符:
+=、-=、*=、/=、%=
掌握转换方法
Eg:
a+=3==>a=a+3
b*=5==>b=b*5
补充二:
自加自减赋值表达式:
1、运算符:
++(自加运算符);--(自减运算符)
掌握点:
区分变量的值和表达式的值
Eg:
inti=3;
变量的值(遇到++就加一,遇到--就减一)
1)i++|++ii的值加1变为4
2)i--|--ii的值减1变为2
表达式的值:
(符号在后是原值,符号在前,++加1,--减1)
1)i++|i--表达式的值为原i的值
2)++i表达式的值为原i+1的值
3)--i表达式的值为原i-1的值
提示:
求变量的值要明确原变量的值和表达式
求表达式的值要明确原变量的值
Eg1:
intx=5,y=8;
y,x跟随式子变化
1)x++表达式的值为5;x的值为6
2)y--表达式的值为8;y的值为7
3)--y表达式的值为6;y的值为6
4)++y表达式的值为7;y的值为7
5)y表达式的值为7
6)--x表达式的值为5;x的值为5
Eg2:
intA=6,B=12;
1)A+++(--B)表达式的值:
6+11=17A=7;B=11
2)-A+(B++)表达式的值:
6+11=17A=6;B=10
3)++A-(B++)表达式的值:
7-10=-3A=7;B=11
第3章:
顺序结构程序设计
第1节:
C语言语句概述
1、引入:
语句是C程序的基本组成部分:
作文——造句——组词——识字——拼音
程序——语句——表达式——常量,变量
2、C语句的分类:
(1)、表达式语句:
由表达式加上分号“;”组成。
重点讲解:
赋值语句
定义:
赋值语句是由赋值表达式在加上分号构成的表达式语句。
其一般形式为:
变量=表达式;
Eg;i=3(表达式)
I=3;(语句)语句没有值,但可以作为程序的一部分
在赋值语句打使用中需要注意以下几点:
1、由于在赋值符“=”右边的表达式可以又是一个赋值表达式,如变量=(变量=表达式);是正确的。
Eg:
x=(y=5)==>x=5
2、在变量说明中,不允许连续给多个变量赋初值。
如下述说明是错误的:
Inta=b=c=5;正确写法:
inta=5,b=5,c=5;
错误原因:
inta=b=c=5;(b和c没有定义,即为开辟“房间”)
(2)、控制语句:
控制语句的流程,以实现程序的各种结构方式。
它们由特定的语句定义符组成。
可以分成以下三类:
1)条件判断语句:
if语句,switch语句;
2)循环执行语句:
dowhile语句、while语句、for语句;
3)转向语句:
break语句、goto语句、continue语句、return语句。
(3)、复合语句:
把多个语句用括号{}括起来组成的语句称为复合语句。
Eg:
{t=x;x=y;y=t;}
x=3,y=5;重复对一个数赋值的时候,以最后的那个数值为准
则y=3
注:
复合语句内的各条语句都必须以“:
”结尾,在括号“{”外不能加分号。
(4)空语句:
只有分号“;”组成的语句称为空语句。
空语句是什么也不执行的
第2节:
格式输出和输入函数
一、格式输出函数printf()
功能:
是按用户指定的格式,把指定的数据显示到显示器屏幕上。
普通格式:
printf(“废话”)——原样输出废话——这种格式一般用作提示语
Eg:
#include”studio.h”
main()
{
Printf(“123456\n”)
}
常规格式:
printf(“格式控制字符串”,输出表列)
格式控制:
指定输出数据的类型格式:
%+字母
输出列表:
指定输出的内容格式:
常量,变量,表达式之间用逗号间隔
温馨提示:
把指定的内容按照指定的类型输出,一般情况下,内容和类型是一一对应的。
格式:
printf(“格式控制字符串”,输出表列)
Inta=30;
Printf(“%d%o%x”,a,a,a);
格式字符
意义
%d
以十进制形式(正数不输出符号)
%o
以八进制形式输出无符号整数
(不输出前缀0)
%x,X
以十六进制输出无符号整数(不输出前缀0x)
%u
以十进制输出无符号整数
%f(单精度),%lf(双精度)
以小数形式输出单、双精度实数
说明:
系统自动保留六位小数,超过六位,对第七位四舍五入
%e,%E
以指数形式输出单、双精度实数
说明:
输出格式mEn
m的整数是一位,保留六位小数,多
余六位同样四舍五入
E不变
n的整数位是一位,不够3位补0,且
前面带正负号
Eg:
3e5------>3.000000e+005
123.45678934---->1.2345678934e2--->1.234568e+002
1.29876543e-11---->1.298765e-011
g,G
以%f或%e中较短的输出宽度输出单、双精度实数
%c
输出单个字符(不输出单引号)
%s
输出字符串(不输出双引号)
%md/%mf/%mlf
M代表指定输出宽度,若指定宽度大于实际宽度,则靠右输出,左边补空格,若指定宽度小于实际宽度,则按实际宽度输出
Eg1:
#include”studio.h”
main()
{
pintf(“%d%5d\n”,78);----->78[][][]78
pintf(“%o\n”,23);----->27(027)
pintf(“%x\n”,35);----->23
pintf(“%f\n”,234.234567);----->234.456780
pintf(“%lf\n”123.22456523);----->123.224565
pintf(“%e\n”,12.34567549);----->1.23457e+001
pintf(“%c\n”,’a’);----->a
}
1)标志:
标志字符为:
-、+、#、空格四种,其意义如下所示:
标志
意义
-
结果左对齐,右边填空格
Eg:
inta=3
printf(“%-8d”,d)------>3[][][][][][][]
+
输出符号(正号或负号)
空格
输出值为正时冠以空格,
格式输入函数scanf()——个性化处理数据
功能:
即按用户指定的格式从键盘上把数据输入到指定的变量之中。
Scanf函数的一般形式:
scanf(“格式控制字符串”,地址表列)
格式控制:
%+字母:
指定类型
地址列表:
&+变量名:
变量的地址
地址表列中给出各变量的地址,地址是由地址运算符“&”后跟变量组成的。
格式字符串的一般形式为:
%[*][输入数据宽度][长度]类型
其中方括号[]的项为任选项。
各项的意义如下:
格式字符
意义
%d
以十进制形式(正数不输出符号)
%o
以八进制形式输出无符号整数
(不输出前缀0)
%x,X
以十六进制输出无符号整数(不输出前缀0x)
%u
以十进制输出无符号整数
%f(单精度),%lf(双精度)
以小数形式输出单、双精度实数
说明:
系统自动保留六位小数,超过六位,对第七位四舍五入
%e,%E
以指数形式输出单、双精度实数
说明:
输出格式mEn
m的整数是一位,保留六位小数,多
余六位同样四舍五入
E不变
n的整数位是一位,不够3位补0,且
前面带正负号
Eg:
3e5------>3.000000e+005
123.45678934---->1.2345678934e2--->1.234568e+002
1.29876543e-11---->1.298765e-011
g,G
以%f或%e中较短的输出宽度输出单、双精度实数
%c
输出单个字符(不输出单引号)
%s
输出字符串(不输出双引号)
%md/%mf/%mlf
M代表指定输出宽度,若指定宽度大于实际宽度,则靠右输出,左边补空格,若指定宽度小于实际宽度,则按实际宽度输出
%m.nd%m.nf%m.nlf
M代表指定宽度,n代表指定小数位数
注意:
先考虑小数位数,再考虑宽度
步骤:
1、按指定小数位数转换,多位(第5位)四舍五入
2、计算实际宽度(整数位+小数位+1)
3、在比较实际宽度和指定宽度的关系,同上,若指定宽度大于实际宽度,则靠右输出,左边补空格,若指定宽度小于实际宽度,则按实际宽度输
Eg:
printf(“%5,4lf”,123.123457)--->123.1235
Eg1:
#include”stdio.h”
Main()
{inta;
Scanf(“%d”,&a);/
/*从左向右看:
输入一个十进制整数赋值给变量a
提示:
当程序执行到scanf时,程序暂停运行,等待用户输入,输入数据后按回车赋值结束*/
Printf(“%d\n”,a);
/*从右向左看:
将a以十进制形式输出*/
}
Eg2:
#include”stdio.h”
Main()
{inta,b,c;
Scanf(“%d%d%d”,&a,&b,&c);
/*连续输入多个数字用空格或回车分隔*/
Printf(“%d,b=%d,c=%d\n”,a,b,c);
}
Eg3:
#include”stdio.h”
Main()
{chara,b,c;
Scanf(“%c%c%c”,&a,&b,&c);
/*连续输入多个字符不用空格或回车分隔
连续输入多个字符不用任何分隔符
有分隔符严格按照分隔符输入(比如Scanf(“%c,%c,%c”,&a,&b,&c);
)*/
Printf(“%d,b=%d,c=%d\n”,a,b,c);
}
总结:
printf,scanf函数都是标注库函数,它的函数原型在头文件“stdio.h”中。
但作为一个特例,不要求在使用此两个函数前必须包含“stdio.h”文件,但加上也可以
第3节:
字符输出和输入函数
1、putchar函数(字符输出函数)
Putchar函数是字符输出函数,其功能是在显示器上输出单个字符。
其一般形式为:
putchar(字符常量或变量);
注意:
使用本函数前必须要用文件包含命令:
#iclude
Eg:
charc=’z’;
Putchar(‘z’);/*输出字符常量z*/
Putchar(c);/*输出字符变量c里面的字符z*/
Putchar(‘c’);/*输出字符c本身*/
Putchar(‘\n’);/*换行*/
Putchar(‘\t’);/*跳到下一个制表位*/(一个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学计算机 二级 语言 15 章精讲 csdn 博客
![提示](https://static.bdocx.com/images/bang_tan.gif)