二级C语言各章的知识点1.docx
- 文档编号:13554238
- 上传时间:2023-06-15
- 格式:DOCX
- 页数:113
- 大小:59.21KB
二级C语言各章的知识点1.docx
《二级C语言各章的知识点1.docx》由会员分享,可在线阅读,更多相关《二级C语言各章的知识点1.docx(113页珍藏版)》请在冰点文库上搜索。
二级C语言各章的知识点1
各章的知识点
第一章
(略---给学生们在书上画一下)
第二章C程序基础知识
(以下列举的知识点给学生在书上画一画,有的可以写在书上的空白地方或写在本上)
1简单的C语言程序的构成
(1)一个C程序只有一个main()----称为主函数,main要小写,程序的执行是从主函数开始并在主函数中结束,一个完整的C程序是由一个主函数和若干个子函数构成的。
(2)函数内部称为函数体,由一对大括号{}括起来,在{}里,前面必须是定义各种所需的变量,后面才是各种语句,二者不能颠倒,并且一个语句结束必须有分号;
下面是例子:
#include”stdio.h”/*或写成#include
嵌入头文件,注意前面要有#号,后面没有;号,所以它不是语句*/
main()
{inta,b,c;/*定义三个整型变量*/
a=2;/*以下三句是赋值语句,注意每个语句都有分号;*/
b=3;
c=a+b;
printf(“%d”,c);/*把变量C的值在电脑屏幕上显示---称为输出语句*/
}
把这个程序领着学生在VC6里演示一下,让学生会运行程序,并且会看输出结果。
2关于/*...........*/------称为注释,它不运行
(1)把从/*开始到*/结束的语句行都作为注释(记住—注释是不运行的)-----老师在投影上举一例说明。
(2)不能嵌套注释,如:
/*/*........*/*/
3关于给变量起名的问题,也就是变量名的命名规则
(1)由字母a~z、A~Z、0~9、_(下划线)组成
(2)由字母或下划线开头
(3)大、小写的字母是不同的变量
(4)不能使用C语言的关键字(关键字是小写的)
老师在此可以举例说明
4在C语言中经常可以用到哪些类型的变量和常量的问题
(1)若有f(x)=2x2+5,其中X是变量,5是常量,那么X的取值范围是什么呢?
是有符号整型?
无符号整型?
短整型?
长整型?
单精度浮点型?
双精度浮点型等等,这个问题在C语言的程序设计中对变量X的取值范围规定的比较清楚。
下面就介绍一下在C语言中对变量X是如何规定它的取值范围的。
呵呵!
!
!
①intx(signedintx或signedx)------称为普通整型,它规定了X的取值范围是下列类型(注意:
这里的变量X是用4个字节来存放的)
十进制的-----正整数、负整数、0,如:
25、-36等
八进制的-----正整数,如:
065等,-065(不允许)
十六进制的----正整数,如:
0x2c,0Xa6等,-0xa1(不允许)
②shortintx(shortx)------称为短整型,它规定的X的取值范围和intx基本一样,只不过取的数要比intx要小而已,因为它是用两个字节来存放X的(-32768~+32767)。
而上面的是用四个字节来存放X的。
③longintx(longx)-----称为长整型,其规定的X取值范围和intx一样,也是用四个字节来存放X的(输入时要用%ld、%Ld)。
④unsignedintx(unsignedx)------称为无符号整型,它规定了X只能取正整数,也是用四个字节来存放X的。
⑤unsignedshortintx------称为无符号短整形,其十进制的取值范围喂0~65535
⑥charx------称为字符型,用一对单引号‘’括起来的任意字符,包括字母字符、数字字符、转义字符等
如:
’a’、’3’、’\n’等
分析:
’a’、’A’、‘2’、2、‘ab’、‘\123’
⑦floatx------单精度浮点型,小数点后默认保留6位小数
如:
0.123、.123、123.等
1.23e+2、1.23e2、1.23E2、.123e-2等(指数形式)
用指数形式表示浮点数要注意三点:
ⅰ、e或E前后必须有数ⅱ、e或E后面必须是整数ⅲ、e或E的前后以及数字之间不得插入空格
⑧doublex------双精度浮点型(输入时要用%lf或%Lf,输出可用%f、%lf、%Lf)
(2)关于常量(整数、小数、字符型数据)
5------可以认为是int型、shortint、unsignedint都可以
5L或5l------是longint型
5h或5H------是shortint型
1.23------是double型
‘a’-----97
‘A’-----65
‘2’------50
‘\123’---
(3)关于类型的强制转换问题------即把一个类型强制转换成其他类型
如:
#include”stdio.h”
main()
{intx=5;/*给变量X初始化*/
floaty,z;
z=2.56;/*给变量Z赋值*/
y=(float)x;/*对变量X的值进行强制转换,而X的类型和值都不改变*/
printf(“%d,%f\n”,x,y);/*5,5.000000*/
x=(int)z;(或写成x=z)/*对变量Z的值进行强制转换,且不进行四舍五入*/
printf(“%d”,x);/*2*/
}
分析:
a=(float)b+c;和a=(float)(b+c);有什么区别?
关于强制转换要注意两点:
一是待转换的类型一定要用小括号括起来;二是对后面变量的值进行转换,不改变原来变量的类型和值,并且不进行四舍五入。
5常用的算术运算符
+、-、*、/、%、+=、-=、*=、/=、++、--、,等
下面把需要特殊注意的运算符加以说明:
①/------除号,ⅰ若分子和分母都是整型,其结果也是整型(不进行四舍五入)ⅱ若分子或分母至少有一个是浮点型,其结果就是浮点型。
%------取余,注意%的前后都必须是整型的,且结果的符号与被除数相同.
举例:
把两个两位的正整数按要求组成一个新数
a=45,b=32,要求组成一个新数C=4325
#include”stdio.h”
main()
{inta=45,b=32,c;
c=a/10*1000+b/10*100+b%10*10+a%10;
printf(“%d”,c);
}
分析:
如何取出1234的每个位上的数?
(使用算术符%和/)
②+=、-=、*=、/=------称为复合运算符(注意:
两个符号不能分开)
如:
a=a+b;可以写成a+=b;
a+=b-c和a-=b+c可以写成什么呢?
(由学生来回答)
a+=a-=a+a(假设a=9),最后a=?
(-18)(由老师来讲解)
③++、--称为自增自减运算符(单目的),很重要
如:
a++先用a,然后再把a加1
++a先把a加1,然后再用a
a--先用a,然后再把a减1
--a先把a减1,然后再用a
举例:
见如下程序
#include”stdio.h”
main()
{inta=3,b=6,c,d,e,f;
c=b+a++;
d=a+(--b);
e=-a++;
f=a+b+c;
printf(“a=%d,b=%d,c=%d,d=%d,e=%d,f=%d\n”,a,b,c,d,e,f);
}
答案:
a=5,b=5,c=9,d=9,e=-4,f=19
④,逗号---称为逗号运算符,由逗号运算符构成逗号表达式,逗号表达式最后一项的值就是逗号表达式的值,逗号运算符的优先级最低。
如:
a=3,b=4,c=5;
x=(a,b,c);问:
x=?
(5),逗号表达式的值=?
(5)
x=a,b,c;问:
x=?
(3),逗号表达式的值=?
(5)
x=(a++,--b,a+b);问:
x=?
(7),逗号表达式的值=?
(7)
x=a++,--b,a+b;问:
x=?
(3),逗号表达式的值=?
(7)
x=(a++,--b,a+b+c++);问:
x=?
(12),逗号表达式的值=?
(12)
6关于数据溢出问题,看下面例子:
inta=-3;
unsignedshortx;
x=a;问:
x=?
(65533)
7分析:
inta=b=c=1;对不?
领学生做书后的习题
第三章顺序结构程序设计
1关于输出函数的使用
使用的格式:
ⅰprintf(“各种字符及汉字等”);/*printf要小写*/
这种使用就是在屏幕上显示双引号中的内容
ⅱprintf(“输出格式控制”,待输出的变量列表);
这种使用就是在屏幕上以何种形式输出变量的值
要重点掌握输出格式控制都有哪些?
1格式符:
%d以普通整型输出(不可以写成%D)
%md以普通整型输出,数据占m位,右对齐
%+md以普通整型输出,数据占m位,右对齐(正数的前面有+号)
%-md以普通整型输出,数据占m位,左对齐
%hd以短整型输出
%ld(或%Ld)以长整型输出
%u以无符号整型输出
%o以八进制形势输出
%x(或%X)以十六进制形势输出
%f以单精度小数形势输出,点后6位小数
%lf(或%Lf或%f)以双精度小数形势输出,
%±m.nf以单精度小数形势输出,点后n位小数,且进行四舍五入
%.nf以单精度小数形势输出,点后n位小数,且进行四舍五入
%c以字符形式输出
%s以字符串形式输出
说明:
以上的常用格式符必须和后面的变量一一对应,并且后面的变量是什么类型前面就必须用相应的格式符
例:
inta=-2;
unsignedintb=30;
floatc=3.1456;
printf(“%d%u%5.2f”,a,b,c);问:
输出结果是什么?
(-2303.15)
②普通字符
普通字符原样输出,它不控制变量的输出。
printf(“a=%d,b=%u,c=%5.2f”,a,b,c);问:
输出结果是什么?
③转义字符
\n回车且换行
\r回车但不换行
\b退一个字符
\t走一个制表位(8个字符)
\\转译成\
\’转译成’
\”转译成”
%%转译成%
\ddd转译成1~3位八进制所对应的ascii码值所代表的字符
\xdd转译成1~2位十六进制所对应的ascii码值所代表的字符
老师举例子说明
如:
printf(“a=%d,b=%u,c=%5.2f\n”,a,b,c);
printf(“%c\n%c\n”,’\56’,’\x2a’);
问:
以上输出结果是什么?
答案:
inta=1,b=3;
printf(“%d”,a,b);输出结果是什么?
(1)
printf(“%d”,(a,b));输出结果是什么?
(3)
2关于输入函数的使用
格式:
scanf(“输入格式控制”,变量地址列表);
重点掌握都有哪些输入格式?
(有格式符和普通字符,没有转义字符)
1格式符:
%d以普通整型输入
%ld(%Ld)以长整型输入
%hd以短整形输入
%md取整型的m位
%u以无符号型输入
%o以八进制输入
%x(%X)以十六进制输入
%f以单精度小数输入
%lf(%Lf)以双精度小数输入
%mf以单精度小数输入
(但是不能规定它的精度。
如:
%5.2f)
%c以字符型输入
%s以字符串型输入
如:
inta;
floatb;
doublec;
longd;
scanf(“%d%f%lf%ld”,&a,&b,&c,&d);
假设让a=23,b=2.6,c=12.66,d=12345
问:
在键盘上应如何输入?
②普通字符
普通字符不影响输入,只是在输入时原样打上就行
如:
把上例改为:
scanf(a=%d,b=%f,c=%lf,d=%ld);那么应该如何输入?
③关于混合输入问题
如:
假设让a=23,b=’k’,c=12.5,d=’p’
scanf(“%d%c%f%c”,&a,&b,&c,&d);问:
如何输入?
(23k12.5p或23k12.5p)
④关于跳过某个输入项的问题
如:
scanf(“%d%*d%f”,&x,&y);
假设输入如下:
20302.5回车
问:
x=?
(20)y=?
(2.5)
⑤按照给定的长度输入
如:
scanf(“%3d%2d”,&x,&y);
假设输入如下:
2345678回车
问:
x=?
(234)y=?
(56)
下面举三个综合的例子:
(让学生自己写写看行不?
?
?
)
例1:
从键盘输入两个两位的正整数,第一个数的十位作为千位,个位作为十位;第二个数的十位作为百位,个位作为个位,组成一个新的数输出。
#include”stdio.h”
main()
{inta,b,c;
scanf(“%d%d”,&a,&b);
c=a/10*1000+b/10*100+a%10*10+b%10;
printf(“\nc=%d”,c);
}
例2:
从键盘输入两个数,然后把这两个数交换并输出
#include”stdio.h”
main()
{inta,b,t;
scanf(“%d%d”,&a,&b);
t=a;a=b;b=t;;
printf(“\n%d,%d”,a,b);
}
例3:
输入一个double型数,保留两位小数,第三位小数进行四舍五入,然后输出。
#include”stdio.h”
main()
{doublex,y;
scanf(“%lf”,&x);
y=(int)(x*100+0.5)/100.0;
printf(“\ny=%.2f”,y);
}
最后领学生做做书后习题
第四章选择(分支)结构程序设计
1在C语言中真和假的概念
真-----若一个表达式成立则称为真;若值为非0也称为真。
2关系运算符和关系表达式
C语言提供六种关系运算符:
><>=<=
==(等于)!
=(不等于)
注意几点:
●由两个符号组成的关系运算符不能分开
●前四个运算符优先级相同且高于后两个
●关系符低于算术运算符,但高于赋值运算符(=)
如:
a+b==c相当于(a+b)==c
●关系表达式的值:
一个是真(用1来表示);另一个是假(用0来表示)
●注意“=“和”==“的区别
●0 3逻辑运算符和逻辑表达式 C语言提供三种逻辑运算符: ! (逻辑非)&&(并且)||(或者) 他们之间的优先级由高到底是: ! &&|| 注意几点: ●! 高于算术运算符,! 、&&、||都高于赋值运算符。 ●逻辑表达式值的问题: 真和假 ●逻辑表达式的短路问题: 如: a=0,b=0 问下列逻辑表达式的值是什么? a=? b=? a++&&b++ 答案: 逻辑表达式的值为假(也就是0),a=1,b=0 若改为: a++||b++呢? 情况会如何呢? 总结: 六个关系符和三个逻辑符的优先级都高于赋值(=);除了! 之外都低于算术运算符 4用C语言程序来完成下列的分段函数 y= #include”stdio.h” main() {intx,y;/*定义两个整型变量*/ scanf(“%d”,&x);/*从键盘输入一个整数X*/ if(x>-5&&x<0) y=x; if(x==0)/*注意x==0与x=0的区别*/ y=x-1; if(x>0&&x<10) y=x+1; printf(“y=%d\n”,y);/*把结果输出到屏幕上*/ } 说明: 在C语言中可以用if语句和switch语句来实现程序的分支。 (1)用if语句实现分支 格式: ①if(条件) {语句1} 即: 条件为真,执行语句1、 ②if(条件)/*if和else是关键字,要小写*/ {语句1} else{语句2} 即: 条件为真,执行语句1,否则执行语句2 注意以下几点: ①if后面的条件可以是如下类型: ●关系表达式,如x>y ●逻辑表达式,如x>y&&y>z ●算术表达式,如x+y ●赋值表达式,如x=y ●变量,如x ●常量,如-5 ●++或—出现在条件里,如x++>y ②如果语句1或语句2是一条语句,则{}一对花括号可以省略 ③if….else是一条语句,else不能单独出现,要注意else与if的搭配问题(既: else与其上面最近的且没使用的if搭配) 下面举几个例子来说明: 例1: 从键盘输入一个整数,判断其是奇数还是偶数? #include”stdio.h” main() {intx,y; scanf(“%d”,&x); if(x%2==0) printf(“偶数”); elseprintf(“奇数”); } 例2: 下面程序的输出结果是什么? #include”stdio.h” main() {inta=2,b=-1,c=2; if(a if(b<0)c=0; elsec+=1; printf(“%d”,c); } 答案: 2 例3: 下面程序的输出结果是什么? #include”stdio.h” main() {inta=2,b=-1,c=2; if(a {if(b<0)c=0;} elsec+=1; printf(“%d”,c); } 答案: 3 例4: 下面程序的输出结果是什么? #include”stdio.h” main() {inta=2,b=-1,c=2; if(a++ if(b<0)c=0; elsec+=1; printf(“%d,%d”,c,a); } 答案: 2,3 分析: 可以把条件a++ 第一步: 先判断a 还是假? 第二步: 把a加1,既a=a+1 第三步: 根据第一步的判断情况来决定程序的执行方向 请同学们考虑: 若改为++a 例5: 下面程序的输出结果是什么? #include”stdio.h” main() {inta=2,b=-1,c=2; if(a=b) if(b<0)c=0; elsec+=1; printf(“%d”,c); } 答案: 0 ⑵关于三目运算符 格式: 表达式1? 表达式2: 表达式3 既: 如果表达式1为真,则取表达式2的值,否则取表达式3的值 看下面例子: inta=1,b=2,c=3,y; y=a>b? a: b;问: y=? (2) y=a>b? a: a>c? c: a;问: y=? (1) ⑶用switch开关语句来实现程序的分支 格式: switch() {case常量表达式1: 语句; case常量表达式2: 语句; case常量表达式3: 语句; 。 。 。 default: 语句 } 注意以下几点: ◆switch和case是关键字,要小写 ◆switch后面括号里可以是以下内容: 整型常量或变量、字符常量或变量、关系表达式、 逻辑表达式、整型的算术表达式,总之是整数 ◆case要和后面的常量表达式用空格分开,且这个常量表达式必须是整型常量或字符常量,不是变量。 ◆default可以放在任何位置,不一定在最后,也可以没有 ◆可以用break语句跳出switch 举几个例子: 例1: 程序输出结果是什么? #include”stdio.h” main() {intx=0,y=2,z=3; switch(x) {case0: printf(“*”); case1: printf(“#”);break; default: printf(“! ”); } } 答案: *# 例2: 程序输出结果是什么? #include”stdio.h” main() {intx=0,y=2,z=3; switch(x) {case0: switch(y==2) {case1: printf(“*”);break case2: printf(“%”);break; } case1: printf(“#”);break; default: printf(“! ”); } } 答案: *# 领学生做书后习题 第五章循环结构程序设计 如何计算1+2+3+4+。 。 。 。 。 。 +100? ? ? 这就需要用到循环,C语言有三种循环结构, 既: while()、do{}while;、for() #include”stdio.h” main() {inti,sum=0;/*定义所需的变量,并给变量sum初始化为0*/ i=1; while(i<=100) {sum+=i; i++; } printf(“%d”,sum); } (1)while()循环 格式: while(循环条件) { 循环体 } 既: 若循环条件为真,则执行循环体中的语句,执行完后再去判断循环条件,若还为真,则继续执行循环体,否则退出循环。 注意以下几点: ①while是关键字,要小写 ②while后面的循环条件和if后面的条件一样 ③对于任何循环,只要掌握两点内容: 一是循环条件是什么? 二是循环体是谁? ④若循环体只是一条语句,则一对花括号{}可以省略 ⑤如何结束循环,一般是两种方式: 一是正常结束(既不满足循环条件了) 二是中途结束(用break语句) 现在再返回上面的程序看一看,能否找到循环条件是什么? 循环体是谁? while(x>0) ; 或写成while(x>0);请说出循环条件和循环体? ? ? (2)do…while()循环 格式: do{ 循环体 }while(循环条件); 既: 先执行循环体中的语句,执行完后再去判断循环条件,若为真,则继续执行循环体,否则退出循环。 注意以下几点: ①do和while是关键字,都要小写 ②循环至少执行一次 ③while()后面要有分号; (3)for循环 格式: for(表达式1;表达式2;表达式3) { 循环体 } 执行过程: 先执行表达式1,然后判断表达式2是否为真? ,若为假则退出循环;若为真则执行循环,再执行表达式3,然后再去判断表达式2是否为真? ,若为真则继续执行循环体,再执行表达式3……,直到表达式2为假 注意以下几点: ①三个表达式可有可无,但分号;必须有 ②三个表达式的含义如下: 表达式1: 一般是给变量赋值的 表达式2: 是循环条件 表达式3: 是变量的变化 ③重点弄明白循环条件是什么? 循环体是谁? ④如何结束循环,两种方式: 一是正常结束(既不满足循环条件了) 二是中途结束(用break语句) 用do…while()循环和for()循环来改写上面的例子: 1用do…while()循环 #include”stdio.h” main() {inti,sum=0;/*定义所需的变量,并给变量sum初始化为0*/ i=1; do{sum+=i; i++; } while(i<100);/*注意后面的分号一定要有*/ printf(“%d”,sum); } 2用for()循环 #include”stdio.h” main() {inti,sum=0;/*定义所需的变量,并给变量sum初始化为0*/ for(i=1;i<=100;i++) sum
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 语言 各章 知识点