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

江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導(dǎo)
江蘇計算機等級考試二級C語言考前模擬試卷第2套

考試模擬2

 

1.下面關(guān)于集成電路(IC)的說法中錯誤的是_______(1)_______

A.集成電路是現(xiàn)代信息產(chǎn)業(yè)的基礎(chǔ)

B.現(xiàn)代PC機中使用的微型處理器都是超大規(guī)模或極大規(guī)模集成電路

C.集成電路的特點是體積小,重量輕,可靠性強

D.IC卡分存儲器卡與智能卡(CPU),比如手機的SIM卡就是一種存儲器卡

2.下面關(guān)于通信技術(shù)的敘述中,錯誤的是_________(2)________

A.數(shù)字通信是當(dāng)代通信技術(shù)的主流,它比模擬通信更能適應(yīng)現(xiàn)代社會的要求

B.計算機網(wǎng)絡(luò)中采用的最基本的多路復(fù)用技術(shù)是時分多路復(fù)用技術(shù)

C.信息在光纖中傳輸時,每隔一定距離需要加入中繼器,將信號放大后再繼續(xù)傳輸

D.無線通信可以按頻率分成中波,短波,超短波和微波,其中微波的波長很短,通常在10m-100m之間

3.Pentinum處理器中的一個16位帶符號整數(shù),如果它的十六進制數(shù)是FFF0,那么它的實際數(shù)值是________(3)____

A.-16    B.32768    C.0      D.-8

4.下面關(guān)于微處理器的敘述中不正確的是___(4)______

A.微處理器通常以單片集成電路制成

B.它具有運算和控制功能,但不具備數(shù)據(jù)存儲功能

C.Pentinum4及其兼容的微處理器是目前PC機中使用最廣泛的一種處理器

D.Intel公司是國際上研制、生產(chǎn)CPU最著名的公司

5.下面關(guān)于PC機的主機敘述不正確的是_________(5)________

A.RAM代表隨機存取存儲器,ROM代表只讀存儲器,關(guān)機后前者所有存儲的信息會丟失,而后者不會

B.保存在BIOS中的自舉程序的功能是裝入操作系統(tǒng)

C. 數(shù)碼相機和優(yōu)盤中使用的芯片類型是Flash Rom

D.I/O總線上有三類信號:數(shù)據(jù)信號、地址信號和控制信號

6. .磁盤存儲器的下列敘述中,錯誤的是____(6)____。

A磁盤盤片的表面分成若干個同心圓,每個圓稱為一個磁道

A.      硬盤上的數(shù)據(jù)存儲地址由兩個參數(shù)定位:磁道號和扇區(qū)號

B.       硬盤的盤片、磁頭及驅(qū)動機構(gòu)全部密封在一起,構(gòu)成一個密封的組合件

C.       每個磁道分為若干個扇區(qū),每個扇區(qū)的容量一般是512字節(jié)

7. 在下列幾種存儲器中,速度慢、容量小的是_____(7)___。

A. 優(yōu)盤  B. 光盤存儲器  C. 硬盤存儲器  D.軟盤存儲器

8.下列有關(guān)操作系統(tǒng)作用的敘述中,正確的是___(8)____。

A. 有效地管理計算機系統(tǒng)的資源是操作

系統(tǒng)的主要作用之一

B. 操作系統(tǒng)只能管理計算機系統(tǒng)中的軟件資源,不能管理硬件資源

C. 操作系統(tǒng)提供的用戶界面都是圖形用戶界面

D. 在計算機上開發(fā)和運行應(yīng)用程序與安裝和運行的操作系統(tǒng)無關(guān)

9.下面關(guān)于算法和數(shù)據(jù)結(jié)構(gòu)的敘述中,錯誤的是___(9)__________

A.算法的基本特征是:確定性,有窮性,能行性,輸出

B.算法的一個顯著特征是,它解決的是一個問題而不是一類問題

C.算法的好壞除了考慮正確性外,還要看執(zhí)行算法所占用的空間資源

