bokee.net

其他职业博客

正文 更多文章

1.1 表达式和类型(三)——第四课

1.1.1          课前复习

"温故而知新",首先复习一下前一课的主要内容

前几课的主要内容是

(1)六个数学运算符 + - * / %,

/要点:两个操作数都是正整数时, /计算自然数除法的商, 有一个操作数为负时,先变正计算商,再将商变号.

%要点: 两个操作数都是正整数时, %计算自然数除法的余数, 有一个操作数为负时,先变正计算余数,然后使余数的正负号和被除数一致.

(2)赋值语句 包括 简单赋值= 和复合赋值 += -= *= /= %=

(3)自增运算++ ,和自减运算--,前缀和后缀两种情况, 不论前缀或者后缀,操作数.都被+1或者减1,区别只在于表达式的整体返回值是操作数的新值还是旧值。

 课前练习1

请用C语言的表达式回答下面问题

(4)变量的声明和定义

(5)函数的声明和定义

      应该会在代码中写简单的函数,自行根据实际情况设计函数的返回类型和形参列表。

(6)函数返回类型的作用。

(7)形参和实参的概念和联系

  形参是函数声明时的参数列表,实参是函数调用时的参数列表。形参和实参必须类型一致,数量相等

课前练习二:

   下面关于函数的说法,那些是正确的?13

  形参和实参的数量必须完全一样

形参和实参的名字必须完全一样

形参和实参的类型必须一致

(8)一元运算符、二元运算符、操作符、操作数的概念。    

       这里的一和二指的参与运算的对象的个数。参与运算的对象叫做操作数。

(9)printf函数的%d格式字符的用法。

(10)变量、函数、形参的起名规则均与标识符(Identifier)的语法规则一致。

        只能以字母或者下划线开头

可以包含字母、数字和下划线。其他的字符则不允许出现在变量名中。

标识符的长度受编译器的限制,具体要看编译器的手册。对于tc,前32个字符是有效的。超过这个长度则结果不确定。对于vc6,是255

(11)语句必须以 ; 结束,且代码中不得中文等非法字符。

      课前练习三  编译 RectArea_error.c.c文件,改正其中的编译错误。

   

1.1.2          整数输入

scanf函数,其格式为

scanf("%d", &变量名);

scanf("%d", &x); 

注意变量名前要加&.原因以后再讲

课堂练习一: 编译并运行SimpleInput.c程序,查看其运行结果。

课堂练习二: 修改刚才的RectArea_erroe.c文件,去掉为长和宽赋值的两条语句,改成它从键盘接受用户输入的长和宽。并编译和运行之。

 

1.1.3          常数和其他基本类型

(1)整数常数 ,类型为int

       十进制整数 , 1 ,-2 ,0.这是最常用的整数

