内容正文:
编写说明:2026版《软件与应用技术考纲百套卷》依据2026版山东省《软件与应用技术类专业知识考试标准》编写,本套试卷共100份,分为三个部分,第一部分是知识点训练卷,每个知识点2份试卷共76份,第二部分是常考题训练卷,每个知识模块2份训练卷共12份,第三个部分是专业综合训练卷,参考历年软件与应用技术类专业真题试卷,编写了12份。
本试卷是2026版《软件与应用技术考纲百套卷》的第10卷,按知识模块1 C语言程序设计知识,5.函数的两点范围要求编写。其两点要求是:
(1)理解函数的定义。
(2)掌握函数的调用。
2026版山东省《软件与应用技术考纲百套卷》 第10卷
知识模块1 C语言程序设计知识
5.函数 知识点训练卷
一、单项选择题(本大题共20小题,每题3分,共60分)
1.以下关于函数的说法中正确的是( ).
A.函数内可以定义其他函数
B.函数内可以调用其他函数
C.任何函数包括主函数都可以被调用
D.定义过的函数必须被调用
【答案】B
2.如果一个函数定义时没有指定返回类型,则其返回类型是( ).
A.int
B.float
C.double
D.void
【答案】A
3.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是( )
A.float型
B.long型
C.int型
D.double型
【答案】C
4.C语言规定,程序中各函数之间( )
A.既允许直接递归调用也允许间接递归调用
B.不允许直接递归调用也不允许间接递归调用
C.允许直接递归调用不允许简介递归调用
D.不允许直接递归调用允许间接递归调用
【答案】A
5.下列程序的结果是( )
#include<stdio.h>
long fun(int n)
{long s;
if(n==1||n==2) s=2;
else s=n-fun(n-1);
return s;}
main()
{printf("%ld
",fun(3));}
A.1
B.2
C.3
D.4
【答案】A
6.下列程序的结果是( )
#include<stdio.h>
int fun(int x)
{int p;
if(x==0||x==1) p=3;
else p=x-fun(x-2);
return p;}
main(){printf("%d
",fun(7));}
A.1
B.2
C.3
D.4
【答案】B
7.下面对函数嵌套的叙述中,正确的是( )
A.函数定义可以嵌套,但函数调用不能嵌套
B.函数定义不可以嵌套,但函数调用可以嵌套
C.函数定义和函数调用均不能嵌套
D.函数定义和函数调用均可以嵌套
【答案】B
8.下列程序的结果是( )
#include<stdio.h>
int f(int x)
{int y;
if(x==0||x==1) return 3;
else y=x*x-f(x-2);
return y;}
main(){printf("%d
",fun(3));}
A.6
B.7
C.8
D.9
【答案】A
9.下列程序的输出结果是( )
int fun(int b[],int n)
{int i,s=0;
for(i=0;i<n;i+=2)
s+=b[i];
return s;}
main()
{int a[]={1,2,3,4,5},s;
s=fun(a,5);
printf("%d
",s);}
A.6
B.7
C.8
D.9
【答案】D
10.下列程序的输出结果是( ).
#include<stdio.h>
int fun(int x)
{
printf(“x=%d
”,++x);
}
int main()
{
fun(10);
return 0;
}
A.x=12
B.x=13
C.x=11
D.x=18
【答案】C
11. 数组名作为函数调用的实参,传递给形参的是( )
A.数组的首地址
B.数组的第一个元素的值
C.数组中全部元素的值
D.数组元素的个数
【答案】A
12.若有定义int *p[3];则以下叙述中正确的是( )
A.定义了一个基类型为int的指针变量p,该变量具有三个指针
B.定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针
C.定义了一个名为*p的整型数组,则数组含有三个int类型元素
D.定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素
【答案】B
13. 在 C 程序中可以使用多种形式实现函数的调用,下列选项中不正确的调用形式是( )。
A. 函数形参
B. 函数实参
C. 函数语句
D. 函数表达式
【答案】C
14. 在 C 程序中,当调用函数时( )。
A. 实参和形参可以共用存储单元
B. 可以由用户指定是否共用存储单元
C. 实参和形参各占一个独立的存储单元
D. 由计算机系统自动确定是否共用存储单元
【答案】C
15. 在调用函数时,如果实参是变量,它与对应的形参之间的数据传递是( )。
A. 传递方式由用户指定
B. 由实参传给形参,再由形参传回实参
C. 地址传递
D. 单向值传递
【答案】B
16. 哪个关键字可以用来定义一个函数?( )
A. function
B. def
C. void
D. func
【答案】C
17. 哪个函数返回类型表示该函数不返回任何值?( )
A. int
B. void
C. float
D. char
【答案】B
18. 哪个关键字用于在函数外部声明变量?( )
A. static
B. extern
C. auto
D. register
【答案】B
19. 以下函数调用语句中,含有的实参个数是( )。
Func(expl,(exp2,exp3),(exp4,exp5,exp6));
A. 1
B. 2
C. 3
D. 6
【答案】C
20. 以下程序的输出结果是( )。
int f(int a,int b)
int a,b;
{int c;c=a;if(a>b)c=1;else c=-1;return c;}
main()
{int i=2,p;p=f(i,i+1);printf(“%d”,p);}
A. -1
B. 0
C. 1
D. 2
【答案】A
二、简答题(本大题共5小题,每题6分,共30分)
1. 函数调用的一般形式。
【答案】函数名(实参列表);
2. 请简要解释函数原型的作用。
【答案】函数原型用于告诉编译器函数的名称、返回类型以及参数类型。它有助于编译器检查函数调用是否正确,并确保参数类型匹配。
3. 在C语言中,如何定义一个没有参数也没有返回值的函数?
【答案】在C语言中,可以定义一个void类型的函数,表示该函数没有返回值。函数定义时,参数列表为空,如下所示:
void printHello() {
printf("Hello, World!
");
}
4. 请解释C语言中的局部变量和全局变量的区别。
【答案】局部变量是在函数内部定义的变量,其作用域仅限于函数内部。全局变量是在函数外部定义的变量,其作用域为整个程序。局部变量和全局变量的生命周期和存储位置不同,局部变量在函数调用时创建和销毁,全局变量在程序启动时创建,在程序结束时销毁。
5. 请解释C语言中的递归函数,并给出一个递归函数的例子。
【答案】递归函数是一种调用自身的函数。在递归函数中,函数通过不断调用自身来解决问题,通常需要有一个明确的结束条件以避免无限递归。递归函数可以用于解决分而治之、回溯等问题。
例子:计算斐波那契数列的递归函数
int fibonacci(int n) {
if (n <= 1) {
return n;
}
return fibonacci(n - 1) + fibonacci(n - 2);
}
三、编程题(本大题共1小题,共10分)
1.编写一个函数,将两个两位数的正整数A和B合并形成一个整数C。合并的方式是:将A数的十位数和个位数依次放在C数的个位数和十位数上,B数的十位数和个位数依次放在C数的百位数和千位数上。例如:当A=16,B=35时,C=5361。
【答案】
#include <stdio.h>
int fun(int x, int y) {
int m, n; //m是a的十位,n是a的个位
int p, q; //p是b的十位,q是b的个位
int c;
m = x / 10;
n = x % 10;
p = y / 10;
q = y % 10;
c = m + n * 10 + p * 100 + q * 1000;
return c;
}
main() {
int a, b;
scanf("%d %d", &a, &b);
printf("%d", fun(a, b));
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$
编写说明:2026版《软件与应用技术考纲百套卷》依据2026版山东省《软件与应用技术类专业知识考试标准》编写,本套试卷共100份,分为三个部分,第一部分是知识点训练卷,每个知识点2份试卷共76份,第二部分是常考题训练卷,每个知识模块2份训练卷共12份,第三个部分是专业综合训练卷,参考历年软件与应用技术类专业真题试卷,编写了12份。
本试卷是2026版《软件与应用技术考纲百套卷》的第10卷,按知识模块1 C语言程序设计知识,5.函数的两点范围要求编写。其两点要求是:
(1)理解函数的定义。
(2)掌握函数的调用。
2026版山东省《软件与应用技术考纲百套卷》 第10卷
知识模块1 C语言程序设计知识
5.函数 知识点训练卷
一、单项选择题(本大题共20小题,每题3分,共60分)
1.以下关于函数的说法中正确的是( ).
A.函数内可以定义其他函数
B.函数内可以调用其他函数
C.任何函数包括主函数都可以被调用
D.定义过的函数必须被调用
2.如果一个函数定义时没有指定返回类型,则其返回类型是( ).
A.int
B.float
C.double
D.void
3.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是( )
A.float型
B.long型
C.int型
D.double型
4.C语言规定,程序中各函数之间( )
A.既允许直接递归调用也允许间接递归调用
B.不允许直接递归调用也不允许间接递归调用
C.允许直接递归调用不允许简介递归调用
D.不允许直接递归调用允许间接递归调用
5.下列程序的结果是( )
#include<stdio.h>
long fun(int n)
{long s;
if(n==1||n==2) s=2;
else s=n-fun(n-1);
return s;}
main()
{printf("%ld
",fun(3));}
A.1
B.2
C.3
D.4
6.下列程序的结果是( )
#include<stdio.h>
int fun(int x)
{int p;
if(x==0||x==1) p=3;
else p=x-fun(x-2);
return p;}
main(){printf("%d
",fun(7));}
A.1
B.2
C.3
D.4
7.下面对函数嵌套的叙述中,正确的是( )
A.函数定义可以嵌套,但函数调用不能嵌套
B.函数定义不可以嵌套,但函数调用可以嵌套
C.函数定义和函数调用均不能嵌套
D.函数定义和函数调用均可以嵌套
8.下列程序的结果是( )
#include<stdio.h>
int f(int x)
{int y;
if(x==0||x==1) return 3;
else y=x*x-f(x-2);
return y;}
main(){printf("%d
",fun(3));}
A.6
B.7
C.8
D.9
9.下列程序的输出结果是( )
int fun(int b[],int n)
{int i,s=0;
for(i=0;i<n;i+=2)
s+=b[i];
return s;}
main()
{int a[]={1,2,3,4,5},s;
s=fun(a,5);
printf("%d
",s);}
A.6
B.7
C.8
D.9
10.下列程序的输出结果是( ).
#include<stdio.h>
int fun(int x)
{
printf(“x=%d
”,++x);
}
int main()
{
fun(10);
return 0;
}
A.x=12
B.x=13
C.x=11
D.x=18
11. 数组名作为函数调用的实参,传递给形参的是( )
A.数组的首地址
B.数组的第一个元素的值
C.数组中全部元素的值
D.数组元素的个数
12.若有定义int *p[3];则以下叙述中正确的是( )
A.定义了一个基类型为int的指针变量p,该变量具有三个指针
B.定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针
C.定义了一个名为*p的整型数组,则数组含有三个int类型元素
D.定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素
13. 在 C 程序中可以使用多种形式实现函数的调用,下列选项中不正确的调用形式是( )。
A. 函数形参
B. 函数实参
C. 函数语句
D. 函数表达式
14. 在 C 程序中,当调用函数时( )。
A. 实参和形参可以共用存储单元
B. 可以由用户指定是否共用存储单元
C. 实参和形参各占一个独立的存储单元
D. 由计算机系统自动确定是否共用存储单元
15. 在调用函数时,如果实参是变量,它与对应的形参之间的数据传递是( )。
A. 传递方式由用户指定
B. 由实参传给形参,再由形参传回实参
C. 地址传递
D. 单向值传递
16. 哪个关键字可以用来定义一个函数?( )
A. function
B. def
C. void
D. func
17. 哪个函数返回类型表示该函数不返回任何值?( )
A. int
B. void
C. float
D. char
18. 哪个关键字用于在函数外部声明变量?( )
A. static
B. extern
C. auto
D. register
19. 以下函数调用语句中,含有的实参个数是( )。
Func(expl,(exp2,exp3),(exp4,exp5,exp6));
A. 1
B. 2
C. 3
D. 6
20. 以下程序的输出结果是( )。
int f(int a,int b)
int a,b;
{int c;c=a;if(a>b)c=1;else c=-1;return c;}
main()
{int i=2,p;p=f(i,i+1);printf(“%d”,p);}
A. -1
B. 0
C. 1
D. 2
二、简答题(本大题共5小题,每题6分,共30分)
1. 函数调用的一般形式。
2. 请简要解释函数原型的作用。
3. 在C语言中,如何定义一个没有参数也没有返回值的函数?
4. 请解释C语言中的局部变量和全局变量的区别。
5. 请解释C语言中的递归函数,并给出一个递归函数的例子。
三、编程题(本大题共1小题,共10分)
1.编写一个函数,将两个两位数的正整数A和B合并形成一个整数C。合并的方式是:将A数的十位数和个位数依次放在C数的个位数和十位数上,B数的十位数和个位数依次放在C数的百位数和千位数上。例如:当A=16,B=35时,C=5361。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$