内容正文:
编写说明:2027版重庆市高等职业教育分类考试计算机类《考纲百套卷》,依据《2027年重庆市高等职业教育分类考试专业综合理论测试计算机类考试说明》编写。本专辑涵盖三个部分,第一部分为知识训练卷,第二部分为专题训练卷,第三部分为课程综合卷。本专辑共99份试卷,其中知识训练卷76份、专题训练卷16份、课程综合卷7份。
本试卷是第74卷,为知识训练卷,按《程序设计》中“模块化方法与库函数”范围和要求编写。具体内容为:1.了解模块化程序设计的方法;2.了解C语言函数的分类,并掌握以下库函数的使用方法:。stdio.h:printf()、scanf()、putchar()、getchar()、puts()、gets()。math.h:pow()、sqrt()、abs()、fabs()。stdlib.h:rand()、srand()。time.h:time()。string.h:strcpy()、strcat()、strlen()、strcmp()。
重庆市高职分类考试
计算机类《考纲百套卷》
第74卷 程序设计——模块化方法与库函数
(考试时间:45分钟 满分:100分)
一、填空题(共10题,每题3分,共30分)
1.把复杂程序划分为若干相对独立的功能模块,称为__________化程序设计。
【答案】模块
【解析】模块化把复杂任务拆分为多个职责清晰的函数或模块。
2.函数定义中用于说明返回值数据类型的部分称为返回值__________。
【答案】类型
【解析】返回值类型写在函数名之前,例如int、double或void。
3.函数体中把计算结果交给调用者的语句是__________。
【答案】return
【解析】return结束当前函数并把表达式结果返回给调用者。
4.函数调用时,定义中写出的参数称为形式__________。
【答案】参数
【解析】形式参数出现在函数定义中,接收调用时传入的实际参数。
5.调用函数时实际传入的值称为实际__________。
【答案】参数
【解析】实参是在函数调用处提供的具体数据或表达式。
6.不需要返回结果的函数通常把返回类型写成__________。
【答案】void
【解析】void表示函数没有返回值。
7.使用数学库函数sqrt、pow时,通常需要包含__________头文件。
【答案】math.h
【解析】sqrt和pow等数学函数的声明位于math.h。
8.字符串长度函数strlen所在的头文件是__________。
【答案】string.h
【解析】strlen、strcpy、strcmp等字符串函数声明在string.h。
9.格式化输入函数scanf所在的头文件是__________。
【答案】stdio.h
【解析】scanf和printf等标准输入输出函数声明在stdio.h。
10.函数声明通常也称为函数__________。
【答案】原型
【解析】函数原型提前说明返回类型、函数名和参数类型。
二、单项选择题(共15题,每题2分,共30分)
1.下列哪项最能体现模块化程序设计思想( )。
A.把任务拆成职责清晰的多个函数
B.把所有代码写进一个main函数
C.重复复制相同代码
D.删除所有函数调用
【答案】A
【解析】模块化通过函数划分任务,使程序更易理解、测试和维护。
2.函数定义中,返回类型和函数名通常位于( )。
A.函数体结束之后
B.参数列表之前
C.return关键字之后
D.调用语句内部
【答案】B
【解析】典型函数头格式为返回类型、函数名和参数列表。
3.函数没有返回值时,返回类型通常写作( )。
A.null
B.empty
C.void
D.return
【答案】C
【解析】void表示函数不向调用者返回数据。
4.下列语句可以返回变量result的函数值的是( )。
A.give result;
B.output result;
C.back result;
D.return result;
【答案】D
【解析】C语言使用return把表达式结果返回给调用者。
5.函数调用f(a, b)中,a和b属于( )。
A.实际参数
B.形式参数
C.返回类型
D.局部函数名
【答案】A
【解析】调用处传入的具体值或表达式是实际参数。
6.函数定义中的参数名称和类型属于( )。
A.实际参数
B.形式参数
C.头文件宏名
D.返回结果
【答案】B
【解析】形式参数写在函数定义中,用于接收实参。
7.使用sqrt函数前通常需要包含( )。
A.string.h
B.stdlib.txt
C.math.h
D.ctype.doc
【答案】C
【解析】sqrt的函数声明由math.h提供。
8.strlen函数主要用于计算字符串的( )。
A.数组总字节数含结束符
B.首字符编码值
C.字符串中空格的数量
D.有效字符长度
【答案】D
【解析】strlen统计\0之前的有效字符,不把结束符计入长度。
9.函数原型的主要作用是提前说明函数的( )。
A.返回类型、名称和参数类型
B.屏幕颜色和字体大小
C.文件路径和编译时间
D.数组运行后的最大值
【答案】A
【解析】函数原型让编译器提前了解调用接口。
10.下列关于局部变量的说法正确的是( )。
A.在所有函数中自动共享
B.通常只在其所在函数或代码块内有效
C.程序启动后永远不释放
D.只能定义为字符类型
【答案】B
【解析】局部变量的作用域受函数或代码块限制。
11.若函数声明为int f(int x),调用它时应传入( )。
A.必须传入两个字符串
B.不能传入任何实参
C.一个可转换为int的实参
D.只能传入数组长度
【答案】C
【解析】函数声明要求一个与int参数兼容的实际参数。
12.调用pow(2, 3)通常得到( )。
A.5
B.6
C.9
D.8
【答案】D
【解析】pow(2,3)计算2的3次方,结果为8。
13.下列头文件与函数匹配正确的是( )。
A.stdio.h对应printf
B.math.h对应strlen
C.string.h对应sqrt
D.stdio.h对应strcmp
【答案】A
【解析】printf属于标准输入输出函数,声明在stdio.h。
14.函数按值传递基本类型参数时,函数内部修改形参通常( )。
A.一定改变所有同名变量
B.不会直接改变调用处原变量
C.会自动修改数组长度
D.会删除调用函数
【答案】B
【解析】基本类型按值传递,形参是实参的副本。
15.设计函数时,把重复计算封装起来的主要好处是( )。
A.让所有变量变成全局变量
B.取消函数参数检查
C.减少重复代码并便于复用
D.保证程序不需要测试
【答案】C
【解析】封装重复逻辑可以提高复用性和维护性。
三、判断题(共12题,每题1分,共12分)
1.模块化程序设计可以把复杂任务拆成多个相对独立的函数。( )
【答案】√
【解析】函数是C语言中常用的模块化单元。
2.void函数必须通过return返回一个整数值。( )
【答案】×
【解析】void函数没有返回值,return可以省略表达式。
3.函数定义中的参数称为形式参数。( )
【答案】√
【解析】形式参数写在函数定义的参数列表中。
4.函数调用处传入的具体数据称为实际参数。( )
【答案】√
【解析】实参在调用时提供,传递给对应形参。
5.return语句可以把函数计算结果交给调用者。( )
【答案】√
【解析】return表达式的值成为函数调用结果。
6.局部变量在程序的所有函数中都可以直接访问。( )
【答案】×
【解析】局部变量受所在函数或代码块作用域限制。
7.sqrt函数的声明通常位于math.h头文件。( )
【答案】√
【解析】使用sqrt前应包含math.h。
8.strlen返回的字符串长度包括末尾的\0。( )
【答案】×
【解析】strlen不把字符串结束符计入长度。
9.函数原型可以帮助编译器检查调用时参数类型。( )
【答案】√
【解析】原型提前说明函数接口,便于编译检查。
10.按值传递基本类型参数时,修改形参一定会修改实参。( )
【答案】×
【解析】形参通常是实参副本,修改形参不直接改变实参。
11.一个函数不能在多个位置被调用。( )
【答案】×
【解析】函数封装后可以被多次调用,以实现代码复用。
12.函数返回类型、参数类型和调用实参完全无关。( )
【答案】×
【解析】函数定义和调用应在返回类型、参数数量及类型等方面匹配。
四、程序填空题(共2题,每题8分,共16分)
1.阅读下列程序,补充空格处的代码。程序统计数组中大于limit的元素个数。
int countGreater(int a[], int n, int limit) {
int i, count = 0;
for (i = 0; i < n; i++) {
if (a[i] <= limit) {
continue;
}
count++;
}
return count;
}
int main(void) {
int a[7] = {2, 7, 5, 9, 3, 8, 6};
int result = __________ (a, 7, 5);
printf("%d %d", result, a[3]);
return 0;
}
(1)空格处应填什么函数名?
【答案】countGreater;
【解析】函数定义名为countGreater,调用时传入数组、长度7和limit=5。大于5的元素为7、9、8、6,共4个,a[3]为9,因此输出4 9。
2.阅读下列程序,补充空格处的代码。程序根据输入整数的符号和奇偶性进行转换。
int adjust(int x) {
if (x < 0) {
return -x;
}
if (x % 2 == 0) {
return x / 2;
}
return x * 2 + 1;
}
int main(void) {
int data[5] = {-3, 4, 5, 0, -2};
int i, total = 0;
for (i = 0; i < 5; i++) {
total += __________ (data[i]);
}
printf("%d %d", total, i);
return 0;
}
(1)空格处应填什么函数名?
【答案】adjust;
【解析】调用已定义的adjust函数处理每个数组元素。转换结果依次为3、2、11、0、2,总和为18,循环结束时i为5,因此输出18 5。
五、程序阅读题(共2题,每题6分,共12分)
1.阅读下列程序并回答问题。
int transform(int x) {
if (x % 2 == 0) {
return x / 2;
}
return x * 3 - 1;
}
int accumulate(int a[], int n) {
int i, total = 0;
for (i = 0; i < n; i++) {
if (a[i] < 0) continue;
total += transform(a[i]);
if (total > 20) break;
}
return total;
}
int main(void) {
int a[6] = {3, -2, 8, 5, 4, 7};
printf("%d %d", accumulate(a, 6), a[3]);
return 0;
}
(1)transform对奇数如何处理?(2)accumulate何时break?(3)最终输出什么?
【答案】(1)返回x*3-1;(2)total大于20时;(3)输出26 5。
【解析】transform(3)=8,负数-2被continue跳过,transform(8)=4使total为12,transform(5)=14使total为26并触发break。accumulate返回26,a[3]为5,因此输出26 5。
2.阅读下列程序并回答问题。
int firstEvenOver(int a[], int n, int limit) {
int i;
for (i = 0; i < n; i++) {
if (a[i] % 2 != 0) {
continue;
}
if (a[i] > limit) {
return i;
}
}
return -1;
}
int main(void) {
int data[6] = {3, 8, 4, 11, 6, 14};
int pos = firstEvenOver(data, 6, 10);
printf("%d %d", pos, data[pos]);
return 0;
}
(1)continue跳过哪些元素?(2)函数返回哪个下标?(3)最终输出什么?
【答案】(1)奇数元素;(2)5;(3)输出5 14。
【解析】奇数3和11遇到continue,偶数8、4、6不大于10继续检查,最后14为首个大于10的偶数,函数return 5。main中data[5]=14,输出5 14。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
编写说明:2027版重庆市高等职业教育分类考试计算机类《考纲百套卷》,依据《2027年重庆市高等职业教育分类考试专业综合理论测试计算机类考试说明》编写。本专辑涵盖三个部分,第一部分为知识训练卷,第二部分为专题训练卷,第三部分为课程综合卷。本专辑共99份试卷,其中知识训练卷76份、专题训练卷16份、课程综合卷7份。
本试卷是第74卷,为知识训练卷,按《程序设计》中“模块化方法与库函数”范围和要求编写。具体内容为:1.了解模块化程序设计的方法;2.了解C语言函数的分类,并掌握以下库函数的使用方法:。stdio.h:printf()、scanf()、putchar()、getchar()、puts()、gets()。math.h:pow()、sqrt()、abs()、fabs()。stdlib.h:rand()、srand()。time.h:time()。string.h:strcpy()、strcat()、strlen()、strcmp()。
重庆市高职分类考试
计算机类《考纲百套卷》
第74卷 程序设计——模块化方法与库函数
(考试时间:45分钟 满分:100分)
一、填空题(共10题,每题3分,共30分)
1.把复杂程序划分为若干相对独立的功能模块,称为__________化程序设计。
2.函数定义中用于说明返回值数据类型的部分称为返回值__________。
3.函数体中把计算结果交给调用者的语句是__________。
4.函数调用时,定义中写出的参数称为形式__________。
5.调用函数时实际传入的值称为实际__________。
6.不需要返回结果的函数通常把返回类型写成__________。
7.使用数学库函数sqrt、pow时,通常需要包含__________头文件。
8.字符串长度函数strlen所在的头文件是__________。
9.格式化输入函数scanf所在的头文件是__________。
10.函数声明通常也称为函数__________。
二、单项选择题(共15题,每题2分,共30分)
1.下列哪项最能体现模块化程序设计思想( )。
A.把任务拆成职责清晰的多个函数
B.把所有代码写进一个main函数
C.重复复制相同代码
D.删除所有函数调用
2.函数定义中,返回类型和函数名通常位于( )。
A.函数体结束之后
B.参数列表之前
C.return关键字之后
D.调用语句内部
3.函数没有返回值时,返回类型通常写作( )。
A.null
B.empty
C.void
D.return
4.下列语句可以返回变量result的函数值的是( )。
A.give result;
B.output result;
C.back result;
D.return result;
5.函数调用f(a, b)中,a和b属于( )。
A.实际参数
B.形式参数
C.返回类型
D.局部函数名
6.函数定义中的参数名称和类型属于( )。
A.实际参数
B.形式参数
C.头文件宏名
D.返回结果
7.使用sqrt函数前通常需要包含( )。
A.string.h
B.stdlib.txt
C.math.h
D.ctype.doc
8.strlen函数主要用于计算字符串的( )。
A.数组总字节数含结束符
B.首字符编码值
C.字符串中空格的数量
D.有效字符长度
9.函数原型的主要作用是提前说明函数的( )。
A.返回类型、名称和参数类型
B.屏幕颜色和字体大小
C.文件路径和编译时间
D.数组运行后的最大值
10.下列关于局部变量的说法正确的是( )。
A.在所有函数中自动共享
B.通常只在其所在函数或代码块内有效
C.程序启动后永远不释放
D.只能定义为字符类型
11.若函数声明为int f(int x),调用它时应传入( )。
A.必须传入两个字符串
B.不能传入任何实参
C.一个可转换为int的实参
D.只能传入数组长度
12.调用pow(2, 3)通常得到( )。
A.5
B.6
C.9
D.8
13.下列头文件与函数匹配正确的是( )。
A.stdio.h对应printf
B.math.h对应strlen
C.string.h对应sqrt
D.stdio.h对应strcmp
14.函数按值传递基本类型参数时,函数内部修改形参通常( )。
A.一定改变所有同名变量
B.不会直接改变调用处原变量
C.会自动修改数组长度
D.会删除调用函数
15.设计函数时,把重复计算封装起来的主要好处是( )。
A.让所有变量变成全局变量
B.取消函数参数检查
C.减少重复代码并便于复用
D.保证程序不需要测试
三、判断题(共12题,每题1分,共12分)
1.模块化程序设计可以把复杂任务拆成多个相对独立的函数。( )
2.void函数必须通过return返回一个整数值。( )
3.函数定义中的参数称为形式参数。( )
4.函数调用处传入的具体数据称为实际参数。( )
5.return语句可以把函数计算结果交给调用者。( )
6.局部变量在程序的所有函数中都可以直接访问。( )
7.sqrt函数的声明通常位于math.h头文件。( )
8.strlen返回的字符串长度包括末尾的\0。( )
9.函数原型可以帮助编译器检查调用时参数类型。( )
10.按值传递基本类型参数时,修改形参一定会修改实参。( )
11.一个函数不能在多个位置被调用。( )
12.函数返回类型、参数类型和调用实参完全无关。( )
四、程序填空题(共2题,每题8分,共16分)
1.阅读下列程序,补充空格处的代码。程序统计数组中大于limit的元素个数。
int countGreater(int a[], int n, int limit) {
int i, count = 0;
for (i = 0; i < n; i++) {
if (a[i] <= limit) {
continue;
}
count++;
}
return count;
}
int main(void) {
int a[7] = {2, 7, 5, 9, 3, 8, 6};
int result = __________ (a, 7, 5);
printf("%d %d", result, a[3]);
return 0;
}
(1)空格处应填什么函数名?
2.阅读下列程序,补充空格处的代码。程序根据输入整数的符号和奇偶性进行转换。
int adjust(int x) {
if (x < 0) {
return -x;
}
if (x % 2 == 0) {
return x / 2;
}
return x * 2 + 1;
}
int main(void) {
int data[5] = {-3, 4, 5, 0, -2};
int i, total = 0;
for (i = 0; i < 5; i++) {
total += __________ (data[i]);
}
printf("%d %d", total, i);
return 0;
}
(1)空格处应填什么函数名?
五、程序阅读题(共2题,每题6分,共12分)
1.阅读下列程序并回答问题。
int transform(int x) {
if (x % 2 == 0) {
return x / 2;
}
return x * 3 - 1;
}
int accumulate(int a[], int n) {
int i, total = 0;
for (i = 0; i < n; i++) {
if (a[i] < 0) continue;
total += transform(a[i]);
if (total > 20) break;
}
return total;
}
int main(void) {
int a[6] = {3, -2, 8, 5, 4, 7};
printf("%d %d", accumulate(a, 6), a[3]);
return 0;
}
(1)transform对奇数如何处理?(2)accumulate何时break?(3)最终输出什么?
2.阅读下列程序并回答问题。
int firstEvenOver(int a[], int n, int limit) {
int i;
for (i = 0; i < n; i++) {
if (a[i] % 2 != 0) {
continue;
}
if (a[i] > limit) {
return i;
}
}
return -1;
}
int main(void) {
int data[6] = {3, 8, 4, 11, 6, 14};
int pos = firstEvenOver(data, 6, 10);
printf("%d %d", pos, data[pos]);
return 0;
}
(1)continue跳过哪些元素?(2)函数返回哪个下标?(3)最终输出什么?
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$