任务23:函数的定义、类型、返回值及常用库函数 《编程语言-C语言》45分钟专题训练
|
2份
|
27页
|
106人阅读
|
2人下载
内容正文:
湖南省职教高考《编程语言—C语言》45分钟专题训练专辑,共43份试卷。试卷命题与高考紧密相关,精选具有代表性和典型性的高考常考题。旨在帮助学生系统地复习和巩固计算机类理论知识,熟悉高考题型和命题规律,提高解题能力和应试技巧,为高考取得优异成绩打下坚实的基础,本训练卷适用于即将参加计算机类高考的学生。与本专辑配套的还有湖南省职教高考《计算机应用基础》《计算机组装与维护》《计算机网络技术》45分钟专题训练专辑,欢迎同学和老师们下载使用。
《编程语言—C语言》
项目五: 函数
第23卷: 函数的定义、类型、返回值及常用库函数
时间:45分钟 总分:100分
班级___________ 姓名__________ 学号__________ 成绩________
一、选择题(共23小题,每小题2分,共46分)
1.以下说法中错误的是( )
A.C程序中可以包含一个main函数
B.C程序由一个mian函数和若干个其他函数构成
C.C程序中可以没有main函数,但至少应该包含一个其他函数
D.C程序由函数组成,函数是构成程序的基本单位
2.C语言规定,函数的返回值的类型( )
A.由return语句中表达式的类型所决定
B.由调用该函数的主调函数所具有的类型决定
C.由定义该函数时所指定的函数类型决定
D.由系统随机决定
3.下列有关函数返回值的叙述中,不正确的一项是( )
A.用户定义的函数中可以没有return语句
B.用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值
C.用户定义的函数中若没有return语句,则应该定义为void类型
D.函数的return语句中没有表达式并不会引起语法错误
4.设有以下函数定义,则该函数的返回值类型是( )
fun(char a) {printf("a=%c
",a);}
A.int B.char C.double D.float
5.下列函数定义中,正确的函数定义形式是( )
A.double fun(int x,int y);
B.double fun(int x;int y)
C.double fun(int x,y)
D.double fun(int x,int y)
6.以下有关函数的叙述中,正确的是( )
A.定义函数时,形参的类型说明可以放在函数体内
B.return后边的值不能为表达式
C.函数值的类型与返回值类型不一致时,以函数值类型为准
D.如果形参与实参类型不一致,以实参类型为准
7.下列叙述中,正确的一项是( )
A. C语言编译时不检查语法
B. C语言的子程序有过程和函数两种
C. C语言的函数可以嵌套定义
D. C语言所有函数都是外部函数
8.若一个子函数的函数体内没有return语句,则下列叙述中正确的是( )
A.该函数没有返回值 B.该函数返回若干个系统默认值
C.该函数返回一个用户希望的值 D.该函数返回一个随机数
9.以下函数定义的括号内可以填写的类型说明符是( )
【 】fun(float x)
{float y; y=3*x-4;return y;}
A.void B.char C.int D.double
10.以下函数首部中正确的是( )
A.void play(void a) B.void play(int a,b)
C.void play(int a,int b) D.int play(void a)
11.以下叙述中,正确的一项是( )
A.用户若需要调用标准库函数,调用前必须要声明函数
B.用户可以重新定义标准库函数,此时函数将失去原有定义
C.用户不可以重新定义标准库函数
D.调用标准库函数之前不必加任何说明或预处理指令,系统会自动调用
12.以下关于函数参数的叙述中,不正确的一项是( )
A.实参可以是常量、变量或表达式
B.形参可以是常量、变量或表达式
C.实参可以为与形参兼容的任意类型
D.如果形参和实参的类型不一致,以形参类型为准
13.下列叙述中,不正确的一项是( )
A.函数类型为void时表示函数没有返回值
B.函数参数为void时表示函数不接受参数
C.标准库函数printf()和scanf()都有返回值
D.函数只能调用同一源文件中的其他函数
14.若各选项中所使用的变量均已正确定义,函数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) {……}
15.设有以下程序,则下列叙述中,正确的一项是( )
#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函数
16.下列f函数的功能是计算:1+12+123+1234+12345。请选择填空。( )
void f()
{int t= 0,s=0,i;
for (i=1;i<=5;i++)
{t=i+【 】;s=s+t;}
printf("s=%d
",s);}
A.t/10 B.t+10 C.t D.t*10
17.以下函数的功能是:求x的y次方,请选择填空。( )
double fun(double x,int y)
{int i;
double z;
for(i=1,z=x;i<y;i++) z=【 】;
return z;}
A.z+x B.z*x C.z/x D.x
18.以下程序有语法性错误,有关错误原因的叙述中,正确的一项是( )
main()
{int G=5,k;
void prt_char();
……
k=prt_char(G);
……}
A.语句:void prtchar();有错,它是函数调用语句,不能用void说明
B.变量名不能使用大写字母
C.函数说明和函数调用语句之间有矛盾
D.函数名不能使用下划线
19.执行以下程序段的输出结果是( )
int f(int a)
{ return a%2; }
main()
{int s[8]={1,3,5,2,4,6},i,d=0;
for(i=0;f(s[i]);i++) d+=s[i];
printf("%d
",d);getch();}
A.9 B.11 C.19 D.20
20.下列函数的函数值类型是( )
fun(float x)
{float y;
y=3*x-4;
return y;}
A.int B.float C.char D.void
21.执行以下程序段的输出结果是( )
int Sub(int a, int b)
{return (a-b);}
main()
{int x=9,y=3,result = 0;
result = Sub(x,y ) ;
printf("result=%d
",result);getch();}
A.result=5 B.result=6 C. result=7 D.result=8
22.执行以下程序段的输出结果是( )
int f(int a)
{ return a%2; }
main()
{int s[8]={1,3,5,7,9,11},i,d=0;
for(i=0;f(s[i]);i++) d+=s[i];
printf("%d
",d);getch();}
A.36 B.0 C.25 D.34
23.执行下面程序时输入:ABC,则输出结果是( )
#include <stdio.h>
#include<conio.h>
#include<string.h>
main()
{char ss[10]="12345";
gets(ss);
strcat(ss,"6789");
printf("%s
",ss);getch();}
A.ABC6789 B.ABC C.ABC12345 D.ABC9
二、程序运行结果题(本题共7小题,每题3分,共21分)
24.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
int hcf(int u,int v)
{ int a,b,c,r;
if(u>v) { c=u; u=v; v=c; }
a=u; b=v;
while((r=b%a)!=0) { b=a; a=r;}
return(a);}
main()
{ int u,v,h,l;
u=32; v=48;
h=hcf(u,v);
printf("H.C.F=%d",h);getch();}
25.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
int min( int x,int y )
{int m;
if (x<y) m=x;
else m = y;
return(m); }
main()
{ int a=5,b=1,ab_min;
ab_min=min(a,b);
printf("min is %d",ab_min);getch();}
26.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
int fun(int a, int b)
{ if(a>b) return(a++);
else return(++b);}
main()
{ int x=1,y=3, r;
r=fun(x,y);
printf("r=%d
",r);getch();}
27.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
int fac(int n)
{ int f=1,i;
for(i=1;i<=n;i++)
f=f*i;
return(f);}
main()
{ int j=5,s=0;
s=fac(j);
printf("%d!=%d
",j,s);getch();}
28.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
char fun(char x,char y)
{if(x<y) return x;
return y;}
main()
{int a='9',b='8',c='7';
printf("%c,%c
",fun(a,b),fun(b,c));getch();}
29.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
void f(int x,int y)
{int t;
if(x<y) {t=x; x=y; y=t;}}
main()
{int a=7,b=8,c=9;
f(a,b); f(a,c); f(b,c);
printf("%d,%d,%d
",a,b,c);getch();}
30.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
int fun1(double a)
{return a*=a; }
main()
{double w;
w=fun1(1.1)+fun1(2.3);
printf("%.2f",w);getch();}
三、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。每处3分,共9分)
31.下列程序的功能是:函数sum求1+2+3+4+……+n的值,在主函数内输入n的值,并在主函数输出结果。程序中有三处错误,请改正。
L1 #include <stdio.h>
L2 #include<conio.h>
L3 main()
L4 {int sum(int k)
L5 int n,s;
L6 printf("请输入n的值:");
L7 scanf("%d",&n);
L8 s=sum(n);
L9 printf("sum=%d
",s);
L10 getch();}
L11 int sum(int k)
L12 {int i,s=0;
L13 for(i=1;i<k;i++)
L14 s+i;
L15 return s;}
四、程序补充。按照题目要求,将正确的内容填入相应位置,使得整个程序完整(每题8分,共24分)
32.编写函数min(x,y,z),求3个整数中的最小值,并利用该函数求5个整数中的最小值。请勿改动主函数及其他函数中的任何内容,仅补充完整min()函数。
#include <stdio.h>
#include<conio.h>
main()
{int x,y,z,m,n,min1,min2;
int min(int a,int b,int c);
printf("请输入5个整数:");
scanf("%d%d%d%d%d",&x,&y,&z,&m,&n);
min1=min(x,y,z);
min2=min(min1,m,n);
printf("5个整数中的最小值是:%d
",min2);
getch();}
int min(int a,int b,int c)
{
}
33.编写函数power(),用来求 的值,在主函数中输入两个正整数n和k,调用函数power(),求: ,并输出结果。请勿改动主函数及其他函数中的任何内容,仅补充完整power()函数。
#include <stdio.h>
#include<conio.h>
int power(int i,int k)
{
}
main()
{int n,k,i,s=0;
printf("请输入n与k的值:");
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++)
s=s+power(i,k);
printf("所求式子之和是:%d",s);
getch();}
34.编写函数fun(),找出一个大于给定整数n且紧随n的素数,在主函数内输入n,并在主函数输出结果。请勿改动主函数及其他函数中的任何内容,仅补充完整fun()函数。
#include <stdio.h>
#include<conio.h>
int fun(int m)
{
}
main()
{int n;
printf("请输入一个整数n:");
scanf("%d",&n);
printf("紧随n的素数是:%d",fun(n));
getch();}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$
湖南省职教高考《编程语言—C语言》45分钟专题训练专辑,共43份试卷。试卷命题与高考紧密相关,精选具有代表性和典型性的高考常考题。旨在帮助学生系统地复习和巩固计算机类理论知识,熟悉高考题型和命题规律,提高解题能力和应试技巧,为高考取得优异成绩打下坚实的基础,本训练卷适用于即将参加计算机类高考的学生。与本专辑配套的还有湖南省职教高考《计算机应用基础》《计算机组装与维护》《计算机网络技术》45分钟专题训练专辑,欢迎同学和老师们下载使用。
《编程语言—C语言》
项目五: 函数
第23卷: 函数的定义、类型、返回值及常用库函数
时间:45分钟 总分:100分
班级___________ 姓名__________ 学号__________ 成绩________
一、选择题(共23小题,每小题2分,共46分)
1.以下说法中错误的是( )
A.C程序中可以包含一个main函数
B.C程序由一个mian函数和若干个其他函数构成
C.C程序中可以没有main函数,但至少应该包含一个其他函数
D.C程序由函数组成,函数是构成程序的基本单位
【答案】C
2.C语言规定,函数的返回值的类型( )
A.由return语句中表达式的类型所决定
B.由调用该函数的主调函数所具有的类型决定
C.由定义该函数时所指定的函数类型决定
D.由系统随机决定
【答案】C
3.下列有关函数返回值的叙述中,不正确的一项是( )
A.用户定义的函数中可以没有return语句
B.用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值
C.用户定义的函数中若没有return语句,则应该定义为void类型
D.函数的return语句中没有表达式并不会引起语法错误
【答案】B
4.设有以下函数定义,则该函数的返回值类型是( )
fun(char a) {printf("a=%c
",a);}
A.int B.char C.double D.float
【答案】A。缺省函数类型是int。
5.下列函数定义中,正确的函数定义形式是( )
A.double fun(int x,int y);
B.double fun(int x;int y)
C.double fun(int x,y)
D.double fun(int x,int y)
【答案】D
6.以下有关函数的叙述中,正确的是( )
A.定义函数时,形参的类型说明可以放在函数体内
B.return后边的值不能为表达式
C.函数值的类型与返回值类型不一致时,以函数值类型为准
D.如果形参与实参类型不一致,以实参类型为准
【答案】C
7.下列叙述中,正确的一项是( )
A. C语言编译时不检查语法
B. C语言的子程序有过程和函数两种
C. C语言的函数可以嵌套定义
D. C语言所有函数都是外部函数
【答案】D
8.若一个子函数的函数体内没有return语句,则下列叙述中正确的是( )
A.该函数没有返回值 B.该函数返回若干个系统默认值
C.该函数返回一个用户希望的值 D.该函数返回一个随机数
【答案】A
9.以下函数定义的括号内可以填写的类型说明符是( )
【 】fun(float x)
{float y; y=3*x-4;return y;}
A.void B.char C.int D.double
【答案】D
10.以下函数首部中正确的是( )
A.void play(void a) B.void play(int a,b)
C.void play(int a,int b) D.int play(void a)
【答案】C
11.以下叙述中,正确的一项是( )
A.用户若需要调用标准库函数,调用前必须要声明函数
B.用户可以重新定义标准库函数,此时函数将失去原有定义
C.用户不可以重新定义标准库函数
D.调用标准库函数之前不必加任何说明或预处理指令,系统会自动调用
【答案】B
12.以下关于函数参数的叙述中,不正确的一项是( )
A.实参可以是常量、变量或表达式
B.形参可以是常量、变量或表达式
C.实参可以为与形参兼容的任意类型
D.如果形参和实参的类型不一致,以形参类型为准
【答案】B
13.下列叙述中,不正确的一项是( )
A.函数类型为void时表示函数没有返回值
B.函数参数为void时表示函数不接受参数
C.标准库函数printf()和scanf()都有返回值
D.函数只能调用同一源文件中的其他函数
【答案】D
14.若各选项中所使用的变量均已正确定义,函数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
15.设有以下程序,则下列叙述中,正确的一项是( )
#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
16.下列f函数的功能是计算:1+12+123+1234+12345。请选择填空。( )
void f()
{int t= 0,s=0,i;
for (i=1;i<=5;i++)
{t=i+【 】;s=s+t;}
printf("s=%d
",s);}
A.t/10 B.t+10 C.t D.t*10
【答案】D
17.以下函数的功能是:求x的y次方,请选择填空。( )
double fun(double x,int y)
{int i;
double z;
for(i=1,z=x;i<y;i++) z=【 】;
return z;}
A.z+x B.z*x C.z/x D.x
【答案】B
18.以下程序有语法性错误,有关错误原因的叙述中,正确的一项是( )
main()
{int G=5,k;
void prt_char();
……
k=prt_char(G);
……}
A.语句:void prtchar();有错,它是函数调用语句,不能用void说明
B.变量名不能使用大写字母
C.函数说明和函数调用语句之间有矛盾
D.函数名不能使用下划线
【答案】C
19.执行以下程序段的输出结果是( )
int f(int a)
{ return a%2; }
main()
{int s[8]={1,3,5,2,4,6},i,d=0;
for(i=0;f(s[i]);i++) d+=s[i];
printf("%d
",d);getch();}
A.9 B.11 C.19 D.20
【答案】A
20.下列函数的函数值类型是( )
fun(float x)
{float y;
y=3*x-4;
return y;}
A.int B.float C.char D.void
【答案】B
21.执行以下程序段的输出结果是( )
int Sub(int a, int b)
{return (a-b);}
main()
{int x=9,y=3,result = 0;
result = Sub(x,y ) ;
printf("result=%d
",result);getch();}
A.result=5 B.result=6 C. result=7 D.result=8
【答案】B
22.执行以下程序段的输出结果是( )
int f(int a)
{ return a%2; }
main()
{int s[8]={1,3,5,7,9,11},i,d=0;
for(i=0;f(s[i]);i++) d+=s[i];
printf("%d
",d);getch();}
A.36 B.0 C.25 D.34
【答案】A
23.执行下面程序时输入:ABC,则输出结果是( )
#include <stdio.h>
#include<conio.h>
#include<string.h>
main()
{char ss[10]="12345";
gets(ss);
strcat(ss,"6789");
printf("%s
",ss);getch();}
A.ABC6789 B.ABC C.ABC12345 D.ABC9
【答案】A
二、程序运行结果题(本题共7小题,每题3分,共21分)
24.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
int hcf(int u,int v)
{ int a,b,c,r;
if(u>v) { c=u; u=v; v=c; }
a=u; b=v;
while((r=b%a)!=0) { b=a; a=r;}
return(a);}
main()
{ int u,v,h,l;
u=32; v=48;
h=hcf(u,v);
printf("H.C.F=%d",h);getch();}
【答案】H.C.F=16
25.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
int min( int x,int y )
{int m;
if (x<y) m=x;
else m = y;
return(m); }
main()
{ int a=5,b=1,ab_min;
ab_min=min(a,b);
printf("min is %d",ab_min);getch();}
【答案】min is 1
26.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
int fun(int a, int b)
{ if(a>b) return(a++);
else return(++b);}
main()
{ int x=1,y=3, r;
r=fun(x,y);
printf("r=%d
",r);getch();}
【答案】r=4
27.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
int fac(int n)
{ int f=1,i;
for(i=1;i<=n;i++)
f=f*i;
return(f);}
main()
{ int j=5,s=0;
s=fac(j);
printf("%d!=%d
",j,s);getch();}
【答案】5!=120
28.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
char fun(char x,char y)
{if(x<y) return x;
return y;}
main()
{int a='9',b='8',c='7';
printf("%c,%c
",fun(a,b),fun(b,c));getch();}
【答案】8,7
29.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
void f(int x,int y)
{int t;
if(x<y) {t=x; x=y; y=t;}}
main()
{int a=7,b=8,c=9;
f(a,b); f(a,c); f(b,c);
printf("%d,%d,%d
",a,b,c);getch();}
【答案】7,8,9
30.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
int fun1(double a)
{return a*=a; }
main()
{double w;
w=fun1(1.1)+fun1(2.3);
printf("%.2f",w);getch();}
【答案】6.00
三、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。每处3分,共9分)
31.下列程序的功能是:函数sum求1+2+3+4+……+n的值,在主函数内输入n的值,并在主函数输出结果。程序中有三处错误,请改正。
L1 #include <stdio.h>
L2 #include<conio.h>
L3 main()
L4 {int sum(int k)
L5 int n,s;
L6 printf("请输入n的值:");
L7 scanf("%d",&n);
L8 s=sum(n);
L9 printf("sum=%d
",s);
L10 getch();}
L11 int sum(int k)
L12 {int i,s=0;
L13 for(i=1;i<k;i++)
L14 s+i;
L15 return s;}
答案:
L4 {int sum(int k);
L13 for(i=1;i<=k;i++)
L14 s=s+i;
四、程序补充。按照题目要求,将正确的内容填入相应位置,使得整个程序完整(每题8分,共24分)
32.编写函数min(x,y,z),求3个整数中的最小值,并利用该函数求5个整数中的最小值。请勿改动主函数及其他函数中的任何内容,仅补充完整min()函数。
#include <stdio.h>
#include<conio.h>
main()
{int x,y,z,m,n,min1,min2;
int min(int a,int b,int c);
printf("请输入5个整数:");
scanf("%d%d%d%d%d",&x,&y,&z,&m,&n);
min1=min(x,y,z);
min2=min(min1,m,n);
printf("5个整数中的最小值是:%d
",min2);
getch();}
int min(int a,int b,int c)
{
}
参考答案:
int min;
min=a;
if(b<min) min=b;
if(c<min) min=c;
return min;
33.编写函数power(),用来求 的值,在主函数中输入两个正整数n和k,调用函数power(),求: ,并输出结果。请勿改动主函数及其他函数中的任何内容,仅补充完整power()函数。
#include <stdio.h>
#include<conio.h>
int power(int i,int k)
{
}
main()
{int n,k,i,s=0;
printf("请输入n与k的值:");
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++)
s=s+power(i,k);
printf("所求式子之和是:%d",s);
getch();}
参考答案:
int j,f=1;
for(j=1;j<=k;j++)
f=f*i;
return f;
34.编写函数fun(),找出一个大于给定整数n且紧随n的素数,在主函数内输入n,并在主函数输出结果。请勿改动主函数及其他函数中的任何内容,仅补充完整fun()函数。
#include <stdio.h>
#include<conio.h>
int fun(int m)
{
}
main()
{int n;
printf("请输入一个整数n:");
scanf("%d",&n);
printf("紧随n的素数是:%d",fun(n));
getch();}
参考答案:
int i,k;
for(i=m+1; ;i++)
{for(k=2;k<i;k++)
if(i%k==0) break;
if(k>=i) return i;}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$