内容正文:
【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。
本卷是《C语言》(第五版)《一课一练》第5练,内容是2.6 算术运算符、自增自减运算符、赋值运算符。
《C语言》(第五版)一课一练 第5练
2.6 算术运算符、自增自减运算符、赋值运算符
一、单选题
1. 在C语言中,求余运算符%的两个操作数必须是( )
A. 浮点型数据
B. 字符型数据
C. 整型数据
D. 任意类型数据
【答案】C
【解析】求余运算符%要求两个操作数都是整型数据,结果为两数相除后的余数。A错,浮点型数据不能使用%运算符;B错,字符型虽然本质上是整数,但直接使用%运算不符合规范;D错,并非任意类型都能使用%运算符。
2. 设有 int a=3; 执行 a++; 后,a的值是( )
A. 2(减1后的值)
B. 3(值不变)
C. 5(加2后的值)
D. 4(加1后的值)
【答案】D
【解析】a++是自增运算,使变量a的值增加1,执行后a从3变为4。A中2是a--的结果;B中3是a自增前的值,自增后值已改变;C中5不是a++的结果,自增运算每次加1而非加2。
3. 设有 int x=5, y; 执行 y=x++; 后,x和y的值分别是( )
A. x=5, y=5
B. x=6, y=5
C. x=6, y=6
D. x=5, y=6
【答案】B
【解析】x++是后缀自增,先使用x的当前值5赋给y,然后x自增为6,所以x=6, y=5。A错在x应自增为6;C错在后缀自增先使用原值,y应为5而非6;D错在x应自增为6,同时y应取原值5。
4. 设有 int a=3, b=4, c; 执行 c=a+++b; 后,c的值是( )
A. 7((a++)+b的结果)
B. 8(a+(++b)的结果)
C. 6(a+(++b)的另一种理解)
D. 3((a++)+b中a未自增前的值)
【答案】A
【解析】C语言编译器按照贪心法解析,a+++b被解析为(a++)+b。a++是后缀自增,先使用a的当前值3参与加法运算,3+4=7赋给c,然后a自增为4。B错在++b不是对b自增;C和D计算结果不正确。
5. 以下关于赋值运算符的说法中,正确的是( )
A. 赋值运算符的结合性是从左到右
B. 赋值运算符的优先级高于算术运算符
C. 赋值运算符的结合性是从右到左
D. 赋值号左边可以出现常量表达式
【答案】C
【解析】赋值运算符的结合性是从右到左,例如a=b=c先计算b=c再赋给a。A错,从左到右是算术运算符的结合方向;B错,赋值运算符优先级很低,低于算术运算符;D错,赋值号左边必须是变量(左值),不能是常量表达式。
6. 设有 int a=5; 执行 a+=3; 后,a的值是( )
A. 3(赋值为3)
B. 5(值不变)
C. 8(5+3的结果)
D. 15(5*3的结果)
【答案】C
【解析】a+=3等价于a=a+3,即5+3=8,a变为8。A错,a+=3不是赋值为3;B错,a+=3会使a的值改变;D错,a+=3是加法而非乘法,a*=3才等于15。
7. 算术运算符*、/、%的优先级关系是( )
A. *优先级最高,/其次,%最低
B. 三者优先级相同,均高于+和-
C. /和%优先级相同,高于*
D. 三者优先级各不相同
【答案】B
【解析】*、/、%三个运算符优先级相同,都高于+和-。同级运算符按从左到右的顺序结合。A、C、D均错,这三个运算符的优先级是相同的,不存在谁高谁低的区别。
8. 设有 int x=3, y=4; 执行 x*=y+1; 后,x的值是( )
A. 15(x*(y+1)=3*5的正确结果)
B. 13(x*(y+1)误算为3*4+1)
C. 16(4*(y+1)的错误结果)
D. 12(x*y=3*4的结果)
【答案】A
【解析】x*=y+1等价于x=x*(y+1)。先计算y+1=4+1=5,再计算x*5=3*5=15,x变为15。注意复合赋值运算符右边的表达式y+1作为整体参与运算,相当于x=x*(y+1)而非x=x*y+1(后者结果为13)。
9. 以下表达式中,与 x=x+1 不等价的是( )
A. x++(后缀自增表达式)
B. ++x(前缀自增表达式)
C. x+=1(复合赋值表达式)
D. x=+1(正数1赋值给x)
【答案】D
【解析】x=+1是将正数1赋值给x,等价于x=1,与x=x+1不等价。A中x++作为独立语句执行后x增加1,效果与x=x+1相同(虽然表达式的值不同);B中++x作为独立语句效果与x=x+1相同;C中x+=1严格等价于x=x+1。
10. 设有 int a=10; 依次执行 a-=3; a*=2; a+=5; 后,a的值是( )
A. 19(10-3=7,7*2=14,14+5=19)
B. 22(计算顺序错误的结果)
C. 15(部分运算的结果)
D. 17(某一步骤的中间值)
【答案】A
【解析】依次执行:a-=3即a=10-3=7;a*=2即a=7*2=14;a+=5即a=14+5=19。每一步都用上一步的结果作为基础,顺序执行不能颠倒。B、C、D均未按正确的顺序计算。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。
本卷是《C语言》(第五版)《一课一练》第5练,内容是2.6 算术运算符、自增自减运算符、赋值运算符。
《C语言》(第五版)一课一练 第5练
2.6 算术运算符、自增自减运算符、赋值运算符
一、单选题
1. 在C语言中,求余运算符%的两个操作数必须是( )
A. 浮点型数据
B. 字符型数据
C. 整型数据
D. 任意类型数据
2. 设有 int a=3; 执行 a++; 后,a的值是( )
A. 2(减1后的值)
B. 3(值不变)
C. 5(加2后的值)
D. 4(加1后的值)
3. 设有 int x=5, y; 执行 y=x++; 后,x和y的值分别是( )
A. x=5, y=5
B. x=6, y=5
C. x=6, y=6
D. x=5, y=6
4. 设有 int a=3, b=4, c; 执行 c=a+++b; 后,c的值是( )
A. 7((a++)+b的结果)
B. 8(a+(++b)的结果)
C. 6(a+(++b)的另一种理解)
D. 3((a++)+b中a未自增前的值)
5. 以下关于赋值运算符的说法中,正确的是( )
A. 赋值运算符的结合性是从左到右
B. 赋值运算符的优先级高于算术运算符
C. 赋值运算符的结合性是从右到左
D. 赋值号左边可以出现常量表达式
6. 设有 int a=5; 执行 a+=3; 后,a的值是( )
A. 3(赋值为3)
B. 5(值不变)
C. 8(5+3的结果)
D. 15(5*3的结果)
7. 算术运算符*、/、%的优先级关系是( )
A. *优先级最高,/其次,%最低
B. 三者优先级相同,均高于+和-
C. /和%优先级相同,高于*
D. 三者优先级各不相同
8. 设有 int x=3, y=4; 执行 x*=y+1; 后,x的值是( )
A. 15(x*(y+1)=3*5的正确结果)
B. 13(x*(y+1)误算为3*4+1)
C. 16(4*(y+1)的错误结果)
D. 12(x*y=3*4的结果)
9. 以下表达式中,与 x=x+1 不等价的是( )
A. x++(后缀自增表达式)
B. ++x(前缀自增表达式)
C. x+=1(复合赋值表达式)
D. x=+1(正数1赋值给x)
10. 设有 int a=10; 依次执行 a-=3; a*=2; a+=5; 后,a的值是( )
A. 19(10-3=7,7*2=14,14+5=19)
B. 22(计算顺序错误的结果)
C. 15(部分运算的结果)
D. 17(某一步骤的中间值)
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$