设存在函数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));

相似考题
参考答案和解析
正确答案:C
更多“设存在函数int max(int,int)返回两参数”相关问题
  • 第1题:

    下列说法不正确的是

    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的函数。

  • 第2题:

    设存在函数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

  • 第3题:

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

    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
    解析:定义函数时,若需要声明形式参数时,则每个形式参数都必须单独声明类型。

  • 第4题:

    请将以下程序中的函数声明语补充完整。 include int【】 main(){int x,y,(*p)(); sccanf("

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

    include<stdio.h>

    int【 】

    main()

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

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

    p=max;

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

    }

    int max(int a,int b)

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


    正确答案:max(int aint b)
    max(int a,int b) 解析:在C语言中,除了主函数外,对于用户定义的函数都遵循“先定义,后使用”的规则,若把函数定义放在调用之后,应该在调用之前对函数进行说明(或称为函数原型说明)。
    函数的说明形式为:
    类型名 函数名(参数类型1,参数类型2……)
    本题是通过max()函数来求出a和b中较大的数,由于max()函数的位置在main()函数之后,想要在main()函数中调用max()函数,就必须先在main()函数之前对max()函数进行说明,因为当在所有函数外部、被调用之前说明函数时,在对函数进行说明的语句后面所有位置上都可以对该函数进行调用。所以,在横线上应该填上被调函数的说明语句即 max(int a,int b) 。

  • 第5题:

    语句int(*ptr)的含义是( )。

    A.ptr是一个返回值为int的函数

    B.ptr是指向int型数据的指针变量

    C.ptr是指向函数的指针,该函数返回一个int型数据

    D.ptr是一个函数名,该函数的返回值是指向int型数据的指针


    正确答案:C
    本题考查的是指向函数的指针。函数指针定义的基本格式为:类型标识符(*指针变量名)。“类型标识符”为函数返回值的类型。

  • 第6题:

    下面函数的功能是找出一维数组元素中最大的值和它所在的下标,最大值的和它所在的下标通过形参传回。#include <stdlib.h>#include <stdio.h>void fun(int a[ ],int n,int *max,int *d){ int i; *max=a[0]; *d=0; for(i=0;;i++) if(*max<) { *max=a[i];*d=i; }}


    正确答案:i<n,a[i]
    在本题中,fun函数的功能是找出一维数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。要通过形参传回值,那么需要采用的传值方式是传址传值法,即传递地址,指针或数组能实现传址传值。
    在程序中,fun函数带了四个形参变量,其中数组a是需要被处理的一维数组,n是数组中元素的个数,指针变量max和d分别用于返回最大值和下标。
    在程序体中,定义一个循环变量i,并给指针变量max和d进行赋初值操作,然后执行for循环,从程序中很明显地能看出,第12空所处的位置正是for循环的结束条件,结合题目的要求,我们不难推断出这个循环的作用是找出数组中最大的元素及其下标,那么循环结束的条件是遍历完数组中的元素,即循环变量i小于数组中元素的个数,用表达式表示为i<n。
    第13空是一个条件判断语句的条件部分,条件如果成立,则将当前数组的元素值赋给*max,并用*d记录当前值的数组下标。结合题目的要求,我们不难推断出该条件判断语句的作用是判定当前最大值max与所取数组元素的大小。因此,本空处需要填写的内容是a[i]。

  • 第7题:

    下列函数定义不正确的是 ( )

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

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

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

    D.int max( ) {}


    正确答案:C

  • 第8题:

    设int & max(int &,int &)返回两参数中较大者,如有两整型变量 int a=5;int b=10;在执行max(a,b)++后,a,b的值分别为

    A.5,10

    B.6,10

    C.5,11

    D.6. 11


    正确答案:C
    考点:本题主要考查知识点为引用作为函数参数透析:执行max(a,b)++后,函数返回变量b后加1,即b=11.因为函数参数采用的引用方式,使用改变的是实参变量b的值。

  • 第9题:

    根据函数原型“int FF(int a[], int n)”,编写函数定义,计算并返回数组a[n]中所有元素之和。

  • 第10题:

    有函数int max(int x,int y){float z=2.5; return(z);则返回值是()

    • A、2
    • B、2.5
    • C、3
    • D、要看实参

    正确答案:A

  • 第11题:

    单选题
    以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能。#define MIN -2147483647int fingmax (int x[],int n){ int i,max; for(i=0;i
    A

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

    B

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

    C

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

    D

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


    正确答案: A
    解析:
    本题中for循环中首先将MIN值赋值给max,然后用x[i]与max的值比较。每次都是将MIN值与x[i]值进行比较,所以无论x[i]的值是什么,都不会影响if的判断语句,max=x[i]始终执行。所以函数返回的是数组中最后一个元素的值。程序的错误在于max=MIN的位置,for循环之前应先执行max=MIN。所以答案选择D选项。

  • 第12题:

    单选题
    有函数int max(int x,int y){float z=2.5; return(z);则返回值是()
    A

    2

    B

    2.5

    C

    3

    D

    要看实参


    正确答案: A
    解析: 暂无解析

  • 第13题:

    以下程序中的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]作为函数返回值。

  • 第14题:

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

    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没有说明数据类型。

  • 第15题:

    主调函数中的两个变量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是正确的。

  • 第16题:

    阅读以下函数说明和C语言函数,将应填入(n)处的字句写在答题纸的对应栏内。

    【函数2.1说明】

    递归函数sum(int a[], int n)的返回值是数组a[]的前n个元素之和。

    【函数2.1】

    int sum (int a[],int n)

    {

    if(n>0) return (1);

    else (2);

    }

    【函数2.2说明】

    有3个整数,设计函数compare(int a,int b,int c)求其中最大的数。

    【函数2.2】

    int compare (int a, int b, int c )

    { int temp, max;

    (3) a:b;

    (4) temp:c;

    }

    【函数2.3说明】

    递归函数dec(int a[],int n)判断数组a[]的前n个元素是否是不递增的。不递增返回 1,否则返回0。

    【函数2.3】

    int dec( int a[], int n )

    {

    if(n<=1) return 1;

    if(a[0]<a[1]) return 0;

    return (5);

    }


    正确答案:(1)a[n-1]+sum(an-1)或者a[0]+sum(a+1n-1); (2)return 0; (3)temp=(a>b)? (4)max=(temp>c)? (5)dec(a+1n-1);
    (1)a[n-1]+sum(a,n-1)或者a[0]+sum(a+1,n-1); (2)return 0; (3)temp=(a>b)? (4)max=(temp>c)? (5)dec(a+1,n-1); 解析:本题考查C语言函数和一些基本运算。
    下面我们分别来分析这几个函数。在函数2.1中,题目要求用此递归函数求数组前 n个元素之和。递归函数的特点是在函数体中不停地调用函数本身,只是将其函数的参数范围改变。题目中要求我们求数组前n个元素之和,我们可以这样理解,即前n个元素之和等于第n个元素加上前n-1个元素之和,现在的问题转化成如何求前n-1个元素之和。同样的道理,可以将求前n-1个元素之和转化成求前n-2个元素之和,直到这个数小于0。从函数2.1的代码中可以知道,在计算以前,首先判断n与0的关系,如果n小于0,说明数组中无元素,因此,返回0值;如果n大于等于0,说明数组中有元素,应该返回的结果是第n个元素加上前n-1个元素之和,而前n-1个元素之和是调用函数本身来计算的。因此,第(1)空和第(2)空的答案分别是a[n-1)+sum(a,n-1),return()。
    在函数2.2中,题目要求我们在三个数中取最大数,在数学中,我们从三个数中取最大数时,一般是首先拿其中两个数比较,取较大的数再与第三个数比较,再取其较大的数,这个数就是三个数中的最大数。从函数2.2的代码中知道,三个数a、b、c,两个整型变量temp与max。根据求三个数中最大数的数学过程和函数中已给出的代码可知,第(3)空处语句应该为temp=(a>b)?a:b,求得a、b中较大数并存放在变量temp中。第(4)空处语句为max=(temp>c)?temp:c。
    在函数2.3中,题目要求判断数组a[]的前n个元素是否是不递增的。不递增返回1,否则返回0。要判断前n个元素是否是不递增的,需要判断前n-1个元素是否是不递增的,以及第n个元素与第n-1个元素的关系。此处与函数2.1一样,用的都是递归函数,只是出口不同,在函数2.1中,只要数组中没有元素了,递归结束,这里只要第n个元素大于第n-1个元素,则返回0,递归结束。又由if(a[0]a[1])语句可知,在每次调用函数时,都将其数组中的第一个元素与第二个元素比较来作为递归的出口,如果结果为假,就说明数组的前面两项的关系是不递增的,在下次调用中不用再考虑第一项。因此第(5)空应该是dec(a+1,n-1)。

  • 第17题:

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

    #d越lie 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
    解析:对max赋初值,应该要放在循环语句之前,不然每次循环都将是从MIN开始比较。

  • 第18题:

    编写函数int fun(int lim, int aa[MAX]),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求出的素数的个数。

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

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

    试题程序:

    include<conio.h>

    include<stdio.h>

    define MAX 100

    int fun(int lim, int se[MAX])

    {

    }

    main()

    {

    int limit,i,sum;

    int aa[MAX];

    clrscr();

    printf("输入一个整数");

    scanf("%d",&limit);

    sum=fun(limit,aa);

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

    {

    if(i%10==0&&i!=0) /*每行输出10个数*/

    printf("\n");

    printf("%5d ",aa[i]);

    }

    }


    正确答案:int fun(int lim int aa[MAX]) { int ijk=0; for(i=2;i=lim;i++) /*求出小于或等于lim的全部素数*/ { for(j=2;ji;j++) if(i%j==0) break; if(j>=i) aa[k++]=i;; /*将求出的素数放入数组aa中*/ } return k; /*返回所求出的素数的个数*/ }
    int fun(int lim, int aa[MAX]) { int i,j,k=0; for(i=2;i=lim;i++) /*求出小于或等于lim的全部素数*/ { for(j=2;ji;j++) if(i%j==0) break; if(j>=i) aa[k++]=i;; /*将求出的素数放入数组aa中*/ } return k; /*返回所求出的素数的个数*/ } 解析:在做这道题时,我们只需掌握素数的基本算法就可以了,一般表示素数的方法如下:
    for (j=2;ji;j++)
    if(i%j==0) break;
    if(j>=i)

  • 第19题:

    设存在函数 int sum(int,int)返回两个参数的和,若求20、45、100三个数的和,下列表达式不正确的是

    【 】

    A.int m=sum(20,45,100) ;

    B.int m=sum(sum(20,45),100);

    C.int m=sum(20,sum(45,100));

    D.int m=sum(45,sum(20,100));


    正确答案:A
    考点点击:本题主要考查的知识点为函数返回值为函数参数。要点透析:函数返回值作为函数参数,该返回值类型必须与参数的类型一致,B、C、D项真确;sum函数只有两个参数,而A选项有三个参数,参数个数不同,故A项错误;

  • 第20题:

    JavaScript 中定义一个求两个整数较大数函数的正确形式是( )。

    A.function: max(int x,int y){}
    B.function = max(x,y){}
    C.function int max(int x,int y){}
    D.function max(x,y){}

    答案:D
    解析:

  • 第21题:

    根据函数原型"int MM(int a[],int m)",编写函数定义,计算并返回数组a[m]中元素最大值和最小值之差。

  • 第22题:

    声明一个参数为int型,返回值为long型的函数指针;声明类A的一个成员函数指针,其参数为int型,返回值long型。


    正确答案:long(*p_fn1)(int);Long(A::*p_fn2)(int)

  • 第23题:

    单选题
    设存在函数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));


    正确答案: D
    解析: 暂无解析