内容正文:
编写说明:江苏省中职职教高考专业综合理论考试-计算机类《C语言程序设计》考点双析卷专辑,依据省教育厅《江苏省中职职教高考专业综合理论考试大纲》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷,助力师生构建“讲练结合”的学习闭环,特别适用于江苏省中职职教高考专业综合理论考试第一轮高考复习教学。
本专辑第37卷精准对标江苏省考纲,考试内容及范围【C语言程序设计】:
(九)函数:掌握函数的定义方法;
江苏省中职职教高考专业综合理论考试 计算机类
《C语言程序设计》考点双析卷 第37卷
函数定义 老师讲解卷
时间:45分钟 总分:100分
班级_______ 姓名_______ 学号_______ 成绩_______
一、单项选择题(本大题共20小题,每题3分,共60分)
1.在C语言中,以下正确的说法是( )
A.实参和其对应的形参各占用独立的存储单元
B.实参和与其对应的形参共占用一个存储单元
C.只有当实参和其对应的形参同名时才共占用相同的存储单元
D.形参是虚拟的,不占用存储单元
2.下列对函数:void display(int x,double y){ ……}的声明中,正确的一项是( )
A.void display(int,double); B.void display(int,int);
C.void display(double y,int x); D.void display(int x,double y){}
3.以下函数调用语句中func函数的实参个数是( )
func(f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8)));
A.3 B.4 C.5 D.8
4.对于以下函数的叙述中,不正确的一项是( )
1: void f(int n);
2: void f(int n){ }
3: int main(void)
4: {
5: f(5);
6: return 0;
7: }
A.第一行的函数说明对于此程序来说并不是必须的,可以省略
B.可以将第2行的函数放在第7行的mian函数定义之后
C.如果第1行和第2行之间有其他函数调用f函数,则第一行不可省略
D.第1行和第2行都可以放在mian函数体之内
5.语句:char func(int x,int y);是对函数char fun(int a,int b)的( )
A.定义 B.调用 C.声明 D.引用
6.下列函数的函数值类型是( )
fun(float x)
{float y;
y=3*x-4;
return y;}
A.int B.float C.char D.void
7.以下程序有语法性错误,有关错误原因的叙述中,正确的一项是( )
main()
{int G=5,k;
void prt_char();
……
k=prt_char(G);
……}
A.语句:void prtchar();有错,它是函数调用语句,不能用void说明
B.变量名不能使用大写字母
C.函数说明和函数调用语句之间有矛盾
D.函数名不能使用下划线
8.设有以下程序,则下列叙述中,正确的一项是( )
#include <stdio.h>
main()
{int findmax(int,int,int),m;
……
m=findmax(a,b,c);
……}
int findmax(int x,int y,int z)
{……}
A.在main函数中声明了findmax函数
B.在main函数中定义了findmax函数
C.在main函数中两次调用了findmax函数
D.在main函数内、外重复定义了findmax函数
9.若各选项中所使用的变量均已正确定义,函数fun中通过return语句返回一个函数值,下列选项中错误的程序是( )
A.float fun(int a,int b) {……}
main()
{……x=fun(i,j); ……}
B.main()
{……x=fun(2,10); ……}
float fun(int a,int b) {……}
C.float fun(int ,int );
main()
{……x=fun(2,10); ……}
float fun(int a,int b) {……}
D.main()
{float fun(int i,int j);
……x=fun(i,j); ……}
float fun(int a,int b) {……}
10.下列叙述中,不正确的一项是( )
A.函数类型为void时表示函数没有返回值
B.函数参数为void时表示函数不接受参数
C.标准库函数printf()和scanf()都有返回值
D.函数只能调用同一源文件中的其他函数
11.以下关于函数参数的叙述中,不正确的一项是( )
A.实参可以是常量、变量或表达式
B.形参可以是常量、变量或表达式
C.实参可以为与形参兼容的任意类型
D.如果形参和实参的类型不一致,以形参类型为准
12.以下函数首部中正确的是( )
A.void play(void a) B.void play(int a,b)
C.void play(int a,int b) D.int play(void a)
13.以下函数定义的括号内可以填写的类型说明符是( )
【 】fun(float x)
{float y; y=3*x-4;return y;}
A.void B.char C.int D.double
14.若一个子函数的函数体内没有return语句,则下列叙述中正确的是( )
A.该函数没有返回值 B.该函数返回若干个系统默认值
C.该函数返回一个用户希望的值 D.该函数返回一个随机数
15.下列叙述中,正确的一项是( )
A.C语言编译时不检查语法
B.C语言的子程序有过程和函数两种
C.C语言的函数可以嵌套定义
D.C语言所有函数都是外部函数
16.以下有关函数的叙述中,正确的是( )
A.定义函数时,形参的类型说明可以放在函数体内
B.return后边的值不能为表达式
C.函数值的类型与返回值类型不一致时,以函数值类型为准
D.如果形参与实参类型不一致,以实参类型为准
17.设有以下函数定义,则该函数的返回值类型是( )
fun(char a) {printf("a=%c
",a);}
A.int B.char C.double D.float
18.下列有关函数返回值的叙述中,不正确的一项是( )
A.用户定义的函数中可以没有return语句
B.用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值
C.用户定义的函数中若没有return语句,则应该定义为void类型
D.函数的return语句中没有表达式并不会引起语法错误
19.C语言规定,函数的返回值的类型( )
A.由return语句中表达式的类型所决定
B.由调用该函数的主调函数所具有的类型决定
C.由定义该函数时所指定的函数类型决定
D.由系统随机决定
20.以下说法中错误的是( )
A.C程序中可以包含一个main函数
B.C程序由一个mian函数和若干个其他函数构成
C.C程序中可以没有main函数,但至少应该包含一个其他函数
D.C程序由函数组成,函数是构成程序的基本单位
二、判断题(本大题共5小题,每题3分,共15分)
21.递归函数的时间复杂度一定高于迭代版本。( )
22.递归函数必须有返回值。( )
23.可以通过函数参数传递数组名来修改原数组的内容。( )
24.实参可以是常量、变量或表达式。( )
25.函数的返回值只能是一个基本数据类型的值,不能是数组或结构体。( )
三、程序填空题(本大题共5小题,每题5分,共25分)
26.下列程序的功能是两个子函数分别求两个整数的最大公约数和最小公倍数,在主函数内输入两个整数,调用它们后输出结果。请填空。
#include <stdio.h>
#include<conio.h>
main()
{int fgcd(int a,int b);
【1】;
int a,b,gcd,lcd;
printf("请输入两个整数:");
scanf("%d%d",&a,&b);
gcd=fgcd(a,b);
lcd=flcd(a,b);
printf("最大公约数:%d,最小公倍数:%d",gcd,lcd);
getch();}
int fgcd(int a,int b)
{int i;
for(【2】;i>1;i--)
{if(a%i==0&&b%i==0)
break;}
return i;}
int flcd(int a,int b)
{int i;
for(i=(【3】);i<【4】;i++)
{if(【5】)
break;}
return i;}
27.补全代码,完成计算阶乘的功能。
#include <stdio.h>
;
int main() {
int n = 5;
printf("%d! = %d", n, factorial(n));
return 0;
}
int factorial(int n) {
if (n <= 1) return 1;
else return ;
}
28.补全代码,完成判断一个数是否为素数
#include <stdio.h>
#include <stdbool.h>
bool isPrime(int num) {
if (num < 2) {
return false;
}
for (int i = 2; ______; i++) {
if (______) {
return false;
}
}
return true;
}
int main() {
int num = 7;
if (isPrime(num)) {
printf("%d 是素数
", num);
} else {
printf("%d 不是素数
", num);
}
return 0;
}
29.补全代码,完成计算两个数的乘积
#include <stdio.h>
int multiply(______, int b) {
return ______;
}
int main() {
int num1 = 5, num2 = 3;
int result = multiply(num1, num2);
printf("%d 和 %d 的乘积是: %d
", num1, num2, result);
return 0;
}
30.以下函数 fun的功能是:统计一个数中位值为零的个数,以及位值为1的个数。若输入1110011011,则输出位值为零的个数为3,位值为1的个数为7,请填空。
#include<stdio.h>
#include<conio.h>
void fun(long n)
{int coun0=0,counl=0,m;
do
{m=【1】;
if(m==0) coun0++;
if(m==1) counl++;n=【2】;
} while(【3】);
printf("coun0=%d,counl=%d
",coun0,counl);}
int main( )
{long n;
printf("input n:
");scanf("%ld",&n);printf("n=%ld
",n);
【4】;getch();}
试卷第6页,共6页
试卷第5页,共6页
学科网(北京)股份有限公司
$
编写说明:江苏省中职职教高考专业综合理论考试-计算机类《C语言程序设计》考点双析卷专辑,依据省教育厅《江苏省中职职教高考专业综合理论考试大纲》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷,助力师生构建“讲练结合”的学习闭环,特别适用于江苏省中职职教高考专业综合理论考试第一轮高考复习教学。
本专辑第37卷精准对标江苏省考纲,考试内容及范围【C语言程序设计】:
(九)函数:掌握函数的定义方法;
江苏省中职职教高考专业综合理论考试 计算机类
《C语言程序设计》考点双析卷 第37卷
函数定义 老师讲解卷
时间:45分钟 总分:100分
班级_______ 姓名_______ 学号_______ 成绩_______
一、单项选择题(本大题共20小题,每题3分,共60分)
1.在C语言中,以下正确的说法是( )
A.实参和其对应的形参各占用独立的存储单元
B.实参和与其对应的形参共占用一个存储单元
C.只有当实参和其对应的形参同名时才共占用相同的存储单元
D.形参是虚拟的,不占用存储单元
【答案】A
2.下列对函数:void display(int x,double y){ ……}的声明中,正确的一项是( )
A.void display(int,double); B.void display(int,int);
C.void display(double y,int x); D.void display(int x,double y){}
【答案】A
3.以下函数调用语句中func函数的实参个数是( )
func(f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8)));
A.3 B.4 C.5 D.8
【答案】A
4.对于以下函数的叙述中,不正确的一项是( )
1: void f(int n);
2: void f(int n){ }
3: int main(void)
4: {
5: f(5);
6: return 0;
7: }
A.第一行的函数说明对于此程序来说并不是必须的,可以省略
B.可以将第2行的函数放在第7行的mian函数定义之后
C.如果第1行和第2行之间有其他函数调用f函数,则第一行不可省略
D.第1行和第2行都可以放在mian函数体之内
【答案】D
5.语句:char func(int x,int y);是对函数char fun(int a,int b)的( )
A.定义 B.调用 C.声明 D.引用
【答案】C
6.下列函数的函数值类型是( )
fun(float x)
{float y;
y=3*x-4;
return y;}
A.int B.float C.char D.void
【答案】B
7.以下程序有语法性错误,有关错误原因的叙述中,正确的一项是( )
main()
{int G=5,k;
void prt_char();
……
k=prt_char(G);
……}
A.语句:void prtchar();有错,它是函数调用语句,不能用void说明
B.变量名不能使用大写字母
C.函数说明和函数调用语句之间有矛盾
D.函数名不能使用下划线
【答案】C
8.设有以下程序,则下列叙述中,正确的一项是( )
#include <stdio.h>
main()
{int findmax(int,int,int),m;
……
m=findmax(a,b,c);
……}
int findmax(int x,int y,int z)
{……}
A.在main函数中声明了findmax函数
B.在main函数中定义了findmax函数
C.在main函数中两次调用了findmax函数
D.在main函数内、外重复定义了findmax函数
【答案】A
9.若各选项中所使用的变量均已正确定义,函数fun中通过return语句返回一个函数值,下列选项中错误的程序是( )
A.float fun(int a,int b) {……}
main()
{……x=fun(i,j); ……}
B.main()
{……x=fun(2,10); ……}
float fun(int a,int b) {……}
C.float fun(int ,int );
main()
{……x=fun(2,10); ……}
float fun(int a,int b) {……}
D.main()
{float fun(int i,int j);
……x=fun(i,j); ……}
float fun(int a,int b) {……}
【答案】B
10.下列叙述中,不正确的一项是( )
A.函数类型为void时表示函数没有返回值
B.函数参数为void时表示函数不接受参数
C.标准库函数printf()和scanf()都有返回值
D.函数只能调用同一源文件中的其他函数
【答案】D
11.以下关于函数参数的叙述中,不正确的一项是( )
A.实参可以是常量、变量或表达式
B.形参可以是常量、变量或表达式
C.实参可以为与形参兼容的任意类型
D.如果形参和实参的类型不一致,以形参类型为准
【答案】B
12.以下函数首部中正确的是( )
A.void play(void a) B.void play(int a,b)
C.void play(int a,int b) D.int play(void a)
【答案】C
13.以下函数定义的括号内可以填写的类型说明符是( )
【 】fun(float x)
{float y; y=3*x-4;return y;}
A.void B.char C.int D.double
【答案】D
14.若一个子函数的函数体内没有return语句,则下列叙述中正确的是( )
A.该函数没有返回值 B.该函数返回若干个系统默认值
C.该函数返回一个用户希望的值 D.该函数返回一个随机数
【答案】A
15.下列叙述中,正确的一项是( )
A.C语言编译时不检查语法
B.C语言的子程序有过程和函数两种
C.C语言的函数可以嵌套定义
D.C语言所有函数都是外部函数
【答案】D
16.以下有关函数的叙述中,正确的是( )
A.定义函数时,形参的类型说明可以放在函数体内
B.return后边的值不能为表达式
C.函数值的类型与返回值类型不一致时,以函数值类型为准
D.如果形参与实参类型不一致,以实参类型为准
【答案】C
17.设有以下函数定义,则该函数的返回值类型是( )
fun(char a) {printf("a=%c
",a);}
A.int B.char C.double D.float
【答案】A
【详解】缺省函数类型是int。
18.下列有关函数返回值的叙述中,不正确的一项是( )
A.用户定义的函数中可以没有return语句
B.用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值
C.用户定义的函数中若没有return语句,则应该定义为void类型
D.函数的return语句中没有表达式并不会引起语法错误
【答案】B
19.C语言规定,函数的返回值的类型( )
A.由return语句中表达式的类型所决定
B.由调用该函数的主调函数所具有的类型决定
C.由定义该函数时所指定的函数类型决定
D.由系统随机决定
【答案】C
20.以下说法中错误的是( )
A.C程序中可以包含一个main函数
B.C程序由一个mian函数和若干个其他函数构成
C.C程序中可以没有main函数,但至少应该包含一个其他函数
D.C程序由函数组成,函数是构成程序的基本单位
【答案】C
二、判断题(本大题共5小题,每题3分,共15分)
21.递归函数的时间复杂度一定高于迭代版本。( )
【答案】错误
22.递归函数必须有返回值。( )
【答案】错误
23.可以通过函数参数传递数组名来修改原数组的内容。( )
【答案】正确
24.实参可以是常量、变量或表达式。( )
【答案】正确
25.函数的返回值只能是一个基本数据类型的值,不能是数组或结构体。( )
【答案】错误
三、程序填空题(本大题共5小题,每题5分,共25分)
26.下列程序的功能是两个子函数分别求两个整数的最大公约数和最小公倍数,在主函数内输入两个整数,调用它们后输出结果。请填空。
#include <stdio.h>
#include<conio.h>
main()
{int fgcd(int a,int b);
【1】;
int a,b,gcd,lcd;
printf("请输入两个整数:");
scanf("%d%d",&a,&b);
gcd=fgcd(a,b);
lcd=flcd(a,b);
printf("最大公约数:%d,最小公倍数:%d",gcd,lcd);
getch();}
int fgcd(int a,int b)
{int i;
for(【2】;i>1;i--)
{if(a%i==0&&b%i==0)
break;}
return i;}
int flcd(int a,int b)
{int i;
for(i=(【3】);i<【4】;i++)
{if(【5】)
break;}
return i;}
【答案】①int flcd(int a,int b) ②i=(a>b?b:a)
③a>b?a:b ④a*b ⑤i%a==0&&i%b==0
27.补全代码,完成计算阶乘的功能。
#include <stdio.h>
;
int main() {
int n = 5;
printf("%d! = %d", n, factorial(n));
return 0;
}
int factorial(int n) {
if (n <= 1) return 1;
else return ;
}
【答案】 int factorial(int n); n * factorial(n - 1)
28.补全代码,完成判断一个数是否为素数
#include <stdio.h>
#include <stdbool.h>
bool isPrime(int num) {
if (num < 2) {
return false;
}
for (int i = 2; ______; i++) {
if (______) {
return false;
}
}
return true;
}
int main() {
int num = 7;
if (isPrime(num)) {
printf("%d 是素数
", num);
} else {
printf("%d 不是素数
", num);
}
return 0;
}
【答案】i * i <= num,num % i == 0
29.补全代码,完成计算两个数的乘积
#include <stdio.h>
int multiply(______, int b) {
return ______;
}
int main() {
int num1 = 5, num2 = 3;
int result = multiply(num1, num2);
printf("%d 和 %d 的乘积是: %d
", num1, num2, result);
return 0;
}
【答案】int a,a * b
30.以下函数 fun的功能是:统计一个数中位值为零的个数,以及位值为1的个数。若输入1110011011,则输出位值为零的个数为3,位值为1的个数为7,请填空。
#include<stdio.h>
#include<conio.h>
void fun(long n)
{int coun0=0,counl=0,m;
do
{m=【1】;
if(m==0) coun0++;
if(m==1) counl++;n=【2】;
} while(【3】);
printf("coun0=%d,counl=%d
",coun0,counl);}
int main( )
{long n;
printf("input n:
");scanf("%ld",&n);printf("n=%ld
",n);
【4】;getch();}
【答案】【1】n%10
【2】n/10
【3】n
【4】fun(n)
试卷第6页,共6页
试卷第5页,共6页
学科网(北京)股份有限公司
$