编辑: yyy888555 2019-07-16

struct data { int cat;

DATE cow;

double dog;

} too;

DATE max;

则语句 printf("%d",sizeof(struct data)+sizeof(max));

的执行结果是:___52____ 考点:区别 struct 与union.(一般假定在

32 位机器上) 答:DATE 是一个 union, 变量公用空间. 里面最大的变量类型是 int[5], 占用

20 个字节. 所以它的大小是 20. data 是一个 struct, 每个变量分开占用空间. 依次为 int4 + DATE20 + double8 = 32. 所以结果是

20 +

32 = 52. 当然...在某些

16 位编辑器下, int 可能是

2 字节,那么结果是 int2 + DATE10 + double8 =

20

8、队列和栈有什么区别? 队列先进先出,栈后进先出

9、写出下列代码的输出内容 #include int inc(int a) { return(++a);

} int multi(int*a,int*b,int*c) { return(*c=*a**b);

} typedef int(FUNC1)(int in);

typedef int(FUNC2) (int*,int*,int*);

void show(FUNC2 fun,int arg1, int*arg2) { FUNC1 p=&inc;

int temp =p(arg1);

fun(&temp,&arg1, arg2);

printf("%dn",*arg2);

} main() { int a;

//局部变量 a 为0;

show(multi,10,&a);

return 0;

} 答:110

10、请找出下面代码中的所有错误 (题目不错,值得一看) 说明:以下代码是把一个字符串倒序,如"abcd"倒序后变为"dcba" #include"string.h" main() { char*src="hello,world";

char* dest=NULL;

int len=strlen(src);

dest=(char*)malloc(len);

char* d=dest;

char* s=src[len];

while(len--!=0) d++=s--;

printf("%s",dest);

return 0;

} 答: 方法 1:一共有

4 个错误;

int main() { char* src = "hello,world";

int len = strlen(src);

char* dest = (char*)malloc(len+1);

//要为分配一个空间 char* d = dest;

char* s = &src[len-1];

//指向最后一个字符 while( len-- !=

0 ) *d++=*s--;

*d = 0;

//尾部要加'\0' printf("%sn",dest);

free(dest);

// 使用完,应当释放空间,以免造成内存汇泄露 dest = NULL;

//防止产生野指针 return 0;

} 方法 2: (方法一需要额外的存储空间,效率不高.) 不错的想法 #include #include main() { char str[]="hello,world";

int len=strlen(str);

char t;

for(int i=0;

i

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题