C++语言程序设计

设存在函数int max(int,int)返回两参数中较大值,若求22,59,70三者中最大值,下列表达式不正确的是()。A、int m = max(22,max(59,70));B、int m = max(max(22,59),70);C、int m = max(22,59,70);D、int m = max(59,max(22,70));

题目

设存在函数int max(int,int)返回两参数中较大值,若求22,59,70三者中最大值,下列表达式不正确的是()。

  • A、int m = max(22,max(59,70));
  • B、int m = max(max(22,59),70);
  • C、int m = max(22,59,70);
  • D、int m = max(59,max(22,70));
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

以下函数 findmax 拟实现在数组中查找最大值并作为函数值返回 , 但程序中有错导致不能实现预定功能

#define MIN -2147483647

int findmax (int x[],int n)

{ int i,max;

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

{ max=MIN;

if(max<x[i]) max=x[i];}

return max;

}

造成错误的原因是

A) 定义语句 int i,max; 中 max 未赋初值

B) 赋值语句 max=MIN; 中,不应给 max 赋 MIN 值

C) 语句 if(max<x[i]) max=x[i]; 中判断条件设置错误

D) 赋值语句 max=MIN; 放错了位置


正确答案:D

第2题:

下列说法不正确的是

A.int *fun();----fun是一个返回int指针的函数

B.int (*fun)();---fun是一个返回int指针的函数

C.int (*array[5])();----array是一个有5个元素的数组,每一个元素都是一个函数指针,指向一个返回int的函数

D.int (*fun(int))(int);----fun是带有一个int参数的函数,返回值是一个函数指针,这个指针指向带有一个int参数并返回int的函数


正确答案:B
解析:该函数中fun是一个函数指针。指向一个返回int的函数。

第3题:

请将以下程序中的函数声明语句补充完整

#include <stdio.h>

int【12】 ;

main( )

{int x,y,(*p)();

p=max;

printf(“&d\n”,&x,&y);

}

Int max(int a,int b)

{return (a>b/a:b);}


正确答案:

12max(int a,int b)

第4题:

下列函数定义中,会出现编译错误的是

A.max(int x,int y,int *z) { *z=x>y ? x:y; }

B.int max(int x,y) { int z; z=x>y ? x:y; return z; }

C.max(int x,int y) { int z; z=x>y?x:y; return(z); }

D.int max(int x,int y) { return(x>y?x:y); }


正确答案:B
解析:定义函数时,若需要声明形式参数时,则每个形式参数都必须单独声明类型。

第5题:

设存在函数intmax(int,int)返回两参数中较大值,若求22,59,70三者中最大值,下列表达式不正确的是()

A、intm=max(22,max(59,70));

B、intm=max(max(22,59),70);

C、intm=max(22,59,70);

D、intm=max(59,max(22,70));


参考答案:C

第6题:

请编写两个函数int sum_of_powers(int k,int n),powers(int m,int n),求1~6的k次方的和,sum_of_powers中参数k和n分别表示k次方和所求数列中最大的一个自然数,最后返回所求值,powers中参数m和n分别表示m为底数n为指数,最后返回所求值。要求使用for循环和函数嵌套(int sum_of_powers中调用powers)实现算法。输出结果如下:

sum of 4 powers of intergers from 1 to 6=2275

注意:部分源程序已存在文件test25_2.cpp中。

请勿修改主函数main和其他函数中的任何内容,仅在函数sum_of_powers和powers的花括号中填写若干语句。

文件test25_2.cpp的内容如下:

include<iostream.h>

const int k(4);

const int n(6);

int sum_of_powers(int k,int n),powers(int m,int n);

void main()

{

cout<<"sum of "<<k<<" powers Of intergers from 1 to "<<n<<"=";

cout<<sum_of_powers(k,n)<<endl;

}

int sum_of_powers(int k,int n)

{

}

int powers(int m, int n)

{

}


正确答案:(1)int sum_of_powers(int kint n) { int sum(0); for(int i=1;i=n;i++) sum+=powers(ik); return sum; } (2) int powers(int m int n) { int iproduct(1); for(i=1;i=n;i++) product*=m; return product; }
(1)int sum_of_powers(int k,int n) { int sum(0); for(int i=1;i=n;i++) sum+=powers(i,k); return sum; } (2) int powers(int m, int n) { int i,product(1); for(i=1;i=n;i++) product*=m; return product; } 解析:本题考查的是考生使用for循环和函数嵌套解决一般问题的能力。注意最后将计算的值返回。

第7题:

以下程序中的select()函数功能是:在N行M列的二维数组中选出一个最大值作为函数值返回,并通过形参传回此最大值的行下标。请填空完成此程序。

include<iostream>

define N 3

define M 3

using namespace std;

int select(int a[N][M],int *n)

{

int i,j,row=0,colum=0;

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

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

if(a[i][j]>a[row][colum])

{

row=i;

colum=j;

}

*n=【 】;

return 【 】;

}

int main()

{

int a[N][M]={9,11,23,6,1,15,9,17,20};

int max,n;

max=select(a,&n);

cout<<"max="<<max<<"line="<<n<<end1;

return 0;

}


正确答案:row a[row][colum]
row a[row][colum] 解析:通过对题意的分析不难看出:在select()函数中,变量row的作用是用来标记最大元素的行下标值,colum的作用是用来记下最大元素的列下标:函数select()通过循环求得数组的最大值的行下标、列下标并分别存放在变量row和colum中。根据题意,应把行下标赋值给形参指针变量n,这样就通过地址传递的方式改变了主调函数中的实参,即把最大值的行下标传回到主调函数中。然后把最大值a[row][colum]作为函数返回值。

第8题:

请将以下程序中的函数声明语句补充完整。

#include <stdio.h>

int 【 1 2 】 ;

main()

{ int x,y,(*p)();

scanf("%d%d",&x,&y);

p=max;

printf("%d\n",(*p)(x,y));

}

int max(int a,int b)

{ return(a>b?a:b);}


正确答案:

第9题:

下列函数定义中,会出现编译错误的是 ______。

A.max(int x,int y,int *z) { *z=x>y? x:y;}

B.int max(int x,y) {int z; z=x>y? x;y; return z; }

C.max(int x,int y) { int z; z=x>y? x:y; return(z); }

D.int max(int x,int y) { return(x>y?x:y);}


正确答案:B
解析:本题考查函数的定义。选项B中函数形参y没有说明数据类型。

第10题:

主调函数中的两个变量a和b,要求调用函数交换a、b的值,返回交换结果,则以下正确的函数是______。

A.funa(int*x,int*y) {int*p; *p=*x;*x=*y;*y=*p; }

B.funb(int x,int y) {int t; t=x;x:y=y=t;}

C.func(int*x,int*y) {*x=*y;*y=*x;}

D.fund(int *x,int*y) {*x=*x+*y;*y=*x-*y;*x=*x-*y;}


正确答案:D
解析:选项A中指针变量p没有明确的指向,选项B是值传递方式,显然不能改变实参中的值,选项C不能完成交换,实参中的值都变成一样的,只有选项D是正确的。

更多相关问题