面试题目C语言答案1.docx

上传人:b****2 文档编号:765305 上传时间:2023-04-30 格式:DOCX 页数:25 大小:36.51KB
下载 相关 举报
面试题目C语言答案1.docx_第1页
第1页 / 共25页
面试题目C语言答案1.docx_第2页
第2页 / 共25页
面试题目C语言答案1.docx_第3页
第3页 / 共25页
面试题目C语言答案1.docx_第4页
第4页 / 共25页
面试题目C语言答案1.docx_第5页
第5页 / 共25页
面试题目C语言答案1.docx_第6页
第6页 / 共25页
面试题目C语言答案1.docx_第7页
第7页 / 共25页
面试题目C语言答案1.docx_第8页
第8页 / 共25页
面试题目C语言答案1.docx_第9页
第9页 / 共25页
面试题目C语言答案1.docx_第10页
第10页 / 共25页
面试题目C语言答案1.docx_第11页
第11页 / 共25页
面试题目C语言答案1.docx_第12页
第12页 / 共25页
面试题目C语言答案1.docx_第13页
第13页 / 共25页
面试题目C语言答案1.docx_第14页
第14页 / 共25页
面试题目C语言答案1.docx_第15页
第15页 / 共25页
面试题目C语言答案1.docx_第16页
第16页 / 共25页
面试题目C语言答案1.docx_第17页
第17页 / 共25页
面试题目C语言答案1.docx_第18页
第18页 / 共25页
面试题目C语言答案1.docx_第19页
第19页 / 共25页
面试题目C语言答案1.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

面试题目C语言答案1.docx

《面试题目C语言答案1.docx》由会员分享,可在线阅读,更多相关《面试题目C语言答案1.docx(25页珍藏版)》请在冰点文库上搜索。

面试题目C语言答案1.docx

面试题目C语言答案1

1、编写一段程序实现以下功能:

输入一个整数n;

A、如果n是一位整数,则输出n,否则将各个位上的数加起来得到结果n,

B、继续步骤A

例子:

输入n=45699

1、各位之和为4+5+6+9+9=33不是一位数,则n=33

2、继续各位之和为:

3+3=9;结果为一位数,得到最后结果为9

2、输入一个整数N,和一个整数M,则由1到N的各个整数围成一个圆,现要求你从1开始数到M并将第M个数从此列中去掉,并存入已给出的数组,继续从你取出的数的后一位从1开始数,再次数到M为止,从此列中去掉,并存入已给出的数组,一直这样数,直到剩余一个数,最后把你存入数组的数和最后一个数分别打印出来。

例子:

N=10,M=3;

A、12345678910

3、从1开始数数到M(3)则将3取出,并存入数组,剩余数为

B、1245678910

4、从下一位(4)作为1开始数,数到M(3)即6,则将6取出,并存入数组,剩余数为

C、124578910

(依此规律继续,直到剩余最后一个数为止)……………………

最后打印结果为:

从圆中一次取出的数据为:

3692718510

最后剩余的数位:

4

funA(int*x,inta,intb){

returna*b;

}

funB(int*x,inta,intb){

returna%b;

}

funC(int(*t)(),,intx,inty){

return(*t)(y,x);

}

Main(){

Intx,a,b;

A=9;

B=3;

X=funa(b,a);

X+=funC(funB,a,b);

Printf(“%d”,x);

}

求输出结果

下列哪种定义方式是错误的

Charw[2][40];w[1]=”string1”;

Char*w[2];w[1]=“string2”;

Charw[][40]=“string3”;

Charw[]=“string4”;

Java

求结果

PublicTest{

Publicvoiddo(){

StaticintI;

++I;

}

Publicstaticvoidmain(String[]args){

Testtest=newTest();

test.do();

system.out.println(i);

}

}

数据库的题目也有一些,比如某个数据库,三个值ABscore

要查找score的平均成绩,按B分组,如果分数相同,按B的降序显示,还要按平均Score的升序显示

5、内存和指针使用的理解

Linux系统(核心技术点)

1、进程有独立的地址空间

2、进程间通信的机制

3、描述OSI分层结构

———————————————————————————————————————

1、存储区有哪些,staticinta存在哪个区

2、二维数组指针定义,int指针定义,行指针定义,返回int型方法的指针带char型参数

3、合法的ip地址选择

4、在局部变量是否可以和全局变量同名

5、strcpy的实现

6、constchar*p,charconst*p,char*constp的区别

7、堆和栈的区别

8、heap和stack的区别

9、判断程序错误有一条程序printf(str);(str是char型)

10、写出程序运行结果里有一条程序x&=....(不知道&=是什么)

11、写出你接触过最复杂的数据处理

12、写了一个链表插入节点的方法

