计算机二级

一个函数为void f(int,char ch='a'),另一个函数为void f(int),则它们( )。A.不能在同一程序中定义B.可以在同一程序中定义并可重载C.可以在同一程序中定义,但不可以重载D.以上三种说法均不正确

题目

一个函数为void f(int,char ch='a'),另一个函数为void f(int),则它们( )。

A.不能在同一程序中定义

B.可以在同一程序中定义并可重载

C.可以在同一程序中定义,但不可以重载

D.以上三种说法均不正确

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

一个函数为void f(int,char='a'),另一个函数为void f(int),则它们( )。

A.不能在同一程序中定义

B.可以在同一程序中定义并可重载

C.可以在同一程序中定义,但不可以重载

D.以上说法均不正确


正确答案:C
解析:只要满足参数不同的条件,就可以在同一程序中对同名的函数进行定义。但是由于其中一个函数有默认值,因此当程序中出现如下语句x=f(5)时,就会产生二义性,不能确定调用函数f(5)还是调用函数f(5,'a'),此时这两个函数不能重载。

第2题:

已知一个类A,类A有三个公有成员:void f1(int),void f2(int)和int a;定义指向类A成员函数的指针是( )。

A.A*p;

B.int A::*Pc=&A.a;

C.void(A::*pA) ();

D.void(A::*p


正确答案:C
解析:A定义了一个类的对象指针;B定义一个类A数据成员指针;C定义了一个类A的成员函数指针;D定义一个类A的对象指针数组。

第3题:

设有以下函数

void fun(int n,char * s) { …… }

则下面对函数指针的定义和赋值均是正确的是

A)void (*pf)(); pf=fun;

B)viod *pf(); pf=fun;

C)void *pf(); *pf=fun;

D)void (*pf)(int,char);pf=&fun;


正确答案:A

第4题:

一个函数为void f(int,char ch='a'),另一个函数为void f(int),则它们( )

A.不能在同一程序中定义

B.可以在同一程序中定义并可重载

C.可以在同一程序中定义,但不可以重载

D.以上说法均不正确


正确答案:C
解析:只要满足参数列表不同的条件,就可以在同一程序中对同名的函数进行定义。但是由于其中一个函数有默认值,因此当程序中出现语句“x=f(10);”时,就会产生二义性,不能确定调用函数R10)还是调用函数f(10,,a,),此时这两个函数不能重载。

第5题:

考虑下面的函数原型: void f(int a,int b=7,char c='@'); 下面的函数调用中,不合法的是

A.f(5)

B.f(5,8)

C.f(6,'&')

D.f(0,0,'@')


正确答案:C
解析:当一个函数中有多个默认参数时,则形参分布中默认参数应从右到左逐渐定义。在函数调用时,系统按从左到右的顺序将实参与形参结合,当实参的数组不足时,系统将按同样的顺序用说明或定义中的默认值来补齐所缺少的参数。在C)选项中,函数调用中只有两个实参,系统按从左到右的顺序将实参与形参结合时,实参'&'将赋值给血型形参b,显然则是非法的。

第6题:

类模板templateclass x{...},其中,友元函数f对特定类型T(如int),使函数 f(x);成为

类模板template<class T>class x{...},其中,友元函数f对特定类型T(如int),使函数 f(x<int>);成为x<int>模板类的友元,则其说明为( )。

A.friend void f();

B.friend void f(x<T>);

C.friend void A:: f()

D.friend void C<D:: f(x<T>);


正确答案:B

第7题:

一个函数为void(int,char='a'),另一个函数为void f(int),则它们( )。

A.不能在同一程序中定义

B.可以在同一程序中定义并可重载

C.可以在同一程序中定义,但不可以重载

D.以上说法均不正确


正确答案:C

第8题:

在下列原型所示的C++函数中,按“传值”方式传递参数的是( )。

A.void f1(int x);

B.void f2(int*x);

C.void f3(const int*x);

D.void f4(int&x);


正确答案:A
解析:此题考查的是函数参数的传递方式。函数参数的传递方式分为传值和传地址两种。选项B)和选项C)中函数的参数是指针,而指针作为函数参数传递的是地址:选项D)中函数的参数为引用,引用传递好比是给变量起了一个别名,表明传给函数的参数值就是它本身的地址,操作会影响到这个变量的值;只有选项A)中的函数参数为传值方式。

第9题:

若有以下程序:includevoid f(int n);main(){void f(int n); f(5);}void f(int n){prin

若有以下程序: #include<stdio.h> void f(int n); main() { void f(int n); f(5); } void f(int n) { printf("%d\n",n);}则以下叙述中不正确的是( )。

A.若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f

B.若在主函数前对函数f进行说明,则在主函数和其后的其他函数中都可以正确调用函数f

C.对于以上程序,编译时系统会提示出错信息:对f函数重复说明

D.函数f无返回值,所以可用void将其类型定义为无返回值型


正确答案:C
解析:f函数没有重复说明,在main函数中是对f函数声明,在main函数外则是对f函数的定义。

第10题:

若有以下程序#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
C语言规定,一个函数中调用另一个函数(即被调用函数)需要具备的条件有:
① 被调用的函数必须是已经存在的函数(是库函数或用户自己定义的函数)。
② 如果使用库函数,一般还应该在本文件开头用#include命令将函数调用有关库函数时所需要的信息“包含”到本文件中。
③ 如果使用自定义函数,而且该函数与调用它的函数在同一个文件中,一般还应该在主调函数中对被调用的函数做声明,即向编译系统声明将要调用此函数,并将有关信息通知编译系统。
在本题中,选项C是不正确的,从程序中我们可以看出,首先在主函数前面声明了函数f,按照函数调用的规则,主函数可以调用该函数了,但在主函数中又重复声明了该函数,其声明的形式完全一样,虽然重复了操作,但编译时系统不会报错,仍属于合理操作。

更多相关问题