第一章 C语言的基础知识

更新时间:2023-07-18 21:19:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第一章 C语言的基础知识

教学课时:

本章考点:

教学内容

一、 对C语言的初步认识

通过讲解以下这个简单的C程序例子,让学生对C程序有个大致了解。 1.计算两数之和

#include<stdio.h> main() {

int a, b , c ; a=10; b=20; c=a+b;

printf("%d" , c);

}

2.输出一句话 I Love You!

#include<stdio.h>

main() {

printf(“I Love You !\n”);

}

3.计算两数之积

#include<stdio.h> main() {

int a, b , c ; a=10; b=20;

c=a*b; /* 计算a*b的值并赋给c*/ printf("%d" , c); } 注: (1)

(2)C程序中有且仅有一个main函数,程序从main函数开始执行,并且在main函数中结束。

(3)用“{ }”括起来的部分称为“函数体”,“{”和“}”必须成对出现,表示开始和结束。

(4)main()函数的格式: main() {

函数体 }

(5)变量先定义,后使用。

(6)printf为C语言的屏幕输出函数,注意写法。

(7)每个语句必须有一个分号,表示语句结束,是语句的一部分。书写程序时应遵循的规则:语句中的不同单词至少且必须加一个空格以示间隔,若已有明显的间隔符,也可不再加空格来间隔;最好一个语句占一行。

(8)书写程序时应遵循的规则:语句中的不同单词至少且必须加一个空格以示间隔,若已有明显的间隔符,也可不再加空格来间隔;最好一个语句占一行。 (9)注释格式:/* */必须配对,且不能嵌套,/ 和*之间不能有空格 练习:试写求园的面积 试写求矩形的面积 历年真题讲解:

1. 以下叙述中正确的是()A

A.c程序中注释部分可以出现在程序中任意合适的地方 B.花括号只能作为函数体的定界符

C.构成c程序的基本单位是函数,所有函数都可以由用户命名 D.分号是c语句之间的分隔符,不是语句的一部分 2. 以下叙述中正确的是()C A.c程序的基本组成单位是语句

B.c程序中的每一行只能写一条语句 C.简单c语句必须以分号结束 D.C语句必须在一行内写完 3. 以下叙述中正确的是()C

A.c程序中的注释只能出现在程序的开始位置和语句的后面 B.c程序书写格式严格,要求一行内只能写一个语句

C.c程序格式自由,一个语句可以写在多行上 D.用c语言编写的程序只能放在一个程序文件中 4. 改错

二、标识符

1、标识符命名规则

(1)只能包含字母、数字和下划线 (2)第一个字符必须是字母或下划线

(3)C语言是大小写敏感的,如grade和Grade是两个不同的标识符。 例:

练习:p10习题 2、标识符分类

(1)关键字:已经事先定义好了,程序远不能再将它们另做它用。参看教材附录二,记住常用的关键字(如int、if、do、break、case、char等)。

(2)预定义标识符:在C语言系统中已经使用了的标识符(如printf、scanf、define、include等)。预定义标识符可用作用户标识符。

(3)用户标识符:根据用户需要定义的标识符。用户标识符不能是关键字。 历年真题讲解

1:

C

A.void B.8_8 C._0_ D.unsigned A.1-1 B.1—1 C._11 D.1—— 2:以下选项中不合法的标识符是:

C

练习:p11习题

三、常量与变量

1、常量

在程序的运行过程中,其值不发生改变的量。 2、常量分类 (1)直接常量

整型常量(如12、-3、0)、

整型常量的几个表示方法: 十进制数:0到9的数字组成 八进制数:以0开头的数字

十六进制:以0x或0X开头,由0-9和A-F组成。如:0xff 例:下列合法的八进制是:

C

注:整型常量没有二进制的

实型常量,有小数点的常量(如4.6、-1.23、1.2E+3) (1)小数形式

小数点前或后可以没有数字,但不能同时没有数字。 (2)指数形式 可以参考口诀:“E前E后必有数,E后必须为整数”, 例:p18习题

字符常量,由单个字符组成的量,用单引号引起(如'A'、'6')。

字符串常量,至少由一个字符组成的量,用双引号引起在内存中自动加/0做结束,开辟两个内存单元(如:“abc” “beijing”)

(2)符号常量

符号常量在使用之前必须先定义,其一般形式为: #define 符号常量标识符 常量值

通过以下两个实现功能相同(求圆面积)的程序,给学生解释使用与不使用符号常量两者的区别。

