六道指针题!!!!你也来做做!(答案已经给出了,不知道你做的怎么样?)
程序代码:第一题:
main()
{
char *p,*q;
char str[]="Hello,World\n";
q = p = str;
p++;
printf(q);
printf(p);
}
运行结果是什么?____________
第二题:
void fun(char* str1, char* str2)
{
static char buffer[21];
strncpy(buffer, str1, 10);
strncat(buffer, str2, 10);
str1 = buffer;
}
main()
{
char *str1="ABC\n";
char *str2="BCD\n";
fun(str1, str2);
printf(str1);
printf(str2);
}
程序运行结果是__________________
第三题:
main()
{
short ar[11]={1,2,3,4,5,6,7,8,9,0,11};
short* par=&ar[1];
int i;
for(i=0; i<10; i++)
{
printf("%-5hd%-5hd%-5hd", ar[i], par[i],*(ar+i));
}
}
程序运行结果是__________________
第四题:
main()
{
short *p, *q;
short ar[10]={0};
p = q = ar;
p++;
printf("%5d", p-q);
printf("%5d", (char*)p - (char*)q);
printf("%5d", sizeof(ar)/sizeof(*ar));
}
假设sizeof(short)==2
程序运行结果是__________________
第五题:
int sub(int a, int b)
{
return a-b;
}
main()
{
typedef int (*SUB)(int, int);
SUB psub=sub;
printf("%d", psub(10,(10,5)));
}
程序运行结果是__________________,
第六题:
main()
{
char* pstrar[3];
int i;
for(i=1; i<3; i++)
{
pstrar[i]=" ";
}
strcpy(pstrar[1], "你好");
printf(pstrar[1]);
}
该程序有错误吗??如果有的话,是哪里错误?
第七题:
main()
{
char *p1,*p2;
{
char* pchar;
char charar[] = "你好,世界";
pchar = "Hello,World!";
p1 = pchar;
p2 = charar;
}
printf(p1);
printf(p2);
}
说出此程序的错误之处?
这是我最近在学习指针的时候遇到了六道题,自己觉得比较有代表性,所以发给大家也做一做!!!!!!!!再从新好好的理解一下指针!!!!
[ 本帖最后由 我菜119 于 2010-9-25 21:40 编辑 ]