13、比较注重线程的操作

——————————————————————————————————————

 

单选题

1.以下程序的输出结果是_____a

Main()

{

Intn=4;

While(n--)

Printf(“%d”,--n);

}

a.)20b.)31c.)321d.)210

2.设有以下宏定义:

#defineN4

#defineY(n)((N+1)*n)/*这种定义在编程规范中是严格禁止的*/

则执行语句:

Y(5+1)为_____c

a.)30b.)28c.)26d.)24

3.enumENUM_A

{

X1

Y1

Z1=5

A1

B1

};

enumENUM_AenumA=Y1;

enumENUM_AenumB=B1;

请问enumA=( ); enumB=();b

a.)1,4b.)1,7c.)2,4d.)1,5

4.若有函数max(a,b),并且函数指针变量p已指向函数,当调用该函数时正确的调用方法:

______c

a.)(*p)max(a,b);b.)*pmax(a,b);c.)(*p)(a,b);d.)*p(a,b);

5.对栈S进行下列操作:

push

(1),push(5),pop(),push

(2),pop(),pop()。

则此时栈顶元素是______d

a.)1b.)2c.)0d.)不确定

6.在一个32位的操作系统中,设void*p=malloc(100)。

请问sizeof(p)的结果是___b_

a.)100b.)4c.)2d.)6

7.若已定义:

inta[9],*p=a,并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是_____c

a.)p+1b.)a+1c.)a++d.)++p

8.设有如下定义:

UnsignedlongpulArray[]={6,7,8,9,10}

Unsignedlong*pulPtr;

则下列程序段的输出结果为______d

{

pulPtr=pulArray;

*(pulPtr+2)+=2;

Printf(“%d,%d\n”,*pulPtr,*(pulPtr+2));

}

a.)8,10b.)6,8c.)7,9d.)6,10

9.以下程序运行后,输出结果是d(c)

Voidmain()

{

Char*szStr=”abcde”;

szStr+=2

printf(“%lu\n”,szStr);//printf(“%d\n”,*szStr);

return;

}

a.)cdeb.)字符c的ASCLL码值c.)字符c的地址d.)出错

10.给出以下定义:

C

CharX[]=”hello”;

CharY[]={‘h’,’e’,’l’,’l’,’o’};

则正确的叙述为______

a.)数组X和数组y等价b.)数组X和数组Y的长度相同

c.)数组X的长度大于数组Y的长度d.)数组X的长度小于数组Y的长度

11.在32位X86下,有下列程序

#include

{

Union

{

Intk;

Chari[2];

}*s,a;

S=&a;

s->i[0]=0x39;

s->i[1]=0x38;

printf(“%x\n”,a.k);

}

输出结果是______a(d)

a.)3839b.)3938c.)380039d.)不可预知

12.有如下函数定义:

UnsignedlongMyFunc(unsignedlongulKey)

{

return(((ulKey&0x000000ffUL)<<24)

|((ulKey&0x00000ff00UL)<<8)

|((ulKey&0x00ff0000UL)>>8)

|((ulKey&0xff000000UL)>>24)

}

MyFunc(0x12345678)的返回值_____c

a.)0x12345678b.)0x87654321c.)0x78563412d.)0x12563478

13.((a>b)?

a:

b)代表什么含义______b

a.)代表a,b之中较小的那个值b.)代表a,b之中较大的那个值

c.)代表a是否比b大d.)语法错误

14.某系统总线的一个总线周期包含3个时钟周期,每个总线周期可以传送32位数据。

若总线的时钟频率为33MHz,则总线带宽为_____MB/s。

d(33*32)/3=44

a.)11b.)22c.)33d.)44

15.如下定义,则s在内存中占多大空间______a

#pragmapack

(1)

Union

{

Struct

{

Unsignedcharaa:

4;

Unsignedcharab:

4;

}a;

Unsignedcharc;

Unsignedchard;

}s;

a.)1byteb.)2bytec.)3byted.)4byte

16.如下定义:

UniontagAAAA

{

Struct

{

CharucFirst;

ShortusSecond;

CharucThird;

}half_a;

Longli

}number;

在按1字节对齐情况下:

sizeof(uniontagAAAA)大小是____a

在按4字节对齐情况下:

sizeof(uniontagAAAA)大小是_____c

a.)4byteb.)6bytec.)8byted.)12byte

17.0x12345678在采用BigEndian中内存的排列顺序是__a___,在采用LittleEndian内存中的排列顺序是_c____(答案从左到右内存地址依次增加)

a.)12345678b.)34127856c.)78563412d.)56781234

18.关于静态变量,下面说法“不正确”的有_______a

a.)静态变量在堆栈中分配;

