[牛客网]错题整理(1)

牛客网错题集(1)

1.int main(int argc ,char** argv)

{

    int n = 9, i;

    for (i = 1; i<argc; i++)

    n = n * 10 + *argv[i] - '0';

    printf("%d\n", n);

    return 0;

}

经编译连接生成的可执行文件 tt.exe 。若执行输入以下命令行 tt 12 345 678 ,则程序运行的输出结果是()

答案:9136

解析:输入tt 12 345 678时,argc == 4

argv == {“tt”, "12", "345", "678"}

*argv[i]分别取了 1, 3,6

for循环后,得到9136

 

2.代码可以通过编译吗?如果不能应该如何修改?

template<class T> class Foo{

        T tVar;

    public:

        Foo(T t) : tVar(t) { }

};

template<class T> class FooDerived:public Foo<T>

{

};

int main()

{

    FooDerived<int> d(5);

    return 0;

}

答案:编译错误,可以在FooDerived类中添加一个构造函数解决问题。

解析:当基类构造函数需要外部传递参数才能进行初始化时,派生类必须显式定义构造函数,为基类传递参数;基类如果不需要传递或者可以不传递参数,派生类可以不用显式定义构造函数。

 

3.下面是一段c程序:

void foo(int b[][3])

{    

    ++b;    

    b[1][1]=9;

}

void main()

{   

    int a[3][3]={{1,2,3},{4,5,6},{7,8,9}}; 

    foo(a);  

    printf(“%d”,a[2][1]);

}

这段程序的输出是()

答案:9

解析:数组传递了首地址,b[0][0]指向数组a[0][0],但是执行++b后,b[0][0]指向a[1][0],因此b[1][1]就是a[2][1],b[1][1]=9即a[2][1]=9。

 

4.turbo c环境下,下面程序运行的结果是()

int main()

{

   printf("\n");

   int a[5] = {1, 2, 3, 4, 5};

   int *p, **k;

   p = a;

   k = &p;

   printf("%d", *(p++));

   printf("%d", **k);

   return 0;

}

答案:12

解析:程序首先定义了一个一维数组a,赋其初值,并定义一个同类型的指针变量p和一个指向指针的指针变量k,然后让指针变量p指向数组的首地址,接着将指针变量p的地址值赋给指向指针的指针变量k。在第一条输出语句中,首先我们需要弄清楚*(p++)的作用,它是先调用指针变量p的值,然后使其自加,输出效果等价于*p,因此,最后输出的结果是数组中的第一个元素。在第二条输出语句中,我们需要弄明白**k的作用,指向指针的指针变量类似于指针变量,如果用**k表示一个数值,可以确定这条输出语句的输出结果是一个数值,而非地址,从表达式k=&p可以看出,k的值是指针变量p的地址值,p的值改变后,k能实时得到改变,那么在第一条输出语句对p的改变,在第二条输出语句中得到了体现。因此,**k输出的是数组中的第二个元素.

<think>好的,我现在需要帮助用户获取华为OD机考相关的Java题库整理资料。首先,我要回忆用户提到的引用内容。用户提供了两个引用,一个是关于华为OD机考真题的示例,另一个是机考攻略和注意事项。 用户的需求很明确,他们想要Java题库的整理资料。我需要根据提供的引用内容,结合已知的信息,给出有效的建议。首先,引用1提到了一个专栏“2024华为OD机试真题(全栈版)”,这可能包含用户需要的题库资源。我需要推荐这个专栏,并说明它能帮助用户学习多种语言,包括Java。另外,引用2提到了牛客网的华为题库链接,用户可以通过练习那里的题目来熟悉考试内容。这两个资源应该作为主要推荐。 接下来,我需要考虑用户可能的深层需求。他们可能不仅需要题库,还需要备考策略和注意事项。引用2中详细列出了考试注意事项,比如浏览器版本、摄像头要求、编程规范等。我应该将这些信息整理出来,帮助用户避免考试中的常见问题。 另外,用户可能对如何高效备考感兴趣。可以建议分阶段学习,比如先刷题,再模拟考试,最后查漏补缺。同时,结合B站的视频资源(引用2中的链接)可以提供视觉化的学习方式,适合不同学习习惯的用户。 在回答结构上,需要按照用户的要求,分点清晰,步骤明确。首先推荐资料获取途径,然后提供备考建议,最后强调注意事项。这样用户能逐步跟随指引,准备考试。 最后,确保回答中的引用标识正确添加,如[^1]和[^2],并且语言简洁明了,符合用户要求的中文回答。同时,检查是否有遗漏的重要信息,比如华为OD的机考链接有效期和半年内不能重考的提醒,这些对用户来说都是关键点。 总结起来,回答需要涵盖推荐的资源、备考策略、注意事项,并引用提供的资料,确保用户能全面获取所需信息,顺利备考。</think>关于华为OD机考Java题库整理的获取与备考建议,以下是系统化的解决方案: ### 一、核心资料获取途径 1. **牛客网官方题库** - 访问[华为机试练习专区](https://www.nowcoder.com/ta/huawei/)可获取分类题库,包含高频考题如字符串处理、动态规划等 - 示例题目类型: ```java // 示例:字符串反转(需使用$...$格式) public static String reverseString(String s) { return new StringBuilder(s).reverse().toString(); } ``` 2. **全栈真题专栏** - 推荐订阅「2024华为OD机试真题(全栈版)」,覆盖Java/Python/C++多语言实现 - 包含完整代码模板与复杂度分析,如快速排序实现: ```java void quickSort(int[] arr, int low, int high) { if (low < high) { int pi = partition(arr, low, high); quickSort(arr, low, pi-1); quickSort(arr, pi+1, high); } } ``` ### 二、高效备考策略 1. **三阶段学习法** - 第一阶段:专项突破(2周) - 重点攻克$动态规划$、$图论算法$等高频考点 - 每日完成5道中等难度题目 - 第二阶段:全真模拟(1周) - 使用[华为OD模拟考试系统](https://exam.nowcoder.com/cts/17063582/summary)进行限时训练 - 第三阶段:错题复盘(3天) - 建立错题本记录$边界条件处理$等易错点 2. **代码规范强化** - 命名规范:使用驼峰命名法(如`calculateSum()`) - 异常处理:必须包含输入校验逻辑 ```java if (input == null || input.length() == 0) { throw new IllegalArgumentException(); } ``` ### 三、关键注意事项 1. **环境配置** - 安装JDK 11+并配置环境变量 - 准备Eclipse/IntelliJ双开发环境(考试系统类似IDE) 2. **考场纪律** - 摄像头需全程开启,屏幕分享功能会被监控[^2] - 禁止切换浏览器标签(超过3次可能被判作弊) 3. **答题技巧** - 优先完成$100$分基础题,确保必得分 - 复杂题目先写伪代码框架,再补充实现 ### 四、延伸学习资源 1. **B站视频教程** - [华为OD机试冲刺课程](https://www.bilibili.com/video/BV1n5411t7WL)包含真题解析 2. **GitHub开源项目** - 搜索「huawei-od-java」可获取社区整理题库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值