编程面试题
㈠ java开发面试题
1、面向对象的特征有哪些方面?
答:面向对象的特征主要有以下几个方面:
- 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。
- 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段(如果不能理解请阅读阎宏博士的《Java与模式》或《设计模式精解》中关于桥梁模式的部分)。
- 封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。面向对象的本质就是将现实世界描绘成一系列完全自治、封闭的对象。我们在类中编写的方法就是对实现细节的一种封装;我们编写一个类就是对数据和数据操作的封装。可以说,封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口(可以想想普通洗衣机和全自动洗衣机的差别,明显全自动洗衣机封装更好因此操作起来更简单;我们现在使用的智能手机也是封装得足够好的,因为几个按键就搞定了所有的事情)。
- 多态性:多态性是指允许不同子类型的对象对同一消息作出不同的响应。简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情。多态性分为编译时的多态性和运行时的多态性。如果将对象的方法视为对象向外界提供的服务,那么运行时的多态性可以解释为:当A系统访问B系统提供的服务时,B系统有多种提供服务的方式,但一切对A系统来说都是透明的(就像电动剃须刀是A系统,它的供电系统是B系统,B系统可以使用电池供电或者用交流电,甚至还有可能是太阳能,A系统只会通过B类对象调用供电的方法,但并不知道供电系统的底层实现是什么,究竟通过何种方式获得了动力)。方法重载(overload)实现的是编译时的多态性(也称为前绑定),而方法重写(override)实现的是运行时的多态性(也称为后绑定)。运行时的多态是面向对象最精髓的东西,要实现多态需要做两件事:1). 方法重写(子类继承父类并重写父类中已有的或抽象的方法);2). 对象造型(用父类型引用引用子类型对象,这样同样的引用调用同样的方法就会根据子类对象的不同而表现出不同的行为)。
2、访问修饰符public,private,protected,以及不写(默认)时的区别?
答:
修饰符
当前类
同 包
子 类
其他包
public √ √ √ √
protected √ √ √ ×
default √ √ × ×
private √ × × ×
类的成员不写访问修饰时默认为default。默认对于同一个包中的其他类相当于公开(public),对于不是同一个包中的其他类相当于私有(private)。受保护(protected)对子类相当于公开,对不是同一包中的没有父子关系的类相当于私有。Java中,外部类的修饰符只能是public或默认,类的成员(包括内部类)的修饰符可以是以上四种。
3、String 是最基本的数据类型吗?
答:不是。Java中的基本数据类型只有8个:byte、short、int、long、float、double、char、boolean;除了基本类型(primitive type)和枚举类型(enumeration type),剩下的都是引用类型(reference type)。
4、float f=3.4;是否正确?
答:不正确。3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型(down-casting,也称为窄化)会造成精度损失,因此需要强制类型转换float f =(float)3.4; 或者写成float f =3.4F;。
5、short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?
答:对于short s1 = 1; s1 = s1 + 1;由于1是int类型,因此s1+1运算结果也是int 型,需要强制转换类型才能赋值给short型。而short s1 = 1; s1 += 1;可以正确编译,因为s1+= 1;相当于s1 = (short)(s1 + 1);其中有隐含的强制类型转换。
6、Java有没有goto?
答:goto 是Java中的保留字,在目前版本的Java中没有使用。(根据James Gosling(Java之父)编写的《The Java Programming Language》一书的附录中给出了一个Java关键字列表,其中有goto和const,但是这两个是目前无法使用的关键字,因此有些地方将其称之为保留字,其实保留字这个词应该有更广泛的意义,因为熟悉C语言的程序员都知道,在系统类库中使用过的有特殊意义的单词或单词的组合都被视为保留字)
7、int和Integer有什么区别?
答:Java是一个近乎纯洁的面向对象编程语言,但是为了编程的方便还是引入了基本数据类型,但是为了能够将这些基本数据类型当成对象操作,Java为每一个基本数据类型都引入了对应的包装类型(wrapper class),int的包装类就是Integer,从Java 5开始引入了自动装箱/拆箱机制,使得二者可以相互转换。
㈡ Java编程常见面试题目,要求正确答案
1.
final关键字,修饰类,方法,或者成员变量为最终的,使其不可被修改
finally可跟在try catch语句或者try语句后使用,表示这个方法一定会被执行
finalize通知垃圾回收机制回收被finalize标示的对象,但不保证马上就会执行
2.
可以继承也可以实现接口
由于构造方法必须与类型一致,所以其没有构造方法,继承有参构造方法必须调用父类的
直接new interface就是实现接口
3.
Nested Class (一般是C++的说法),Inner Class (一般是JAVA的说法)。
Java内部类与C++嵌套类最大的不 同就在于是否有指向外部的引用上
4.
&&短路与,当两个条件,如a>b&&b>c,中a>b为假时b>c这个语句不会被执行而直接返回false
&两个条件都会被执行
5.
最重要区别是hashtable是线程安全的(同步)而hashMap不是。。
6.
Collection 层次结构中的根接口,而Collections是一个工具类,它包含有各种有关集合操作的静态方法
7.
系统测试的时候
8.
垃圾回收机制,因为java不能手动清理内存,而内存不清理系统资源会被耗尽,所以要有GC
9.
两个,String pool一个"xyz",堆里面一个String 对象
10.
11 -11
11.
s1+1,s1自动转换成int类型,其结果返回一个int,所以报错
12.
sleep在睡眠一段时间后会自己醒来,而wait不能,它必须别的线程唤醒它(notify或者notifyAll)
13.
java有标签但是没goto
14.
数组没length()方法只有length这个属性,String有
15.
方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。
16.
用equals ==只判断内存地址是否一致,而equals判断是否引用的是同一个对象
17.
IndexOutOfBoundsException 数组越界
NullPointerException 空指针异常
SystemException 系统异常
18.
error表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。
exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况
19.
List,Set是 Map不是
20.
abstract class可以有实现方法interface不能
21.
都不能
22.
都可以
23.
start()
24.
可以
25.
不可以,String 是final
26.
不能
27.
会,先执行finally里的,再return
28.
2<<3
29.
如果不重写方法是不可以,但是重写了就难说
30.
引用
31.
byte可以,因为其可以自动转换成int类型,其他都不可以
32.
public class Singleton
{
private Singleton(){}
//在自己内部定义自己一个实例,是不是很奇怪?
//注意这是private 只供内部调用
private static Singleton instance = new Singleton();
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton getInstance() {
return instance;
}
}
第二种形式:
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
//这个方法比上面有所改进,不用每次都进行生成对象,只是第一次
//使用时生成实例,提高了效率!
if (instance==null)
instance=new Singleton();
return instance; }
}
㈢ 一到C语言面试题~~~无需编程!!!
while(!(hi & 0x80) 就是while((hi&0x80)==0),只要hi的最高位不为1,也就是hi<128就循环
while(~(hi & 0x80)) 就是 while((hi&0x80)!=0xFF)就是hi&0x80不是255就行,而0x80不全为1,所以对于任意的hi都成立
综上:
while(!(hi & 0x80)就是 while(hi<128)
while(~(hi & 0x80)) 就是 while(1),是个无限循环
㈣ 请教大家一个C语言面试的编程题目
这是一道老题目了,代码如下,望采纳:
#include<stdio.h>
#include<stdlib.h>
intfindNUM(void)
{
intcnt=0;
intN=0;//EDCBA
intNswitch=0;//ABCDE
for(cnt=10000*4;cnt<=99999;cnt+=4)//初始位置是40000,因为ABCDE最小为10000,那EDCBA最小为40000
{
Nswitch=0;
N=cnt;
//将EDCBA变换为ABCDE
do
{
Nswitch=Nswitch*10+N%10;
N/=10;
}while(N!=0);
if((cnt>>2)==Nswitch)
{
returncnt;//找到该数并返回
}
}
return-1;//找不到,返回-1
}
intmain(void)
{
intresult=findNUM();
switch(result)
{
case-1:
{
printf("thenumberisn'texist! ");
break;
}
default:
{
printf("theABCDEis%d ",result/4);
printf("theEDCBAis%d ",result);
break;
}
}
return0;
}
截图:
㈤ java面试中的编程题
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class ASampleGUI extends JFrame {
private static final long serialVersionUID = -6900864731505625418L;
private JButton button;
private JTextField textField;
public ASampleGUI() {
button = new JButton("确定");
textField = new JTextField(10);
this.setLayout(new FlowLayout());
this.add(textField);
this.add(button);
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("ok");
textField.setText("");
}
});
}
public static void main(String[] args) {
ASampleGUI gui = new ASampleGUI();
gui.setTitle("a sample window");
gui.setSize(200, 100);
gui.setVisible(true);
gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
㈥ 有关软件编程中的面试技巧。
参加面试前,一定要有所准备,否则很容易被面试官的各种问题而问倒,且易紧张。每个面试官的面试问题都不同,但在面试时,都应该从容面对面试提问。具体如何面对面试,以下为您提供参考资料:
1、认真调研。首先要从各个渠道收集该公司的信息。或浏览他们的网页,或阅读有关的各类报道,对其企业文化、经营哲学、财务状况等做到心中有数,并知晓该公司最近有何热点话题。其次还要争取对面试官姓甚名谁、在公司的职位和角色有所了解。如果面试当天你能熟练地称呼考官,并恰当地透露你对公司的了解和看法,想必会给面试官留下深刻的印象。
2、恰当着装。穿职业装就万无一失吗?No。不妨先了解他们的企业文化。不要背着背包去面试,可以考虑提一个公文包,公文包中再多备几份简历,并带好笔和记事本。这样,你就会既显得亲近,又不失职业风范。
3、准时到达。面试当天早点动身。若去早了,还可以浏览一下你之前做过的笔记,做一做深呼吸等等。千万不要迟到,也不要匆匆忙忙冲进面试房间。否则,人家对你的评价就是——计划性很差。
4、准备答案。以下问题在面试中常会遇到,你不妨提前备好答案:你怎么自己介绍?为什么对这个职位感兴趣?你的职业目标是什么?你的优点和缺点是什么?为什么你觉得自己能胜任这个工作?以前的同事是如何评价你的?为什么要辞去上一份的工作?
5、运用肢体。握手要坚实有力,手掌不要带汗;要流露出对对方办公环境的欣赏;坐直并保持目光接触,面试官讲话时要点头或说“嗯”以表示认同;始终微笑;不要打断面试官;回答问题时面部表情要生动并富有激情;面试最后可以问面试官几个问题,比如:能否介绍一下每天的工作内容?此番面试之后贵公司有何安排?
面试中应注意的问题应试者要想在面试答辩中获得成功,必须注意以下几个问题:
(一)淡化面试的成败意识。一位面试者在面试前自认为各方面都比别人优秀,因此,他认为自己可以高枕无忧了。谁知主考官在面试中出其不意,提了一个他前所未闻的问题。顿时,他像失了魂似的,情绪十分低落。等到主考官再提些简单的问题时,他仍无法从刚才的失败中走出来,最终名落孙山。应试者对于面试的成败,首先在思想上应注意淡化,要有一种“不以物喜,不以己悲”的超然态度。如果在面试中有这样的心态,才会处变不惊。如果只想到成功,不想到失败,那么在面试中一遇到意外情况,就会惊慌失措,一败涂地。
(二)保持自信。应试者在面试前树立了自信,在面试中也要始终保持自信,只有保持了自信,才能够在面试中始终保持高度的注意力、缜密的思维力、敏锐的判断力、充沛的精力,夺取答辩的胜利。
(三)保持愉悦的精神状态。愉悦的精神状态,能充分地反映出人的精神风貌。所以,作为应试者来说,保持了愉快的精神状态,面部表情就会和谐自然,语言也会得体流畅。反之,就会给人一种低沉、缺乏朝气和活力的感觉,那么首先就会给主考官或者主持人一种精神状态不佳的印象。由此可见,面试中一定要注意保持一种愉悦的精神状态。
(四)树立对方意识。应试者始终处于被动地位,考官或主考官始终处于主动地位。他问你答,一问一答,正因为如此,应试者要注意树立对方意识。首先要尊重对方,对考官要有礼貌,尤其是考官提出一些难以回答的问题时,应试者脸上不要露出难看的表情,甚至抱怨考官或主持人。当然,尊重对方并不是要一味地逢迎对方,看对方的脸色行事,对考官的尊重是对他人格上的尊重;其次在面试中不要一味地提到“我”的水平、“我”的学识、“我”的文凭、“我”的抱负、“我”的要求等。“我”字太多,会给考官目中无人的感觉。因此,要尽量减少“我”字,要尽可能地把对方单位摆进去,“贵单位向来重视人才,这一点大家都是清楚的,这次这么多人来竞争就说明了这一点。”这种话既得体,又确立了强烈的对方意识,考官们是很欢迎的;再次是考官提问,你才回答,不要考官没有提问,你就先谈开了,弄得考官或主持人要等你停下来才提问,既耽误了时间,同时也会给考官或主持人带来不愉快。另外,面试完后,千万不要忘记向考官或主持人道声“谢谢”和“再见”。
(五)面试语言要简洁流畅。面试有着严格的时间限制。因此,面试语言要做到要言不烦、一语中的。同时,语言要有条理性、逻辑性,讲究节奏感,保证语言的流畅性。切忌含含糊糊,吞吞吐吐,这会给考官或主持人留下坏的印象,从而导致面试的失败。因此,应试者一定要注意面试语言的简洁性和流畅性。
(六)不要紧张。有些应试者尽管在面试前已做好了充分的心理准备,但是一进面试室就紧张起来;有些应试者在答辩中遇到“卡壳”时,心情也立刻变得紧张起来。怎样解决在这两种情况下出现的心理紧张呢?我们要分析紧张的原因。这种极度的紧张是由于应试者的卑怯心理和求胜心切而造成的。因此,应试者一进面试室,应该去掉“自愧不如人”的意识,确立“大家都差不多,我的水平与其他人一样”的意识,有了这种意识,紧张的情绪就会减少一大半,随着面试的开始,紧张情绪就有可能完全消失。对于遇到“卡壳”而紧张的问题,如果抱着“能取胜则最好,不能胜也无妨”的态度,紧张就会即刻消失,很快就进入正常的面试状态,有可能出现“柳暗花明又一村”的境界。所以,应试者在面试中一定要注意不要紧张。
(七)仪态大方。举止得体大胆前卫、浓妆艳抹的装扮,尤其是男士戴戒指、留长头发等标新立异的装扮不太合适,与机关工作人员的身份不符,会给考官留下很坏的印象。应试者入座以后,尽量不要出现晃腿、玩笔、摸头、伸舌头等小动作,这很容易给考官一种幼稚、轻佻的感觉。一般说来,穿着打扮应力求端庄大方,可以稍作修饰,男士可以把头发吹得整齐一点,皮鞋擦得干净一些,女士可以化个淡雅的职业妆。总之,应给考官自然、大方、干练的印象。
总之,面试时,这些坏习惯一定要改掉,并自始自终保持斯文有礼、不卑不亢、大方得体、生动活泼的言谈举止。这不仅可大大地提升自身的形象,而且往往使成功机会大增。
时下的招聘已经从主观印象发展到科学评价,用人方不仅要和应聘者见一面,更开始在形象仪表、自信心及潜在心理等方面全方位考察。如果你是一个时尚求职者,不妨从以下几方面去适应。
法宝一:求职从写好简历开始
好的求职简历对于应聘是否成功极其重要。那么,如何写好一份求职简历?
第一个原则:求职简历要“简”。招聘经理们在面对上百份甚至更多的求职简历,不可能对所有的简历都进行仔细的阅读。但是,内容简洁、易懂、清楚的简历最不易被漏掉,而那些长篇大论而不知所云式的简历最不招人喜欢。第二个原则:求职简历要突出经历,用人单位最关心的是应聘者的经历,从经历来看应聘者的经验、能力和发展潜力。因此,在写简历的时候,要重点写你学过的东西和做过的事情,即你的学习经历和工作经历。学习经历包括主要的学校经历和培训经历,工作经历要标明你经历过的单位、从事的主要工作,如果你的经历太多,不好一一列出,也可以把近期经历写得详细些,把初期参加工作的经历写得简略些。尤其是近期的工作经历一定不要遗漏,否则会引起用人单位的不信任。第三原则:求职简历要突出所应聘的“职位”信息。招聘经理关心主要经历的目的是为了考察应聘者能否胜任拟聘职位。因此,无论是在写自己的经历,还是做自我评价的时候,一定要紧紧抓住所应聘职位的要求来写。切记,招聘经理们只对他们和职位相关的信息感兴趣。
法宝二:准备工作马虎不得
参加求职面试,除了随身要携带必要的证书、文凭、照片等常规的用品之外,的确还应事先做些“功课”,简要地说,大概有四方面的准备工作。
一是背熟自己的求职履历。常常遇到有些求职太过频繁,而自己的求职履历则又是经过精心“包装”含有大量“水分”的,轮到面试时有时连自己都记不清究竟“工作经验”是怎样“排列组合”的,一上阵便迅速“露出马脚”,不战自败。当然,如今企业在选拔人才时也会着重考察履历的真实性,那些包装过头的履历的求职者最终会“吃苦头”的。
二是准备好同所申请的职位相吻合的“道具”。身上穿的、手上戴的均能反映出求职者对所申请的职位的理解程度。试想如果一家五星级酒店招一名公关经理,而这位公关经理的候选人下雨天穿着高统套鞋去面试恐怕同所申请的职位形象相去甚远,是绝不会被录用的。所以面试时的“道具”也应有所选择。
三是准备好同自己身份相吻合的语言。每个人都应对语言和遣词用字有所选择,面试不同于闲聊,每句话,每一个词甚至每个字都应有所挑选。如不少不谙世面的求职者参加面试时张口闭口你们公司,听多了肯定会引起别人的反感。应该十分有礼貌客气地说“贵公司”,礼多人不怪嘛!
四是准备好同选择的职业和身份相吻合的行为规范。面试时的细小行为最能说明一个人的真实情况,所谓“于细微处见真情”。譬如一位前来应征秘书的小姐,作为主试官一定要想方设法令其将身随所携带的包打开,因为从中可以看出这位女孩子的条理性,一个自己包内物品都是弄得杂乱无章毫无头绪的人,很难在工作中能十分有条理。
法宝三:莫忘塑造你的专业形象
1、适当衣着在求职时,尽可能不穿牛仔裤、高跟拖鞋,以免给招考官留下太随便的印象。同样你的头发和化妆,也会影响你的形象。化妆越淡雅自然越好。求职时的正式装扮,应是比较典雅、成熟的,而不是穿有许多装饰品、褶边或蕾丝的服装。因为你希望主考官注意的是你的内在气质,而不是你上衣的滚边。
2、流利的表达语言能力是主考官评估你的一个重要指标。所以,如果你说话时经常用“恐怕”、“那”、“这”等口头语,你给人的印象将是犹豫不决、紧张,甚至迟钝。别人就会把你当作小女孩,对你工作能力的信心也降低。
3、保持自信一般主考官都认定应聘者应该有社交能力,以及有在大家面前开口说话的勇气,这是最基本的商业技巧。不要一想到自己要在主考官面前说话,就开始想象负面的结果:万一我的意见太幼稚,我说话的内容会让人取笑……如果你会怯场,那么,充分的准备可以帮助你镇定自己。万一你临时被通知要在考场上发言,那么,最好的办法是写下你要说的重点,然后一一列举和演泽。
4、握手有感染力你若是与对方握手时用力过大或是时间过长都是不妥的,这些动作证明你过于紧张,会让对方感到恐惧或是不舒服。而采取“轻触式”会显得你的胆怯和对别人的不尊重。同你的主考官握手,态度要坚定,双眼直视对方,自信地介绍自己,握住对方的手,要保证你的整个手臂呈L型(90度),有力地摇两下,然后把手自然放下。
法宝四:把握结束面试的最佳时间
成功的面试有适当的时间限制,谈短了不行,长了更不行,时间长了对应试人不利。谈话时间的长短要视面试内容而定,一般宜掌握在半小时至45分钟左右。那么,怎么才能把握好适时离场的时间呢?一般来说,在高潮话题结束之后或者是在主试人暗示之后就应该主动告辞。应试人作完自我介绍之后,主试人会相应地提出问题,然后转向谈工作。主试人先会把工作、内容、职责介绍一番,接着让应试人谈谈今后工作的打算和设想。尔后,双方会谈及福利待遇问题。这些都是高潮话题,谈完之后你就应该主动作出告辞的姿态,不要盲目拖延时间
㈦ 一个微软公司的编程面试题
为了容易说明,我们先做些字符上的约定。设两个数字分别为a和b。甲知道它们的和x = a + b,乙知道它们的积y = a * b。
首先,甲问乙:“你知道是那两个数吗?”乙说:“不知道”。这说明什么呢?
乙是知道两个数的积y的。如果这个数y分解为a和b的方式只有1种(比如34 = 2 * 17),那么乙显然就知道这两个数是什么了。因此,通过这句话,我们必须筛选出所有“有2种可能组合以上的y值”,我们称之为R1,乙知道的数字y肯定在R1这个集合里。同时,“有2种可能组合以上的y值”对应的分解后的a和b可以组成一个集合S1:因为有些数字乘起来根本无法组成R1里的数字。这个集合S1就是两个数字筛选一次后的结果。
然后乙又问甲:“你知道是那两个数吗?”甲说:“也不知道”。这又说明什么呢?
注意这句话已经是第2句话了,根据理性假设,甲现在已经和我们一样筛选出了集合S1。但是同样的,他虽然知道两个数的和x,但是在集合S1里却仍然有两种以上的组合可能性。我们可以筛选出“S1中有2种可能组合以上的x值”,称之为R2。同时,利用R2中的x值,可以在S1中再筛选出分解后的a和b组成的新集合S2。这个集合S2是第2次筛选后的结果。
然后乙立刻说:“那我知道了”。
这说明,在集合S2中,乘积y只有一种分解方法。我们只要找到这种分解就可以了。当然,这样做可能仍然有多个解,因为乙是知道y是几的,但我们并不知道。我们称这个y的集合(“S2中有1种可能组合的y值”)为R3,R3的可能分解为S3。
然后甲又说:“那我知道了”。
这说明,在集合S3中,他所知道的分解x = a + b也只有1种。这时计算得到的a和b就是我们所要的答案。
我写的比较啰嗦,不知道你能不能看懂…… 你先看着,我稍后把程序贴上。
㈧ 面试时考编程题的原因是为了干什么时间有限的情况下谁能答得好
有可能是看面试者在有限时间内,对于提出的问题,面试者解决的思路。
如果在有限的时间内,自己没有考虑好的话,可以把自己已经想到的思路写出来。
答得不好不一定没戏。如果面试者的解题思路超出面试官的想象,也有可能被录用。
㈨ 关于网络编程的面试题求助
#include<stdio.h>
#include<stdlib.h>
int n,m;
int * a,*b,*c;
void Initial();
void SortCombinArray(int a[],int b[],int n, int m);
int main(void)
{
Initial();
SortCombinArray(a,b,n,m);
return 0;
}
void Initial()//初始化数组函数,提示用户输入并储存
{
int i;
printf("请输入第一个数组元素个数:");
scanf("%d",&n);
a=(int *)malloc(sizeof(int)*n);
printf("请依次输入第一个数组元素值:\n");
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
printf("请输入第二个数组元素个数:");
scanf("%d",&m);
b=(int *)malloc(sizeof(int)*m);
printf("请依次输入第二个数组元素值:\n");
for(i=0;i<m;i++){
scanf("%d",&b[i]);
}
}
void SortCombinArray(int a[],int b[],int n, int m)//将两个升序数组合并成一个升序数组
{
int i=0,j=0,k=0;
c=(int *)malloc(sizeof(int)*(n+m));
while(i<n&&j<m){ //两个升序数组合并
if(a[i]<b[j]){
c[k++]=a[i++];
}
else{
c[k++]=b[j++];
}
}
while(i<n){
c[k++]=a[i++];
}
while(j<m){
c[k++]=b[j++];
}
printf("合并后的升序数组输出如下:\n");
for(i=0;i<k;i++){
printf("%3d",c[i]);
}
printf("\n");
}
㈩ 编程工作面试问题!!
只有C的基础要从事后面的工作是需要您不断的磨练的,但只要有信心我相信你一定可以的。这几天我建议你去看一本书,叫《thinking in java》中文翻译是:java 编程思想,这本书对你进军java有极大的帮助!后面的那些东西例如 html css javascript很简单,但是很繁琐,后面培训起来很轻松的,先去把java的逻辑基础打牢。