山石网科笔试题及部分答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.1 考察sizeof
在32位机子上,输出值
/* value1 = 4,value2 = 4,value3 = 4
* value4 = 4,value5 = 4,value6 = 4
* value7 = 1,value8 = 1,value9 = 1
* value10 = 25
* value11 = 9
* value12 = 0
* value13 = 8
*/
#include
#include
#include
int main()
{
char networks[25] = {0};
char *p1 = "networks";
char *p2 = malloc(25);
char *p3 = networks;
printf("value1 = %d,value2 = %d,value3 = %d\n",sizeof(p1),sizeof(p2),sizeof(p3)); printf("value4 = %d,value5 = %d,value6 = %d\n",sizeof(&p1),sizeof(&p2),sizeof(&p3)); printf("value7 = %d,value8 = %d,value9 = %d\n",sizeof(*p1),sizeof(*p2),sizeof(*p3)); printf("value10 = %d\n",sizeof(networks));
printf("value11 = %d\n",sizeof("networks"));
printf("value12 = %d\n",strlen(networks));
printf("value13 = %d\n",strlen("networks"));
}
分析:
Sizeof(*p1) =1 ,====》*p1是第一个字符
sizeof(networks) =25 =====》networks在内存中的大小25 x 1
1.2
/*
* stones
*/
#include
int test_func(char *str)
{
str = "hill";
return 0;
}
int main()
{
char *str = "stones";
test_func(str);
printf("%s\n",str);
return 0;
}
分析:
1.3
/*
*0,9,10
*/
#include
enum ERROR
{
error,
WARNING = 8,
ERR,
NODEV,
};
int main()
{
printf("%d,%d,%d\n",error,ERR,NODEV); return 0;
}
1.4
#include
struct test_node {
int aa;
int bb;
};
int main()
{
int p1[] = {0,1,2,3,4,5,6,7,8,9};
struct test_node *p2 = (struct test_node *)p1; p2 +=4;
printf("%d,%d\n",p2->aa,p2->bb);//8,9 return 0;
}
分析:
1.5
/*
* j=9
*/
#include
int main()
{
int j=7;
if((++j<=7)||(j++>=8)||(++j<=9));
printf("j=%d\n",j);
return 0;
}
分析:
1.6 将str输出"est",怎么填move_ptr()
#include
void move_ptr(____________)
{
___________________
}
int main()
{
char *str = "test";
move_ptr(_____);
printf("%s\n",str);
return 0;
}
二、问答题
2.1 hub、二层交换机和路由器的主要区别?
2.2 数组与链表的主要区别及应用场所?
2.3 操作系统中进程的概念,进程与程序的区别?
三、二叉树顺序输出编程题
四、将小写字符串变成大写字符串编程题
五、单链表反转编程题