D.數(shù)據(jù)結(jié)構(gòu)研究如何根據(jù)實際問題組織數(shù)據(jù)與定義新數(shù)據(jù)類型,與具體的程序設(shè)計語言無關(guān)

10. 以太網(wǎng)是一種使用的最廣泛的局域網(wǎng),下面是關(guān)于以太網(wǎng)的敘述,

以太網(wǎng)的節(jié)點每次只能發(fā)送一幀信息

以太網(wǎng)中的每個節(jié)點都有一個唯一的地址,發(fā)送每一幀信息時,必須包含自己的地址和接收節(jié)點的地址,該地址就是IP地址

以太網(wǎng)的數(shù)據(jù)傳輸速率為10Mbps—100Mbps,甚至更快

以太網(wǎng)大多使用集線器組網(wǎng),網(wǎng)絡(luò)中每一個節(jié)點通過網(wǎng)卡和雙絞線與集線器連接

正確的是_________(10)______

A.    B.   C.     D

11.廣域網(wǎng)是一種跨越很廣的的計算機網(wǎng)絡(luò),下面關(guān)于廣域網(wǎng)的敘述中,正確的是______(11)_____

A.廣域網(wǎng)是一種公用計算機網(wǎng),所有計算機都可無條件的接入廣域網(wǎng)

B.廣域網(wǎng)使用專門的通信線路,數(shù)據(jù)傳輸更高

C.廣域網(wǎng)能連接任意多的計算機,也能將相距任意距離的計算機互相連接起來

D.廣域網(wǎng)像很多局域網(wǎng)一樣按廣播方式通信

12.能將異構(gòu)的計算機網(wǎng)絡(luò)互相連接起來的基本設(shè)備是________(12)________

A.中繼器   B.路由器     C.集線器   D.調(diào)制解調(diào)器

13.以下關(guān)于因特網(wǎng)提供的服務(wù),錯誤的是_______(13)______

A.電子郵件必須要有郵件服務(wù)器才能使用,郵件服務(wù)器程序包括SMTP協(xié)議與POP3協(xié)議

BWeb服務(wù)器中的網(wǎng)頁采用的是http超文本傳輸協(xié)議傳輸

C.把網(wǎng)絡(luò)上一臺計算機中的文件移動到另外一臺計算機中,稱為遠程文件傳輸,簡稱mailto

D.遠程登錄的含義是用戶可以把自己的機器作為一個終端,通過因特網(wǎng)連接到遠程的計算機上,就可以使用這臺計算機了,使用的協(xié)議是Telnet

14.下面對漢字編碼標(biāo)準(zhǔn)敘述錯誤的是______(14)_____

A.采用GB2313,GBK,GB18030三種不同的漢字編碼標(biāo)準(zhǔn)時,一些常用的漢字如,等,它們在計算機中的表示(內(nèi)碼)都是相同的

B.GB2312GBK主要在我國大陸使用,而臺灣、香港地區(qū)使用的是BIG5漢字編碼

C.GBK漢字編碼比GB2312的漢字多,已經(jīng)得到了較好的應(yīng)用,微軟公司的Windows操作系統(tǒng)均支持GBK編碼

D.Unicode是包含的漢字比GB18030的漢字多

15.下面關(guān)于圖像壓縮編碼的敘述中,錯誤的是_____(15)_____

A.圖像壓縮編碼的目的是為了節(jié)省壓縮容量和減少在網(wǎng)絡(luò)上的傳輸時間

B.圖像數(shù)據(jù)壓縮都是有損的,重建的圖像與原始圖像不會相同

C.大多數(shù)圖像文件都對圖像進行了壓縮編碼

D.GIFJPEG是常用的兩種文件格式,Gif圖像是無損壓縮,JPEG圖像是有損壓縮

16.下面關(guān)于計算機輸入輸出聲音信息的敘述中,錯誤的是_____(16)_____

