计算机等级考试二级C语言上机题集(第51~55套)

打印 上一主题 下一主题

主题 548|帖子 548|积分 1644

第51套

1.程序填空题
给定程序中,函数fun的功能是将不带头结点的单向链表逆置。即若原链表从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、4、2。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
  1. #include  <stdio.h>
  2. #include  <stdlib.h>
  3. #define N  5
  4. typedef struct node
  5. {
  6.     int  data;
  7.     struct node  *next;
  8. } NODE;
  9. /**********found**********/
  10. __1__ fun(NODE *h)
  11. {
  12.     NODE  *p, *q, *r;
  13.     p = h;
  14.     if (p == NULL)
  15.       return NULL;
  16.     q = p->next;
  17.     p->next = NULL;
  18.     /**********found**********/
  19.     while (__2__)
  20.     {  
  21.        r = q->next;
  22.        q->next = p;
  23.        p = q;
  24.     /**********found**********/
  25.        q = __3__ ;
  26.     }
  27.     return  p;
  28. }
  29. NODE *creatlist(int  a[])
  30. {  
  31.     NODE  *h,*p,*q;        
  32.     int  i;
  33.     h=NULL;
  34.     for(i=0; i<N; i++)
  35.     {  
  36.         q=(NODE *)malloc(sizeof(NODE));
  37.         q->data=a[i];
  38.         q->next = NULL;
  39.         if (h == NULL)  h = p = q;
  40.         else    {  p->next = q;  p = q;   }
  41.     }
  42.     return  h;
  43. }
  44. void outlist(NODE  *h)
  45. {  
  46.     NODE  *p;
  47.     p=h;
  48.     if (p==NULL)  printf("The list is NULL!\n");
  49.     else
  50.     {  
  51.         printf("\nHead  ");
  52.         do
  53.         {  
  54.             printf("->%d", p->data);
  55.             p=p->next;  
  56.         } while(p!=NULL);
  57.         printf("->End\n");
  58.     }
  59. }
  60. int main()
  61. {  
  62.     NODE  *head;
  63.     int  a[N]={2,4,6,8,10};
  64.     head=creatlist(a);
  65.     printf("\nThe original list:\n");
  66.     outlist(head);
  67.     head=fun(head);
  68.     printf("\nThe list after inverting :\n");
  69.     outlist(head);
  70.     return 0;
  71. }
复制代码
2.程序修改题
给定程序中,函数fun的功能是将字符串s中位于奇数位置的字符或ASCII码为偶数的字符放入字符串t中(规定第1个字符放在第0位中)。
例如,字符串中的数据为:AABBCCDDEEFF,则输出应为:ABBCDDEFF。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
[code]#include #include #define  N  80void fun(char *s, char t[]){      int  i, j=0;    for(i=0; i
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

杀鸡焉用牛刀

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表