亚洲国产福利在线一二三观看_精品国产伦一区二区三区欲臀_国产a∨视频精品视频护士_精品八戒人妻少妇av

江蘇省高校計(jì)算機(jī)等級考試命題研究院 江蘇省高校計(jì)算機(jī)等級考試輔導(dǎo)
2009江蘇省計(jì)算機(jī)等級考試C語言考前沖刺模擬試卷3

考試模擬試題3

1.下列關(guān)于信息的敘述錯(cuò)誤的是____(1)__。

A.      信息是指事物運(yùn)動的狀態(tài)及狀態(tài)變化的方式

B.       信息是指認(rèn)識主體所感知或所表述的事物運(yùn)動及其變化方式的形式、內(nèi)容和效用

C.       在計(jì)算機(jī)信息系統(tǒng)中,信息是對用戶有意義的數(shù)據(jù),這些數(shù)據(jù)將可能影響到人們的行為與決策

D.      在計(jì)算機(jī)信息系統(tǒng)中,信息是數(shù)據(jù)的符號化表示

2.下列關(guān)于集成電路的敘述中錯(cuò)誤的是____(2)____。

A.將大量晶體管、電阻及互連線等制作在尺寸很小的半導(dǎo)體單晶片上就構(gòu)成集成電路

B. 現(xiàn)代集成電路使用的半導(dǎo)體材料通常是硅或砷化鎵

C. 集成電路根據(jù)它所包含的晶體管數(shù)目可分為小規(guī)模、中規(guī)模、大規(guī)模、超大規(guī)模和極大規(guī)模集成電路

D. 集成電路按用途可分為通用和專用兩大類。微處理器和存儲器芯片都屬于專用集成電路

3.移動通信指的是處于移動狀態(tài)的對象之間的通信,下面的敘述中錯(cuò)誤的是__(3)______。

A.      移動通信始于上世紀(jì)20年代初,70~80年代開始進(jìn)入個(gè)人領(lǐng)域

B.       移動通信系統(tǒng)進(jìn)入個(gè)人領(lǐng)域的主要標(biāo)志就是手機(jī)的廣泛使用

C.       移動通信系統(tǒng)由移動臺、基站、移動電話交換中心等組成

D.      目前廣泛使用的GSM是第三代移動通信系統(tǒng)

4.下列不同進(jìn)位制的四個(gè)數(shù)中,最小的數(shù)是__(4)______

A.二進(jìn)制數(shù)1100010  B. 十進(jìn)制數(shù)65  C. 八進(jìn)制數(shù)77  D. 十六進(jìn)制數(shù)45

5.下面是關(guān)于PC機(jī)主存儲器的一些敘述,其中正確的是_____(5)____

A.主存儲器每次讀寫一個(gè)字節(jié)(8)

B.主存儲器也稱內(nèi)存,它是一種動態(tài)隨機(jī)存儲器

C.目前市場上銷售的pC機(jī)器,其內(nèi)存容量多數(shù)已達(dá)128MB

D.PC機(jī)的容量總是可擴(kuò)充的

A.   B.  C.  D.

6.下面關(guān)于USB接口的敘述中,錯(cuò)誤的是____(6)______

A.USB2.0的數(shù)據(jù)傳輸速率比USB1.1快的多

B.USB具有熱插拔和即插即用功能

C.主機(jī)不能通過USB連接器向外圍設(shè)備供電

D.從外觀上看,USB連接器要比PC機(jī)的串行口連接器小

7.下列關(guān)于目前流行的臺式PC機(jī)主板的敘述,正確的是_______(7)____

主板上通常包含微處理器插座和芯片組

.主板上通常包含內(nèi)存儲器(內(nèi)存條)插槽和BIOS ROM芯片

.主板上通常包含PCI(PCI-E)總線插槽

.主板上通常包含IDE(SATA)連接器

A  B.   C.   D.