b.)静态变量的作用域一定是局部的,例如在一个文件内或一个函数内;

c.)静态变量可分为静态局部变量和静态全局变量;

d.)静态变量存在于数据段中;

19.下面正确的有_____a

a.)在中断中,不能同步获取信号量,但可以释放信号量;

b.)在中断中,可以使用系统调用sleep函数来等待一会儿;

c.)每一个进程有自己的独立地址空间,每一个线程也有自己的独立地址空间;

d.)CPU占有率为60%,意思是CPU有60%时间在运行指令;40%时间没有运行指令;

20.设有如下定义:

int(*ptr)();则以下叙述中正确的是_____c

a.)ptr是指向一维组数的指针变量;

b.)ptr是指向int型数据的指针变量;

c.)ptr是指向函数的指针,该函数返回一个int型数据;

d.)ptr是一个函数名,该函数的返回值是指向int型数据的指针;

21.在Windows95环境下,定义数组:

int**a[2][4];则数组a所占用的内存单位为_____b

a.)8字节b.)32字节c.)64字节d.)不能确定

22.由国际标准化组织(ISO)和国际电信联盟(ITU-T)共同提出的开放系统互连(OSI)参考模型中共有__b_层,参考模型的最高层则为___c__层。

a.)4b.)7c.)应用d.)会话

23.关于以太网中的ARP协议,描述错误的是_____a_

a.)根据IP地址查询其对应的MAC地址;

b.)根据MAC地址查询其对应的IP地址,便于IP通信;

c.)通过ARP协议产生的IP和MAC地址的映射,超时会淘汰;

d.)ARP请求中的MAC地址为广播地址;

24.关于TCP、UDP及其上层的应用,描述错误的是____b___

a.)TCP协议时面向连接的,UDP协议是面向无连接的;

b.)UDP不保证数据的可靠传送,而文件的传递时要求必须无错传送的,因而所有基于文件传递的应用都不能基于UDP,如TFTP;

c.)telnet是基于TCP的终端应用,连续输入的多个字符可能会被封装到一个TCP包中;

d.)在同一节点上,基于TCP和UDP的应用端口号可以重叠;

25、下面合法的IP地址是:

(c)。

A.129,1,150,115

B.211.260.218.244

C.192.168.192.1

D.24.128.12

改错题

1.请指出下面程序的错误

Unsignedchari=10;//inti=10;

Charb=100;

Char*p;

Voidf(void)

{

//p=&b;

While(--i>=0)

{

*(p++)=d;//(*p)++;//*p=d

}

}

2.下面函数要实现打印helloworld的功能,请问程序中有何错误?

Void*GetMemory(void)

{

Charstr[]=”helloworld”;//char*str=”helloworld”;

Returnstr;

}

VoidTest(void)

{

Char*str=NULL;

Str=(char*)GetMemory();

Printf(str);//printf(“%s”,str);

}

3.请问如下代码有什么错误

#defineMAX_SIZE1000

#defineNULL0//不要

#defineTRUE1

#defineFALSE0

StructXXX

{

Unsignedshorta;

Unsignedshortb;

};

Intdemo(structXXX*p,unsignedlongsize)

