48天笔试强训——第3天

249 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第14天,点击查看活动详情


选择题

image.png

我们看见字符数组里面的最后一个字符是0,说明里面本身就是一个字符串——"123456789",p指向的9,那么p-3就是指向6,下面就是从6开始打印字符串了。

image.png

本题考查switch,case语句,x%2为1,指向case 1y=3,执行case 3,但是没有就执行defalut,此时输出hello,没有遇见break,继续执行case 2,打印third。即选D

image.png

对于二维数组,可以不指定具体行,但是必须指定具体列,行可以根据初始化自动判断,D选项中两个,之间没有数,这是语法错误。C选项,初始化的行数超过个预定的值(2)。

image.png

return只能返回一个值。所以选A,

image.png

这是一个指针数组,p先和[]结合,所以选c。A整型数组,B指针,C指针数组,D数组指针。

image.png

D选项ch从输入之后就没有变化,死循环在里面了。不能统计字符的个数。

image.png

数组名表示数组首元素的地址。ptr+5就是指向f。所以选B。

image.png

这一道题在第2天的笔试强训中讲过了。

image.png

数组里面有12个元素,每个元素都是指针类型,在32位系统中,指针的大小是4个字节的大小。所以占48个字节的大小。

image.png

本题涉及的知识点 小端是:数据的低位存在低地址 大端是:数据的低位存在高地址 看下面的它们从数据在内存中的存储: image.pnglong long是8个字节的大小,%d是按10进制打印int类型的。从低地址开始读取,一次读4个字节。所以选B。

编程题

字符串中找出连续最长的数字串

遍历字符串找到连续的数字串,比较每个数字串的长度就行。

数组中出现次数超过一半的数字

我们用消数字的方法,就是如果相邻的数字不相同,就消掉。因为众数超过一半,所以剩的就是众数。 怎么消数呢?我们先暂定第一个数是众数,记录该数出现的次数。然后依次遍历该数组。当它的次数为0的时候,说明不是众数,则开始假设下一个数字是众数,最后遍历完数组之后就可以得到众数了,同时要验证一下该数是不是众数。验证方法就是从新遍历,判断该数出现的次数。