牛客网试题+答案分析+大牛面试经验(10)

本文涵盖了多项编程面试题目,包括字符串查找、链表操作、队列与栈的理解、二叉树遍历等核心概念。同时,讨论了不同求解方法的适用性和一致性,如最小生成树的构建。此外,还分享了大牛的面试经验和技巧,帮助读者提升面试能力。
摘要由CSDN通过智能技术生成

一、假设有两个串 A 和 B ,求 B 在 A 中首次出现的位置的操作,我们称为( )。

A、连接
B、模式匹配
C、求子串
D、求串长
答案:B
解析:模式匹配是数据结构中字符串的一种基本运算,给定一个子串,要求在某个字符串中找出与该子串相同的所有子串,这就是模式匹配。
假设P是给定的子串,T是待查找的字符串,要求从T中找出与P相同的所有子串,这个问题成为模式匹配问题。P称为模式,T称为目标。如
果T中存在一个或多个模式为P的子串,就给出该子串在T中的位置,称为匹配成功;否则匹配失败。

二、下面函数的功能是

int fun (char *s)
{
    char *p=s;
    while(*p++);
    return p-s-1;
}
A、计算字符串的位(bit)数
B、复制一个字符串
C、求字符串的长度
D、求字符串存放的位置
答案:C
解析:
int fun (char *s)//此处可知,返回值类型为整形int;
{
    char *p=s; //将s的值赋值给p,即p和s同指向某一个地址;
    while(*p++);//这条语句为这道题的坑,即循环体是分号。。。只要(*p++) != 0,就一直向后移动,直至p指向字符串末尾的"\0";
    return p-s-1;//此时,p指向字符串的末尾(\0的位置),s指向字符串的头,则,p-s-1就是字符串的长度,-1就是去掉"\0"的长度1
}

三、设有两个串S1和S2,求S2在S1中首次出现的位置的运算称作()

A、求子串
B、判断是否相等
C、模型匹配
D、连接
答案:C

四、以下程序段的输出结果是

char s[]="\\123456\123456\t";
printf("%d\n",strlen(s));
A、12
B、13
C、16
D、以上都不对
答案:A
解析:这里考查转义字符,注意 \\ 表示字符 \
\123表示字符 {
\t 表示制表符
这些都是一个字符;
所以共12个字符。
知识拓展:char s[] = "//123456/123456/t"; 这样strlen(s)输出17个字符。

五、线性表中每一个元素都有一个前驱和一个后继

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

N1314N

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值