8.為了讀取硬盤存儲器上的信息,必須對硬盤盤片上的信息進(jìn)行定位,在定位一個(gè)扇區(qū)時(shí),不需要以下參數(shù)中的_____(8)___。

A.      柱面(磁道)號

B.       盤片(磁頭)號

C.       通道號

D.      扇區(qū)號

9.下列各類存儲器中,____(9)____在斷電后其中的信息不會丟失。

A.寄存器  B. Cache  C. Flash   ROM  D. DDR SDRAM

10. 下列關(guān)于操作系統(tǒng)處理器管理的說法中,錯(cuò)誤的是____(10)___  。

A.      處理器管理的主要目的是提高CPU的使用效率

B.       分時(shí)是指將CPU時(shí)間劃分成時(shí)間片,輪流為多個(gè)程序服務(wù)

C.       并行處理操作系統(tǒng)可以讓多個(gè)CPU同時(shí)工作,提高計(jì)算機(jī)系統(tǒng)的效率

D.多任務(wù)處理都要求計(jì)算機(jī)必須有多個(gè)CPU

11.在下列有關(guān)程序設(shè)計(jì)語言及其處理程序的敘述中,錯(cuò)誤的是_(11)_。

A.用多種不同的匯編語言編寫一個(gè)程序稱為"交叉匯編"

B.匯編語言是一種用助記符號表示的、與機(jī)器語言接近的符號語言

C.機(jī)器語言指令是由一串“0”和“1”組成的二進(jìn)位代碼

D.編譯程序應(yīng)具有詞法分析和語法分析功能

12.以下關(guān)于局域網(wǎng)和廣域網(wǎng)的敘述中,正確的是____(12)___。

A.      廣域網(wǎng)只是比局域網(wǎng)覆蓋的地域廣,它們所采用的技術(shù)是相同的

B.       家庭用戶撥號入網(wǎng),既可接入廣域網(wǎng),也可接入局域網(wǎng)

C.       現(xiàn)階段家庭用戶的PC機(jī)只能通過電話線接入網(wǎng)絡(luò)

D.      個(gè)人不允許組建計(jì)算機(jī)網(wǎng)絡(luò)

13.將異構(gòu)的計(jì)算機(jī)網(wǎng)絡(luò)進(jìn)行互連通常使用的網(wǎng)絡(luò)互連設(shè)備是_____(13)___。

A. 網(wǎng)橋  B. 集線器  C. 路由器  D. 中繼器

14.TCP/IP網(wǎng)絡(luò)中,任何計(jì)算機(jī)必須有一個(gè)IP地址,而且__(14)______

A. 任意兩臺計(jì)算機(jī)的IP地址不允許重復(fù)

B. 任意兩臺計(jì)算機(jī)的IP地址允許重復(fù)

C. 不在同一城市的兩臺計(jì)算機(jī)的IP地址允許重復(fù)

D. 不在同一單位的兩臺計(jì)算機(jī)的IP地址允許重復(fù)

15. 當(dāng)網(wǎng)絡(luò)中的兩臺計(jì)算機(jī)之間需要互相傳送多個(gè)文件時(shí),一般應(yīng)使用_______(15)____服務(wù)

A.www      B.Telnet        C.FTP     D.電子郵件

16. 在瀏覽器的地址欄中輸入想要瀏覽的網(wǎng)頁URL時(shí),不能缺省的輸入是___(16)_____

A.執(zhí)行的傳輸協(xié)議

B.網(wǎng)頁所在的Web服務(wù)器的域名或IP地址

C.端口號

D.網(wǎng)頁的文件名和查找路徑

17. 下面關(guān)于我國漢字編碼標(biāo)準(zhǔn)的敘述中,錯(cuò)誤的是__  (17)_________

A.GB2312國標(biāo)字符集所包含的漢字許多情況下已不夠使用

B.GBK字符集既包括簡體漢字,也包括繁體漢字

C.GB18030編碼標(biāo)準(zhǔn)中所包含的漢字?jǐn)?shù)目超過2萬個(gè)

D.無論采用上述哪一種漢字編碼標(biāo)準(zhǔn),漢字在計(jì)算機(jī)中均采用雙字節(jié)編碼

18. 下列關(guān)于計(jì)算機(jī)合成圖像(計(jì)算機(jī)圖形)的應(yīng)用中,錯(cuò)誤的是__(18)_______

A.      可以用來設(shè)計(jì)電路圖 

B.       可以用來生成天氣圖

C.       計(jì)算機(jī)只能生成實(shí)際存在的具體景物的圖像,不能生產(chǎn)虛擬景物的圖像

D.      可以制作計(jì)算機(jī)動畫

19.計(jì)算機(jī)中用于描述樂譜并由聲卡合成出樂曲的一種專用語言,稱為_____(19)_____

A.MP3   B.JPEG2000    C.MIDI    D.XML

20.PC機(jī)中安裝視頻輸入設(shè)備就可以獲取數(shù)字視頻,下面關(guān)于視頻獲取設(shè)備的敘述中,錯(cuò)誤的是____(20)_________

A.視頻卡能通過有線電視電纜接收模擬電視信號并進(jìn)行數(shù)字化

B.視頻卡一般插在PC機(jī)的PCI插槽內(nèi)

C.數(shù)字?jǐn)z像頭必須通過視頻卡與PC機(jī)相連接

D.數(shù)字?jǐn)z像頭拍攝的數(shù)字視頻可通過USBIEEE1394接口直接輸入計(jì)算機(jī)

二:c語言程序設(shè)計(jì)

21.一個(gè)用c語言編寫的程序,____________是必不可少的

A.取名為main的函數(shù)定義        B.#include <stdio.h>      C.變量聲明  D.注釋

22.已有枚舉類型定義:"enum letter{AB,C=7D,E};",以下表達(dá)式中除(22)外,其他表達(dá)式的機(jī)內(nèi)值均等于10。

  A'\xb'-1    BB+E    C010+2    D0xf-3

23.以下聲明中正確的是(23) 

  Aint n=2,a[n]={10};    Bint n=10,*p[2]=&n

  Cint n=10,a[2]={n};Dint a[2][2]={lO},(*p)[2]=a+1;

24.若有函數(shù)fun的定義為

    void fun(…)

    {static int a=1

       ...

    }

  則下列敘述中不正確的是  ( 24)  。

  A.在每次調(diào)用fun函數(shù)時(shí),變量a的值是上次調(diào)用結(jié)束時(shí)a的值

  B.在fun函數(shù)之外,可以用變量名a直接引用a的值

  c.在其他函數(shù)中,可以出現(xiàn)聲明double a=25;

  Dfun函數(shù)的形式參數(shù)不能取名為a

 25.已知數(shù)據(jù)類型定義和變量聲明如下:

    struct sk   

    {int a;float b} data[2],*p;   

    若有P=data,則以下對data[0]中成員a的引用中錯(cuò)誤的是:(25)。

    Adata[0]->a    Bdata->a    CP->a    D.(*p).a

 26.以下單目運(yùn)算符均只需妻一個(gè)操作數(shù),其中要求操作數(shù)的類型只能是指針型的是

    (26)    。

    A&    B++    C!    D.*

27.已知有聲明"int good=1;",若要使得表達(dá)式"P="good"+good"無語法錯(cuò)誤(包括警告錯(cuò)

    ),P應(yīng)當(dāng)聲明為( 27)。

    Achar p;    Bchar *p;    Cint p;D.int*p

28.已知有聲明"char c='1',;int x=300float t=35000;double d=3.1234567e10;",則以下表達(dá)

    式求值時(shí)除  ( 28 )  外其結(jié)果都可能是不準(zhǔn)確的。

    Ax=t/c    Bt=d/x    Ct=d/le5f   D.t=x+c

 29.已有預(yù)處理命令和聲明如下:

    #define N 10

    int a=2,c=1

    double b=1.2

    下述程序段正確的是(29)。

    Aswitch(a)                Bswitch(a)

       {case c a--;break;       {case N>0a=1;break;

        case c+1:a++;break        case 1    a=O;break;

       }                            }

C. switch(a)                                 D.switch(b)

   {                                            {  case 1.0:  b++;break;

      case 2:  b++;break;                          case 1.2: b=1;break;

      case '0': b=3;                            }

   }

30.若有以下聲明和定義:

    void fun(int c){prinff("%d"C);}

    main()

    {void(*a)(int)=fun,*b(int),(*c)(int);

    /*調(diào)用fun函數(shù)語句位置*/

    }

    void*b(int C){}。

  如果在main函數(shù)中需要調(diào)用fun函數(shù),以下調(diào)用語句中錯(cuò)誤的是_______(30)______  。

  Afun(1);    B(*a)(1);    Cb=fun;(*b)(1); 

Dc=a(*c)(1);

二、填空題(請將答案填寫在答題紙的相應(yīng)答題號內(nèi),每個(gè)答案只占一行)

●基本概念題(5)

1.若有聲明"char a=0;int b=1;float c=2;double d=3;",則表達(dá)式"c=a+b+c+d"值的類型

  (1)  。

2.若某個(gè)程序運(yùn)行時(shí)創(chuàng)建了多個(gè)輸入流,當(dāng)執(zhí)行到程序中的scanf函數(shù)時(shí),只有在  (2)

  人流為空時(shí)才會暫停程序運(yùn)行而等待輸入。   

3.執(zhí)行"printf("%d,%d"i,j,km);"后在屏幕上將輸出_____(3)______個(gè)整數(shù)。

4.設(shè)已有非空文本數(shù)據(jù)文件fileldat,要求能讀出文件中原有的全部數(shù)據(jù),并在文件原有數(shù)據(jù)

  之后添加新數(shù)據(jù),則用FILE *fp=fopen("fileldat", ____(4)_________  )打開該文件。

5.若有函數(shù)定義int f(){int x=4,y=3,z=2;return x,y,z;},則調(diào)用函數(shù)f后的返回值是

    (5)  

●閱讀程序題(13)

6.以下程序運(yùn)行時(shí)輸出結(jié)果是  (6 )

    #include<stdioh>

    #define M 3

    #defme N M+1

    #define NN N*N/2

    main()   

    {printf("%d\n",NN);}

7.以下程序運(yùn)行時(shí)輸出結(jié)果是  (7)  。

