新浪网技术部笔试题。

大学生就业难已经成为社会一个难以回避的问题,同时求职技巧也就显得尤为重要,扬长避短掌握技巧是关键。感谢阅读《新浪网技术部笔试题》内容,职场资讯网小编向您推荐一些求职技巧知识,希望能够帮到您。

一、php基础知识

1、strlen与mb_strlen的作用分别是什么

2、下列哪个函数是用正则表达式将字符串分割到数组中

A、Split

B、implode

C、explode

D、join

3、写出下列程序的输出结果

$x=87;

$y=($x%7)*16;

$z=$x$y?1:0;

echo$z;

?

4、写出smarty模板的特点

5、写出下列几个预定义全局变量的作用

$_SERVER[DOCUMENT_ROOT]

当前运行脚本所在的文档根目录。在服务器配置文件中定义。

$_SERVER[HTTP_HOST]

当前请求的Host:头部的内容

$_SERVER[REMOTE_ADDR]

正在浏览当前页面用户的IP地址

$_SERVER[HTTP_REFERER]

链接到当前页面的前一页面的URL地址

$_SERVER[SERVER_NAME]

当前运行脚本所在服务器主机的名称

$_FILES

包含有所有上传的文件信息。

$_FILES[userfile][name]

客户端机器文件的原名称。

$_FILES[userfile][type]

文件的MIME类型,如果浏览器提供此信息的话。一个例子是image/gif。不过此MIME类型在PHP端并不检查,因此不要想当然认为有这个值。

$_FILES[userfile][size]

已上传文件的大小,单位为字节。

职场资讯网精选阅读

腾讯技术综合笔试题


大学生就业难已经成为社会一个难以回避的问题,同时求职技巧也就显得尤为重要,扬长避短掌握技巧是关键。感谢阅读《腾讯技术综合笔试题》内容,职场资讯网小编向您推荐一些求职技巧知识,希望能够帮到您。

腾讯是我们都知道的大公司,下面小编整理了腾讯技术综合笔试题,欢迎阅读!

题型解析:

考试时间60分钟,整张试卷分四大部分。

第一部分数据分析,整个部分分为三个大题,每个大题5个小题,不难,图表计算。

第二部分逻辑推理,普通的行测题,一共有10道选择。难易程度跟公务员的差不多。

第三部分阅读理解,15道选择。也是行测类型的,读一段话,做选择。

前三个部分都是单选,一共40题。

第四部分论述题,最后论述2道大题。(这部分不算分数,对面试有好处)

论述题:

2013年广州腾讯产品实习笔试

第一题是如果微信添加一个功能删除一个功能,你会怎么做?(可见腾讯论述题很注重腾讯产品的考察)

第二题是现在电子商务创业很流行,如果有以下电商创业,你会选哪一种:服装,虚拟产品,生活服务类。

第三道题,如果你是一个乳制品的公关经理,315曝光你们产品有问题,设计一个24小时公关方案,以挽回公司损失。(这个题目我在之前笔试看到过,是宝洁SKII事件,写新闻发言稿,所以大家可以注意一下公关知识)

第四道题,腾讯给你5000元公益资金帮扶特殊群体,设计一个校园公益项目方案。

2013-10-13北京站产品笔试

附加题一:是用互联网思维改造传统行业,写一个策划方案什么的,举了嘀嘀打车的例子。

附加题二是:题目背景是国务院批复了一个文件《前海深港现代服务业合作区总体发展XXX》,然后问你采取何种措施吸引优秀人才的加入,以便支撑入驻企业的发展

题目

刚下班的小明接到了远在江西吉安的老爸的电话,他这个月刚学会用电脑,今天终于托人帮忙装了台新电脑,并办好了上网,他问小明现在用电脑和上网都能玩些啥。假如你是小明,需要在最短的时间内满足老爸的需求,你会怎么做?(腾讯-2013)

题目分析

本题考查点:需求管理、产品设计。

本题旨在考查应聘者对于需求的理解与把握,以及在需求分析的基础上处理需求,服务用户的能力。同时,回答的时候要尽量落地,例如题目中指出远在江西吉安,所以你无法面对面指导老爸使用电脑,如果你仅仅只是用电话去告诉老爸如何使用电脑,这对于老爸而言是不好的体验。

2.回答策略

本题的解决思路如下:

构建爸爸(用户)的用户画像。

结合场景做需求分析。

产品设计(本题中专指装机策略)。

产品落地。

3.详细解答

(1)爸爸的用户画像

46岁中年男子。

正值壮年,辛勤工作,在专业领域是专家,但对于新兴科技却不甚了解。

商务人士,追求办公效率,会积累行业资讯,工作沟通主要通过邮件与电话。

闲时的消遣方式是看电影、看书、古玩及其他。偶尔会在网上购物。

需求分析及具体的装机策略以用户画像为依托。每位答题者可以列出自己心中不同的用户画像,言之有理即可。