八进制整数,以0开头,后跟数字0-8,如010(对应十进制的8)、021(对应十进制的17

十六进制整数 ,以0x 或者 0X开头,后跟数字0-9及字符a-f,A-F。如0xff(对应十进制的255) ,0x15(对应十进制的21)

八进制数字、十六进制数字和十进制之间的转换下一课讲,这里先记住他们的形式。

(2)浮点型实数,有两种形式

一般的实数表达法,0.1-2.3 .3 -.4。(注意如果整数部分为0时可以省略,但小数点不可省,否则类型就变成整数了。

科学记数法,语法形式为 底数部分 E 指数部分,其中底数部分的写法和上面的一样,指数部分必须为十进制整数。指数部分的含义是10的几方,整个式子的意思就是

底数*10指数

2E3 = 2*103 = 2000

-0.254E4 = -0.254 * 10000 = -2540

-0.523E-1 = -0.0523

(3)字符常数,在一对单引号之内的单个字母或者转义字符(转义字符下一课讲)。

       ’c’’a’’0’

       要注意单个数字和它的对应字符不一样的。 字符’0’和整数0是不相等的。字符’0’对应的整数实际上它的ascii码编号:30

(4)字符串常数

     在一对双引号内的一组字符。如“hello world!”、"test"等。

注意,"c"是字符串, ’c’是字符。

课堂练习三,说出下面各常数分别属于哪种常数

       10 -20 -010 0x25

’a’ ’b’   "x" -0.5 4E3 -0.5E-3

课堂练习四 ,计算下列各式的值

       2E-2 -0.24E3 0.5E-3 -0.236E4

 

1.1.4          基本类型的变量

除了int 外,基本类型名还有floatchar以及double(双精度),这里先把doublechar的用法显示一下,float下一课讲。

int x = 10;  /*定义一个整型变量x,值为十进制的10*/

int y = 010;  /*定义一个整型变量y,值为八进制的10,即十进制的8*/

char c = ’c’;   /*定义一个字符型变量x,值为字符’c’*/

double f = 0.5E2  /*定义一个浮点型变量x,值为50*/

字符串对应的类型以后说明

1.1.5          各基本类型对应的输出和输入格式字符

%d 输出十进制数字

%x输出十六进制数字

%c 输出单个字符

%f输出浮点数

%e 以科学记数法的形式输出浮点数

%o 八进制整数

课堂练习5 %f参数输出课堂练习4中各表达式的值。

课堂练习6 编译CircleArea.c程序体会浮点数的用法。

1.1.6          关系运算符(比较运算符)

关系运算符用于比较两个数的大小关系。关系表达式成立时返回一个不为0的数(通常为1),不成立时返回0

C一共有六个比较运算符

a==b         ab相等时返回1,不等时返回0

a !=b         ab不等时返回1,相等时返回0

a>b          a大于b时返回1 否则返回0

a<b          a小于b时返回1 否则返回0

a >=b        a大于或者等于b时返回1 否则返回0

a <=b        a小于或者等于b时返回1 否则返回0

课堂练习7

x=2, y=-1 计算下面表达式的值(设真为1,假为0

x == y;  x != y  x > y x< y  x<=y x >= y

0        1         1       0       0        1

 

课堂练习8

x=2, y=-1 计算下面表达式的值(设真为1,假为0

(x-y) > (x+y)  (x*y) > (x/y)  (x%y) == 0  (++y) ==0

1             0                 1           1

x-- >= 2   y++ >= 0

1            0

1.1.7          if语句

关系表达式经常用在if 语句,作为语句执行前的判断条件。

if语句的基本形式为

if (判断条件)

   语句块;

当判断条件成立时执行下面的语句或者语句块(语句块是包含在一对大括号中的一组语句)。

课堂练习9 编译relation1.c文件,体会if语句的基本用法,并用不同的数作为输入,

课堂练习10 编译relation2.crerelation3.c文件,观察在同一个输入数据时他们的不同运行结果(特别是对第32行语句的影响)

1.1.8          小结

(1)掌握三种基本类型变量的输入和输出 int char float

(2)掌握四种文字常量

(3)关系运算符

(4)if语句的基本用法

(5)if后面的语句和语句块应注意缩进,增强代码的可阅读性。

(6)语句块的概念。

 

 

补充:

1、 整数是定点数;实数是浮点数(这里的点指的是小数点)。

2、 %d 用来输入和输出数字;(decimal十进制)

%f 用来输入和输出浮点数;(double 浮动)

%c 用来输入和输出字符。(char 字符)

3、关系运算符又叫比较运算符,比较两个实数(含整数)的关系。    ==比较两个数是否相等。   真值一定为1么?不一定,真值是不为0的数,通常为1

4TC中如果表达式成立则返回1,在其它编译器则返回一个不为0的整数。      0==0为真返10==1为假返0;!=判断不等。

5、关系表达式本身也是一个整形表达式,所以可以用%d来输出。

6if语句里的判断条件两边必须加括号,否则错误。

7、当if里的条件成立时,随后的一条语句被执行;如果想当条件成立时执行多条语句,需要把语句用{ }括起来——语块就是包含在大括号里的一组语句。    

8、float没有单独的格式字符
             double的输出和输入格式字符就是%f

分享到:

上一篇:I know I can不盲目跟从众

下一篇:关于爱情