A.聲卡的主要功能是實現(xiàn)波形聲音和MIDI聲音的輸入和輸出

B.無論是波形聲音還是MIDI聲音的輸入,都需要使用麥克風(fēng)

C. 無論是波形聲音還是MIDI聲音的輸出,都需要使用揚聲器

D.波形聲音和MIDI聲音可以混合在一起進行輸出

17.數(shù)字視頻信息的數(shù)據(jù)量很大,目前DVD光盤上存儲的數(shù)字視頻應(yīng)用存儲的數(shù)字視頻采用的壓縮編碼標(biāo)準(zhǔn)是____(17)________

A.MPEG-1      B.MPEG-2        C.MPEG-4         DMPEG-7

18.用結(jié)構(gòu)化生命周期方法進行信息系統(tǒng)開發(fā),一般經(jīng)過五個階段,其正確順序為____(18)__

A.系統(tǒng)分析,系統(tǒng)規(guī)劃,系統(tǒng)設(shè)計,系統(tǒng)實施,系統(tǒng)維護

B. 系統(tǒng)規(guī)劃,系統(tǒng)分析,系統(tǒng)設(shè)計,系統(tǒng)實施,系統(tǒng)維護

C. 系統(tǒng)分析,系統(tǒng)規(guī)劃,系統(tǒng)設(shè)計,系統(tǒng)維護,系統(tǒng)實施

D. 系統(tǒng)分析,系統(tǒng)設(shè)計,系統(tǒng)規(guī)劃,系統(tǒng)實施,系統(tǒng)維護

19. 在下列有關(guān)Microsoft Office 2000的應(yīng)用程序功能的敘述中,正確的是___(19)____。

A.WordExcel編輯的文檔均可以另存為HTML語言

B.Word可以直接讀取Excel文檔(.xls),且Excel可以直接讀取Word文檔(.doc

C.WordExcel均支持表格的自動填充功能

D.用戶不能利用“剪切板”功能在WordExcel編輯的文檔之間進行交換數(shù)據(jù)

20在使用Microsoft Word 97/2000編輯文檔時,如果需要打印當(dāng)前文檔的第4、6-8頁,則應(yīng)___(20)_____,然后在出現(xiàn)的對話框中設(shè)置需打印的頁碼。

A.使用菜單命令“文件/打印”

B.單擊“常用”工具欄上的“打印”按鈕

C.按鍵盤上的PrtSc(PrintScreen)

D.按組合鍵ALT+PrtSc(PrintScreen)

C語言部分

21.在定義任何一個函數(shù)時,下列選項中,______________是不可缺少的

A.函數(shù)名之前的數(shù)據(jù)類型  B.函數(shù)名之后的一對圓括號  C.形式參數(shù)聲明  D.函數(shù)體內(nèi)的語句

22.已知某程序如下:

 float  p=1.5;

 #define p 2.5

 main()

     {printf("%f",p);}

    main函數(shù)中標(biāo)識符P代表的操作數(shù)是(22)  。

    Afloat型變量  Bdouble型變量    Cfloat型常量   Ddouble型常量

23.已有聲明"int s[2][3]",以下選項中(23)正確地引用了數(shù)組S中的基本元素。

  AS[1>2][!1]   BS[2][0]    CS[1]    DS

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

    struct person

    {   int num;

        char name[20]sex;

       strrut{int classchar prof[20];}in

    }a={20,"Li ning",'M',{5,"computer"}},*P=&a;

    下列語句中正確的是(24)

    Aprintf("%s"a->name);    Bprintf("%s"P->inprof);

    Cprintf("%s",*pname);   Dprintf("  Ctr P->in->prof)

25.若有以下程序:

    int x

    int f(int Y)

    {return 標(biāo)識符;}   

    #include<stdioh>

    int w

    main()

    {int z=2;f(z);…}

  則在函數(shù)freturn語句后允許出現(xiàn)的標(biāo)識符是  (25)  。

  Axw    Bxy    Czw    DNULL

26.邏輯"異或"運算可描述為"a xor b",其中ab為參加運算的兩個操作數(shù),運算結(jié)果為當(dāng)

  且僅當(dāng)a、b兩個操作數(shù)中只有一個為真時才為真,其他情況下均為假。以下表達式中

    (26)可以正確表示邏輯"異或"運算。

  Aa||b             Ba&&b

  C(a&&b)&&!(a||b)  D(a||b)&&!(a&&b)

27.若有聲明"int a [5]*b=a,(*c)[3],*d[3]",則在以下表達式中有語法錯誤的是

    (27)   

  Aa[0]=0    Bb[0]=0    Cc[O]=0 Dd[0]=0

28.若有聲明:

    int k,a,b;  

    unsigned long y=5;

    double x=1.23;

  則以下表達式中正確的是(28)  。

  Ax%(-5)               Bx=y[6]

  Ck=(a=lb=2,&a+&b)  Da+=a-=(b=2)*(a=3)

29.以下跳轉(zhuǎn)語句中,只有 (29)  可以選擇不唯一的跳轉(zhuǎn)目的地。

  Acontinue;    Bbreak;    Cgoto標(biāo)識符;    Dreturn

30.在缺省情況下,標(biāo)準(zhǔn)C的編譯系統(tǒng)中預(yù)定義的標(biāo)準(zhǔn)輸出流stdout直接連接的設(shè)備是

    (30)  。

  A.軟盤    B.硬盤    C.鍵盤  D.顯示器

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

●基本概念題(5)

1.在聲明變量時,類型修飾符unsigned一般用于修飾基本類型中的int____(1)_________。

2.已知某程序中有如下片段:

    int ifloat f;

    /*P的聲明*/

    P=&i;P=&f;

  若要保證該段程序沒有任何語法錯誤,P應(yīng)當(dāng)聲明為(  2  ) 

3.已有聲明"float x;double yint a;long bchat c;",則表達式x+y*a/x+b/y+c值的類型為(3)

4.系統(tǒng)庫函數(shù)scanfgets在被調(diào)用執(zhí)行時都可以讀取從鍵盤輸入的一串?dāng)?shù)字字符,其中函數(shù)

    (4)具有將讀取的數(shù)字字符串轉(zhuǎn)換為整型數(shù)的功能。

5.在文件中,以符號常量EOF作為文本文件(字符流文件)的結(jié)束標(biāo)記,EOF代表的值是( 5 )

●閱讀程序題(11)

6.以下程序運行時輸出結(jié)果是(  6  )  。

    #define PT 314 

    #define S(x)  PT*x*x

    main()   

    {int a=2;

      printf("%4.1f",6.28/S(a))

    }

7.已知int型變量的存儲字節(jié)數(shù)為2,以下程序運行時輸出結(jié)果是( 7  )。

    #include<stdioh>

    main()

    {int a=3,b=2,c=7,d=6,e=8;

     long f=a*10000+b*1000+c*100+d*10+e;

     printf("%ld",f);

    }

8.以下程序運行時輸出結(jié)果是(  8  ) 

    #include<stdioh>

    main()

    {char *P="student";

    if(P=="student")

      printf("yes"); 

    else

      printf("no");

    }  

9.以下程序運行時輸出結(jié)果是(  9  )。

    #include<ctype.h>

    #include<stdio.h>

    main()

    {char *s="23a4";

     int k=0a=0,b=0;

    do

    {if(isdigit(s[k]))

      {if(s[k]%2==0)

       {a=a+s[k]-'0'

        continue;

       }

       a=a+s[k]-'0';b=b+s[k]-'0';

    }

    }while(s[k+1]&&++k);

      printf("%d,%d,%d\n"k,ab);

    }

