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"));
}
分析:
,====》*p1 是第一个字符
=25
=====》networks 在内存中的大小 25 x 1
=1
Sizeof(*p1)
sizeof(networks)
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 操作系统中进程的概念,进程与程序的区别?
三、二叉树顺序输出编程题
四、将小写字符串变成大写字符串编程题
五、单链表反转编程题