文档库 最新最全的文档下载
当前位置:文档库 › C语言教程

C语言教程

C语言教程
C语言教程

1.第一章:设计语言的讲解

2.第一章:程序的算法与结构设计。

3.第二章:C程序的设计初步了解。

4.第二章:C程序的格式的讲解。

5.第二章:C程序格式的几个考点讲解。

6. 2.2 标识符、常量、变量一

7. 2.2 标识符、常量、变量二

8. 2.2 标识符、常量、变量三

9. 2.2 标识符、常量、变量考点讲解

10.2.3 整型常量

11.2.3 整型变量

12.2.3 整型数据的分类

13.2.4 实型常量

14.2.4 实型变量

15.2.5 算术表达式、运算符优先级及强制类型转换

16.2.6 赋值表达式

17.2.7 复合表达式与赋值中的强制类型转换

18.2.7 ++ 和——的讲解

19.2.7 逗号表达式与实例讲解

20.课后习题的讲解

21.课后习题的讲解

22.课后习题的讲解

23.第二章的总体回顾

24.3.2输出语句的讲解一

25.3.2输出语句的讲解二

26.3.2输出语句的讲解三

27.3.2输出语句考点例题讲解。

28.3.3输入语句的讲解一

29.3.3输入语句的讲解二

30.3.3输入语句考点例题讲解。

31.3.4 复合语句与空语句

32.3.5 程序设计

33.课后习题讲解

34.课后习题讲解

35.课后习题讲解

36.第三章总体回顾

37.4.1关系运算

38.4.1逻辑运算

39.4.2 IF语句

40.4.2 IF语句

41.4.2 IF语句的嵌套

42.4.2 IF语句的嵌套

43.4.2 IF语句的几个考试例题

44.4.3条件表达式

45.4.4 switch语句

46.4.4 switch语句与BREAK

47.4.4switch语句的几个考试例题

48.课后习题

49.课后习题

50.课后习题

51.第四章的总体回顾

52.5.1while 语句

53.5.1while的几个习题

54.5.2do while

55.5.3 FOR语句

56.5.3 FOR语句

57.5.4 for的嵌套

58.5.4FOR的嵌套

59.5.4素数的判定

60.FOR语句的实例

61.FOR语句的实例

62.FOR语句的实例

63.5.5 break 与continue

64.5.5 break 与continue

65.5.6 程序的举例

66.例年考题讲解

67.例年考题讲解(上机题)

68.例年考题讲解(上机题)

69.课后习题

70.课后习题

71.课后习题

72.6.1字符常量

73.6.1字符串常量与字符变量

74.6.3字符的输入与输出

75.6.3字符与其它数据类型混合的输入与输出

76.6.4程序举例

77.课后习题讲解

78.课后习题讲解

79.课后习题讲解

80.课后习题讲解

81.第六章的总体回顾

82.7.1库函数

83.7.2函数的应用与说明

84.7.2函数的定义与使用

85.7.2return的应用

86.7.3函数的调用

87.7.3函数的调用

88.7.4函数的说明与调用函数的数据传递

89.7.6程序举例

90.7.6程序举例

91.例年考题讲解

92.例年考题讲解(上机)

93.例年考题讲解(上机)

94.课后习题

95.课后习题

96.课后习题

97.第七章总体回顾

98.8.1变量的地址与指针

99.8.2指针变量的定义

100.8.2指针变量的定义

101.8.3给指针变量赋值

102.8.3给指针变量赋值

103.8.4指针变量的操作

104.8.4指针变量的操作

105.8.4指针变量的表示

106.8.4指针变量所指向的数据的增减107.8.4指针的移动

108.8.4指针的移动

109.8.5指针在函数调用中的应用110.8.5指针在函数调用中的应用111.例年考题讲解

112.例年考题讲解

113.例年考题讲解(上机)

114.例年考题讲解(上机)

115.课后习题分析

116.课后习题分析

117.课后习题分析

118.第八章总体回顾

119.第八章总体回顾

120.9.1数组的初步了解

121.9.1一维数组的定义

122.9.1一维数组的引用与始化

123.9.1一维数组的使用

124.一维数组的实例

125.9.2一维数组和指针

126.9.2一维数组和指针

127.9.2通过指针引用一维数组\ 128.9.3一维数组在函数调用中的应用129.9.3一维数组在函数调用中的应用130.9.3一维数组在函数调用中的应用131.9.4应用举例

132.9.4应用举例

133.9.4应用举例

134.9.5二维数组的定义

135.9.5二维数组的引用

136.9.5二维数组的初始化

137.9.5二维数组通过FOR语句初始化138.9.6二维数组元素的地址表示139.9.6二维数组元素的地址表示140.9.6通过指针来引用数组元素141.9.6指针数组与数组指针

142.9.7二维数组在函数调用中的应用143.9.7二维数组在函数调用中的应用144.9.7二维数组在函数调用中的应用145.9.8应用举例

146.9.8应用举例

147.9.8应用举例

148.例年考题讲解

149.例年考题讲解

150.例年考题讲解(上机)

151.例年考题讲解(上机)

152.例年考题讲解(上机)

153.例年考题讲解(上机)

154.课后习题

155.课后习题

156.课后习题

157.第九章总体回顾

158.第九章总体回顾

159.10.1字符与一维数组

160.10.1字符串与一维数组

161.10.2指针指向一个字符串

162.10.3字符串的输入和输出

163.10.4字符串数组

164.10.5几个用于字符处理的函数与程序举例

165.例年考题讲解

166.例年考题讲解(上机)

167.课后习题

168.课后习题

169.课后习题

170.第十章总体回顾

171.11.1对函数的进一步讨论

172.课后习题的讲解

173.课后习题的讲解

174.12.1局部变量与全局变量

175.12.2静态变量

176.课后习题

177.课后习题

178.13.1宏

179.例年考题

180.14.1.结构的初步认识

181.14.2结构体的定义

182.14.2结构体的初始

183.14.2结构体成员的引用

184.14.3共用体与结构体的区分

185.例年考题讲解

186.15章位运算

187.16章文章

188.上机题思路分析

189.上机题思路分析

190.上机题思路分析

第一章程序设计基本概念

1.1程序和程序设计

程序:连续执行的一条条指令的集合称为“程序”。

对于计算机来说,它不能识别由高级语言编写的程序,它只能接受和处理由0和1的代码构成的二进制指令或数据。由于这种形式的指令是面向机器的,因此也被称为“机器语言”。所以所有由高级语言编写的程序都要经过编译,编译成二进制代码。这种具有翻译功能的软件称为编译程序。

语言有很多种,我们现在要谈论的就是C语言。为什么计算机会能进行各种各样的操作,就是由不同的指令来实现的。而不是只有C语言才可以实现这样的功能。还有其它很多语言。但是我们一般说C语言是其它语言的母语。会了C语言其它的语言在学习的过程就会感到轻松一些。

1.1.2程序设计

1.确定数据结构

2.确定算法

3.编码

4.在计算机上调试程序

5.整理并写出文档资料

1.2算法

定义:是指为了解决某个特定的问题而采取的确定且有限的步骤。

1.有穷性

2.确定性

3.可行性

4.有零个或多个输入

5.有一个或多个输出

1.3结构化程序设计和模块化结构

结构化程序由三种基本结构组成

顺序结构

1.

2.选择结构

3.循环结构

12)计算机能直接执行的程序是(B )。

A)源程序 B)目标程序 C)汇编程序 D)可执行程序

13)以下叙述中正确的是( D )

A)程序设计的任务就是编写程序代码并上机调试

B)程序设计的任务就是确定所用数据结构

C)程序设计的任务就是确定所用算法

D)以上三种说法都不完整

第二章:C程序设计的初步知识

2.1 C语言程序的构成和格式

#include

Main()

{

double a,b,area;

a=1.2,b=3.6; /*将矩形的两条边长分别赋给a和b 变量*/

area=a*b;

printf(“a=%f,b=%f,area=%f\n”,a,b,area);/*输出矩形的两条边长和面积*/

}

#include :每当写一个程序时,第一条语句永远是这个语句,因为一个程序可以没有输入但必须要有输出,而这个语句就是控制输入输出的。所以任何一个程序都必须由这个语句开始。

Main():是一个程序的主函数。一个程序是由多个函数组成的,而任何一个程序都要有一个主函数,有且只有一个。任何程序都是由主函数开始执行的。

{}:它们两个必须要成对出现,它们中的语句是主函数体。包括定义部分和执行部分。它们中的语句,每一条必须由;结束。;是C语句的一个组成部分而不是一个结束标识。

/**/:注释符一定要成对出现,不允许嵌套。两个符号间的语句不被执行。

例年真题:

#include

main()

