2005
年華為招聘
--
C
語言筆試試題
?
一、
判斷題(對的寫
T
,錯(cuò)的寫
F
并說明原因,每小題
4
分,共
20
分)
1
、有數(shù)組定義
int a[2][2]={{1},{2,3}};
則
a[0][1]
的值為
0
。(
????
)
2
、
int (*ptr) (),
則
ptr
是一維數(shù)組的名字。(
????
)
3
、指針在任何情況下都可進(jìn)行
>,<,>=,<=,==
運(yùn)算。(
????
)
4
、
switch(c)
語句中
c
可以是
int ,long,char ,float ,unsigned int
類型。(
??
)
5
、
#define print(x)? printf(
"
the no,
"
#x
"
,is
"
)
?
二、填空題(共
30
分)
1
、在
windows
下,寫出運(yùn)行結(jié)果,每空
2
分,共
10
分。
char str[ ]=
"
Hello
"
;
char *p=str;
int n=10;
sizeof(str)=(????? )
sizeof(p)=(?????? )
sizeof(n)=(?????? )
?
void func(char str[100])
{??? }
sizeof(str)=(???? )
?
2
、
void setmemory(char **p, int num)
{ *p=(char *) malloc(num);}
void test(void)
{? char *str=NULL;
?? getmemory(&str,100);
?? strcpy(str,
"
hello
"
);
?? printf(str);
}
運(yùn)行
test
函數(shù)有什么結(jié)果?(
???????????????????????????????
)
10
分
?
3
、設(shè)
int arr[]={6,7,8,9,10};
???? int *ptr=arr;
?? *(ptr++)+=123;
?printf(
"
%d,%d
"
,*ptr,*(++ptr));
(??????????????????????????????????
) 10
分
?
二、
編程題(第一小題
20
,第二小題
30
分)
1
、
?
不使用庫函數(shù),編寫函數(shù)
int strcmp(char? *source, char *dest)
?
相等返回
0
,不等返回
-1
;
?
2
、
?
寫一函數(shù)
int fun(char *p)
判斷一字符串是否為回文,是返回
1
,不是返回
0
,出錯(cuò)返回
-1