内容正文:
编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《C语言程序设计》(高教版第2版)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。
本卷是《C语言程序设计》(高教版第2版)一课一练的单元3的第7练,内容涵盖单元3“身高体型判定系统”的数据处理的3.2.3 格式化输入输出(printf/scanf)。
《C语言程序设计》(高教版第2版)一课一练 第7练
单元3 “身高体型判定系统”的数据处理
3.2.3 格式化输入输出(printf/scanf)
1、 单项选择题(本题共5小题)
1、使用printf函数以小数形式输出浮点数时,默认的小数位数是( )
A. 2 位
B. 4 位
C. 6 位
D. 8 位
【答案】C
【解析】printf的%f格式符默认保留 6 位小数,即使原数小数位数不足 6 位,也会补 0 填充;若需指定小数位数,可使用%.nf修饰符,选项 C 正确。
2、下列scanf函数的使用方式中,正确的是( )
A. int a; scanf("%d", a);
B. int a; scanf("%d", &a);
C. char c; scanf("%c", c);
D. float f; scanf("%f", f);
【答案】B
【解析】scanf函数的输入项必须是变量的内存地址,需使用取地址运算符&获取变量地址;字符串数组名本身是首地址,无需&,但单个变量必须加&,选项 B 符合规则。
3、关于putchar函数的参数,下列描述正确的是( )
A. 只能是字符常量,不能是整型变量
B. 可以是字符常量、字符变量或存储 ASCII 码的整型变量
C. 一次可以输出多个字符
D. 参数必须是双引号括住的字符串
【答案】B
【解析】putchar的参数可以是单个字符(常量 / 变量),也可以是对应字符 ASCII 码的整型变量,例如putchar(65)会输出字符 'A';该函数一次只能输出一个字符,选项 B 正确。
4、printf语句printf("%-5d*", 123);的输出结果是( )
A. 123*
B. 123 *
C. 00123*
D. 123*
【答案】B
【解析】修饰符-表示左对齐,5指定输出域宽为 5 位,因此123左对齐后,右侧补 2 个空格,再输出*,结果为123 *,选项 B 正确。
5、getchar函数的特性描述正确的是( )
A. 可以一次性读入多个字符
B. 从键盘输入字符后,无需按回车即可直接读取
C. 读取的字符只能赋给字符变量,不能赋给整型变量
D. 从输入缓冲区读取一个字符,包括回车符
【答案】D
【解析】getchar只能读取单个字符,输入的字符会先存入缓冲区,按回车后才会被读取;读取的字符本质是 ASCII 码,可赋给字符或整型变量;回车符也会被当作字符存入缓冲区,选项 D 正确。
2、 判断题(本题共4题)
1、使用scanf函数输入数据时,直接写变量名即可,不需要加取地址运算符&。( )
【答案】×
【解析】scanf需要将数据存入变量的内存地址,因此除字符串数组名外,单个变量必须加&获取地址,直接写变量名会导致编译错误或数据存储异常。
2、printf函数的输出项个数多于格式说明的个数时,多出的输出项不会被输出。( )
【答案】√
【解析】printf的格式说明与输出项是一一对应的,若输出项个数多于格式说明,仅按格式说明的数量输出对应项,多出的项会被忽略。
3、getchar函数可以读取用户输入的所有字符,包括空格和回车。( )
【答案】×
【解析】getchar一次只能读取一个字符,若输入多个字符(如abc),仅会读取第一个字符 'a';回车符会被当作单个字符读取,但无法一次性读取多个字符。
4、使用 printf 函数输出 % 字符时,直接在格式字符串中写一个 % 即可实现,例如printf("%");。( )
【答案】×
【解析】printf 函数中,%是格式声明的起始标识,若要输出%本身,必须连续写两个%,即printf("%%");,单个%会被视为不完整的格式声明,导致编译错误或输出异常。
3、 程序填空题(本题共1题)
1、题目描述:以下程序用于输入用户的姓名、年龄和性别,并格式化输出个人信息,需补充缺失代码实现完整功能;
#include (1) // 包含标准输入输出头文件
int main() {
char name[20], gender;
int age;
printf("请输入姓名:");
scanf("%s", (2)); // 输入姓名(字符串)
printf("请输入年龄:");
scanf("%d", (3)); // 输入年龄(整数)
printf("请输入性别(M/F):");
(4); // 吸收缓冲区残留的回车符
gender = getchar(); // 读取性别字符
printf("=== 个人信息 ===
姓名:%s
年龄:%d
性别:", name, age);
(5); // 输出性别字符
return 0;
}
【答案】(1)<stdio.h> (2)name (3)&age (4)getchar() (5)putchar(gender);
【解析】
(1)程序使用了printf、scanf、getchar、putchar等标准库函数,必须包含<stdio.h>头文件才能正常编译;
(2)字符串数组名name本身就是数组的首地址,无需加&,直接传入scanf即可读取字符串;
(3)scanf输入整数需要变量的内存地址,&age获取变量age的地址,确保输入的年龄值能正确存入;
(4)前面的scanf输入年龄后,用户按下的回车符会留在输入缓冲区,用getchar()吸收该回车符,避免后续读取性别时直接读取到回车;
(5)putchar函数专门用于输出单个字符,将存储性别变量gender的值输出,符合字符输出的规范。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$
编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《C语言程序设计》(高教版第2版)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。
本卷是《C语言程序设计》(高教版第2版)一课一练的单元3的第7练,内容涵盖单元3“身高体型判定系统”的数据处理的3.2.3 格式化输入输出(printf/scanf)。
《C语言程序设计》(高教版第2版)一课一练 第7练
单元3 “身高体型判定系统”的数据处理
3.2.3 格式化输入输出(printf/scanf)
1、 单项选择题(本题共5小题)
1、使用printf函数以小数形式输出浮点数时,默认的小数位数是( )
A. 2 位
B. 4 位
C. 6 位
D. 8 位
2、下列scanf函数的使用方式中,正确的是( )
A. int a; scanf("%d", a);
B. int a; scanf("%d", &a);
C. char c; scanf("%c", c);
D. float f; scanf("%f", f);
3、关于putchar函数的参数,下列描述正确的是( )
A. 只能是字符常量,不能是整型变量
B. 可以是字符常量、字符变量或存储 ASCII 码的整型变量
C. 一次可以输出多个字符
D. 参数必须是双引号括住的字符串
4、printf语句printf("%-5d*", 123);的输出结果是( )
A. 123*
B. 123 *
C. 00123*
D. 123*
5、getchar函数的特性描述正确的是( )
A. 可以一次性读入多个字符
B. 从键盘输入字符后,无需按回车即可直接读取
C. 读取的字符只能赋给字符变量,不能赋给整型变量
D. 从输入缓冲区读取一个字符,包括回车符
2、 判断题(本题共4题)
1、使用scanf函数输入数据时,直接写变量名即可,不需要加取地址运算符&。( )
2、printf函数的输出项个数多于格式说明的个数时,多出的输出项不会被输出。( )
3、getchar函数可以读取用户输入的所有字符,包括空格和回车。( )
4、使用 printf 函数输出 % 字符时,直接在格式字符串中写一个 % 即可实现,例如printf("%");。( )
3、 程序填空题(本题共1题)
1、题目描述:以下程序用于输入用户的姓名、年龄和性别,并格式化输出个人信息,需补充缺失代码实现完整功能;
#include (1) // 包含标准输入输出头文件
int main() {
char name[20], gender;
int age;
printf("请输入姓名:");
scanf("%s", (2)); // 输入姓名(字符串)
printf("请输入年龄:");
scanf("%d", (3)); // 输入年龄(整数)
printf("请输入性别(M/F):");
(4); // 吸收缓冲区残留的回车符
gender = getchar(); // 读取性别字符
printf("=== 个人信息 ===
姓名:%s
年龄:%d
性别:", name, age);
(5); // 输出性别字符
return 0;
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$