程序1: 程序2: #define R 5 main() #define PI 3.14159 { main() float area; { int r; float area; r=5; area=PI*R*R; area=3.14159*r*r; printf("%f", area); printf("%f", area); } } 注:习惯上符号常量的标识符用大写字母。符号常量的值在其作用域内不能被改变。

历年真题讲解:

例1:以下选项中,能用作数据常量的是:

D

例2.以下选项中不能作为c语言合法常量的是:

A

例3:以下选项中不属于字符常量的是:

B

3、变量

在程序的运行过程中,其值可以改变的量。 4、变量的定义

(1)变量定义的一般形式为: 类型说明符 变量名; 注:变量名是合法的标识符,但不可以是关键字;允许在一个类型说明符后,定义多个相同类型的变量,各变量名之间用逗号间隔,最后一个变量名之后必须以“;”号结尾;一般变量的定义放在函数体的开头部分。

变量必须先定义后使用。 (2)变量的分类: 整型变量分类 (1)短整型变量 类型说明符为:[signed] short [int],占用2个字节,取值范围为-32768~32767。 (2)基本整型变量

类型说明符为:[signed] int,占用4个字节,取值范围为-2147483648~2147483647。

(3)长整型变量

类型说明符为:[signed] long [int],占用4个字节,取值范围与基本整型变量相同。

(4)无符号短整型变量

类型说明符为:unsigned short [int],占用2个字节,取值范围为0~65535。 (5)无符号基本整型变量

类型说明符为:unsigned [int],占用4个字节,取值范围为0~4294967295。 (6)无符号长整型变量

类型说明符为:unsigned long [int],占用4个字节,取值范围同无符号基本整型变量相同。

注:整型变量的各种类型,在编程中一定要注意,不要让一个整型变量超出该类型的取值范围,以免发生溢出错误。可引导学生自己推出每种变量的表示范围。

实型变量分为:单精度实型(float)和双精度实型(double)。float占用4个字节,double占用8个字节。

四、数制转换

1

二、八、十六进制

转换方法:将十进制数除以基数(二进制基数为2、八进制基数为8、十六进制基数为16),并记录余数,若商不为0,则继续用商除以基数,并记录余数,直到商为0,余数倒排列写下来,即为转换后的二进制或八进制或十六进制。

注意:在转换过程中,余数为0也要记录下来,很多学生在做题时,忽略了余数0。

通过以下3个例子的讲解,使得学生对十进制转换成二、八、十六进制的方法进一步掌握。

(36)10=( 100100 )2 (39)10=( 47 )8 (27)10=( 1B )16 36 0 8 39 7 16 27 B 0 8 4 4 16 1 1 1 0 0

2 4 0 2 2 0 2 1 1

2 十进制

转换方法:按位展开,对应位乘以权值(权值即为基数的n次幂,n从0开始),最后将所有乘积相加,所得结果即为十进制数。

(10101)2=( )10 (67)8=( )10 (1A2)16=( )10 2= 1×24+0×23+1×22+0×21+1×20 =( 21 )10 4

2 2 1 20

8=6×81+7×80=( 55 )10

1 80

16=1×162+A×161+2×160=( 418 )10

2 161 160

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 8=(110100010)2 16=( 0011101101011100 )2

010 1100

给学生思考时间,如何将二进制转换成八进制、十六进制? 4.二进制与八进制、十六进制之间的转换

(1)八进制→二进制:把每个八进制数的单个数字用三位二进制数字来表示

(2)十六进制→二进制:把每个十六进制数的单个数字用四位二进制数来表示

(3)二进制→八、十六进制:从右向左每三位或四位二进制数为一组,不够往前面补0

五、整数和实数

前面介绍常量与变量时已介绍过,这里不再详细介绍。直接讲解p16页习题p17页习题

六、整数在内存中的存储形式

对于整型数据,在内存中都是以补码形式存储的。用补码存储一个有符号整数,最高位(最左边的一位)存放符号,正数最高位为0,负数最高位为1。计算规则如下:

正整数:原码=反码=补码。 负整数:

反码=原码除符号位(符号位为1)以外,数值部分按位取反 补码=反码的末位加1

注:无符号整数表示的都是正数,所以其中最高位不再存放符号。在二级C考试中,只需要记住无符号整数65535表示成有符号整数-1,无符号整数65534表示成有符号整数-2,其他依次类推。

例:求下列数的原码反码及补码 23 -12

历年真题讲解: main() {

unsigned int a; int b=-1; a=b;

printf("%u" , a); }

七、算术运算和赋值运算

注:这五种算术运算符以/和%为主,进行除运算时,注意两边都为整数的情况;“%”运算符左右两边必须为整数,余数的符号同被除数的符号相同