(2)需求管理

1.结合场景做需求分析

在明确了目标用户画像后,我们便可针对目标用户特点有的放矢,对目标用户进行需求挖掘。需求挖掘的方式有问卷、访谈、焦点小组等。

在本题中需求有四个来源:调研用户、竞品参考、数据分析和自己拍脑袋。

直接和爸爸谈:比较喜欢做什么?为什么?(很明显,爸爸可能会遗漏、忘记很多自己的需求)

多问几个中年人:其他中年人还有什么需求?有什么是爸爸忘了的?

查看网上资料:有没有相关的研究资料,比如老年人上网产品大全之类的。

自己拍脑袋:什么类型的产品,适合老人家呢?

面试新浪网络编辑的经历分享


偶一朋友有两年的网络编辑经验,前些日子去应聘新浪上海的网络编辑岗位,却遭遇了前所未有的雷人面试经历。

面试官是一位30多岁的女人,自称笔记本坏了,看不到我朋友的简历,就让我朋友进行一番自我介绍。还未等介绍完,那个女人便开始她的长篇大论起来。

你的个人经历也挺丰富的,我想想看我们这边有哪些频道的岗位比较适合你。首先是新闻频道,我们这边招聘的基本都是新闻科班出身,什么是新闻科班出身?你应该知道的吧。

我朋友答道:难道不是新闻科班出身的人就做不了新闻编辑了吗?

那个面试官回答道:那也未必,但新闻科班出身的人的确在新闻敏感度上要比普通人强,那我来考考你,你能列举一下2009年上海十大新闻事件吗?

我朋友根据自己的印象,列举了一些,那可是在没有任何资料参考的情况下说出来的哟,还没等说完,那个面试官就抢先说话道:你看吧,假如是新闻科班出身的人就会对此滔滔不绝,而你还需要思考一下,所以你肯定就被PASS了。

她继续说道:我们这里还有时尚生活频道,我看你本人的着装就不是属于爱时尚的人。我们这里有个编辑,对上海各种类型的酒店、餐馆、夜店简直是如数家珍,她家里非常有钱,父亲是开工厂的,她每个月的个人支出都要达到上万,这种时尚的感觉就是要靠花钱才能体会出来的,你应该达不到吧?

说到这里,我的朋友心里已经开始窝了一把火,真想立马甩门而出,但出于涵养,还是耐心地听完那个女人的唠叨。

那个女人继续说:你能列举上海最贵的五家私房菜吗?我朋友摇摇头,因为平时她对吃基本不感兴趣。那个女人投来了鄙夷的眼光,你看,你连吃都没吃过,又怎么能了解呢?

面试官接着说:我们这里还有职场教育频道,但基本都是让实习生来做,不招全职的网络编辑。还有,汽车频道,你会开车吗?你懂车的性能吗?估计你也不会太感兴趣。那么,房产频道呢?上海的楼盘信息和趋势分析,你做的了吗?所以,我觉得这里可能没有你合适的岗位。

听完面试官的话,我朋友立马站了起来,笑着对那个女人说道:原来所谓的新浪上海就是这样啊,我算是领教了,我觉得你们这边缺的应该不是编辑,而是闲人。我来面试前也看了你们的频道,所谓的新闻,也就是其他报纸杂志上的剪切黏贴,这需要科班出身吗?初中生都干得了。你们这样的公司也并不适合我,再见!说完这些话后,我朋友甩门而出 。

借着朋友的面试经历,想告诫那些想去新浪上海面试的朋友,假如你家不是特有钱,你也不是科班出身,或者家里没有啥背景,建议还是不要去自找晦气。

美的笔试题目


在求职过程中需要注意的问题您知道?需要的求职技巧您知道?职场小编告诉你,在求职过程中切忌夸夸其谈,切忌过于自信,切忌自我炫耀,切忌左顾右盼以及切忌形象糟糕。感谢阅读《美的笔试题目》内容,职场资讯网小编向您推荐一些求职技巧知识,希望能够帮到您。

美的笔试,分A/B卷不分管理、财务、技术,只分A/B卷。试卷内容上虽然不分,但他们会让你注明是哪个类型的,毕竟三个类型参考的标准和方面都不一样。30分钟--20道选择题,5道填空题,1道分析问答题,时间比较紧,除非速度特别快,否则一般都作不完。

1、选择题:跟公务员行政能力测试几乎一模一样,可谓公务员行政能力测试的精简版,有文字逻辑推理题,阅读理解题,图形推理题,出乎意料的是没有数字题,所以那张草稿纸我连用都没用过--事实上,也没时间用。最后有一道题很狠,是一道推理题,有五个问题联系在一起,这种题目最麻烦,要嘛看完题后一个一个做,这样比较费时间,要嘛只能五个全不做,这样对分数又极其不利,两边难做人,只能看自己衡量了。我是跳过去先做了后面的填空题和分析题,后来再回来想做已经没时间了,乱填了几个上去的。现在想来这个策略还是比较好的,毕竟后来的填空题比较容易,且占的分数比较更大些。