{

Int a;

A=5; /*给A变量赋值5

A+=3; 再赋值后再加3*/

Printf(“%d”,a);

}

(11)以下叙述中正确的是( C )。

A)C 程序的基本组成单位是语句 B)C 程序中的每一行只能写一条语句

二级C 语言程序设计试卷)

C)简单C 语句必须以分号结束 D)C 语句必须在一行内写完

(11)以下叙述中正确的是( C )

A)C程序中的注释只能出现在程序的开始位置和语句的后面

B)C程序书写格式严格,要求一行内只能写一个语句

C)C程序书写格式自由,一个语句可以写在多行上

D)用C语言编写的程序只能放在一个程序文件中

第二课:C语言的基础知识

2.2标识符,常量和变量

2.2.1 标识符:

定义:由字母,数字和下划线组成,并且第一个字符必须为字母或下划线的。这样的组成就是标识符。

下列合法的是:

else what #$123 34a a34 a_b a-b If

a=3 A=4

注意:在C中大写字母与小字字母被认为是两个不同的字符。

分类:

关键字:在C中已经定义好了的,不能用作它用的。如if double int 等等。

预定义标识符:如printf scanf

用户标识符:用户根据自己的需求来定义的。

(12)以下选项中,能用作用户标识符的是( C )

A)void

B)8_8

C)_0_

D)unsigned

(11)以下选项中合法的标识符是( C )

A) 1-1 B)1—1 C)-11 D)1—

(12)以下选项中不合法的标识符是 ( C )

A)print B)FOR C)&a D)_00

2.2.2常量:

定义:是指在程序的执行的过程中,其值不会被改变的量。

分类:

整型常量:没有小数的常量

如:3 9 1234等等都是。

实型常量:有小数点的常量

如:3.9 3.0 3.

字符常量:由单个字符组成的量

如:?a? …b? …3?

字符串常量:至少由一个字符组成的量

如:“a”“abc” “ beijing”

符号常量:符号常量的值到底是多少,这是由在来定义符号常量时来决定的

?2*pi

(13)以下选项中,能用作数据常量的是 ( D )

A)o115 B) 0118 C)1.5e1.5 D) 115L

(13)以下选项中不能作为C 语言合法常量的是( A )。

A)'cd' B)0.1e+6 C)"\a" D)'\011'

(13)以下选项中不属于字符常量的是 ( B )

A)'C' B)"C" C)'\xCC0' D)'\072'

2.3整型常量与实型常量

整型常量的几个表示方法

十进制数:

八进制数:以0开头的数字,由0-7组成。

下列合法的八进制数是

A,0 B,028 C,-077 D,01.0

十六进制数:以0X开头,由0-9和A-F组成。

A,oxff B,0xabc C,0x11 D,0x19

实型常量123.4

小数形式:123.4

指数形式:1.234e2

1. 字母e和E之前必须要有数字

2.字母e和E之后的数字必须是整数

3.字母e?和数字之间不能有空格。

A,2.607E-1 0.8103E 2 -77.77 456E-2 0.1e+6 1.23E1.2

2.2.4变量:

1.定义:在程序的运行过程中其值可以被改变的量,就叫变量。

2.原则:变量必须先定义后使用。变量定义的过程就是给变量开辟存储单元的过程。

3.分类:

整型变量:用关键字int来表示.

short int 短整型

long int 长整型在内存中占4个字节如123L

unsigned 无符号如有-200U这就是错的。

变量的定义:int a 这是定义了一个整型变量a.

实型变量:用关键字double 或float来表示。

float 单精度在内存中占4个字节

double 双精度在内存中占8个字节。

2.2.5 算术表达式

一、基本的算术运算符

+ - * / % 这些是双目运算符(就是指操作对象有两个)

注意:

除%外,其它的运算符的运算对象可以是整型也可以是实型。%的操作对象只能是整型。

如10%3=1 10.7%3 10%4.5 x%3=0

+ - 也可以做为单目运算。-5.4 +4.9

说明:

1.如果双目运算符两边运算数的类型一致,则所得结果的类型与运算数的类型一致。如 1.0/

2.0=0.5 1/2=0

2.如果双目运算符两边运算数的类型不一致,则系统会自动进行类型转换,使两边的类型一致后,再进行运算。

1.0/2=0.5

3.所有的单精度数据,在运算过程中都以双精度进行运算。

二、优先级

()+ - * / % + -

由高——————低

如(5+1)/2=???

