二级C语言-运算符与表达式

合集下载

C语言运算符优先级详细列表与说明

C语言运算符优先级详细列表与说明

所有的优先级中,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。

其它的都是从左至右结合。

具有最高优先级的其实并不算是真正的运算符,它们算是一类特殊的操作。

()是与函数相关,[]与数组相关,而->及.是取结构成员。

其次是单目运算符,所有的单目运算符具有相同的优先级,因此在我认为的真正的运算符中它们具有最高的优先级,又由于它们都是从右至左结合的,因此*p++与*(p++)等效是毫无疑问的。

接下来是算术运算符,*、/、%的优先级当然比+、-高了。

移位运算符紧随其后。

其次的关系运算符中,< <= > >=要比== !=高一个级别,不大好理解。

所有的逻辑操作符都具有不同的优先级(单目运算符出外,!和~)逻辑位操作符的"与"比"或"高,而"异或"则在它们之间。

跟在其后的&&比||高。

接下来的是条件运算符,赋值运算符及逗号运算符。

在C语言中,只有4个运算符规定了运算方向,它们是&&、| |、条件运算符及赋值运算符。

&&、| |都是先计算左边表达式的值,当左边表达式的值能确定整个表达式的值时,就不再计算右边表达式的值。

如 a = 0 && b; &&运算符的左边位0,则右边表达式b 就不再判断。

在条件运算符中。

如a?b:c;先判断a的值,再根据a的值对b或c之中的一个进行求值。

赋值表达式则规定先对右边的表达式求值,因此使 a = b = c = 6;成为可能。

C语言运算符优先级顺口溜[转]醋坛酸味灌味落跳福豆共44个运算符醋-初等,4个: ( ) [ ] -> 指向结构体成员 . 结构体成员坛-单目,9个: ! ~ ++ -- -负号 (类型) *指针 &取地址 sizeof长度(结合方向:自右向左)酸-算术,5个: * / % + -减味-位移,2个: << >>灌-关系,6个: < <= > >= == 等于 != 不等于味-位逻,3个:& 按位与 ^ 按位异或 | 按位或落-逻辑,2个: && 逻辑与 || 逻辑或跳-条件,1个,三目: ? :(结合方向:自右向左)福-赋值,11个: = += -= *= /= %= >>= <<= &= ^=|= (结合方向:自右向左)豆-逗号,1个: ,结合方向自右向左的只有三类:赋值、单目和三目,其它的都是从左至右结合。

c语言的数据类型、运算符和表达式

c语言的数据类型、运算符和表达式

数据类型、运算符和表达式一、C 语言的基本数据类型数据是程序处理的对象。

C 中将数据分为不同的数据类型,任何数据都属于某一种特定的数据类型。

数据类型的作用有两个:一是指明为数据分配多大的存储空间和规定了数据的存储结构,进而规定了数据的取值范围;二是规定了数据所能进行的操作。

C 的数据类型分为基本数据类型和构造类型。

基本数据类型是系统定义的,用户可以直接使用。

构造类型由用户自行定义。

C 的数据类型如图所示。

C 标准没有规定各类数据所占用内存位数。

所以不同c 编译系统的各类数据所占用内存位数是不一样的。

上机使用时,应注意使用的c 编译系统的具体规定。

Turbo C 基本类型 所占位数 数的范围 [signed] char 8 -128~127 unsigned char 8 0~255 [signed]int 16 -32768~32767 short [int] 16 -32768~32767long [int] 32 -2147483648~2147483647 unsigned [int] 16 0~65535 unsigned short [int] 16 0~65535 unsigned long [int]320~4294967295C++数据类型基本类型字符型(char) 空类型(void)整型短整型(short int) 无符号整型(unsigned int)长整型(long int)基本整型(int) 实型(浮点型) 双精度型(double)单精度型(float) 指针构造类型枚举(enum) 联合(union)结构体(struct)数组float 32 约6位有效数字double 64 约12位有效数字在Visual C++中:char:1 Byteint:4 Byteshort:2 Bytelong:4 Bytefloat:4 Bytedouble:8 Byte二、常量常量:整型常量、实型常量、字符常量、字符串常量、符号常量1.整型常量C语言程序中可以使用十进制、八进制和十六进制来表示整型常量。

计算机二级C语言基础知识

计算机二级C语言基础知识