#include <stdio.h>

  main()

    {char a=256

     int d=a;

     prinff("%d",d+1);

    }    、

  8•有如下程序,假定所用編譯系統(tǒng)用兩個(gè)字節(jié)存儲一個(gè)int型操作數(shù),已知輸出結(jié)果第一行是FFD2,則第二行應(yīng)當(dāng)是( 8)

    main()

    {int a[10]={1,23,4,5,6,7,8,9,0},*p

     P=&a[5];   

     printf("%X\n",p);printf("%X\n",p-1);

 9•以下程序運(yùn)行時(shí)輸出結(jié)果的第一行是(9)  ,第二行是(10)。

    int C

    void fl(int x,int *sum)

    {static int y;

     x++y++;c=c+y

     *sum=(x+y)/c;

    }

 

    main()

    {int ab=100

     for(a=O;a<2;a++)

     {f1(a&b);printf("%d%d%d\n"a,b,c)}   ,

10.以下程序運(yùn)行時(shí)輸出結(jié)果的第一行是___(11)_______,第三行是______(12)__________

    #include<stdioh> 

    void mat_change(int b[4][4])

    {int i,jm,n,k,c[6][6]

    for(i=0;i<6;i++)

      for(j=0;j<6;j++) c[i][j]=1;

for(i=1i<5;i++)

       for(j=1j<5;j++)  c[i][j]=b[i-1][j-1]

    for(i=1;i<5i++)

      for(j=1;j<5j++)

      {if(c[i][j]==0)

        {k=0;

          for(m=-1;m<=1;m++)

            for(n=-1;n<=1;n++)

                 if(!(m==O&&n==O))k=k+c[i+m][j+n]

          if(k==8)c[i][j]=1;

        }

       }

    for(i=1;i<5i++)

      for(j=1;j<5;j++)

         b[i-1][j-1]=c[i][j];

    }

    main()

    {int i,j,a[4][4]={{01},{1,11,l},{01,0,1},{0,11,1}};

    mat_change(a)

    for(i=0;i<4;i++)   

     {for(j=0;j<4;j++)printf("%d"a[i][j]);

     printf("\n");

     }

    }

11.以下程序運(yùn)行時(shí)輸出結(jié)果是(13)  。

    #include<stdioh>

    void f(int a[],int n,int x,int *c);

    main()

    {int a[10]={1,3,52,35,37,4,1},t=0 

     f(a,10,5,&t)printf("%d",t);

    }

    void f(int a[]int n,int Xint *c)

    {if(n==0)return;

     if(a[O]>=x)(*c)++;

     f(a+1,n-1,x,c);

    }

12.以下程序運(yùn)行時(shí)輸出結(jié)果的第一行是  (14)  ,第二行是(15)  ,第三行是(16)

    #include<stdioh> 

    typedef struct s

    {

       int index;

       int value;

    }M;

   

    main()

    {static int i,j,kc[4][4];

    M a[10]={{0,1},{3,2}{5,3},{6,4},{9,5},{15,6}{-l,0}},*p=a,

      b[10]={{1,1},{3,2},{4,3}{6,4},{lO,5},{13,6},{-1,0}},*q=b

    while(p->index!=-1) 

    {

      i=p->index/4;

      j=p->index%4;

      c[i][j]=P->value;

      p++;

    }

    while(q->index!=-1)

    {

       i=q->index/4;

       j=q->index%;

       c[i][j]+=q->value;

       q++;

    }

   for(i=0;i<4;i++)

   {

    for(j=0;j<4;j++)  

      printf("%d"c[i][j]);   

    printf("\n");

   }

 }

13.以下程守運(yùn)行時(shí)輸出結(jié)果的第一行是__(17)______ ,第二行是____(18)________  。

    void q(char *sint left, int right)

    { int i,j;

      char x,y;

      i=left; j=right;

      x=s[(1eft+right)/2];

      do

      {while(s[i]>x&&i<right)i++

       while(s[j]<x&&j>left)j--;

  if(i<=j)

    { y=s[i];

      s[i]=s[j];

      s[j]=y;

      i++;j--;

    }

    }while(i<=j); 

   }

    main()

    {char strl[6]="abcde"str2[7]="25134";

     q(strl0,4);puts(strl);

     q(str2,14);puts(str2)

    }

●完善程序題(12)    7

14.如果一個(gè)兩位整數(shù)是質(zhì)數(shù),將組成它的兩個(gè)數(shù)字交換位置后形成的整數(shù)仍為質(zhì)數(shù),則稱這 樣的數(shù)為絕對質(zhì)數(shù)。例如,13就是一個(gè)絕對質(zhì)數(shù)。以下程序用于找出所有兩位絕對質(zhì)數(shù)。

    #include<stdioh>

    int a_prime(int n)  

    {int jk,m[2];

     m[O]=n

     m[1]= _____(19)_______ ;

     for(j=0j<2j++)

        for(k=m[j]/2;k>1;k--)

            if(    (20)    )return 0;

        return 1;

    }

    main()

    {int i;

    for(i=10;i<100;i++)

         if(a_prime(i))printf("%d"i); 

    }   

        20  i

15.計(jì)算∑  n!的值,即求(1!)+(1!+2!)+(1!+2!+3!)++(1!+2!+3!++20!)

        i=1 n=1

    main()

   {int in;double s=0t;

    for(i=1;i<=20;i++)

    {  ________(21)__________

      for(n=1;_____(22)___________  n++)

      {  t=t*n;s=s+t}

    } 

    printf("1!+(1!+2!)++(1!+2!++20 !)=%e\n",s)

    }   

16.以下程序中函數(shù)strmerge的功能是:合并ab兩個(gè)有序的字母字符串(字典序)而產(chǎn)生一

  個(gè)新的字符串,在合并的過程中刪除重復(fù)出現(xiàn)的字符,合并后的字符串仍然保持原序并保

  存到c指向的數(shù)組中,函數(shù)返回在合并過程中刪除的字符個(gè)數(shù)。main函數(shù)中輸出合并后

  的字符串“copy”以及在合并過程中刪除的字符個(gè)數(shù)3。

    include<stdioh>

    int strmerge(char *achar *b,char *c)

    {int i=0,j=0,k=O;char t;

    while(a[i]!='\0' &&  (     22       )

    {if(a[i]==b[j])

      {t=a[i];i++

         (   24        );

      }

    else   

        if(a[i]<b[j])

           t=a[i++]; 

        else

          t=b[j++];

     if(t!=c[k-1])

          (       25       )    =t;    。

    }

    while(a[i])

      if(a[i]!=c[k-1])

       c[k++]=a[i++];

      else

         i++

    while(b[j])

      if(b[j]!=c[k-1])

        c[k++]=b[j++];

    else

      j++

    e[k]='\0';

    return    (       26      ) 

    }

    main()

    {static char s1[10]="ccp",s2[10]="oppy"s3[20];int n;

     n=strmerge(sls2,s3)

     puts(s3);

     printf("%d"n);

    }

17.設(shè)某鏈表上每個(gè)結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)為

    typedef struct node

    {int d  

     struct node *next;

    }NODE;

    函數(shù)NODE *invert(NODE *head)的功能是:將head指向的單鏈表逆置,即原鏈表最后一

個(gè)結(jié)點(diǎn)變?yōu)榈谝粋(gè)結(jié)點(diǎn),原來倒數(shù)第二個(gè)結(jié)點(diǎn)變成第二個(gè)結(jié)點(diǎn),以此類推。在逆置過程中不建

立新的鏈表。

    NODE *invert(NODE *head)

    {NODE *P,*q*r

     if(head==0||  (      (27)    )

       return head;

     P=head;

     q=P->next;

     while(q!=0)

     {r=    (       28        )  ;

      q->next=p;p=q;q=r;

     }

    (    29      )    =O

    head=  (           30         )  ;

    return head;

    }  

 

 

 

 

 

答案:

1.D 2.D 3.D  4.C  5.A   6.C  7.D  8.C  9.C  10.D 11.A  12.B  13.C  14.A  15.C

16.B  17.D  18.C  19.C  20.C

21.A  22.D  23. D  24.B  25.A  26.D  27.B  28 D  29.C  30.C

(1)float  (2)標(biāo)準(zhǔn)  (3)2  (4)”a+”  (5)2  (6)6  (7)1  (8)FFD0   (9)021  (10)113

(11)1100  (12)0111  (13)3  (14)1104  (15)3380  (16)0550  (17)edcba  (18) 25431

(19)n/10+n%10*10  (20)m[j]%k==0  (21)t=1  (22)n<=i  (23)b[j]!=’\0’ (24)j++

(25)c[k++]  (26) i+j-k  (27)head->next==0  (28)q->next (29)head->next (30) p 

 

上機(jī)模擬試卷一:

改錯(cuò)題:(20)

以下程序檢查地名登記表,使每個(gè)地名只登記一次,并輸出登記表內(nèi)容

函數(shù)del_line刪除s指向的n行字符串中重復(fù)出現(xiàn)的字符串,只保留第一次出現(xiàn)的字符串

若程序正確,運(yùn)行后輸出結(jié)果應(yīng)為:shanghai beijing nanjing

含有錯(cuò)誤的源程序如下:

#include <stdio.h>

#include <string.h>

 

int del_line(char s[10][ ],int n)

{

  int i,j,k;

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

  {j=i;

   while(j<n)

     if(strcmp(s[i],s[j])==0)

     {for(k=j;k<n;k++) s[k]=s[k+1];

       s[k][0]=0;n--;

     }

     else j++;

  }

  return n;

}

 

main()

{

  char line[10][10]={“shanghai”,”beijing”,”nanjing”,”shanghai”,”nanjing”};

  int k,n=5;

  n=del_line(line,n);

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

}

將上述程序錄入到文件myf1.c中,然后根據(jù)題目的要求以及程序中語句之間的邏輯關(guān)系對程序中的錯(cuò)誤進(jìn)行修改。

2•改錯(cuò)時(shí),可以修改語句中的一部分內(nèi)容,調(diào)整語句次序,增加少量的變量說明或編譯

   預(yù)處理命令,但不能增加其他語句,也不能刪去整條語句。

  3.改正后的源程序(文件名myflc)必須放在考試軟盤的根目錄下,供閱卷用,否則不

  予評分。

二:編程題(20)

1.        編寫函數(shù)int gcd_max(int a[ ],int b[ ],int n),求長度為n的數(shù)組a中所有相鄰兩元素的最大公約數(shù)(n-1個(gè)),并將之依次保存到數(shù)組b中,函數(shù)返回b數(shù)組中最大數(shù)的下標(biāo)

2.        編寫函數(shù)main函數(shù),聲明一個(gè)數(shù)組并用以下測試數(shù)據(jù)對其初始化,調(diào)用函數(shù)gcd_max,將求得的所有公約數(shù),最大公約數(shù)及其下標(biāo)寫入文件myf2.out中。

例如:輸入測試數(shù)據(jù)3,6,4,16,8,5,15,10,12,18,則輸出結(jié)果應(yīng)為:3,2,4,8,1,5,5,2,6,max1=3,max=8

1.將源文件取名為myf2c,輸出結(jié)果文件取名為myf2out。   

2.?dāng)?shù)據(jù)文件的打開、使用和關(guān)閉等操作均用C標(biāo)準(zhǔn)庫中緩沖文件系統(tǒng)的文件操作函數(shù)