2.5.3 强制类型转换表达式

格式:(类型名)(表达式)

例:(int)3.234=3

(double)10%3=?

(14)表达式:4-(9)%2的值是( B )

A)0

B)3

C)4

D)5

(14)设变量已正确定义并赋值,以下正确的表达式是( C )

A)x=y*5=x+z

B)int(15.8%5)

C)x=y+z+5,++y

D)x=25%5.0

2.6赋值表达式

格式:变量名=表达式

注:1.不可以颠倒(左边必须是变量名,右边必须是C语言中合法的表达式)

2.功能就是先求出右边表达式的值,然后把此值赋值给赋值号左边的变量。确切的说是把数据存入以该变量为标识的存储单元中去。a=4 , a=7

3.结合性的优先级仅高于逗号表达式。顺序是自右向左的。如a=2+7/3

4."="是一个赋值号,不是一个等号。

5.x=y。变量的值也是可以传递和赋值的。它的意思就是将变量Y中的值赋值到X 中去。同样N=N+1也成立

6.赋值运算符的左侧只能是变量,不能是常量或表达式a+b=c这就是违法的

7。赋值号的右边也可以是一个赋值表达式。如a=b=7+1;

补充;表达式与语句的区别,

表达式后面加一个分号就是语句。

2.6.2复合赋值表达式

例:

a+=3------a=a+3 同理可得a*=3 /= -=

a+=a-=a+a a 的初值是9

a+=a-=18

a+=(a=a-18)

a+=(a=-9)

a+=a

-18

(15)若有定义语句:int x=10;,则表达式x-=x+x的值为( B )

A)-20

B)-10

C)0

D)10

(14)设有定义:int x=2;,以下表达式中,值不为6的是( D )

A)x*=x+1 x=x*(x+1)

B)x++,2*x

C)x*=(1+x)

D)2*x,x+=2

(17)若变量均已正确定义并赋值,以下合法的C语言赋值语句是(A)

A)x=y==5;

B)x=n%2.5;

C)x+n=I

D)x=5=4+1;

2.7 ++ 和——的讲解

++:自身加1

--:自身减1

i=3 i++_______I=i+1 i=4

单目

3++

++I I++

当++在前,先自身加1,然后再干别人让干的事情。

当++在后,先别人让干的事情然后再干自身加1。

int i=3;

int a;

a=i++; a=3

a=++I;a=4

第三课:输入和输出语句

3.2输出语句的讲解

一、printf函数的一般调用形式

格式:printf(格式控制,输出项1,输出项2,.......);

在printf函数的最后面写上;号就是输出语句。

1,给输出项白提供输出格式说明

格式说明符:

作用:就是使数据按格式说明符的要求进行输出。

组成:由%号和紧跟在其后的格式描述符组成。

int--------%d

float或double---%f或e%

char--------%c

2.提供原样输出的文字或字符

在“”中除了格式说明符之外的内容要全部原样输出。

各个输出项之间要用逗号隔开。

输出项可以是任意合法的常量,变量或表达式。

printf中常用的格式说明

在格式说明符中,每一个格式说明符都必须以%号开头由相应的类型标识字母结束。但在他们之间可以有其它的一个内容:

%c :输出一个字符

%d:输出一个十进制的数据

%o:以八进制格式输出。

%X:以十六进制输出

%U:无符号十进制输出

%f:以带小数点的数字输出

%e:以指数形式输出

%s:输出一个字符串。

%%:输出一个%号

%4d:输出的数据长度是4个长度,当原来的长度大于4个时会自动突破。小于4个时会填充空格。

%x.yf: x代表数制的宽度(包括小数点)。Y代表小数点后面的小数位数。

注意事项:

1.输出比较自由一些,输出有的各个数之到底是什么,取决于格式说明符之间的内容。

2.格式说明符要与输出项一一对应。

3.输出语句中还可以有\n \r \t \a

4.尽量不要在输出语句中改变输出变量的值。

5.输出的数据中如果存在变量,一定要定义过的。

习题讲解

(13)阅读以下程序

#include

main()

{ int case; float printF;

printf(“请输入2个数:”);

scanf(“%d %f”,&case,&pjrintF);

printf(“%d %f\n”,case,printF);

}

该程序编译时产生错误,其出错原因是(A)

A)定义语句出错,case是关键字,不能用作用户自定义标识符

B)定义语句出错,printF不能用作用户自定义标识符

