C 语言知识点文档格式.docx
- 文档编号:20566555
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:22
- 大小:36.72KB
C 语言知识点文档格式.docx
《C 语言知识点文档格式.docx》由会员分享,可在线阅读,更多相关《C 语言知识点文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
3.C语言的基本数据类型
3.1常量和变量。
数据可以分为常量和变量,常量是指在程序执行中不变的量,常量分为:
整型常数、实型常数、字符常量、字符串常量、符号常量。
变量是指在程序运行过程中其值可以改变的量。
C语言中没有字符串变量。
存放字符串使用字符数组。
3.2整型数据
①整型常量有十进制、八进制、十六进制三种表示形式,没有二进制形式。
八进制整型常量加前导数字0,十六进制常量加前导0X,八进制常量中不会出现8。
②整型变量可分为基本整型(int)占4字节、短整型(short)占2字节、长整型(long)占4字节、和无符号整型(unsigned)占4字节。
3.3实型数据(浮点数)
①实型常量
1)小数形式:
由数字和小数点组成,必须有小数点,小数点的某一侧可以没有数字。
如:
.23,123.876,123.
2)指数形式:
用“e”或“E”后接一个整数,表示以10为底的幂数。
注意:
“e”或“E”之前之后必须有数字,且之后的数字必须是整数。
他们和前后的数字之间不能有空格。
②实型变量单精度型(float)占4字节,双精度型(double)占8字节,长双精度(longdouble)占16字节(较少用)。
3.4字符数据
①字符常量用一对单引号括起的一个字符。
字符常量包括两种:
普通的字符常量(如:
’A’,’a’,’6’)和转义字符(见书P19)。
②字符变量字符变量的类型关键字为char,一般占用一个字节。
3.5字符串常量用双引号括起来的若干个字符的序列。
注意区分字符串常量和字符常量。
3.6符号常量符号常量的定义形式:
#define标示符字符串。
4.运算符和表达式
4.1算术运算符
算术运算符一共有+、-、*、/、%这五个。
求余运算要求运算对象只能为整型,除法运算符两边运算对象都为整型时,运算结果也为整型即舍掉小数部分。
4.2强制类型转换
强制类型表达式:
(类型名)表达式注意:
类型名(表达式)这种形式是C++的强制类型表达方式。
4.3赋值运算符及其表达式
(1)赋值运算符及表达式
赋值运算符为“=”,赋值表达式的格式为:
变量名=表达式
赋值运算符左边必须为变量,赋值运算是把赋值运算符右边表达式的值赋给左边变量。
(2)复合赋值运算符及其表达式:
由双目运算符加一个赋值符号构成
复合算术运算符:
+=、-=、*=、/=、%=
复合位运算符:
&
=、|=、^=、>
>
=、<
<
=
掌握复合赋值表达式转化为赋值表达式的方法。
a+=3相当于a=a+3
4.4自增、自减运算符及其表达式
自加运算符“++”与自减运算符“--”是单目运算符,运算对象必须是变量。
自增自减运算分前缀运算和后缀运算,它们所对应的表达式的值是有区别的,如j=i++;
等价于j=i;
i=i+1;
而j=++i;
等价于i=i+1;
j=i;
。
口诀:
加加在前先加后用,加加在后先用后加。
4.5逗号运算符及其表达式
1.格式:
表达式1,表达式2,…,表达式n注意:
1.逗号表达式的值是整个逗号表达式中最后一个表达式的值。
2.求值顺序是从左到右依次求解。
例如:
a=(3,b=1)的值是1运算结束后a的值是1,b的值是1。
4.6位运算符和位运算(详见书P42)
第3章顺序结构程序设计
一.知识点(6分)
C语句分类,字符输出函数putchar(),字符输入函数getchar(),格式输出函数printf(),格式输入函数scanf()。
1.C语言基本语句分类:
C语句共分为5类:
(1)控制语句:
条件判断语句(if、switch);
循环控制语句(while、do-while、for);
流程转向语句(break、continue、return、goto)。
(2)函数调用语句:
printf(“thisisacstatement”);
(3)表达式语句:
每一个合法的表达式后加上分号(;
)就构成了表达式语句。
++a;
i+j;
语句和表达式的区别:
表达式有唯一确定的值,而语句没有值。
赋值表达式和赋值语句:
赋值表达式和赋值语句的区别(参见书P53)。
(4)空语句:
只有一个单独的分号构成的语句。
;
就是一条空语句。
(5)复合语句:
用一对{}将若干语句括起来构成一条复合语句。
函数体中,包含顺序执行的各部分语句,主要由以下几部分组成,以计算梯形面积为例:
A.变量的说明部分:
定义实型变量a,b,h,s,分别用于存放上底,下底,高和面积;
B.提供数据部分:
调用输入函数,从键盘上输入数据给变量a,b,h;
C.运算部分:
运用梯形的面积公式求出面积s;
D.输出结果部分:
输出面积s。
程序代码:
#include<
stdio.h>
voidmain()
{
floata,b,h,s;
printf("
请输入上底,下底和高:
"
);
scanf("
%f%f%f"
&
a,&
b,&
h);
/*输入浮点数赋给变量s*/
s=(a+b)*h/2.0;
/*计算面积,赋给变量s*/
s=%6.2f\n"
s);
/*输出面积,数据共占6个字符宽,2位小数*/
}
2.格式输入输出语句:
在使用库函数时必须先用预编译命令#include<
头文件名>
或#include“头文件名”将相应的头文件包含到源程序中。
如:
#include<
2.1printf()函数格式:
printf(“格式控制”,输出列表);
功能:
按格式控制指定的格式输出数据。
注意:
格式控制包括以%开头的“格式说明符”和原样输出的普通字符。
printf(“a=%d,a+b=%d”,30,4+7);
输出结果是:
a=30,a+b=11
1d格式%d:
按整形数据的实际长度输出十进制整数。
%md:
m为指定为输出数据的宽度,即控制输出宽度,为一非负整数,若数据位数小于m,则左边补空格,若大于m列,按实际输出十进制数。
%-md:
若数据位数小于m,则右边补空格,若大于m列,按实际输出。
%ld:
输出长整型数据,也可指定数据输出宽度。
输入输出长整型数据时必须用该格式。
printf(“%d,%6d,%-6d,%ld”,386,1234,3456,12345L);
输出结果:
386,1234,3456,12345printf(“%2d”,12345);
12345。
②u格式%u:
以无符号十进制形式输出整数。
printf(“%u”,-1);
65535ptintf(“%u”,-32768);
32768。
③o格式%o:
以无符号八进制形式输出整数,不输出前导符0。
printf(“%d,%o”,-1,-1);
-1,177777。
④x或X格式%x或%X以无符号十六进制形式输出整数。
不输出前导符0x或0X,小写对小写,大写对大写。
printf(“%d,%x,%X,%x”,-1,-1,0xabc,0XAbc);
-1,ffff,ABC,abc。
注:
若要输出十六进制和八进制的前导符,则要用%#o和%#x、%#X格式。
printf(“%#o,%#x,%#X”,-1,-1,0xaBc);
0177777,0xffff,0XABC。
⑤c格式%c用来输出一个字符,不输出单引号定界符。
%c和%d可以相互转换。
printf(“%c,%d”,’a’,’a’);
a,97。
printf(“%c,%d”,100,100);
d,100。
⑥s格式%s用来输出一个字符串,不输出双引号和字符串结束符。
%s:
输出字符串的有效字符。
printf(“%s”,”china\0yunnan”);
china。
%ms:
输出占m列,若小于m列,左边补空格,大于m列,按实际输出。
printf(“%5s,%-5s,%2s”,”swfc”,”swfc”,”swfc”);
swfc,swfc,swfc。
%m.ns:
输出占m列,只输出字符串的左n个字符到m列的右端。
printf(“%7.5s”,”yunnan”);
yunna
⑦f格式:
按小数形式输出实型数据。
%f:
默认输出6位小数。
printf(“%f,%f”,543.12,5.4312e+2);
543.120000,543.120000
%m.nf:
输出占m列,其中有n位小数。
若超过m列,确保n位小数后按实际输出。
注意四舍五入问题。
printf(“%7.3f,%-7.3f,%4.2f”,3.1415726,3.1415926,314.5926);
3.142,3.142,314.59
⑧e格式%e以指数形式输出一个实数。
小数点前只有一位非零数,5位小数,3位指数。
printf(“%e,%e”,123.4,123.45e-7);
234000e+002,1.234500e-005
⑨g格式%g自动在%f和%e中选择较短的一种输出,对于小数部分不输出无意义的0。
printf(“%g,%g”,123.45,123.45e-2);
123.45,1.2345
2.2scanf()函数格式:
scanf(“格式控制”,地址列表);
①可指定数据所占的列数,输入后由系统自动截取相应的位数。
scanf(“%3d%2d”,&
b);
若输入:
3863018则:
a的值是:
386,b的值是:
30,若输入:
3863a的值是:
3。
scanf(“%3c%2d”,&
ch,&
c);
ch的值是:
’3’,b的值是:
30。
②%*md:
表示跳过m列不读。
scanf(“%*3d%3d%4d”,&
123456则:
456b的值是:
原来的值。
③不能在scanf()函数中指定输入数据的小数位数。
scanf(“%7.5f”,&
a);
/*出错*/
在scanf()函数中,输入时普通字符原样输入。
scanf(“a=%d,b=%d”,&
若要给a赋值5,b赋值10,正确的输入是:
a=5,b=10。
又如:
scanf(“%d*,%d#,%d”,&
若要让a,b,c分别得到1,2,3,正确的输入是:
1*,2#,3<
回车>
若两个格式说明符之间没有其它字符,则在输入数据时,两数据之间要用回车或空格分隔,回车或空格可以是多个。
但是,%c格式除外。
scanf(“%d%d”,&
若想让a的值为5,b的值为10。
则正确的输入是:
5空格10<
或5<
10<
或5空格空格空格10<
④多个%c格式之间没有其它字符,仍然不能用回车或空格来分隔。
scanf(“%c%c%c”,&
a空格b空格c<
a的值是’a’,b的值是空格,c的值是’b’。
⑤格式说明符所能操作的数据类型必须与对应变量的类型相同。
inta;
scanf(“%f”,&
/*出错*/
总结:
1.普通字符原样输入,原样输出。
2.对于%d格式,指定宽度小于输出宽度,原样输出。
3.%#o,%#x,%#X表示要输出八进制的前导符数字0,和十六进制的前导符0x。
4.%x,%X格式,小写对小写,大写对大写。
5.%*md:
表示跳过相应的输入项。
6.注意进制间的转换,以及无符号数和带符号数之间的转换。
7.在scanf()函数中,给double类型变量输入数据时,应该使用%lf类型说明符,而输出时,可以用%lf,也可以用%lf。
3.字符数据的输入输出语句
3.1putchar()和printf()格式:
putchar(字符),printf(“%c”,ch);
输出一个字符,但不输出单引号。
其中“字符”可以是一切合法的字符型或整型数据。
它会自动将整型数据转换为相应的字符输出。
putchar(65);
A,printf(“%c”,65);
A,charch=‘g’;
putchar(ch);
输出:
g,charch=‘g’;
printf(“%c”,ch);
输出:
g
3.2getchar()格式:
getchar()
接收一个从键盘输入的字符。
1.它可以接收从键盘上输入的任何字符,包括回车符、空格符等。
2.任何输入都是在回车后方按顺序送入内存中,a,b;
a=getchar();
b=getchar();
1<
则变量a的值为字符‘1’变量b的值为回车符。
第4章选择结构程序设计
一.知识点(8分)
关系运算符及优先次序,关系表达式,逻辑运算符及优先级,逻辑表达式,if语句的几种形式,if语句的嵌套,条件运算符,switch语句。
(※多分支结构的应用)
1.关系运算与逻辑运算
(1)逻辑值真(非零值),假(零)
(2)关系运算符及其表达式
<
=>
>
===!
=关系运算符优先级别低于算术运算符,高于赋值运算符。
(<
=)优先级别高于(==!
=)。
a>
b+c等价于a>
(b+c),a==b<
c等价于a==(b<
c),a=b<
c等价于a=(b<
c),4==4表达式的值为“真”。
4=4表达式不合法,关系表达式的值只有1和0,其中1表示“真”0表示“假”。
(3)逻辑运算符及其表达式
逻辑“与”,||逻辑“或”,!
逻辑“非”。
优先级别:
&
》||》!
运算规则:
逻辑&
:
遇假则假,逻辑||:
遇真则真,逻辑!
真假互换。
逻辑表达式的值:
1(真)、0(假)。
3>
4结果是:
0,3&
1,!
3&
4结果是:
0,0||3结果是:
1
注意短路现象,即在求解逻辑与(&
)表达式时,若&
运算符左边表达式的值为0(假),则不再进行&
右边表达式的运算,且将整个&
表达式的值定为0;
在求解逻辑或(||)表达式时,若||左边表达式的值为非0值(真),则不再进行||右边表达式的运算,且将整个逻辑||表达式的值定为1(真)。
例a++||b++,如果表达式a++的值非零,则表达式b++不再执行。
2.if语句
2.1if语句格式:
1)单分支if语句:
if(表达式)语句;
2)双分支if-else语句:
if(表达式)语句1;
else语句2;
3)多分支if-elseif语句:
if(表达式1)语句1;
elseif(表达式2)语句2;
elseif(表达式3)语句3;
┇
else语句n;
(1)if后的表达式必须用()括起,else后没有表达式。
(2)if和else都只能控制紧跟它的一条语句,若要控制多条语句,必须用一对{}括起构成一条复合语句。
2.2执行方式:
1)单分支if语句的执行方式:
首先判断表达式的值是否为“真”,若“真”,则执行语句部分。
如果表达式的值为“假”,则“跳过”语句部分执行if语句后面的其它语句。
2)if-else语句的执行方式:
首先判断表达式的值是否为“真”,若“真”,则执行语句1部分。
如果表达式的值为“假”,则执行else语句后面的语句2部分。
3)if-elseif语句的执行方式:
(见书P77)
例1:
main()
{intm=5;
if(m++>
5)printf(“m=%d”,m);
elseprintf(“m=%d”,m--);
}
例2:
if(++m>
elseprintf(“m=%d\n”,m--);
}
2.3if语句的嵌套
If语句嵌套的形式:
(见书P79)
if和else配对原则:
else总是与前面最近的且未配对的if语句配对,组成一对if-else语句。
例1.请分析下列程序的输出结果。
{ints,t,a,b;
s=1;
t=1;
if(a>
0)s=s+1;
b)t=s+1;
elseif(a==b)t=s;
elset=2*s;
printf(“%d\n”,t);
若运行时输入510回车,则程序的执行结果是?
0)
{s=s+1;
if(a>
}
elset=2*s;
若运行时输入510回车,则输出结果是?
3.switch语句
格式:
switch(表达式)
{case常量表达式1:
语句1;
break;
case常量表达式2:
语句2;
…
case常量表达式n:
语句n;
default:
语句n+1;
}
说明:
(1)switch、case、default、break都是关键字。
花括号里面的语句叫做switch语句体。
switch语句体中可以没有break语句和default部分。
(2)switch语句的圆括号中表达式的值必须是整型或是字符型,不能为实型。
case后的表达式可以是求得整型量的常量表达式,但是常量表达式中不能含有变量。
(3)执行switch语句时,首先计算switch后圆括号的表达式的值,然后将这个值与语句体中case后的常量表达式的值相比较,如果某个常量表达式的值与之相等,则执行该case后的语句块;
如果没有任何一个常量表达式的值与之相等,则执行default后的语句块。
(4)在执行的时候如果遇到break语句,则跳出switch语句。
如果执行完一个case或者default语句块后没有遇到break,则继续顺序往下执行,知道遇到break语句或者语句体被执行完毕为止。
(5)default最多只能有一个,通常出现在switch语句的最后部分,但也可以出现在case之间或所有的case之前。
第5章循环结构程序设计
while语句,do……while语句,for语句,循环嵌套,循环比较,break语句,continue语句,goto语句。
(※二重循环嵌套实现平面图形的输出)
循环在这一章中的知识点比较少,但是它贯穿了整个的C语言的章节中,老师在教学中一定要把它它当做重点中的重点来抓!
1.while语句
格式:
while(表达式){循环体语句}
1.1while是C语言的关键字。
1.2while后必须有小括号将表达式括起,里面的表达式是C语言中任意的表达式,作用是控制循环。
其值为“真”(非0)则执行循环体语句,否则跳出while循环。
1.3while语句也只能控制紧跟它的一条语句。
若需要控制多条语句,必须用{}括起,构成一条复合语句。
1.4圆括号内的表达式不能省略。
循环体中的可以由一条空语句构成,表示循环体部分不做任何的操作。
while(表达式);
/*;
是循环体,它是一条空语句*/例如:
分析下列程序的输出结果。
1.5执行过程:
(1)计算圆括号中表达式的值。
若为非0则执行循环体语句,若为0则跳出循环。
(2)执行完循环体语句后重复过程
(1)。
{inti=1,sum=0;
while(i<
=100)
{sum=sum+i;
i++;
printf(“sum=%d”,sum);
}这是学习C语言基础循环的最好的练习,老师让学生练习的时候可以把i控制在10以内,让学生知道什么是循环.
2.do-while语句
do循环体while(表达式);
2.1do是C语言的关键字,需要和while一起搭配使用。
2.2while后必须有小括号将表达式括起,里面的表达式是C语言中任意的表达式,作用是控制循环。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言知识点 语言 知识点
![提示](https://static.bdocx.com/images/bang_tan.gif)