欢迎来到天天文库
浏览记录
ID:13358370
大小:1.99 MB
页数:34页
时间:2018-07-22
《计算机二级上机解题技巧》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、昆明新视野教育一、填空题(一)链表类型题目包括:15、42、43、50、56、75、79、85、86、87技巧解析:1、首先看清楚题目要求和意思。看清楚链表有没有带头结点,如果带有头结点,指向数据源的指针内容是p=h—>next;如果是不带有头结点,则填写的是p=h;2、如果所要填写的空在循环语句while的括号中的时候,里面的内容填写的是p或者是q,以最近出现的为主;如果是在循环语句的里面的时候,填写的是q=p—>next;3、如果是排序的时候,从小到大的时候是大于号,从大到小的时候是小于号。4、如果链表题目中考到调用函数,一般只需
2、要填入实参head,例如:fun(head);在构造链表的时候都会有头结点,一般用head来表示,head指向了链表中的第一个数据的地址。细化分类:1.将数据域中的数据进行排序,类似题目:15、42voidfun(NODE*h){NODE*p,*q;intt;/**********found**********/p=__1__;指向数据源,由于h是带头结点的链表,因此需要填入h->nextwhile(p){判断链表p是否已经到末尾/**********found**********/q=__2__;比较两个数的大小,因此需要q指向p中
3、的下一个数据需要填入p->next,也就是说p指向了第一个数据,q指向了第二个数据。while(q){判断q是否指向了末尾/**********found**********/if(p->data__3__q->data)从小到大排序,因此填入大于符号{t=p->data;p->data=q->data;q->data=t;}交换数据q=q->next;q自增,目的是比较出最小的数据}p=p->next;p自增}}联想记忆分析1:对一维数组进行从小到大排序voidfun(intb[N]){inti,j,a;for(i=0;i4、i++)for(j=i;jb[j]){a=b[i];b[i]=b[j];b[j]=a;}}}联想记忆分析2:对结构体数组按照姓名进行从小到大排序for(i=0;i0){a=b[i];b[i]=b[j];b[j]=a;}34我们一直在用心做教育!昆明新视野教育1.将数据域中的元素逆置,类似的题目:43、50链表中数据域中的元素逆置,首先将第一个数据取出来放在最后一个位置,也就是将其next置空5、,表示已经到了末尾。接着将第二个数据放到第一个的前面,依次类推即可将整个数据域逆置。voidfun(NODE*h){NODE*p,*q,*r;/**********found**********/p=__1__;指向数据源,由于h是带头结点的链表,因此需要填入h->next/**********found**********/if(__2__)return;填入p==NULL,判断第一个数据是否为空,如果为空就无需逆置,执行return语句,结束函数的执行。q=p->next;q指向了p的下一个数据,确保链表的完整性p->next=N6、ULL;将第一个数据取出来放在最后一个位置,也就是将其next置空,表示已经到了末尾。while(q){r=q->next;用来跟踪数据,指向了q的下一个数据q->next=p;将第二个数据放到第一个的前面,依次类推即可将整个数据域逆置。/**********found**********/p=q;q=__3__;这里需要将q指向后面的数据,因此可以填入q->next,或者是r都可以。}h->next=p;}联想记忆分析1:数组元素的逆置inta[10]={1,2,3,4,5,6,7,8,9,10};inti,j=0,b[10];fo7、r(i=9;i>=0;i--){b[j]=a[i],j++;}数组的逆置只需从数组长度减一开始往后将元素放在另外一个数组中就行。联想记忆分析2:字符串的逆置voidfun(char*str){char*p;intlen;len=strlen(str);while(len){*p=str[len-1];len--;p++;}}函数的功能实现了指针p指向了字符串str逆置后的首地址。2.输出数据,释放结点,缩短链表,类似的题目:5634我们一直在用心做教育!昆明新视野教育1.给一个递增有序的链表插入一个新结点,并保持链表有序。类似的题目:8、872.统计结点个数,计算结点之和。类似的题目:75、853.删除链表中数据域值相同的节点,保留一个。类似的题目:79(二)结构体类型的题目:2、9、16、22、23、30、33、47、51、78、80、82、88、92
4、i++)for(j=i;jb[j]){a=b[i];b[i]=b[j];b[j]=a;}}}联想记忆分析2:对结构体数组按照姓名进行从小到大排序for(i=0;i0){a=b[i];b[i]=b[j];b[j]=a;}34我们一直在用心做教育!昆明新视野教育1.将数据域中的元素逆置,类似的题目:43、50链表中数据域中的元素逆置,首先将第一个数据取出来放在最后一个位置,也就是将其next置空
5、,表示已经到了末尾。接着将第二个数据放到第一个的前面,依次类推即可将整个数据域逆置。voidfun(NODE*h){NODE*p,*q,*r;/**********found**********/p=__1__;指向数据源,由于h是带头结点的链表,因此需要填入h->next/**********found**********/if(__2__)return;填入p==NULL,判断第一个数据是否为空,如果为空就无需逆置,执行return语句,结束函数的执行。q=p->next;q指向了p的下一个数据,确保链表的完整性p->next=N
6、ULL;将第一个数据取出来放在最后一个位置,也就是将其next置空,表示已经到了末尾。while(q){r=q->next;用来跟踪数据,指向了q的下一个数据q->next=p;将第二个数据放到第一个的前面,依次类推即可将整个数据域逆置。/**********found**********/p=q;q=__3__;这里需要将q指向后面的数据,因此可以填入q->next,或者是r都可以。}h->next=p;}联想记忆分析1:数组元素的逆置inta[10]={1,2,3,4,5,6,7,8,9,10};inti,j=0,b[10];fo
7、r(i=9;i>=0;i--){b[j]=a[i],j++;}数组的逆置只需从数组长度减一开始往后将元素放在另外一个数组中就行。联想记忆分析2:字符串的逆置voidfun(char*str){char*p;intlen;len=strlen(str);while(len){*p=str[len-1];len--;p++;}}函数的功能实现了指针p指向了字符串str逆置后的首地址。2.输出数据,释放结点,缩短链表,类似的题目:5634我们一直在用心做教育!昆明新视野教育1.给一个递增有序的链表插入一个新结点,并保持链表有序。类似的题目:
8、872.统计结点个数,计算结点之和。类似的题目:75、853.删除链表中数据域值相同的节点,保留一个。类似的题目:79(二)结构体类型的题目:2、9、16、22、23、30、33、47、51、78、80、82、88、92
此文档下载收益归作者所有