C)定义语句无错,scanf不能作为输入函数使用

D)定义语句无错,printf不能输出case的值

(16)有以下程序

#include

main()

{ int a=1,b=0;

printf(“%d,”,b=a+b);

printf(“%d\n”,a=2*b);

}

程序运行后的输出结果是(D)

A)0,0

B)1,0

C)3,2

D)1,2

(15)程序段:int x=12;

double y=3.141593; printf(“%d%8.6f”,x,y);的输出结果是(A )

A)123.141593

B)12

3.141593

C)12,3.141593

D)12 3.141593

#include

main()

{

double a=123.456;

printf("%6.2f",a);

}

输入语句

格式:scanf(格式控制,输入项1,输入项2,...);

例如:想通过键盘输入3个数分别给变量a,b,c。并且他们分别为整型,浮点型,双精度型。

输入语句为scanf("%d%f%lf",&k,&a,&y);

说明:

1.格式说明符与输出语句一样。

2.在格式串中,必须含有与输入项一一对应的格式转换说明符。

3.在VC6.0的环境下,要收输入的DOUBLE型数据的格式说明符一定要用%lf,否则数据不能正确的输入

4.由于输入是一个字符流,所以当输入的数据少于输入项时,程序会等待用户输入,直到满足要求。当输入的数据多于输入项时,多余的数据会自动作废。

例题:

int x;

x=11/3;

int y=5;

printf("%%d,%%%d\n",x,y); 结果是:%d,%3

[3.5] 若变量已正确说明为int类型,要给a、b、c输入数据,以下正确的输入语句是( D )

A)read(a,b,c); B)scanf(“ %d%d%d” ,a,b,c);

C)scanf(“ %D%D%D” ,&a,%b,%c); D)scanf(“ %d%d%d”,&a,&b,&c);

[3.6] 若变量已正确说明为float类型,要通过以下赋值语句给a赋予10、b赋予22、c 赋予33,以下不正确的输入形式是( A )

A)10 B)10.0,22.0,33.0 C)10.0 D)10 22

22 22.0 33.0 33

33

scanf(“ %f %f %f” ,&a,&b,&c);

复合语句:多个语句被{}括起来,当成一条语句来执行。

空语句:最后的表示只有一个;

程序举例:

1。编写一个程序,从键盘上输入两个数字,让后让他们互换一下。

#include

main()

{

int a,b;

printf("请输入两个数字:");

scanf("%2d%3d",&a,&b);

printf("qian:%d%d",a,b);

int c;

c=a,a=b,b=c;

printf("后:%d%d",a,b);

}

2。编写程序,对一个double型数据进行四舍五入运算。要求保留两位有效小树。

123.4567

123'4567*100=12345.67

12345.67+0.5=12346.17

(int)(12346.17)=12346

12346/100=123.46

3。编写程序,使从键盘中输入的三位数倒着输出。

选择题

[3.1] 若a、b、c、d、都是int类型变量且初值为0,以下选项中不正确的赋值语句是( C )

A)a=b=c=d=100;B)d++; C)c+b;D)d=(c=22)-(b++);

[3.2] 以下选项中不是C语句的是( C )

A){int i;i++;printf(“%d\n”,i);} B);

C)a=5,c=10 D){ ; }

[3.3] 以下合法的C语言赋值语句是( D )

A)a=b=58 B)k=int(a+b); C)a=58,b=58 D)--i;

[3.4] 以下程序的输出结果是( C )

A)0 B)1 C)3 D)不确定的值

main( )

{ int x=10, y=3;

printf(“%d\n”,y=x/y); }

[3.5] 若变量已正确说明为int类型,要给a、b、c输入数据,以下正确的输入语句是( D )

A)read(a,b,c); B)scanf(“ %d%d%d” ,a,b,c);

C)scanf(“ %D%D%D” ,&a,%b,%c); D)scanf(“ %d%d%d”,&a,&b,&c);

[3.6] 若变量已正确说明为float类型,要通过以下赋值语句给a赋予10、b赋予22、c赋予33,以下不正确的输入形式是(B )

A)10 B)10.0,22.0,33.0 C)10.0 D)10 22

22 22.0 33.0 33

33

scanf(“ %f %f %f” ,&a,&b,&c);

[3.7] 若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句组是( C )

A)a=a+b,b=a-b,a=a-b; B)t=a,a=b,b=t;

C)a=t;t=b;b=a; D)t=b;b=a;a=t;