2、填空题:这部分倒是比较简单,有两道是给出一个物件(记得第一个是回形钩)并给出三四种用途,要你再写出一种用途,或是给出一个情景(有一个是进入教室后黑板上写着不用上课的情景),同样给出几个原因,让你再说一个原因。最后一个是关于美的集团的标志的,要你把美的标志跟彩虹联系起来,进行联想作出比喻,原题中已经从形状、颜色两个方面作出比喻,要求你再写出一个比喻。整体上,这部分不是很难,只要反应快一些,抓紧时间都没有什么问题。

3、分析问答题:给出一段文字,大概是讲学校为了提高大学课堂的听课率,迫使学生多去上课,推行一个上课打卡制度,正反双方分别从自己的的角度论述了赞成与反对的原因云云。问问题时类似公务员的申论题,第一问问态度:赞成还是反对;第二问问总结:在你的表明态度后你觉得问题的症结在哪里;第三问问细节:问题症结的展开论述。这个情景其实比较简单,而且跟学生生活很贴近,按理说,稍微思考过后都可以答的合情合理,只是一般到了这个地方,时间都所剩无几,没有什么思考的时间,我也是快速浏览后来不及思考更多就写了几点上去,还没写完时间就到了,无奈试卷给收回去了。明天一面,应该小组无领导讨论,好好准备下吧!

最后,对美的这种选人方式做个简单评价:其实美的这种选择方式也挺好的,很多公司都是先笔试,笔试过了再给面试机会,这样一些笔试能力比较差或准备不足而实际表现能力又比较好的人就被筛掉了,可美的采取的做法是:既让你笔试同时也把一面的机会给你,这种可以综合两个方面的表现来确定人选,当然,这建立在他们已经通过性格测试的方式进行了第一轮筛选的基础上,另外,他们具体的操作和标准我不清楚,但如果但从形式上理解,在人力物力财力允许的情况下,这种方式无疑可具有合理性--这是值得肯定的。无论如何,先争取进了再说,加油!!

PHP笔试题


大学生就业难已经成为社会一个难以回避的问题,同时求职技巧也就显得尤为重要,扬长避短掌握技巧是关键。感谢阅读《PHP笔试题》内容,职场资讯网小编向您推荐一些求职技巧知识,希望能够帮到您。

1.写出如下程序的输出结果

$str1=null;

$str2=false;

echo$str1==$str2?相等:不相等;

//相等

$str3=;

$str4=0;

echo$str3==$str4?相等:不相等;

//相等

$str5=0;

$str6=0;

echo$str5===$str6?相等:不相等;

//不相等

?

2.写出如下程序的输出结果

$a1=null;

$a2=false;

$a3=0;

$a4=;

$a5=0;

$a6=null;

$a7=array;

$a8=array(array);

echoempty($a1)?true:false;//true

echoempty($a2)?true:false;//true

echoempty($a3)?true:false;//true

echoempty($a4)?true:false;//true

echoempty($a5)?true:false;//true

echoempty($a6)?true:false;//false

echoempty($a7)?true:false;//true

echoempty($a8)?true:false;//false

?

3.写出如下程序的输出结果

$test=aaaaaa;

$abc=$test;

unset($test);

echo$abc;//aaaaaa

?

4.写出如下程序的输出结果

functionget_count{

static$count=0;

return$count++;

}

echo$count;//5

++$count;

echoget_count;//0

echoget_count;//1

?

5.写出如下程序的输出结果

$GLOBALS[var1]=5;

$var2=1;

functionget_value{

global$var2;

$var1=0;

return$var2++;

}

get_value;

echo$var1;//0

echo$var2;//2

?

6.写出如下程序的输出结果

functionget_arr($arr){

unset($arr[0]);

}

$arr1=array(1,2);

$arr2=array(1,2);

get_arr($arr1);

get_arr($arr2);

echocount($arr1);//1

echocount($arr2);//2

?

华为上机笔试题


大学生毕业后面临的第一件事情肯定就是面试求职了,那么相应的求职技巧就很重要。感谢阅读《华为上机笔试题》内容,职场资讯网小编向您推荐一些求职技巧知识,希望能够帮到您。

1.输入整型数组求数组的最小数和最大数之和,例如输入1,2,3,4则输出为5,当输入只有一个数的时候,则最小数和最大数都是该数,例如只输入1,则输出为2;另外数组的长度不超过50

参考代码:

#include

main