{

StructXXX*temp;

Temp=(structXXX*)malloc(sizeof(structXXX)*MAX_SIZE);

If(NULL==temp)

{

ReturnFALSE;

}

Memcpy(temp,p,sizeof(structXXX)*size);

(其他正常操作)

Free(temp);

//temp=NULL;

ReturnTRUE;

4.如下程序用于把“blue”字符串返回,请指出其中的错误:

Char*GetBLUE(void)

{

Char*pcColor;

Char*pcNewColor;

pcColor=”blue”;

pcNewColor=(char*)malloc(strlen(pColor));//pcNewColor=(char*)malloc(strlen(pColor)+1)

//memset(pcNewColor,0,strlen(pColor)+1);

strcpy(pcNewColor,pcColor);

returnpcNewColor;

}

5.请问如下程序段有什么错误

Main()

{

Unsignedlongi=0,*p,*p1;

P=(unsignedlong*)malloc(10000);//P=(unsignedlong*)malloc(10000*4)

P1=p;

For(i=0;i<9999;i++)

{

*p1=0x100;

P1++;

}

(其他操作)

free(p);

//p=NULL:

编程题

对称数判断问题

请编写一段程序,判断一个正整数是否为对称数(对称数即左右对称数字,如3、22、121、1331、34543等),不允许利用C语言将数字转换为字符串的库函数。

BOOLJudgeNumberSymmetry(unsignedlongulNumber)

排队队列问题

n个人,排成1对,(p1,p2,p3….pn)从第1个人开始从1报数,报数到3的人离开队列,队列里的下一个人继续从1开始报数,依次反复,当数到队列尾时,从队列头部继续报数,这样周而复始,直到队列剩一人。

给一个简单例子:

1,2,3,4,5,6,7,共7人

报数结果如下:

1,2,4,5,7,第一轮,3,6离开队列,7报数1,然后从队列头部继续报数,那么第1个人报数2,如此

1,4,5这样第二轮,位置2和位置7离开队列,并且从队列头部继续报数,第1个人报数1,因为对队列尾部的7恰好报数到3。

1,2这样第3轮,5淘汰,

然后开始位置1的人报数1,最后位置1正好报数3,于是离开队列,最后剩下的人是2。

这样给定7个人,原始位置2的人是剩下的人。

请实现一个简单程序,实现上述问题,程序输入n,输出那个最后剩下的人的原始位置。

———————————————————————————————————————

基础题

1.196.183.27.0要划分为2个网段,子网掩码是多少

2.A类网址最多可以包含多少个网络

3.栈的定义题目为英文,选择题

4.队列的定义题目为英文,选择题

5、

funA(int*x,inta,intb){

returna*b;

}

funB(int*x,inta,intb){

returna%b;

}

funC(int(*t)(),,intx,inty){

return(*t)(y,x);

}

Main(){

Intx,a,b;

A=9;

B=3;

X=funa(b,a);

X+=funC(funB,a,b);

Printf(“%d”,x);

}

求输出结果

6、

下列哪种定义方式是错误的

Charw[2][40];w[1]=”string1”;

Char*w[2];w[1]=“string2”;

Charw[][40]=“string3”;

Charw[]=“string4”;

Java

求结果

PublicTest{

Publicvoiddo(){

StaticintI;

++I;

}

Publicstaticvoidmain(String[]args){

Testtest=newTest();

test.do();

system.out.println(i);

}

}

7、数据库的题目也有一些,比如某个数据库,三个值ABscore

8、要查找score的平均成绩,按B分组,如果分数相同,按B的降序显示,还要按平均Score的升序显示

9、Arraylist和linklist的区别

10、方法重载和隐藏的区别

11、在不同版本下INT的大小会不会改变

12、关于GC内存回收系统什么时候回收资源

13、==和equal的区别

14、接口和抽象类的区别和优点

15、关键字

16、Static的用法

———————————————————————————————————————

题目1:

在C++程序中调用被C编译器编译后的函数,为什么要加extern“C”?

题目2:

Newdelete与mallocfree的联系与区别?

题目3:

static有什么用途?

题目4:

引用与指针有什么区别?

题目5:

请实现排序函数。

voidsort(intdata[],intsize)

{

}

题目6:

voidGetMemory(char*p)

{

p=(char*)malloc(100);

}

voidTest(void)

{

char*str=NULL;

GetMemory(str);

strcpy(str,"helloworld");

printf(str);

}

请问运行Test函数会有什么样的结果?

题目7:

已知strncmp函数的原型是

intstrncmp(char*str1,char*str2,intmaxlen);

比较字符串str1和str2的大小,如果str1小于str2,返回值就<0,反之如果str1大于str2,返回值就>0,如果str1等于str2,返回值就=0,maxlen指的是str1与str2的比较的字符数。

此函数功能即比较字符串str1和str2的前maxlen个字符。

不调用C++/C的字符串库函数,请编写函数实现

题目8:

查错,请找出如下API的错误。

/*函数功能,从传入的字符串查找某个特定字符0x47f1,如果找到,返回1,如果没找到,返回0*/

intFindSpecialString(char*pString)

{

chari=0;

chartmpString[5000];

memcpy(&tmpString,pString,sizeof(pString));

for(i=0;i<5000;i++)

{

if(0x47f1==tmpString[i])

{

return1;

}

}

}

——————————————————————————————————————

什么是预编译

何时需要预编译:

1、总是使用不经常改动的大型代码体。

 

2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。

在这种情况下,可以将所有包含文件预编译为一个预编译头。

char * const p;

char const * p

const char *p

上述三个有什么区别?

char * const p; //常量指针,p的值不可以修改

char const * p;//指向常量的指针,指向的常量值不可以改

const char *p; //和char const *p

char str1[] = "abc";

char str2[] = "abc";

const char str3[] = "abc";

const char str4[] = "abc";

const char *str5 = "abc";

const char *str6 = "abc";

char *str7 = "abc";

char *str8 = "abc";

cout << ( str1 == str2 ) << endl;

cout << ( str3 == str4 ) << endl;

cout << ( str5 == str6 ) << endl;

cout << ( str7 == str8 ) << endl;

结果是:

0 0 1 1

解答:

str1,str2,str3,str4是数组变量,它们有各自的内存空间;

而str5,str6,str

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

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2