cc面试题及答案.docx
- 文档编号:11655125
- 上传时间:2023-03-29
- 格式:DOCX
- 页数:15
- 大小:25.81KB
cc面试题及答案.docx
《cc面试题及答案.docx》由会员分享,可在线阅读,更多相关《cc面试题及答案.docx(15页珍藏版)》请在冰豆网上搜索。
cc面试题及答案
cc面试题及答案
【篇一:
c语言基础面试题】
表达式与代数式(a+b)+c计算结果不一致的是a.(a+b)*c/2b.(1/2)*(a+b)*cc.(a+b)*c*1/2d.c/2*(a+b)
参考答案:
b,因为a,b,c三个变量都是浮点数,所以在b答案中其结果是0,因为在计算1/2是就是0,如果改成1/2.0就正确了。
2:
为了向二进制文件尾部增加数据,打开文件的方式应采用a.″ab″b.″rb+″c.″wb″d.″wb+″
参考答案:
d
3:
下述程序执行后的输出结果是#includemain(){
intx=f;
printf(%c\n,a+(x-a+1));}a.gb.hc.id.j
参考答案:
a
4:
c语言中,下列运算符优先级最高的是a.!
b.%c.d.==
参考答案:
a
5:
数组定义为“inta[4];”,表达式()是错误的。
a.*ab.a[0]c.a
d.a++
参考答案:
d
6:
执行语句“k=71;”后,变量k的当前值是a.15b.31c.3d.1
参考答案:
c
7:
定义函数时,缺省函数的类型声明,则函数类型取缺省类型a.voidb.charc.floatd.int
参考答案:
d
8:
若main()函数带参数,参数个数最多是a.0b.1c.2d.3
参考答案:
c只知道有定义形式main(intargc,char*argv[]))
9:
若有宏定义:
#definemod(x,y)x%y则执行以下语句后的输出结果是inta=13,b=94;
printf(″%d\n″,mod(b,a+4));a.5b.7c.9d.11
参考答案:
b
10:
下列各个错误中,哪一个不属于编译错误
a.改变x原值3为5,写作“x==5;”b.花括号不配对
c.复合语句中的最后一条语句后未加分号d.变量有引用、无定义
参考答案:
a
11:
下列程序段运行后,x的值是()
a=1;b=2;x=0;if(!
(--a))x--;if(!
b)x=7;else++x;a.0b.3c.6d.7
参考答案:
a
12:
设
#definen3
#definey(n)((n+1)*n)
则表达式2*(n+y(5+1))的值是a.42b.48c.54d.出错参考答案:
by(5+1)传递过去的应该是6,而不是简单的把5+1给替换掉
13:
若定义了charch[]={″abc\0def″},*p=ch;则执行printf(″%c″,*p+4);语句的输出结果是a.defb.dc.ed.0
参考答案:
c
14:
下列转义字符中错误的是a.′\000′b.′\14′c.′\x111′d.′\2′
参考答案:
cerrorc2022:
273:
toobigforcharacter
15:
算术运算符,赋值运算符和关系运算符的运算优先级按从高到低依次为a.算术运算、赋值运算、关系运算
b.算术运算、关系运算、赋值运算c.关系运算、赋值运算、算术运算d.关系运算、算术运算、赋值运算参考答案:
b
16:
设#definen3
#definey(n)((n+1)*n)
则表达式2*(n+y(5+1))的值是a.42b.48c.54d.出错
参考答案:
b
17:
表达式strcmp(“3.14”,“3.278”)的值是一个a.非零整数b.浮点数c.0d.字符
参考答案:
a
18:
设struct{shorta;charb;floatc;}cs;
则sizeof(cs)的值是a.4b.5c.6d.7
参考答案:
d字节对齐的话应该是8
19:
若变量已正确定义,表达式(j=3,j++)的值是a.3b.4c.5d.0
参考答案:
a
20:
c语言中运算对象必须是整型的运算符是
a.%b./c.!
d.**
参考答案:
a简答题
21:
打印一个n*n的方阵,n为每边字符的个数(3〈n〈20),要求最外层为“x”,第二层为“y”,从第三层起每层依次打印数字0,1,2,3,...
例子:
当n=5,打印出下面的图形:
xxxxxxyyyxxy0yxxyyyxxxxxx
22:
谈谈com的线程模型。
然后讨论进程内/外组件的差别。
23:
多态类中的虚函数表是compile-time,还是run-time时建立的?
参考答案:
虚拟函数表是在编译期就建立了,各个虚拟函数这时被组织成了一个虚拟函数的入口地址的数组.
而对象的隐藏成员--虚拟函数表指针是在运行期--也就是构造函数被调用时进行初始化的,这是实现多态的关键.
24:
#includevoidmain(){intc;
while((c=getchar())!
=′\n′)switch(c-′2′){case0:
case1:
putchar(c+4);break;case2:
putchar(c+4);break;case3:
putchar(c+3);break;default:
putchar(c+2);break;}
printf(″\n″);
}
运行时输入:
2473,输出结果:
参考答案:
6897vc++6.0测试过25:
用两个栈实现一个队列的功能?
参考答案:
设2个栈为a,b,一开始均为空.入队:
将新元素push入栈a;出队:
(1)判断栈b是否为空;
(2)如果不为空,则将栈a中所有元素依次pop出并push到栈b;
(3)将栈b的栈顶元素pop出;这样实现的队列入队和出队的平摊复杂度都还是o
(1),
26:
写一语句实现x是否为2的若干次幂的判断。
参考答案:
!
(x)(x-1)
27:
解二次方程:
a*x*x+b*x+c
intquadratic(doublea,doubleb,doublec,doublex1,doublex2);返回值:
解的个数
28:
如何判别一个数是unsigned。
参考答案;
#defineissignal(x)((x=0~x=0)?
1:
0)//为1是无符号为0有符号
29:
执行下述程序的输出结果是abcdefcdefef。
#include
charb[]=abcdef;main(){
char*bp;
for(bp=b;*bp;bp+=2)printf(%s,bp);printf(\n);}
30:
已知一个数组table,用一个宏定义,求出数据的元素个数。
参考答案:
#definentbl#definentbl(sizeof(table)/sizeof(table[0]))
【篇二:
c_sharp精华面试题及答案】
.选择,填空题
1.在中,对于command对象的executenonquery()方法和executereader()方法,
下面叙述错误的是(c)。
a)insert、update、delete等操作的sql语句主要用executenonquery()方法来执行;b)executenonquery()方法返回执行sql语句所影响的行数。
c)select操作的sql语句只能由executereader()方法来执行;~
d)executereader()方法返回一个datareder对象;
2.面向对象的语言具有__继承性_性、_封装性_性、_多态性性。
3.能用foreach遍历访问的对象需要实现________________接口或声明
________________方法的类型。
(@)
答:
ienumerable、getenumerator()
4.在c#中,表示一个字符串的变量应使用以下哪条语句定义?
(b)
a.cstringstr;
b.stringstr;
c.dimstrasstring
d.char*str;
5.在c#编制的财务程序中,需要创建一个存储流动资金金额的临时变量,则应使用下列哪
条语句?
(a)
a.decimalthemoney;
b.intthemoney;
c.stringthemoney;
d.dimthemoneyasdouble
6.c#中,新建一字符串变量str,并将字符串”tomslivingroom”保存到串中,则应该使用下列哪条语句?
(b)
a.stringstr=“tom\slivingroom”;
b.stringstr=“tomslivingroom”;
c.stringstr(“tomslivingroom”);
d.stringstr(“tom”slivingroom”);
7.应用访问数据时,connection对象的连接字符串中initialcatalog子串的含义是(a)
a.connection对象连接到的数据库的名称
b.connection对象的身份验证信息
c.connection对象的最大连接时间
d.connection对象使用的缓存大小
8.使用visualstudio.net的”新建c#项目”创建一个名为”simpleform”的windows表单应用程序,则在生成_______文件中可设置该程序集的copyright、trademark等属
性信息.(d)
a.form1.resx
b.simpleform.sln
c.simpleform.csproj
d.assemblyinfo.cs
9.c#程序中,为使变量myform引用的窗体对象显示为对话框,必须:
(c)
a.使用myform.showdailog方法显示对话框
b.将myform对象的isdialog属性设为true
c.将myform对象的formborderstyle枚举属性设置为fixeddialog
d.将变量myform改为引用system.windows.dialog类的对象
10.下列哪些语言可以用来开发xmlwebservice?
(a,b,c,d)
a.c
b.c++
c.java
d.c#
11.web表单中,按钮的默认事件是(a)
a.click事件
b.load事件
c.init事件
d.command事件
12.关于窗体应用程序,下列说法哪些是正确的?
(d)
a.web窗体是在浏览器中进行解释执行的
b.web窗体程序中脚本和代码必须严格分开
c.web窗体程序产生的html页面只能运行于ie浏览器
d.web窗体程序的代码可以使用任何一种.net兼容的编程语言编写
13.关于结构类型,下列说法哪些是正确的?
(a)
a.结构是值类型
b.结构中不允许定义带参数的实例构造函数;
c.结构中不允许定义析构函数
d.结构中可以定义成员方法,但是方法内不能使用this指针
e.不能使用new关键字创建结构类型的实例
14.关于线程和进程,下列说法哪些是正确的?
(ad)
a.线程是操作系统分配处理器时间的基本单位;
b.进程是操作系统分配处理器时间的基本单位;
c.一个线程可以属于多个进程;
d.一个进程可以有多个线程;
15.为从某个网站访问xml信息,应使用(_)类的对象分析下载返回的xml文档
cd)(
astreamreader
btextreader
cxmlreader
dxmltextreader
16.面向对象编程中的”继承”的概念是指(b)
a派生类对象可以不受限制地访问所有的基类对象
b派生自同一个基类的不同类的对象具有一些共同特征
c对象之间通过消息进行交互
d对象的内部细节被隐藏
17.以下叙述正确的是(d)。
@
a.一条表达式中可以同时出现浮点数类型和decimal类型
b.类可以继承,并且可以多重继承
c.int[,]b=newint[4,5]//创建了一个二维数组,第一维长为4,第二维长为5
d.intx=23;objecto=x;inty=(int)o;//实现了一次装箱操作
18.以下有关结构类型和枚举类型的叙述错误的是(c)。
a.结构类型和枚举类型都是复合类型
b.结构类型只能是简单值类型的组合
c.枚举类型要求成员只能是整数类型
d.枚举类型的变量在某一时刻只
19.接口和类最主要的区别在于(d)。
a.类可以重载而接口不可以
b.类不可以重载而接口可以
c.类可以多重重载而接口不可以
d.类不可以多重重载而接口可以
20.关于静态域成员与非静态域成员,以下说法正确的是(c)。
a.一个类的所有对象共享非静态域成员
b.一个类的一个对象分别拥有不同的非静态域成员的实例
c.静态域成员都能在不生成实例的情况下直接被使用
d.非静态域成员都能
21.关于重载,以下叙述错误的是(c,d)。
a.重载是指在类的内部存在若干个方法名称一致但是参数列表不同的方法
b.方法重载是指创建多个名称相同的方法,其中每个方法都在某些方面具有唯一性,以便编译器能够正确区别它们
c.重载构造函数主要是为了在创建对象的同时进行赋值
d.方法的重载允许两个方法的名称和参数列表相同,而返回类型不同
22.下面有关c#中方法的参数描述正确的是(b)。
a.利用值类型参数调用方法时,对形参的修改会反映到实参上去
b.输出型参数的实参在传递给形参前,不需要明确赋值
c.引用型参数不另外开辟新的内存区域,这一点是它与输出型参数的不同之处
d.数组型参数可以是任何类型的数组
23.下面是一个派生类的定义语句:
publicclasscar:
vehicle
{privatestringmodel=”l”;
privateintwheelno=4;}
请指出针对该定义的正确的说法(c)。
a.vehicle类是car类的一个特例,因而它可以被继承
b.car类是父类,vehicle类是子类
c.在car类中定义的成员model和wheelno会删除vehicle类中同名的成员
d.car类是vehicle类的一个特例,它可以继承vehicle类中除构造函数和析构函
24.(d)关键字可以用来访问当前对象的基类对象。
a.objectb.this
c.asd.base
25.重载是(b)的形式之一。
a.接口b.多态
c.继承d.类
26.x的初值为24,则表达式x+=x--+=x%=17运算的结果值为(d)。
a.28b.27
c.26d.错误的表达式
27.下面是几条定义初始化二维数组的语句,指出其中正确的是(d)。
a.intarray2[][]=newint[3,2];
b.intarray2[,]=newint[3,2];
c.int[][]array2=newint[3,2];
d.int[,]array2=newint[3,2];
28.一个初始化语句:
enummonthes{january,february=3,march=5,april=7,may,june},则此时may的值为(c)。
a.4b.5c.8d.9
29.在中所有的自定义用户控件都必须继承自________?
答:
control。
30.在.net中所有可序列化的类都被标记为_____?
答:
[serializable]
31.在.net托管代码中我们不用担心内存漏洞,这是因为有了______?
答:
gc。
32.在.net中,类system.web.ui.page可以被继承么?
答:
可以。
33.声明静态变量的关键字是(static),声明常量的关键字是(const)
34.在流程控制中continue的作用(跳出当前循环继续下一次循环)
35.软件工程的三大文档(需要分析说明书)(概要设计说明书)(详细设计说明书)。
36.b/s通常使用的结构设计模型分为(模型)(视图)(控制器)。
(mvc经典的
web/business/dataaccess)
37.xml的全称是(extensiblemarkuplanguage”可扩展标记语言”),提供了快速和有
效地读写xml的方式的类分别是(xmlreader)(xmlwriter)
38.c#中所有的类型实质上都是从(object)类派生而来的。
39.net运行库支持被称为(委托)的引用类型,其作用类似于c++中函数指针的用途。
40.b/s通常使用的结构设计模型分为()()()?
*
41.类的三大特性是()()()
42..net运行库支持被称为()的引用类型,其作用类似于c++中函数指针的用途43.c#中处理内存管理功能的是(托管代码gc(垃圾回收))
44.在c#中用于显式地将一个值或引用转换为另一种不同的类型称为(拆箱)45.在ado。
net中,command对象是用(excutenonquery)(excutescalar)
(excutedatareader)方法执行命令
【篇三:
c语言的面试题_带答案-中软国际整理】
pclass=txt>1)限制变量的作用域
2)设置变量的存储域(堆,主动分配内存也是堆)
1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
2)在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。
它是一个本地的全局变量。
3)在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。
那就是,这个函数被限制在声明它的模块的本地范围内使用。
4.全局变量和局部变量在内存中是否有区别?
如果有,是什么区别?
全局变量储存在静态数据库,局部变量在栈
6.堆栈溢出一般是由什么原因导致的?
堆栈溢出一般是循环的递归调用导致的,如果使用的大数据结构的局部变量,也可能导致堆栈溢出。
没有回收垃圾资源导致的是内存泄露最后内存耗尽。
20.不能做switch()的参数类型是:
switch的参数不能为实型。
(只能是intchar)
9.写出floatx与“零值”比较的if语句。
if(x0.000001x-0.000001)
3.在c语言库函数中将一个字符转换成整型的函数是atol()吗,这个函数的原型是什么?
函数名:
atol
功能:
把字符串转换成长整型数
函数的原型:
longatol(constchar*nptr);
程序例:
#includestdlib.h
#includestdio.h
intmain(void)
{
longl;
char*str=98765432;
l=atol(lstr);
printf(string=%sinteger=%ld\n,str,l);
return(0);
}
1.对于一个频繁使用的短小函数,在c语言中应用什么实现,在c++中应用什么实现?
c用宏定义,c++用inline
8.软件测试都有那些种类?
黑盒:
针对系统功能的测试白合:
测试函数功能,各函数接口
9.确定模块的功能和模块的接口是在软件设计的那个阶段完成的?
概要设计阶段
11.unsignedchar*p1;
unsignedlong*p2;
p1=(unsignedchar*)0x801000;
p2=(unsignedlong*)0x810000;
请问p1+5=?
;
p2+5=?
;
答:
p1+5=0x801005;
p2+5=0x810014;
1.请问下面程序有什么错误?
inta[60][250][1000],i,j,k;
for(k=0;k1000;k++)
for(j=0;j250;j++)
for(i=0;i60;i++)
a[i][j][k]=0;
把循环语句内外换一下
(编译的时候没错,运行的时候出错,但这个数组太大,如果放在栈中,还是会溢出,要作为全局变量)
2.#definemax_cb500
voidlmiquerycsmd(structmsgcb*pmsg)
{
unsignedcharuccmdnum;
......
for(uccmdnum=0;uccmdnummax_cb;uccmdnum++)
{
......;
}
死循环(unsignedchar0到255)
3.以下是求一个数的平方的程序,请找出错误:
#definesquare(a)((a)*(a))
inta=5;
intb;
b=square(a++);//a被加了2次a=7,b=25
2、有一个16位的整数,每4位为一个数,写函数求他们的和。
解释:
整数110101*********1
和1101+0101+1011+0111
/*n就是16位的数,函数返回它的四个部分之和*/
charsumofquaters(unsignedshortn)
{
charc=0;
inti=4;
do
{
c+=n15;
n=n4;
}while(--i);
returnc;
}
3、两个字符串,s,t;把t字符串接到s字符串尾,s字符串有足够的空间存放t字符串
voidconnect(char*s,char*t,inti)
{
char*q=t;
char*p=s;
if(q==null)return;
while(*p!
=\0)
{
p++;
}
while(*q!
=0)
{
*p=*q;
p++;
q++;
}
*p=\0;
}
voidmain()
{
charp[7]=abc;
charp2[]=efg;
connect(p,p2,3);
printf(%s,p);
}
4、分析下面的代码:
c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- cc 试题 答案