第3章表达式与运算符测试
Java编程基础及应用第3章运算符、表达式和语句
(1)左移位运算符
左移位运算符的符号为“<<”,是二元运算符。左移位运算符左
面的操作元称为被移位数,右面的操作数称为移位量。
例如:a<<n运算的结果是通过将a的所有位都左移n位,每左移一 个位,左边的高阶位上的0或1被移除丢弃,并用0填充右面的低位 。
3.1.5 移位运算符
(2)右移位运算符
3.1.7 条件运算符
条件运算符是一个多元运算符,它的符号是“? : ”,需要连接三
个操作数,用法如下:a?b:c,要求a的值必须为boolean型数据 。运算法则是:当a的值为true时,a?b:c运算的结果是b的值;
当a的值是false时,a?b:c运算的结果是c的值。
例如: 8>2?10:20的结果是10;
// DevideTest2.java public class DevideTest2 { public static void main(String[] args) { int a = 13, b = 4, k; float f1, f2; k = a / b;//整数相除,结果仍为整数 f1 = a / b;//将整数结果强制转换为浮点型 f2 = (float) a / b;//将a强制转换为浮点 型,结果则为浮点型
(4)“按位异或”运算符
“^”是双目运算符。对两个整型数据a、b按位进行异或运算,运 算结果是一个整型数据c。运算法则是:如果a、b两个数据对应位
相同,则c的该位是0,否则是1。
例如:1001001和0101001进行“异或”运算,表达如下, 1001001 ^0101001 1100000
按照运算类型,可以将运算符分成以下几类:算术运算符,关系
C语言第3章数据类型、运算符与表达式ppt课件
数据类型、运算符与表达式
1
主要内容
一、C的数据类型 二、常量与变量 三、基本数据类型 四、运算符与表达式
2
一、C的数据类型
(一) 什么是数据类型? (二) C语言的数据类型有哪些?
3
(一) 什么是数据类型?
对数据的描述
对操作的描述
数据结构+算法=程序
C语言中以 “数据类型”形式存在
4
所谓数据类型是按被定义变量的性质,表示形 式,占据存储空间的多少,构造特点来划分的。
int NUM=20; sum=PRICE*NUM;
11
符号常量优点
1、含义清楚。 2、在需要改变一个常量时,能够做到“一
改全改”
12
(二)变量
概念
变量代表内存中具有特定属性的一 个存储单元,它用来存放数据,也 就是变量的值。
13
(1)变量名。每个变量都有一个名字 ──变量名,代表一个地址。 (2)变量值。在程序运行过程中,变 量值存储在内存中。在程序中,通过 变量名来引用变量的值。
#include <stdio.h>
void main() {
int student,age; int if=adrress=1; float score=90;
stadent=2; Age=20; printf("%d %d %d %f",if,student,age,score); }
本程序中有 几处错误?
(5)标识符的有效长度随系统而异,如果超 长,则超长部分被舍弃。VC++6.0中规 定最大长度为247个字符。
23
请选出下列正确的标识符 M.D.John , 12%gf ,1add ,_ce36 ,age& 5thclass, lotus-1-2-3 , cd*ef , float,
第3章 运算符和表达式
double long
unsigned
float
低
int
char,short
横向箭头表示必须的转换 ,纵向箭头表示当运 算符两侧的运算对象为不同类型时的转换, 这些转换都是由系统自动进行的 。
北京邮电大学出版社
3.4 不同数据类型数据间的混合运算
二.强制类型转换 强制类型转换是通过类型转换运算来实现的。 其一般形式为: (类型说明符)(表达式) (类型说明符)是类型转换运算符,单目运算, 优先级别为2级,具右结合性。在类型转换 运算符的右侧跟上表达式形成类型转换表达 式,其功能是把表达式的运算结果强制转换 成类型说明符所表示的类型。
北京邮电大学出版社
3.2 算术运算符
二.算术表达式
算术表达式是用算术运算符和括号将运算对象连接起来 的、符合C语言的语法规则的式子。 使用算术表达式时应注意: (1) 当双目算术运算符两侧运算对象的类型一致时,运算 结果的类型与运算对象的类型相同,如果类型不一 致,系统将自动按规律先将运算对象转换为同一类 型,然后再进行运算。 (2) 可以用括号改变表达式的运算顺序,左右括号必须配 对,多层括号都用小括号“()”表示。 (3) 注意算术表达式的书写形式,不要写成代数式的形式。
北京邮电大学出版社
3.4 不同数据类型数据间的混合运算
三.强制类型转换 赋值表达式的类型转换 当赋值运算符两侧的运算对象数据类型不同时, 系统也将进行自动类型转换,转换规则为: 将赋值运算符右侧表达式的类型转换为左侧变量 的类型。
北京邮电大学出版社
3.4 不同数据类型数据间的混合运算
1.浮点型与整型相互转换 将浮点数据(包括单、双精度)转换为整型时,将舍弃浮点数的小 数部分,只保留整数部分。 2.单、双精度浮点型相互转换 由于C语言中的浮点值总是用双精度表示的,所以float型数据只是 在尾部加0延长为double型数据参加运算,然后直接赋值。 double型数据转换为float型时,先截取双精度实数的前7位有效数 字,然后再赋给单精度类型的变量。 3.字符型与整型相互转换 将整型数据赋给字符型变量时,由于整型数据用两个字节存放,而 字符型数据用一个字节存放,所以只保留其低8位赋给字符型 变量,高位部分舍弃。 字符型数据赋给整型变量时,将字符数据的8位放入整型变量的低8 位中,有些编译系统在整型变量的高8位补0;而有些编译系 统(如Turbo C),根据字符的最高位为0或1将高8位全部补 0或补1。
第三章VB运算符和表达式
(1) 关键字 首字母自动改为大写, 其余字母改为小写 (2) 自定义的变量名、过程名 系统以第一次定义的为准
规则2. 语句书写自由
语句是构成VB程序的最基本成分,程序 是按行书写的。
(1)一行写多个语句时,语句间用冒号(:) 分隔。 例:n=100:m=1000
(三)变量声明
使用变量前,一般必须先声明变量名及其 数据类型(变量的两个特性),然后才能在程序 中使用
1.用Dim语句声明变量 语句格式:
Dim 变量名 [As 类型] [,变量名 [As 类型]] …
• 说明:Dim语句定义的变量其作用范围由 Dim语 句所在的位置决定。 Dim 语句出现在窗体代码 的声明部分时,则窗体以及窗体中各控件的事 件过程都可以使用这些变量。这种变量称为窗 体级变量; 在过程内部用 Dim 语句声明的
举例
(2)一个语句可写在几行上 (3)一行允许最多达255个字符
用续行符(空格加下划线“ _”)连接。
规则3. 代码中必要时添加注释
说明: (在VB程序中呈绿色)
1. 注释有利于程序的可读性。
2. 注释部分在程序运行时不执行
3. 续行符后不能加注释
4. 三种设置方式如下 1)以Rem开头 2)单引号“ ‘ ”引导注释见 3)使用注释块
它是内存单元位置的命名,一旦定 义了某个变量,该变量就表示某个内存 单元的位置,用户可以使用变量名访问 该内存单元中的数据。 举例如下
举例1说明:
对于新建的学生宿舍,要给其进行编号,学 生宿舍的编号是对一个宿舍的命名,宿舍号就 是用来描述宿舍位置的。可以通过宿舍号找到 宿舍内住的学生。若调换宿舍,则成员变化 宿舍 宿舍号 内存空间 变量
c语言程序设计第三章运算符与表达式
第三章运算符和表达式3.1 运算符和表达式概述使用运算符可以对运算对象(包括常量和变量)进行计算以得到计算结果。
用运算符将运算对象连接成一个符合C语言语法规则的式称为表达式。
另外,C语言中的表达式是可以嵌套的,即简单表达式经过运算符连接后还可以形成更为复杂的表达式。
根据运算符所连接的运算对象(操作数)的个数,可以将C语言中的运算符分为三类:(1) 单目(一元)运算符:只连接一个操作数的运算符。
(2) 双目(二元)运算符:带有两个操作数的运算符。
(3) 三目(三元)运算符:同时对三个操作数进行计算的运算符。
C语言中的表达式可以分为三类:(1) 单个常量或者单个变量是最简单的表达式。
(2) 带有运算符的表达式。
(3) 函数调用。
任何一种运算都是将一定的运算符作用于一定的运算对象上,得到预期的运算结果。
所以运算对象、运算符和运算结果是运算的三大要素。
3.2 算术运算符和算术表达式一、基本算术运算符和简单算术表达式1. 基本算术运算符C语言为用户提供的基本算术运算符包括:+(加)、-(减)、*(乘),/(除)、%(求余),这些运算符都是双目运算符,也即在生成算术表达式的时,基本算术运算符左右两侧都必须出现运算对象。
2. 简单算术表达式当用基本算术运算符去连接常量或者变量时,就形成简单算术表达式。
简单算术表达式的基本形式:data1 op data2。
data1和data2表示某个常量或者变量,op代表上述5个基本算术运算符之一。
假设有变量定义:int a=20,b=-5;则a+b、a-b、a*-2、20/-b、20%6、a%b等都是简单算术表达式。
3. 基本算术运算符使用说明(1) +、-、*,/既可以连接整型数据,也可以连接实型数据。
当参与这4个运算符的运算对象都是整型数据时,得到整型数据运算结果;否则表示浮点运算。
例如,int a=15,b=2;则a*b等于30,而a/b等于7;a*2.0等于30.0,而a/2.0等于7.5。
第三章数据类型、运算符与表达式
设x的值为4,则表达式y=(++x)+(++x)+(++x)后,y的值是(D)。
A.12B.18C.16D.21下列数据中,为字符的是(D)。
A.‘AB’B."A"C.HowD.‘A'以下符号中,合法的用户标识符是(D)。
A. -pB. intC. 3abD. _xt_以下实型常量中,符合C语言语法的是(A)。
A. .5E-3B. 1.2E0.5C. E15D. 3.14.159E若有说明和语句:int a=5,b=6;b*=a+1;则b的值为(D)A. 5B. 6C. 31D. 36设C 语言中,int 类型数据占4个字节,则short 类型数据占(C)。
A.1个字节B.2个字节C.4个字节D.8个字节若x=3.5,a=2,y=2.5,b=3则表达式(float)(a+b)/2+(int)x%(int)y的值是()。
A.1.5B.2.5C.3.5D.2以下选项中不属于C语言的类型的是(D)。
A.signed short intB.unsigned long intC.unsigned intD.long short关于C语言数据类型的叙述,正确的是(C)。
A. 整型不是基本类型B. 数组不是构造类型C. 变量必须先定义后使用D. 不允许使用空类型若a=12,则表达式a-=a的值为(A)。
A. 0B.12C.1D. 24若x=3.5,a=2,y=2.5,b=3则表达式(int)(a+b)/2+(int)x%(int)y的值是(D)。
A. 1.5B. 2.5C. 3D. 3.5若a是数值类型,则逻辑表达式(a==1)&&(a!=1)的值是(C)。
A.1B. 2C. 0D. 不知道a的值,不能确定若char x=97,则变量x对应(A)字符。
A. ‘a’B. ‘A’C. ‘9’D. ‘7’设C语言中,int类型数据占2个字节,则float类型数据占(C)字节。
第3章 表达式与运算符
– 对象属性存取运算符 ,用符号“.”表示。其作用是读取对象 的属性、或保存值到对象的属性、或调用对象的方法。 – 数组存取运算符 ,JavaScript提供“[]”运算符用于存取数组 元素,方括号中是要存取的元素的下标。这个运算符大大方 便了数组的编程 。 – delete运算符,它可以删除对象的一个属性或数组的一个元 素,JavaScript对象的属性可以动态添加。对于动态添加的 属性可以用delete运算符将其删除 。 – this运算符 ,“this”严格的说是一个关键字,也可以理解为 运算符。面向对象的编程中要引用当前对象,this运算符可以 返回当前对象的引用。this通常用在对象构造函数中,用来引 用函数对象本身。
计算机2级C语言题库第三章 数据类型、运算符与表达式
第三章数据类型、运算符与表达式一单项选择题1.下面四个选项中,均不是c语言关键字的选项是()。
A) define IF Type B) getc char printfC) include scanf case D) while go pow3.下列四个选项中,均是C语言关键字的选项是()。
A) auto enum include B) switch typedef continueC) signed union scanf D) if struct type4.下面四个选项中,均是不合法的用户标识符的选项是()。
A) A P_0 do B) float la0 _AC) b-a goto int D) _123 temp int5.以下有4组用户标识符,其中合法的一组是()。
A) For -sub Case B) 4d DO SizeC) f2_G3 IF abc D) WORD void define7.下面四个选项中,均是合法整型常量的选项是()。
A) 160 -0xffff 011 B) -0xcdf 01a 0xeC) –01986 012 0668 D) -0x48a 2e5 0xe8.下面四个选项中,均是正确的八进制数或十六进制数的选项是()。
A) -10 0x8f -011 B) 0abc -017 0xcC) 010 -0x11 0xf1 D) 0a12 -0x123 -0xa9.设C语言中,一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为()。
A) 0~255 B) 0~32767 C) 0~65535 D) 0~2147483647 10.在C语言中,不正确的int类型的常数是()。
A)32768 B)0 C)037 D)0xAF13.下面四个选项中,均是合法的浮点数的选项是()。
A) +1e+1 5e-9.4 03e2 B) -.60 12e-4 -8e5C) 123e 1.2e-.4 +2e-1 D) -e3 .8e-4 5.e-015.以下选项中合法的字符常量是()。
c语言程序设计第三章答案
c语言程序设计第三章答案第三章:运算符与表达式一、算术运算符在C语言中,算术运算符用于在表达式中执行各种数学运算。
常见的算术运算符有加法运算符(+)、减法运算符(-)、乘法运算符(*)和除法运算符(/)等。
1. 加法运算符(+)加法运算符用于将两个操作数相加,并返回它们的和。
例如,表达式a + b将返回a和b的和。
2. 减法运算符(-)减法运算符用于从第一个操作数中减去第二个操作数,并返回它们的差。
例如,表达式a - b将返回a和b的差。
3. 乘法运算符(*)乘法运算符用于将两个操作数相乘,并返回它们的积。
例如,表达式a * b将返回a和b的积。
4. 除法运算符(/)除法运算符用于将第一个操作数除以第二个操作数,并返回它们的商。
例如,表达式a / b将返回a除以b的商。
二、关系运算符关系运算符用于比较两个操作数并返回一个布尔值(真或假)。
常见的关系运算符有大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)和不等于(!=)等。
1. 大于运算符(>)大于运算符用于检查第一个操作数是否大于第二个操作数。
如果是,则返回真(1),否则返回假(0)。
例如,表达式a > b将返回真或假。
2. 小于运算符(<)小于运算符用于检查第一个操作数是否小于第二个操作数。
如果是,则返回真(1),否则返回假(0)。
例如,表达式a < b将返回真或假。
3. 大于等于运算符(>=)大于等于运算符用于检查第一个操作数是否大于或等于第二个操作数。
如果是,则返回真(1),否则返回假(0)。
例如,表达式a >= b 将返回真或假。
4. 小于等于运算符(<=)小于等于运算符用于检查第一个操作数是否小于或等于第二个操作数。
如果是,则返回真(1),否则返回假(0)。
例如,表达式a <= b 将返回真或假。
5. 等于运算符(==)等于运算符用于检查两个操作数是否相等。
第三章 数据类型、运算符及表达式§31 字符及标识符
2关系运算符
比较两个操作数的大小的运算符,称为关系运算符。 关系运算的表达式,称为关系表达式。 例如, 3+5 > 7-4 关系表达式也有它的值。 如: 8 > 3, 该关系成立,因此关系表达式的值为真, 反之, 其值为假。 在C语言中,用数值1表示真,用数0表示假。 如,7 == 2,关系表达式为假,其值为0。 关系运算符的种类和表达式如下:
•
*C 语言提供的长整数的表示方法可以用来扩大整数的取值 范围. – 例如, 41l, 037l, 0x1fL 字母后面的l 或 L ,表示该数是长常数., 上面三个数,分别是十进制、八进制、十六进制长整数。 一个在整数中放不下的普通整数也被作为长整数,
因此, 把其后紧跟有 l 或 L 的整数叫显式长整数. • 在16位字长的机器上,长整数的位数是 32 位 ( 增长一倍 )。 故长十进制整数取值范围为 -2147483648 到 2147483647。 (2)整型变量: • 基本整型 int 如: int x; • 长整型 long 如: long int y; 或 long y ; • 无符号 unsugend 如: unsigend int z; 或 unsigend z。
• 关键字
具有固定意义的标识符,用户不能用作为自己的标识符, 它们共有32个,除符号常量外都用小写字母表示,就其用途 分五类。 (1) 数据类型 int char float double short ... (2) 存储类型 extern static register auto typedef (3) 控制语句 if else for while do .... (4) 运算符 sizeof (5) 符号常量 EOF BOF .... *它们的含义后面将会络续提到。 * 用户定义的标识符,不能和关键字同名。
第3章 Python选择与循环详述
3.2.2 双分支结构
if 表达式: 语句块1
else: 语句块2
>>> chTest = ['1', '2', '3', '4', '5'] >>> if chTest:
print(chTest) else:
print('Empty') ['1', '2', '3', '4', '5']
3.2.4 选择结构的嵌套
if 表达式1: 语句块1 if 表达式2: 语句块2 else: 语句块3
else: if 表达式4: 语句块4
注意:缩进必须要正确并且一致。
3.2.4 选择结的嵌套
>>> def func(score): degree = 'DCBAAE' if score > 100 or score < 0: return 'wrong score.must between 0 and 100.' else: index = (score - 60)//10 if index >= 0: return degree[index] else: return degree[-1]
File "<pyshell#26>", line 1, in <module> x = math.sqrt(9) if 2>3 else random.randint(1,100)
NameError: name 'random' is not defined >>> import random >>> x = math.sqrt(9) if 2>3 else random.randint(1, 100)
二级access第三章运算符和表达式
2、文本函数
字符串左侧第一个字符的位置为1
3、日期/时间函数
4、类型转换函数
1、asc(<字符串表达式>)
功能:返回字符表达式首字符的ASCII码值 例:asc(“abc”)=97 说明:0---9对应ASCII码48---57; A---Z对应ASCII码65---90; a---z 对应ASCII码97---122
字段为空
“优” in (“优”,”良”,”中”,”差”) 结果:True [姓名+ like “张*”
[简历] is null [简历] is not null
Between 100 and 200 (含边界值)
Is not null 字段非空 Between-指定范围 and
说明: 1、结果为 true(真) 或 false(假); 2、优先级同比较(关系)运算符; 运算符间的优先级(高低): 括号优先级最高 算术运算符连接运算符比较(关系)运算符 和特殊运算符逻辑运算符
3、利用drop语句删除表
1、格式: DROP TABLE <表名> 2、功能: 删除指定的表 3、说明: 该命令删除的是整张表,表一旦被删除, 基于其上的所有操作和数据都将被删除。
4、利用insert语句向表添加记录
1、格式: INSERT INTO <表名> [(<字段名1>[,<字段名2>[,…]])] VALUES(<表达式1>[,<表达式2>[,…]]) 2、功能: 向表中添加新记录 3、说明: 如果INTO后缺省字段名,则必须为新记录中的每个字段都赋 值,且插入数据的类型和顺序要与表中定义的字段一一对应。 4、示例: 向STUDENT表中插入2个学生记录。
C语言教程第3章 数据类型、运算符与表达式
注意以下几点:
(4) 一个整常量后面加一个字母u,认为 是unsigned int型,如12345u,在内存 中按unsigned int规定的方式存放(存储 单元中最高位不作为符号位,而用来存 储数据,见图2.4(b)。如果写成-12345u, 则先将-12345转换成其补码53191,然 后按无符号数存储。
int a; unsigned int b;
一个整数(以13为例)在存储单元中 的存储情况
3. 整型变量的定义
int a,b; (指定变量a、b为整型) unsigned short c,d; (指定变量c、d为无符号短整型) long e,f; (指定变量e、f为长整型)
例3.2整型变量的定义与使用。
字符型变量用来存放字符常量,请注 意只能放一个字符,不要以为在一个字符 变量中可以放一个字符串(包括若干字符)。 字符变量的定义形式如下: char c1,c2;
c1='a';c2='b';
3.5.3 字符数据在内存中的存储 形式及其使用方法
字符的相应的ASCII代码放到存储单元中
例3.6向字符变量赋予整数。
单精度 ( float 型 占4B) 双精度 ( double 型 占8B )
北大青鸟C语言教程--第三章 运算符
ACCP V4.0
复合赋值运算符
运算符 += -= *= /=
表达式 X += 5 X -= 5 X *= 5 X /= 5
计算 X=X+5 X=X-5 X=X*5 X=X/5
结果(假设 X=10) 15 5 50 2
%=
X %= 5
X=X%5
0
8
ACCP V4.0
示例
#include <stdio.h> void main () book_price=book_price+12.50; { float book_price = 60.75; printf("\n 书的价格 = %f",book_price); book_price += 12.50; printf("\n 书的新价格 =%f\n",book_price); }
请输入一个字符:T 您输入的字符不是小写字母
25
ACCP V4.0
#include <stdio.h> void main() { float rate1,rate2,rate3; 问题描述: double discount,total; 接受用户输入的三种商品的价格。如果购买的三种商品中 printf("\n请输入第一种商品的价格:"); scanf("%f",&rate1); 至少有一种商品的价格大于 50 或者三种商品的总额大于 printf("\n请输入第二种商品的价格:"); scanf("%f",&rate2); 100,则折扣率为15%,否则折扣率为0,计算并显示用 printf("\n请输入第三种商品的价格:"); 户应付的钱数。 scanf("%f",&rate3); total=rate1+rate2+rate3; if((rate1>50)||(rate2>50)||(rate3>50)||(total>100)) if((rate1>50)||(rate2>50)||(rate3>50)||(total>100)) { 输出: discount=0.15*total; total=total-discount; 请输入第一种商品的价格:34 printf("\n折后总价为:%6.2f\n",total); 请输入第二种商品的价格:42 } else 请输入第三种商品的价格:38 printf("\n总价为:%6.2f\n",total); 折后总价为:96.90 } 26 ACCP
C语言第3章数据类型、运算符、表达式
例如
➢字符常量‘a’占一个字节 ➢字符串常量"a" 占2个字节
‘a’ → “a” →
0110 0001 ……
0110 0001 0000 0000
(97)10
(97)10 (0)10
7.变量赋初值
变量赋初值
C语言允许定义变量时赋予初值。
➢int i = 6;
也可对某个变量赋初值:
➢int a, b, c = 6;
如: 0x16, 0x28
4.整型数据
整型变量
分类:
➢基本型 用“ int ”定义; ➢短整型 用“ short int ”或 “ short ”定义; ➢长整型 用“ long ”或 “ long int ”定义; ➢无符号型 用“ unsigned ”定义,不存放符号;
整型变量定义方式
➢基本整型:int a, b, c; ➢短整型 : short int 或 short a, b, c; ➢长整型: long int 或 long a, b, c; ➢无符号型:unsigned a, b; unsigned short a, b
10+‘a’+1.5–8765.1234 ‘b’
8.各种数值型数据间的混合运算
转换方法(自动转换)
double float
高
long
unsigned
低 int char, short
图中“ ” 表示必定转换。如'a' +' b',先转换为int,结果为 int。
既使是同一种类型也按" "转换。
对于“++”和“--”的使用要避免二义性
10.赋值运算符和赋值表达式
第3章练习 表达式和语句
编程题:1.输入一名学生的成绩,判断该成绩的等级。
如>=60的,显示“合格”,<60的显示“不合格”。
程序:#include<iostream.h> //输入输出流对象的头文件void main(){ int score; //声明成绩变量,用来保存分数cout<<”输入成绩:”; //提示用户的信息cin>>score; //从键盘上输入分数传递给scoreif( score>=60) //判断该条件是否真或假cout<<”合格”<<endl; //当score>=60是真的时候,运行该语句elsecout<<”不合格”<<endl; //当score>=60是假的时候,运行该语句}分析:(1)首先该题目要求输入一个分数,则事先声明一个整型变量score。
(2)其次从键盘上输入该分数,应有输入语句cin,并由上面定义的变量来保存分数。
(3)然后根据分数来判断等级,有两种情况应该用if语句。
(4)输出的信息是根据不同条件显示字符串,用到cout输出流对象。
(5)用到标准输入输出流对象,所以在程序前加相应头文件。
2.编写一个能输出以下信息的程序。
How are you.Fine,thank you.程序:#include<iostream.h>V oid main(){ Cout<<”How are you.”<<endl; //输出字符串并换行。
Cout<<”Fine,thank you.”<<endl;}3.编写一个求两个数78、45之差的程序。
程序:#include <iostream.h>void main(){ int sum=0;sum=78+45; //求和cout<<"78+45= "<<sum<<endl;}4.编写一个求三个数14、25、16之和的程序。
C语言教材 C语言教材 第3章
第3章运算符与表达式本章要点了解运算符及其表达式的概念,熟练掌握各种运算符的运算规则。
重点掌握各种运算符的优先级和结合性。
本章的难点在于自增自减运算符的正确运用。
第一节算术运算符与算术表达式C语言中基本的算术运算符有:(1)+:加法运算符,用于计算任意两个数的和。
如:3+2,结果为5;(2)-:减法运算符,用于计算任意两个数的差。
如:3.5-2,结果为1.500000;(3)*:乘法运算符,用于计算任意两个数的乘积。
如:4*3,结果为12;(4)/:除法运算符,用于计算任意两个数的商。
如:3.6/3,结果为1.200000;(5)%:模运算符(求余运算符),用于求余数。
如:13%4,结果为1。
这几个运算符要求运算符两边都有数据,即运算对象为两个,所以称为双目算术运算符。
关于算术运算符的几点说明:(1)用算术运算符和括号将运算对象连接起来的、符合C语言语法规则的式子称为算术表达式。
运算对象可以是变量、常量、函数等。
算术表达式中运算符的结合方向为“从左至右”;*,/,%运算的优先级高于+,-运算,可以使用圆括号改变优先级别。
如:表达式3+4*3/2-1,按照从左至右的顺序,先计算优先级别较高的*、/运算,4*3,结果为12,12/2,结果为6,6和左边的3进行加法运算,得到结果9,最后计算9-1,结果为8。
(2)对于除法运算“/”,如果运算符两边的运算对象都是整数,则运算结果也是整数。
如:5/2的结果为2,而不是2.5,小数部分被舍去了。
(3)对于模运算符“%”,要求其左右两边的运算对象都为整数,结果也为整数,即只有整数才能进行求余运算;(4)“+,-”运算符有时作为正值运算符(+)和负值运算符(-),此时“+、-”变为单目运算符。
如:+3,-6。
例3.1 算术运算符和算术表达式#include<stdio.h>void main(){int a=3,b=4;printf("a+b/4%2-2.5=%f\n",a+b/4%2-2.5); /* 从左至右,按照优先级别运算*/printf("4*a/b=%d,a/b*4=%d\n",4*a/b,a/b*4); /* 两个表达式结果不同,不满足数学中的交换律*/printf("9/4=%d,-9/4=%d",9/4,-9/4); /* 两个整数做除法运算,所得结果也是整数*/ }程序运行结果:a+b/4%2-2.5=1.5000004*a/b=3,a/b*4=09/4=2,-9/4=--2第二节关系运算符与关系表达式关系运算符相当于数学中的比较运算符,用于将两个值进行比较,判断比较的结果是否符合给定的条件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言第3章《运算符与表达式》测试题一、选择题(每题2分,共50分)1、表达式“2,4,6,8”的值为()A.2B.4C.6D.82、以下程序的输出结果是()main(){int a=12,b=0x12;printf(“%d%d\n”,--a,++b);}A.12 12B.12 18C.11 10D.11 193、设x和y都是int型变量,则执行表达式“x=(y=4,z=16),k=32”后,x的值为()A.4B.16C.32 D、524、设x为int型变量,执行语句“x=’A’;x*=2+2;”后,的值为()A.65B.260C.132D.语句错误5、若有语句“int a=5;a++*2;”则表达式“a++*2”的值为()A.7B.12C.5D.106、设x和y为int型变量,表达式“x+=y;y=x-y;x-=y;”的功能是()A.把x和y按从小到大排列B.把x和y按从大到小排列C.无确定结果D.交换x和y的值7、下面程序的输出结果是()main(){int x=’\23’;printf(“%d\n”--x);}A.19B.18C.23D.248、若变量f已定义为float型, i为int 型,则下面()表达式(或语句)能够实现将f的数值保留小数点后两位,第3位进行四舍五入的运算。
A.f=(f*100+0.5)/100.0B.i=f*100+0.5,f=i/100.0;C.f=(int)(f*100+0.5)/100D.f=(f/100+0.5)*100.09、下面表达式正确的是()A. a+b=5B.56=a11C.5.6+6.2%3.1D.a=5,b=6,c=710、若t为double型变量,执行逗号表达式“t=(x=0,x+5),t++;”的输出结果是()A.1B.6.0C.2.0D.1.011、下列赋值语句不正确的是()A.++tB.n1=(n2=(n3=0))C.k=m=j;D.a=b+c=112、如果下面的变量都是int型,则下面程序段的输出结果是()sum=pad=5;pad=sum++,pad++,++pad;printf(“%d\n”,pad);A.7B.6C.5D.413、以下程序的输出结果是()#include<stdio.h>main(){int i=23,j=12;i++;--j;printf(“%d,%d\n”,i,j);}A.23,12B.24,11C.23,11D.24,1214.下列程序执行后的输出结果(小数点后只写一位)是_______。
main(){double d; float f; long 1; int 1;i=f=l=d=20/3;printf(“%d %d%f%f\n”,I,1,f,d);}A.6 6 6.0 6.0B.6 6 6.7 6.7C.6 6 6.0 6.7D.6 6 6.7 6.015.下面表达式正确的为_________ 。
A.a+b=5B.56=a11C.i=i++D.5.6+6.2%3.116.下列表达式正确的是_______。
A.(k++)++B.k---jC.k--/=5D.(k+3)=517.若a,b,c,d都是int型变量且初值均为10,赋值语句不正确的是_______。
A.a=b=c=d;B.a=b++;C.(a+b)++;D.d=(a=b=125)-c++;18.设x和y 均为int型变量,则执行语句”x=15;y=5;printf(“%d\n”,x%=(y%=2));”后的输出结果为_____。
A.0B.1C.6D.1219.若有定义”int a;”则表达式语句”a+=a-=a*a;”等价于下列哪组表达式语句_______。
A.a+a;a*a;B.a=a+a;a=a-a*a;C.a=a+a-a*a;D.a=a-a*a;a=a+a20.设程序中x,y,z 均已赋值为大于1的整数,能正确表示1/xyz的表达式是______。
A.1/x*Y*ZB.1/(x*y*z)C.1.0/x/y/zD.1/x/y(double z)21.设有定义”char chl=‟A‟;”表达式“chl+5”的值是______。
A. …A‟B.‟F‟C.‟e‟D. 不确定22.设有定义”int a=6,b=13;”,则以下表达式中结果为3的是_______.A.(b%=a)-(a%=5)B.b%=(a%=5)C.b%=(a-a%5)D.b%=b-a%523.关于单目运算符++和—叙述正确的是___________.A.它们的运算对象可以是任何变量和常量B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量D.它们的运算对象可以是char型变量、int型变量和float型变量24、若有以下程序段:int m=oxabc,n=oxabc;m-=n;printf(“%x\n”,m);执行结果是________。
A.0X0B.0x0C.0D.0XABC25. 以下运算符中优先级别最低的是___________.A.++ B. , C.?: D./二.填空题(每空1分,共21分)(1)若有定义”int i,j,k;”则表达式”i=10,j=20,k=30,k*=i+j”的值为________.(2)当a=6,x=6.8,b=4时,表达式”x+a%7*(int)x+8/3+b”的值为________.(3)表达式”12345==12345/3*3的值为_________.(4)表达式3*4%5的值为_________,(float)((12+7)/4)的值为__________.(5)若有定义”int i=3,j=4;”则执行完”i*=j+8;”后i的值为_______.(6)数学表达式|x|+|b|的C语句形式为_________________,|a+b|的C语句形式为___________________.(7) 若有定义”int i=10,j=2;”则表达式”j*=i++*2”的值为________.(10)把变量a1,a2定义为单精度实型变量,并赋初值1的语句是______________________.(11)空语句的形式是____________.(12)若要交换变量a和b的值(用变量c做中间变量),所用的语句为__________;___________和____________;(14)若有定义”int x=12,y=13;”则表达式x++的值为______,表达式-(++y) 的值为______。
(15)执行”int x=4,y;y=x--+3;”语句后,变量x的值是_____,y的值是______。
(16)C语言规定了运算符的优先级和结合性,其结合性分为_____ 和______(17)若有语句”int i=-19,j=i%4;printf(“%d\n”,j)则输出的结果是_____三、写出下面程序的运行结果(每题3分,共18分)1、main(){int i=8,j=7;printf(“%d\n”,++i);printf(“%d\n”,- -i);printf(“%d\n”,(i++)+(j++));printf(“%d\n”,(i--)+(j--));}2、main(){int a=2,b=4,c=6,x,y;y=((x=a+b),(b+c));printf(“y=%d,x=%d”,y,x);}结果是。
3.#include<math.h>main( ){double a=-3.0,b=2;printf(“%3.0f%3.0f\n,pow(b,fabs(a)),pow(fabs(a),b));}结果是。
4.main( ){int x=6,y;printf(“x=%d\n”,x,);y=++x;printf(“x=%d,y=%d\n”,x,y);y=x--;printf(“x=%d,y=%d\n”,x,y);结果为_____________________.5、main(){int m=6;float f=0;printf(“%d %d\n”,sizeof(m),sizeof(f));printf(“%d %d\n”,sizeof(short),sizeof(double));}结果为______________________________。
6、main ( ){int a,b,x;printf(“%d\n”,(a=3*5,a*4));printf(“%d\n”,((a=3*5,a+4),a+5));x=b=a=3,6*a;printf(“x=%d\tb=%d\n”,a,b);x=b=a=3,6*a;printf(“x=%d\tb=%d\n”,a,b);}结果为___________________________。
7、main( ){int n=7;n+=n=n*=n/3;printf(“a=%d,b=%d\n”,a,b);}结果为___________________________。
四.把下列的数学表达式写成相应的C语言算术表达式.(每题1分,共6分)1.2∏r2.2absin3003.3x4+4y n-14.25[x2+(x+y)*a]3五、编写程序(共4分)已知a=5,b=3,c=8,利用条件表达式求a,b,c三个数中的最大数。