c语言经典面试题目_第1页
c语言经典面试题目_第2页
c语言经典面试题目_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2024年c语言经典面试题目

#include

classbase{intX;

public∶

voidint(intinitX){X=initX;}

intGetnum(){returnX+7;}

voidmain()

{_______

_______

couttest.Getnum();

}

#include

voidSB(charch){

switch(ch){

caseA:casea:

coutwell!;break;

caseB:caseb

coutgood!;break;

caseC:casec:

coutpass!;break

default:

coutbad!;break;

)

coutendl;

}

voidmain(){

chara=Abcaf

for(inti=0;a;i++)SB(a);}

#include

#include

classMagic{

doublex;

public∶

Magic(doubled=0.00)∶x(fabs(d)){}

Magic_______{returnMagic(sqrt(x*x+c.x*c.x));}

_______(ostreamos,Magicc){returnosc.x;}

};

voidmain()

{Magicma;

coutma’,’Magic(-8)’,’ma+Magic(-3)+Magic(-4);

}

问题一:static关键字的作用?

答:

Static的用途主要有两个,一是用于修饰存储类型使之成为静态存储类型,二是用于修饰链接属性使之成为内部链接属性。

1.静态存储类型:

在函数内定义的静态局部变量,该变量存在内存的静态区,所以即使该函数运行结束,静态变量的值不会被销毁,函数下次运行时能仍用到这个值。

在函数外定义的静态变量——静态全局变量,该变量的作用域只能在定义该变量的文件中,不能被其他文件通过extern引用。

2.内部链接属性

静态函数只能在声明它的源文件中使用。

问题二:const关键字的作用?

答:

1.声明常变量,使得指定的变量不能被修改。

constinta=5;/*a的值始终为5,不能被转变*/

constintb;b=10;/*b的值被赋值为10后,不能被转变*/

constint*ptr;/*ptr为指向整型常量的指针,ptr的值可以修改,但不能修改其所指向的值*/

int*constptr;/*ptr为指向整型的常量指针,ptr的值不能修改,但可以修改其所指向的值*/

constint*constptr;/*ptr为指向整型常量的常量指针,ptr及其指向的值都不能修改*/

2.修饰函数形参,使得形参在函数内不能被修改,表示输入参数。

如intfun(constinta);或intfun(constchar*str);

3.修饰函数返回值,使得函数的返回值不能被修改。

constchar*getstr(void);使用:const*str=getstr();

constintgetint(void);使用:constinta=getint();

问题三:volatile关键字的作用?

答:

volatile指定的关键字可能被系统、硬件、进程/线程转变,强制编译器每次从内存中取得该变量的值,而不是从被优化后的寄存器中读取。例子:硬件时钟;多线程中被多个任务共享的变量等。

问题四:extern关键字的作用?

答:

1.用于修饰变量或函数,表明该变量或函数都是在别的文件中定义的,提示编译器在其他文件中查找定义。

externinta;

externint*p;

externintarray;

externvoidfun(void);

其中,在函数的声明带有关键字extern,仅仅是示意这个函数可能在别的源文件中定义,没有其他作用。如:

头文件A:A_MODULE.h中包含

externintfunc(inta,intb);

源文件A:A_MODULE.c中

#include“A_MODULE.h”

intfunc(inta,intb)

{

returna+b;

}

此时,绽开头文件A_MODULE.h后,为

externintfunc(inta,intb);/*虽然示意可能在别的源文件中定义,但又在本文件中定义,所以extern并没有起到什么作用,但也不会产生错误*/

intfunc(inta,intb)

{

returna+b;

}

而源文件B:B_MODULE.c中,

#include“A_MODULE.h”

intret=func(10,5);/

绽开头文件A_MODULE.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论