[3.8] 若变量已正确定义,以下程序段的输出结果是( D )

A) 输出格式说明与输出项不区配,输出无定值B)5.17

C)5.168 D)5.169

X=5.16894;

Printf(“ %f\n”,(int)(x*1000+0.5)/(float)1000);

[3.9] 若有以下程序段,c3中的值是( A )

A)0 B)1/2 C)0.5 D)1

int c1=1,c2=2,c3;

c3=c1/c2;

[3.10] 若有以下程序段,其输出结果是( B )

A)3,0,-10 B)0,0,5 C)-10,3,-10 D)3,0,3

int a=0,b=0,c=0;

c=(a-=a-5),(a=b,b+3);

printf(“ %d,%d,%d\n”,a,b,c);

填空题

[3.21] 若有以下定义,请写出以下程序段中输出语句执行后的输出结果。

(1)-200,2500(2)i=-200,j=500 (3)i=-200 回车j=2500

int i=-200,j=2500;

printf(“ (1) %d %d”,i,j);

printf(“ (2) i=%d,j=%d\n” ,i,j);

printf(“ (3) i=%d\n j=%d\n”,i,j);

[3.22] 变量i、j、k已定义为int类型并有初值0,用以下语句进行输入时

scanf(“ %d”,&I); scanf(“ %d”,&j); scanf(“ %d” ,&k);

当执行第一个输入语句,从键盘输入:

12.3 表示Enter键

则变量i、j、k的值分别是____12____、____0___、__0____。

[3.23] 复合语句在语法上被认为是一条语名。空语句的形式是;

[3.24] C语句的最后用;结束。

[3.25] 以下程序段,要求通过scanf语句给变量赋值,然后输出变量的值。写出运行时给k 输入100,给a输入25.81,给x输入1.89234 时的三种可能的输入形式_____、_____、_____。

int k; float a; double x;

scanf(“ %d%f%lf”,&k,&a,&x);

pirntf(“ k=%d,a=%f,x=%f\n”,k,a,x);

编程题和改错题

[3.29] 以下程序多处有错。要按下面指定的形式输入数据和输出数据时,请对该程序做相应的修改。

main

{double a,b,c,s,v;

printf(input a,b,c:\n);

scanf(“%d%d%d”,a,b,c);

s=a*b; /*计算长方形面积*/

v=a*b*c; /*计算长方体体积*/

printf(“%d %d %d”,a,b,c);

printf(“s=%f\n”,s,”v=%d\n”,v);

}

当程序执行时,屏幕的显示和要求输入形式如下:

input a,b,c:2.0 2.0 3.0 此处的2.0 2.0 3.0是用户输入的数据

a=2.000000,b=2.000000,c=3.000000 此处是要求的输出形式

s=4.000000,v=12.000000

[3.30] 编写程序,把560分钟换算成用小时和分钟表示,然后进行输出。

[3.31] 编写程序,输入两个整数:1500和350,求出它们的商数和余数并进行输出。[3.32] 编写程序,读入三个双精度数,求它们的平均值并保留此平均值小数后一位数,对小数点后第二位数进行四舍五入,最后输出结果。

[3.33] 编写程序,读入三个整数给a、b、c,然后交换它们中的数,把a中原来的值给b,把b中原来的值给c,把c中原来的值给a。

第四课:C语言的程序结构

4-1节、关系运算与逻辑运算

一、简介

关系表达式与逻辑表达式的运算结果都会得到一个逻辑值。就是“真”、“假”

在C语言中0表示“假”,非0(无论是负数还是正数都是真,更多时候用1来代替)表示“真”。

二、几个简单的关系运算符

< <= > >= == !=

注意:

1,由两个字符组成的运算符,中间不能有空格

2,它们都是双目运算符,具有自左至右的结合性。

3,上面的6个运算符中,前4个的优先级要比后2个的优先级要高。先计算,后判断,最后进行赋值运算。

三、几个简单的逻辑运算符

&& 与一假则假

|| 或一真则真

!非非假则真,非真则假

1&&2=1

0&&6=0

int a=4 ,b=7;

a&&7=1

int x=0,y=7;

x++&&y++ ?x= 1 y= 7

++x&&y++ ?x=1 y=8

同样放在||中也是一样的。

4-2、4-3节、if语句

一、定义:

只有两种结果。要么执行这条语句,要么执行那条语句。

if(条件表达式)

上述条件成立执行的句子

