内容正文:
编写说明:2026版《软件与应用技术考纲百套卷》依据2026版山东省《软件与应用技术类专业知识考试标准》编写,本套试卷共100份,分为三个部分,第一部分是知识点训练卷,每个知识点2份试卷共76份,第二部分是常考题训练卷,每个知识模块2份训练卷共12份,第三个部分是专业综合训练卷,参考历年软件与应用技术类专业真题试卷,编写了12份。
本试卷是2026版《软件与应用技术考纲百套卷》的第9卷,按知识模块1 C语言程序设计知识,5.函数的两点范围要求编写。其两点要求是:
(1)理解函数的定义。
(2)掌握函数的调用。
2026版山东省《软件与应用技术考纲百套卷》 第9卷
知识模块1 C语言程序设计知识
5.函数 知识点训练卷
一、单项选择题(本大题共20小题,每题3分,共60分)
1. 下列函数定义形式正确的是( )。
A. Int f(int x;int y)
B. Int f(int x,y)
C. Int f(int x,int y)
D. Int f(x,y:int)
【答案】C
2. 下列程序段运行结果是( )
int fun(int x,int y)
{
int z;
z=x+y;
return z;}
main(){
int a=3,b=5,s;
s=fun(a,b);
printf("%d
",s);}
A.5
B.6
C.7
D.8
【答案】D
3. 在 C 语言中以下不正确的说法是( )。
A. 实参可以是常量、变量、或表达式
B. 形参可以是常量、变量或表达式
C. 实参可以为任意类型
D. 形参应与其对应的实参类型一致
【答案】B
4.以下叙述正确的是( )
A.在C程序中,主函数必须位于程序的最前面
B.在C程序中,一行只能写一条语句
C.C程序的基本结构是程序行
D.C语句是完成某种程序功能的最小单位
【答案】D
5. 在C语言中,函数参数的默认传递方式是什么?( )
A. 值传递
B. 引用传递
C. 地址传递
D. 常量传递
【答案】A
6. 以下说法中正确的是( )
A.C语言程序总是从第一个函数开始
B.在C语言程序中,要调用的函数必须在main()函数中定义
C.C语言程序总是从main()函数开始执行
D.C语言程序中的main()函数必须放在程序的开始部分
【答案】C
7. 在C语言中,以下正确的说法是( )
A.实参和其对应的形参各占用独立的存储单元
B.实参和与其对应的形参共占用一个存储单元
C.只有当实参和其对应的形参同名时才共占用相同的存储单元
D.形参是虚拟的,不占用存储单元
【答案】A
8. 现有如下程序 #include “stdio.h”
int fun(int x)
{printf(“x=%d
”,++x);}
int main()
{fun(12+5);return 0;} 则程序的输出结果是( )。
A. x=12
B. x=13
C. x=17
D. x=18
【答案】D
9. 下列程序的结果是( )
int fun(int x,int y)
{return x+y;}
main()
{int a=3,b=2,c=5,d;
d=fun(fun(a,b),c);
printf("%d
",d);}
A. 8
B.9
C.10
D.11
【答案】C
10. 下列程序的输出结果是( )。
#include<stdio.h>
int f(int a)
{int b=3;b++;return(a+b);}
main()
{int a=2,i;
for(i=0;i<2;i++)
printf(”%d”,f(a))}
A. 66
B. 67
C. 56
D. 77
【答案】A
11. 有如下函数调用语句:fun(rec1,rec2+rec3,(rec4,rec5));在该函数调用语句中,含有的实参个数是( )
A.2
B.3
C.4
D.5
【答案】B
12. 下列程序的结果是___________
#include<stdio.h>
int fun(int x,int y)
{return(x+y);}
main()
{int a=1,b=2,c=3,sum;
sum=fun((a++,b++,a+b),c++);
printf("%d
",sum);}
A.6
B.7
C.8
D.9
【答案】C
13. 下列程序的结果是___________
#include<stdio.h>
int f(int x,int y)
{return((y-x)*x);}
main()
{int a=3,b=4,c=5,d;
d=f(f(a,b),f(a,c));
printf("%d
",d);}
A.9
B.10
C.11
D.12
【答案】A
14. 在 C 程序中,当调用函数时( )。
A. 实参和形参可以共用存储单元
B. 可以由用户指定是否共用存储单元
C. 实参和形参各占一个独立的存储单元
D. 由计算机系统自动确定是否共用存储单元
【答案】C
15. 在调用函数时,如果实参是变量,它与对应的形参之间的数据传递是( )。
A. 传递方式由用户指定
B. 由实参传给形参,再由形参传回实参
C. 地址传递
D. 单向值传递
【答案】D
16. 给定程序如下:
#include <stdio.h>
int Sub(int a, int b) { return(a - b); }
main() {
int x, y, result = 0;
scanf("%d,%d", &x, &y);
result = Sub(x, y);
printf("result = %d
", result);
}
当从键盘输入:6,3 运行结果为( )。
A. result = 3
B. 3
C. result = 0
D. 0
【答案】A
17. 有函数 `int func(int i)` 的实现为:
int func(int i) {
if (i > 1)
return i * func(i - 1);
else
return 1;
}
请问函数调用 `func(5)` 的返回值是( )。
A. 5
B. 15
C. 20
D. 120
【答案】D
18. C 语言规定,除主函数外,程序中各函数之间( )。
A. 既允许直接递归调用也允许间接递归调用
B. 不允许直接递归调用也不允许间接递归调用
C. 允许直接递归调用不允许间接递归调用
D. 不允许直接递归调用允许间接递归调用
【答案】A
19. 在C语言中,关于函数的说法错误的是:( )
A. 函数可以没有返回值
B. 函数可以没有参数
C. 函数可以同时没有返回值和参数
D. 函数的返回值类型必须与返回值的数据类型相同
【答案】D
20. 在C语言中,下面哪个关键字用于声明一个外部函数?( )
A. extern
B. static
C. auto
D. register
【答案】A
二、简答题(本大题共5小题,每题6分,共30分)
1. 简述函数中的递归调用。
【答案】函数直接或间接的调用自身叫做函数的递 归调用。
使用递归法解决问题须满足三个条件:
(1)可以把要解决的问题转化为 一 个新问 题,而这个新问题的解法仍与原来的解法 相同,只是所处理的对象递增或递减。
(2)可以用这个转化过程使问题得到解决。 (3)必须有一个明确的结束递归的条件。
2. 简述函数原型。
【答案】程序中定义了函数后,要调用函数,须在程 序中对函数进行声明,所谓函数声明就是对函数类型、名称等的说明,这种声明被称 为“函数原型”。
3.函数调用的一般形式。
【答案】函数名(实参列表);
说明:①若没有参数,括号为空,括号要保 留。若有多个参数,中间用逗号隔开。
②实参和形参个数相等,类型一致,按顺序 一一对应。
4.函数的实参和形参应是什么类型。
【答案】形参必须是变量,必须指定类型。实参可以是常量、变量和表达式。形参和实参类型一致,个数相同。
5. 请简要说明C语言中函数参数的传递方式。
【答案】C语言中函数参数的传递方式有值传递和地址传递。值传递是将实参的值复制给形参,形参接收到的是实参的副本,修改形参不会影响实参。地址传递是将实参的地址传递给形参,形参接收到的是实参的地址,通过指针访问和修改实参的值。
三、编程题(本大题共1小题,共10分)
1.编写一个函数,将某已知数组的奇数项合成一个新的数组。在主函数中调用该函数,并输出新数组的内容。
【答案】
#include <stdio.h>
#include <stdio.h>
int fun(int a[], int b[]) {
int i, k = 0;
for (i = 0; i < 10; i++) {
if (i % 2 != 0) {
b[k] = a[i];
k++;
}
}
return k;
}
main() {
int a[10], b[10], n, i;
for (i = 0; i < 10; i++)
scanf("%d", &a[i]);
n = fun(a, b);
for (i = 0; i < n; i++)
printf("%d ", b[i]);
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$
编写说明:2026版《软件与应用技术考纲百套卷》依据2026版山东省《软件与应用技术类专业知识考试标准》编写,本套试卷共100份,分为三个部分,第一部分是知识点训练卷,每个知识点2份试卷共76份,第二部分是常考题训练卷,每个知识模块2份训练卷共12份,第三个部分是专业综合训练卷,参考历年软件与应用技术类专业真题试卷,编写了12份。
本试卷是2026版《软件与应用技术考纲百套卷》的第9卷,按知识模块1 C语言程序设计知识,5.函数的两点范围要求编写。其两点要求是:
(1)理解函数的定义。
(2)掌握函数的调用。
2026版山东省《软件与应用技术考纲百套卷》 第9卷
知识模块1 C语言程序设计知识
5.函数 知识点训练卷
一、单项选择题(本大题共20小题,每题3分,共60分)
1. 下列函数定义形式正确的是( )。
A. Int f(int x;int y)
B. Int f(int x,y)
C. Int f(int x,int y)
D. Int f(x,y:int)
2. 下列程序段运行结果是( )
int fun(int x,int y)
{
int z;
z=x+y;
return z;}
main(){
int a=3,b=5,s;
s=fun(a,b);
printf("%d
",s);}
A.5
B.6
C.7
D.8
3. 在 C 语言中以下不正确的说法是( )。
A. 实参可以是常量、变量、或表达式
B. 形参可以是常量、变量或表达式
C. 实参可以为任意类型
D. 形参应与其对应的实参类型一致
4.以下叙述正确的是( )
A.在C程序中,主函数必须位于程序的最前面
B.在C程序中,一行只能写一条语句
C.C程序的基本结构是程序行
D.C语句是完成某种程序功能的最小单位
5. 在C语言中,函数参数的默认传递方式是什么?( )
A. 值传递
B. 引用传递
C. 地址传递
D. 常量传递
6. 以下说法中正确的是( )
A.C语言程序总是从第一个函数开始
B.在C语言程序中,要调用的函数必须在main()函数中定义
C.C语言程序总是从main()函数开始执行
D.C语言程序中的main()函数必须放在程序的开始部分
7. 在C语言中,以下正确的说法是( )
A.实参和其对应的形参各占用独立的存储单元
B.实参和与其对应的形参共占用一个存储单元
C.只有当实参和其对应的形参同名时才共占用相同的存储单元
D.形参是虚拟的,不占用存储单元
8. 现有如下程序 #include “stdio.h”
int fun(int x)
{printf(“x=%d
”,++x);}
int main()
{fun(12+5);return 0;} 则程序的输出结果是( )。
A. x=12
B. x=13
C. x=17
D. x=18
9. 下列程序的结果是( )
int fun(int x,int y)
{return x+y;}
main()
{int a=3,b=2,c=5,d;
d=fun(fun(a,b),c);
printf("%d
",d);}
A. 8
B.9
C.10
D.11
10. 下列程序的输出结果是( )。
#include<stdio.h>
int f(int a)
{int b=3;b++;return(a+b);}
main()
{int a=2,i;
for(i=0;i<2;i++)
printf(”%d”,f(a))}
A. 66
B. 67
C. 56
D. 77
11. 有如下函数调用语句:fun(rec1,rec2+rec3,(rec4,rec5));在该函数调用语句中,含有的实参个数是( )
A.2
B.3
C.4
D.5
12. 下列程序的结果是___________
#include<stdio.h>
int fun(int x,int y)
{return(x+y);}
main()
{int a=1,b=2,c=3,sum;
sum=fun((a++,b++,a+b),c++);
printf("%d
",sum);}
A.6
B.7
C.8
D.9
13. 下列程序的结果是___________
#include<stdio.h>
int f(int x,int y)
{return((y-x)*x);}
main()
{int a=3,b=4,c=5,d;
d=f(f(a,b),f(a,c));
printf("%d
",d);}
A.9
B.10
C.11
D.12
14. 在 C 程序中,当调用函数时( )。
A. 实参和形参可以共用存储单元
B. 可以由用户指定是否共用存储单元
C. 实参和形参各占一个独立的存储单元
D. 由计算机系统自动确定是否共用存储单元
15. 在调用函数时,如果实参是变量,它与对应的形参之间的数据传递是( )。
A. 传递方式由用户指定
B. 由实参传给形参,再由形参传回实参
C. 地址传递
D. 单向值传递
16. 给定程序如下:
#include <stdio.h>
int Sub(int a, int b) { return(a - b); }
main() {
int x, y, result = 0;
scanf("%d,%d", &x, &y);
result = Sub(x, y);
printf("result = %d
", result);
}
当从键盘输入:6,3 运行结果为( )。
A. result = 3
B. 3
C. result = 0
D. 0
17. 有函数 `int func(int i)` 的实现为:
int func(int i) {
if (i > 1)
return i * func(i - 1);
else
return 1;
}
请问函数调用 `func(5)` 的返回值是( )。
A. 5
B. 15
C. 20
D. 120
18. C 语言规定,除主函数外,程序中各函数之间( )。
A. 既允许直接递归调用也允许间接递归调用
B. 不允许直接递归调用也不允许间接递归调用
C. 允许直接递归调用不允许间接递归调用
D. 不允许直接递归调用允许间接递归调用
19. 在C语言中,关于函数的说法错误的是:( )
A. 函数可以没有返回值
B. 函数可以没有参数
C. 函数可以同时没有返回值和参数
D. 函数的返回值类型必须与返回值的数据类型相同
20. 在C语言中,下面哪个关键字用于声明一个外部函数?( )
A. extern
B. static
C. auto
D. register
二、简答题(本大题共5小题,每题6分,共30分)
1. 简述函数中的递归调用。
2. 简述函数原型。
3.函数调用的一般形式。
4.函数的实参和形参应是什么类型。
5. 请简要说明C语言中函数参数的传递方式。
三、编程题(本大题共1小题,共10分)
1.编写一个函数,将某已知数组的奇数项合成一个新的数组。在主函数中调用该函数,并输出新数组的内容。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$