资源描述:
《锐捷网络c笔试题》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、锐捷网络2010年程序员C语言试题1、16位shortint类型所能表示的数值下限与上限,如果使用printf的格式串”%山%于打印,其结果是一・32768,32767;2、有定义signedcharch=127;printf(“%d",ch+127);的输出结果是254一;3、多组数组a[10][10][10]的第一个元素是a[0][0][0],则其第245个元素是a⑵⑷⑷;4、若定义inta[010],(注:八进制)贝0sizeof(a)的值是_32:5、有定义char*str=64hello
2、,则strlen(str)的值是—6;6、定义一个函数指针类型func_ptr,所对应的函数的参数是void,返回值为int指针:typedefint*(*func_ptr)(void):7、完成宏定义,将int型变量a的第0位到第n位取反(右数最低位为第0位),其他位保持不变:#defineREVERSE(a,n)(⑷八(〜(〜1«(n))))8、如下函数intfunc(void){staticintent;}笫一次运行时,ent的值是—0—;9、若i=0,表达式a[i++]+=4;运算后,i的值
3、是—1—;10、语句sprintf(“%x,%d,%c=T,T,T):的输出是一31,49,111、枚举类型定义enumboolean{yes,no};yes的数值是0;12、有如下程序#defineADD(x)(x)+(x)intmain(void){inta=5,b=6,c=7,d=ADD(a+b)*c;printf(“%d”,d);return0;}的输出结果是;13、程序main(){inti=16,j,x=6;j=i+++l;x*=i=j;printf(“%d,%d",j,x);}输出的
4、是17,102;14、有以下语句structa{intvl,v2;};structb{structavl;intv2,v3;};intmain(void){structbt={1,2,3,4};structa*ap=(structa*)&t;printf(“%d",*((int*)(ap+1)));}输出结果是;15.语句i=O,j=O;foT(i++,j++;++jv1&&i++v2;i++,j++)OOOO{;/*void*/}当循环退出时,i的值是—1—;16.运行C语言编写的程序copy/Ba.t
5、xta.bak时,intmain(intargc,char*argv[])中argv[argc]指向的内容是NULL;15.有定义inti—1;printf(“%d,%d‘',i>>1,i«l);的结果是。注:负数在计算机中是以补码的形式参与计算的,因为・1的原码是(以八位为例)10000001,所以补码是11111111,右移一位的得到的还是11111111,因为是负数,所以在左端补1,而不是0。再把11111111,转化为原码即减1取反得10000001,化为十进制就是左移同理可得。总结:只要记住负数
6、是以补码的形式参与计算的。这类题目就不会模糊。18、程序charbuf[256J;intmain(void){sprintf(buf+sprintf(buf,“%酹,“abc%d"),“%酹,“efg%%dj;printf(buf,100);}的输出是—abclOOefg%d。注:两个%就只输出一个%。19、已知一棵二叉树s前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为DGEBHFCA。20、向一个长度为n的向量的第i个元素(l=i=n+l)之前插入一个元素时,需向后移
7、动n・i+l个元素。21〜25.算法:函数psort()将含n个整数的数组a[]的不同元素按从小到大的顺序存于数组a[]中,返回值是不同元素的个数。它的实现方法是顺序考察a[]中的元素,寻找当前考察元素a[i]在已确定的不同元素中的插入位置。如果a[i]是一个新的不同元素,插入之,否则,忽略该元素。intpsort(inta[],intn)inti,j,k,low,high,mid,t;fdr(k=1,i=1;i8、low+high)/2;if(a[mid]>=a[i])high=mid-l;elselow=mid+l;}if(low<=k
9、
10、high>=0(22)){t=a[i];for(j=J-1_(23);j>_high_(24);j-)aU+l]=a[j];aLJ_±_U25)]=t;k++;returnk;