计算机⼆级C语⾔基础知识C语⾔程序的结构认识⽤⼀个简单的c程序例⼦,介绍c语⾔的基本构成、格式、以及良好的书写风格,使⼩伙伴对c语⾔有个初步认识。

例1:计算两个整数之和的c程序:#include main() {int a,b,sum; /*定义变量a,b,sum为整型变量*/a=20; /*把整数20赋值给整型变量a*/b=15; /*把整数15赋值给整型变量b*/sum=a+b; /*把两个数之和赋值给整型变量sum*/printf(“a=%d,b=%d,sum=%d\n”,a,b,sum); /*把计算结果输出到显⽰屏上*/ }重点说明:1、任何⼀个c语⾔程序都必须包括以下格式:main() { }这是c语⾔的基本结构,任何⼀个程序都必须包含这个结构。

括号内可以不写任何内容,那么该程序将不执⾏任何结果。

2、main()----在c语⾔中称之为“主函数”,⼀个c程序有且仅有⼀个main函数,任何⼀个c 程序总是从main函数开始执⾏,main 函数后⾯的⼀对圆括号不能省略。

3、被⼤括号{ }括起来的内容称为main函数的函数体,这部分内容就是计算机要执⾏的内容。

4、在{ }⾥⾯每⼀句话后⾯都有⼀个分号(;),在c语⾔中,我们把以⼀个分号结尾的⼀句话叫做⼀个c语⾔的语句,分号是语句结束的标志。

5、printf(“a=%d,b=%d,sum=%d\n”,a,b,sum); ----通过执⾏这条c语⾔系统提供给我们直接使⽤的屏幕输出函数,⽤户即可看到运⾏结果,本程序运⾏后,将在显⽰器上显⽰如下结果:a=20,b=15,sum=356、#include注意:(1)以#号开头(2)不以分号结尾这⼀⾏没有分号,所以不是语句,在c语⾔中称之为命令⾏,或者叫做“预编译处理命令”。

7、程序中以/*开头并且以*/结尾的部分表⽰程序的注释部分,注释可以添加在程序的任何位置,为了提⾼程序的可读性⽽添加,但计算机在执⾏主函数内容时完全忽略注释部分,换⽽⾔之就是计算机当做注释部分不存在于主函数中。

C语言第3章数据类型、运算符与表达式ppt课件

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,

02_C语言运算符优先级详细列表

02_C语言运算符优先级详细列表

第 1 页 共 2 页 C语言运算符优先级 优先级 运算符 名称或含义 使用形式 结合方向 说明

1 [] 数组下标 数组名[常量表达式] 左到右 -- () 圆括号 (表达式)/函数名(形参表) -- . 成员选择(对象) 对象.成员名 -- -> 成员选择(指针) 对象指针->成员名 --

2 - 负号运算符 -表达式 右到左 单目运算符 ~ 按位取反运算符 ~表达式 ++ 自增运算符 ++变量名/变量名++ -- 自减运算符 --变量名/变量名-- * 取值运算符 *指针变量 & 取地址运算符 &变量名 ! 逻辑非运算符 !表达式 (类型) 强制类型转换 (数据类型)表达式 --

sizeof 长度运算符 sizeof(表达式) --

3 / 除 表达式/表达式 左到右 双目运算符 * 乘 表达式*表达式 % 余数(取模) 整型表达式%整型表达式

4 + 加 表达式+表达式 左到右 双目运算符 - 减 表达式-表达式

5 << 左移 变量<左到右 双目运算符 >> 右移 变量>>表达式

6 > 大于 表达式>表达式 左到右 双目运算符 >= 大于等于 表达式>=表达式 < 小于 表达式<= 小于等于 表达式<=表达式

7 == 等于 表达式==表达式 左到右 双目运算符 != 不等于 表达式!= 表达式

8 & 按位与 表达式&表达式 左到右 双目运算符 第 2 页 共 2 页

9 ^ 按位异或 表达式^表达式 左到右 双目运算符 10 | 按位或 表达式|表达式 左到右 双目运算符 11 && 逻辑与 表达式&&表达式 左到右 双目运算符 12 || 逻辑或 表达式||表达式 左到右 双目运算符

13 ?: 条件运算符 表达式1? 表达式2: 表达式3 右到左 三目运算符

