内容正文:
编写说明:山东省春季高考《软件与应用技术类考纲百套卷》,依据山东省《软件与应用技术类专业知识考试标准》编写。每门课程均分三层训练:基础层(具象化支架)拆解考点为微目标,紧扣考纲 “掌握”“理解” 要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷。
本试卷是第11卷,按《C语言程序设计》范围和要求编写。具体内容为:
理解函数的定义。
山东省《软件与应用技术类考纲百套卷》 第11卷
《C语言程序设计》
函数的定义 考点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、选择题(本大题共20小题,每题3分,共60分)
1.以下关于 C 语言函数的描述中,正确的是( )
A. 函数可以嵌套定义
B. 函数必须有返回值
C. 函数是 C 语言程序的基本组成单位
D. 一个程序只能有一个函数
【答案】C
【解析】C 语言程序由函数组成,函数是基本组成单位。A 错误,函数不能嵌套定义;B 错误,void 函数可以没有返回值;D 错误,一个程序可以有多个函数。
2.以下函数定义语句中,正确的是( )
A. int fun (int a,b) { return a+b; }
B. int fun (int a; int b) { return a+b; }
C. int fun (int a, int b) { return a+b; }
D. int fun (a,b) { return a+b; }
【答案】C
【解析】函数参数列表中每个参数都必须指定类型,参数之间用逗号分隔。A、B、D 参数定义格式错误。
3.以下函数头中,正确的是( )
A. void fun ()
B. void fun (void)
C. fun ()
D. int fun (void a)
【答案】B
【解析】无参数函数应明确写为void fun(void),表示不接受任何参数。A 在 C89 中表示参数不确定;C 缺少返回值类型;D 参数类型错误。
4.若有函数定义int fun(int x) { return x*x; },则该函数的返回值类型是( )
A. void
B. int
C. float
D. 不确定
【答案】B
【解析】函数头中第一个关键字指定返回值类型,该函数返回值类型为 int。
5.以下关于函数返回值的描述中,正确的是( )
A. 函数可以有多个 return 语句
B. 函数必须有 return 语句
C. return 语句必须返回一个值
D. 函数返回值类型可以省略
【答案】A
【解析】函数可以有多个 return 语句,执行到哪个 return 就返回哪个值。B 错误,void 函数可以没有 return 语句;C 错误,void 函数的 return 语句不能返回值;D 错误,返回值类型不能省略。
6.以下函数定义中,错误的是( )
A. void fun () { printf ("hello"); }
B. int fun () { return 10; }
C. float fun (int a) { return a*1.5; }
D. fun (int a) { return a; }
【答案】D
【解析】函数定义必须指定返回值类型,D 选项省略了返回值类型,错误。
7.若有函数定义void fun() { printf("hello"); },则调用该函数的正确语句是( )
A. fun;
B. fun ();
C. int a=fun ();
D. fun (1);
【答案】B
【解析】无参数函数调用时必须加空括号。A 缺少括号;C 错误,void 函数没有返回值;D 错误,函数不需要参数。
8.以下关于函数声明的描述中,正确的是( )
A. 函数声明必须在函数调用之前
B. 函数声明可以省略参数名
C. 函数声明必须包含函数体
D. 函数声明与函数定义可以不一致
【答案】B
【解析】函数声明可以省略参数名,只保留参数类型。A 错误,若函数定义在调用之前,可以不声明;C 错误,函数声明没有函数体;D 错误,声明与定义必须一致。
9.以下函数声明语句中,正确的是( )
A. int fun (int a, int b);
B. int fun (int a, b);
C. int fun (a, b);
D. fun (int a, int b);
【答案】A
【解析】函数声明必须指定返回值类型和每个参数的类型,参数名可以省略。B、C、D 格式错误。
10.以下关于局部变量的描述中,正确的是( )
A. 局部变量在函数调用时分配内存,调用结束后释放
B. 局部变量可以在函数外部访问
C. 局部变量的作用域是整个程序
D. 局部变量会自动初始化为 0
【答案】A
【解析】局部变量定义在函数内部,作用域仅限于函数内部,调用时分配内存,结束后释放,未初始化时值为随机值。
11.以下程序段的输出结果是( )
int fun(int a) { return a+1; }
int main() {
int x=5;
printf("%d", fun(x));
return 0;
}
A. 5
B. 6
C. 7
D. 编译错误
【答案】B
【解析】函数 fun 接收参数 5,返回 5+1=6,主函数输出 6。
12.以下关于函数参数的描述中,正确的是( )
A. 形参是函数定义时的参数,实参是函数调用时的参数
B. 形参和实参必须同名
C. 实参不能是表达式
D. 形参可以是常量
【答案】A
【解析】形参是函数定义时的占位符,实参是调用时传递的具体值。B 错误,形参和实参可以不同名;C 错误,实参可以是常量、变量或表达式;D 错误,形参必须是变量。
13.以下函数定义中,返回值类型为 void 的是( )
A. int fun () { return 0;}
B. void fun () { return; }
C. float fun () { return 1.5; }
D. char fun () { return 'a'; }
【答案】B
【解析】void 函数没有返回值,return 语句后面不能跟值。
14.若有函数定义int fun(int x, int y) { return x>y?x:y; },则调用fun(3,5)的返回值是( )
A. 3
B. 5
C. 8
D. 2
【答案】B
【解析】函数功能是返回两个数中的较大值,5>3,返回 5。
15.以下关于全局变量的描述中,正确的是( )
A. 全局变量定义在函数外部,作用域是整个程序
B. 全局变量会自动初始化为随机值
C. 全局变量不能与局部变量同名
D. 全局变量在函数调用时分配内存
【答案】A
【解析】全局变量定义在所有函数外部,作用域从定义处到程序结束,自动初始化为 0。B 错误,自动初始化为 0;C 错误,可以同名,局部变量优先;D 错误,程序运行时就分配内存。
16.以下程序段的输出结果是( )
void fun() { int a=10; printf("%d", a); }
int main() {
int a=5;
fun();
printf("%d", a);
return 0;
}
A. 105
B. 510
C. 1010
D. 55
【答案】A
【解析】fun 函数中的 a 是局部变量,值为 10;主函数中的 a 是另一个局部变量,值为 5。输出顺序是先 10 后 5,结果为 105。
17.以下函数定义中,正确的是( )
A. int fun (int a) { int b=10; return a+b; }
B. int fun (int a) { return a; int b=10; }
C. int fun (int a) { if (a>0) return 1; }
D. int fun (int a) { return; }
【答案】A
【解析】B 错误,return 语句后面的语句不会执行;C 错误,当 a<=0 时没有返回值;D 错误,int 函数必须返回一个 int 值。
18.若有函数声明int fun(int);,则以下调用语句中,错误的是( )
A. fun (10);
B. int a=fun (5);
C. fun (3.5);
D. fun (fun (2));
【答案】C
【解析】函数参数类型为 int,传递 3.5 会自动转换为 int(3),但严格来说类型不匹配,春考中视为错误。A、B、D 调用正确。
19.以下关于函数的描述中,错误的是( )
A. 一个 C 程序必须有且只有一个 main 函数
B. main 函数是程序的入口点
C. 函数可以调用其他函数
D. main 函数可以被其他函数调用
【答案】D
【解析】main 函数是程序的入口点,由系统调用,不能被其他函数调用。
20.以下程序段的输出结果是( )
int fun(int a) {
a++;
return a;
}
int main() {
int x=5;
fun(x);
printf("%d", x);
return 0;
}
A. 5
B. 6
C. 7
D. 不确定
【答案】A
【解析】C 语言参数传递是值传递,形参 a 的改变不会影响实参 x,因此 x 的值仍为 5。
二、简答题(本大题共2小题,每题10分,共20分)
1.阅读以下 C 语言程序,程序运行后的结果为______
#include <stdio.h>
int add(int a, int b) {
return a+b;
}
int main() {
int x=3, y=5, z;
z=add(x, y);
printf("x+y=%d
", z);
printf("add(10,20)=%d
", add(10,20));
return 0;
}
【答案】
x+y=8
add(10,20)=30
2.阅读以下 C 语言程序,程序运行后的结果为______
#include <stdio.h>
int a=10;
void fun() {
int a=20;
printf("fun中的a=%d
", a);
}
int main() {
printf("main中的a=%d
", a);
fun();
printf("main中的a=%d
", a);
return 0;
}
【答案】
main中的a=10
fun中的a=20
main中的a=10
三、案例分析题(本大题共1小题,每题10分,共10分)
1.以下程序的功能是:定义一个函数计算两个整数的乘积,主函数输入两个整数,调用该函数输出结果。请在程序的下划线处填入正确的内容,使程序完整并能正确运行。
#include <stdio.h>
____1____;
int main() {
int x, y, result;
printf("请输入两个整数:");
scanf("%d%d", &x, &y);
result=____2____;
printf("乘积为:%d
", result);
return 0;
}
int multiply(int a, int b) {
____3____;
}
【答案】
1.int multiply(int a, int b)(或int multiply(int, int))
2.multiply(x, y)
3.return a*b
四、综合应用题(本大题共1小题,每题10分,共10分)
1.编写一个 C 语言程序,实现以下功能:定义一个函数isEven,在主函数中输入一个整数判断是否为偶数,若是返回 1,否则返回 0。
【答案】
#include <stdio.h>
int isEven(int n) {
if(n%2==0)
return 1;
else
return 0;
}
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
if(isEven(num))
printf("%d是偶数
", num);
else
printf("%d是奇数
", num);
return 0;
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
编写说明:山东省春季高考《软件与应用技术类考纲百套卷》,依据山东省《软件与应用技术类专业知识考试标准》编写。每门课程均分三层训练:基础层(具象化支架)拆解考点为微目标,紧扣考纲 “掌握”“理解” 要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷。
本试卷是第11卷,按《C语言程序设计》范围和要求编写。具体内容为:
理解函数的定义。
山东省《软件与应用技术类考纲百套卷》 第11卷
《C语言程序设计》
函数的定义 考点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、选择题(本大题共20小题,每题3分,共60分)
1.以下关于 C 语言函数的描述中,正确的是( )
A. 函数可以嵌套定义
B. 函数必须有返回值
C. 函数是 C 语言程序的基本组成单位
D. 一个程序只能有一个函数
2.以下函数定义语句中,正确的是( )
A. int fun (int a,b) { return a+b; }
B. int fun (int a; int b) { return a+b; }
C. int fun (int a, int b) { return a+b; }
D. int fun (a,b) { return a+b; }
3.以下函数头中,正确的是( )
A. void fun ()
B. void fun (void)
C. fun ()
D. int fun (void a)
4.若有函数定义int fun(int x) { return x*x; },则该函数的返回值类型是( )
A. void
B. int
C. float
D. 不确定
5.以下关于函数返回值的描述中,正确的是( )
A. 函数可以有多个 return 语句
B. 函数必须有 return 语句
C. return 语句必须返回一个值
D. 函数返回值类型可以省略
6.以下函数定义中,错误的是( )
A. void fun () { printf ("hello"); }
B. int fun () { return 10; }
C. float fun (int a) { return a*1.5; }
D. fun (int a) { return a; }
7.若有函数定义void fun() { printf("hello"); },则调用该函数的正确语句是( )
A. fun;
B. fun ();
C. int a=fun ();
D. fun (1);
8.以下关于函数声明的描述中,正确的是( )
A. 函数声明必须在函数调用之前
B. 函数声明可以省略参数名
C. 函数声明必须包含函数体
D. 函数声明与函数定义可以不一致
9.以下函数声明语句中,正确的是( )
A. int fun (int a, int b);
B. int fun (int a, b);
C. int fun (a, b);
D. fun (int a, int b);
10.以下关于局部变量的描述中,正确的是( )
A. 局部变量在函数调用时分配内存,调用结束后释放
B. 局部变量可以在函数外部访问
C. 局部变量的作用域是整个程序
D. 局部变量会自动初始化为 0
11.以下程序段的输出结果是( )
int fun(int a) { return a+1; }
int main() {
int x=5;
printf("%d", fun(x));
return 0;
}
A. 5
B. 6
C. 7
D. 编译错误
12.以下关于函数参数的描述中,正确的是( )
A. 形参是函数定义时的参数,实参是函数调用时的参数
B. 形参和实参必须同名
C. 实参不能是表达式
D. 形参可以是常量
13.以下函数定义中,返回值类型为 void 的是( )
A. int fun () { return 0;}
B. void fun () { return; }
C. float fun () { return 1.5; }
D. char fun () { return 'a'; }
14.若有函数定义int fun(int x, int y) { return x>y?x:y; },则调用fun(3,5)的返回值是( )
A. 3
B. 5
C. 8
D. 2
15.以下关于全局变量的描述中,正确的是( )
A. 全局变量定义在函数外部,作用域是整个程序
B. 全局变量会自动初始化为随机值
C. 全局变量不能与局部变量同名
D. 全局变量在函数调用时分配内存
16.以下程序段的输出结果是( )
void fun() { int a=10; printf("%d", a); }
int main() {
int a=5;
fun();
printf("%d", a);
return 0;
}
A. 105
B. 510
C. 1010
D. 55
17.以下函数定义中,正确的是( )
A. int fun (int a) { int b=10; return a+b; }
B. int fun (int a) { return a; int b=10; }
C. int fun (int a) { if (a>0) return 1; }
D. int fun (int a) { return; }
18.若有函数声明int fun(int);,则以下调用语句中,错误的是( )
A. fun (10);
B. int a=fun (5);
C. fun (3.5);
D. fun (fun (2));
19.以下关于函数的描述中,错误的是( )
A. 一个 C 程序必须有且只有一个 main 函数
B. main 函数是程序的入口点
C. 函数可以调用其他函数
D. main 函数可以被其他函数调用
20.以下程序段的输出结果是( )
int fun(int a) {
a++;
return a;
}
int main() {
int x=5;
fun(x);
printf("%d", x);
return 0;
}
A. 5
B. 6
C. 7
D. 不确定
二、简答题(本大题共2小题,每题10分,共20分)
1.阅读以下 C 语言程序,程序运行后的结果为______
#include <stdio.h>
int add(int a, int b) {
return a+b;
}
int main() {
int x=3, y=5, z;
z=add(x, y);
printf("x+y=%d
", z);
printf("add(10,20)=%d
", add(10,20));
return 0;
}
2.阅读以下 C 语言程序,程序运行后的结果为______
#include <stdio.h>
int a=10;
void fun() {
int a=20;
printf("fun中的a=%d
", a);
}
int main() {
printf("main中的a=%d
", a);
fun();
printf("main中的a=%d
", a);
return 0;
}
三、案例分析题(本大题共1小题,每题10分,共10分)
1.以下程序的功能是:定义一个函数计算两个整数的乘积,主函数输入两个整数,调用该函数输出结果。请在程序的下划线处填入正确的内容,使程序完整并能正确运行。
#include <stdio.h>
____1____;
int main() {
int x, y, result;
printf("请输入两个整数:");
scanf("%d%d", &x, &y);
result=____2____;
printf("乘积为:%d
", result);
return 0;
}
int multiply(int a, int b) {
____3____;
}
四、综合应用题(本大题共1小题,每题10分,共10分)
1.编写一个 C 语言程序,实现以下功能:定义一个函数isEven,在主函数中输入一个整数判断是否为偶数,若是返回 1,否则返回 0。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$