任务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;} 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $$

资源预览图

任务23:函数的定义、类型、返回值及常用库函数  《编程语言-C语言》45分钟专题训练-第1页
1
任务23:函数的定义、类型、返回值及常用库函数  《编程语言-C语言》45分钟专题训练-第2页
2
任务23:函数的定义、类型、返回值及常用库函数  《编程语言-C语言》45分钟专题训练-第3页
3

由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。