如果已经定义了方法int f(bool b, int i),则以下方法中,哪一个不是合法的重载方法()。A、double f(bool b, int i)B、int f(double d, int i)C、int f(bool b,int i, double d)D、double f(bool d, int j)

题目

如果已经定义了方法int f(bool b, int i),则以下方法中,哪一个不是合法的重载方法()。

  • A、double f(bool b, int i)
  • B、int f(double d, int i)
  • C、int f(bool b,int i, double d)
  • D、double f(bool d, int j)
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

已知程序中已经定义了函数test,其原型是int test(int,int,int);,则下列重载形式中正确的是

A.char test (int,int,int);

B.double test(int,int,double);

C.int test(int,int,int=O);

D.float test(int,int,float=3.5F);


正确答案:B
解析:本题考核函数重载。所谓函数重载,是指同一个函数名可以对应着多个函数的实现。每种实现对应着一个函数仲,这些函数的名字相同,但是函数的参数的类型不同。这就是说,进行函数重载时,要求同名函数在参数个数上不同,或者参数类型上不同。不可以根据函数返回值类型来重载函数。A选项中定义只是函数的返回类型不同,不符合重载的条件,C选项也不符合。对于D选项,形参列表中带有默认参数,如果原型的最后一个也带有默认参数,则会造成不知道该调用哪个函数的错误。

第2题:

己知有定义

const int D二5;

int i=1;

double f=0.32:

char c=15;

则下列选项错误的是

A.++i;

B.D--;

C.C++;

D.--f;


正确答案:B

第3题:

定义int a; float f; double i; 表达式 15+i*f+ˊAˊ的值是 _______ 。

A.float

B. int

C. char

D. double


参考答案:D

第4题:

下列程序的输出结果是()。includeint f(int a,int b);main(){int i=2,p,j,k; j=i;k=++i

下列程序的输出结果是( )。 #include <stdio.h> int f(int a,int b); main() { int i=2,p,j,k; j=i; k=++i; p=f(j,k); printf("%d",p); } int f(int a,int b) { int c; if(a>b)c=1; else if(a= =b) c=0; else c=-1; return(c); }

A.-1

B.1

C.2

D.编译出错,无法运行


正确答案:A
解析:函数调用相当于f(2,3),程序运算结果为-1。

第5题:

有以下程序: include using namespace std; int f(int); int main() {int i;for(i=0;

有以下程序:

include <iostream>

using namespace std;

int f(int);

int main()

{

int i;

for(i=0;i<5;i++)

cout<<f(i)<<" ";

return 0;

}

int f(int i)

{

static int k=1;

for(;i>0;i--)

k+=i;


正确答案:1 2 5 11 21
1 2 5 11 21 解析:函数f()中定义了一个内部静态变量k,其作用域仍在定义它的函数内。但该类型变量采用静态存储分配,当函数执行完,返回调用点时,该变量并不撤销,其值将继续保留,若下次再进入该函数时,其值仍然存在。内部静态变量有隐含初值0,并且只在编译时初始化一次。

第6题:

若已经声明了函数原型“void fun(int a,double b=0.0);”,则下列重载函数声明中正确的是( )。

A.void fun(int a=90,double b=0.0);

B.int fun(int a,double B);

C.void fun(double a,int B);

D.bool fun(int a,double b=0.0);


正确答案:C
解析:此题考查的是函数重载。在C++语言中,允许定义一系列函数名相同,但形参的个数和类型不完全相同的函数,即函数的重载。重载函数对返回值类型不做要求,返回值类型也不参与区分函数的重载形式。选项A)中参数表相同,返回类型也相同,所以错误。选项B),选项D)中相同参数表,不同返回类型所以错误。

第7题:

请补充函数fun(),该函数的功能是:计算N×N维矩阵元素的方差,结果由函数返回。维数N在主函数中输入。例如:

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

试题程序:

include <stdio.h>

include <conio.h>

include <stdlib.h>

include <math.h>

define N 20

double fun(【 】,int n)

{

int i,j;

int k;

double s=0.0;

double f=0.0;

double aver=0.0;

double sd=0.0;

for(i=0;i<n;i++)

for(j=0;j<n;j++)

s+=a[i][j];

aver=【 】;

for(i=0;i<n;i++)

for(j=0;i<n;j++)

f+=(a[i][j]-aver)*(a[i][j]-aver);

f/(n*n);

sd=【 】;

return sd;

}

main()

{

int a[N][N];

int n;

int i,j;

double s;

clrscr();

printf("***+Input the dimension of

array N*****\n");

scanf("%d",&n);

printf("***** The array *****\n");

for(i=0;i<n;i++)

{

for(j=0;j<n;j++)

{

a[i][j]=rand()%50;

while(a[i][j]=0)

a[i][j]=rand()%60;

printf("%4d",a[i][j]);

}

printf("\n\n");

}

s=fun(a,n);

printf("******* THE RESULT *******\n");

printf("%4.3f\n",s);

}


正确答案:int a[][N] s/(n*n) sqrt(f)
int a[][N] s/(n*n) sqrt(f) 解析:第一空;由主函数main()中对函数fun()的调用格式,可以知道,函数fun()的第一个参数是N×N的二维整型数组。第二空:平均值等于所有元素的累加和除以个数。第三空;根据公式,方差sd等于对变量f开平方,这里注意对数学库函数的调用。

第8题:

定义int a; float f; double i; 6.定义表达式15+i*f+ˊAˊ的值是() 。

A.float

B. int

C. char

D. double


参考答案:D

第9题:

分析以下程序执行结果【】。 include int f (int x, int y){return x,y; } double f (d

分析以下程序执行结果【 】。

include<iostream.h>

int f (int x, int y){

return x,y;

}

double f (double x, double y) {

return x,y;

}

void main() {

int a=4, b=6;

double c=2.6, d=7.4;

cout<<f (a, b) <<","<<f (c, d) <<end1;

}


正确答案:24 19.24
24, 19.24

第10题:

设变量a是int型,f是int型,i是double型,则表达式10+a+i*f值的数据类型为A.int B.float C.double D.不确定


正确答案:C
在本题中,分别定义了一个整型变量a和f、双精度型变量i。然后求表达式10+a+i*f结果的数据类型。
在C语言中,对应不同类型数据间的运算,将运算结果保存为精度较高的操作数类型,如整型与浮点型操作数据进行相关的运算,运算结果被自动保存为浮点型。在本题给出的运算表达式中,参与运算的操作数精度最高的为双精度型,因此,最后的计算结果应该被保存为双精度类型,本题正确的答案选C。

更多相关问题