预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共23页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

丈夫志四方,有事先悬弧,焉能钧三江,终年守菰蒲。——《顾炎武》【⾯试】C语⾔⾯试100题1、请填写bool,float,指针变量与“零值”⽐较的if语句。提⽰:这⾥“零值”可以是0,0.0,FALSE或者“空指针”。例如int变量n与“零值”⽐较的if语句为:if(n==0)if(n!=0)以此类推。(1)请写出boolflag与“零值”⽐较的if语句:【标准答案】if(flag)if(!flag)100条经典C语⾔笔试题⽬(2)请写出floatx与“零值”⽐较的if语句:【标准答案】constfloatEPSINON=0.00001;if((x>=-EPSINON)&&(x<=EPSINON)不可将浮点变量⽤“==”或“!=”与数字⽐较,应该设法转化成“>=”或“<=”此类形式。100条经典C语⾔笔试题⽬(3)请写出char*p与“零值”⽐较的if语句【标准答案】if(p==NULL)if(p!=NULL)2、以下为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)4(4)voidFunc(charstr[100]){……;}请计算sizeof(str)=(5)void*p=malloc(100);请计算sizeof(p)=【标准答案】(4)4、(5)44、⽤变量a给出下⾯的定义e)⼀个有10个指针的数组,该指针是指向⼀个整型数的;f)⼀个指向有10个整型数数组的指针;g)⼀个指向函数的指针,该函数有⼀个整型参数并返回⼀个整型数;h)⼀个有10个指针的数组,该指针指向⼀个函数,该函数有⼀个整型参数并返回⼀个整型数;【标准答案】e)int*a[10];f)int(*a)[10]g)int(*a)(int);h)int(*a[10])(int)志不强者智不达,言不信者行不果。——墨翟人人好公,则天下太平;人人营私,则天下大乱。——刘鹗5、设有以下说明和定义:typedefunion{longi;intk[5];charc;}DATE;structdata{intcat;DATEcow;doubledog;}too;DATEmax;则语句printf("%d",sizeof(structdate)+sizeof(max));的执⾏结果是:_____【标准答案】DATE是⼀个union,变量公⽤空间.⾥⾯最⼤的变量类型是int[5],占⽤20个字节.所以它的⼤⼩是20data是⼀个struct,每个变量分开占⽤空间.依次为int4+DATE20+double8=32.所以结果是20+32=52.当然…在某些16位编辑器下,int可能是2字节,那么结果是int2+DATE10+double8=206、请问以下代码有什么问题:intmain(){chara;char*str=&a;strcpy(str,“hello”);printf(str);return0;}【标准答案】没有为str分配内存空间,将会发⽣异常问题出在将⼀个字符串复制进⼀个字符变量指针所指地址。虽然可以正确输出结果,但因为越界进⾏内在读写⽽导致程序崩溃。7、请问以下代码有什么问题:char*s=“AAA”;printf("%s",s);s[0]=‘B’;printf("%s",s);有什么错?【标准答案】“AAA”是字符串常量。s是指针,指向这个字符串常量,所以声明s的时候就有问题。cosntchar*s=“AAA”;然后⼜因为是常量,所以对是s[0]的赋值操作是不合法的。8、int(*s[10])(int)表⽰的是什么啊【标准答案】int(*s[10])(int)函数指针数组,每个指针指向⼀个intfunc(intparam)的函数。9、c和c++中的struct有什么不同?【标准答案】c和c++中struct的主要区别是c中的struct不可以含有成员函数,⽽c++中的struct可以。c++中struct和class的主要区别在于默认的存取权限不同,struct默认为public,⽽class默认为private老当益壮,宁移白首之心;穷且益坚,不坠青云之志。——唐·王勃丹青不知老将至,贫贱于我如浮云。——杜甫10、voidgetmemory(char*p){p=(char*)malloc(100);strcpy(p,“helloworld”);}intmain(){char*str=NULL;getmemory(str);printf(“%s/n”,str);free(str);return0;}会出现什么问题?【标准答案】程序崩溃,getmemory中的mall