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

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

题型解析:

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

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

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

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

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

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

论述题:

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

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

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

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

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

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

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

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

题目

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

题目分析

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

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

2.回答策略

本题的解决思路如下:

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

结合场景做需求分析。

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

产品落地。

3.详细解答

(1)爸爸的用户画像

46岁中年男子。

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

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

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

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

(2)需求管理

1.结合场景做需求分析

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

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

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

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

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

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

zC530.Com延伸阅读

腾讯实习生游戏策划笔试题


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

想要去腾讯面试游戏策划的同学有福啦,以下是下面是由应届毕业生网PQ小编推荐的往年腾讯实习生游戏策划笔试题,欢迎大家阅读。

一、基础知识单选题:(15题每题2分,共30分)

1、哪种植物不属于岁寒三友?

A、松B、竹C、梅D、柏

2、马可波罗是在哪个朝代来到中国的?

A、宋朝B、元朝C、明朝D、唐朝

3、三国中董卓字什么?

A、仲颖B、奉先C、仲谋D、奉孝

4、1986年失事的航天飞机名?

A、挑战者号B、哥伦比亚号C、发现者号D、奋进号

5、《三体》作者是?

B、刘慈欣B、今何在C、血红D、唐家三少

6、下列哪位演员没有参演《小时代1》?

A、柯震东B、杨幂C、郭采洁D、夏雨

7、人们一般撒来快速融化积雪路面?

A、盐B、石灰C、苏打D、明矾

8、在韩国使用最多的类似微信软件是?

A、LINEB、KakaoTalkC、whatsappD、FBMsngr

9、代号Gingerbread(姜饼)是指哪个安卓版本?

A、2.0B、2.3C、2.1D、3.0

10、哪个是诺基亚曾经开发的手机操作系统?

A.SailfishB、MeeGoC、MoblinD、Android

11、《你画我猜》被哪家公司收购?

A、ZyngaB、FacebookC、KingD、Twitter

12、不是《进击的巨人》中城墙名字的是?

A、WallMariaB、WallChynaC、WallSinaD、WallRose

13、哪一部不是生化题材的电影?

A、生化危机B、僵尸世界大战C、行尸走肉D、我是传奇

14、年冬奥会在哪里举行?

A、慕尼黑B、安纳西C、平昌D、萨尔茨堡

15、图表数值题

二、专业知识单项选择题(共15题,每题3分)

16、以下哪个游戏类型与其他游戏不同?

A、雨血蜃楼B、我叫MTC、魔兽争霸D、龙之谷

17、FTG是什么类型游戏的缩写?

A、角色扮演类B、格斗技术类C、动作类D、休闲竞速类

18、以下哪些游戏的故事题材和其他选项不一样?

A、剑侠情缘3B、九阴真经C、寻仙D、笑傲江湖

19、以下哪个游戏是腾讯自研发的?

A、御龙在天B、英雄联盟C、刀剑2D、剑灵

20、以下哪个游戏不是webgame?

A、神仙道B、萌江湖C、六道仙尊D、七雄争霸

21、以下哪种模式不是英雄联盟中的模式?

A、澄海CB、扭曲丛林C、召唤师峡谷D、中路大乱斗

22、以下哪款手游的游戏类型与其他选项不一样?

A、时空猎人B、王者之剑C、吞月之狼D、放开那三国

23、下列卡牌游戏不是手机游戏的是?

A、傲世西游B、我叫MTC、炉石传说D、大掌门

24、WCG是哪一年停止举办的?

A、2012B、2013C、2014D、没有停止

25、以下哪个种族不是《剑灵》中有的?

A、天族B、鬼族C、人族D、灵族

26、以下哪个平台与其他有所不同?

A、百度91B、应用宝C、37wanD、PP助手

27、以下哪个角色不在同一代《仙剑奇侠传》中?

A、景天B、韩菱纱C、重楼D、唐雪见

28、以下哪款游戏是从国外引进的?

A、斗战神B、完美世界C、疾风之刃D、天涯明月刀

29、以下哪个网站不是网络游戏资讯为主?

A、17173B、4399C、GamelookD、太平洋游戏网

30、Flappybird是哪个国家的游戏开发者开发的?

A、美国B、日本C、越南D、英国

三、简答题:(共2题,31题10分,32题15分)

31、有5个人自称是世上最聪明的人,被国王知道了,对他们的狂妄自大很是生气,于是设题难为他们。

国王让这5个人坐成一列,然后蒙上他们的眼睛。从前到后编号为ABCDE。

国王说:我手中有四顶黑帽子和三顶白帽子,要在你们每人头上戴一顶,你们只能看坐在前面的人头上的帽子是什么颜色而不能回头看。谁能说出自己头上戴的是什么颜色的帽子,所有人都有重赏,谁要是说错了,都要砍头。

国王从坐在最后面的E开始问起,一直到B都不知道自己头上戴的是什么颜色的帽子。

到了A,也就是坐在前面的第一个,国王说:你坐在最前面,你的前面一个人都没有,根本连一顶帽子的颜色都看不到,你更不可能知道头上的帽子是什么颜色的了。

不料,A却说,不,我知道,我头上戴的是白色的帽子。

请问他是怎么知道的呢?

32、现在需要你设计一个动作游戏的新副本,主题是香港黑帮。当下任务是设置三个敌兵,请你给出三个敌兵的设计方案。

新浪网技术部笔试题


一、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]

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

美的笔试题目


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

美的笔试,分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;

}

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

相关文章

最新更新