C语言笔试面试题整理Word文档下载推荐.docx

上传人:b****6 文档编号:18595094 上传时间:2022-12-29 格式:DOCX 页数:23 大小:25.82KB
下载 相关 举报
C语言笔试面试题整理Word文档下载推荐.docx_第1页
第1页 / 共23页
C语言笔试面试题整理Word文档下载推荐.docx_第2页
第2页 / 共23页
C语言笔试面试题整理Word文档下载推荐.docx_第3页
第3页 / 共23页
C语言笔试面试题整理Word文档下载推荐.docx_第4页
第4页 / 共23页
C语言笔试面试题整理Word文档下载推荐.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

C语言笔试面试题整理Word文档下载推荐.docx

《C语言笔试面试题整理Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言笔试面试题整理Word文档下载推荐.docx(23页珍藏版)》请在冰豆网上搜索。

C语言笔试面试题整理Word文档下载推荐.docx

 

2,07010188,0711,李镇豪,

1,07010154,0421,陈亦良,

3,07010194,0312,凌瑞松,

4,07010209,0351,罗安祥,

5,07010237,0961,黄世传,

8.写一个函数,判断一个unsignedchar字符有几位是1.

写一个函数判断计算机的字节存储顺序是升序(little-endian)还是降序(big-endian).

9.微软的笔试题.

ImplementastringclassinC++withbasicfunctionalitylikecomparison,concatenation,inputandoutput.Pleasealsoprovidesometestcasesandusingscenarios(samplecodeofusingthisclass).

PleasedonotuseMFC,STLandotherlibrariesinyourimplementation.

10.有个数组a[100]存放了100个数,这100个数取自1-99,且只有两个相同的数,剩下的98个数不同,写一个搜索算法找出相同的那个数的值.(注意空间效率时间效率尽可能要低).

这十道题还是能够看出自己的水平如何的.如果你能不假思索地做出这10道题,估计去国外大公司是没有问题了,呵呵.

答案我在整理中,以后陆续发布.................

下面有些题也不错,可以参考.

1.下面的代码输出是什么,为什么?

voidfoo(void)

{

unsignedinta=6;

intb=-20;

(a+b>

6)?

puts("

>

6"

):

<

=6"

);

//puts为打印函数

}

输出>

6.

就是考察隐式转换.int型变量转化成unsignedint, b成了正数.

2.b)运行下面的函数会有什么结果?

charstring[10],str1[10];

inti;

for(i=0;

10;

str1[i]='

a'

;

strcpy(string,str1);

%s"

string);

首先搞清strcpy函数的实现方法,

char*strcpy(char*strDest,constchar*strSrc)

