内容正文:
编写说明:重庆市《计算机类考纲百套卷》依据重庆市《高等职业教育分类考试专业综合理论测试计算机类考试说明》编写,本套试卷共88份分为三个部分,第一部分是根据考试说明的各章节的要求,编写了58份知识点训练卷,第二部分是针对每门课程的重点内容,编写的20份常考题训练卷,第三个部分是参考近几年重庆市计算机类专业理论考试真题,编写了10份专业综合训练卷。
本试卷是重庆市《计算机类考纲百套卷》的第46卷,是知识点训练卷,按考纲中《C语言程序设计》---(二)顺序结构程序设计的5-7要求编写。其三点要求是:5.掌握 getchar 、putchar 函数的使用;6.了解顺序结构程序的执行特点;7.掌握字母大小写转换,度量衡不同单位换算类程序设计。
重庆市《计算机类考纲百套卷》 第46卷
C语言程序设计
(二)顺序结构程序设计 知识点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、填空题(本大题共15小题,每题2分,共30分)
1. 在C语言中,使用________函数可以读取用户输入的下一个字符,而使用________函数可以向标准输出打印一个字符。
2. getchar函数在读取字符时,会自动将输入的________转换为相应的________码值。
3. 当使用getchar读取字符时,如果遇到文件结束符(EOF),则getchar返回________。
4. 在顺序结构程序中,程序的执行是________的,即按照代码的编写顺序依次执行。
5. 在C语言中,要实现小写字母转换为大写字母,可以将小写字母的ASCII码值减去________。
6. 若要实现字母大小写转换的功能,通常需要使用________语句来检查字符是否属于大写或小写字母。
7. 顺序结构程序设计的执行特点是______、______和______。
8. 在C语言中,字母'a'和字母'A'的ASCII码值相差________。
9. 若要将小写字母'a'转换为大写字母,可以使用表达式______。
10. 使用________函数可以在程序中获取用户的键盘输入,而无需等待用户按下回车键。
11. 在C语言中,使用________函数可以输出一个整数,而使用________函数可以输出一个字符。
12. 在程序的运行过程中,值可以改变的量称为________。
13. 在C语言中,字母'z'和字母'Z'的ASCII码值相差________。
14. 若要将大写字母转换为小写字母,可以将大写字母的ASCII码值加上________。
15. 当使用putchar函数输出字符时,如果传递给该函数的参数是EOF,则________。
二、单项选择题(本大题共15小题,每题2分,共30分)
1. 在C语言中,哪个函数用于从标准输入读取一个字符?( )
A. scanf()
B. getchar()
C. gets()
D. read()
2. 使用putchar()函数输出字符时,哪个说法是正确的?( )
A. 必须在前面加上'\0'来表示字符串的结束
B. 只能输出数字字符
C. 可以输出一个整型数值
D. 可以输出一个字符变量
3. 在顺序结构程序中,哪个说法是正确的?( )
A. 顺序结构不允许有分支和循环
B. 顺序结构中的语句可以不按顺序执行
C. 顺序结构中每个语句都会被执行一次
D. 顺序结构中的语句可以跳过不执行
4. 在C语言中,将小写字母转换为大写字母,应该使用哪个运算符?( )
A. +
B. -
C. *
D. /
5. 若要将大写字母转换为小写字母,应该在大写字母的ASCII码值上执行哪个操作?( )
A. 加32
B. 减32
C. 乘以2
D. 除以2
6.执行 `x=(a=3, b=a++, b)` 后 `x, a, b` 的值。( )
A. 332
B. 322
C. 323
D. 232
7. 在C语言中,哪个操作会导致getchar()函数返回EOF?( )
A. 输入一个非打印字符
B. 输入一个超出ASCII范围的字符
C. 到达文件末尾
D. 输入一个空格字符
8. 在ASCII码表中,字符'0'的码值比字符'9'的码值怎样?( )
A. 小
B. 大
C. 相等
D. 无法确定
9. 哪个操作符不能用于字母大小写转换?( )
A. ==
B. +
C. -
D. %
10. 哪个函数可以用于读取一个字符而不需要按下回车键?( )
A. getchar()
B. getch()
C. scanf()
D. gets()
11. 在顺序结构程序设计中,哪个描述是不正确的?( )
A. 顺序结构是程序的基本结构之一
B. 顺序结构中的语句可以包含分支和循环结构
C. 顺序结构中的语句执行顺序是固定的
D. 顺序结构不允许有分支和循环结构
12. 有以下程序:
char a, b, c, d;
scanf("%c%c", &a, &b);
c=getchar();
d=getchar();
printf("%c%c%c%c
", a, b, c, d);
当执行程序时,按下列方式输入数据(从第一列开始,<CR> 代表回车,注意:回车是一个字符)
12<CR>
34<CR>
则输出结果是。( )
A. 1234
B. 12
C. 12
D. 12
13. 以下程序段的输出结果是。( )
int k=17;
printf("%d,%o,%x
", k, k, k);
A. 17,021,0x11
B. 17,17,17
C. 17,0x11,021
D. 17,21,11
14. 设 `int b=2;` 表达式 `b/(b*2)` 的值是。( )
A. 0
B. 0.5
C. 0.500000
D. 0.000000
15. 以下运算符中,结合性与其他运算符不同的是。( )
A. ++
B. %
C. /
D. +
三、判断题(本大题共6小题,每题2分,共12分)
1. getchar()函数用于从标准输入读取一个字符,包括空格和换行符,而putchar()函数用于向标准输出写入一个字符。( )
2. 顺序结构程序的执行特点是按照代码的先后顺序依次执行,这意味着在顺序结构中,循环和条件判断语句不能出现。( )
3. 字母大小写转换可以通过加减ASCII码值来实现。例如,将小写字母转换为相应的大写字母,可以通过减去32来实现。( )
4. 度量衡单位换算类程序设计只能通过函数来实现,不能通过简单的表达式来完成。( )
5. 在使用getchar()函数读取字符时,如果输入的字符不是期望的字符,可以通过putchar()函数将输入的字符重新输出到屏幕上。( )
6. 字母大小写转换程序设计必须使用if-else语句来实现,不能使用其他方法。( )
四、程序填空题(本大题共2小题,每题8分,共16分)
1.以下是一个C语言程序,用于读取用户输入的一个字符,并判断是否为字母。如果是字母,则使用putchar()函数输出其对应的大小写字母;如果不是字母,则直接输出该字符。请根据程序逻辑,完成空缺部分。
#include <stdio.h>
int main() {
char ch;
ch = getchar(); // 读取一个字符
if ((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z')) {
// 如果是字母,则输出对应的大小写字母
if (ch >= 'A' && ch <= 'Z') {
// 输出小写字母
________ // 填空处
} else {
// 输出大写字母
________ // 填空处
}
} else {
// 如果不是字母,则直接输出
putchar(ch);
}
return 0;
}
2.以下是一个C语言程序,用于将用户输入的摄氏度转换为华氏度。转换公式为:华氏度 = 摄氏度 × 9/5 + 32。请根据程序逻辑,完成空缺部分。
#include <stdio.h>
int main() {
float celsius, fahrenheit;
printf("请输入摄氏度: ");
scanf("%f", &celsius); // 读取摄氏度
// 将摄氏度转换为华氏度
fahrenheit = celsius * ________ + 32; // 填空处
printf("对应的华氏度为:________ ", fahrenheit);// 填空处
return 0;
}
五、阅读程序题(本大题共12分)
1.阅读以下C语言程序,该程序旨在实现以下功能:
(1)读取用户输入的一行文本,并逐字符处理。
(2)将所有小写字母转换为大写字母。
(3)将所有大写字母转换为小写字母。
(4)输出转换后的文本。
请分析程序代码,并回答以下问题:
#include <stdio.h>
int main() {
char ch;
while ((ch = getchar()) != '
') {
if (ch >= 'a' && ch <= 'z') {
// 将小写字母转换为大写字母
ch = ch - 'a' + 'A';
} else if (ch >= 'A' && ch <= 'Z') {
// 将大写字母转换为小写字母
ch = ch + 'a' - 'A';
}
// 输出当前字符
putchar(ch);
}
// 输出换行符,以保持输出格式
putchar('
');
return 0;
}
问题:
1. 请解释程序中`while`循环的条件是什么,它如何控制循环的执行?
2. 当输入字符为小写字母时,程序是如何将其转换为大写字母的?
3. 当输入字符为大写字母时,程序是如何将其转换为小写字母的?
4. 程序在处理完所有输入字符后,为什么需要`putchar('
');`这一行代码?
5. 如果用户输入的字符既不是大写字母也不是小写字母,程序会怎样处理这些字符?
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$
编写说明:重庆市《计算机类考纲百套卷》依据重庆市《高等职业教育分类考试专业综合理论测试计算机类考试说明》编写,本套试卷共88份分为三个部分,第一部分是根据考试说明的各章节的要求,编写了58份知识点训练卷,第二部分是针对每门课程的重点内容,编写的20份常考题训练卷,第三个部分是参考近几年重庆市计算机类专业理论考试真题,编写了10份专业综合训练卷。
本试卷是重庆市《计算机类考纲百套卷》的第46卷,是知识点训练卷,按考纲中《C语言程序设计》---(二)顺序结构程序设计的5-7要求编写。其三点要求是:5.掌握 getchar 、putchar 函数的使用;6.了解顺序结构程序的执行特点;7.掌握字母大小写转换,度量衡不同单位换算类程序设计。
重庆市《计算机类考纲百套卷》 第46卷
C语言程序设计
(二)顺序结构程序设计 知识点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、填空题(本大题共15小题,每题2分,共30分)
1. 在C语言中,使用________函数可以读取用户输入的下一个字符,而使用________函数可以向标准输出打印一个字符。
【答案】getchar, putchar
2. getchar函数在读取字符时,会自动将输入的________转换为相应的________码值。
【答案】字符, ASCII
3. 当使用getchar读取字符时,如果遇到文件结束符(EOF),则getchar返回________。
【答案】EOF
4. 在顺序结构程序中,程序的执行是________的,即按照代码的编写顺序依次执行。
【答案】顺序
5. 在C语言中,要实现小写字母转换为大写字母,可以将小写字母的ASCII码值减去________。
【答案】32
6. 若要实现字母大小写转换的功能,通常需要使用________语句来检查字符是否属于大写或小写字母。
【答案】if
7. 顺序结构程序设计的执行特点是______、______和______。
【答案】自上而下、逐语句执行、顺序执行
8. 在C语言中,字母'a'和字母'A'的ASCII码值相差________。
【答案】32
9. 若要将小写字母'a'转换为大写字母,可以使用表达式______。
【答案】'a' - 'a' + 'A'
10. 使用________函数可以在程序中获取用户的键盘输入,而无需等待用户按下回车键。
【答案】getch
11. 在C语言中,使用________函数可以输出一个整数,而使用________函数可以输出一个字符。
【答案】printf, putchar
12. 在程序的运行过程中,值可以改变的量称为________。
【答案】变量
13. 在C语言中,字母'z'和字母'Z'的ASCII码值相差________。
【答案】-6
14. 若要将大写字母转换为小写字母,可以将大写字母的ASCII码值加上________。
【答案】32
15. 当使用putchar函数输出字符时,如果传递给该函数的参数是EOF,则________。
【答案】不会输出任何字符,EOF是用于表示输入结束的特殊值
二、单项选择题(本大题共15小题,每题2分,共30分)
1. 在C语言中,哪个函数用于从标准输入读取一个字符?( )
A. scanf()
B. getchar()
C. gets()
D. read()
【答案】B
2. 使用putchar()函数输出字符时,哪个说法是正确的?( )
A. 必须在前面加上'\0'来表示字符串的结束
B. 只能输出数字字符
C. 可以输出一个整型数值
D. 可以输出一个字符变量
【答案】D
3. 在顺序结构程序中,哪个说法是正确的?( )
A. 顺序结构不允许有分支和循环
B. 顺序结构中的语句可以不按顺序执行
C. 顺序结构中每个语句都会被执行一次
D. 顺序结构中的语句可以跳过不执行
【答案】C
4. 在C语言中,将小写字母转换为大写字母,应该使用哪个运算符?( )
A. +
B. -
C. *
D. /
【答案】B
5. 若要将大写字母转换为小写字母,应该在大写字母的ASCII码值上执行哪个操作?( )
A. 加32
B. 减32
C. 乘以2
D. 除以2
【答案】A
6.执行 `x=(a=3, b=a++, b)` 后 `x, a, b` 的值。( )
A. 332
B. 322
C. 323
D. 232
【答案】C
7. 在C语言中,哪个操作会导致getchar()函数返回EOF?( )
A. 输入一个非打印字符
B. 输入一个超出ASCII范围的字符
C. 到达文件末尾
D. 输入一个空格字符
【答案】C
8. 在ASCII码表中,字符'0'的码值比字符'9'的码值怎样?( )
A. 小
B. 大
C. 相等
D. 无法确定
【答案】A
9. 哪个操作符不能用于字母大小写转换?( )
A. ==
B. +
C. -
D. %
【答案】D
10. 哪个函数可以用于读取一个字符而不需要按下回车键?( )
A. getchar()
B. getch()
C. scanf()
D. gets()
【答案】B
11. 在顺序结构程序设计中,哪个描述是不正确的?( )
A. 顺序结构是程序的基本结构之一
B. 顺序结构中的语句可以包含分支和循环结构
C. 顺序结构中的语句执行顺序是固定的
D. 顺序结构不允许有分支和循环结构
【答案】D
12. 有以下程序:
char a, b, c, d;
scanf("%c%c", &a, &b);
c=getchar();
d=getchar();
printf("%c%c%c%c
", a, b, c, d);
当执行程序时,按下列方式输入数据(从第一列开始,<CR> 代表回车,注意:回车是一个字符)
12<CR>
34<CR>
则输出结果是。( )
A. 1234
B. 12
C. 12
D. 12
【答案】C
13. 以下程序段的输出结果是。( )
int k=17;
printf("%d,%o,%x
", k, k, k);
A. 17,021,0x11
B. 17,17,17
C. 17,0x11,021
D. 17,21,11
【答案】D
14. 设 `int b=2;` 表达式 `b/(b*2)` 的值是。( )
A. 0
B. 0.5
C. 0.500000
D. 0.000000
【答案】A
15. 以下运算符中,结合性与其他运算符不同的是。( )
A. ++
B. %
C. /
D. +
【答案】A
三、判断题(本大题共6小题,每题2分,共12分)
1. getchar()函数用于从标准输入读取一个字符,包括空格和换行符,而putchar()函数用于向标准输出写入一个字符。( )
【答案】×
2. 顺序结构程序的执行特点是按照代码的先后顺序依次执行,这意味着在顺序结构中,循环和条件判断语句不能出现。( )
【答案】×
3. 字母大小写转换可以通过加减ASCII码值来实现。例如,将小写字母转换为相应的大写字母,可以通过减去32来实现。( )
【答案】√
4. 度量衡单位换算类程序设计只能通过函数来实现,不能通过简单的表达式来完成。( )
【答案】×
5. 在使用getchar()函数读取字符时,如果输入的字符不是期望的字符,可以通过putchar()函数将输入的字符重新输出到屏幕上。( )
【答案】√
6. 字母大小写转换程序设计必须使用if-else语句来实现,不能使用其他方法。( )
【答案】×
四、程序填空题(本大题共2小题,每题8分,共16分)
1.以下是一个C语言程序,用于读取用户输入的一个字符,并判断是否为字母。如果是字母,则使用putchar()函数输出其对应的大小写字母;如果不是字母,则直接输出该字符。请根据程序逻辑,完成空缺部分。
#include <stdio.h>
int main() {
char ch;
ch = getchar(); // 读取一个字符
if ((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z')) {
// 如果是字母,则输出对应的大小写字母
if (ch >= 'A' && ch <= 'Z') {
// 输出小写字母
________ // 填空处
} else {
// 输出大写字母
________ // 填空处
}
} else {
// 如果不是字母,则直接输出
putchar(ch);
}
return 0;
}
【答案】
(1) putchar(ch + 32);
(2) putchar(ch - 32);
2.以下是一个C语言程序,用于将用户输入的摄氏度转换为华氏度。转换公式为:华氏度 = 摄氏度 × 9/5 + 32。请根据程序逻辑,完成空缺部分。
#include <stdio.h>
int main() {
float celsius, fahrenheit;
printf("请输入摄氏度: ");
scanf("%f", &celsius); // 读取摄氏度
// 将摄氏度转换为华氏度
fahrenheit = celsius * ________ + 32; // 填空处
printf("对应的华氏度为:________ ", fahrenheit);// 填空处
return 0;
}
【答案】
(1)9.0/5.0 或 1.8
(2)%.2f
五、阅读程序题(本大题共12分)
1.阅读以下C语言程序,该程序旨在实现以下功能:
(1)读取用户输入的一行文本,并逐字符处理。
(2)将所有小写字母转换为大写字母。
(3)将所有大写字母转换为小写字母。
(4)输出转换后的文本。
请分析程序代码,并回答以下问题:
#include <stdio.h>
int main() {
char ch;
while ((ch = getchar()) != '
') {
if (ch >= 'a' && ch <= 'z') {
// 将小写字母转换为大写字母
ch = ch - 'a' + 'A';
} else if (ch >= 'A' && ch <= 'Z') {
// 将大写字母转换为小写字母
ch = ch + 'a' - 'A';
}
// 输出当前字符
putchar(ch);
}
// 输出换行符,以保持输出格式
putchar('
');
return 0;
}
问题:
1. 请解释程序中`while`循环的条件是什么,它如何控制循环的执行?
2. 当输入字符为小写字母时,程序是如何将其转换为大写字母的?
3. 当输入字符为大写字母时,程序是如何将其转换为小写字母的?
4. 程序在处理完所有输入字符后,为什么需要`putchar('
');`这一行代码?
5. 如果用户输入的字符既不是大写字母也不是小写字母,程序会怎样处理这些字符?
【答案】
1. `while`循环的条件是`(ch = getchar()) != '
'`,它通过`getchar()`函数读取用户输入的字符,并将其赋值给变量`ch`。循环将继续执行,直到读取到换行符(即用户完成输入并按下回车键)。
2. 当输入字符为小写字母时,程序通过`ch = ch - 'a' + 'A';`这行代码将其转换为大写字母。这是通过计算小写字母与大写字母在ASCII码表中的相对位置来实现的。
3. 当输入字符为大写字母时,程序通过`ch = ch + 'a' - 'A';`这行代码将其转换为小写字母。这是通过计算大写字母与小写字母在ASCII码表中的相对位置来实现的。
4. 程序在处理完所有输入字符后,需要`putchar('
');`这一行代码来输出一个换行符,这样可以在终端或控制台上保持输出的整洁,避免输出文本后直接接上命令行提示符。
5. 如果用户输入的字符既不是大写字母也不是小写字母,程序将不会对它们进行任何转换,而是直接通过`putchar(ch);`输出这些字符。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$