14 = 赋值运算符 变量=表达式 右到左 -- /= 除后赋值 变量/=表达式 -- *= 乘后赋值 变量*=表达式 -- %= 取模后赋值 变量%=表达式 -- += 加后赋值 变量+=表达式 -- -= 减后赋值 变量-=表达式 -- <<= 左移后赋值 变量<<=表达式 -- >>= 右移后赋值 变量>>=表达式 -- &= 按位与后赋值 变量&=表达式 -- ^= 按位异或后赋值 变量^=表达式 -- |= 按位或后赋值 变量|=表达式 --

c语言表达式优先级

c语言表达式优先级

c语言表达式优先级
c语言中运算顺序十分重要,经常记也经常忘,为了好找,copy了一份。

C语言的运算符包括单目运算符、双目运算符、三目运算符,优先级如下:
第1优先级:各种括号,如()、[]等、成员运算符 . ;
第2优先级:所有单目运算符,如++、–、!、~等;
第3优先级:乘法运算符*、除法运算符/、求余运算符%;
第4优先级:加法运算符+、减法运算符-;
第5优先级:移位运算符<<、>>;
第6优先级:大于运算符>、大于等于运算符>=、小于运算符<、小于等于运算符<=;
第7优先级:等于运算符==、不等于运算符!=;
第8优先级:按位与运算符&;
第9优先级:按位异或运算符^;
第10优先级:按位或运算符|;
第11优先级:逻辑与运算符&&;
第12优先级:逻辑或运算符||;
第13优先级:三目条件运算符?: ;
第14优先级:各种赋值运算符,如=、+=、-=、*=、/= 等;第15优先级:逗号运算, 。

第3章 C语言的运算符

第3章 C语言的运算符
① 前缀形式:++i、--i,它的功能是在使用i之前, i 值先加 (减)1(即先执行i+1或i-1,然后再使用i值)。 ② 后缀形式:i++、i--,它的功能是在使用i 之后, i 值再加 (减)1(即先使用i值,然后再执行i+1或i-1)。
普通高等教育“十一五 ” 国家级规划教材
3.2. 算术运算符与算术表达式
3、C语言的运算符和表达式
3.1.2 运算符的优先级和结合性
例如:
普通高等教育“十一五 ” 国家级规划教材
3*5/3 :表达式中出现了二个运算符即*和/。按 照优先级的次序,5的两侧“*”和“/”优先级相同, 则按结合性处理。“*”和“/”运算符的结合性为从 左到右,则先乘后除,表达式的值为5。
d=a+b-c :表达式中出现了三个运算符即=(赋 值)、+、-。按照优先级的次序,加和减的运算优先 级相同,而赋值运算符优先级较低。根据加和减的结 合性是从左到右,因此先计算加,再计算减,最后进 行赋值。
3 C语言的运算符和表达式
普通高等教育“十一五 ” 国家级规划教材
3.1.1运算符的优先级和结合性
注意所有的单目运算符、赋值运算符
和条件运算符都是从右向左结合的,要 予以特别关注,其余均为从左向右结合 的,与习惯一致。
普通高等教育“十一五 ” 国家级规划教材
学习 C语言的运算符,不仅要掌握各种 运算符的功能,以及它们各自可连接的运算 对象个数,而且还要了解各种运算符彼此之
普通高等教育“十一五 ” 国家级规划教材
第3章 运算符与表达式
作为一种程序设计语言,C 语言规定了一套严密的字符 集和语法规则,程序设计就是根据这些基本字符和语法规则

C语言第02章 数据类型、运算符与表达式

C语言第02章 数据类型、运算符与表达式

回到 首页
运算符和结合性 P325,附录3
2.8 算术运算符和算术表达式
3、自增、自减运算符
自增运算符++和自减运算符--均是单目运算符, 功能是使变量的值增1或减1。其优先级高于所有 双目运算符,结合性为右结合性(自右至左)。
回到 首页
例如:++i或i++ 等价于i=i+1; --i或i-- 等价于i=i-1;
2.7数值型数据之间的混合运算
回到 首页
1、整型、实型、字符型数据之间可以混合运 算
整型(包括int,short,long)和实型(包括float,double)数据可 以混合运算,另外字符型数据和整型数据可以通用,因此,整 型、实型、字符型数据之间可以混合运算。 例如,表达式10+'a'+1.5-8765.1234*'b'是合法的。
2.9赋值运算符和赋值表达式
1、赋值运算符和赋值表达式
赋值运算符:“=”为双目运算符,右结合性。 赋值表达式:由赋值运算符组成的表达式称为赋值表达 式。 赋值表达式一般形式: 变量 赋值符 表达式 如 a=5 类型转换:将高精度的数据类型赋值给低精度的数据类 型,可能出错。
回到 首页
2.9赋值运算符和赋值表达式
2.8 算术运算符和算术表达式
3、自增、自减运算符
回到 首页
y=++x;等价于先计算x=x+1(结果x=6),再执行y=x,结果y=6。 y=x++;等价于先执行y=x,再计算x=x+1,结果y=5,x=6。 y=x++*x++;结果y=25,x=7。x++为后缀形式,先取x的值进行“*” 运算,再进行两次x++。 y=++x*++x;结果y=49,x=7。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

