小弟初学编程,所学有限,真心请教几道C程序题(在线等)
1)一个有10个指针的数组,该指针是指向一个整型数的
一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数
2)写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。
3)void Test(void)
{
char*str=(char*)malloc(100);
strcpy(str, "hello ");
free(str);
if(str!=NULL)
{
strcpy(str, "world ");
printf(str);
}
}
请问运行Test函数会有什么结果?
4)main()
{int a[5]={1,2,3,4,5};
int*ptr=(int*)(&a+1);
printf( "%d%d ",*(a+1),*(ptr-1));
}
这段程序的输出是?
5)main()
{inta[][3]={1,2,3 ,4,5,6};
int(*ptr)[3]=a;
printf( "%d%d ",(*ptr)[1],(*ptr)[2]);
++ptr;
printf( "%d%d ",(*ptr)[1],(*ptr)[2]);
}
6)找出下面代码中的错误
说明:以下代码是把一个字符串倒序,如“abcd”倒序后变成 "dcba "
1 .#include "string.h "
2 .main()
3 .{
4 .char*scr= "hello,world ";
5 .char*dest=NULL;
6 .int len=strlen(src);
7 .dest=(char*)malloc(len);
8 .char*d=dest;
9 .char*s=src[len];
10.while(len--!=0)
11.d++=s--;
12.printf( "%s ",dest);
13.return 0;
14.}
[解决办法]
1)int *p[10];
int (*p[10])(int);
2) #define MIN(a,b) ( (a) > (b) ?(b):(a) )
3) strcpy(str, "world ");内存错误。free(str);后str变成野指针。
4)25
5)2356
[解决办法]
#include <stdio.h>
#include <stdlib.h> // 缺少两个头文件
#include <string.h>
main()
{
char*scr= "hello,world ";
char*dest=NULL;
//int len=strlen(src);这写错了,应该是scr
int len = strlen(scr);
dest=(char*)malloc(len);
char*d=dest;
//char*s=src[len]; 同样,这里也写错了
//char *s = scr[len]; 不能将一个字符赋给一个字符指针
char *s = scr;
while(len-- != 0)
//d++=s--;不能这样写
*d++ = *(s+len);
*d = '\0 '; // 不要忘最后还有一个结束符
printf( "%s\n ",dest);
return 0;
}