c语言笔试题(答案).doc
《c语言笔试题(答案).doc》由会员分享,可在线阅读,更多相关《c语言笔试题(答案).doc(10页珍藏版)》请在咨信网上搜索。
笔试题 一、填空题(每个空4分,共28分) 1)struct tagABC { char name[10]; char sex; long sno; float score[4]; }*pAbc;(四字节对齐) pAbc=NULL; 那么,执行pAbc+=2;之后pAbc的值为( 64 ) 2)如下代码,最终value的值是( 8 ) int *p1,*p2; int value; p1=(int*)0×400; p2=(int*)0×408; value = p2-p1; 3)如下代码,printf的结果为( 2 ) #include〈stdio.h〉 #include〈string.h〉 void main(void) { char acNew[20]= “\\0\0”; printf(“%d\n”,strlen(acNew)); } 4) 有如下程序段,运行该程序的输出结果是( 33 ) main () { int y=3,x=3,z=1; printf(“%d%d\n”,(++x,y++),z+2); } 5)设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后,n的值为( 2 ) 6)struct tagAAA { Unsigned char ucId:1; Unsigned char ucPara0:2; Unsigned char ucState:6; Unsigned char ucTail:4; Unsigned char ucAvail; Unsigned char unTail2:4; Unsigned long ulData; }AAA_S 问:AAA_S在字节对齐分别为1,4情况下,占用的空间大小分别是多少?( 9 )( 12 ) 二、选择题(每题2分,共34分) 1) 若有说明int(*p)[3];以下叙述正确的是( D ) A:p是指针数组 B:(*p)[3]和*p[3]等价 C:p是指向一维数组中任何一个元素的指针 D:p是指向含有3个整型元素的一维数组的指针 2) 以下关于单元测试的描述,哪些是对的?( D ) A:黑盒测试针对软件的功能,不考虑功能的实现细节; B:白盒测试针对源代码的测试,从程序功能的具体实现上找错; C:路径覆盖是黑盒测试的一种方法,编写测试用例使程序的每条语句都能走到; D:条件覆盖是百盒测试的一种方法, 编写测试用例使程序的每个判断的各种情况都能到 3) 以下可以用于任务间通信的有( ABCD ) A:共享内存 B:信号量 C:消息队列和管道 D:socket调用 4) 有关结构,以下哪些描述是对的?( BC ) A:为了测试方便,尽量把一个结构的功能设计得多一些 B:不同结构间的关系不要过于复杂 C:结构中的各元素应代表同一事务的不同侧面,而不应把描述没有关系或关系很弱的不同事务的元素放到同一结构中 D:结构中元素的布局与排列顺序可以随意设计 5) 关于强制类型转化,下面说法正确的是(ABCD) A:当目的结构的空间大于源结构的空间时,要重点关注内存访问超过源结构范围的情形,可能越界; B:当目的结构的空间小于源结构的空间时,要重点关注对目的结构赋值不能完全覆盖源结构范围的情形,可能遗漏; C:结构体之间的强制类型转换时,其成员字段的数据类型的差异也是要格外小心的; D:与结构体之间的强制类型转换相比,基本数据结构的强制类型转换更容易出现上面描述的情况,使用的时候,一定要慎之又慎; 6) 正确的使用assert,软件系统不会对人为原因造成的错误进行处理。它有利于( A BCD ) A:缺陷及早暴露,加快定位进程; B:明确表示函数接口或算法逻辑的校验关系,增强软件代码的可读性; C:去除不必要的容错处理,简化代码处理流程,降低软件处理复杂度; D:强化编程接口之间的契约,增强软件的可维护性; 7) 对于循环体的执行效率,下述说法正确的是( ABCD ) A:循环体内工作量最小化 B:在多重循环中,应将最忙的循环放在最内层 C:尽量减少循环的嵌套层次 D:避免在循环体内做无谓的判断语句,将循环语句置于判读语句的代码块之中 8) 设数组a[5]={10,20,30,40,50};已知指针p指向a[1];则表达式*++p的值是( A ) A.20 B.21 C.30 D.31 9) 有以下程序段, 执行后,mul的值为( B ) int a[ ]={1,3,5,7,9}; int mul, *data, x; mul=1; data=&a[1]; for(x=0; x<3; x++) mul *= *(data+x); A.15 B.105 C.315 D.945 10) 有以下程序段,执行后的结果为(D) int list[ ]={6,7,8,9,10}; int * p;p=list; *(p+2)=10; printf(”%d, %d\n”,*p,*(p+2)); A.8, 10 B.6, 8 C.7, 9 D.6, 10 11) 以下语句不能正确赋值的是(A) A.char s1[10]; s1=”China”; B.char s2[ ]={ ’C’,’h’,’i’,’n’,’a’}; C.char s3[20]=”China”; D.char *s=”China”; 12) C语言中,定义PI为一个符号常量,正确的是(A) A.#define PI 3.14 B.define PI 3.14 C.#include PI 3.14 D.include PI 3.14 13) 有以下程序,该程序输出的结果为(B) #define N 3 #define M N+2 #define NUM 2*M+1 main() { int i; i=NUM; printf(”%d\n”,i); } A.11 、 B.9 C.7 D.5 14) 有以下程序,程序运行后的输出结果是( D ) #include <string.h> #include <stdio.h> main() { char *p=“abcde\0fghjik\0”; printf(“%d\n” , strlen(p)); } A.12 B.15 C.6 D.5 15) 为了比较两个字符串s1和s2是否相等,应当使用( C ) A.if(s1=s2) B.if(s1==s2) C.if(strcmp(s1, s2)==0) D.if(strcmp(&s1, &s2)==0) 16) 设有如下结构定义: struct student { int num; char name[20]; char sex; int age; char addr[30]; } stud; 若用printf(“%s\n”,…)访问该结构中name值的正确方法是( D ) A.stud->name B.&stud.name C.stud.&name D.stud.name 17) 想对一个文本文件的尾部追加写入,应当在fopen语句中使用的文件操作方式指示符号为( D ) A.w B.r C.wb D.a 三、指出下列程序的错误(每题4分,共20分) 1).如下程序用于输出"Welcome Home"。请指出其中的错误:(4分) void Test(void) { char pcArray[12]; strcpy(pcArray,"Welcome Home"); printf("%s!", pcArray); return; } 答案:数组越界。 2).如下程序用于把"blue"字符串返回,请指出其中的错误:(4分) char *GetBLUE(void) { char* pcColor ; char* pcNewColor; pcColor = "blue"; pcNewColor = (char*)malloc(strlen(pColor)); if(NULL == pcNewColor) { return NULL; } strcpy(pcNewColor, pcColor); return pcNewColor; } 答案:申请内存空间不足,字符串结尾还有'\0'。 3).下面程序期望输出str = hello world,请指出其中的错误:(4分) char * GetStr(char *p) { p = "hello world"; return p; } void main() { char *str = NULL; if(NULL != GetStr(str)) { printf("\r\n str = %s",str); } return; } 答案:无法返回字符串,参数使用错误。 4).请指出下面程序错误的地方:(4分) #define BUFFER_SIZE 256 void Test(void) { char *str = NULL; str = (char *)malloc(BUFFER_SIZE); if(NULL == str) { return; } strcpy(str, "hello"); free(str); if(NULL != str) { strcpy(str, "world"); printf(str); } return; } 答案:引用了已经释放的内存。 5).请指出下面程序的错误:(4分) void GetMemory(char **ppcChar, int iLength) { if(NULL == ppcChar) { return; } *ppcChar = (char *)malloc(iLength); return; } void Test(void) { char *szStr = NULL; GetMemory(&szStr, 100); if(NULL != szStr) { strcpy(szStr, "hello"); printf(szStr); } return; } 答案:没有释放内存。 四、简答题(每题4分,共8分) 1)写宏定义MAX,求出两个数中的较大者。(4分) 答案: #defined MAX(A,B) ((A)>=(B)?(A):(B) ) 2) 画出同下面多叉树等价的二叉树,并作说明。(4分) A B C D E F 答案如下:(采用树的孩子兄弟法将树转换成二叉树) A C B D E F 五、编程题(共10分) 1) 给一个单链表,删除某一节点(要求:先找到是否有这个节点,然后再删除,要能保证程序运行正确)(10分) 参考解法如下: include<iostream.h> #include<malloc.h> #include<stdio.h> #include<conio.h> typedef struct linkqueue1 { int data; struct linkqueue1 *next; }linkqueue1,linklist; linklist *creat(void) //建立链表 { linklist *head; int n=1,len; linklist *p1,*p2; cout<<"input number of records:"<<endl; cin>>len; head=p1=p2=(linklist *)malloc(sizeof(linklist)); cout<<"input records:"<<endl; cin>>p1->data; head->next=NULL; while(n++<=len-1) { p1=(linklist *)malloc(sizeof(linklist)); cin>>p1->data; p2->next=p1; p2=p1; p2->next=NULL; } return (head); } void outlink(linklist *head) { linklist *p; p=head; while(p) { cout<<p->data<<" "; p=p->next; } } int bianli(linklist *head, int Number) //遍历链表,返回1说明有要删除的元素,反之。 { linklist *p; p=head; while(p->next!=NULL) { if( p->data== Number) return 1; } return 0; } linklist *deletenode(linklist *head,int deleteNumber) { linklist *Pointer, *Back; Back = head; Pointer = Back–>next; while(Pointer->data!= deleteNumber) { Pointer++; Back= Back->next; } if(Pointer->data == deleteNumber) { printf("删除首节点!\n"); head = Pointer ->next; free( Pointer ); break; } else { Back->next = Pointer->next; free(Pointer); break; } return head; } void main() { linklist *head; int del,isexit; head=creat(); //创建一个链表 outlink(head); //输出一个链表 cout<<endl<<"输入删除数据:"; cin>>del; isexit= bianli(head,del); //遍历删除的节点是否存在 if(isexit) // 如果存在则删除节点 { head=deletenode(head,del); outlink(head); } else { Cout<< “ 你删除的节点不存在”<<endl; } } 欢迎您的光临,Word文档下载后可修改编辑.双击可删除页眉页脚.谢谢!希望您提出您宝贵的意见,你的意见是我进步的动力。赠语; 1、如果我们做与不做都会有人笑,如果做不好与做得好还会有人笑,那么我们索性就做得更好,来给人笑吧! 2、现在你不玩命的学,以后命玩你。3、我不知道年少轻狂,我只知道胜者为王。4、不要做金钱、权利的奴隶;应学会做“金钱、权利”的主人。5、什么时候离光明最近?那就是你觉得黑暗太黑的时候。6、最值得欣赏的风景,是自己奋斗的足迹。 7、压力不是有人比你努力,而是那些比你牛×几倍的人依然比你努力。- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 笔试 答案
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文