c语言函数练习题附答案
函数
一、选择题
在c语言中以下不正确的说法是:( )
实参可以是常量、变量、或表达式
形参可以是常量、变量或表达式
实参可以为任意类型
形参应与其对应的实参类型一致
以下程序有语法性错误,有关错误原因的正确说法是:( )
int main()
{ int G=5,k;
void prt_char();
……
k=prt_char(G);
……
}
语句void prt_char();有错,它是函数调用语句,不能用void说明
变量名不能使用大写字母
函数说明和函数调用语句之间有矛盾
函数名不能使用下划线
以下正确的说法是:( )
函数的定义可以嵌套,但函数的调用不可以嵌套
函数的定义不可以嵌套,但函数的调用可嵌套
函数的定义和调用均不可以嵌套
函数的定义和调用均可以嵌套
若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是:( )
A)函数调用可以作为独立的语句存在
B)函数调用可以作为一个函数的实参
C)函数调用可以出现在表达式中
D)函数调用可以作为一个函数的形参
以下所列的各函数首部中,正确的是:( )
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)
在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是:( )
A、 地址传递 B、 单向值传递
C、 由实参传给形参,再由形参传回实参 D、 传递方式由用户指定
有以下程序
void fun (int a,int b,int c)
{ a=456; b=567; c=678;}
int main()
{ int x=10, y=20,z=30;
fun (x,y,z);
printf("%d,/%d,%d\n",x,y,z);
return 0;
}
输出结果是:( )
A、30,20,10 B、10,20,30 C、456,567,678 D、678,567,456
下述函数定义形式正确的是( )。
A、 int f(int x; int y) B、 int f(int x,y)
C、 int f(int x, int y) D、 int f(x,y: int)
关于函数参数,说法正确的是( )。
A、 实参与其对应的形参各自占用独立的内存单元
B、 实参与其对应的形参共同占用一个内存单元
C、 只有当实参和形参同名时才占用同一个内存单元
D、 形参是虚拟的,不占用内存单元
一个函数的返回值由( )确定。
A、 return语句中的表达式B、 调用函数的类型
C、 系统默认的类型D、 被调用函数的类型
以下正确的函数形式是( )。
A、 double fun(int x,int y)
{ z=x+y; return z; }
B、 fun(int x,y)
{ int z; return z; }
C、 fun(x,y)
{ int x,y; double z; z=x+y; return z; }
D、 double fun(int x,int y)
{ double z; z=x+y; return z; }
下列函数中,能够从键盘上获得一个字符数据的函数是( )。
A、 puts( ) B、 putchar( ) C、 getchar( ) D、 gets( )
以下程序的输出结果是( )。
fun(int a,int b,int c)
{
c=a+b;
}
int main()
{int c;
fun(2,3,c);
printf(“%d\n”,c);
return 0;
}
A、 2 B、 3 C、 5 D、 无定值
分析以下程序的运行结果( )。
func(int a,int b)
{
int temp=a;
a=b; b=temp;
}
int main()
{
int x,y;
x=10; y=20;
func(x,y);
printf((“%d,%d\n”,x,y);
return 0?;
}
A、 10,20 B、10,10 C、 20,10 D、20,20
有以下程序 int?f(int?n) {?if(n==1)?