欢迎来到天天文库
浏览记录
ID:51439024
大小:69.22 KB
页数:22页
时间:2020-03-24
《程序员面试宝典.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、程序设计基本概念1一个小程序,输出结果intx=2,y,z;x*=(y=z=5);//等价于x=x*ycout<2、z);cout<3、y4、5、z);cout<6、:于是只能解释成 i+++j等效为i++ +j3x=x+1,x+=1,x++哪个效率最高?为什么?X++>x+=1>x=x+1x=x+1:(1)读取右x的地址(2)x+1(3)读取左x的地址(编译器病不认为左右x的地址相同)(4)讲右边的只给左边的xx+=1:(1)读取右边x的地址(2)x+1(3)讲得到的值给x(因为x的地址已经读出)x++:(1)读取右x的地址(2)x自增14输出#defineproduct(x)(x*x)inti=3,j,k;j=product(i++);k=prod7、uct(++i);cout<6)?(c=1):(c=0);returnc;//此时c=1}Unsignedint类型的数据与int类型的数据相运算后,自动转化为unsignedint类型,因此a+b的结果不是-14,而是一个unsignedint类型的数42948、967382,当表达式中存在有符号类型和无符号类型时,所有的操作数都自动转换为无符号类型1在混合类型的算数表达式中在这种情况下最宽的数据类型称为目标转换类型,这也被称为算数转换intival=3;doubledval=3.141592;cout<9、tch语句实现inta,b;cin>>a>>b;intmax=(a+b+abs(a-b))/2;cout<10、,函数被c++编译后在库中的名字与c语言不同,假设某个函数的原型为:voidfoo(intx,inty)。该函数被c编译器编译后在库中的名字为foo_,而c++编译器则会产生像_foo_int_int之类的名字C++提供了c链接交换指定符号extern“C”解决名字匹配问题9#include与#include“filename.h”有什么区别?对于尖括号来说,编译器从标准库路径开始搜索filename.h对于圆括号来说,编译器先从用户的定义的文件开始查找,找不到再在标准库11、中进行查找10如何判断一段程序是由c编译器还是由c++编译器编译的?C++编译时定义了_cplusplusC编译时定义了_STDC_#ifdef_cpluspluscout<<"hello,cpp!";#endif#ifdef_STDC_printf("hello,c!");#endif这两者实际上是可以共存在,很多编译器上都是两者共存11main主函数执行完毕后,是否可能会再只执行一段代码?给出说明如果需要加入一段在main退出后执行的代码,可以使用atexit()函数注册一个函数atex
2、z);cout<3、y4、5、z);cout<6、:于是只能解释成 i+++j等效为i++ +j3x=x+1,x+=1,x++哪个效率最高?为什么?X++>x+=1>x=x+1x=x+1:(1)读取右x的地址(2)x+1(3)读取左x的地址(编译器病不认为左右x的地址相同)(4)讲右边的只给左边的xx+=1:(1)读取右边x的地址(2)x+1(3)讲得到的值给x(因为x的地址已经读出)x++:(1)读取右x的地址(2)x自增14输出#defineproduct(x)(x*x)inti=3,j,k;j=product(i++);k=prod7、uct(++i);cout<6)?(c=1):(c=0);returnc;//此时c=1}Unsignedint类型的数据与int类型的数据相运算后,自动转化为unsignedint类型,因此a+b的结果不是-14,而是一个unsignedint类型的数42948、967382,当表达式中存在有符号类型和无符号类型时,所有的操作数都自动转换为无符号类型1在混合类型的算数表达式中在这种情况下最宽的数据类型称为目标转换类型,这也被称为算数转换intival=3;doubledval=3.141592;cout<9、tch语句实现inta,b;cin>>a>>b;intmax=(a+b+abs(a-b))/2;cout<10、,函数被c++编译后在库中的名字与c语言不同,假设某个函数的原型为:voidfoo(intx,inty)。该函数被c编译器编译后在库中的名字为foo_,而c++编译器则会产生像_foo_int_int之类的名字C++提供了c链接交换指定符号extern“C”解决名字匹配问题9#include与#include“filename.h”有什么区别?对于尖括号来说,编译器从标准库路径开始搜索filename.h对于圆括号来说,编译器先从用户的定义的文件开始查找,找不到再在标准库11、中进行查找10如何判断一段程序是由c编译器还是由c++编译器编译的?C++编译时定义了_cplusplusC编译时定义了_STDC_#ifdef_cpluspluscout<<"hello,cpp!";#endif#ifdef_STDC_printf("hello,c!");#endif这两者实际上是可以共存在,很多编译器上都是两者共存11main主函数执行完毕后,是否可能会再只执行一段代码?给出说明如果需要加入一段在main退出后执行的代码,可以使用atexit()函数注册一个函数atex
3、y
4、
5、z);cout<6、:于是只能解释成 i+++j等效为i++ +j3x=x+1,x+=1,x++哪个效率最高?为什么?X++>x+=1>x=x+1x=x+1:(1)读取右x的地址(2)x+1(3)读取左x的地址(编译器病不认为左右x的地址相同)(4)讲右边的只给左边的xx+=1:(1)读取右边x的地址(2)x+1(3)讲得到的值给x(因为x的地址已经读出)x++:(1)读取右x的地址(2)x自增14输出#defineproduct(x)(x*x)inti=3,j,k;j=product(i++);k=prod7、uct(++i);cout<6)?(c=1):(c=0);returnc;//此时c=1}Unsignedint类型的数据与int类型的数据相运算后,自动转化为unsignedint类型,因此a+b的结果不是-14,而是一个unsignedint类型的数42948、967382,当表达式中存在有符号类型和无符号类型时,所有的操作数都自动转换为无符号类型1在混合类型的算数表达式中在这种情况下最宽的数据类型称为目标转换类型,这也被称为算数转换intival=3;doubledval=3.141592;cout<9、tch语句实现inta,b;cin>>a>>b;intmax=(a+b+abs(a-b))/2;cout<10、,函数被c++编译后在库中的名字与c语言不同,假设某个函数的原型为:voidfoo(intx,inty)。该函数被c编译器编译后在库中的名字为foo_,而c++编译器则会产生像_foo_int_int之类的名字C++提供了c链接交换指定符号extern“C”解决名字匹配问题9#include与#include“filename.h”有什么区别?对于尖括号来说,编译器从标准库路径开始搜索filename.h对于圆括号来说,编译器先从用户的定义的文件开始查找,找不到再在标准库11、中进行查找10如何判断一段程序是由c编译器还是由c++编译器编译的?C++编译时定义了_cplusplusC编译时定义了_STDC_#ifdef_cpluspluscout<<"hello,cpp!";#endif#ifdef_STDC_printf("hello,c!");#endif这两者实际上是可以共存在,很多编译器上都是两者共存11main主函数执行完毕后,是否可能会再只执行一段代码?给出说明如果需要加入一段在main退出后执行的代码,可以使用atexit()函数注册一个函数atex
6、:于是只能解释成 i+++j等效为i++ +j3x=x+1,x+=1,x++哪个效率最高?为什么?X++>x+=1>x=x+1x=x+1:(1)读取右x的地址(2)x+1(3)读取左x的地址(编译器病不认为左右x的地址相同)(4)讲右边的只给左边的xx+=1:(1)读取右边x的地址(2)x+1(3)讲得到的值给x(因为x的地址已经读出)x++:(1)读取右x的地址(2)x自增14输出#defineproduct(x)(x*x)inti=3,j,k;j=product(i++);k=prod
7、uct(++i);cout<6)?(c=1):(c=0);returnc;//此时c=1}Unsignedint类型的数据与int类型的数据相运算后,自动转化为unsignedint类型,因此a+b的结果不是-14,而是一个unsignedint类型的数4294
8、967382,当表达式中存在有符号类型和无符号类型时,所有的操作数都自动转换为无符号类型1在混合类型的算数表达式中在这种情况下最宽的数据类型称为目标转换类型,这也被称为算数转换intival=3;doubledval=3.141592;cout<9、tch语句实现inta,b;cin>>a>>b;intmax=(a+b+abs(a-b))/2;cout<10、,函数被c++编译后在库中的名字与c语言不同,假设某个函数的原型为:voidfoo(intx,inty)。该函数被c编译器编译后在库中的名字为foo_,而c++编译器则会产生像_foo_int_int之类的名字C++提供了c链接交换指定符号extern“C”解决名字匹配问题9#include与#include“filename.h”有什么区别?对于尖括号来说,编译器从标准库路径开始搜索filename.h对于圆括号来说,编译器先从用户的定义的文件开始查找,找不到再在标准库11、中进行查找10如何判断一段程序是由c编译器还是由c++编译器编译的?C++编译时定义了_cplusplusC编译时定义了_STDC_#ifdef_cpluspluscout<<"hello,cpp!";#endif#ifdef_STDC_printf("hello,c!");#endif这两者实际上是可以共存在,很多编译器上都是两者共存11main主函数执行完毕后,是否可能会再只执行一段代码?给出说明如果需要加入一段在main退出后执行的代码,可以使用atexit()函数注册一个函数atex
9、tch语句实现inta,b;cin>>a>>b;intmax=(a+b+abs(a-b))/2;cout<10、,函数被c++编译后在库中的名字与c语言不同,假设某个函数的原型为:voidfoo(intx,inty)。该函数被c编译器编译后在库中的名字为foo_,而c++编译器则会产生像_foo_int_int之类的名字C++提供了c链接交换指定符号extern“C”解决名字匹配问题9#include与#include“filename.h”有什么区别?对于尖括号来说,编译器从标准库路径开始搜索filename.h对于圆括号来说,编译器先从用户的定义的文件开始查找,找不到再在标准库11、中进行查找10如何判断一段程序是由c编译器还是由c++编译器编译的?C++编译时定义了_cplusplusC编译时定义了_STDC_#ifdef_cpluspluscout<<"hello,cpp!";#endif#ifdef_STDC_printf("hello,c!");#endif这两者实际上是可以共存在,很多编译器上都是两者共存11main主函数执行完毕后,是否可能会再只执行一段代码?给出说明如果需要加入一段在main退出后执行的代码,可以使用atexit()函数注册一个函数atex
10、,函数被c++编译后在库中的名字与c语言不同,假设某个函数的原型为:voidfoo(intx,inty)。该函数被c编译器编译后在库中的名字为foo_,而c++编译器则会产生像_foo_int_int之类的名字C++提供了c链接交换指定符号extern“C”解决名字匹配问题9#include与#include“filename.h”有什么区别?对于尖括号来说,编译器从标准库路径开始搜索filename.h对于圆括号来说,编译器先从用户的定义的文件开始查找,找不到再在标准库
11、中进行查找10如何判断一段程序是由c编译器还是由c++编译器编译的?C++编译时定义了_cplusplusC编译时定义了_STDC_#ifdef_cpluspluscout<<"hello,cpp!";#endif#ifdef_STDC_printf("hello,c!");#endif这两者实际上是可以共存在,很多编译器上都是两者共存11main主函数执行完毕后,是否可能会再只执行一段代码?给出说明如果需要加入一段在main退出后执行的代码,可以使用atexit()函数注册一个函数atex
此文档下载收益归作者所有