C语言经典题目.doc

C语言经典题目.doc

ID:57687358

大小:23.00 KB

页数:4页

时间:2020-09-01

C语言经典题目.doc_第1页
C语言经典题目.doc_第2页
C语言经典题目.doc_第3页
C语言经典题目.doc_第4页
资源描述:

《C语言经典题目.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1.用变量a给出下面的定义l一个有10个指针的数组,该指针是指向一个整型数的.----int*a[10]l一个指向10个整型数数组的指针--------int(*a)[10]l一个指向函数的指针,该函数有一个整型参数并返回一个整型数。--int(*a)(int)l一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整形数。-----int(*a[10])(int)2.请问以下代码有什么问题?Intmain(){Chara;Char*str=&a;Strcpy(str,“hello”);Printf(str);Return0;}解析:没有为str

2、分配内存空间,将会发生的异常问题出在讲一个字符串复制进一个字符变量指针所指的地址。虽然可以正确输出结果,但因为越界进行内在读写而导致程序崩溃。注:strcop一定要保证目标字符串的长度要大于等于原字符串的长度,否则会复制出错。3.请问以下代码有什么问题?Char*s=“AAA”;Printf(“%s”,s);S[0]=“B”;Printf(“%s”,s);解析:s是一般的指针,但是存放的是字符串常量首地址,编译正确,运行出错,因为s[0]='B'试图修改字符串常量,字符串常量不能修改,一般情况下给字符串常量赋值推荐做法是:constchar*s="AAA";这样当编

3、译器发现修改字符串常量内容时,就会直接报错。4.voidgetmemory(char*p){p=(char*)malloc(100);strcpy(p,“helloworld”);}intmain(){char*str=NULL;getmemory(str);printf(“%s/n”,str);free(str);return0;会出现什么问题?解析:程序崩溃。Getmemory中的malloc不能返回动态内存,free()对str操作很危险。此代码中传str的值进去带不出来,如果对指针进行赋值,一定要用更高一级的指针,否则就要返回值。Malloc()分配了新的内

4、存给P,但是函数中的P是复制了str的值进行操作,函数执行完后P的值就找不到了,str并没有得到P的值,同时P也丢了,也没办法回收分配给P的内存。正确程序参考:#include#include#includevoidgetmemory(char**p){   *p=(char*)malloc(100);   strcpy(*p,"helloworld");}intmain(){   char*str=NULL;getmemory(&str);   printf("%s",str);   free(str)

5、;   return0;} 或者:#include#include#includechar*getmemory(char*p){   p=(char*)malloc(100);   strcpy(p,"helloworld");   returnp;}intmain(){   char*str=NULL;   str=getmemory(str);   printf("%s",str);   free(str);   return0;}1.charszstr[10];strcpy(szstr,"");会产

6、生什么结果?为什么?解析:长度不一样,会出现段错误。正确输出字符串后边应该有,所以此长度为11.1.数组和链表的区别解析:数组:数据顺序存储,固定大小。链表:数据随机存储,大小可动态改变。2.voidmain(){charaa[10];printf(“%d”,strlen(aa));} 会出现什么问题,打印结果是多少?解析:charaa[]定义了一个字符串没有给它赋值,也没有初始化,其内存中的数据是不确定的,strlen()函数是得到一个字符串的长度,所以这个地方的返回值也是不确定的。如果想要得到aa的空间大小的值,应该用sizeof(aa)命令。3.const

7、,volatile,static三个关键字的作用const是一个C语言的关键字,它限定一个变量不允许被改变。a)const意味着只读。b)下面的声明是什么意思Constinta;Intconsta;Constint*a;Int*consta;Intconst*aconst;前两个是一样,a是一个长整型数。第三个意味着a是一个指向常整形数的指针(整型是可以修改的,但是指针可以)第四个意味着a是一个指向整数型的常指针(也就是指针指向的整形数可以修改,但是指针是不可修改的)最后一个意味着a是一个指向长整型数的常指针(也就是指针指向的整型数和指针都是不可修改的)Vola

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。