{

 if((strDest == NULL) || (strSrc == NULL))

  throw"

Invalidargument(s)"

 char*strDestCopy = strDest;

 while((*strDest++ = *strSrc++) !

= '

\0'

 returnstrDestCopy;

}

由于str1末尾没有'

\0’结束标志,所以strcpy不知道拷贝到何时结束.

printf函数,对于输出char*类型,顺序打印字符串中的字符直到遇到空字符('\0')或已打印了由精度指定的字符数为止.

下面是微软的两道笔试题....

3.ImplementastringclassinC++withbasicfunctionalitylikecomparison,concatenation,inputandoutput.Pleasealsoprovidesometestcasesandusingscenarios(samplecodeofusingthisclass).

我的实现方案如下,这道题真地对c++的主要特性都进行了较好地考察.

String.h:

#ifndefSTRING_H

#defineSTRING_H

#include<

iostream>

usingnamespacestd;

classString{

public:

String();

String(intn,charc);

String(constchar*source);

String(constString&

s);

//String&

operator=(char*s);

String&

operator=(constString&

~String();

char&

operator[](inti){returna[i];

constchar&

operator[](inti)const{returna[i];

}//对常量的索引.

operator+=(constString&

intlength();

friendistream&

operator>

(istream&

is,String&

//搞清为什么将>

设置为友元函数的原因.

//friendbooloperator<

(constString&

left,constString&

right);

friendbooloperator>

left,constString&

//下面三个运算符都没必要设成友元函数,这里是为了简单.

friendbooloperator==(constString&

friendbooloperator!

=(constString&

private:

char*a;

intsize;

};

#endif

String.cpp:

#include"

String.h"

cstring>

cstdlib>

String:

:

String(){

a=newchar[1];

a[0]='

size=0;

String(intn,charc){

a=newchar[n+1];

memset(a,c,n);

a[n]='

size=n;

String(constchar*source){

if(source==NULL){

else

{size=strlen(source);

a=newchar[size+1];

strcpy(a,source);

String(constString&

s){

size=strlen(s.a);

//可以访问私有变量.

//if(a==NULL)

strcpy(a,s.a);

String&

String:

operator=(constString&

if(this==&

s)

return*this;

delete[]a;

~String(){

//

operator+=(constString&

intj=strlen(a);

intsize=j+strlen(s.a);

char*tmp=newchar[size+1];

strcpy(tmp,a);

strcpy(tmp+j,s.a);

a=tmp;

intString:

length(){

returnstrlen(a);

main.cpp:

booloperator==(constString&

right)

inta=strcmp(left.a,right.a);

if(a==0)

returntrue;

returnfalse;

booloperator!

=(constString&

return!

(left==right);

ostream&

operator<

(ostream&

os,String&

intlength=s.length();

for(inti=0;

i<

length;

//os<

s.a[i];

这么不行,私有变量.

os<

s[i];

returnos;

Stringoperator+(constString&

a,constString&

b){

Stringtemp;

temp=a;

temp+=b;

returntemp;

booloperator<

(constString&

right){

intj=0;

while((left[j]!

='

)&

&

(right[j]!

)){

if(left[j]<

right[j])

if(left[j]==right[j]){

j++;

continue;

if((left[j]=='

))

booloperator>

{inta=strcmp(left.a,right.a);

if(a>

0)

istream&

delete[]s.a;

s.a=newchar[20];

intm=20;

charc;

inti=0;

while(is.get(c)&

isspace(c));

if(is){

do{s.a[i]=c;

i++;

/*if(i>

=20){

cout<

"

Inputtoomuchcharacters!

"

<

endl;

exit(-1);

}*/

if(i==m-1){

s.a[i]='

char*b=newchar[m];

strcpy(b,s.a);

m=m*2;

s.a=newchar[m];

strcpy(s.a,b);

delete[]b;

!

isspace(c));

//如果读到空白,将其放回.

if(is)

is.unget();

s.size=i;

returnis;

intmain(){

Stringa="

abcd"

Stringb="

www"

//Stringc(6,b);

这么写不对.

Stringc(6,'

l'

Stringd;

Stringe=a;

//abcd

Stringf;

cin>

f;

//需要输入...

Stringg;

g=a+b;

//abcdwww

if(a<

b)

a<

b"

a>

=b"

if(e==a)

e==a"

e!

=a"

b+=a;

a<

b<

c<

d<

e<

f<

g<

g[0]<

return0;

4.Implementasingle-directionlinkedlistsortingalgorithm.Pleasefirstdefinethedatastructureoflinkedlistandthenimplementthesortingalgorithm.

5.编写一个函数,返回两个字符串的最大公串!

例如,“adbccadebbca”和“edabccadece”,返回“ccade”

联想笔试题>

1.设计函数intatoi(char*s)。

intatoi(constchar*nptr);

函数说明

atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('

)才结束转换,并将结果返回。

返回值返回转换后的整型数。

stdio.h>

ctype.h>

intmyAtoi(constchar*s){

intresult=0;

intflag=1;

while(isspace(s[i]))

if(s[i]=='

-'

){

flag=-1;

+'

while(s[i]!

if((s[i]>

'

9'

)||(s[i]<

0'

break;

intj=s[i]-'

result=10*result+j;

result=result*flag;

returnresult;

char*a="

-1234def"

char*b="

+1234"

inti=myAtoi(a);

intj=myAtoi(b);

%d\n"

i);

%d"

j);

  2.inti=(j=4,k=8,l=16,m=32);

printf(“%d”,i);

输出是多少?

  3.解释局部变量、全局变量和静态变量的含义。

  4.解释堆和栈的区别。

  5.论述含参数的宏与函数的优缺点。

普天C++笔试题>

  1.实现双向链表删除一个节点P,在节点P后插入一个节点,写出这两个函数。

  2.写一个函数,将其中的\t都转换成4个空格。

  3.Windows程序的入口是哪里?

写出Windows消息机制的流程。

  4.如何定义和实现一个类的成员函数为回调函数?

  5.C++里面是不是所有的动作都是main()引起的?

如果不是,请举例。

  6.C++里面如何声明constvoidf(void)函数为C程序中的库函数?

  7.下列哪两个是等同的

  intb;

  Aconstint*a=&

b;

  Bconst*inta=&

  Cconstint*consta=&

  Dintconst*consta=&

  8.内联函数在编译时是否做参数类型检查?

  voidg(base&

  b.play;

  }

  voidmain(){

  sons;

  g(s);

  return;

华为笔试题>

笔试内容包括:

  1。

技术试题:

系统windows/linux,网络基础,通信基础,数据库

  2。

能力试题:

根据两故事发表看法

  3。

英语作文

  筛选后进入面试。

 

  共有四轮面试:

  问题一:

两笔记本电脑连起来后拼不通,你觉得可能有哪些问题?

  问题二:

我们在南京,和深圳的网络是通的,但和北京的网络不通,你以怎样的顺序检查问题?

  问题三:

解释什么叫“透明”?

什么叫“网格”?

  问题四:

交换和路由的区别?

vlan的特点?

  问题五:

画一个积分电路和一个微分电路。

  问题六:

知道现在的路由器是第几代了吗?

问题一:

  答:

首选想到是软件问题,软件问题首选查找是否安装有防火墙程序,如否则查看驱动程序有无问题,然后如果是WINDOWS的系统,再查看TCP/IP协议IP地址是否在一个子网,如果以上都无问题,则查看硬件,顺序是网卡--网线。

首选要知道三方的网络拓朴结构与设计规划,然后确定北京地区网络内部是否畅通,网络是否是新建立了,如果不是新建的网,首先要知道以前是否通,如通,则此次不通是在做过什么操作后不通的,确定后首先排除线路故障,然后再看双方连接的路由设置。

透明对用户来说是感觉不到的,也就是说不论对网络加了什么设备或软件,用户都感觉不到,这样的好处是简化了用户的操作复杂性。

网络的概念,是说通过无线或有线将多种服务综合连接到一起,让用户彼此之间可以交换信息。

交换和路由最大的区别在于交换是通过ASIC专用硬件处理数据,路由是通过CPU用软件的形式处理数据。

VLAN的特点为将一个物理网络从逻辑上划分出了多个广播域

  1.请你分别画出OSI的七层网络结构图和TCP/IP的五层结构图。

  2.请你详细地解释一下IP协议的定义,在哪个层上面?

主要有什么作用?

TCP与UDP呢?

  3.请问交换机和路由器各自的实现原理是什么?

分别在哪个层次上面实现的?

  4.请问C++的类和C里面的struct有什么区别?

  5.请讲一讲析构函数和虚函数的用法和作用。

  6.全局变量和局部变量有什么区别?

是怎么实现的?

操作系统和编译器是怎么知道的?

全局变量是在所有函数之外声明的变量,局部变量则是在函数体内声明的变量。

全局变量放在内存的全程数据区,局部变量在栈上申请。

全局数据区分为两部分全局数据区和静态数据区,静态数据区专门存放static变量。

static的全局变量只在该文件范围内可见,不能用extern声明为外部变量。

编译器会自动初始化全局变量。

全局变量的内存分配是静态的,位于PE文件在数据区,在main()前由C、C++运行期函数初始化,如果没有初值,会被初始化为0。

局部变量的内存分配是动态的,位于线程堆栈中。

如果没有初始化的,初值视当前内存内的值而定。

局部变量是在栈中,外部变量是放在数据段,手动分配malloc的才是放在堆中。

  7.8086是多少位的系统?

在数据总线上是怎么实现的?

8086是Intel的16位微处理器,有16根数据线和20根地址线,它既能处理16位数据,也能处理8位数据,内部数据总线都是按16位设计的,单外部数据总线只有8条。

1.请你分别画出OSI的七层网络结构图和TCP/IP的五层结构图。

答:

OSI七层网络结构图

应用层

表示层

会话层

传输层

网络层

数据链路层

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1