欢迎来到天天文库
浏览记录
ID:53002546
大小:242.06 KB
页数:16页
时间:2020-04-10
《王牌8 C常见面试题.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C常见面试题王牌8C常见面试题一、常见试题1.什么是平衡二叉树?左右子树都是平衡二叉树,且左右子树的深度差值的绝对值不大于1。2.堆栈溢出一般是由什么原因导致的?没有回收垃圾资源。3.IP地址的编码分为哪俩部分?IP地址由两部分组成,网络号和主机号。不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。4.以下程序的输出结果是什么?#includemain(){inti=0,a=0;while(i<20){for(;;){if((i%10)==0)break;elsei--;}i+=11;a+=i;}printf
2、("%d",a);}二重循环执行时,先执行外层while循环,条件i<20成立,执行内层循环,判断if语句的条件(i%10)==0成立,则退出内层循环的执行,i=11,a=11;再判断外层循环的条件1C从入门到精通i<20成立,执行内层循环,if语句的条件(i%10)==0不成立,执行else子句,i=10,继续执行内层循环,条件(i%10)==0成立,退出内层循环的执行,i=21,a=32,外层循环的条件不成立,退出整个外层循环的执行。所以输出a值为32。5.已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表
3、示的字符常量’101’是什么?字符A。6.如下程序的输出结果是什么。main(){inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d",s);}该程序的输出结果是18。7.不能做switch()的参数类型是:switch的参数不能为实型。8.一语句实现x是否为2的若干次幂的判断。inti=512;cout<4、时需要预编译?情况1:总是使用不经常改动的大型代码体。情况2:程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。10.以下代码中的两个sizeof用法有问题吗?voidUpperCase(charstr[])//将str中的小写字母转换成大写字母{2C常见面试题王牌8for(size_ti=0;i5、"aBcDe";cout<<"str字符长度为:"<6、defineMAX255intmain(){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了,所以会无限循环下去。12.memcpy和strcpy的根本区别?memcpy用来做内存拷贝,你可以拿它拷贝任何数据类型的对象,可以指定拷7、贝的数据长度;例:chara[100],b[50];memcpy(b,a,sizeof(b));注意如用sizeof(a),会造成b的内存地址溢出。strcpy就只能拷贝字符串了,它遇到' '就结束拷贝;例:chara[100],b[50];strcpy(a,b);如用strcpy(b,a),要注意a中的字符串长度(第一个‘ '之前)是否超过50位,如超过,则会造成b的内存地址溢出。13.头文件中的ifndef/define/endif干什么用?防止该头文件被重复引用。3C从入门到精通14.const有什么用途?(请至少说明两种)const8、可以定义const常量,const可以修饰函数的参数、返回值,甚至函数的定义体。被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的
4、时需要预编译?情况1:总是使用不经常改动的大型代码体。情况2:程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。10.以下代码中的两个sizeof用法有问题吗?voidUpperCase(charstr[])//将str中的小写字母转换成大写字母{2C常见面试题王牌8for(size_ti=0;i5、"aBcDe";cout<<"str字符长度为:"<6、defineMAX255intmain(){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了,所以会无限循环下去。12.memcpy和strcpy的根本区别?memcpy用来做内存拷贝,你可以拿它拷贝任何数据类型的对象,可以指定拷7、贝的数据长度;例:chara[100],b[50];memcpy(b,a,sizeof(b));注意如用sizeof(a),会造成b的内存地址溢出。strcpy就只能拷贝字符串了,它遇到' '就结束拷贝;例:chara[100],b[50];strcpy(a,b);如用strcpy(b,a),要注意a中的字符串长度(第一个‘ '之前)是否超过50位,如超过,则会造成b的内存地址溢出。13.头文件中的ifndef/define/endif干什么用?防止该头文件被重复引用。3C从入门到精通14.const有什么用途?(请至少说明两种)const8、可以定义const常量,const可以修饰函数的参数、返回值,甚至函数的定义体。被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的
5、"aBcDe";cout<<"str字符长度为:"<6、defineMAX255intmain(){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了,所以会无限循环下去。12.memcpy和strcpy的根本区别?memcpy用来做内存拷贝,你可以拿它拷贝任何数据类型的对象,可以指定拷7、贝的数据长度;例:chara[100],b[50];memcpy(b,a,sizeof(b));注意如用sizeof(a),会造成b的内存地址溢出。strcpy就只能拷贝字符串了,它遇到' '就结束拷贝;例:chara[100],b[50];strcpy(a,b);如用strcpy(b,a),要注意a中的字符串长度(第一个‘ '之前)是否超过50位,如超过,则会造成b的内存地址溢出。13.头文件中的ifndef/define/endif干什么用?防止该头文件被重复引用。3C从入门到精通14.const有什么用途?(请至少说明两种)const8、可以定义const常量,const可以修饰函数的参数、返回值,甚至函数的定义体。被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的
6、defineMAX255intmain(){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了,所以会无限循环下去。12.memcpy和strcpy的根本区别?memcpy用来做内存拷贝,你可以拿它拷贝任何数据类型的对象,可以指定拷
7、贝的数据长度;例:chara[100],b[50];memcpy(b,a,sizeof(b));注意如用sizeof(a),会造成b的内存地址溢出。strcpy就只能拷贝字符串了,它遇到' '就结束拷贝;例:chara[100],b[50];strcpy(a,b);如用strcpy(b,a),要注意a中的字符串长度(第一个‘ '之前)是否超过50位,如超过,则会造成b的内存地址溢出。13.头文件中的ifndef/define/endif干什么用?防止该头文件被重复引用。3C从入门到精通14.const有什么用途?(请至少说明两种)const
8、可以定义const常量,const可以修饰函数的参数、返回值,甚至函数的定义体。被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的
此文档下载收益归作者所有