1、面试题目C语言答案11、 编写一段程序实现以下功能:输入一个整数n ;A、 如果n是一位整数,则输出n,否则将各个位上的数加起来得到结果n,B、 继续步骤A例子:输入n=456991、 各位之和为4+5+6+9+9=33 不是一位数,则n=332、 继续各位之和为:3+3=9;结果为一位数,得到最后结果为92、输入一个整数N,和一个整数M,则由1到N的各个整数围成一个圆,现要求你从1开始数到M并将第M个数从此列中去掉,并存入已给出的数组,继续从你取出的数的后一位从1开始数,再次数到M为止,从此列中去掉,并存入已给出的数组,一直这样数,直到剩余一个数,最后把你存入数组的数和最后一个数分别打印出来
2、。 例子:N=10,M=3;A、1 2 3 4 5 6 7 8 9 10 3、从1开始数数到M(3)则将3取出,并存入数组,剩余数为B、1 2 4 5 6 7 8 9 10 4、从下一位(4)作为1开始数,数到M(3)即6,则将6取出,并存入数组,剩余数为C、1 2 4 5 7 8 9 10 (依此规律继续,直到剩余最后一个数为止)最后打印结果为:从圆中一次取出的数据为:3 6 9 2 7 1 8 5 10最后剩余的数位:4funA(int *x,int a,int b) return a*b;funB(int*x,int a,int b) return a%b;funC(int (*t)()
3、, , int x ,int y) return (*t)(y,x);Main() Int x,a,b; A = 9; B = 3; X = funa(b,a); X += funC(funB,a,b); Printf(“%d”,x);求输出结果下列哪种定义方式是错误的Char w240; w1=”string1”;Char *w2; w1 = “string2”;Char w40 = “string3”;Char w = “string4”;Java求结果Public Test Public void do() Static int I; +I; Public static void mai
4、n(String args) Test test = new Test(); test.do(); system.out.println(i);数据库的题目也有一些,比如某个数据库,三个值 A B score要查找score的平均成绩,按B分组,如果分数相同,按B的降序显示,还要按平均Score的升序显示5、内存和指针使用的理解Linux系统(核心技术点)1、进程有独立的地址空间2、进程间通信的机制3、描述OSI分层结构1、存储区有哪些,static int a存在哪个区2、二维数组指针定义,int指针定义,行指针定义,返回int型方法的指针带char型参数3、合法的ip地址选择 4、在局部变
5、量是否可以和全局变量同名5、strcpy的实现6、const char * p ,char const *p,char * const p的区别7、堆和栈的区别8、heap和stack的区别9、判断程序错误有一条程序 printf(str);(str是char型)10、写出程序运行结果里有一条程序 x &=.(不知道&=是什么)11、写出你接触过最复杂的数据处理12、写了一个链表插入节点的方法13、比较注重线程的操作单选题1 以下程序的输出结果是_aMain( ) Int n=4; While (n- -)Printf(“%d”,- -n); a.) 2 0 b.) 3 1 c.) 3 2 1
6、 d.) 2 1 02. 设有以下宏定义: #define N 4 #define Y(n) (N+1)*n) /*这种定义在编程规范中是严格禁止的*/则执行语句:Y(5+1)为_ca.) 30 b.) 28 c.) 26 d.) 243. enum ENUM_A X1 Y1 Z1=5 A1 B1;enum ENUM_A enumA=Y1;enum ENUM_A enumB=B1;请问 enumA=();enumB=( ); b a.) 1,4 b.) 1,7 c.) 2,4 d.) 1,54若有函数max(a,b),并且函数指针变量p已指向函数,当调用该函数时正确的调用方法:_ca.) (*
7、p)max(a,b); b.) *pmax(a,b); c.) (*p)(a,b); d.) *p(a,b);5. 对栈S进行下列操作:push(1),push(5),pop(),push(2),pop(),pop()。则此时栈顶元素是_ da.) 1 b.) 2 c.) 0 d.) 不确定6.在一个32位的操作系统中,设void *p=malloc(100)。请问sizeof(p)的结果是_b_a.) 100 b.) 4 c.) 2 d.) 67. 若已定义:int a9,*p=a,并在以后的语句中未改变p的值,不能表示a1地址的表达式是_ca.) p+1 b.) a+1 c.) a+ d.
8、) +p8设有如下定义: Unsigned long pulArray=6,7,8,9,10 Unsigned long *pulPtr; 则下列程序段的输出结果为_d pulPtr=pulArray; *(pulPtr+2)+=2; Printf(“%d,%dn”,*pulPtr,*(pulPtr+2); a.) 8,10 b.) 6,8 c.) 7,9 d.) 6,109.以下程序运行后,输出结果是 d(c) Void main( ) Char *szStr=”abcde”;szStr +=2printf(“%lun”,szStr);/printf(“%dn”, *szStr);retur
9、n; a.) cde b.) 字符c的ASCLL码值 c.) 字符c的地址 d.) 出错10. 给出以下定义: C Char X =”hello”; Char Y =h,e,l,l,o;则正确的叙述为_a.) 数组X和数组y等价 b.) 数组X和数组Y的长度相同 c.) 数组X的长度大于数组Y的长度 d.) 数组X的长度小于数组Y的长度11. 在32位X86下,有下列程序 #include Union Int k; Char i2; *s,a; S=&a; s-i0=0x39; s-i1=0x38; printf(“%xn”,a.k); 输出结果是_a(d)a.) 3839 b.) 3938
10、c.) 380039 d.) 不可预知 12有如下函数定义: Unsigned long MyFunc(unsigned long ulKey) return ( (ulKey &0x000000ffUL)24) |(ulKey &0x00000ff00UL)8) |(ulKey &0xff000000UL)24) MyFunc(0x12345678)的返回值_ca.) 0x12345678 b.) 0x87654321 c.) 0x78563412 d.) 0x12563478 13. (ab)?a:b)代表什么含义_b a.) 代表a,b之中较小的那个值 b.) 代表a,b之中较大的那个值
11、 c.) 代表a是否比b大 d.) 语法错误14某系统总线的一个总线周期包含3个时钟周期,每个总线周期可以传送32位数据。若总线的时钟频率为33MHz,则总线带宽为_MB/s。d(33*32)/3= 44a.) 11 b.) 22 c.) 33 d.) 4415如下定义,则s在内存中占多大空间_a #pragma pack (1) Union Struct Unsigned char aa:4; Unsigned char ab:4; a; Unsigned char c; Unsigned char d; s;a.) 1byte b.) 2byte c.) 3byte d.) 4byte16
12、. 如下定义: Union tagAAAA Struct Char ucFirst; Short usSecond; Char ucThird; half_a; Long li number;在按1字节对齐情况下:sizeof(union tagAAAA)大小是_a在按4字节对齐情况下:sizeof(union tagAAAA)大小是_ca.) 4byte b.) 6byte c.) 8byte d.) 12byte17. 0x12345678在采用BigEndian中内存的排列顺序是_a_,在采用LittleEndian内存中的排列顺序是_c_(答案从左到右内存地址依次增加)a.) 12 3
13、4 56 78 b.) 34 12 78 56 c.) 78 56 34 12 d.) 56 78 12 3418关于静态变量,下面说法“不正确”的有_aa.) 静态变量在堆栈中分配;b.) 静态变量的作用域一定是局部的,例如在一个文件内或一个函数内; c.) 静态变量可分为静态局部变量和静态全局变量; d.) 静态变量存在于数据段中;19. 下面正确的有_aa.) 在中断中,不能同步获取信号量,但可以释放信号量;b.) 在中断中,可以使用系统调用sleep函数来等待一会儿; c.) 每一个进程有自己的独立地址空间,每一个线程也有自己的独立地址空间; d.) CPU占有率为60%,意思是CPU
14、有60%时间在运行指令;40%时间没有运行指令;20设有如下定义:int(*ptr)( );则以下叙述中正确的是_ca.) ptr是指向一维组数的指针变量;b.) ptr是指向int型数据的指针变量; c.) ptr是指向函数的指针,该函数返回一个int型数据; d.) ptr是一个函数名,该函数的返回值是指向int型数据的指针;21在Windows95环境下,定义数组:int *a24;则数组a所占用的内存单位为_ba.) 8字节 b.) 32字节 c.) 64字节 d.) 不能确定22由国际标准化组织(ISO)和国际电信联盟(ITU-T)共同提出的开放系统互连(OSI)参考模型中共有_b_
15、层,参考模型的最高层则为_c_层。a.) 4 b.) 7 c.) 应用 d.) 会话23.关于以太网中的ARP协议,描述错误的是_a_a.) 根据IP地址查询其对应的MAC地址;b.) 根据MAC地址查询其对应的IP地址,便于IP通信; c.) 通过ARP协议产生的IP和MAC地址的映射,超时会淘汰; d.) ARP请求中的MAC地址为广播地址;24关于TCP、UDP及其上层的应用,描述错误的是_b_a.) TCP协议时面向连接的,UDP协议是面向无连接的;b.) UDP不保证数据的可靠传送,而文件的传递时要求必须无错传送的,因而所有基于文件传递的应用都不能基于UDP,如TFTP; c.) t
16、elnet是基于TCP的终端应用,连续输入的多个字符可能会被封装到一个TCP包中; d.) 在同一节点上,基于TCP和UDP的应用端口号可以重叠;25、下面合法的IP地址是:(c )。A. 129,1,150,115B. 211.260.218.244C. 192.168.192.1D. 24.128.12改错题1 请指出下面程序的错误Unsigned char i=10;/ int i = 10;Char b=100;Char *p;Void f( void ) /p = &b; While(- -i =0) *(p+)=d;/ (*p)+;/*p = d 2.下面函数要实现打印hello
17、world的功能,请问程序中有何错误? Void *GetMemory(void) Char str =”hello world”;/ char *str = ”hello world”; Return str; Void Test(void) Char *str = NULL;Str = (char *) GetMemory();Printf(str);/printf(“%s”, str); 3.请问如下代码有什么错误#define MAX_SIZE 1000#define NULL 0/不要#define TRUE 1#define FALSE 0Struct XXX Unsigned s
18、hort a; Unsigned short b; ;Int demo (struct XXX *p, unsigned long size) Struct XXX *temp; Temp=(struct XXX *)malloc(sizeof(struct XXX) *MAX_SIZE); If(NULL=temp) Return FALSE; Memcpy(temp,p, sizeof(struct XXX)*size);。 。 。(其他正常操作)Free(temp);/temp = NULL;Return TRUE;4.如下程序用于把“blue”字符串返回,请指出其中的错误: Char
19、*GetBLUE(void) Char* pcColor;Char* pcNewColor;pcColor=”blue”;pcNewColor=(char*)malloc(strlen(pColor);/pcNewColor=(char*)malloc(strlen(pColor)+1)/memset(pcNewColor, 0, strlen(pColor)+1);strcpy(pcNewColor,pcColor);return pcNewColor; 5.请问如下程序段有什么错误 Main( ) Unsigned long i = 0,*p,*p1; P=(unsigned long *
20、)malloc(10000);/ P=(unsigned long *)malloc(10000*4) P1=p; For (i=0;i9999;i+) *p1=0x100; P1+; 。 。 。(其他操作) free(p);/p = NULL:编程题对称数判断问题请编写一段程序,判断一个正整数是否为对称数(对称数即左右对称数字,如3、22、121、1331、34543等),不允许利用C语言将数字转换为字符串的库函数。BOOL JudgeNumberSymmetry(unsigned long ulNumber)排队队列问题 n个人,排成1对,(p1,p2,p3.pn)从第1个人开始从1报数,
21、报数到3的人离开队列,队列里的下一个人继续从1开始报数,依次反复,当数到队列尾时,从队列头部继续报数,这样周而复始,直到队列剩一人。 给一个简单例子: 1,2,3,4,5,6,7,共7人 报数结果如下: 1,2,4,5,7,第一轮,3,6离开队列,7报数1,然后从队列头部继续报数,那么第1个人报数2,如此1,4,5这样第二轮,位置2和位置7离开队列,并且从队列头部继续报数,第1个人报数1,因为对队列尾部的7恰好报数到3。 1,2这样第3轮,5淘汰, 然后开始位置1的人报数1,最后位置1正好报数3,于是离开队列,最后剩下的人是2。 这样给定7个人,原始位置2的人是剩下的人。请实现一个简单程序,实
22、现上述问题,程序输入n,输出那个最后剩下的人的原始位置。基础题1.196.183.27.0要划分为2个网段,子网掩码是多少2.A类网址最多可以包含多少个网络3.栈的定义 题目为英文,选择题4.队列的定义题目为英文,选择题5、funA(int *x,int a,int b) return a*b;funB(int*x,int a,int b) return a%b;funC(int (*t)(), , int x ,int y) return (*t)(y,x);Main() Int x,a,b; A = 9; B = 3; X = funa(b,a); X += funC(funB,a,b);
23、 Printf(“%d”,x);求输出结果6、下列哪种定义方式是错误的Char w240; w1=”string1”;Char *w2; w1 = “string2”;Char w40 = “string3”;Char w = “string4”;Java求结果Public Test Public void do() Static int I; +I; Public static void main(String args) Test test = new Test(); test.do(); system.out.println(i);7、数据库的题目也有一些,比如某个数据库,三个值 A B
24、 score8、要查找score的平均成绩,按B分组,如果分数相同,按B的降序显示,还要按平均Score的升序显示9、Arraylist和linklist的区别10、方法重载和隐藏的区别11、在不同版本下INT的大小会不会改变12、关于GC内存回收系统什么时候回收资源13、=和equal的区别14、接口和抽象类的区别和优点15、关键字16、Static的用法题目1:在C+ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”?题目2:New delete 与malloc free 的联系与区别?题目3:static有什么用途? 题目4:引用与指针有什么区别?题目5:请实现排序函数
25、。void sort(int data,int size)题目 6:void GetMemory(char *p)p = (char *)malloc(100);void Test(void)char *str = NULL;GetMemory(str);strcpy(str, hello world);printf(str);请问运行Test 函数会有什么样的结果?题目7:已知strncmp 函数的原型是int strncmp(char *str1, char *str2, int maxlen);比较字符串str1和str2的大小,如果str1小于str2,返回值就0,如果str1等于st
26、r2,返回值就=0,maxlen指的是str1与str2的比较的字符数。此函数功能即比较字符串str1和str2的前maxlen个字符。不调用C+/C 的字符串库函数,请编写函数实现题目8:查错,请找出如下的错误。/*函数功能,从传入的字符串查找某个特定字符 0x47f1 ,如果找到,返回1,如果没找到,返回0 */int FindSpecialString(char* pString) char i = 0; char tmpString5000; memcpy(&tmpString, pString,sizeof(pString); for( i = 0; i 5000; i +) if(
27、 0x47f1 = tmpStringi) return 1; 什么是预编译何时需要预编译:、总是使用不经常改动的大型代码体。、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。char*constp;charconst*pconstchar*p上述三个有什么区别?char*constp;/常量指针,p的值不可以修改charconst*p;/指向常量的指针,指向的常量值不可以改constchar*p;/和charconst*pcharstr1=abc;charstr2=abc;constcharstr3=abc;constcharstr4=abc;constchar*str5=abc;constchar*str6=abc;char*str7=abc;char*str8=abc;cout(str1=str2)endl;cout(str3=str4)endl;cout(str5=str6)endl;cout(str7=str8)endl;结果是:0011解答:str1,str2,str3,str4是数组变量,它们有各自的内存空间;而str5,str6,str
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2