《部份函数》word版

上传人:xt****7 文档编号:103683048 上传时间:2022-06-09 格式:DOC 页数:21 大小:108.51KB
返回 下载 相关 举报
《部份函数》word版_第1页
第1页 / 共21页
《部份函数》word版_第2页
第2页 / 共21页
《部份函数》word版_第3页
第3页 / 共21页
点击查看更多>>
资源描述
第八章 函数一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填在相应位置上。)1. 建立函数的目的之一是( ) A. 提高程序的执行效率B. 提高程序的可读性C. 减少程序的篇幅D. 减少程序文件所占内存 2. 以下正确的说法是( )A. 用户若需调用标准函数,调用前必须重新定义B. 用户可以重新定义标准库函数,若如此,该函数将失去原有含义C. 系统根本不允许用户重新定义标准函数D. 用户若需要调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调 3. 在C语言中,以下说法正确的是( )A. 普通实参和与其对应的形参各占用独立的存储单元B. 实参和与其对应的形参共占用一个存储单元C. 只有当实参和与其对应的形参同名时才共占用存储单元D. 形参是虚拟的,不占用存储单元 4. 若调用一个函数,且此函数中没有RERURN语句,则关于该函数正确的说法是( )A. 没有返回值B. 返回若干个系统默认值C. 能返回一个用户所希望的函数值D. 返回一个不确定的值 5. 在C语言中以下不正确的说法是( )A. 实参可以是常量、变量、或表达式B. 形参可以是常量、变量或表达式C. 实参可以为任意类型D. 形参应与其对应的实参类型一致 6. 以下程序有语法性错误,有关错误原因的正确说法是( ) main() int G=5,k;void prt_char(); k=prt_char(G); A. 语句void prt_char();有错,它是函数调用语句,不能用void说明B. 变量名不能使用大写字母C. 函数说明和函数调用语句之间有矛盾D. 函数名不能使用下划线 7. 以下错误的描述是( )函数调用可以 A. 出现在执行语句中 B. 出现在一个表达式中 C. 作为一个函数的实参D .作为一个函数的形参8. 以下正确的说法是( )A. 函数的定义可以嵌套,但函数的调用不可以嵌套B. 函数的定义不可以嵌套,但函数的调用可嵌套C. 函数的定义和调用均不可以嵌套D. 函数的定义和调用均可以嵌套9. 若使用一位数组名作函数实参,则以下正确的说法是( )A. 必须在主调函数中说明此数组的大小B. 实参数组类型与形参数组类型可以不匹配C. 在被调用函数中,不需要考虑形参数组的大小D. 实参数组名与形参数组名必须一致10、以下正确的说法是( ) 如果在一个函数中的复合语句中定义了一个变量,则该变量A. 只在该复合语句中有效B. 在该函数中有效C. 在本程序范围中均有效D. 为非法变量 11、若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是( )A)函数调用可以作为独立的语句存在 B)函数调用可以作为一个函数的实参C)函数调用可以出现在表达式中 D)函数调用可以作为一个函数的形参考生答案: 正确答案: D12、在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是A)地址传递 B)单向值传递C)由实参传形参,再由形参传实参 D)传递方式由用户指定考生答案: 正确答案: B13、 以下正确的说法是A)定义函数时,形参的类型说明可以放在函数体内B)return后边的值不能为表达式C)如果函数值的类型与返回值类型不一致,以函数值类型为准D)如果形参与实参类型不一致,以实参类型为准考生答案: 正确答案: C14、 以下正确的说法是A)用户若需调用标准库函数,调用前必须重新定义B)用户可以重新定义标准库函数,若如此,该函数将失去原有含义C)系统根本不允许用户重新定义标准库函数D)用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动调用考生答案: 正确答案: B15 以下叙述正确的是A)函数可以嵌套定义但不能嵌套调用 B)函数既可以嵌套调用也可以嵌套定义C)函数既不可以嵌套定义也不可以嵌套调用 D)函数可以嵌套调用但不可以嵌套定义考生答案: 正确答案: D16、下面对C语言的描述中,正确的是A)函数一定有返回值,否则无法使用函数B)C语言函数既可以嵌套定义又可以递归调用C)在C语言中,调用函数时,只能将实参的值传递给形参D)C语言程序中有调用关系的所有函数都必须放在同一源程序文件中考生答案: 正确答案: C17、下列说法中错误的是A)静态局部变量的初值是在编译时赋予的,在程序执行期间不再赋予初值B)若全局变量和某一函数中的局部变量同名,则在该函数中,此全局变量被屏蔽C)静态全局变量可以被其他的编辑单位所引用D)所有自动类局部变量的存储单元都是在进入这些局部变量所在的函数体(或复合语句)时生成,退出其所在的函数体(或复合语句)时消失考生答案: 正确答案: C18、 以下程序有语法错误,有关错误原因的正确说法是main() int G=5,k;void prt_char();.k=prt_char(G);.A)语句 void prt_char();有错,它是函数调用语句,不能用void说明B)变量名不能使用大写字母C)函数说明和函数调用语句之间有矛盾D)函数名不能使用下划线考生答案: 正确答案: C19、 以下正确的函数头定义形式是A)double fun(int x,int y) B)double fun(int x;int y)C)double fun(int x,int y); D)double fun(int x,y);考生答案: 正确答案: A20、 以下所列的各函数首部中,正确的是A)void play(var :Integer,var b:Integer) B)void play(int a,b)C)void play(int a,int b) D)Sub play(a as integer,b as integer)考生答案: 正确答案: C21、 不合法的main函数命令行参数表示形式是A)main(int a,char *c) B)main(int arc,char *arv)C)main(int argc,char *argv) D)main(int argv,char *argc)考生答案: 正确答案: C22、 下面函数调用语句含有实参的个数为func(exp1,exp2),(exp3,exp4,exp5);A)1 B)2 C)4 D)5考生答案: 正确答案: B23、 设有如下函数fun (float x) printf(n%d,x*x);则函数的类型是A)与参数x的类型相同 B)是voidC)是int型 D)无法确定考生答案: 正确答案: C24、有以下程序float fun(int x,int y) return(x+y);main() int a=2,b=5,c=8;printf(%3.0fn,fun(int)fun(a+c,b),a-c);程序运行后的输出结果是A)编译出错 B)9 C)21 D)9.0考生答案: 正确答案: B25、以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序void sort(int a,int n) int i,j,t;for(i=0;in-1;i+)for(j=i+1;jn;j+)if(aiaj) t=ai;ai=aj;aj=t;main() int aa10=1,2,3,4,5,6,7,8,9,10,i;sort(&aa3,5);for(i=0;i10;i+) printf(%d,aai);printf(n);程序运行后的输出结果是A)1,2,3,4,5,6,7,8,9,10, B)10,9,8,7,6,5,4,3,2,1,C)1,2,3,8,7,6,5,4,9,10, D)1,2,10,9,8,7,6,5,4,3,考生答案: 正确答案: C26、 下列程序执行后的输出结果是void func1(int i);void func2(int i);char st=hello,friend!;void func1(int i) printf(%c,sti);if(i3) i+=2;func2(i);void func2(int i) printf(%c,sti);if(i3) i+=2;func1(i);main() int i=0; func1(i); printf(n);A)hello B)hel C)hlo D)hlm考生答案: 正确答案: C27、 以下函数返回a所指数组中最大值所在的下标值fun(int *a,int n) int i,j=0,p;p=j;for(i=j;iap) _;return(p);在下划线处应填入的内容是A)i=p B)ap=ai C)p=j D)p=I考生答案: 正确答案: D28、有以下程序int f(int n) if(n=1) return 1;else return f(n-1)+1;main() int i,j=0;for(i=1;i2) return(fib(n-1)+fib(n-2);else return(2);main() printf(%dn,fib(3); 该程序的输出结果是A)2 B)4 C)6 D)8考生答案: 正确答案: B30、下列函数的运行结果是main() int i=2,p;int j,k;j=i;k=+i;p=f(j,k);printf(%d,p);int f(int a,int b) int c;if(ab) c=1;else if(a=b) c=0;else c=-1;return(c);A)-1 B)1 C)2 D)编译出错,无法运行考生答案: 正确答案: A31、 阅读下列程序,当运行函数时,输入asd af aa z67,则输出为#include #include #include int fun (char *str) int i,j=0;for(i=0;stri!=0;i+)if(stri!= ) strj+=stri; strj= 0;main() char str81;int n;clrscr();printf(Input a string : );gets(str);puts(str);fun(str); printf(%sn,str);A)asdafaaz67 B)asd af aa z67 C)asd D)z67考生答案: 正确答案: A32、 以下程序的输出结果是long fun( int n) long s;if(n=1|n=2) s=2;else s=n-fun(n-1);return s;main() printf(%ldn, fun(3);A)1 B)2 C)3 D)4考生答案: 正确答案: A33、 已有变量定义和函数调用语句:int a=25;print_value(&a);下面函数的正确输出结果是void print_value(int *x) printf(%dn,+*x);A)23 B)24 C)25 D)26考生答案: 正确答案: D34、 下面程序应能对两个整型变量的值进行交换。以下正确的说法是main() int a=10,b=20;printf(1)a=%d,b=%dn,a,b);swap(&a,&b);printf(2)a=%d,b=%dn,a,b);swap(int p,int q) int t;t=p;p=q;q=t;A)该程序完全正确B)该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可C)该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针(执行语句不变)即可D)以上说法都不对考生答案: 正确答案: D35、 以下程序的输出结果是int f() static int i=0;int s=1;s+=i; i+;return s;main() int i,a=0;for(i=0;i5;i+) a+=f();printf(%dn,a);A)20 B)24 C)25 D)15考生答案: 正确答案: D36、 阅读下面程序段,则执行后输出的结果是#include stdio.hmain() char fun(char,int);char a=A;int b=13; a=fun(a,b); putchar(a);char fun(char a,int b) char k; k=a+b; return k;A)A B)M C)N D)L考生答案: 正确答案: C37、 编写求两个双精度数之和的函数,选项中正确的是A)double add(double a,double b) double s; s=a+b; return s; B)double add(double a,b) double s; s=a+b; return (s);C)double add(double a double b) double s;s=a+b;returns;D)double add(a,b) double a,b,s;s=a+b;return (s);考生答案: 正确答案: A38、 现有如下程序#include stdio.hint fun(int x) printf(x=%dn,+x);main() fun(12+5);则程序的输出结果是A)12 B)13 C)17 D)18考生答案: 正确答案: D39、 现有如下程序段#include stdio.hint aa(int x,int y);main() int a=24,b=16,c;c=aa(a,b);printf(%dn,c); int aa(int x,int y) int w;while(y) w=x%y;x=y;y=w;return x;则程序段的输出结果是A)8 B)7 C)6 D)5考生答案: 正确答案: A40、 下列程序的输出结果是#include stdio.h#define N 3#define M 3void fun(int aMN) printf(%dn,*(a1+2);main() int aMN;int i,j;for(i=0;iM;i+)for(j=0;j0&a10) c=(a+b)/2;else c=a*b/2;return c;main() int a=8,b=20,c;c=f(a,b);printf(%dn,c);A)随机数 B)80 C)28 D)14考生答案: 正确答案: D44、 阅读如下程序段,则程序段的执行后的输出结果为#include stdio.hmain() char c;int i;char count();int p(char);for(i=0;i30;i+) c=count();p(c);char count() char str=A;str+=1;return(str);p(char c) putchar(c);putchar(n);A)A B)B C)a D)b考生答案: 正确答案: B45、 阅读程序,则执行后的结果为 #include stdio.hmain() int i,m,n; for(i=0;in。 例如:m=12,n=8时,运行结果应该是495.000000。请在题目的空白处填写适当的程序语句,将该程序补充完整。#include #include float fun (int m, int n) int i;double p=1.0;for(i=1;i=m;i+) 【2】;for(i=1;i=n;i+) 【3】;for(i=1;i=m-n;i+) p=p/i;return p;main () clrscr();printf (p=%fn,fun (12,8);A 考生答案: 正确答案: p=p*i 正确答案: p=p/i3、 以下程序的输出结果是【4】。void fun() static int a=0;a+=2; printf(%d,a);main() int cc;for(cc=1;cc4;cc+) fun();printf(n);A 考生答案: 正确答案: 2 4 64、 以下程序运行结果是【5】 。long fib (int g) switch (g) case 0 return 0;case 1case2return 1; return (fib (g-1)+fib(g-2);main () long k;k=fib (5);printf (k=%(dn),k);A 考生答案: 正确答案: k=55、 以下程序的输出结果是【6】。unsigned fun6(unsigned num) unsigned k=1;do k *=num%10; num/=10; while (num);return k; main() unsigned n=26;printf(%dn, fun6(n);A 考生答案: 正确答案: 126、 以下函数的功能是【7】。float av(a, n)float a;int n; int i; float s;for(i=0, s=0; in; i+) s=s+ai;return s/n;A 考生答案: 正确答案: 求出数组元素平均值7、下面的函数fun的功能是将形参x的值转换成二进制数,所得二进制数的每一位放在一维数组中返回,二进制的最低位放在下标为0的元素中,其他依次类推,请填空。 fun(int x,int b) int k=0,r;do r=x% 【8】 ; b 【9】 =r; x/= 【10】 ; while(x); 正确答案: 2 正确答案: k+ 正确答案: 28、 下面函数的功能是将一个字符串的内容颠倒过来,请填空。void fun(char str) int i,j, 【11】 ; for(i=0,j= 【12】 ;ij;i+,j-) k=stri;stri=strj;strj=k; 正确答案: k 正确答案: strlen(str)-19、现有如下程序段,则程序段的输出结果为 【13】 。#include stdio.hint fun() static int k;return k;main() int m;m=fun();printf(%dn,m);A 考生答案: 正确答案: 010、下面函数是一个求阶乘的递归调用函数。请填空。int fun(int k) if(k=1) 【14】 ;else return( 【15】 ); 正确答案: return 1 正确答案: k*fun(k-1) 11、 下面程序运行结果是_long fib( int g)switch(g)case 0: return 0; case 1:case 2: return 1; return(fib(g-1)+fib(g-2); main() long k; k=fib(7); printf(“k=%dn”,k);12、以下程序的运行结果: f(int a ) int i=0; while(ai=10) printf(“%d”,ai); i+; main() int a=1,5,10,9,11,7; f(a+1); 13、 以下程序的运行结果为: main() int a33=1,3,5,7,9,11,13,15,17;sum=func(a);printf(“nsum=%dn”,sum);func(int a3)int i,j,sum=0; for(i=0;i3;i+) for(j=0;jb?a:b; return(c); main() int a=8; printf(“%d”,max(a,b);19、 以下程序的运行结果是:_int n=1;main() static int x=5;int y;y=n;printf(“MAIN:x=%2d y=%2d n=%2dn”, x,y,n);func();printf(“MAIN:x=%2d y=%2d n=%2dn”,x,y,n);func();func( ) static int x=4; int y=10; x=x+2; n=n+10; y=y+n; printf(“FUNC:x=%2d y=%2d n=%2dn”,x,y,n);20、以下程序的运行结果是_ main() increment(); increment(); increment(); increment() static int x=0; x+=1; printf(“%d”,x);21、 以下程序的运行结果是_ main( ) incx( ); incy( ); incx( ); incy( ); incx( ); incy( ); incx( ) int x=0; printf(“x=%dt”,+x); incy( ) static int y=0; printf(“ny=%dn”,+y);22、 以下程序的运行结果是( ) #define MAX 10 int aMAX,i; main() printf(“n”);sub1();sub3(a);sub2();sub3(a); sub2() int aMAX,i,max; max=5; for(i=0;imax;i+) ai=i; sub1() for(i=0;imax;i+) ai=i+i; sub3(int a )int i; for(i=0;iMAX;i+) printf(“%d”,ai) ; printf(“n”); 23、下面程序的运行结果是( ) void num() extern int x,y; int a=15,b=10; x=a-b; y=a+b; int x,y; main() int a=7,b=5; x=a+b; y=a-b; num(); printf(“%d,%dn”,x,y); 24、. 以下程序的运行结果是( ) main() int a=2,i; for(i=0;i3;i+) printf(“%4d”,f(a); f(int a) int b=0;static int c=3; b+;c+; return(a+b+c) ; 25、 如果输入的值是-125,以下程序的运行结果是( ) #include main() int n; scanf(“%d”,&n); printf(“%d=”,n); if(n0) printf(“); n=fabs(n); fun(n); fun(int n) int k,r; for(k=2;k1) printf(“*”); r=n%k; if(n!=1) printf(“%dn”,n);26、 以下程序的运行结果是( ) main() increment(); increment(); increment(); increment() int x=0; x+=1; printf(“%d”,x);27、若输入一个整数10,以下程序的运行结果为( ) main() int a,e10,c,i=0; scanf(“%d”,&a); while(a!=0) c=sub(a); a=a/2; ei=c; i+; for(;i0;i-) printf(“%d”,ei-1); sub(int a) int c; c=a%2; return c; 28、以下程序的运行结果是( ) main() int x=2,y=3,z=0; printf(“x=%d ,y=%d,z=%dn”,x,y,z); add(x,y,z); printf(“x=%d,y=%d,z=%dn”,x,y,z); add(int x,int y,int z) z=x+y; x=x*x; y=y*y; printf(“x=%d,y=%d,z=%dn”,x,y,z);
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 中学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!