C语言面试题10道题 |
您所在的位置:网站首页 › 网络电视付费频道如何屏蔽 › C语言面试题10道题 |
第一题 各个数据类型与零值比较 特别是float时 #include void fun(int *p); void funchar(char *p); int main() { //test1 //const char *p = "aaa"; //*(p+1) = 'A';// [Error] assignment of read-only location '*(p + 1u)' //printf("%s\n",p); /*test2 char *p = "aaa";//他是存放在代码区的 *(p+1) = 'A';10 12//[Warning] deprecated(反对) conversion from string constant to 'char*' [-Wwrite-strings] printf("%s\n",p);//可以运行编译但是直接闪退 */ /*test3 该测试在Windows下编译结果还是5 在linux下gcc编译器结果为6 const int a = 5; fun((int *)&a); printf("%d\n",a); */ /*test4*/ const char *p = "aaa";//他是存放在代码区的 //funchar((char**)&p);二级指针 //funchar((char*)&p);两个结果都是 Segmentation fault (core dumped) printf("%s\n",p);//可以运行编译但是直接闪退 return 0; } void funchar(char *p) { *(p+1) = 'A'; } void fun(int *p) { *p = 6; } 第5题c和c++ 中的struct有什么不同?【标准答案】 c和c++ 中struct的主要区别 c中的struct不可以含有成员函数,而c++ 中的struct可以。 c++ 中struct和class的主要区别在于默认的存取权限不同, struct默认为public ,而class默认为private 第6题,关于子函数调用maollc 主函数free问题研究 本质就是 函数形参复值的是存储空间的值 而非地址。题目 void getmemory(char *p) { p=(char *)malloc(100);//在这里申请 strcpy(p,“hello world”); } int main( ) { char *str=NULL; getmemory(str); printf(“%s/n”,str); free(str); return 0; } 会出现什么问题? 【标准答案】 程序崩溃,getmemory中的malloc 不能返回 动态内存,free ()对str操作很危险。 #include void getmemory(char *p) { printf("%p\n",p); //printf("%s\n",*p);//*p就表示字符了......format ‘%s’ expects argument of type ‘char *’, //p=(char *)malloc(100);//在这里申请 //strcpy(p,“hello world”); } int main( ) { char *str = "aaaaa"; char *str1 = NULL;//表示str1存储的是null, printf("%p\n",str1); getmemory(str1);//则传递过去 则p存储的也是null //再进行malloc则表示&p形参的这个地址空间中存储的是malloc返回回来的地址。然后子函数结束 p指针释放内存 malloc地址丢失 。 //printf(“%s/n”,str); //free(str); return 0; } 第7题。没有结束标志的字符串数组题目 char szstr[10]; strcpy(szstr,”0123456789”); 产生什么结果?为什么? 【标准答案】 长度不一样,出现段错误。 数组属于顺序存储的线性表 访问块 大小限定 链表属于链式存储的线性表 删除插入块 大小无限制 【标准答案】 数组:数据顺序存储,固定大小; 链表:数据可以随机存储,大小可动态改变 第9题void main() { char aa[10]; printf(“%d”,strlen(aa)); } 会出现什么问题?打印结果是是多少? strlen是以’\0’为结束标志的计数函数 sizeof就是与定义的数据类型有关的 【标准答案】 sizeof()和初不初始化,没有关系, strlen()和初始化有关,打印结果值未知。 第10题 结构体内存对齐问题给定结构struct A { char t:4; ——————1 char k:4; ——————1 unsigned short i:8; ——————2 unsigned long m; ——————4 }; 问sizeof(A) = ? 【标准答案】8 struct name1{ char str; ——————2//内存对齐 short x; ——————2 int num; ——————14 } ;求sizeof(name1)? 【标准答案】8 struct name2{ char str; ——————4 int num; ——————4 short x; ——————2错的 应该是4 }; 求sizeof(name2)? 【标准答案】12 持续的学习才能让你永远保持上坡路!加油!给大家准备了一份免费的C语言学习课程,赶紧来领取吧!需要学习编程或者为了入行、转行学习编程的伙伴可以关注公众号:【速学C语言】公众号回复“1024” 领取全套200G免费C/C++学习资料、视频! |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |