<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. 試題

    計算機二級《C語言》上機題精講

    時間:2025-03-21 13:51:59 試題 我要投稿
    • 相關推薦

    2016計算機二級《C語言》上機題精講

      C語言是一門通用計算機編程語言,應用廣泛。為了幫助考生們更好、更有準備地參加考試,下面百分網小編為大家搜索整理了關于計算機二級《C語言》上機題精講,歡迎參考練習,希望對大家備考有所幫助!想了解更多相關信息請持續關注我們應屆畢業生考試網!

      1、給定程序中已建立一個帶有頭結點的單向鏈表,鏈表中的各結點按數據域遞增有序鏈接。函數fun的功能是:刪除鏈表中數據域值相同的結點,使之只保留一個。 請在程序的下劃線處填入正確的內容并把下劃線刪除,使程序得出正確的結果。

      注意:源程序存放在考生文件夾下的BLANK1.C中。

      不得增行或刪行,也不得更改程序的結構!

      給定源程序:

      #include

      #include

      #define N 8

      typedef struct list

      { int data;

      struct list *next;

      } SLIST;

      void fun( SLIST *h)

      { SLIST *p, *q;

      p=h->next;

      if (p!=NULL)

      { q=p->next;

      while(q!=NULL)

      { if (p->data==q->data)

      { p->next=q->next;

      free(___1___);

      q=p->___2___;

      }

      else

      { p=q;

      q=q->___3___;

      }

      }

      }

      }

      SLIST *creatlist(int *a)

      { SLIST *h,*p,*q; int i;

      h=p=(SLIST *)malloc(sizeof(SLIST));

      for(i=0; i

      { q=(SLIST *)malloc(sizeof(SLIST));

      q->data=a[i]; p->next=q; p=q;

      }

      p->next=0;

      return h;

      }

      void outlist(SLIST *h)

      { SLIST *p;

      p=h->next;

      if (p==NULL) printf("\nThe list is NULL!\n");

      else

      { printf("\nHead");

      do { printf("->%d",p->data); p=p->next; } while(p!=NULL);

      printf("->End\n");

      }

      }

      main( )

      { SLIST *head; int a[N]={1,2,2,3,4,4,4,5};

      head=creatlist(a);

      printf("\nThe list before deleting :\n"); outlist(head);

      fun(head);

      printf("\nThe list after deleting :\n"); outlist(head);

      }

      解題思路:

      本題是考察考生對鏈表的操作,主要是解決刪除鏈表中數據域值相同的結點。程序中共有三處要填上適當的內容,使程序能運行出正確的結果。

      函數fun中使用兩個臨時結構指針變量p和q對鏈表進行操作。首先p指向鏈表開始的next指針,q指向p的next指針,再利用while循環語句來判斷指針q是否NULL,如果q指針是指向NULL,那么函數結束返回。如果不是NULL,那么就要判斷p和q中data值是否相同,如果值相同,則要

      刪除該結點,然后繼續判斷下一結點值是相同,如果還相同,那么繼續刪除結點,直至不相同為止。如果兩個結點的值不相同,那么p就指向q,q指向q的next指針再繼續操作上述過程。

      刪除結點的方法是:先將p的next指針指向q的next指針,再釋放q指針指向的內存,最后把

      q指針再指向p的next指針就可以刪除一個鏈表中的結點了。

      第一處:釋放q指針所指的內存空間,應填q。

      第二處:q指針指向p的next指針,重新完成鏈接,應填next。

      第三處:兩個結點的值不相同,那么q就指向q的next指針,應填next。

      2、給定程序MODI1.C中函數fun的功能是:用選擇法對數組中的n個元素按從小到 大的順序進行排序。

      請修改程序中的錯誤,使它能得出正確的結果。

      注意:不要改動main函數,不得增行和刪行,也不得更改程序的結構!

      給定源程序:

      #include

      #define N 20

      void fun(int a[], int n)

      { int i, j, t, p;

      for (j = 0 ;j < n-1 ;j++) {

      p = j

      for (i = j;i < n; i++)

      if(a[i] < a[p])

      p = j;

      t = a[p] ; a[p] = a[j] ; a[j] = t;

      }

      }

      main()

      {

      int a[N]={9,6,8,3,-1},i, m = 5;

      printf("排序前的數據:") ;

      for(i = 0;i < m;i++) printf("%d ",a[i]); printf("\n");

      fun(a,m);

      printf("排序后的數據:") ;

      for(i = 0;i < m;i++) printf("%d ",a[i]); printf("\n");

      }

      解題思路:

      第一處:語句后缺少分號。

      第二處:保存最小值的位置,所以應改為:p = i;。

      3、請編寫一個函數fun,它的功能是:求出1到m之間(含m)能被7或11整除的所有整數放在數組a中,通過n返回這些數的個數。例如,若傳送給m的值為50,則程序

      輸出:7 11 14 21 22 28 33 35 42 44 49

      注意: 部分源程序存在文件PROG1.C中。

      請勿改動主函數main和其它函數中的任何內容,僅在函數fun的花括號中填入

      你編寫的若干語句。

      給定源程序:

      #include

      #define M 100

      void fun ( int m, int *a , int *n )

      {

      }

      main( )

      { int aa[M], n, k;

      fun ( 50, aa, &n );

      for ( k = 0; k < n; k++ )

      if((k+1)%20==0) printf("\n");

      else printf( "%4d", aa[k] );

      printf("\n") ;

      NONO( );

      }

      解題思路:

      本題是考察考生對某個數能被其他的數整除方式,并把符合條件的數存放在數組a中。 我們給出的程序是使用for循環語句以及取模的方式來解決這個問題的。

      參考答案:

      #include

      #define M 100

      void fun ( int m, int *a , int *n )

      {

      int i ;

      *n=0 ;

      for(i=7 ; i<=m; i++)

      if((i % 7 == 0) || (i % 11 == 0)) a[(*n)++]=i ;

      }

    【計算機二級《C語言》上機題精講】相關文章:

    計算機二級C語言上機編程題講解07-10

    2017計算機二級C語言上機特訓題08-12

    計算機二級C語言預測上機精選訓練題07-05

    2017計算機二級C語言上機最終預測題07-08

    計算機二級C語言上機程序填空題09-26

    計算機二級C語言上機強化訓練題及答案06-07

    計算機二級C語言上機操作題及答案09-08

    2015計算機二級c語言上機題庫06-19

    計算機二級C語言上機編程題詳細分析09-30

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人