10.以下程序運行時輸出結(jié)果是(10) 

    #include<stdioh>

    int f(int a[]int m,int b[]int n,int c[])

    {int i,j,k=0,t

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

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

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

     {t=O;break;}

     if(t) c[k++]=a[i];

    }

      return k

    }

    void main()

    {int x[]={7,23,65,4,1},y[]={5,10,7,98,6},z[10],w,j;

     w=f(x,7,y,6z);

     for(j=0j<w;j++)printf("%d",z[j]);

    }   

11.以下程序運行時輸出結(jié)果是(11)

    void fun(int *p1,int *p2);

    main()

    {int i,a[6]={1,2,3,4,5,6};

     fun(a,a+5);

     for(i=Oi<5;i++) printf("%2d"a[i]);

    }

    void fun(int *pl,int *p2)

    {int t;

     if(pl<p2)   

     { t=*p1,*pl=*p2*p2=t;

       fun(p1+=2,p2-=2);

     }

    }  

12.以下程序運行時輸出結(jié)果的第一行是  ( 12 )  ,第二行是( 13 )。

    void swap(int *a,int *b)

    {int c

     c=*a;  *a=*b;  *b=c;

    }

    main()

    {int i,j,a[3][3]={1,2,3,45,67,89};

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

    for(j=0;j<2-i;j++)

      if(i==j)

        swap(&a[i][j],&a[i+2][j+2]);

      else

        swap(&a[i][j],&a[i+1][j+1]);

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

    { for(j=0j<3;j++)

        printf("%d",a[i][j]);

      printf("\n");

    }

   }

13.以下程序運行時輸出結(jié)果的第一行是  (  14  )  ,第二行是  ( 15 )  ,第三行是(16 )

  提示:函數(shù)int toupper(int ch)的功能是:將小寫字母字符轉(zhuǎn)換為對應(yīng)的大寫字母字符。

    #include<stdio.h>

    #include<ctype.h>

 

    long fun(char *s)

    {long nsign,base=10t;

     for(isspace(*s);s++);

     sign=(*s=='-')?-11

     if(*s=='+'||*s=='-')s++;

    if(*s=='0'&&s++)

     {if(*s=='x||*s=='X')

       {base=16S++;}

      else

        base=8;

     } 

    for(n=0t=1;t&&(isdigit(*s)||isalpha(*s))s++)

    switch(base)

      {case 10if(isdigit(*s)) n=n*base+*s-'0';

                else t=0;

                break

        case 8if(*s>='0'&&*s<='7')n=n*base+*s-'0'

                else t=0

                break;

        defaultif(isdigit(*s))n=n*base+*s-'0'

                 else

                  if(toupper(*s)>='A'&&toupper(*s)<='F')

         n=n*base+toupper(*s)-'A'+lO;  

        else t=0;

    }

    return sign*n

    }

    main()

    {char c1[]="0x1f"c2[]="0409",c3[]="-33a";

     printf("%ld\n%ld\n%ld",fun(c1),fun(c2)fun(c3)); 

    }

●完善程序題(14)

14.程序中函數(shù)double,mycos(double x)的功能是:根據(jù)下列公式計算cos(x)的近似值。

              cos(x)=1-x^2/2!+x^4/4!-x^6/6!+....+(-1)^n*(x^2*n/(2*n)!)

  精度要求:當(dāng)通項的絕對值小于等于10^-6時為止。

    #include<stdio.h>

    #include<  ____(17)____________>   

    double mycos(double x)   

    {int n=1

     double sum=0,term=1.0;

     while( ___(18)_________ >=le-6)

     {sum+=term;

      term*= ___(19)_________ ;

      n=n+2

     }

       return sum;

    }   

    main()

    {double x

     scanf("%lf",&x);

     printf("fx(%f)=%f,%f\n"x,mycos(x),cos(x));

    }

15main函數(shù)內(nèi)結(jié)構(gòu)數(shù)組P中的元素已按結(jié)構(gòu)成員index的值升序排列。以下程序先在P中插入s1s2兩組數(shù)據(jù),再將數(shù)組的所有元素輸出。要求插入數(shù)據(jù)后數(shù)組p中的元素仍按 結(jié)構(gòu)成員index的值升序排列。

    #include<stdioh>

    typedef struct s

    {int index;

    char text[10];

    }T

    int inserttv(T *p,T s,int n)

    {int kj;

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

      if(      20        )>sindex)

      {for(j=n;j>k;j--)p[j]=p[j1]

       break;

      }

    (        21          )    =s;

    return n+1;

    }

    main()

    {int n

     T p[8]={{0,"a",}{5,"t",}{10,"e",},{15,"r"}};

     T s1={3,"f"},s2={16"s"},*q

     n=inserttv(p,s2  __________(22)__________ );

     for(q=pq<p+n;q++)printf("%d%s\n",q->indexq->text);

    }

