首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

小弟初学编程,所学有限,真心请问几道C程序题()

2012-03-31 
小弟初学编程,所学有限,真心请教几道C程序题(在线等)1)一个有10个指针的数组,该指针是指向一个整型数的一

小弟初学编程,所学有限,真心请教几道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;
}

热点排行