2018年宇视科技智能交通-嵌入式软件开发线上笔试题

一,选择题

  1. 下列代码的输出结果是()
    int i = 2;
    void main()
    {
    int i = ++i;
    printf(“i = %d\n”, i);
    }
    A. 编译出错
    B. i = 2
    C. i = 3
    D. i 等于未知值

解析【D】当在调用变量时有多个同名变量起作用的时候,则使用作用域离自己最近的变量。因此在main函数中使用的是局部变量i,而c语言中未初始化的局部变量的初始值是随机分配的。

2.下列代码的输出结果是()
void main()
{
int a, x;
for(a=0, x = 0; (a <= 1) && !(x++) ; a++ )
{
a++;
x++;
}
printf(“a = %d, x = %d \n”, a, x);
A. a = 2 , x = 2
B. a = 2 , x = 3
C. a = 1 , x = 1
D. a = 1 , x = 2
解析【A】
第1步:初始化定义a=0,x=0。
第2步:a小于等于1,(x++)的非为1,符合循环条件。
(注意此时x++后,x=1,x++为0)
第3步:进入循环体,a++,a自增为1。x++,x自增为2
第4步:执行for(a=0,x=0;a<=1 &&!x++;a++)中的a++,a自增为2。
第5步:a现在是2,已经不符合小于等于1的条件了,所以“&&”后面的“!x++”不执行,x还是2,不执行循环体。

  1. 下列代码的输出结果是()
    #define SUM(a, b, c) ++a + (b + c++)
    void main()
    {
    int a = 2, b = 3, c =4;
    int d = SUM(a, b, c) / SUM(a, b, c);
    printf(“d = %d\n”, d);
    }
    A. d = 1
    B. d = 12
    C. d = 13
    D. d = 6
    解析【B】SUM(a, b, c) / SUM(a, b, c) 套入宏定义展开如下
    int d = ++a + (b + c++)/++a + (b + c++)
    注意运算符号的优先级和后++的特性后,计算为3+7/4+8 %d取整为12
    4.解析略
    在这里插入图片描述
    5.解析略
    在这里插入图片描述
    6.下列代码的输出结果是()
    void main()
    {
    char s1[] = “\01\02\03” ;
    char s2[10] = { ‘\0’ , ‘1’, ‘\0’ , ‘2’, ‘\0’, ‘3’};
    printf(“%d, %d, %d, %d\n”, sizeof(s1), strlen(s1), sizeof(s2), strlen(s2));
    }
    A. 10, 9, 10, 0
    B. 12, 12, 6, 10
    C. 9, 12, 6, 6
    D. 9, 9, 10, 6
    解析【A】

7.假设某台主机建立了如下路由表,那么目的地址为192. 168. 40. 124 的报文将从网卡()转发。
192. 168. 40. 0 255. 255. 255. 254 eth0
193. 168. 40. 5 255. 255. 255. 128 eth1
194. 168. 1. 1 255. 255. 0. 0 eth2
0. 0. 0. 0 0. 0. 0. 0 eth3
A. eth0
B. eth1
C. eth2
D. eth3
解析【】
8.以TCP/IP四层协议体系结构为例,下列说法错误的是()
A. TELNET, FTP, HTTP协议工作在应用层
B. TCP, UDP协议工作在运输层
C. ARP, RARP协议工作在网际层
D. ICMP协议工作在网络接口层
解析【】
在这里插入图片描述
解析【】
在这里插入图片描述
解析【D】简单的逻辑推演,逐个选项去验证
在这里插入图片描述
解析【B】 考察基本的中序遍历的基本概念
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
二,问答题
续下图
在这里插入图片描述

在这里插入图片描述
解析【csdn上有很多这个问题的详细博客,大家可以去查找,思想其实很简单,我这里就贴上网民ANT1903的博主的解析】
根据题意,我们只能喂一次小白鼠(一次可以喂多只)。首先可以先把这个问题的规模减小,如果是2瓶水,那1只小白鼠就够了,如果是4瓶水呢?假设是A、B、C、D四瓶水,我们可以这样做A+B混合喂给一个小白鼠1号,A+C喂给一个小白鼠2号,如果1号和2号都死了,那么就是A有毒,如果都没死,那是D有毒,如果只有1号死了,那么是B有毒,如果只有2号死了,那么是C有毒。嗯,有点意思了。给一只小白鼠喂水后最终的结果是生或者死两种状态,也就是说2只小白鼠最多可以表示的状态是4种(根据排列组合原理)。那么要表示255种状态需要多少只小白鼠?8只,因为2的8次方是256>255,剩下的问题是怎么组合这些瓶子来给小白鼠喂水了。
首先,把255瓶水从0到255编号,然后用8位二进制来表示这些瓶子,8只小白鼠从1-8编号

0 0 0 0 0 0 0 0 |0号水瓶
0 0 0 0 0 0 0 1 |1号水瓶
0 0 0 0 0 0 1 0 |2号水瓶
0 0 0 0 0 0 1 1 |3号水瓶
0 0 0 0 0 1 0 0 |4号水瓶
0 0 0 0 0 1 0 1 | 5号水瓶
0 0 0 0 0 1 1 0 |6号水瓶
……
1 1 1 1 1 1 1 1 |255号水瓶
1 2 3 4 5 6 7 8 |小白鼠
然后把1-8号小白鼠按上面的8个二进制位对好,每只小白鼠喂水规则是:如果某个瓶子的对应小白鼠编号的2进制位为1,则喂给该小白鼠,如果对应的2进制为0则不喂,譬如8号小白鼠,则会喝到1号水瓶,3号水瓶,5号水瓶,……和255号水瓶的混合水。
死了的小白鼠标记1,没死的标记0。如果只有8号小白鼠死了,那么就是0 0 0 0 0 0 0 0 0 1,结果是1号水瓶有毒。如果是6,7号小白鼠死了那么就是0 0 0 0 0 0 0 1 1 0,结果是6号水瓶有毒,如果都没死,那就是没有喂过的0号水瓶有毒了。

拓展一下:在网上搜索了一下发现腾讯也考过一样的题目,不过是2的10次方,且时间固定,只有一次尝试机会。而宇视这题时间有多余1小时,也可以尝试依据小白鼠喂药的时间不同来判断毒药。
在这里插入图片描述
解析【第一问:参见https://blog.csdn.net/s04103037/article/details/11671063】
第二问:参见https://blog.csdn.net/zhusongziye/article/details/83690588
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
本人是刚入门的小白,有些题目还没有能力去解析,只想着第一时间把题目分享给大家,对看到帖子的朋友的面试有帮助于万一,就十分高兴。另外,看到帖子的朋友也可顺手把自己的答案贴上来共同交流进步。

  • 13
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
科技FPGA笔试是一项用于测评应聘者FPGA设计能力和知识的测试。在这个目中,应聘者首先需要了解FPGA的基本概念和工作原理,同时熟悉科技的产品和技术。 笔试可能涉及以下几个方面: 1. FPGA基础知识:应聘者需要了解FPGA的构造和工作原理,包括FPGA的内部结构、可编程逻辑单元(PLD)和查找表(Look-up Table, LUT)的概念,以及时钟分配和布线等基本知识。 2. Verilog或VHDL编程:应聘者需要熟悉Verilog或VHDL这两种常用的硬件描述语言,熟悉这些语言的语法和特性,以及如何使用这些语言来实现FPGA设计。 3. 科技产品和技术:科技是一家专注于觉技术和人工智能的公司,应聘者需要熟悉科技的产品和技术。例如,科技的产品可能涉及图像处理、物体识别和智能监控等方面。应聘者需要了解科技的产品特点、应用场景,以及相关技术和算法。 4. 综合能力:此外,应聘者在完成笔试时需要展现出综合能力,包括解决问的思路和方法、实现和优化FPGA设计的能力,以及对特定应用场景的理解和思考能力。 总的来说,科技FPGA笔试旨在考察应聘者的FPGA设计及相关技能和对科技产品和技术的了解程度。应聘者需要结合自己的知识和经验,全面回答目,并展现出解决问的能力和对FPGA设计的理解和应用能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值