当前位置:文档之家› C语言函数部分练习题

C语言函数部分练习题

本题序号:80下面程序的输出结果是____。

#include <stdio.h>main( ){ int x=10;{ int x=20;printf ("%d,", x);}printf("%d\n", x);}A 10,20B 20,10C 10,10D 20,20参考答案B本题序号:107下面程序的输出结果是____。

main(){ int a=2,i;for(i=0;i<3;i++)printf("%4d",f(a));}f(int a){ int b=0;static int c=3;b++;c++;return(a+b+c);}A 7 7 7B 7 10 13C 7 9 11D 7 8 9参考答案D本题序号:108下面程序的输出结果是____。

#include <stdio.h>try( ){ static int x=3;x++;return(x);}main( ){ int i, x;for(i=0; i<=2; i++ )x=try( );printf("%d\n", x);}A 3B 4C 5D 6参考答案D本题序号:109下面程序的输出结果是____。

#include <stdio.h>main( ){int x=1;void f1( ), f2( );f1( );f2(x);printf("%d\n", x);}void f1(void){int x=3;printf("%d ", x);}void f2( x )int x;{printf("%d ", ++x);}A 1 1 1B 2 2 2C 3 3 3D 3 2 1参考答案D本题序号:126下列叙述中错误的是A 主函数中定义的变量在整个程序中都是有效的。

B 在其它函数中定义的变量在主函数中也不能使用。

C 形式参数也是局部变量。

D 复合语句中定义的变量只在该复合语句中有效。

参考答案A本题序号:127若函数的形参为一维数组,则下列说法中正确的是A 调用函数时的对应实参必为数组名。

B 形参数组可以不指定大小。

C 形参数组的元素个数必须等于实参数组的元素个数。

D 形参数组的元素个数必须多于实参数组的元素个数。

参考答案B本题序号:128在函数的说明和定义时若没有指出函数的类型,则A 系统自动地认为函数的类型为整型。

B 系统自动地认为函数的类型为字符型。

C 系统自动地认为函数的类型为实型。

D 编译时会出错。

参考答案A本题序号:135下面叙述中正确的是A 对于用户自己定义的函数,在使用前必须加以说明。

B 说明函数时必须明确其参数类型和返回类型。

C 函数可以返回一个值,也可以什么值也不返回。

D 空函数不完成任何操作,所以在程序设计中没有用处。

参考答案C本题序号:136有如下程序:#incl ude “stdio.h”int m,n;ps1(){ printf(“please input the first code:”);scanf(“%d”,&m);m++;}ps2(){ printf(“please input the second code:”);scanf(“%d”,&n);n--;}main(){ int a=ps1();int b=ps2();printf(“%d,%d”,a,b);return(1);}则下列关于上述程序的说确的是()A 由于ps1和ps2函数没有return语句,所以调用形式a=ps1()和b=ps2()是错误的。

B 上述程序正确,a和b的值将分别为m和n的值。

C 上述程序正确,a和b的值为不确定的整数。

D 上述程序正确,a和b的值将都是零。

参考答案C本题序号:157下面正确的函数定义形式是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);参考答案A本题序号:158若调用一个函数,且此函数中没有return语句,则正确的说法是()该函数:A 没有返回值B 返回若干个系统默认值;C 能返回一个用户所希望的函数值;D 返回一个不确定的值参考答案D本题序号:159下面说法中不正确的是()在C语言中A 实参可以是常量、变量或表达式;B 形参可以是常量、变量或表达式;C 函数的参数是函数间传递数据的一种手段;D 实参个数应与对应的形参个数相等,类型匹配;参考答案B本题序号:162C语言允许函数返回值类型缺省定义,此时该函数隐含的返回值类型是A float型B int 型C long 型D double型参考答案BC语言规定,函数返回值的类型是由A return语句中的表达式类型所决定;B 调用该函数时的主调函数类型所决定;C 调用该函数时系统临时决定;D 在定义该函数时所指定的函数类型所决定;参考答案D本题序号:164下面函数调用语句含有实参的个数为()func((exp1,exp2),(exp3,exp4,exp5));A 1B 2C 5D 4参考答案B本题序号:165以下错误的描述是()函数的调用可以A 出现在执行语句中;B 出现在一个表达式中;C 为一个函数的实参;D 作为一个函数的形参;参考答案D本题序号:167若使用一维数组名作函数参数,则以下正确的说法是A 必须在主调用函数中说明此数组的大小;B 实参数组类型与形参数组类型可以匹配;C 在被调函数中,不需要考虑形参数组的大小;D 实参数组名与形参数组名必须一致;参考答案C本题序号:168下正确的说法是()。

如果在一个函数中的复合语句中定义了一个变量,则该变量A 只在该复合语句中有效B 在该函数中有效C 本程序中有效D 为非法变量参考答案A以下不正确的说法是A 在不同函数中可以使用相同的名字的变量;B 形式参数是局部变量;C 在函数定义的变量只在本函数围有效;D 在函数的复合语句中定义的变量在本函数围有效;参考答案D本题序号:173以下程序的正确的运行结果是()。

main(){int a=2,i;for(i=0;i<3;i++)printf(“%d”,f(a));}f(int a){int b=0;static int c=3;b++;c++;return(a+b+c);}A 7 7 7B 7 10 13C 7 9 11D 7 8 9参考答案D本题序号:174以下程序的正确运行结果是()。

