c语言测试题答案_第1页
c语言测试题答案_第2页
c语言测试题答案_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1. 假定p所指对象的值为 25, p+1所指对象的值为 46,贝U执行"(*p)+ ;"语句后,p所指对象 的值为26。(2分)2 .假定一个二维数组为aMN,贝U ai的地址值(以字节为单位)为int(a)+i*N*sizeof(a ) 。(2 分)3. 请给岀如下程序的结果#defi ne MAX_NUM 100+200 int n Temp = MAX_NUM*10;则 Temp = 2100。(2 分)4. 假定一个一维数组的定义为占存储空间的字节数为 char * a8,则该数组所含元素的个数为。(2 分)5. 下面代码有何错误(5分)void fun cl()

2、int *pa = NULL;fun c2(pa);delete pa;void fun c2(i nt *pb)pb = new in t(5);答:调用func2 ()函数后,pa的值仍然是0,对形参的修改并不影响实参。pb分配了内存空间后,并没有释放,会导致内存泄露。6. 下面代码有何错误(5分)void fun c2(i nt *value)*value = 2;void fun cl()int *p = 0;fun c2(p);答:不能修改零地址的内容7. 有如下代码:int fun cl(i nt& b)return 0;void fun c2()int bbb = 3;f

3、uncl(&bbb);fund (bbb);func2 中有何错误, fund 的参数 b 的类型是什么。 (5 分 )答:func2 中,第一个调用函数函授 fund () 语句,实参与形参类型不匹配,实参类型是 int * 型,是地 址,而函数 ftmcl 形参类型是 int 的引用。8?请解释“ fimc为何种类型,这种类型的作用什么,变量ttt的值是多少? (5分)typedef int(*func)(int, int*);int xxx(int a, int *p)return a + *p;int dowork(func aaa, int bbb, int *ccc)ret

4、urn aaa(bbb, ccc);int sss = 4;int ttt = dowork(&xxx, 3, &sss);答: fimc 是指向函数的指针类型,该函数返回值是 int 型,有 2 个形参,分别为 int 和 int* 型, 79 . 请解释 aaa.h 中下面代码的功能 (5 分)#讦! defined(AFX_MYSUDU_H_9B952BEA_A051_4026_B4E5_0598A39D2DA4_INCLUDED_)#define AFX_MYSUDU_H_9B952BEA_A051_4026_B4E5_0598A39D2DA4_INCLUDED_#en

5、dif答:避免该头文件被重复包含10. 在 windows32 下,有如下代码,请填空。 (10 分 )char str = "Hello"char *p=stT ;intn=10;sizeof(str) =( 6 )sizeof(p) =( 4)sizeof(n) =( 4)(p=str) =( 1 )void func(char str100)sizeof(str) =( 4)11、设 intarr=6,7,8,9,10; (5 分)int *ptr=arr;*(ptr+)+=123;printf( ”d,%d ” ,*ptr,*(+ptr);程序输出为:(8, 8)补

6、充解释:1 . 从右到左入栈2. 后置的加 1 减 1 运算在 printf 调用之后起作用3. 前置的加 1 减 1 运算在 printf 调用之前起作用。4.的 Release 版中不管前置后置加 1 减 1 运算在 printf 调用之前起作用, 优化的版本和 debug 是一样的12. 写一函数实现将一个字符串中的数字字符全部去掉。 (10 分) void RemoveNum(char strSrc)char *p=strSrc;char *q;while(*p!='0')if(*p>='0 '&&*pv=9)q=p;while(*

7、q!='0')*q=*(q+l) ;q+;elseP+;13. 不使用库函数,编写函数int strcmp(char source, char *dest)相等返回0,不等返回int StrCmp(char source, char *dest)assert(source !=NULL);assert(dest!=NULL);while(*source=*dest&& source&&*dest)source+; dest+;14.链表节点结构如下:优化关闭1 (20 分 )return (*source!=*dest)?-l:0;struct

8、STUDENTlong num;float score;STUDENT *pNext;编写实现将两棵有序 (按学号从小到大 ) 的链表合并的函数,要求合并后的链表有序( 按学 号从小到大 ) 。( 10 分)答案:STUDENT *EmergeList(STUDENT *pHeadl,STUDENT *pHead2)取小者为表头STUDENT * pHead=NULL;STUDENT * pTemp=NULL;STUDENT *pTempl=NULL;STUDENT *pTemp2=NULL;if(NULL=pHeadl)return pHead2; if(NULL=pHead2)return

9、 pHeadl;if(pHead 1 ->num>pHead2 ? >num) pHead=pHead2; pTemp=pHead; pTempl=pHeadl; pTemp2=pHead2->pNext;else if(pHeadl ->num<pHead2 ? >num) pHead=pHeadl;pTemp=pHead;pTemp 1 =pHead 1 ->pNext; pTemp2=pHead2;else if(pHead 1 ->num=pHead2->num) pHead=pHeadl; pTemp=pHead;pTemp

10、 1 =pHead 1 ->pNext; pTemp2=pHead2->pNext;delete pHead2; while(pTempl !=NULL&&pTemp2!=NULL) if(pTempl ->num<pTemp2 ? >num)pT emp->pNext=plemp 1; pTemp 1 =pTemp 1 ->pNext;else if(pTemp 1 ->num>pTemp2 ? >num) pT emp->pN ext=pTemp2; pTemp2=pTemp2->pNext; else

11、 if(pTemp 1 ->num=pTemp2 ? >num) STUDENT *pDeleteTemp; pTemp->pNext=pTemp 1; pDeleteTemp=pTemp2; pTemp2=pTemp2->pNext; pTemp 1 =pTemp 1 ->pNext; delete pDeleteTemp; pTemp=pTemp->pNext;if(NULL=pTempl)pT emp->pN ext=pTemp2;else if(NULL=pTemp2)pT emp->pNext=pTemp 1; return pHead

12、;15. 写一个函数,实现将一个字符串中的 Y 替换成四个 *, 个数不定。如 char *p= ,htthdsftttttfds dfswt ewt", 替换后 p= ” ht*hdsf*tt*fds dfsw* ew*" (10 分 ) 答案:void ReplaceTab(char *pszSrc,char *&pResult)int iCount=0;char *ptemp=pszSrc;while(*ptemp)if('t-=*ptemp)iCount+;ptemp+;int size=strlen(pszSrc)+3*iCount+l; pResult=(char *)malloc(size);char

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论