注:在二级C考试中,经常考强制类型的转换格式,尤其是一对小括号的位置。

历年真题讲解:

1. 若有定义语句: int x=10;则表达式x-=x+x的值为:B A.-20 B.-10 C.0 D.10 2.设有定义:int x=2;,以下表达式中,值不为6的是:D A.x*=x+1 B.x++,2*x C.x*=(1+x) D.2*x,x+=2

3.若变量均已正确定义并赋值,以下合法的c语言赋值语句是:A

历年真题讲解: main()

{ int m=011,n=11;

printf("%d,%d\n",++m,n++); printf("%d,%d\n",--m,n--); }

/*输出结果为:10,11*/ /*输出结果为:9,12*/

十、逗号运算符及逗号表达式

1、逗号运算符(,) 在逗号表达式中,逗号运算符具有从左向右的结合性,最后一个表达式的值是整个逗号表达式的值。

2、要和变量多余的情况区别开(参考P24、例2) /*【程序讲解】逗号表达式*/ #include "stdio.h" main()

{ int a1=3,a2=9;

printf("%d,",(a1,a2)); }

注:为学生讲解,将P24、例2中的最后一条语句改为“printf("%d\n",a1,a2);”的情况输出结果为3,使得学生注意逗号运算与变量多余的区别,这是二级C考试中,经常会出错的。

3、优先级别(重点讲解P24、例3)

在所有运算符中,逗号运算符优先级最低。 4.逗号表达式:用逗号将表达式连接起来的式子 格式:表达式1,表达式2, 例:

/*【程序讲解】逗号表达式*/ #include "stdio.h" main()

{ int x,y,z; x=y=1;

z=x++,y++,++y;

printf("%d,%d,%d",x,y,z); }

例题:int i=5;

int a,b,c;

十一、C语言中的语句

1、表达式语句

表达式; 算术表达式、赋值表达式、复合赋值表达式、增量表

达式、逗号表达式

2、空语句:一条语句没有任何内容,仅一个分号“;” ;

3、复合语句

用花括号括起来的多条语句组成一个复合语句。

复合语句在语法上等同于一个语句。

{语句1; 语句2; 语句n;} 4. C

语言的三大基本结构

顺序结构:程序中的语句按照顺序逐条执行 选择结构:根据条件判断结果,有选择性执行 循环结构:根据一定条件,某一段程序会反复执行

十二、注释

C语句中有两种注释方法: (1)//:只能注释一行

(2)/* */:可注释多行,在“/*”和“*/”之间的都属于注释部分。 注:注释在程序运行时,不执行,第二种注释需要注意,在二级C考试中出现过,参考教材P26,第4题。

十三、字符数据

1、字符常量分类 (1)一般字符常量

用一对单引号括起来的单个字符,如'A'、'b'、'5'。 (2)转义字符常量

在一对单引号内,以“\”开头,后跟一个字符,或1~3位八进制数。另外也可以是1~2位的十六进制数,但必须以“\x”开头(在这里,一定注意x不能是大写的X)。

注:在二级C考试中,转义字符是必考的,可以参考P28,例1。更要注意“\”后跟的1~3位八进制数不能以数字0开头。

2、字符变量

定义字符变量的格式为:char 变量名; 注:字符型数据在内存中占1个字节。 3、字符型数据参与运算 采用其ASCII码进行运算。

注:字符型数据可以按“%d”和“%c”输出,注意这两者区别。参考P29,第3题。

十四、位运算

1、位运算符(~、<<、>>、&、^、|) 2、位运算注意事项

(1)对象只能是整数或字符型数据。

(2)进行位运算前,一定要先将数据转换成二进制数。 (3)各个位运算符的优先级

注:字符型数据参与位运算时,采用其ASCII码进行运算。 3、位运算的规则

(1)~:0变1,1变0。

(2)<<:a<< i表示a向左移动i位,右补0。

(3)>>:a>> i表示a向右移动i位,左补符号位。

(4)&:a&b a、b对应的二进制位,同时为1,则结果即为1,否则为0。 (5)|:a|b a、b对应的二进制位,只要有一个为1,则结果即为1,否则为0。

(6)^:a^b a、b对应的二进制位,相同为0,不同为1。

注:在没有舍去数据的时候,<<左移一位表示乘以2;>>右移一位表示除以2。两个相同的数进行按位异或(^),结果为0。在历年考试中出现过类似的题,参考P31、例2,学生只要记住该规则,就可节省过多的做题时间。其次要掌握“&”和“|”,可以参考P31,例1进行讲解。

第一章课后习题

本文来源:https://www.bwwdw.com/article/3xp1.html

Top