欢迎来到天天文库
浏览记录
ID:44908404
大小:430.92 KB
页数:19页
时间:2019-11-04
《C笔试面试题及答案解析(一)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、1错题1.1基础1)下列选项中,合法的C语言关键字是DA.VARB.cherC.integerD.defaultdefault只用在switch语句中。2)若执行完成下列语句:inta=3,b=6,c;c=a∧b<<2;则变量c的二进制值为:DA.00011100B.00010100C.0001000D.000110113)设有以下定义或语句,则输出的结果是?A(用small模式编译,指针变量占2个字节)structdate{long*cat;structdate*next;doubledog;}too;printf("%d",sizeof
2、(too));A.20B.16C.14D.124)设x、y、t均为int型变量,则执行语句:x=y=3;t=++x
3、
4、++y;后,y的值为CA.不定值B.4C.3D.15)执行下列语句中,sum变量的值是:Dintsum=0for(inti=0;i<10;i++,sum+=i);A.45B.55C.0D.编译错误6)请写出floatx与“零值”比较的if语句:【标准答案】constfloatEPSINON=0.00001;if((x>=-EPSINON)&&(x<=EPSINON)不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成
5、“>=”或“<=”此类形式。7)以下为Linux下的32位C程序,请计算sizeof的值。charstr[]=“Hello”;char*p=str;intn=10;请计算(1)sizeof(str)=(2)sizeof(p)=(3)sizeof(n)=【标准答案】(1)6、(2)4、(3)48)请问以下代码有什么问题:char*s="AAA";printf("%s",s);s[0]='B';printf("%s",s);有什么错?【标准答案】"AAA"是字符串常量。s是指针,指向这个字符串常量,所以声明s的时候就有问题。cosntchar*
6、s="AAA";然后又因为是常量,所以对是s[0]的赋值操作是不合法的。constchar*p="123";p[1]='3';//会报错p="456";//不会报错constchar*只是说指针指向的内容不可变,但指针本身可以再赋值假设你的程序是char*findArg(char*s){returns;}这个时候,你如果传constchar*进去,那么好一些的编译器,会知道,你传回的函数返回值,也是constchar*,也就是指针指向的内容不可写。所以如果你传进去的是constchar*,最好还是把char*name写成constchar*
7、name,因为char*name可以对指针指向的内容进行修改。用强制转换当然也可以,但是constchar*name2="123";char*name=(char*)name2;如果你对name指向的内容进行改变,如name[2]='4';"123"是常量,对常量进行修改,你的程序就会发生不可预知的错误char*findArg(char*){.....}如果你这个函数,对传入的参数,不会对指针指向的内容进行修改,最好写成char*findArg(constchar*){....}或constchar*findArg(constchar*){
8、....}9)给定结构structA{chart:4;chark:4;unsignedshorti:8;unsignedlongm;};问sizeof(A)=?【标准答案】810)structname2{charstr;intnum;shortx;};求sizeof(name2)?【标准答案】1232位64位char11int4大多数4,少数8short22long48float44double88指针48(单位都为字节)结构体(struct):比较复杂,对齐问题。联合(union):所有成员中最长的。枚举(enum):根据数据类型。(1)
9、结构体变量中成员的偏移量必须是成员大小的整数倍(0被认为是任何数的整数倍)(2)结构体大小必须是所有成员大小的整数倍,也即所有成员大小的公倍数。结构体类型需要考虑到字节对齐的情况,不同的顺序会影响结构体的大小。11)关键字volatile有什么含意?并给出三个不同的例子。【参考答案】一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:1).并行设
10、备的硬件寄存器(如:状态寄存器)2).一个中断服务子程序中会访问到的非自动变量(Non-automaticvariables)3).多线程应用中被几个任务共享的变量12)#inc
此文档下载收益归作者所有