二级C语言培训教案Word文档下载推荐.docx
《二级C语言培训教案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《二级C语言培训教案Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。
”/”与“*”之间不能有空格。
(7)printf为C语言的屏幕输出函数,注意写法。
(8)书写程序时应遵循的规则:
语句中的不同单词至少且必须加一个空格以示间隔,若已有明显的间隔符,也可不再加空格来间隔;
最好一个语句占一行。
二、标识符
1、标识符命名规则
(1)只能包含字母、数字和下划线
(2)第一个字符必须是字母或下划线
(3)C语言是大小写敏感的,如grade和Grade是两个不同的标识符。
例、判断下列标识符的合法性
sum_tofile_5_2&
ay-m-d4dyes?
2、标识符分类
(1)关键字:
已经事先定义好了,程序远不能再将它们另做它用。
参看教材附录4,记住常用的关键字(如int、if、do、break、case、char等)。
(2)预定义标识符:
在C语言系统中已经使用了的标识符(如printf、scanf、define、include等)。
预定义标识符可用作用户标识符。
(3)用户标识符:
根据用户需要定义的标识符(用户自己取的名字)。
用户标识符不能是关键字。
标识符要求学生必须掌握。
练习部分课后习题
三、常量与变量
1、常量
在程序的运行过程中,其值不发生改变的量。
2、常量分类
(1)直接常量
直接常量又包括整型常量(如12、-3、0)、实型常量(如4.6、-1.23、1.2E+3)和字符常量(如'
A'
、'
6'
)。
(2)符号常量
符号常量在使用之前必须先定义,其一般形式为:
#define符号常量标识符常量值
通过以下两个实现功能相同(求圆面积)的程序,给学生解释使用与不使用符号常量两者的区别。
程序1:
程序2:
#defineR5main()
#definePI3.14159{
main()floatarea;
{intr;
floatarea;
r=5;
area=PI*R*R;
area=3.14159*r*r;
%f"
area);
printf("
}}
习惯上符号常量的标识符用大写字母。
符号常量的值在其作用域内不能被改变。
3、变量
在程序的运行过程中,其值可以改变的量。
4、变量的定义
变量定义的一般形式为:
类型说明符变量名;
变量名是合法的标识符,但不可以是关键字;
允许在一个类型说明符后,定义多个相同类型的变量,各变量名之间用逗号间隔,最后一个变量名之后必须以“;
”号结尾;
一般变量的定义放在函数体的开头部分。
通过以下例子的讲解,进一步掌握变量的定义与使用。
inta,b,c;
a=15;
c=b-a;
补充:
四、数制转换
计算机使用二进制进行数据的处理
最小存储单位称为“位(bit)”
一个字节占8位二进制数即1Byte=8bit(1B=8b)
1KB=1024B;
1MB=1024KB;
1GB=1024MB;
1TB=1024GB;
…..
1、十进制二、八、十六进制
转换方法:
将十进制数除以基数(二进制基数为2、八进制基数为8、十六进制基数为16),并记录余数,若商不为0,则继续用商除以基数,并记录余数,直到商为0,余数倒排列写下来,即为转换后的二进制或八进制或十六进制。
注意:
在转换过程中,余数为0也要记录下来,很多学生在做题时,忽略了余数0。
例:
(36)10=()2(39)10=()8(27)10=()16
2、二、八、十六进制十进制
按位展开,对应位乘以权值(权值即为基数的n次幂,n从0开始),最后将所有乘积相加,所得结果即为十进制数。
(10101)2=()10(67)8=()10(1A2)16=()10
3、八、十六进制二进制
八进制(或十六进制)数的每一位数字用三位(或四位)二进制数表示,最后将对应的二进制数依次写下来,即为二进制数。
八进制数7、6、5、4、3、2、1、0对应的三位二进制数分别为111、110、101、100、011、010、001和000。
十六进制数F、E、D、C、B、A、9、8、7、6、5、4、3、2、1、0对应的四位二进制数分别为1111、1110、1101、1100、1011、1010、1001、1000、0111、0110、0101、0100、0011、0010、0001和0000。
(642)8=()2(3B5C)16=()2
学生思考如何将二进制转换成八进制、十六进制?
五、整数和实数
1、整型常量分类
(1)八进制整型常量
以数字0开头,其中由数字0~7组成,如023、076等。
(2)十进制整型常量
最常用的常量,由数字0~9组成,如15、345、-38等。
(3)十六进制整型常量
以0x或0X开头,由数字0~9、字母a~f(或大写A~F)组成,如0x7e、0X4AB等。
在C程序中,只有十进制数可以是负数,而八进制和十六进制数只能是整数。
2、整型变量分类
(1)短整型变量
类型说明符为:
[signed]short[int],占用2个字节,取值范围为-32768~32767。
(2)基本整型变量
[signed]int,占用4个字节,取值范围为-2147483648~2147483647。
(3)长整型变量
[signed]long[int],占用4个字节,取值范围与基本整型变量相同。
例:
inta;
(4)无符号短整型变量
unsignedshort[int],占用2个字节,取值范围为0~65535。
(5)无符号基本整型变量
unsigned[int],占用4个字节,取值范围为0~4294967295。
(6)无符号长整型变量
unsignedlong[int],占用4个字节,取值范围同无符号基本整型变量相同。
整型变量的各种类型,在编程中一定要注意,不要让一个整型变量超出该类型的取值范围,以免发生溢出错误。
3、整数在内存中的存储形式
对于整型数据,在内存中都是以补码形式存储的。
用补码存储一个有符号整数,最高位(最左边的一位)存放符号,正数最高位为0,负数最高位为1。
计算规则如下:
正整数:
原码=反码=补码。
负整数:
反码=原码除符号位(符号位为1)以外,数值部分按位取反
补码=反码的末位加1
求±
11的原码,反码,补码。
(假设占一个字节的空间)
原码
反码
补码
无符号整数表示的都是正数,所以其中最高位不再存放符号。
在二级C考试中,只需要记住无符号整数65535表示成有符号整数-1,无符号整数65534表示成有符号整数-2,其他依次类推。
以下例子是历年考试中出现过的,通过讲解让学生掌握无符号数和有符号数的区别。
main()
{
unsignedinta;
intb=-1;
a=b;
%u"
a);
}
4、实型常量
(1)小数形式
小数点前或后可以没有数字,但不能同时没有数字。
如3.141590.13615..370.0-13.0
(2)指数形式
“E前E后必有数,E后必须为整数”。
1e51.25e+42.0e-3e51.2e2.0e1.3
5、实型变量
实型变量分为:
单精度实型(float)和双精度实型(double)。
float占用4个字节,double占用8个字节。
floata;
doubleb;
七、算术运算和赋值运算
1、算术运算符(+、-、*、/、%)
(1)/:
5/2=5.0/2=5/2.0=5.0/2.0=
(2)%:
5%2=-5%2=5%-2=
这五种算术运算符以/和%为主,进行除运算时,注意两边都为整数的情况;
“%”运算符左右两边必须为整数,余数的符号同被除数的符号相同。
2、算术运算符的优先级
(*、/、%)>
(+、-)
4*5+8*2%4+12/5=
3、强制类型转换
强制类型转换的格式为:
(类型名)表达式
在二级C考试中,经常考强制类型的转换格式,尤其是一对小括号的位置。
5、赋值运算符(=)
赋值运算的一般格式为:
变量=表达式
floatx=3;
inta=4.9;
赋值运算符的优先级只高于逗号运算符;
任意一种赋值运算符的左侧必须为变量,不能是表达式和常量;
整个赋值表达式的值是最左边变量的值。
当赋值运算符左右两边类型不一样,系统会自定进行类型转换(将=右边表达式的值的类型转换成左边变量的类型)。
判断
a+b=c;
a=b=m+n;
6、复合赋值表达式
(1)+=a+=6a=a+6
(2)-=a-=6a=a-6
(3)*=a*=6a=a*6
(4)/=a/=6a=a/6
九、自加、自减运算符
1、自加、自减运算符(++、--)
自加、自减运算符的运算对象只能是变量,运算符可在变量的前面,也可以在变量的后面,形如i++、++i、i--、--i。
2、自加、自减的运算规则
自加:
i++先用i的值参与运算,再使i的值加1。
++i先使i的值加1,再让i参与运算。
自减:
i--先用i的值参与运算,再使i的值减1。
--i先使i的值减1,再让i参与运算。
{intm=10,n=11;
%d,%d\n"
++m,n++);
/*输出结果为:
*/
--m,n--);
*/
3、自加、自减运算的注意事项
(1)只能和变量结合,如(i++)++是不合法的。
(2)运算结合方向是从右到左。
如:
-x++
十、逗号运算符及逗号表达式
1、逗号运算符(,)
形式:
表达式1,表达式2,表达式3
在逗号表达式中,逗号运算符具有从左向右的结合性,最后一个表达式的值是整个逗号表达式的值。
2、要和变量多余的情况区别开
3、优先级别:
在所有运算符中,逗号运算符优先级最低。
例1
Main()
inta=3,b=9;
printf("
%d\n"
(a,b));
/*输出结果为:
例2
a,b);
逗号运算与变量多余的区别,这是二级C考试中,经常会出错的。
补充:
十一、C语言中的语句
1、表达式语句
表达式;
2、空语句
;
3、复合语句
{语句1;
语句2;
…语句n;
十二、注释
C语句中有两种注释方法:
(1)//:
只能注释一行
(2)/*…*/:
可注释多行,在“/*”和“*/”之间的都属于注释部分。
注释在程序运行时,不执行,第二种注释需要注意,在二级C考试中出现过,参考教材。
十三、字符数据(第6章)
1、字符常量分类
(1)一般字符常量
用一对单引号括起来的单个字符,如'
b'
5'
。
(2)转义字符常量
在一对单引号内,以“\”开头,后跟一个字符,或1~3位八进制数。
另外也可以是1~2位的十六进制数,但必须以“\x”开头(在这里,一定注意x不能是大写的X)。
反斜杠后的八进制数不需要以0开头\61\101
反斜杠后的十六进制数不需要以0x开头,(x为小写)\x42\x6e
在二级C考试中,转义字符是必考的。
更要注意“\”后跟的1~3位八进制数不能以数字0开头。
2、字符变量
定义字符变量的格式为:
char变量名;
字符型数据在内存中占1个字节。
3、字符型数据参与运算
采用其ASCII码进行运算。
字符型数据可以按“%d”和“%c”输出,注意这两者区别。
第三章顺序结构
printf函数(难点)
3~4
putchar函数
60%
scanf函数(难点)
getchar函数
一、数据输出函数printf
1、printf函数的一般格式:
printf(格式输出控制,输出列表)
(1)格式输出控制:
需用一对双引号括起来,双引号内包含“格式说明”和“普通字符”两部分。
(2)输出列表:
需要输出的数据,多个数据之间用逗号隔开。
2、格式说明
“格式说明”由“%”和格式字符组成,如%d,%c,更多格式说明请参考P34,表2-1。
它的作用是把输出数据转换为指定格式输出。
在printf函数中,若格式说明的个数少于输出项的个数,多余的输出项则忽略不输出,这是二级C考试中经常出现的题目,可参考P34,例2进行讲解。
3、普通字符
普通字符会原样输出,转义字符需要输出对应的字符。
printf函数输出数据时,学生做题很容易忽略普通字符的输出。
在二级C考试中,这类题目常出现,可以通过以下例子进行讲解。
inta,b;
b=15;
a+b=%d"
a+b);
}
4、数据输出实例(已知inta=66;
floatb=123.56;
)
通过以下各输出语句,讲解输出函数的各种格式。
(1)printf("
a);
66
(2)printf("
%3d"
□66
(3)printf("
%-3d"
66□
(4)printf("
b);
123.560000
(5)printf("
%7.2f"
□123.56
(6)printf("
%-7.2f"
123.56□
%c"
B
(7)printf("
%x"
42
5、putchar函数
格式为:
putchar(c)
这里的c只能是字符型变量或字符型常量,即putchar函数只能输出字符型数据。
二、数据输入函数scanf
1、scanf函数的一般格式:
scanf(格式输入控制,输入数据列表)
格式输入控制与printf函数的格式输出控制相同。
输入数据列表必须是一个或者是多个合法的地址。
输入函数是一个难点,学生一般掌握的情况不是很好,建议老师讲解时放慢速度。
2、scanf函数的注意事项
(1)输入数值型数据时,各数值间的分隔符可以是:
空格、Tab、回车。
(2)输入字符型数据时,空格、Tab、回车都会被认为是字符,而不是分隔符。
(3)“格式输入控制”中的普通字符,在输入数据时一定要原样输入。
(4)跳过输入数据,在%和格式字符之间加一个“*”。
以上注意事项,在二级C考试题目中经常出现,可以通过以下数据输入实例,进行讲解。
3、数据输入实例(已知charc1,c2;
intc,d,e;
(1)scanf("
%d%d%d"
&
c,&
d,&
e);
输入:
5<
空格>
6<
7<
回车>
Tab>
6<
7<
//以上三种输入方式,c、d、e的值分别都为5、6、7。
(2)scanf(“%d,%d,%d”,&
5,6,7<
若输入第一个数据后,使用了任意一种分隔符,则只确定输入了c的值为5,d和e为本身的初始值,若没有初始值,则为不定值。
在C语言中,没有指定值的任何类型的变量,在输出时为不定值。
(3)scanf(“%d%*d%d%d”,&
c,&
d,&
2<
3<
4<
//c、d、e的值分别为2、4、5
(4)scanf("
%c%*c%*c%c"
c1,&
c2);
a<
b4<
//c1、c2的值分别为a、4
(5)scanf("
%2d%d%d"
123<
456<
//c、d、e的值分别为12、3、456
(6)scanf("
1<
//c的值为1、d、e为不定值
4、getchar函数
getchar()
该函数称为输入字符型数据的函数,只能用来接收一个字符型数据。
在输入字符型数据时,空格、Tab、回车都属于字符。
在二级C考试中经常出现该类题目,可以参考以下例子,进行讲解。
charc1,c2,c3,c4;
c1=getchar();
c2=getchar();
c3=getchar();
c4=getchar();
%c%c%c%c"
c1,c2,c3,c4);
运行程序时,输入:
b<