内容正文:
【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。
本卷是《编程语言基础——C语言》(第5版)《一课一练》第5练,内容是2.3 赋值语句。
《编程语言基础——C语言》(第5版)一课一练 第5练
2.3 赋值语句
一、单选题
1. 关于C语言赋值号"="与数学中等号的区别,下列说法正确的是( )
A. 赋值号左边可以是常量
B. 赋值号"="表示将右边表达式的值赋给左边的变量
C. 赋值语句a=a+1在数学中是恒成立的等式
D. 赋值号左边可以是表达式
【答案】B
【解析】C语言中"="是赋值号,表示将右边表达式的值赋给左边变量,不是数学意义上的等号。a=a+1是合法赋值语句,将a的值加1后存回a,但不是数学等式。赋值号左边必须是变量。
2. 以下赋值语句中,合法的是( )
A. 5=x;
B. a+b=10;
C. 123='A';
D. x=y+3;
【答案】D
【解析】赋值号左边必须是变量。5=x;左边是常量;a+b=10;左边是表达式;123='A';左边是常量,均非法。x=y+3;左边x是变量,合法。
3. 已知定义:char c1='a', c2; int k; 执行赋值c2=97; k=c1; 后,下列说法正确的是( )
A. c2中存放的是字符常量'97'
B. 变量k的值为97
C. c2存放的是整数97在内存中的完整表示
D. 执行printf("%c",c2)将输出整数97
【答案】B
【解析】字符型与整型数据可以通用。c2=97;将整数97赋给字符变量c2,实际存放的是97对应的ASCII字符。k=c1;将字符'a'(ASCII码97)赋给整型变量k,k的值为97。
4. 已知int x=10; 执行x+=5; 后,变量x的值为( )
A. 5
B. 10
C. 15
D. 105
【答案】C
【解析】x+=5;是复合赋值运算,等价于x=x+5;。x初值为10,执行后x=10+5=15。
5. 已知int i=8, a=5; 执行i*=a+2; 后,变量i的值为( )
A. 40
B. 56
C. 66
D. 16
【答案】B
【解析】i*=a+2;等价于i=i*(a+2);。a+2=7,i初值为8,执行后i=8*7=56。注意复合赋值运算符的右边是一个整体表达式,先算a+2再相乘。
6. 已知定义:int a; short b; char c; 执行a=b; 和b=c; 时,类型转换的方式是( )
A. 将右边表达式值的类型自动转换成左边变量的类型后再赋值
B. 将左边变量的类型自动转换成右边表达式值的类型后再赋值
C. 两边类型不同时赋值语句是非法的
D. 类型不同时需要强制类型转换才能赋值
【答案】A
【解析】C语言赋值语句中,当左边变量与右边表达式数据类型不一致时,系统自动将右边表达式值的类型转换成与左边变量相同的类型后再赋值。
7. 已知定义:int a=350; char c; 执行c=a; 后,变量c中存放的内容是( )
A. 整数350的完整二进制表示
B. 350对应的ASCII字符
C. 整数350(无精度损失)
D. 整数350的二进制低8位所对应的字符
【答案】D
【解析】char型在内存中占1个字节(8位),将int型赋给char型时,系统截取int值低8位存入char变量。350的二进制低8位为01010110(十进制86),对应ASCII字符'V',发生截断。
8. 已知定义:int a; double x; a=350; x=a; 执行后,关于变量x的说法正确的是( )
A. x的值为350.0,但精度有所降低
B. x无法接收int型数据,赋值语句非法
C. x的值为350.0,精度不会降低
D. x中存放的是整数350而非浮点数
【答案】C
【解析】当左边变量类型比右边表达式值的类型长时(int→double),转换后不会改变精度或准确度,仅改变值的表示形式。x=a;后x的值为350.0,精度不降低。
9. 已知int a=20, b=5; 执行a+=b; b*=a; 后,变量a和b的值分别为( )
A. a=25, b=125
B. a=25, b=100
C. a=25, b=30
D. a=20, b=100
【答案】A
【解析】a=20, b=5; a+=b; 后a=20+5=25, b仍为5;b*=a; 后b=5*25=125。注意复合赋值运算按顺序执行,前一步的结果会影响后一步。
10. 已知定义:int a=520; char c; 执行c=a; 后,关于结果的说法正确的是( )
A. c的值为520,无数据损失
B. c的值为8
C. c中存放520的二进制低8位,可能发生数据错误
D. 该赋值语句在编译时会报错
【答案】C
【解析】int型赋值给char型时,系统截取int值低8位。520的十六进制为0x0208,低8位为0x08(值为8),c中实际存放的是0x08对应的控制字符,发生了数据截断,结果可能不符合预期。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。
本卷是《编程语言基础——C语言》(第5版)《一课一练》第5练,内容是2.3 赋值语句。
《编程语言基础——C语言》(第5版)一课一练 第5练
2.3 赋值语句
一、单选题
1. 关于C语言赋值号"="与数学中等号的区别,下列说法正确的是( )
A. 赋值号左边可以是常量
B. 赋值号"="表示将右边表达式的值赋给左边的变量
C. 赋值语句a=a+1在数学中是恒成立的等式
D. 赋值号左边可以是表达式
2. 以下赋值语句中,合法的是( )
A. 5=x;
B. a+b=10;
C. 123='A';
D. x=y+3;
3. 已知定义:char c1='a', c2; int k; 执行赋值c2=97; k=c1; 后,下列说法正确的是( )
A. c2中存放的是字符常量'97'
B. 变量k的值为97
C. c2存放的是整数97在内存中的完整表示
D. 执行printf("%c",c2)将输出整数97
4. 已知int x=10; 执行x+=5; 后,变量x的值为( )
A. 5
B. 10
C. 15
D. 105
5. 已知int i=8, a=5; 执行i*=a+2; 后,变量i的值为( )
A. 40
B. 56
C. 66
D. 16
6. 已知定义:int a; short b; char c; 执行a=b; 和b=c; 时,类型转换的方式是( )
A. 将右边表达式值的类型自动转换成左边变量的类型后再赋值
B. 将左边变量的类型自动转换成右边表达式值的类型后再赋值
C. 两边类型不同时赋值语句是非法的
D. 类型不同时需要强制类型转换才能赋值
7. 已知定义:int a=350; char c; 执行c=a; 后,变量c中存放的内容是( )
A. 整数350的完整二进制表示
B. 350对应的ASCII字符
C. 整数350(无精度损失)
D. 整数350的二进制低8位所对应的字符
8. 已知定义:int a; double x; a=350; x=a; 执行后,关于变量x的说法正确的是( )
A. x的值为350.0,但精度有所降低
B. x无法接收int型数据,赋值语句非法
C. x的值为350.0,精度不会降低
D. x中存放的是整数350而非浮点数
9. 已知int a=20, b=5; 执行a+=b; b*=a; 后,变量a和b的值分别为( )
A. a=25, b=125
B. a=25, b=100
C. a=25, b=30
D. a=20, b=100
10. 已知定义:int a=520; char c; 执行c=a; 后,关于结果的说法正确的是( )
A. c的值为520,无数据损失
B. c的值为8
C. c中存放520的二进制低8位,可能发生数据错误
D. 该赋值语句在编译时会报错
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$