*ptr=m;
}
printf(“%x”,a[1][10]);
(9)以下程序片断运行后,输出的结果是:
inta=1,b=10;
do{
a++;
b-=a;
b--;
}while(b>0);
printf(“%d,%d”,a,b);
(10)unsignedsignedchar所能表示最大数由UCHAR_MAX定义,则以下程序片断运行后,输出的结果是:
printf(“%d,%x”,UCHAR_MAX,UCHAR_MAX)
(11)以下程序片断运行后,输出的结果是:
char*str=“hello”;
int*p=(int
*)str;
printf(“%d,%d”,sizeof(str[0]),sizeof(*p));
(12)宏定义:
将整型变量a的第n位清零,其它位不变。
#defineclear_bit(a,n)
(13)以下程序片断运行后,输出的结果是:
intm=0,n=0;
if(m++>2||m++<10)n++;
else
n--;
printf(“%d,%d”,m,n);
(14)当引用库函数memcpy()时,需要包含的头文件是:
(15)运行C语言编写的程序dir/B/tmp时,dir的C程序
intmain(intargc,char*argc[])
argc的值是。
(16)补充以下函数:
/*atoi:
convertstointeger*/
intatoi(chars[])
{
int
i,n;
n=0;
for(i=0;s>=‘0’&&s<=‘9’;++i)
n=10*n+;
returnn;
}
(17~20)根据函数说明完成以下函数:
/**DESCRIPTION
*Thestrchr()functionlocatesthefirstoccurrenceof
*c(convertedtoachar)inthestringpointedtos.
*Theterminatingnullcharacterisconsideredpartofthestring;
*thereforeifcis‘\0’,thefunctionslocatetheterminating
*‘\0’.
**RETURNVALUES*
Thefunctionsstrchr()returnapointertothelocated
*character,orNULLifthecharacterdoesnotappearin
*thestring.*/
char*(strchr)(constchar*s,intc)
constchar
ch=(char)c;
constchar*sc;
for(sc=0;;++s)
{if(*s==ch)
sc=ch;
if(17)
return((char*)sc);
}
}
/**DESCRIPTION
*Thestrstr()functionlocatesthefirstoccurrenceofthe
*null-terminatedstrings2inthenull-terminatedstrings.
**RETURNVALUES
*ifs2isanemptystring,s1isreturned;ifs2occursnowhere
*ins1,NULLisreturned;otherwiseapointertothefirst
*characterofthefirstoccurrenceofs2isreturned.
*/
char*(strstr)(constchar*s1,constchar*s2)
{
if(18)
return
((char*)s1);
for(;(s1=strchr(s1,*s2))!
=0;19
)
{
const
char
*sc1,*sc2;
for(sc1=s1,sc2=s2;;)
if(*++sc2==‘\0’)
return
((char*)s1);
elseif(*++sc1!
=*sc2)20;
}
return(0);
}
锐捷网络2011嵌入式软件试题重庆地区嵌入式软件工程师
1一下程序片段运行后,输出的结果是:
printf(“%x”.(1<<20));
2一下程序片段运行后,输出的结果是:
charstr[]=”(\\tmp\\$$%%012\012)”;
printf(“%d”,strlen(str));
3一下程序片段运行后,输出的结果是:
intx=12,y=8;
printf(“%d\t%d\t%d\n”,!
x,x&y,x|y);
4一下程序片段运行后,输出的结果是:
Intx=3;
Printf(“%d”,x&=x+1);
5一下程序片段运行后,输出的结果是:
intx,y=252,i=252,*m=&y,*z=&i;
x=(z==y);
printf(“%d”,x);
6使用typedef定义一个函数指针类型a,这个函数指针反悔一个整数指针数组。
typedef;
7若二维数组a有m列,则在a[i][j]之前的元素个数为:
8一下程序片段运行后,输出的结果是:
inta[][3][3]={1,2,3,4,5,6,7,8,9};
int(*ptr)[3]=a;
printf(“%d”,(*(ptr+1))[2]);
9一下程序片段运行后,输出的结果是:
inta[7][8][9],*ptr,m;
ptr=(int*)a;
for(m=0;m*ptr=m;
Printf(“%d”,a[1][10][2]);
9一下程序片段运行后,输出的结果是:
Intfun(intx)
{
Staticinty=1;
Y+=x;
Returny;
}
Intmain()
{
Intk;
For(k=0;k<3;k++)
{
Printf(“%d”,fun(k));
}
Return0;
}
10一下程序片段运行后,输出的结果是:
#definemprintf(v1,v2)printf(“%d,%d”,v1##v2,v1&&v2)
Inta=2,a1=12;
Mprintf(a,1);
11一下程序片段运行后,输出的结果是:
Inta[][2][3]={0,1,2,3,4,5};
Printf(“%d”,sizeof(a));
12宏定义:
将整型变量a的最低n个位去翻,其他位不变。
取反限定使用异或运算。
#definereverse_bits(a,n)
13一下程序片段运行后,输出的结果是:
Inti=0,j=0;
For(i++,j++;++j<2;i++,j++)
{
;/*void*/
}
printf(“%d”,i);
14当引用库函数malloc()时,需要包含的头文件是:
——
15以下程序
#include
Intmain(intargc,char*argc[])
{
If(argc>1)
Printf(“%s”,argc[1]);
Return0;
}
编译生成程序a.exe。
运行
a.exe///x86//
的输出是————
16补齐以下函数:
该函数打印一个数组的元素,每行10个,列之间以空格分开,每行(包过最后一行)以newline
结束。
Voidprintf_array(int*a,intn)
{
Inti;
For(i=0;iPrintf(“%6d%c”,a[i],(___||i==n-1)?
’\n’:
‘’);
}
根据函数说明完成以下函数:
/*
*DESCRIPTION
*Thestrncpy()functionscopyatmostlencharactersfromstcintodst.
*Ifsrcislessthanlencharacterslong,theremainderofdstisfilledwith‘\0’characters.
*Otherwise,dstisnotterminated.
*RETURNVALUES
*Thestrncpy()functionsreturndst.
*Ifstrncpy()doesnotterminatedstwithaNULLcharacter,itinsteatedreturnsapointerto*dst[n].
*(whichdoesnotneccessarillyrefertoavalidmemorylocation)
*/
char*(strncpy)(char*s1,constchar*s2,size_tn)
{
char*s;
for(s=s1;&&*s2!
='\0';--n)
*s++=*s2++;
for(;0;
return(s1);
}
/*DESCRIPTION
*Thestrlcpy()functionsappendacopyofthenull-terminatedstringappendtotheendofthe
*null-terminatedstrings,thenaddaterminating'\0'
*Thestringsmusthavesufficientspacetoholdtheresult
*Thestrlcpy()functionappendsnotmorethancountcharactersformappend,andthenaddsaterminating'\0'
*RETURNVALUES
*Thestrlcpy()andstrlcpy()functionsreturnthepointers.
*/
char*(strlcpy)(char*s1,constchar*s2,size_tn)
{
char*s=s1;
while(*s1)
;
while(n--!
=0&&(*s1++=*s2++))
{
if()
*s1='\0';
}
returns;
}
锐捷网络校招软件试题
(1)以下程序片断运行后,输出的结果是:
printf(“%x”,012345678);
(2)以下程序片断运行后,输出的结果是:
charstr[]=”h\t\”\\/\012\00034”;
printf(“%d”,strlen(str));
(3)以下程序片断运行后,输出的结果是:
intm=4,n=5;
floata=(float)m/n;
floatb=m/n;
printf(“%.2f,%.2f”,a,b);
(4)以下程序片断运行后,输出的结果是:
intx=3,y=(5,4);
printf(“%d”,x*=y+1);
(5)以下程序片断运行后,输出的结果是:
printf(“%d”,(1<<2+3));
(6)使用typedef定义一个包含10个整数指针的数组类型a:
typedef
(7)以下程序片断运行后,输出的结果是:
inta[3][3],(*b)[4];
b=a;
printf(“%d”,(&a[1][1]-&b[1][1]));
(8)以下程序片断运行后,输出的结果是:
unsignedchara[16][16],*ptr;
intm;
ptr=(unsignedchar*)a;
for(m=0;m
*ptr=m;
}
printf(“%x”,a[1][10]);
(9)以下程序片断运行后,输出的结果是:
inta=1,b=10;
do{
a++;
b-=a;
b--;
}while(b>0);
printf(“%d,%d”,a,b);
(10)unsignedsignedchar所能表示最大数由UCHAR_MAX定义,则以下程序片断运行后,输出的结果是:
printf(“%d,%x”,UCHAR_MAX,UCHAR_MAX)
(11)以下程序片断运行后,输出的结果是:
char*str=“hello”;
int*p=(int*)str;
printf(“%d,%d”,sizeof(str[0]),sizeof(*p));
(12)宏定义:
将整型变量a的第n位清零,其它位不变。
#defineclear_bit(a,n)
(13)以下程序片断运行后,输出的结果是:
intm=0,n=0;
if(m++>2||m++<10)
n++;
else
n--;
printf(“%d,%d”,m,n);
(14)当引用库函数memcpy()时,需要包含的头文件是:
(15)运行C语言编写的程序
dir/B/tmp
时,dir的C程序
intmain(int
argc,char
*argc[])
argc的值是
(16)补充以下函数:
/*atoi:
convertstointeger
*/
intatoi(chars[])
{
inti,n;
n=0;
for(i=0;s>=‘0’&&s<=‘9’;++i)
n=10*n+;
returnn;
}
(17~20)根据函数说明完成以下函数:
/*
*DESCRIPTION
*Thestrchr()functionlocatesthefirstoccurrenceof
*c(convertedtoachar)inthestringpointedtos.
*Theterminatingnullcharacterisconsideredpartofthestring;
*thereforeifcis‘\0’,thefunctionslocatetheterminating
*‘\0’.
**RETURNVALUES
*Thefunctionsstrchr()returnapointertothelocated
*character,orNULLifthecharacterdoesnotappearin
*thestring.*/
char*(strchr)(constchar*s,intc)
constcharch=(char)c;
constchar *sc;
for(sc=0;;++s)
{
if(*s==ch)sc=ch;
if(17.)
return((char*)sc);
}
}
/*
*DESCRIPTION
*Thestrstr()functionlocatesthefirstoccurrenceofthe
*null-terminatedstrings2inthenull-terminatedstrings.
**RETURNVALUES
*ifs2isanemptystring,s1isreturned;ifs2occursnowhere
*ins1,NULLisreturned;otherwiseapointertothefirst
*characterofthefirstoccurrenceofs2isreturned.
*/
char*(strstr)(constchar*s1,constchar*s2)
{
if(18.)
return
((char*)s1);
for(;(s1=strchr(s1,*s2))!
=0;19)
{
constchar*sc1,*sc2;
for(sc1=s1,sc2=s2;;)
if(*++sc2==‘\0’)
return
((char*)s1);
elseif(*++sc1!
=*sc2)20.;
}
return(0);
}