内容正文:
编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《C语言程序设计》(电子工业出版社)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。
本卷是《C语言程序设计》(电子工业出版社)一课一练的第3章的第13练,内容涵盖第3章最简单的 C 程序设计 —— 顺序程序设计的3.5.2 格式输入输出(scanf 函数)。
《C语言程序设计》(电子工业出版社)一课一练 第13练
第3章 最简单的 C 程序设计 —— 顺序程序设计
3.5.2 格式输入输出(scanf 函数)
1、 单项选择题(本题共4小题)
1、关于 scanf 函数的地址列表,下列说法正确的是( )
A. 可以直接写变量名,比如scanf("%d", a);
B. 变量前必须加取地址符&,表示变量的内存地址
C. 地址列表只能包含一个变量地址
D. 数组名前必须加&才能作为地址使用
2、执行scanf("%d,%d", &a, &b);语句时,正确的输入方式是( )
A. 1 2
B. 1,2
C. 1;2
D. 1
2
3、执行scanf("%c%c", &m, &n);语句时,若输入a b(a 和 b 之间有一个空格),则变量 m 和 n 的值分别是( )
A. 'a'和'b'
B. 'a'和' '(空格字符)
C. ' '和'a'
D. 都为'a'
4、执行scanf("%3d,%d", &x, &y);语句时,输入12345,678,则 x 和 y 的值分别是( )
A. 12345 和 678
B. 123 和 45
C. 123 和 678
D. 1234 和 5
2、 判断题(本题共3题)
1、scanf 函数的地址列表中,变量名前可以省略取地址符&,直接写变量名也能正确接收输入值。( )
2、当使用%c格式输入字符时,空格和回车符都会被当作有效字符读取。( )
3、在 scanf 函数中,可以通过%.2f的格式声明指定输入实型数据的小数位宽度。( )
3、 填空题(本题共2题)
1、scanf 函数的一般形式由____和地址列表两部分组成。
2、当 scanf 的格式控制中没有指定普通字符作为分隔符时,输入多个数据时可以使用____、Tab 键或回车键作为默认分隔符。
4、 读程序写结果题(本题共1题)
1、阅读下面的 C 语言程序,写出程序运行后的输出结果(假设输入为:a=15,b=25)。
【程序代码】
#include <stdio.h>
int main() {
int m, n;
scanf("a=%d,b=%d", &m, &n);
printf("m-n=%d", m - n);
return 0;
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$
编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《C语言程序设计》(电子工业出版社)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。
本卷是《C语言程序设计》(电子工业出版社)一课一练的第3章的第13练,内容涵盖第3章最简单的 C 程序设计 —— 顺序程序设计的3.5.2 格式输入输出(scanf 函数)。
《C语言程序设计》(电子工业出版社)一课一练 第13练
第3章 最简单的 C 程序设计 —— 顺序程序设计
3.5.2 格式输入输出(scanf 函数)
1、 单项选择题(本题共4小题)
1、关于 scanf 函数的地址列表,下列说法正确的是( )
A. 可以直接写变量名,比如scanf("%d", a);
B. 变量前必须加取地址符&,表示变量的内存地址
C. 地址列表只能包含一个变量地址
D. 数组名前必须加&才能作为地址使用
【答案】B
【解析】scanf 需要获取变量的内存地址来存储输入值,变量前必须加&;选项 A 直接写变量名会导致编译错误,选项 C 地址列表可以包含多个地址,选项 D 数组名本身就是首地址,无需加&。
2、执行scanf("%d,%d", &a, &b);语句时,正确的输入方式是( )
A. 1 2
B. 1,2
C. 1;2
D. 1
2
【答案】B
【解析】格式控制中的逗号是普通字符,必须原样输入,因此输入时两个数值之间要用逗号分隔,才能被 scanf 正确识别。
3、执行scanf("%c%c", &m, &n);语句时,若输入a b(a 和 b 之间有一个空格),则变量 m 和 n 的值分别是( )
A. 'a'和'b'
B. 'a'和' '(空格字符)
C. ' '和'a'
D. 都为'a'
【答案】B
【解析】%c格式会读取输入缓冲区中的任意单个字符,包括空格,第一个%c读取'a',第二个%c读取'a'后面的空格字符。
4、执行scanf("%3d,%d", &x, &y);语句时,输入12345,678,则 x 和 y 的值分别是( )
A. 12345 和 678
B. 123 和 45
C. 123 和 678
D. 1234 和 5
【答案】C
【解析】%3d指定输入宽度为 3,会读取前 3 个字符123赋值给 x,剩下的45被逗号分隔,随后读取678赋值给 y。
2、 判断题(本题共3题)
1、scanf 函数的地址列表中,变量名前可以省略取地址符&,直接写变量名也能正确接收输入值。( )
【答案】×
【解析】scanf 需要通过变量的内存地址来存储输入数据,省略&会导致程序无法定位变量的存储位置,无法完成赋值操作,甚至引发运行错误。
2、当使用%c格式输入字符时,空格和回车符都会被当作有效字符读取。( )
【答案】√
【解析】%c格式会读取输入缓冲区中的任意单个字符,包括空格、回车等空白字符,不会自动跳过这些字符。
3、在 scanf 函数中,可以通过%.2f的格式声明指定输入实型数据的小数位宽度。( )
【答案】×
【解析】scanf 不支持对实型数据指定小数位宽度,该写法属于语法错误,只能用整数指定输入数据的总宽度。
3、 填空题(本题共2题)
1、scanf 函数的一般形式由____和地址列表两部分组成。
【答案】格式控制字符串
【解析】格式控制字符串用于指定输入数据的格式,包含普通字符、转义字符和格式声明,是 scanf 实现格式输入的核心部分。它与地址列表配合,能将输入数据按指定格式存储到对应的内存地址中。
2、当 scanf 的格式控制中没有指定普通字符作为分隔符时,输入多个数据时可以使用____、Tab 键或回车键作为默认分隔符。
【答案】空格
【解析】这是 scanf 输入多数据的默认规则,空格、Tab 和回车键都属于空白字符,会被视为数据之间的分隔符。使用这些分隔符可以让 scanf 正确识别并分别存储多个输入值。
4、 读程序写结果题(本题共1题)
1、阅读下面的 C 语言程序,写出程序运行后的输出结果(假设输入为:a=15,b=25)。
【程序代码】
#include <stdio.h>
int main() {
int m, n;
scanf("a=%d,b=%d", &m, &n);
printf("m-n=%d", m - n);
return 0;
}
【答案】
程序运行结果:
m-n=-10
【解析】
scanf 的格式控制字符串包含a=、,、b=这些普通字符,输入时必须原样输入a=15,b=25,scanf 会将 15 赋值给 m,25 赋值给 n。随后 printf 计算 m-n 的值 15-25=-10,并输出m-n=-10。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$