else

上述条件不成立执行的句子

如:

if(成绩>60)

显示及格

else

显示不及格

二、分类

1.不含有else的语句

if(表达式) 语句

if(a

{

t=a;

a=b;

b=t;

}

2.含有else语句

if(条件)

语句1;

else

语句2;

语句3;

注:

1.没有分号

2.控制的是与if或者else紧临的“一条”语句。

if(a

printf("%d",b);

else

printf("%d",a);

if(a%3==0)

yes

else

no

4-4节、结合一个例题来给大家分析if的嵌套

输入一个学生的成绩,评定他的等级。每十分一个等级

if()

elseif()

elseif()

`

else

if(a>=90) printf("a");

elseif(a>=80) printf("b");

elseif(a>=70) printf("c");

elseif(a>=60) printf("d");

else printf("e");

4-5、节

7)设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是(C )A)if(a>b) c=a,a=b,b=c;

B)if(a>b) {c=a,a=b,b=c;}

C)if(a>b) c=a;a=b;b=c;

D)if(a>b) {c=a;a=b;b=c;}

(18)有以下程序应该选( B )

#include

main()

{int x;

scanf(“%d”,&x);

if(x<=3 ; else

if(x!=10)

printf(“%d\n”,x);

}

程序运行时,输入的值在哪个范围才会有输出结果

A)不等于10的整数

B)大于3且不等于10的整数

C)大于3或等于10的整数

D)小于3的整数

(19)有以下程序(C)

#include

Main()

{

int a=1,b=2,c=3,d=0;

if(a= =1 &&b++= =2)

if(b!=2 || c--!=3)

printf(“%d,%d,%d\n”,a,b,c);

else printf(“%d,%d,%d\n”,a,b,c);

else printf(“%d,%d,%d\n”,a,b,c);

}

程序运行后的输出结果是

A)1,2,3

B)1,3,2

C)1,3,3

D)3,2,1

4-6节、条件表达式

是C语言中唯一的一个三目运算。

格式:表达式1?表达式2:表达式3

当1成立(非零时)时,表达式的值就是2的值,否则就是3的值。如:

1.1<2?4:5

2.printf("%d",x<0?(-1)*++x:x++); (假定X的值为-3)

3.++X>3?(x<3?a:b):b

4-7节、switch语句(一)

switch(表达式)

{

case 常量表达式1:语句1

case 常量表达式2:语句2

case 常量表达式3:语句3

case 常量表达式4:语句4

case 常量表达式5:语句5

。。。

case 常量表达式N:语句N

}

4-8节、switch语句(二)

switch(A/10)

{

case 10:printf("A");

case 9:printf("A");

case 8;printf("b");

case 7;printf("c");

case 6;printf("d");

default :printf("e");

}

4-9节-------4-15节、选择题

[4.1] 下列运算符中优先级最高的运算符是(A )

A)!B)% C)-= D)&&

[4.2] 下列运算符中优先级最低的运算符是(A )

A)|| B)!= C) <= D)+

[4.3] 为表示关系x>=y>=z, 应使用的C语言表达式是(A )

A) (x>=y)&&(y>=z) B) (x>=y)AND (y>=z)

C) (x>=y>=z) D) (x>=y)&(y>=z)

[4.4] 设a、b 和c 都是int 型变量,且a =3,b=4,c=5;则以下的表达式中,值为0的表达式是(D )

A) a&&b B)a<=b C)a||b+c&&b-c D)!((a

[4.5] 以下程序的输出结果是:(C )

A) 0 B)1 C)2 D)3

main()

{ int a=2,b=-1,c=2;

if (a

if (b<0)

c=0;

else c+=1;

printf(“%d\n”,c);

}

[4.6] 以下程序的输出结果是:(A )

A) 1 B) 2 C) 3 D) 4

main()

{ int w=4,x=3,y=2,z=1;

printf(“%d\n”,(w

}

[4.7] 若执行以下程序时从键盘上输入3和4,则输出结果是(B )

A)14 B)16 C)18 D)20

main()

{ int a, b,s;

scanf(“%d%d”,&a,&b);

s=a;

if (a

s*=s;

printf(“%d\n”,s);

}

[4.9] 运行以下程序后,输出(D )

A)#### B)&&&&

C)####&&&& D)有语法错误不能通过编译

main()

{ int k=-3;

if (k<=0) printf(“****\n”);

else printf(“&&&&\n”);

}

相关文档