bokee.net

其他职业博客

正文 更多文章

1.1 变量和表达式(一)——第二课

1.1.1          课前练习

都说C 语言很难学,但是只要你稍微有点数学基础和逻辑知识,你会发现C其实也不难

1、 写出下列式子的计算结果

2、 一件商品单价20块钱,那么100块钱可以买几件?130块钱呢?还剩多少钱?

 

1.1.2          算术表达式

计算机程序语言的设计目的就是为了解决实际问题,下面我们就开始从简单的问题开始解决吧。

我们最熟悉的是数学问题,最简单的数学问题就是整数的四则运算,也就是加、减、乘、除四种运算。下面就我们如何让程序替我们计算一个数学表达式的值。

课堂实验1:编译expression1.c查看其运行结果

下面介绍各数学运算的具体规则

+ - *和普通的加减乘法意义一致,他们都叫二元运算符。这里的二元是指参与运算的操作数有两个。

取反- 是一个一元运算符,用于将表达式编号

课堂实验2:修改expression1.c, 输出下面式子的运算结果,并和手工计算的结果比较一下

-(1+2)*(4-5)

除法/和取模% 分别求商和余数。比如对10/3=3 ,10%3 =1

但是如果除数是负数,先把除数变号求商,然后再将商变号。10 / (-3) = -3,10% (-3 )= -1

课堂实验3:修改expression.c, 输出下面式子的运算结果,并和手工计算的结果比较一下

 -(1+2)*(4-5)/(6-3)%(7-9)

1.1.3          变量

我们可以将表达式的结果存到变量中。

变量的声明形式: 变量类型 变量名

实例 1

int x;   /*声明一个变量x, 值不定, 注意结尾处的分号!*/

实例 2

int  x =1; /*声明一个变量x, 值为1 */

1.1.4          赋值

(1)x = 3;  /*用简单的数字表达式赋值/

(2)x = 3+2;  /*用算术表达式赋值*/

(3)  int x =3; 
        x = x*2;  /*
x自己加倍*/

1.1.5          复合赋值

相当于计算和赋值的“缩写”

x += y; 相当于x = x+y;     

x -= y; 相当于x = x-y;

x *= y; 相当于x = x*y;

x += y; 相当于x = x+y;

x /= y; 相当于x = x/y;

(注明:反过来也是一样的,比如y+=x;相当于y=y+x; 举例:若x=1;y=2;y+=++x; 则相当于y=y+(++x);x=2 ;y=4 ;  y-=++x; 那么x=2;y=0;

y+= x; 相当于y=y+x;

y-= x; 相当于 y=y-x;

y*= x; 相当于y=y*x;

y/= x; 相当于y=y/x

 

1.1.6          自增和自减

++x 相当于x +=1;(也相当于x=x+1  老师补充的)

--x  相当于 x -=1;

x++x--则先返回旧值,再更新x

课堂练习1:请说出每组语句执行后xy的值

(1)int x=1 ; int y = ++x;    x=2;y=2;

(2)int x=1 ; y = --x;       x=0;y=0;

(3)int x=1 ;  y = x++; (也相当于y=x, ++x 老师补充的)x=2;y=1;

(4)int x=1 ; y = x--;    x=0;y=1;

课堂练习2: 用程序验证上面的4个表达式计算结果

1.1.7          变量的起名规则(不完整,完整的见下一节具体介绍)

(1)以字母或者下划线开头

(2)只能包含字母、数字或者下划线

(3)变量名字的长度受具体编译器的限制

(4)本课程要求变量名全部用英文单词或者字母,

 

1.1.8          小结

printf函数里的%d是用于输出整数的格式字符,\n是回车和换行。大家要熟悉它们的用法。(printf是哪两个单词的缩写?     Print format格式化输出或带格式输出

%d中的d是什么单词的缩写?   decimal 十进制)

 

(1)本课介绍了六种表达式,他们的返回类型都是整型:

 (a)算术表达式 (b)逻辑表达式 (c)关系表达式 (d)赋值表达式
(e)
自增和自减运算 (f)算术赋值表达式

   自己要能举出每种表达式的实际例子

(2)%运算就是将两个数均变为正数,然后求余,再决定余数的符号。关于余数理论的深入讨论,见数论课程。

(3)本节中介绍的取反-、自增++、自减都是单目运算符,其他的都是双目运算符(二元运算符)

(4)变量和常量的起名一定要直观,便于对代码的阅读维护,这是“与人方便,于己方便”。

(5)本节的表达式语句和声明语句都必须以;结尾。

 

自己补充:

y=++x;(x自身加1然后再去运算y)

y=x++;(先返回旧值,再执行自身的++x;比如,如果x=1的话,那么y=x++=1,x=++x=2)

 

商:如果除数是负数,先把除数变号求商,然后再将商变号。

余数的正负号用这个公式 余数=被除数-除数* 去套就不会错了。

一种更简单的方法:还是都变正,符号由被除数决定

公式:a=(a/b)*b+ a%b

a%b  = a -(a/b)*b

 

不管是整型int 还是变量 都要printf后面的值前后一致,否则错误。

 

赋值公式要记熟!以后复合运算要用到。

 

分享到:

上一篇:1.1 概述——第一课

下一篇:熊猫提供的1