【华为】C 语言面试题大汇总之华为面试题(3)
2)可以修饰参数,作为输入参数.
3)修饰函数,防止以外的改动.
4)修饰类的成员函数,不改变类中的数据成员.
5、关键字volatile有什么含意?并举出三个不同的例子?
答:提示编译器对象的值可能在编译器未监测到的情况下改变。
例子:硬件时钟;多线程中被多个任务共享的变量等
6.int(*s[10])(int)表示的是什么啊
int(*s[10])(int)函数指针数组,每个指针指向一个intfunc(intparam)的函数。
1.有以下表达式:
inta=248;b=4;intconstc=21;constint*d=&a;
int*conste=&b;intconst*fconst=&a;
请问下列表达式哪些会被编译器禁止?为什么?
答:*c=32;d=&b;*d=43;e=34;e=&a;f=0x321f;
*c这是个什么东东,禁止
*d说了是const,禁止
e=&a说了是const禁止
const*fconst=&a;禁止
2.交换两个变量的值,不使用第三个变量。即a=3,b=5,交换之后a=5,b=3;
答:有两种解法,一种用算术算法,一种用^(异或)
a=a+b;
b=a-b;
a=a-b;
or
a=a^b;//只能对int,char..
b=a^b;
a=a^b;
or
a^=b^=a;
3.c和c++中的struct有什么不同?
答:c和c++中struct的主要区别是c中的struct不可以含有成员函数,而c++中的struct
可以。c++中struct和class的主要区别在于默认的存取权限不同,struct默认为public,而class默认为private.
4.#include<stdio.h>
#include<stdlib.h>
voidgetmemory(char*p)
{
p=(char*)malloc(100);
}
intmain()
{
char*str=NULL;
getmemory(str);
strcpy(p,"helloworld");
printf("%s/n",str);
free(str);
return0;
}
答:程序崩溃,getmemory中的malloc不能返回动态内存,free()对str操作很危险
5.charszstr[10];
strcpy(szstr,"0123456789");
产生什么结果?为什么?
答;正常输出,长度不一样,会造成非法的OS,覆盖别的内容.
6.列举几种进程的同步机制,并比较其优缺点。
答:原子操作
信号量机制
自旋锁
管程,会合,分布式系统
7.进程之间通信的途径
答共享存储系统
消息传递系统
管道:以文件系统为基础
————即使你是个编程高手,你在面试前也应该要看看这套题,她也许会给你带来好运,否则你有可能后悔当初为什么没有看而跳楼自杀,这样我会很内疚的。这套题看似简单,但你未必能得高分,即使你看不懂也要把她背下来!
欢迎转载此文,转载时请注明文章来源:文斯测试技术研究中心编程基础基本概念
1.const的理解:constchar*,charconst*,char*const的区别问题几乎是C++面试中每次都会有的题目。事实上这个概念谁都有只是三种声明方式非常相似很容易记混。Bjarne在他的TheC++ProgrammingLanguage里面给出过一个助记的方法:把一个声明从右向左读。
char*constcp;(*读成pointerto)
cpisaconstpointertochar
constchar*p;
pisapointertoconstchar;
charconst*p;
同上因为C++里面没有const*的运算符,所以const只能属于前面的类型。
2.c指针
int*p[n];-----指针数组,每个元素均为指向整型数据的指针。
int(*p)[n];------p为指向一维数组的指针,这个一维数组有n个整型数据。
int*p();----------函数带回指针,指针指向返回的值。
int(*p)();------p为指向函数的指针。
3.数组越界问题(这个题目还是有点小险的)
下面这个程序执行后会有什么错误或者效果:
#defineMAX255
intmain()
{
unsignedcharA[MAX],i;
for(i=0;i<=MAX;i++)
A[i]=i;
}
解答:MAX=255,数组A的下标范围为:0..MAX-1,这是其一,其二当i循环到255时,循环内执行:A[255]=255;这句本身没有问题,但是返回for(i=0;i<=MAX;i++)语句时,由于unsignedchar的取值范围在(0..255),i++以后i又为0了..无限循环下去.
注:char类型为一个字节,取值范围是[-128,127],unsignedchar[0,255]
4.C++:memset,memcpy和strcpy的根本区别?
答:#include"memory.h"
memset用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为''或'';例:chara[100];memset(a,'',sizeof(a));
memcpy用来做内存拷贝,你可以拿它拷贝任何数据类型的对象,可以指定拷贝的数据长度;例:chara[100],b[50];memcpy(b,a,sizeof(b));注意如用sizeof(a),会造成b的内存地址溢出。
strcpy就只能拷贝字符串了,它遇到'\0'就结束拷贝;例:chara[100],b[50];strcpy(a,b);如用strcpy(b,a),要注意a中的字符串长度(第一个'\0'之前)是否超过50位,如超过,则会造成b的内存地址溢出。
strcpy
原型:externchar*strcpy(char*dest,char*src);
{
ASSERT((dest!=NULL)&&(src!=NULL));
Char*address=dest;
While((*dest++=*src++)!=’\0’)
Continue;
Returndest;
}
用法:#include<string.h>
功能:把src所指由NULL结束的字符串复制到dest所指的数组中。
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
memcpy
原型:externvoid*memcpy(void*dest,void*src,unsignedintcount);
{
ASSERT((dest!=NULL)&&(src!=NULL));
ASSERT((dest>src+count)||(src>dest+count));//防止内存重叠,也可以用
restrict修饰指针
Byte*bdest=(Byte*)dest;
Byte*bsrc=(Byte*)src;
While(count-->0)
*bdest++=**bsrc++;
Returndest;
}
用法:#include<memory.h>
功能:由src所指内存区域复制count个字节到dest所指内存区域。
说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。
Memset
原型:externvoid*memset(void*buffer,charc,intcount);
用法:#include
功能:把buffer所指内存区域的前count个字节设置成字符c。
说明:返回指向buffer的指针。
5.ASSERT()是干什么用的
答:ASSERT()是一个调试程序时经常使用的宏,在程序运行时它计算括号内的表达式,如果表达式为FALSE(0),程序将报告错误,并终止执行。如果表达式不为0,则继续执行后面的语句。这个宏通常原来判断程序中是否出现了明显非法的数据,如果出现了终止程序以免导致严重后果,同时也便于查找错误。例如,变量n在程序中不应该为0,如果为0可能导致错误,你可以这样写程序:
......
ASSERT(n!=0);
k=10/n;
......
ASSERT只有在Debug版本中才有效,如果编译为Release版本则被忽略。
assert()的功能类似,它是ANSIC标准中规定的函数,它与ASSERT的一个重要区别是可以用在Release版本中。
6.system("pause");作用?
答:系统的暂停程序,按任意键继续,屏幕会打印,"按任意键继续。。。。。"省去了使用getchar();
相关推荐:
- [资格考试]石油钻采专业设备项目可行性研究报告编
- [资格考试]2012-2013学年度第二学期麻风病防治知
- [资格考试]道路勘测设计 绪论
- [资格考试]控烟戒烟知识培训资料
- [资格考试]建设工程安全生产管理(三类人员安全员
- [资格考试]photoshop制作茶叶包装盒步骤平面效果
- [资格考试]授课进度计划表封面(09-10下施工)
- [资格考试]麦肯锡卓越工作方法读后感
- [资格考试]2007年广西区农村信用社招聘考试试题
- [资格考试]软件实施工程师笔试题
- [资格考试]2014年初三数学复习专练第一章 数与式(
- [资格考试]中国糯玉米汁饮料市场发展概况及投资战
- [资格考试]塑钢门窗安装((专项方案)15)
- [资格考试]初中数学答题卡模板2
- [资格考试]2015-2020年中国效率手册行业市场调查
- [资格考试]华北电力大学学习实践活动领导小组办公
- [资格考试]溃疡性结肠炎研究的新进展
- [资格考试]人教版高中语文1—5册(必修)背诵篇目名
- [资格考试]ISO9001-2018质量管理体系最新版标准
- [资格考试]论文之希尔顿酒店集团进入中国的战略研
- 全国中小学生转学申请表
- 《奇迹暖暖》17-支2文学少女小满(9)公
- 2019-2020学年八年级地理下册 第六章
- 2005年高考试题——英语(天津卷)
- 无纺布耐磨测试方法及标准
- 建筑工程施工劳动力安排计划
- (目录)中国中央空调行业市场深度调研分
- 中国期货价格期限结构模型实证分析
- AutoCAD 2016基础教程第2章 AutoCAD基
- 2014-2015学年西城初三期末数学试题及
- 机械加工工艺基础(完整版)
- 归因理论在管理中的应用[1]0
- 突破瓶颈 实现医院可持续发展
- 2014年南京师范大学商学院决策学招生目
- 现浇箱梁支架预压报告
- Excel_2010函数图表入门与实战
- 人教版新课标初中数学 13.1 轴对称 (
- Visual Basic 6.0程序设计教程电子教案
- 2010北京助理工程师考试复习《建筑施工
- 国外5大医疗互联网模式分析