#include<stdio.h>main(){int k=4;m=1,p;p=func(k,m);printf(“%d”,p);p=func(k,m);printf(“%d\n”,p);}func(int a,int b){static int m=0,i=2;i+=m+1;m=i+a+b;return(m);}A 8,17B 8,16C 8,20D 8,8参考答案A本题序号:309如果主调函数传递数组给被调函数,对函数形参的说明有错误的是A int a(float x[],int n)B int a(float *x,int n)C int a(float x[10],int n)D int a(float x,int n)参考答案D本题序号:310如果一个变量在整个程序运行期间都存在,但是仅在说明它的函数是可见的,这个变量的存储类型应该被说明为____。

A 静态变量B 动态变量C 外部变量D 部变量参考答案A本题序号:311在一个C源程序文件中,•若要定义一个只允许在该源文件中所有函数使用的变量,则该变量需要使用的存储类别是。

A externB registerC autoD static参考答案D本题序号:312在C语言中,函数的数据类型是指A 函数返回值的数据类型B 函数形参的数据类型C 调用该函数时的实参的数据类型D 任意指定的数据类型参考答案A本题序号:313已知如下定义的函数:fun1(int a){printf("\n%d",a);}则该函数的数据类型是____。

A 与参数a的类型相同B void型C 没有返回值D 无法确定参考答案A本题序号:449有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5));该函数调用语句中,含有的实参个数是A 3B 4C 5D 有语法错参考答案A本题序号:477以下所列的各函数首部中,正确的是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)参考答案C本题序号:483当调用函数时,实参是一个数组名,则向函数传送的是A 数组的长度B 数组的首地址C 数组每一个元素的地址D 数组每个元素中的值参考答案B本题序号:491以下正确的说法是A 用户若需调用标准库函数,调用前必须重新定义;B 用户可以重新定义标准库函数,若如此,该函数将失去原有含义;C 系统根本不允许用户重新定义标准库函数;D 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调;参考答案B本题序号:511在下列结论中,只有一个是错误的,它是A C语言允许函数的递归调用B C语言中的continue语句,可以通过改变程序的结构而省略C 有些递归程序是不能用非递归算法实现的D C语言中不允许在函数中再定义函数参考答案C本题序号:545函数用 return 语句返回计算 20! 的结果,此函数的类型应说明为______。

A intB longC unsigned longD 其它三个答案都不对参考答案D本题序号:619以下程序的输出结果是int f(){static int i=0;int s=1;s+=i;i++;return s;}main(){int i,a=0;for(i=0;i<5;i++)a+=f();printf("%d\n",a);}A 20B 24C 25D 15参考答案D本题序号:621若有以下程序#include "stdio.h"void f(int n);main(){void f(int n);f(5);}void f(int n){printf("%d\n",n);}则以下叙述中不正确的是A 若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数fB 若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数fC 对于以上程序,编译时系统会提示出错信息:提示对f函数重复说明D 函数f无返回值,所以可用void将其类型定义为无值型参考答案C本题序号:624在C语言中,形参的缺省存储类是A autoB registerC staticD extern参考答案A本题序号:636不合法的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[])参考答案C本题序号:637以下程序的输出的结果是int x=3;main(){int i;for (i=1;i}ncre(){staic int x=1;x*=x+1;printf(" %d",x);}A 3 3B 2 2C 2 6D 2 5参考答案C本题序号:658若各选项中所用变量已正确定义,函数fun过return语句返回一个函数值,以下选项中错误的程序是A main(){……x=fun(2,10);……}float fun(int a,int b){……}B float fun(int a,i nt b){……}main(){……x=fun(i,j);……}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){……}参考答案A本题序号:670有以下程序int fun1(duoble a){return a*=a;}int fun2(dpuble x,double y){double a=0,b=0;a=fun1(x); b=fun1(y); return (int)(a+b);}main(){double w;w=fun2(1.1,2.0);……}程序执行后变量w中的值A 5.21B 5C 6D 0参考答案A本题序号:683以下叙述中错误的是A C程序必须由一个或一个以上的函数组成B 函数调用可以作为一个独立的语句存在C 若函数有返回值,必须通过return语句返回D 函数形参的值也可以传回对应的实参参考答案D本题序号:688在C语言中关于函数的正确叙述是A 函数的定义和调用均可以嵌套B 函数的定义不可以嵌套,但函数的调用可以嵌套C 函数的定义和调用均不可以嵌套D 函数的定义可以嵌套,但函数的调用不可以嵌套参考答案B本题序号:700在以下对C语言的描述中,正确的是A 在C语言中调用函数时,只能将实参的值传递给形参,形参的值不能传递给实参B C语言的函数既可以嵌套定义又可以递归定义C 函数必须有返回值,否则不能使用函数D C语言程序中有关调用关系的所有函数必须放在同一源程序文件中参考答案A本题序号:702若用数组名作为函数调用时的实参,则实际上传递给形参的是A 数组首地址B 数组的第一个元素值C 数组中全部元素的值D 数组元素的个数参考答案A本题序号:733有以下程序int f1(int x,int y){return x>y?x:y;}int f2(int x,int y){return x>y?y:x;}main(){int a=4,b=3,c=5,d=2,e,f,g;e=f2(f1(a,b),f1(c,d));f=f1(f2(a,b),f2(c,d));g=a+b+c+d-e-f;printf("%d,%d%d ",e,f,g);}程序运行后的输出结果是()。

相关主题