内容正文:
编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《C语言程序设计》(高教版第2版)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。
本卷是《C语言程序设计》(高教版第2版)一课一练的单元3的第6练,内容涵盖单元3“身高体型判定系统”的数据处理的3.2.2 算术运算符与赋值运算符。
《C语言程序设计》(高教版第2版)一课一练 第6练
单元3 “身高体型判定系统”的数据处理
3.2.2 算术运算符与赋值运算符
1、 单项选择题(本题共5小题)
1、已知int a = 7, b = 2;,执行表达式a / b后,结果为( )
A. 3.5
B. 3
C. 4
D. 2
【答案】B
【解析】C 语言中整数除法会直接舍弃小数部分,只保留整数商,因此 7 除以 2 的结果为 3,而非 3.5。
2、已知int x = 5;,执行语句printf("%d,%d", x++, ++x);后,输出结果为( )
A. 5,6
B. 5,7
C. 6,6
D. 6,7
【答案】B
【解析】后自增运算符x++先输出变量当前值 5,再将 x 的值加 1 变为 6;前自增运算符++x先将 x 的值加 1 变为 7,再输出该值,因此最终输出 5,7。
3、已知int a = 3;,执行复合赋值语句a *= 2 + 3;后,a 的值为( )
A. 10
B. 15
C. 6
D. 9
【答案】B
【解析】复合赋值运算会先计算右侧表达式的值,2+3结果为 5,再执行a = a * 5,即 3*5=15,因此 a 的值为 15。
4、已知int a = 1, b = 2, c;,执行语句c = (a++, b++, a + b);后,c 的值为( )
A. 3
B. 4
C. 5
D. 6
【答案】C
【解析】逗号表达式从左至右依次计算:a++后 a 的值变为 2,b++后 b 的值变为 3,最后取a+b的结果 5 作为整个逗号表达式的值,因此 c 的值为 5。
5、以下关于sizeof运算符的描述,正确的是( )
A. sizeof是函数,使用前需包含头文件
B. 32 位系统中sizeof(int)的返回值为 4
C. sizeof('a')的返回值为 2
D. sizeof的计算在程序运行时执行
【答案】B
【解析】sizeof是 C 语言的运算符,编译阶段即可完成计算;字符型char在标准 C 中占 1 字节;32 位系统中整型int默认占 4 字节,因此sizeof(int)返回 4。
2、 判断题(本题共4题)
1、C 语言中,赋值表达式a = 3 + 5本身的值为 8,同时变量 a 的值也会被设置为 8。( )
【答案】√
【解析】赋值表达式的结果就是赋值后变量的值,因此a=3+5整个表达式的值为 8,同时变量 a 被赋值为 8,符合 C 语言赋值运算规则。
2、强制类型转换(int)3.999的结果为 4,且会改变原数值的类型。( )
【答案】×
【解析】强制类型转换只会截取浮点数的整数部分,结果为 3;且强制转换仅生成临时的整型数据,原数值的类型和值不会发生任何改变。
3、逗号运算符的优先级高于赋值运算符,因此执行int a; a = 1,2,3;后,a 的值为 3。( )
【答案】×
【解析】逗号运算符是所有运算符中优先级最低的,因此语句会先执行a=1,逗号后面的2和3不会影响变量 a,最终 a 的值为 1。
4、在 C 语言中,定义变量时可以使用连等赋值进行初始化,例如int a = b = c = 5;是合法的语句。( )
【答案】×
【解析】C 语言中变量初始化时不能使用连等赋值写法,因为b和c在赋值操作前未被定义,编译器会提示未声明标识符的错误。正确的批量初始化方式应为int a=5, b=5, c=5;,需分别为每个变量指定初始值。
3、 程序填空题(本题共1题)
1、题目描述:以下程序用于实现整数的基本算术运算,包含自增操作、复合赋值和强制类型转换,需补充缺失代码使程序正常运行。
#include <stdio.h>
int main()
{
int x, y, result;
double quotient;
// 输入两个整数
printf("请输入两个整数:");
scanf("%d%d", (1)____, (2)____);
// 计算两数之和
result = x + y;
printf("两数之和:%d
", result);
// 使用复合赋值计算两数之差
result = x;
(3)____;
printf("两数之差:%d
", result);
// 对x执行自增操作
(4)____;
// 强制类型转换计算两数的商(保留小数)
quotient = (double)y / x;
printf("y除以自增后的x的商:%.2f
", quotient);
return 0;
}
【答案】
(1) &x
(2) &y
(3) result -= y;
(4) x++;(或 ++x;)
【解析】
(1)scanf函数需要通过变量地址接收输入,&x表示取变量 x 的内存地址,确保输入的整数能正确存储到 x 中,符合输入语法要求。
(2)同理,&y取变量 y 的地址,保证第二个输入的整数能存储到 y 中。
(3)复合赋值运算符-=表示将变量result减去 y 后再赋值给result,等价于result = result - y,这里result初始值为 x,因此最终得到 x-y 的结果,体现了复合赋值简化代码的特性。
(4)自增运算符x++(或++x)实现对 x 的自增操作,x++先使用 x 当前值再自增,++x先自增再使用值,两者均符合题目对自增运算的知识点要求。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$
编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《C语言程序设计》(高教版第2版)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。
本卷是《C语言程序设计》(高教版第2版)一课一练的单元3的第6练,内容涵盖单元3“身高体型判定系统”的数据处理的3.2.2 算术运算符与赋值运算符。
《C语言程序设计》(高教版第2版)一课一练 第6练
单元3 “身高体型判定系统”的数据处理
3.2.2 算术运算符与赋值运算符
1、 单项选择题(本题共5小题)
1、已知int a = 7, b = 2;,执行表达式a / b后,结果为( )
A. 3.5
B. 3
C. 4
D. 2
2、已知int x = 5;,执行语句printf("%d,%d", x++, ++x);后,输出结果为( )
A. 5,6
B. 5,7
C. 6,6
D. 6,7
3、已知int a = 3;,执行复合赋值语句a *= 2 + 3;后,a 的值为( )
A. 10
B. 15
C. 6
D. 9
4、已知int a = 1, b = 2, c;,执行语句c = (a++, b++, a + b);后,c 的值为( )
A. 3
B. 4
C. 5
D. 6
5、以下关于sizeof运算符的描述,正确的是( )
A. sizeof是函数,使用前需包含头文件
B. 32 位系统中sizeof(int)的返回值为 4
C. sizeof('a')的返回值为 2
D. sizeof的计算在程序运行时执行
2、 判断题(本题共4题)
1、C 语言中,赋值表达式a = 3 + 5本身的值为 8,同时变量 a 的值也会被设置为 8。( )
2、强制类型转换(int)3.999的结果为 4,且会改变原数值的类型。( )
3、逗号运算符的优先级高于赋值运算符,因此执行int a; a = 1,2,3;后,a 的值为 3。( )
4、在 C 语言中,定义变量时可以使用连等赋值进行初始化,例如int a = b = c = 5;是合法的语句。( )
3、 程序填空题(本题共1题)
1、题目描述:以下程序用于实现整数的基本算术运算,包含自增操作、复合赋值和强制类型转换,需补充缺失代码使程序正常运行。
#include <stdio.h>
int main()
{
int x, y, result;
double quotient;
// 输入两个整数
printf("请输入两个整数:");
scanf("%d%d", (1)____, (2)____);
// 计算两数之和
result = x + y;
printf("两数之和:%d
", result);
// 使用复合赋值计算两数之差
result = x;
(3)____;
printf("两数之差:%d
", result);
// 对x执行自增操作
(4)____;
// 强制类型转换计算两数的商(保留小数)
quotient = (double)y / x;
printf("y除以自增后的x的商:%.2f
", quotient);
return 0;
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$