第12卷 函数 《C语言程序设计知识》山东省(春季高考)《软件与应用技术类考纲百套卷》

2026-08-13
| 2份
| 17页
| 5人阅读
| 0人下载

资源信息

学段 中职
学科 职教专业课
课程 C语言程序设计
教材版本 -
年级 -
章节 -
类型 题集-专项训练
知识点 函数
使用场景 中职复习
学年 2027-2028
地区(省份) 山东省
地区(市) -
地区(区县) -
文件格式 ZIP
文件大小 179 KB
发布时间 2026-08-13
更新时间 2026-08-13
作者 xy06893
品牌系列 学易金卷·考纲百套卷
审核时间 2026-08-13
下载链接 https://m.zxxk.com/soft/59181727.html
价格 3.00储值(1储值=1元)
来源 学科网

内容正文:

编写说明:2027版山东省春季高考统一考试软件与应用技术类《考纲百套卷》,依据《软件与应用技术类专业知识考试标准》编写。本专辑涵盖三个部分,第一部分为知识训练卷,第二部分为专题训练卷,第三部分为课程综合卷。本专辑共85份试卷,其中知识训练卷48份、专题训练卷25份、课程综合卷12份。 本试卷是第12卷,为知识训练卷,按《C语言程序设计知识》中“函数”范围和要求编写。具体内容为:(1)理解函数的定义。(2)掌握函数的调用。 山东省春季高考统一考试 软件与应用技术类《考纲百套卷》 第12卷 C语言程序设计知识——函数 (考试时间:45分钟 满分:100分) 一、选择题(共20题,每题3分,共60分) 1.下列语句中,正确的函数定义是(  ) A.define add(int a, intb) B.function int add(a, b) { return a + b; } C.int add { return 1; } D.int add(int a, int b) { return a + b; } 2.下列函数定义中,表示函数没有返回值的是(  ) A.return show(void) B.void show(void) C.int show(void) D.char show(void) 3.调用函数add(2, 3)时,传给函数的实际参数个数是(  ) A.0个 B.3个 C.2个 D.1个 4.下列函数调用语句正确的是(  ) A.sum = add(2, 3); B.call add(2, 3); C.sum add(2, 3); D.add int(2, 3); 5.执行下列程序后,输出结果是( ) int add(int a, int b) { return a + b; } int main(void) { printf("%d", add(3, 4)); return 0; } A.12 B.3 C.7 D.4 6.若函数定义为int f(int x),调用f(5)时,x属于(  ) A.返回值 B.实际参数 C.全局变量 D.形式参数 7.执行下列程序后,x的值是( ) void change(int x) { x = 10; } int main(void) { int x = 3; change(x); printf("%d", x); return 0; } A.3 B.0 C.10 D.程序错误 8.下列关于return语句的说法正确的是(  ) A.void函数必须返回整数 B.return可以结束函数并返回结果 C.return只能出现在main函数中 D.return不能带表达式 9.执行下列程序后,输出结果是( ) int f(int x) { if (x > 0) return x * 2; return -x; } int main(void) { printf("%d %d", f(3), f(-4)); return 0; } A.6 -4 B.3 -4 C.6 4 D.4 6 10.函数声明的主要作用是(  ) A.让函数自动执行 B.提前告知编译器函数的返回类型和参数形式 C.结束程序运行 D.定义一个数组 11.执行下列程序后,输出结果是( ) int square(int x) { return x * x; } int main(void) { int a = 2; printf("%d", square(a + 1)); return 0; } A.4 B.5 C.6 D.9 12.关于局部变量的说法正确的是(  ) A.局部变量只在定义它的函数或代码块内有效 B.局部变量不能赋值 C.局部变量必须使用static D.局部变量在所有函数中都可直接使用 13.执行下列程序后,输出结果是( ) int f(int x) { return x + 1; } int main(void) { printf("%d", f(f(2))); return 0; } A.3 B.4 C.2 D.5 14.下列函数调用与函数定义匹配的是(  ) A.char f(char c);调用f(1,2) B.void f(void);调用f(2) C.int f(int x);调用f(2,3) D.int f(int x, int y);调用f(2,3) 15.执行下列程序后,输出结果是( ) int fact(int n) { if (n <= 1) return 1; return n * fact(n - 1); } int main(void) { printf("%d", fact(4)); return 0; } A.6 B.12 C.24 D.4 16.若函数定义为void print(void),下列调用正确的是(  ) A.print( ); B.print; C.void print( ); D.call(print); 17.执行下列程序后,输出结果是( ) int g(int a, int b) { return a > b ? a : b; } int main(void) { printf("%d", g(g(2, 5), 4)); return 0; } A.4 B.2 C.9 D.5 18.下列关于函数返回值的说法正确的是(  ) A.main函数不能使用return B.所有函数都必须返回int C.有返回值的函数应返回类型匹配的结果 D.返回值类型必须与函数名相同 19.执行下列程序后,输出结果是( ) int add(int x) { int y = 2; return x + y; } int main(void) { int y = 5; printf("%d", add(y)); return 0; } A.7 B.5 C.10 D.2 20.若函数声明为double average(int a, int b);,下列调用符合参数个数的是(  ) A.average(2, 4, 6) B.average(2, 4) C.average( ) D.average(2) 二、简答题(共2题,每题10分,共20分) 1.阅读程序,写出程序的输出结果。 #include <stdio.h> int calc(int x) { if (x % 2 == 0) return x / 2; return x * 2 + 1; } int main(void) { printf("%d %d %d ", calc(6), calc(5), calc(calc(4))); return 0; }   2.阅读程序,写出程序的输出结果。 #include <stdio.h> int f(int x) { int y = 3; x = x + y; return x; } int main(void) { int x = 4; int y = f(x); printf("%d %d ", x, y); return 0; }   三、案例分析题(共1题,共10分) 1.下面程序用于计算两个整数的较大值,但程序中有一处错误,请指出并改正。 #include <stdio.h> int max(int a, int b) { if (a > b) return a; return b; } int main(void) { int x = 8, y = 5; printf("%d ", max(x)); return 0; }   四、综合应用题(共1题,共10分) 1.编写程序:定义函数isPrime,判断一个正整数是否为素数;在main函数中输入一个正整数n,调用该函数,若n为素数输出1,否则输出0。     原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $ 编写说明:2027版山东省春季高考统一考试软件与应用技术类《考纲百套卷》,依据《软件与应用技术类专业知识考试标准》编写。本专辑涵盖三个部分,第一部分为知识训练卷,第二部分为专题训练卷,第三部分为课程综合卷。本专辑共85份试卷,其中知识训练卷48份、专题训练卷25份、课程综合卷12份。 本试卷是第12卷,为知识训练卷,按《C语言程序设计知识》中“函数”范围和要求编写。具体内容为:(1)理解函数的定义。(2)掌握函数的调用。 山东省春季高考统一考试 软件与应用技术类《考纲百套卷》 第12卷 C语言程序设计知识——函数 (考试时间:45分钟 满分:100分) 一、选择题(共20题,每题3分,共60分) 1.下列语句中,正确的函数定义是(  ) A.define add(int a, intb) B.function int add(a, b) { return a + b; } C.int add { return 1; } D.int add(int a, int b) { return a + b; } 【答案】D 【解析】C 语言函数定义格式为返回值类型 函数名 (形参列表){函数体}。A 使用 define 用于宏定义;B 中 function 不属于 C 语言关键字;C 缺少函数参数括号;只有 D 符合语法规则。 2.下列函数定义中,表示函数没有返回值的是(  ) A.return show(void) B.void show(void) C.int show(void) D.char show(void) 【答案】B 【解析】void作为返回值类型表示函数不返回一个具体数值,void show(void)表示无返回值且无参数。 3.调用函数add(2, 3)时,传给函数的实际参数个数是(  ) A.0个 B.3个 C.2个 D.1个 【答案】C 【解析】括号中有2和3两个实参,因此实际参数个数为2。 4.下列函数调用语句正确的是(  ) A.sum = add(2, 3); B.call add(2, 3); C.sum add(2, 3); D.add int(2, 3); 【答案】A 【解析】函数调用写成函数名(实参表),返回值可以赋给sum,因此A项正确。 5.执行下列程序后,输出结果是( ) int add(int a, int b) { return a + b; } int main(void) { printf("%d", add(3, 4)); return 0; } A.12 B.3 C.7 D.4 【答案】C 【解析】调用add(3,4)时a=3、b=4,函数返回a+b=7,printf输出7。 6.若函数定义为int f(int x),调用f(5)时,x属于(  ) A.返回值 B.实际参数 C.全局变量 D.形式参数 【答案】D 【解析】函数定义中的x是形式参数,调用时传入的5是实际参数。 7.执行下列程序后,x的值是( ) void change(int x) { x = 10; } int main(void) { int x = 3; change(x); printf("%d", x); return 0; } A.3 B.0 C.10 D.程序错误 【答案】A 【解析】普通整型参数传递的是x的值,函数内形参x的修改不会改变main中的x,所以输出3。 8.下列关于return语句的说法正确的是(  ) A.void函数必须返回整数 B.return可以结束函数并返回结果 C.return只能出现在main函数中 D.return不能带表达式 【答案】B 【解析】return可以结束当前函数;有返回值函数可通过return表达式返回结果,void函数通常使用return;或直接结束。 9.执行下列程序后,输出结果是( ) int f(int x) { if (x > 0) return x * 2; return -x; } int main(void) { printf("%d %d", f(3), f(-4)); return 0; } A.6 -4 B.3 -4 C.6 4 D.4 6 【答案】C 【解析】f(3)满足x>0,返回6;f(-4)不满足条件,执行return -x,返回4,所以输出6 4。 10.函数声明的主要作用是(  ) A.让函数自动执行 B.提前告知编译器函数的返回类型和参数形式 C.结束程序运行 D.定义一个数组 【答案】B 【解析】函数声明向编译器说明函数名、返回值类型和参数类型,使函数可以在定义前被调用。 11.执行下列程序后,输出结果是( ) int square(int x) { return x * x; } int main(void) { int a = 2; printf("%d", square(a + 1)); return 0; } A.4 B.5 C.6 D.9 【答案】D 【解析】调用前实参表达式a+1的值为3,square(3)返回3*3=9。 12.关于局部变量的说法正确的是(  ) A.局部变量只在定义它的函数或代码块内有效 B.局部变量不能赋值 C.局部变量必须使用static D.局部变量在所有函数中都可直接使用 【答案】A 【解析】局部变量的作用域限于定义它的函数或代码块,其他函数不能直接使用同名局部变量。 13.执行下列程序后,输出结果是( ) int f(int x) { return x + 1; } int main(void) { printf("%d", f(f(2))); return 0; } A.3 B.4 C.2 D.5 【答案】B 【解析】先计算内层f(2)=3,再计算外层f(3)=4,所以输出4。 14.下列函数调用与函数定义匹配的是(  ) A.char f(char c);调用f(1,2) B.void f(void);调用f(2) C.int f(int x);调用f(2,3) D.int f(int x, int y);调用f(2,3) 【答案】D 【解析】函数声明int f(int x,int y)需要两个整型实参,调用f(2,3)与其匹配。 15.执行下列程序后,输出结果是( ) int fact(int n) { if (n <= 1) return 1; return n * fact(n - 1); } int main(void) { printf("%d", fact(4)); return 0; } A.6 B.12 C.24 D.4 【答案】C 【解析】递归调用得到fact(4)=4*3*2*1=24,满足n<=1时返回1。 16.若函数定义为void print(void),下列调用正确的是(  ) A.print( ); B.print; C.void print( ); D.call(print); 【答案】A 【解析】无参数函数调用仍需写函数名和一对圆括号,正确形式为print( )。 17.执行下列程序后,输出结果是( ) int g(int a, int b) { return a > b ? a : b; } int main(void) { printf("%d", g(g(2, 5), 4)); return 0; } A.4 B.2 C.9 D.5 【答案】D 【解析】内层g(2,5)返回5,外层调用g(5,4)仍返回5,因此输出5。 18.下列关于函数返回值的说法正确的是(  ) A.main函数不能使用return B.所有函数都必须返回int C.有返回值的函数应返回类型匹配的结果 D.返回值类型必须与函数名相同 【答案】C 【解析】函数返回的表达式应与函数声明或定义中的返回值类型相匹配;不同函数可以有不同返回类型。 19.执行下列程序后,输出结果是( ) int add(int x) { int y = 2; return x + y; } int main(void) { int y = 5; printf("%d", add(y)); return 0; } A.7 B.5 C.10 D.2 【答案】A 【解析】main中的y=5作为实参传给x,函数内部局部y=2,返回5+2=7。两个y属于不同作用域。 20.若函数声明为double average(int a, int b);,下列调用符合参数个数的是(  ) A.average(2, 4, 6) B.average(2, 4) C.average( ) D.average(2) 【答案】B 【解析】函数声明要求两个int参数,average(2,4)参数个数和类型都匹配。 二、简答题(共2题,每题10分,共20分) 1.阅读程序,写出程序的输出结果。 #include <stdio.h> int calc(int x) { if (x % 2 == 0) return x / 2; return x * 2 + 1; } int main(void) { printf("%d %d %d ", calc(6), calc(5), calc(calc(4))); return 0; } 【答案】输出:3 11 1 【解析】calc(6)=3,calc(5)=5*2+1=11;内层calc(4)=2,外层再调用calc(2)=1,故输出为3 11 1。 2.阅读程序,写出程序的输出结果。 #include <stdio.h> int f(int x) { int y = 3; x = x + y; return x; } int main(void) { int x = 4; int y = f(x); printf("%d %d ", x, y); return 0; } 【答案】输出:4 7 【解析】调用f时x按值传递,函数内形参x变为7但不改变main中的x;返回值y为7,因此输出4 7。 三、案例分析题(共1题,共10分) 1.下面程序用于计算两个整数的较大值,但程序中有一处错误,请指出并改正。 #include <stdio.h> int max(int a, int b) { if (a > b) return a; return b; } int main(void) { int x = 8, y = 5; printf("%d ", max(x)); return 0; } 【答案】将max(x)改为max(x, y)。 【解析】函数max定义了两个int形参a和b,调用时必须提供两个实参。原程序只传入x,参数个数不匹配,改为max(x,y)后才能正确调用并返回较大值。 四、综合应用题(共1题,共10分) 1.编写程序:定义函数isPrime,判断一个正整数是否为素数;在main函数中输入一个正整数n,调用该函数,若n为素数输出1,否则输出0。 【答案】 #include <stdio.h> int isPrime(int n) { int i; if (n < 2) return 0; for (i = 2; i * i <= n; i++) { if (n % i == 0) return 0; } return 1; } int main(void) { int n; scanf("%d", &n); printf("%d ", isPrime(n)); return 0; } 【解析】isPrime函数先排除小于2的数,再从2试除到i*i<=n;发现能整除时返回0,循环结束仍未找到因子则返回1,main调用函数并输出返回值。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

第12卷 函数 《C语言程序设计知识》山东省(春季高考)《软件与应用技术类考纲百套卷》
1
第12卷 函数 《C语言程序设计知识》山东省(春季高考)《软件与应用技术类考纲百套卷》
2
第12卷 函数 《C语言程序设计知识》山东省(春季高考)《软件与应用技术类考纲百套卷》
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。