1.请输出下面程序的结果:
int main(void)
{
int a[5]={1,2,3,4,5};
int *ptr=(int *)(&a+1);
printf("%d,%d",*(a+1),*(ptr-1));
return 0;
}
2.请输出下面这段程序的结果:
int main(void)
{
int a[][3]={1,2,3,4,5,6};
int (*ptr)[3]=a;
printf("%d,%d\n",(*ptr)[1],(*ptr)[2]);
ptr++;
printf("%d,%d",(*ptr)[1],(*ptr)[2]);
return 0;
}
3.请指出下面ABCD中哪个有问题,同时,指出为啥有问题
A)char s1[10];s1="HIGH";
B) char s2[]={'H','I','G','H'};
C) char s3[20]="HIGH";
D)char *s4 = "HIGH";
4.请指出下面这段程序错误的地方,并说出原因:
int main(void)
{
char a;
char *str=&a;
strcpy(str,"hello");
printf(str);
return 0;
}
5.请输出下面sizeof的结果:
char str[]="HIGH";
char *p=str;
int n=10;
sizeof(str)=?;
sizeof(p)=?;
sizeof(n)=?;
void func(char str[100])
{
sizeof(str)=?;
}
6.请输出下面的sizeof的结果(32位系统):
#pragma pack(4)
typedef struct ex1
{
char a;
int b;
short c;
}ex1;
#pragma pack()
sizeof(ex1)=?;
#pragma pack(4)
typedef struct ex2
{
char a;
short b;
int c;
}ex2;
#pragma pack()
sizeof(ex2)=?;
7.请输出下面这段程序的结果:
int main(void)
{
unsigned int a;
unsigned short b;
unsigned char c;
a=0xabcdabcd;
b=a;
c=a;
printf("a=0x%x\n",a);
printf("b=0x%x\n",b);
printf("c=0x%x\n",c);
return 0;
}
8.下面的代码会输出什么?有无异常?
int main(void)
{
unsigned int i;
for(i=100;i>=0;i--)
{
printf("i value %d\n",i);
}
return 0;
}
9.请指出下面这段错误的地方,并说出原因:
int main(void)
{
char *src_str="THIS IS THE STRING";
char *dest_str[10];
strcpy(dest_str,src_str);
return 0;
}
10.请指出下面这段程序错误的地方,并说出原因:
void GetMemory(char *p)
{
p=(char *)malloc(100);
}
void Test(void)
{
char *str=NULL;
GetMemory(str);
strcpy(str,"hello world");
pritnf(str);
}
11.请指出下面这段程序错误的地方,并说说原因:
int main(void)
{
char *s="ABC";
pritnf("%s",s);
s[0]='B';
printf("%s",s);
return 0;
}
12.写一个”标准”宏MAX,这个宏输入两个从那书并返回较大的一个
13.请实现函数strlen,不使用新的变量,不用循环语句,能正确返回字符数
unsigned int strlen(const char *s)
14.进程间的通信方式有哪些?
15.什么是死锁?其条件是什么?怎么避免死锁?
16.什么是堆栈溢出?有什么危害?其原因是什么?
17.全局静态变量,局部静态变量,局部变量以及全局变量存储的特点?