欢迎来到天天文库
浏览记录
ID:13701818
大小:58.50 KB
页数:10页
时间:2018-07-24
《c_c++语言程序设计笔试面试题5》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一、输入一个n,然后在屏幕上打印出NxN的矩阵!例如,输入一个3,则123894765输入一个4,则1 2 3 41213145111615610 9 8 7参考答案:#include#include#defineN10voidprintCube(inta[][N],intn);voidmain(){ inta[N][N],n; printf("inputn:"); scanf("%d",&n); printCube(&a[0],n); getch();}voidprintCube(inta[][N],intn){
2、 inti,j,round=1; intm=1; for(i=0;i=n/2;i--) {for(j=round;j<=i;j++) a[j]=m++;for(j=i;j>=round;j--) a[j-1]=m++;for(j=i;j>round;j--) a[j-1][round-1]=m++;for(j=round;j3、);printf(""); }}二、朗讯面试题:Therearetwointvariables:aandb,don’tuse“if”,“?:”,“switch”orotherjudgementstatements,findoutthebiggestoneofthetwonumbers.参考答案:方案一intmax=((a+b)+abs(a-b))/2方案二intc=a-b;char*strs[2]={"a大","b大"};c=unsigned(c)>>(sizeof(int)*8-1);三、朗讯面试题:如何打印出当前源文件的文件名以及源文件的当前行号?参考答案:通4、常使用的就是__FILE__,__LINE__,在调试函数中利用“%s","%ld",打印就好了。四、朗讯面试题:main主函数执行完毕后,是否可能会再执行一段代码,给出说明?参考答案:crt会执行另一些代码,进行处理工作。如果你需要加入一段在main退出后执行的代码,可以使用atexit()函数,注册一个函数。语法:#includeintatexit(void(*function")(void));#include#includevoidfn1(void),fn2(void),fn3(void),fn4(voi5、d);intmain(void){ atexit(fn1); atexit(fn2); atexit(fn3); atexit(fn4); printf("Thisisexecutedfirst.");}voidfn1(){ printf("next.");}voidfn2(){ printf("executed");}voidfn3(){ printf("is");}voidfn4(){ printf("This");}五、朗讯面试题:如何判断一段程序是由C编译程序还是由C++编译程序编译的?参考答案:c++编译时定义了__cplusplus6、c编译时定义了_STDC_六、下面这道面试题怎么做(指针)?#includemain(){intc[3][3]={1,2,3,4,5,6,7,8,9};for(inti=0;i<3;i++)for(intj=0;j<3;j++)printf("%ld",&c[j]);printf("-------------------------");printf("%ld",(c+1));printf("%ld",(*c+1));printf("%ld",&c[0][0]);printf("%ld",**c);printf("%ld",7、*c[0]);if(int(c)==int(*c))printf("equl");}为什么c,*c的值相等,(c+1),(*c+1)的值不等c,*c,**c,代表什么意思?参考答案:c是第一个元素的地址,*c是第一行元素的首地址,其实第一行元素的地址就是第一个元素的地址,这容易理解。**c是提领第一个元素。为什么c,*c的值相等?intc因为直接用c表示数组c[0][0]printf("%ld",*c[0]);语句已将指针移到数组头。int(*c)表示c0的值为1,所以相等。数组c的存放空间示意如下:(机器中是行优先存放的)c[0][
3、);printf(""); }}二、朗讯面试题:Therearetwointvariables:aandb,don’tuse“if”,“?:”,“switch”orotherjudgementstatements,findoutthebiggestoneofthetwonumbers.参考答案:方案一intmax=((a+b)+abs(a-b))/2方案二intc=a-b;char*strs[2]={"a大","b大"};c=unsigned(c)>>(sizeof(int)*8-1);三、朗讯面试题:如何打印出当前源文件的文件名以及源文件的当前行号?参考答案:通
4、常使用的就是__FILE__,__LINE__,在调试函数中利用“%s","%ld",打印就好了。四、朗讯面试题:main主函数执行完毕后,是否可能会再执行一段代码,给出说明?参考答案:crt会执行另一些代码,进行处理工作。如果你需要加入一段在main退出后执行的代码,可以使用atexit()函数,注册一个函数。语法:#includeintatexit(void(*function")(void));#include#includevoidfn1(void),fn2(void),fn3(void),fn4(voi
5、d);intmain(void){ atexit(fn1); atexit(fn2); atexit(fn3); atexit(fn4); printf("Thisisexecutedfirst.");}voidfn1(){ printf("next.");}voidfn2(){ printf("executed");}voidfn3(){ printf("is");}voidfn4(){ printf("This");}五、朗讯面试题:如何判断一段程序是由C编译程序还是由C++编译程序编译的?参考答案:c++编译时定义了__cplusplus
6、c编译时定义了_STDC_六、下面这道面试题怎么做(指针)?#includemain(){intc[3][3]={1,2,3,4,5,6,7,8,9};for(inti=0;i<3;i++)for(intj=0;j<3;j++)printf("%ld",&c[j]);printf("-------------------------");printf("%ld",(c+1));printf("%ld",(*c+1));printf("%ld",&c[0][0]);printf("%ld",**c);printf("%ld",
7、*c[0]);if(int(c)==int(*c))printf("equl");}为什么c,*c的值相等,(c+1),(*c+1)的值不等c,*c,**c,代表什么意思?参考答案:c是第一个元素的地址,*c是第一行元素的首地址,其实第一行元素的地址就是第一个元素的地址,这容易理解。**c是提领第一个元素。为什么c,*c的值相等?intc因为直接用c表示数组c[0][0]printf("%ld",*c[0]);语句已将指针移到数组头。int(*c)表示c0的值为1,所以相等。数组c的存放空间示意如下:(机器中是行优先存放的)c[0][
此文档下载收益归作者所有