二级C语言-运算符与表达式 (总分:60.00,做题时间:90分钟) 一、{{B}}选择题{{/B}}(总题数:38,分数:38.00) 1.设变量已正确定义并赋值,以下合法的C语言赋值语句是______。

 A.x=y==5

 B.x=n%2.5

 C.x+n=i

 D.x=5=4+1

(分数:1.00) A. √ B. C. D. 解析:[解析] 赋值运算符左侧的操作数必须是一个变量,而不能是表达式或者常量,选项C和D错误。“%”运算符两侧都应当是整型数据,选项B错误。 2.在x值处于-2~2、4~8时值为“真”,否则为“假”的表达式是______。

 A.(2>x>-2)||(4>x>8)

 B.!(((x<-2)||(x>2))&&((x<=4)||(x>8)))

 C.(x<2)&&(x>=-2)&&(x>4)&&(x<8)

 D.(x>-2)&&(x>4)||(x<8)&&(x<2)

(分数:1.00) A. B. √ C. D. 解析:[解析] 本题是考查关系运算和逻辑运算的混合运算。要给出此题的正确答案,首先需要了解数学上的区间在C语言中的表示方法,如x在[a, b]区间,其含义是x既大于等于a又小于等于b,相应的C语言表达式是x>=a&&x<=b。本例中给出了两个区间,一个数只要属于其中一个区间即可,这是“逻辑或”的关系。在选项A中,区间的描述不正确。选项B把“!”去掉,剩下的表达式描述的是原题中给定的两个区间之外的部分,加上“!”否定正好是题中的两个区间的部分,是正确的。选项C是恒假的,因为它的含义是x同时处于两个不同的区间内。选项D所表达的也不是题中的区间。 3.sizeof(double)是______。

 A.一种函数调用

 B.一个整型表达式

 C.一个双精度表达式

 D.一个不合法的表达式

(分数:1.00) A. B. √ C. D. 解析:[解析] sizeof是一个C语言关键字,有着特定的功能。在C语言中,一个函数的调用格式是:函数名(参数列表)。虽然“sizeof(double)”与函数调用有着相同的格式,但sizeof是一个C语言关键字,因此,它不是一个函数调用。sizeof在C语言中是表示求一个变量或数据类型所占用的内存字节数的运算符,所以“sizeof(double)”表示求双精度浮点型数据占用内存的字节数。显然,该表达式返回的是一个整数,而不是一个双精度数。 4.对于条件表达式(M)? (a++):(a--),其中的表达式M等价于______。

 A.M==0

 B.M==1

 C.M!=0

 D.M!=1

(分数:1.00) A. B. C. √ D. 解析:[解析] 因为条件表达式e1?e2:e3的含义是e1为真时,其值等于表达式e2的值,否则为表达式e3的值。“为真”就是“不等于假”,因此M等价于M!=0。 5.设变量已正确定义并赋值,以下正确的表达式是______。

 A.x=y*5=x+z

 B.int(15.8%5)

 C.x=y+z+5, ++y

 D.x=25%5.0

(分数:1.00) A. B. C. √ D. 解析:[解析] 求余运算符“%”两边的运算对象必须是整型数据,而选项B和D中“%”两边的运算对象有浮点整型数据,所以选项B和D是错误的表达式。在选项A中赋值表达式两边出现相同的变量x,也是错误的。选项C是一个逗号表达式,所以正确的答案为C。 6.设变量已正确定义为整型,则表达式n=i=2,i=n+1,i+n的值为______。

 A.2

 B.3

 C.4

 D.5

(分数:1.00) A. B. C. D. √ 解析:[解析] 本题考查的是C语言逗号表达式相关知识。程序在计算逗号表达式时,从左到右计算由逗号分隔的各表达式的值,整个逗号表达式的值等于其中的最后一个表达式的值。本题中,首先i和n被赋值为2,i再加上n和1为3,最后i+n等于2+3=5。本题答案为D。 7.若已定义x和y为double类型,则表达式“x=1, y=x+3/2”的值是______。

 A.1

 B.2

 C.2.0

 D.2.5

(分数:1.00) A. B. C. √ D. 解析:[解析] 本题中的表达式为逗号表达式,此表达式的结果为y=x+3/2的值。y=x+3/2的运算次序为:先进行3/2运算,两个运算数均为整型量,结果也为整型量,等于1,此结果将与double类型数进行相加,要转换为1.00...00。最后将x的值1转换成double型,与1.00...00相加。 8.设变量已正确定义并赋值,以下正确的表达式是______。

 A.x=y*5=x+z

 B.int(15.8%5)

 C.x=y+z+5, ++y

 D.x=25%5.0

(分数:1.00) A. B. C. √ D. 解析:[解析] 求余运算符“%”两边的运算对象必须是整型,而选项B、D中“%”两边的运算对象有浮点整型数据,所以选项B、D是错误的表达式。在选项A中赋值表达式的两边出现相同的变量“x”,也是错误的。选项C是一个逗号表达式,所以正确的答案为C。 9.现有定义int a;double b;float c;char k;,则表达式a/b+c-k的值的类型为______。

 A.int

 B.double

 C.float

 D.char

(分数:1.00) A. B. √ C. D. 解析:[解析] 双目运算中两边运算量类型转换规则。 运算数1 运算数2 转换结果类型

短整型 整型 字符型 有符号整型 整型 长整型 长整型 整型 无符号整型 浮点型 短整型->长整型 整型->长整型 字符型->整型 有符号整型->无符号整型 整型->浮点型

在a/b的时候,a、b的类型不一致,根据类型转换规则,要把整型转换成double类型,之后的加、减类似。转换规则char,short→int→unsigned→long→double→float。 10.设有定义:int k=0;,以下选项的4个表达式中与其他3个表达式的值不相同的是______。

 A.k++

 B.k+=1

 C.++k

 D.k+1

(分数:1.00) A. B. C. D. √ 解析:[解析] 选项A、B、C都使k的值增加1,D选项不改变k的值。本题答案为D。 11.以下关于单目运算符++、--的叙述中正确的是______。

 A.它们的运算对象可以是任何变量和常量

 B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量

 C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量

 D.它们的运算对象可以是char型变量、int型变量和float型变量

(分数:1.00) A. B. C. D. √ 解析:[解析] “++”和“--”运算符都是单目运算符,其运算对象可以是整型变量,也可以是实型变量,但不能是常量或表达式。当运算对象是字符型时,系统自动将其转换成该字符所对应的ASCII码值。 12.以下选项中,与k=n++完全等价的表达式是______。

 A.k=n, n=n+1

 B.n=n+1, k=n

 C.k=++n

 D.k+=n+1 (分数:1.00) A. √ B. C. D. 解析:[解析] 题中的表达式是先让n参与赋值运算,然后再对本身进行自加,所以选A。 13.以下非法的赋值语句是______。

 A.n=(i=2, ++i)

 B.j++

 C.++(i+1)

 D.x=j>0

(分数:1.00) A. B. C. √ D. 解析:[解析] 自加或自减运算的操作数不能是表达式。 14.以下程序的输出结果为______。 #include <stdio.h> main() { int i=4, a; a=i++; printf("a=% d, i=% d", a, i); }

 A.a=4, i=4

 B.a=5, i=4

 C.a=4, i=5

 D.a=5, i=5

(分数:1.00) A. B. C. √ D. 解析:[解析] 本题考查的是自增运算符及赋值运算符的综合使用问题。自增运算符是一元运算符,其优先级比赋值运算符高,要先计算。把表达式i++的值赋予a,由于i++的结果为当前i的值(当前i的值为4),所以i++的值为4,得到a的值为4。同时,计算了i++后,i由4变为5。 15.若变量已正确定义并赋值,以下符合C语言语法的表达式是______。

 A.a:=b+1

 B.a=b=c+2

 C.int18.5%3

 D.a=a+7=c+b

相关文档
最新文档