實(shí)現(xiàn)。

3.源程序文件和運(yùn)行結(jié)果文件均須保存在T:盤的根目錄下,供閱卷用。

4.不要將myf2obj、myf2exe保存到T:盤中。

 

 

改錯(cuò)答案:

(1)         int del_line(char s[10][ ],int n)修改為: int del_line(char s[ ][10],int n)

(2)         j=i;  修改為:j=i+1;

(3)         s[k]=s[k+1]  修改為:strcpy(s[k],s[k+1]);

(4)         puts(line); 修改為: puts(line[k]);

編程題答案:

#include "stdio.h"

 

int gcd_max(int a[ ],int b[ ], int x)

{

int i,k=0,t,r,m,n;

int max,maxk;

for(i=0;i<x-1;i++)

{

  m=a[i];n=a[i+1];

  if(m<n) t=m,m=n,n=t;

  r=m%n;

  while(r!=0)

  {

    m=n;n=r;r=m%n;

}

b[k++]=n;

}

max=b[0]; maxk=0;

for(i=1;i<k;i++)

  if(max<b[i]) max=b[i],maxk=i;

return maxk;

}

 

main()

{

  FILE *fp;

  int a[10]={ 3,6,4,16,8,5,15,10,12,18},i,k;

  int b[9]={0};

  if((fp=fopen("myf2.out","w"))==NULL)

  {

     printf("Create file myf2.out failed!\n");

     exit(0);

  }

  k=gcd_max(a,b,10);

  for(i=0;i<9;i++)

  {

         printf("%5d",b[i]);

    fprintf(fp,"%5d",b[i]);

  }

  fprintf(fp,"\n");

  fprintf(fp,"max1=%d,max=%d\n",k,b[k]);

  fclose(fp);

}