亲测c语言道题剖析.doc

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1,请写出bool,float,指针变量与“零值”比较的if语句 bool flag: if(flag) if(!flag) float: const float EPSINON=0.00001 if((x=-EPSINON) (x=EPSINON)) char *p: if(p==NULL) if(p!=NULL) 2,32位系统,计算sizeof的值 char str[]=”hello”; char *p; int n=10; sizeof(str)=6; sizeof(p)=4; sizeof(n)=4; void func(char str[100]{...}) sizeof(func)=4; void *p = malloc(100); sizeof(p)=4; 3,long a = 0x801010; a+5=? 0x801010,二进制 1000 0000 0001 0000 0001 0000 转化为十进制:8392720 所以a+5= 8392725 4,用变量a给出下面的定义 一个有10个指针的数组,指针指向的一个整型数 int *a[10]; 一个指向有10个整型数数组的指针: int (*a)[10]; 一个指向函数的指针,该函数有一个整型参数并返回一个整型数 int (*a)(int); 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数: int (*a[10])(int) 5, typedef union{long i;int k[5];char c;}DATE; struct data {int cat;DATE cow;double dog;}too; DATE max; printf(“%d”,sizeof(struct date)+sizeof(max)); 答案: 数组是相同类型的元素集合,所以int k[5],大小为20 所以union的大小是20,struct的大小是32,double是8个字节 最后的执行的结果是52 6下面代码有什么问题 int main() { char a; char *str=a; strcpy(str,”hello”); printf(str); return 0; } 没有为str分配内存空间,将会发生异常,问题出在将一个字符串复制进一个字符变量指针所指地址。但因为越界进行内在读写而导致程序崩溃。 7,请问一下代码问题 char* s=”AAA”; printf(“%s”,s); s[0]=’B’; printf(“%s”,s); “AAA”是字符串常量,s是指针,指向字符串常量 所以声明应该为const char* s=”AAA”; 然后因为是常量,所以s[0]的赋值操作不合法 8,int (*s[10])(int)表示什么 函数指针数组,每个指针指向一个int func(int param) 9,c和c++中的struct有什么不同 c中struct不可以含有成员函数 c++可以含有成员函数 c++中的struct和class的主要求别是在于默认的权限不同,struct默认为public,class默认为private 10, 11,char szstr[10]; strcpy(szstr,”0123456789”); 产生什么结果,为什么 长度不一样,出现段错误,字符串拷贝会遇到“\0”停止 12,数组和链表的区别 数组:数据顺序顺序存储,固定大小; 链表:数据可以随机存储,大小动态变化 13,void main() { char aa[10]; printf(“%d”,strlen(aa)); } sizeof()和初不初始化没有关系,strlen和字符串有关,打印结果未知 14,给定结构struct A { char t:4; char k:4; unsigned short i:8; unsigned long m; }; sizeof(A)=8; 8位(bit)是一个字节(byte) 15,struct name1{ char str; short x; int num; }; sizeof(name1)=8 short是2byte,long是4byte,double是8byte 17,程序哪里有错误 wap(int *p1,int* p2) { int *p; *p = *p1; *p2=*p; } p位野指针 19,(void *)ptr和(*(void **))ptr的结果是否相同,其中ptr为同一个指针 其值是相同的 20,要对绝对地址0x100000赋值,可以用 (unsigned int*)0x100000 = 1234; 那么要想让程序跳转到绝对地址0x100

文档评论(0)

四月 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档