以下函数 fun 的功能是返回 str 所指字符串中以形参 c 中字符开头的后续字符串的首地址 , 例如 : st r所指字符串为 : Hello! , c 中的字符为 e ,则函数返回字符串 : ello! 的首地址。若 str 所指字符串为空串或不包含 c 中的字符,则函数返回 NULL 。请填空。
char *fun(char *str,char c)
{ int n=0; char *p=str;
if(p!=NULL)
while(p[n]!=c&&p[n]!='\0') n++;
if(p[n]=='\0') return NULL;
return( 【 1 2 】 );
}
A、replace
B、split
C、sub
D、subn
此题为判断题(对,错)。
此题为判断题(对,错)。
A.使用VLOOKUP函数近似匹配模式进行查找
B.分类汇总
C.插入数据透视表
D.使用VLOOKUP函数精确匹配模式进行查找
佳都新太科技股份有限公司7月招聘面试题面试题面试官常问到的一些题目整理如下:问题 Q1:用Python匹配HTML tag的时候,和有什么区别?可用的回答 :术语叫贪婪匹配( )和非贪婪匹配( )问题 Q2:什么是正则的贪婪匹配?可用的回答 : 如: str=abcaxc; p=ab.*c; 贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。 如上面使用模式p匹配字符串 str,结果就是匹配到:abcaxc(ab.*c)。 非贪婪匹配:就是匹配到结果就好,就少的匹配字符。 如上面使用模式p匹配字符串str,结果就是匹配 到:abc(ab.*c) 问题 Q3:装饰器的作用和功能?可用的回答 : 1. 引入日志 2. 函数执行时间统计 3. 执行函数前预备处理 4. 执行函数后的清理功能 5. 权限校验等场景 6. 缓存 问题 Q4:Python中的lambda是什么?可用的回答 :它是一个单独的表达式匿名函数,通常用作内联函数。问题 Q5:描述数组、链表、队列、堆栈的区别?可用的回答 : 数组与链表是数据存储方式的概念,数组在连续的空间中存储数据,而链表可以在非连续的空间中存储数据; 队列和堆栈是描述数据存取方式的概念,队列是先进先出,而堆栈是后进先出; 队列和堆栈可以用数组来实现,也可以用链表实现。 问题 Q6:什么是Python pass?可用的回答 :pass意味着,无操作的Python语句,或者换句话说,它是复合语句中的占位符,其中应该留有空白,并且不必在那里写入任何内容。问题 Q7:迭代器和生成器的区别?可用的回答 : 1)迭代器是一个更抽象的概念,任何对象,如果它的类有next方法和iter方法返回自己本身。对于 string、list、dict、tuple等这类容器对象,使用for循环遍历是很方便的。在后台for语句对容器对象调 用iter()函数,iter()是python的内置函数。iter()会返回一个定义了next()方法的迭代器对象,它在容器中 逐个访问容器内元素,next()也是python的内置函数。在没有后续元素时,next()会抛出一个 StopIteration异常 2)生成器(Generator)是创建迭代器的简单而强大的工具。它们写起来就像是正规的函数,只是在需 要返回数据的时候使用yield语句。每次next()被调用时,生成器会返回它脱离的位置(它记忆语句最后 一次执行的位置和所有的数据值) 区别:生成器能做到迭代器能做的所有事,而且因为自动创建了iter()和next()方法,生成器显得特别简洁, 而且生成器也是高效的,使用生成器表达式取代列表解析可以同时节省内存。除了创建和保存程序状态 的自动方法,当发生器终结时,还会自动抛出StopIteration异常 问题 Q8:如何将数字转换为字符串?可用的回答 :要将数字转换为字符串,请使用内置函数str()。如果需要八进制或十六进制表示,请使用内置函数oct()或hex()问题 Q9:urllib 和 urllib2 的区别?可用的回答 : urllib 和urllib2都是接受URL请求的相关模块, 但是urllib2可以接受一个Request类的实例来设置URL请求的headers, urllib仅可以接受URL。urllib不可以伪装你的User-Agent字符串。 urllib提供urlencode()方法用来GET查询字符串的产生,而urllib2没有。 这是为何urllib常和urllib2一起使用的原因。 问题 Q10:什么是_init_?可用的回答 :_init_是Python中的方法或者结构。在创建类的新对象/实例时,将自动调用此方法来分配内存。所有类都有_init_方法。算法题面试官常问到的一些算法题目整理如下(大概率会机考):算题题 A1:使用栈模拟队列题目描述如下:可做参考的解答如下:class Queue: def _init_(self): self.stack_one = Stack() self.stack_two = Stack() def push(self, value): if self.stack_two.empty(): self.stack_two.push(value) else: self.stack_one.push(value) def pop(self): pop_result = self.stack_two.pop() if self.stack_two.empty(): while 1: if self.stack_one.empty(): break self.stack_two.push(self.stack_one.pop() return pop_result def peek(self): return self.stack_two.get_top()queue = Queue()queue.push(1)queue.push(2)queue.push(3)print(queue.pop()queue.push(4)print(queue.pop()print(queue.pop()print(queue.pop()算题题 A1:最长的回文子字符串题目描述如下:Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.Example 1:Input: babadOutput: babNote: aba is also a valid answer.Example 2:Input: cbbdOutput: bb最长的回文子串。1. 本来想用正则的,发现正则不重复搜。sorted(re.findall(r(?P.1).*(?P=letter), abacab), key=lambda x: len(x0)unpassed, wrong answer.2. 回文串的定义是,翻转过来也相同,也就是从中间分开,从各自的中间开始走,到各自的头相同就对了。思路
请编写一个函数int pattern_index(char substr[],char str[]),该函数执行含通配符“?”的字符串的查找时,该通配符可以与任一个字符匹配成功。当子串substr在str中匹配查找成功时,返回子串substr在str中的位置,否则返回值为0。要求使用 for循环实现。输出结果如下:
子串起始位置:5
注意:部分源程序已存在文件test20_2.cpp中。
请勿修改主函数main和其他函数中的任何内容,仅在函数pattern_index的花括号中填写若干语句。
文件test20_2.cpp的内容如下:
include<iostream.h>
int pattern_index(char substr[],char str[])
{
}
void main ( )
{
char *substring,*string;
int same;
substring="???gram";
string="this program return index of substring";
same=pattern_index(substring, string);
if(same)
cout<<"子串起始位置: "<<same<<end1;
else
cout<<"匹配不成功" <<end1;
}
请补充函数fun(),该函数的功能是:从‘a’到‘z’统计一个字符串中所有字母字符各自出现的次数,结果保存在数组aIf中。注意:不区分大小写,不能使用字符串库函数。
例如,输入: “A=abc+5*c”,结果为:a=2, b=l,c=2。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数run的横线上填入所编写的若干表达式或语句。
试题程序:
include<conio.h>
include<stdio.h>
define N 100
void fun(char *tt,int alf[])
{
int i
char *p=tt;
for(i=0;i<26;i++)
【 】;
while(*p)
{
if(*p>='A'&&*p<='z')
【 】;
if(*p>='a'&&*p<='Z')
alf[*p-'a']++;
【 】;
}
}
main()
{
char str[N];
char a='a';
int alf[26],k;
clrscr();
printf("\nPlease enter a char string:");
scanf("%S",str);
printf("\n**The original string**\n");
puts(str);
fun(str,alf);
printf("\n**The number of letter**\n");
for(k:0;k<26;k++)
{
if(k%5==0)
printf(“\n”);
printf(“%c=%d”,a+k,alf[k]);
}
printf(“\n”);
}
此题为判断题(对,错)。
以下函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字符串的首地址,例如,str所指字符串为Hello!,c中的字符为e,则函数返回字符串ello!的首地址。若str所指字符串为空或不包含c中的字符,则函数返回NULL,请填空。char *fun(char *str,char c){ int n=0; char *p=str; if(p!=NULL) while(p[n]!=c&&p[n]!=’\0’) n++; if(p[n]==’\0’) return NULL; return();}