16.以下程序的功能是:查找所有滿足以下條件的兩個整數(shù)對:(1)兩個整數(shù)都是3位數(shù);(2)

  組成兩個整數(shù)各位的數(shù)字各不相同并且不出現(xiàn)數(shù)字O(3)第二個數(shù)等于第一個數(shù)的兩

  倍。例如,134268就是滿足該條件的一個整數(shù)對。

    main()

    {int a,bc,j,k,ws[6],sum;

     for(a=1;a<=5;a++)    /*a百位,b十位,c個位*/

        for(b=1b<=9;b++)

           for(c=1c<=9;c++)

             {s[o]=a;s[1]=b;s[2]=c;

              sum= ____(23)_________ 

              sum=2*sum;

              if(sum>999) continue

              s[3]= ______(24)_____________ ;

              s[4]=(sum-s[3]*100)/10;

   s[5]=sum%10;

    _____(25)___________________

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

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

        if(s[k]==0||j!=k&& ___(26)____________  w=0;

    if(w)

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

          printf("%d%d%d\n",s[k*3],s[k*3+1]s[k*3+2]);

      }

    }

17.設(shè)有一個線性單鏈表的結(jié)點定義如下:

    struct node

    {int d

     struct node next;

    }; 

函數(shù)int copy_dellist(struct node *headint x[])的功能是:將head指向的單鏈表中存儲的所有

整數(shù)從小到大依次復(fù)制到x指向的整型數(shù)組中并撤消該鏈表;函數(shù)返回復(fù)制到x數(shù)組中的整

數(shù)個數(shù)。算法:找出鏈表中數(shù)值最小的結(jié)點,將其值存儲到x數(shù)組中,再將該結(jié)點從鏈表中刪

除,重復(fù)以上操作直到鏈表為空為止。

    int copy_dellist(struct node *head,int x[])

    {struct node *pk,*pj*pm,*pn;

     int datak=O;

     while(head!=0)

      {pk=headdata=pk->d;pn=pk

       while(______(27)_______!=0)

       {pj=pk->next;

        if(_____(28)___________<data)

        {data=pj->d;pm=pkpn=pj;}

          pk=pj;

        }

       x[k++]=pn->d   

       if( ___29___________)pm->next=pn->next;

       else head=pn->next

       free(pn);

    }   

    ____(30)__________________

}

 

 

參考答案

1.D2.D3.A4.B5.B6.B7.D8.A9.B10.A11.C12.C13.C14.D15.B16.B17.B18.B19.A20.A

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

(1)char (2)void *p;  (3)double  (4) scanf  (5)-1  (6)8.0   (7)-32768  (8) no  (9)3, 9, 3

(10)2,3,4,1  (11)6,2,4,3,5,1   (12)9   6  3   (13)8  5  2  (14)31  (15)32

(16)-33  (17) math.h  (18)fabs(term)  (19)--x*x/(n*(n+1))  (20)p[k].index  (21)p[k]

(22)inserttv(p,s1,4)  (23)a*100+b*10+c  (24)sum/100  (25)w=1;  (26)s[j]==s[k]

(27)pk->next  (28)pj->d  (29)pn!=head  (30)return k                                     

一:改錯題(20)

題目:

 函數(shù)find_replace的功能是:s1串中查找s2子串,并用s3子串替換找到的所有s2子串,若s1串中沒有出現(xiàn)s2子串,則不做替換并使函數(shù)返回0,否則返回1.

 例如:若s1子串為”This is a test program and a test data.”,s2子串為”test”,s3子串為”actual”,若程序正確,輸出結(jié)果應(yīng)為:”This is a actual program and a actual data.”

含有錯誤的源程序如下:

#include <stdio.h>

#include <string.h>

 

int find_replace(char *s1, char *s2, char  s3)

{

  int i,j,k=0,t=0;

  char temp[80];

  if(*s1='\0' || *s2='\0')

           return t;

  for(i=0;s1[i]!='\0';i++)

  {

    for(j=0,k=0;s1[j]= =s2[k];j++,k++);    /*比較s2是否在s1*/

                   if(s2[k]= ='\0')

                   {

          strcpy(temp, s1[j]);

                     strcpy(&s1[i],s3);

                     i=i+strlen(s3);

                     strcpy(&s1[i],temp);

                     t=1;

                  }

  }

  return t;

}

 

main()

{

  char line[80]="This is a test program and a test data.",

  substr1[10]="test",substr2[10]="actual";

  puts(line);

  if(find_replace(line,substr1,substr2)) puts(line);

  else printf("not found");

}

 

編程題目:

[題目]

1.        編寫函數(shù)int encode(int a[ ][4]),對二維數(shù)組中左下三角的全部元素(包括對角線上的元素)做如下變換:(1)若該元素不是素數(shù)則保持不變(2)若該數(shù)是素數(shù),則用大于它的最小素數(shù)替換該數(shù),函數(shù)返回二維數(shù)組左下三角的元素中素數(shù)的個數(shù)

2.        編寫main函數(shù),聲明一個二維數(shù)組并用以下測試數(shù)據(jù)給二維數(shù)組賦初值。調(diào)用encode函數(shù)對該數(shù)組作變換,將變換后的數(shù)組全部元素(以二維數(shù)組形式)及左下三角元素中素數(shù)的個數(shù)寫入文件myf2.out

測試數(shù)據(jù)                                

3   6   4    7

8   5   9    10

12  19  7    20

4   14   21   23

變換后的數(shù)據(jù)

5   6   4  17

8   7   9  10

12  23  11  20

4  14   21  29

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

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

實現(xiàn)。

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

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

 

改錯題答案:

(1)     int find_replace(char *s1, char *s2, char  s3)

 修改為:int find_replace(char *s1, char *s2, char  *s3)

(2)  if(*s1='\0' || *s2='\0')

      修改為:  if(*s1= ='\0' || *s2= ='\0')

(3) for(j=0,k=0;s1[j]= =s2[k];j++,k++);

     修改為:for(j=i,k=0;s1[j]= =s2[k];j++,k++);

(4) strcpy(temp, s1[j]);

   修改為: strcpy(temp, &s1[j]);

 

編程題答案:

#include <stdio.h>

#include <math.h>

 

int prime(int n)   /*判斷素數(shù)算法*/

{

  int i,k=sqrt(n);

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

           if(n%i==0) return 0;

  return 1;

}

 

int encode(int a[][4])

{

  int i,j,k=0;

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

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

                   if(prime(a[i][j]))

                   {

          while(!prime(a[i][j]+=2));k++;/*求大于它的最小素數(shù)*/

                   }

   return k;

}

 

main()

{

  FILE *fp;

  int a[4][4]={3,6,4,17,8,5,9,10,12,19,7,20,4,14,21,23},i,j,count=0;

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

  {printf("create file myf2.out failed!\n");exit(0);}

  count=encode(a);

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

  {

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

         {fprintf(fp,"%4d",a[i][j]);

     printf("%4d\n",a[i][j]);

         }

         fprintf(fp,"\n");

  }

  fprintf(fp,"count=%4d\n",count);

  fclose(fp);

}