首页 > 试题广场 >

以下程序 #include &n...

[不定项选择题]
以下程序
#include<iostream>
using namespace std;
template <typename T>
T Max(T* a, int n) {
T max=___________;
for(int i=1;i<n;i++)
    if(a[i]>max) max=a[i];
    return max;
}
int main() {
    int a[10]={3,7,5,0,2,1,8,4,9,6},*p=a+3;
    cout<<Max(p,7);
    return 0;
}
运行结果是9,请为横线处选择合适的程序()
  • *a
  • a[0]
  • 0
  • a[3]
不用纠结了,就是一道垃圾题目
发表于 2019-09-12 10:21:46 回复(1)
如果针对这道题,四个选项都是对的
但是A和B是通用的
做点计算机基础题真不容易
这尼玛就是文字游戏
发表于 2019-10-09 16:05:05 回复(1)
在循环比较中i是从1开始的,如果是后两个选项,则a0的值会被忽略,假如最大值恰好是a0,这个函数不就找不出来
发表于 2020-07-25 16:04:07 回复(2)
T的类型都不确定,初始化个0,我看不懂这答案
发表于 2019-08-17 17:36:46 回复(3)
傻狗题目 屏蔽就完事了
发表于 2021-02-10 12:39:56 回复(1)
出题人在***,你咋不去**
发表于 2021-10-26 19:52:31 回复(0)
D选项
如果把*p=a+3传入Max中,那么max=a[3]=8???
发表于 2019-12-03 21:03:20 回复(0)
MAX函数为取一段区间内的最大值,也即是说,T max 初始化为小于等于9的任何数上面这段代码的返回值都是9.
发表于 2019-08-27 11:04:25 回复(0)
这里我说明一下
首先,知道形参a接收的值是p,也就是数组a的第四个元素的地址&a[3]。
其次,函数的功能是求一个区间的最大值,准确来说是求区间【0,2,1,8,4,9,6】中的最大值。
对于max变量初始化的值,只要在该区间中的任意一个即可。
所以,C可选,又因为*a == *(&a[3]) == a[3] == 0,A可选
此外,形参a[3]的值为数组a的第7个元素 ,即a[6] == 8,D可选。形参a[0]的值为数组a的第4个元素 ,即a[0] == 0,B可选
发表于 2022-11-30 14:46:50 回复(0)
ab肯定有用,这个cd这样玩没意义,那你还不如直接写个负数比较大小呢
发表于 2021-12-09 14:00:02 回复(1)
2023年还能看到上古时代的***题目,面向结果编程是吧,你直接max=9得了,都不用敲代码了,一眼看出来
发表于 2023-08-19 15:29:44 回复(0)
n=7不能遍历所有数组呀,这怎么得出最大值?
发表于 2019-09-03 20:37:01 回复(4)
牛客能不能保留高质量题,去除低质量题啊
发表于 2023-07-26 09:22:38 回复(0)
这题目哈哈

发表于 2023-07-19 10:27:22 回复(0)
这个题目  不管他p传什么值进去,还是要看n的值  再者他函数里面的for循环是从a[0]-a[n-1]的逐一比较;
如果是p所传入得值得数组下表大于n-1的话  那横线处的填法只能按cd的形式来了
发表于 2022-09-20 00:06:43 回复(0)
如果数组中有负数,那就不能选0了
发表于 2021-12-30 16:52:55 回复(1)
如果选D难道不怕越界
发表于 2020-11-18 22:54:56 回复(0)
c/d选项可以选,但是这样这个程序就感觉存在一个bug,如果后面数组元素换了一批,那我程序是不是也要改,这不是闲的蛋疼吗?
发表于 2024-08-26 12:06:04 回复(0)
给我气笑了
发表于 2023-12-31 11:27:48 回复(0)
这xx题肯定只选AD吧,明明都说了,合适的,而不是说能保证打印对的
发表于 2023-04-19 12:14:25 回复(0)