{

intnum[50]={0};

inti,n;

printf(请输入整型数组的长度(1~50):);

scanf(%d,n);

printf(请输入整型数组的元素:);

for(i=0;i

{

scanf(%d,num[i]);

}

intmin_num=num[0];

intmax_num=num[0];

for(intj=0;j

{

if(max_num

max_num=num[j];

elseif(min_numnum[j])

min_num=num[j];

}

intsum=min_num+max_num;

printf(数组中最大与最小值之和:%d/n,sum);

return0;

}

2.求两个长长整型的数据的和并输出,例如输入1233333333333333。。。3111111111111111111111111.。。。,则输出。。。。

#include

#include

#include

main

{

char*num1,*num2;//两个长长整型数据

char*sum;

//inttemp;

intlen_num1,len_num2;//两个长长整型数据的长度

intlen_max,len_min;

num1=(char*)malloc(sizeof(char));

num2=(char*)malloc(sizeof(char));

printf(输入两个长长整型数据:);

scanf(%s,num1);

printf(输入两个长长整型数据:);

scanf(%s,num2);

len_num1=strlen(num1);

len_num2=strlen(num2);

len_max=(len_num1=len_num2)?len_num1:len_num2;

len_min=(len_num1=len_num2)?len_num1:len_num2;

intlen_max1=len_max;

sum=(char*)malloc(sizeof(char)*len_max);

memset(sum,000,len_max+1);//切忌初始化

for(;len_num10len_num20;len_num1,len_num2)

{

sum[len_max--]=((num1[len_num1-1]-0)+(num2[len_num2-1]-0));

}

if(len_num10)

{

sum[len_max--]=num1[len_num1-1]-0;

len_num1;

}

if(len_num20)

{

sum[len_max--]=num1[len_num2-1]-0;

len_num2;

}

for(intj=len_max1;j=0;j)//实现进位操作

{

//temp=sum[j]-0;

if(sum[j]=10)

{

sum[j-1]+=sum[j]/10;

sum[j]%=10;

}

}

char*outsum=(char*)malloc(sizeof(char)*len_max1);

j=0;

while(sum[j]==0)//跳出头部0元素

j++;

for(intm=0;m

outsum[m]=sum[j]+0;

outsum[m]=/0;

printf(输出两长长整型数据之和:%s/n,outsum);

return0;

}

3.通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。

比如字符串abacacde过滤结果为abcde。

要求实现函数:

voidstringFilter(constchar*pInputStr,longlInputLen,char*pOutputStr);

【输入】pInputStr:输入字符串

lInputLen:输入字符串长度

【输出】pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;

参考代码:

#include

#include

#include

voidstringFilter(constchar*p_str,longlen,char*p_outstr)

{

intarray[256]={0};

constchar*tmp=p_str;

for(intj=0;j

{

if(array[tmp[j]]==0)

*p_outstr++=tmp[j];

array[tmp[j]]++;

}

*p_outstr=/0;

}

voidmain

{

char*str=cccddecc;

intlen=strlen(str);

char*outstr=(char*)malloc(len*sizeof(char));

stringFilter(str,len,outstr);

printf(%s/n,outstr);

free(outstr);

outstr=NULL;

}

5.通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。

输入字符串的格式为:操作数1运算符操作数2,操作数与运算符之间以一个空格隔开。

补充说明:

1.操作数为正整数,不需要考虑计算结果溢出的情况。

2.若输入算式格式错误,输出结果为0。

要求实现函数:

voidarithmetic(constchar*pInputStr,longlInputLen,char*pOutputStr);

【输入】pInputStr:输入字符串

lInputLen:输入字符串长度

【输出】pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;

#include

#include

#include

voidarithmetic(constchar*input,longlen,char*output)

{

chars1[10];

chars2[10];

chars3[10];

intcnt=0;

intlen_input=strlen(input);

for(inti=0;i

{

if(input[i]==)

cnt++;

}

if(cnt!=2)

{

*output++=0;

*output=/0;

return;

}

sscanf(input,%s%s%s,s1,s2,s3);

if(strlen(s2)!=1||(s2[0]!=+'s2[0]!=-'))

{

*output++=0;

*output=/0;

return;

}

intlen_s1=strlen(s1);

for(i=0;i

{

if(s1[i]0||s1[i]9)

{

*output++=0;

*output=/0;

return;

}

}

intlen_s3=strlen(s3);

for(i=0;i

{

if(s3[i]0||s3[i]9)

{

*output++=0;

*output=/0;

return;

}

}

intx=atoi(s1);

inty=atoi(s3);

if(s2[0]==+')

{

intresult=x+y;

itoa(result,output,10);

}

elseif(s2[0]==-')

{

intresult=x-y;

itoa(result,output,10);

}

else

{

*output++=0;

*output=/0;

return;

}

}

voidmain

{

charstr[]={1023};

charoutstr[10];

intlen=strlen(str);

arithmetic(str,len,outstr);

printf(%s/n,str);

printf(%s/n,outstr);

}

6.一组人(n个),围成一圈,从某人开始数到第三个的人出列,再接着从下一个人开始数,最终输出最终出列的人

(约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。)

#include

#include

#include

#include

typedefstructNode

{

intdata;

structNode*next;

}LinkList;

LinkList*create(intn)

{

LinkList*p,*q,*head;

inti=1;

p=(LinkList*)malloc(sizeof(LinkList));

p-data=i;

head=p;

for(i=1;i=n;i++)

{

q=(LinkList*)malloc(sizeof(LinkList));

q-data=i+1;

p-next=q;

p=q;

}

p-next=head;//使链表尾连接链表头,形成循环链表

returnhead;

free(p);

p=NULL;

free(q);

q=NULL;

}

voiddeletefun(LinkList*L,intm)

{

LinkList*p,*q,*temp;

inti;

p=L;

while(p-next!=p)

{

for(i=1;i

{

q=p;

p=p-next;

}

printf(%5d,p-data);

temp=p;

q-next=p-next;

p=p-next;

free(temp);

}

printf(%5d/n,p-data);

}

intmain

{

intn=7,m=3;

LinkList*head1;

head1=create(n);

deletefun(head1,m);

return0;

}

7..输入一串字符,只包含0-10和,找出其中最小的数字和最大的数字(可能不止一个),输出最后剩余数字个数。如输入3,3,4,5,6,7,7

#include

#include

#include

voidmain

{

charstr[100];

printf(输入一组字符串:/n);

scanf(%s,str);

intlen=strlen(str);

intarray[100];

intcount=0;

for(inti=0;i

{

if(str[i]=0str[i]=9)

array[count++]=str[i]-0;

}

array[count]=/0;

intresult=count;

intmin=array[0];

intmax=array[0];

for(intj=0;j

{

if(max

max=array[j];

elseif(minarray[j])

min=array[j];

}

for(intk=0;k

{

if(array[k]==min)

result;

if(array[k]==max)

result;

}

printf(%d/n,result);

}

8.输入一组身高在170到190之间(5个身高),比较身高差,选出身高差最小的两个身高;若身高差相同,选平均身高高的那两个身高;从小到大输出;

如输入170181173186190输出170173

#include

#include

#defineN5

intmain

{

intHeight[N];

intdmin;

intH1,H2;

inti,j,temp;

printf(请输入一组身高在170到190之间的数据(共5个):/n);

for(intk=0;k

scanf(%d,Height[k]);

printf(/n);

for(i=0;i

for(j=1;jHeight[j];j++)

{

temp=Height[j-1];

Height[j-1]=Height[j];

Height[j]=temp;

}

H1=Height[0];

H2=Height[1];

dmin=H2-H1;

for(intm=2;m

{

if(Height[m]-Height[m-1]=dmin)

{

H1=Height[m-1];

H2=Height[m];

dmin=Height[m]-Height[m-1];

}

}

printf(身高差最小的两个身高为:/n);

printf(%d,%d/n,H1,H2);

return0;

}

9.删除子串,只要是原串中有相同的子串就删掉,不管有多少个,返回子串个数。

#include

#include

#include

#include

intdelete_sub_str(constchar*str,constchar*sub_str,char*result)

{

assert(str!=NULLsub_str!=NULL);

constchar*p,*q;

char*t,*temp;

p=str;

q=sub_str;

t=result;

intn,count=0;

n=strlen(q);

temp=(char*)malloc(n+1);

memset(temp,000,n+1);

while(*p)

{

memcpy(temp,p,n);

if(strcmp(temp,q)==0)

{

count++;

memset(temp,000,n+1);

p=p+n;

}

else

{

*t=*p;

p++;

t++;

memset(temp,000,n+1);

}

}

free(temp);

returncount;

}

voidmain

{

chars[100]={/0};

intnum=delete_sub_str(123abc12de234fg1hi34j123k,123,s);

printf(Thenumberofsub_stris%d/r/n,num);

printf(Theresultstringis%s/r/n,s);

}

10.要求编程实现上述高精度的十进制加法。要求实现函数:

voidadd(constchar*num1,constchar*num2,char*result)

【输入】num1:字符串形式操作数1,如果操作数为负,则num1[0]为符号位-

num2:字符串形式操作数2,如果操作数为负,则num2[0]为符号位-

【输出】result:保存加法计算结果字符串,如果结果为负,则result[0]为符号位。

#include

#include

#include

voidmove(char*str,intlength)//移除字母前的-符号

{

if(str[0]!=-)

return;

inti;

for(i=0;ilength-1;i++)

str[i]=str[i+1];

str[i]=/0;

}

intremove_zero(char*result,intlength)

{

intcount=0;

for(inti=length-1;i0;i)//从最后开始移除0,直到遇到非0数字,只对最初位置上的0不予判断

{

if(result[i]==0)

{

result[i]=/0;

count++;

}else

returnlength-count;

}

returnlengthcount;

}

voidreverse(char*result,intlength)//将字符串倒转

{

chartemp;

for(inti=0;i=(length-1)/2;i++)

{

temp=result[i];

result[i]=result[length-1-i];

result[length-1-i]=temp;

}

}

intreal_add(char*str1,char*str2,char*result,constboolflag)

{

intlen1=strlen(str1);

intlen2=strlen(str2);

intn1,n2,another=0;//another表示进位

intcur_rs=0;//表示result的当前位数

inti,j;

intcurSum;

for(i=len1-1,j=len2-1;i=0j=0;i,j)

{

n1=str1[i]0;

n2=str2[j]0;

curSum=n1+n2+another;

result[cur_rs++]=curSum%10+0;

another=curSum/10;

}

if(j0)

{

while(i=0)//遍历str1剩余各位

{

n1=str1[i--]0;

curSum=n1+another;

result[cur_rs++]=curSum%10+0;

another=curSum/10;

}

if(another!=0)//如果还有进位未加上

result[cur_rs++]=another+0;

}

else

{

while(j=0)

{

n2=str2[j--]0;

curSum=n2+another;

result[cur_rs++]=curSum%10+0;

another=curSum/10;

}

if(another!=0)

result[cur_rs++]=another+0;

}

result[cur_rs]=/0;

cur_rs=remove_zero(result,cur_rs);

if(!flag)

{

result[cur_rs++]=-;

result[cur_rs]=/0;

}

reverse(result,strlen(result));

returncur_rs;

}

intreal_minus(char*str1,char*str2,char*result)//使用str1减去str2

{

charbig[100],small[100];

intbig_len,sml_len;

intlen1=strlen(str1);

intlen2=strlen(str2);

boolflag=false;//用于标记str2是否比str1大

if(len1len2)

flag=true;

elseif(len1==len2)

{

if(strcmp(str1,str2)==0)

{

result[0]=0;

result[1]=/0;

return1;

}elseif(strcmp(str1,str2)0)

flag=true;

}

if(flag)//将str1和str2交换,确保str1指向的值是其中较大者,最后通过flag确定要不要给前面加-号

{

char*temp=str1;

str1=str2;

str2=temp;

len1=strlen(str1);

len2=strlen(str2);

}

intn1,n2,another=0;//another表示是否有借位

inti,j;

intcur_rs=0;

intcurMinus;

for(i=len1-1,j=len2-1;i=0j=0;i,j)

{

n1=str1[i]0;

n2=str2[j]0;

if(n1=n2+another)

{

result[cur_rs++]=(n1-n2-another)+0;

another=0;

}

else

{

result[cur_rs++]=(n1+10-n2-another)+0;

another=1;

}

}

while(i=0)

{

n1=str1[i--]0;

if(another!=0)

{

n1-=another;

another=0;

}

result[cur_rs++]=n1+0;

}

result[cur_rs]=/0;

cur_rs=remove_zero(result,cur_rs);

if(flag)

{

result[cur_rs++]=-;

result[cur_rs]=/0;

}

reverse(result,cur_rs);

returncur_rs;

}

voidaddi(constchar*num1,constchar*num2,char*result)

{

intlen1=strlen(num1);

intlen2=strlen(num2);

intrs_len;

if(!len1||!len2)

return;

charstr1[100],str2[100];

strncpy(str1,num1,len1);

str1[len1]=/0;

strncpy(str2,num2,len2);

str2[len2]=/0;

if(str1[0]==-str2[0]==-)

{

move(str1,len1);

move(str2,len2);

rs_len=real_add(str1,str2,result,false);

}elseif(str1[0]==-)

{

move(str1,len1);

rs_len=real_minus(str2,str1,result);

}

elseif(str2[0]==-)

{

move(str2,len2);

rs_len=real_minus(str1,str2,result);

}else

rs_len=real_add(str1,str2,result,true);

}

//intmain(intargc,char*argv[])

intmain

{

charnum1[100],num2[100];

printf(请输入两个整型数据:/n);

scanf(%s%s,num1,num2);

charresult[100];

memset(result,0,100);

addi(num1,num2,result);

printf(%s/n,result);

return0;

}

11.描述:10个学生考完期末考试评卷完成后,A老师需要划出及格线,要求如下:

(1)及格线是10的倍数;

(2)保证至少有60%的学生及格;

(3)如果所有的学生都高于60分,则及格线为60分

输入:输入10个整数,取值0~100

输出:输出及格线,10的倍数

#include

voidbubblesort(intarr[])

{

inti,j,temp;

for(i=0;i10;i++)

for(j=0;j9-iarr[j]arr[j+1];j++)

{

temp=arr[j];

arr[j]=arr[j+1];

arr[j+1]=temp;

}

}

intGetPassLine(inta[])

{

bubblesort(a);

if(a[0]=60)

return60;

else

return(((int)a[4]/10)*10);

}

main

{

inta[10]={0};

intresult;

printf(请随机输入10个成绩(0-100):/n);

scanf(%d%d%d%d%d%d%d%d%d%d,a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]);

printf(/n);

result=GetPassLine(a);

printf(及格线为:%d/n,result);

return1;

}

12.描述:一条长廊里依次装有n(1n65535)盏电灯,从头到尾编号1、2、3、n-1、n。每盏电灯由一个拉线开关控制。开始,电灯全部关着。

有n个学生从长廊穿过。第一个学生把号码凡是1的倍数的电灯的开关拉一下;接着第二个学生把号码凡是2的倍数的电灯的开关拉一下;接着第三个学生把号码凡是3的倍数的电灯的开关拉一下;如此继续下去,最后第n个学生把号码凡是n的倍数的电灯的开关拉一下。n个学生按此规定走完后,长廊里电灯有几盏亮着。注:电灯数和学生数一致。

输入:电灯的数量

输出:亮着的电灯数量

样例输入:3

样例输出:1

#include

#defineMax_Bubl_Num65535

intGetLightLampNum(intn)

{

intBublNum[Max_Bubl_Num]={0};//0表示灯灭,1表示灯亮

unsignedinti,j;

unsignedintcount=0;

for(i=1;i=n;i++)

for(j=i;j=nj%i==0;j++)

{

BublNum[j-1]+=1;

BublNum[j-1]=BublNum[j-1]%2;

}

for(intk=0;k

{

if(BublNum[k]==1)

count++;

}

returncount;

}

intmain

{

intn,result;

printf(请输入灯的数量(1-65535):/n);

scanf(%d,n);

result=GetLightLampNum(n);

printf(最后亮灯的数量为:%d/n,result);

return0;

}

13.描述:已知2条地铁线路,其中A为环线,B为东西向线路,线路都是双向的。经过的站点名分别如下,两条线交叉的换乘点用T1、T2表示。编写程序,任意输入两个站点名称,输出乘坐地铁最少需要经过的车站数量(含输入的起点和终点,换乘站点只计算一次)。

地铁线A(环线)经过车站:A1A2A3A4A5A6A7A8A9T1A10A11A12A13T2A14A15A16A17A18

地铁线B(直线)经过车站:B1B2B3B4B5T1B6B7B8B9B10T2B11B12B13B14B15

输入:输入两个不同的站名

输出:输出最少经过的站数,含输入的起点和终点,换乘站点只计算一次

输入样例:A1A3

输出样例:3

#include

#include

#include

#include

usingnamespacestd;

#defineMAX35

#defineSUBWAY_A20

#defineSUBWAY_B15

typedefstructnode{

intadjvex;

structnode*next;

}edgenode;

typedefstruct{

charname[10];

boolflag;

edgenode*link;

}vexnode;

constcharsubway_name1[SUBWAY_A][10]={A1,A2,A3,A4,A5,A6,A7,A8,A9,T1,A10,A11,A12,A13,T2,A14,A15,A16,A17,A18};

constcharsubway_name2[SUBWAY_B][10]={B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,B13,B14,B15};

voidcreat(vexnodega[]){

inti;

edgenode*p;

for(i=0;i

ga[i].link=NULL;

ga[i].flag=true;

if(i

elsestrcpy(ga[i].name,subway_name2[i-20]);

}

//A地铁建邻接表

for(i=1;i

p=(edgenode*)malloc(sizeof(edgenode));

p-adjvex=i-1;

p-next=NULL;

ga[i].link=p;

p=(edgenode*)malloc(sizeof(edgenode));

p-adjvex=i+1;

p-next=NULL;

ga[i].link-next=p;

if(i==9){

p=(edgenode*)malloc(sizeof(edgenode));

p-adjvex=SUBWAY_A+4;

p-next=NULL;

ga[i].link-next-next=p;

p=(edgenode*)malloc(sizeof(edgenode));

p-adjvex=SUBWAY_A+5;

p-next=NULL;

ga[i].link-next-next-next=p;

}

elseif(i==14){

p=(edgenode*)malloc(sizeof(edgenode));

p-adjvex=SUBWAY_A+9;

p-next=NULL;

ga[i].link-next-next=p;

p=(edgenode*)malloc(sizeof(edgenode));

p-adjvex=SUBWAY_A+10;

p-next=NULL;

ga[i].link-next-next-next=p;

}

}

p=(edgenode*)malloc(sizeof(edgenode));

p-adjvex=SUBWAY_A-1;

p-next=NULL;

ga[0].link=p;

p=(edgenode*)malloc(sizeof(edgenode));

p-adjvex=1;

p-next=NULL;

ga[0].link-next=p;

p=(edgenode*)malloc(sizeof(edgenode));

p-adjvex=SUBWAY_A-2;

p-next=NULL;

ga[SUBWAY_A-1].link=p;

p=(edgenode*)malloc(sizeof(edgenode));

p-adjvex=0;

p-next=NULL;

ga[SUBWAY_A-1].link-next=p;

//B地铁建邻接表

for(i=1;i

if(i==4||i==5||i==9||i==10)continue;

p=(edgenode*)malloc(sizeof(edgenode));

p-adjvex=SUBWAY_A+i-1;

p-next=NULL;

ga[i+SUBWAY_A].link=p;

p=(edgenode*)malloc(sizeof(edgenode));

p-adjvex=SUBWAY_A+i+1;

p-next=NULL;

ga[i+SUBWAY_A].link-next=p;

}

p=(edgenode*)malloc(sizeof(edgenode));

p-adjvex=SUBWAY_A+3;

p-next=NULL;

ga[SUBWAY_A+4].link=p;

p=(edgenode*)malloc(sizeof(edgenode));

p-adjvex=9;

p-next=NULL;

ga[SUBWAY_A+4].link-next=p;

p=(edgenode*)malloc(sizeof(edgenode));

p-adjvex=9;

p-next=NULL;

ga[SUBWAY_A+5].link=p;

p=(edgenode*)malloc(sizeof(edgenode));

p-adjvex=SUBWAY_A+6;

p-next=NULL;

ga[SUBWAY_A+5].link-next=p;

p=(edgenode*)malloc(sizeof(edgenode));

p-adjvex=SUBWAY_A+8;

p-next=NULL;

ga[SUBWAY_A+9].link=p;

p=(edgenode*)malloc(sizeof(edgenode));

p-adjvex=14;

p-next=NULL;

ga[SUBWAY_A+9].link-next=p;

p=(edgenode*)malloc(sizeof(edgenode));

p-adjvex=14;

p-next=NULL;

ga[SUBWAY_A+10].link=p;

p=(edgenode*)malloc(sizeof(edgenode));

p-adjvex=SUBWAY_A+11;

p-next=NULL;

ga[SUBWAY_A+10].link-next=p;

p=(edgenode*)malloc(sizeof(edgenode));

p-adjvex=SUBWAY_A+1;

p-next=NULL;

ga[SUBWAY_A].link=p;

p=(edgenode*)malloc(sizeof(edgenode));

p-adjvex=SUBWAY_A+SUBWAY_B-2;

p-next=NULL;

ga[SUBWAY_A+SUBWAY_B-1].link=p;

//打印各邻接节点

for(i=0;i

printf(%s:,ga[i].name);

edgenode*s;

s=ga[i].link;

while(s!=NULL){

printf(-%s,ga[s-adjvex].name);

s=s-next;

}

printf(/n);

}

}

intmain{

vexnodega[MAX];

creat(ga);

inti;

charstr[2][10];

while(scanf(%s%s,str[0],str[1])!=EOF){

inttemp=0;

for(i=0;i

ga[i].flag=true;

if(!strcmp(str[0],ga[i].name))temp=i;

}

queueq;

q.push(ga[temp]);

ga[temp].flag=false;

intcount=0;

intstart=0;

intend=1;

boolfind_flag=false;

while(!q.empty){

if(find_flag)break;

count++;

printf(************************/n);

printf(第%d层搜索:,count);

inttemp_end=end;

while(start

printf(%s,q.front.name);

if(!strcmp(q.front.name,str[1])){

find_flag=true;

break;

}

edgenode*s;

s=q.front.link;

while(s!=NULL){

if(ga[s-adjvex].flag){

q.push(ga[s-adjvex]);

ga[s-adjvex].flag=false;

end++;

//printf(%s,ga[s-adjvex].name);

}

s=s-next;

}

q.pop;

start++;

}

printf(/n);

}

printf(%d/n,count);

}

return0;

}

PHP经典笔试题


在求职过程中需要注意的问题您知道?需要的求职技巧您知道?职场小编告诉你,在求职过程中切忌夸夸其谈,切忌过于自信,切忌自我炫耀,切忌左顾右盼以及切忌形象糟糕。感谢阅读《PHP经典笔试题》内容,职场资讯网小编向您推荐一些求职技巧知识,希望能够帮到您。

1请说明PHP中传值与传引用的区别。什么时候传值什么时候传引用?

答:传值只是把某一个变量的值传给了另一个变量,而引用则说明两者指向了同一个地方。

2在PHP中error_reporting这个函数有什么作用?

答:Theerror_reportingfunctionsetstheerror_reportingdirectiveatruntime.PHPhasmanylevelsoferrors,usingthisfunctionsetsthatlevelfortheduration(runtime)ofyourscript.

3请用正则表达式(RegularExpression)写一个函数验证电子邮件的格式是否正确。

答:

php

if(isset($_POST['action'])

$_POST['action']==submitted)

{

$email=$_POST['email'];

if(!preg_match(/^(?:w+.?)*w+@(?:w+.?)*w+$/,$email))

{

echo

电子邮件检测失败;

}

else

{

echo

电子邮件检测成功;

}

}

else

{

?

《新浪网技术部笔试题》由编辑撰写而成,内容素材主要来源于网络,希望在您求职技巧过程中能帮到您!我们把大量的“技术面试求职技巧”内容汇集于专题再现给您,希望您喜欢!