1. <small id="kntrr"><delect id="kntrr"></delect></small>
    2. <sub id="kntrr"></sub>
        1. <form id="kntrr"><listing id="kntrr"></listing></form>
            江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
            2007年春季江蘇計算機C語言試題

            2007年春江蘇省二級考試(C語言理論試題)

            (本試卷筆試時間為120分鐘)

            說明:

            1.本試卷包括計算機基礎知識部分和程序設計部分。

            2.本試卷滿分為60分,分選擇題和填空題,試卷不分A、B類型。

            3.計算機基礎知識部分全部是選擇題(20),程序設計部分分為選擇題(10)和填空

              (30)兩種。

            4.選擇題用答題卡答題。每一項有A、B、c、D四個可供選擇的答案,請選擇其中一個你認

              正確的答案,用HB鉛筆或2B鉛筆涂寫在答題卡的相應答題號內。每選對一項得1分,

              選或選錯不得分。

            5.填空題用答題紙答題。請將答案用藍色或黑色筆填寫在答題紙的相應答題號內,每個答

              只占一行,不得換行。每填對一個答案得1分,不填或填錯不得分。

            6.請認真填寫并仔細核對答題卡和答題紙上的學校名稱、準考證號和姓名。

            7.考試結束時將試卷、答題卡和答題紙放在桌上,不得帶走。待監考人員收畢清點后,方

              離場。

            第一部分基礎知識

            1.微電子技術是信息技術領域的關鍵技術,它以集成電路(Ic)為核心。下列有關敘述錯誤

              (1)  。

              A.目前Ic芯片(CPU芯片)的集成度可達數千萬個電子元件

              BMoore定律指出,單塊IC的集成度平均每半年翻一番

              c.從原料熔煉到最終產品包裝,IC的制造工序繁多,工藝復雜,技術難度非常高

              D.非接觸式Ic卡采用電磁感應方式無線傳輸數據,所以又稱為射頻卡或感應卡

            2.下列有關通信中使用的傳輸介質的敘述錯誤的是(2)  。

              A.計算機局域網中大多使用無屏蔽雙絞線,其無中繼有效傳輸距離大約100m

              B.同軸電纜可用于傳輸電視信號   

              c.光纖價格高,一般不在校園網和企業網中使用

              D.微波的波長很短,適合于長距離、大容量無線通信

            3.二進制數(1010)與十六進制數(B2)相加,結果為(3)  。

            A (273)8   B  (274)8    C (314)8   D(313)8

            4.設有一段文本由基本ASCII字符和GB2312字符集中的漢字組成,其代碼為B0 A1 57 69 6E D6 DO CE C4 B0 E6,則在這段文本中含有(4)  。

              A1個漢字和9個西文字符    B3個漢字和5個西文字符

            C2個漢字和7個西文字符    D  4個漢字和3個西文字符

            5.下列有關CPU的敘述錯誤的是(5)。

              ACPU的主要組成部分有運算器、控制器和寄存器組

              BCPU的主要功能是執行指令,不同類型CPU的指令系統通常有所不同

              C.為了加快運算速度,CPU中可包含多個算術邏輯部件(ALU)

              D.目前PC機所用的CPU芯片均為Intel公司的產品

            6PC機在加電啟動過程中會運行POST程序、引導程序、系統自舉程序等。若在啟動過程中用戶按某一熱鍵(通常是Del)則可以啟動CMOS設置程序。這些程序運行的順序是(6)   

              APOST程序--CMOS設置程序---系統自舉程序一-引導程序

              BPOST程序--引導程序一-系統自舉程序---CMOS設置程序

              CCMOS設置程序一系統自舉程序_--引導程序--POST程序

              DPOST程序--CMOS設置程序一引導程序---系統自舉程序

            7.目前Pc機一般都有USBFireWire接口,用于連接各種外部設備。下列關于這兩種接口的敘述錯誤的是(7)

              AUSB是一種串行接口,可以連接鍵盤、鼠標器、優盤、數碼相機等多種設備

              BFireWire是一種并行接口,通常用于連接需要高速傳輸大量數量的設備(如音視頻設備)

              CUSB 20的數據傳輸速率是USB 10的數十倍

              D.一個USB接口上可以連接不同的設備    。

            8.下列關于PC機外存儲器的敘述錯誤的是(8)

              A144MB軟盤的每一面有吞0個磁道,每個磁道分為18個扇區,每個扇區512字節

              B.硬盤的主要性能指標之一是平均存取時間,它與硬盤的轉速(rpm)有很大關系。

              c.優盤的缺點是:優盤均無寫保護功能,且不能起到引導操作系統的作用

              DcD-R是目前常用的可記錄式光盤,但其該錄的數據不能修改

            9.下列關于Windows 98XP操作系統的存儲管理功能的敘述錯誤的是.(9) 

              A.存儲管理的功能主要包括內存的分配與回收、共享和保護、自動擴充(虛存的實現)

              B.系統將程序(及其數據)劃分成固定大小的頁面,以頁面為單位進行內存的分配和調度

              c.虛擬存儲器采用的頁面調度算法是先進先出”(FIFO)算法

              D.在Windows 98Windows XP中,虛擬內存其實就是一個磁盤文件,即交換文件

            10.人們常說軟件的主體是程序,程序的核心是算法。下列有關程序、算法和數據結構的敘述錯誤的是.(10)。

                A.程序是用程序設計語言對解題對象和解題步驟進行的一種描述

                B.算法和數據結構是設計與編寫程序時首先要考慮的兩個重要方面

                c.算法是問題求解規則的一種過程描述,它必須有輸入,但可以沒有輸出

                D.數據結構主要是研究數據的邏輯結構、存儲結構以及在這些數據上定義的運算

            11.下列關于局域網的敘述錯誤的是(11)  。

                A.光纖分布式數字接口網(FDDI)常用于構造局域網的主干部分    。

                B.采用紅外線或者無線電波進行數據通信,可以構造無線局域網

                C.兩個或多個局域網可以進行互連

                D.所有的局域網均為以太網

            12·下列有關IP地址、域名和URL的敘述錯誤的是(12)  。

                目前互聯網中IP地址大多數使用4個字節(32個二進位)表示

                使用CIP地址的網絡規摸最大,一少c類物理網絡可以擁有上千萬臺主機

              C.一臺主機通常只能有一個IP地址,但可以有多個域名

              D·URL用來標識WWW網中的每一個信息資源,不同的信息資源對應不同的URL

            13·TCPIP協議棧的應用層包括了各種高層協議,其中用于實現網絡主機域名到IP地址映射的是(13)  。

            ADNS    BSMTP  C .FTP    D.Telnet

            14·ADSL是一種寬帶接入技術,在線路兩端加裝ADSL MODEM即可實現連網。下列關于  ADsL的敘述錯誤的是(14)    I

              A.它利用普通銅質電話線作為傳輸介質,成本較低  

              B.在上網的同時,還可以接聽和撥打電話,幾乎互不影響   

              從實現的技術上來看,數據的上傳速度比數據的下載速度快  

              D.利用ADSL技術上網的用戶,其PC機必須安裝以太網卡   

            15·目前PC機使用的字符集及其編碼標準有多種,20多年來我國也頒布了多個漢字編碼標準。在下列漢字編碼標準中,不支持簡體漢字的是(15)  。    I

            AGB2312    BGBK    CBIG5  D. GB18030

             

            16.下列有關數字圖像的壓縮編碼和圖像文件格式的敘述錯誤的是  (16)  。

              圖像壓縮的出發點是圖像中的數據相關性很強,且人眼的視覺有一定的局限性

              壓縮編碼方法的優劣主要是看壓縮倍數、重建圖像的質量和壓縮算法的復雜度等

              CJPEG圖像的壓縮倍數是可以控制的,且大多為無損壓縮

              D·GIF格式的圖像能夠支持透明背景,且具有在屏幕上漸進顯示的功能

            17.下列有關MIDI音樂的敘述錯誤的是(17 )

                A·MIDI是一種音樂描述語言,它規定了樂譜的數字表示方法

                B·MIDI音樂的文件擴展名為MIDMIDI

                C·MIDI音樂可以使用Windows中的媒體播放器等軟件進行播放

                播放MIDI音樂時,聲音是通過音箱合成出來的

            18.下列有關中文版Windows 982000xP操作系統功能與操作的敘述錯誤的是  (18)  。

              A·“五筆字型漢字輸入法是Windows內置的輸入法之一

              畫圖軟件中畫圓和正方形時,可在按Shift鍵的同時用鼠標拖放操作

              資源管理器’’窗口中,按Ctrl鍵的同時用鼠標單擊文件,可以實現該文件的反向選定

              作為虛擬存儲器使用的()交換文件可以設置在不同的邏輯硬盤上

            19·下列有關Microsoft Word 9720002003功能和操作的敘述錯誤的是  (19)  。

              A·Word文檔可以分別設置打開文件時的密碼和修改文件時的密碼

              頁邊距的計量單位可以設置為磅、英寸和厘米等

              可以將選中的英文統一設置為小寫,或大寫,或詞首字母大寫,或句首字母大寫等

              利用工具欄上的格式刷,可以復制字體的格式,但不能復制段落的格式

            20.下列有關Microsoft  PowerPoint 9720002003功能和操作的敘述錯誤的是  (20)  。

              APowerPoint文件可以另存為網頁文件

              B.演示文稿可以按講義方打印,且一張紙(A4規格)可以打印多達69張投影爿

              c.演示文稿的放映方式可以設置為循環放映

              D.演示文稿中可以插入聲音文件,但不可以錄制旁白

             

            一、選擇題(10分)

            21、以下關于C語言源程序的敘述中,錯誤的是_____。

            A.一個C語言源程序由若干個函數定義組成,其中必須有且僅有一個名為main的函數定義

            B.函數定義由函數頭部和函數體兩部分組成

            C.在一個函數定義的函數體中允許定義另一個函數

            D.在一個函數定義的函數體中允許調用另一個函數或調用函數本身

            22、以下表示中,不能用作C語言常量表示的是____。

            A0UL   B.(long123      C1e0      D’\x2a

            23、以下標識符中,不能用作變量名或自定義函數名的是___。

            Amain      Bscanf         C_float       Dsizeof

            24、以下表示數學式“a<B<C”的邏輯表達式中,錯誤的是____。< P>

            Aa<b<c                              Ba<b && b<c

            C!(a>=b)&&!(b>=c)                 D!(a>=b||b>=c)

            25.以下程序運行后的輸出結果是____。

            A2   2           B7   2        C7   5         D6   2

            main()

            { char a[7]=”a0\0a0\0”;  int i,j;

              i=sizeof(a);   j=strlen(a);

              printf(“%d  %d”,i,j);

            }

            26.下面關于循環語句for、while、do_while的敘述中,正確的是____。

            A.三種循環語句的循環體都必須放入一對花括號中

            B.三種循環語句中都可以缺省循環終止條件表達式

            C.三種循環語句的循環體都至少被無條件地執行一次

            D.三種循環語句都可能出現無窮循環

            27.以下程序段中,有語法錯誤的是____。

            Afun(char aa[10])

               { while(*aa) printf(“%c”,*aa++); }

            Bfun( char *aa)

               { while(aa[0]) printf(“%c”,*aa++); }

            Cmain()

               { char *aa=”Hello!”;

            while(*aa) printf(“%c”,*aa++);

            }

            Dmain()

               { char aa[10]=”Hello!”;

            while(*aa) printf(“%c”,*aa++);

            }

            28.若有聲明“int a[ ]={1,2,3,4},*p,i;”,則以下程序段中不能輸出13的是_____。

            Afor(i=0;i<4;i+=2) printf(“%d”,a[i]);

            Bfor(p=0;p<4;p+=2) printf(“%d”,a[p]);

            Cfor(p=a;p<a+4;p+=2) printf(“%d”,*p);

            Dfor(p=a,i=0;i<4;i+=2) printf(“%d”,p[i]);

            29.若有如下的類型定義和變量聲明,則在給出的選項中值不為7的表達式是____。

            Aptr->a          B(++ptr)->a          Cx[1].a       Dx[0].b->a

            struct ss

              { int a; struct  ss  *b;} x[3]={{5,&x[1]},{7,&x[2]},{9,0}},*ptr=&x[0]; 

            30.若需要對一個數據文件abc.txt 中的數據做加密處理并且限定只能做一次打開文件操作,則在“fp=fopen(“abc.txt”,模式字符串);中,模式字符串應當是____。

            A”w+”           B”r+”            C”a+”          D”r”

            二、填空題(共30分)

            1.在聲明局部變量時,不能使用的存儲類別標識符是__( 1 )__。

            2.與整型數學算式  等價的C語言表達式是__ _( 2 ) __。

            3.在以下程序的main函數中,語句"fun(x,10);"內的實參x表示數組x__(3 ) ___。

            void fun(int a[10],int n)

            {int i; for(i=0;i<n;i++)   a[i]++;}

            main()

            {int x[10]={0}; fun(x,10); }

            4.已知程序中有聲明“int a; long b;”,若需要接收從鍵盤輸入的電話號碼字符串(010)64782656(其中010為區號,64782656是電話號碼)并將其中的區號、電話號碼分別存儲到變量a,b中,則實現該功能的輸入語句為"scanf("___( 4 )____",&a,&b);"。

            5.若要使表達式p="jiangsu"無任何錯誤(包括語法錯誤和警告錯誤),p的聲明形式應為__( 5 )_____。

            閱讀程序(13分)

            6.以下程序運行后輸出結果為__(  6  )____。

            #include "stdio.h"

            int m(int a)

            {static int s;

             return(++s)+(--a);

             }

            void main()

            {int a=2;

             printf("%d",m(m(a)));

            }

             

            7.以下程序運行后輸出結果為___(  7 )___。

            #include "stdio.h"

            enum days{ mon=1,tue,wed,thu,fri,sat,sun}today=tue;

            void main()

            {printf("%d",(today+2)%7);}

             

            8.以下程序運行后輸出結果為___(  8  )____。

            #include "stdio.h"

            int mystery(int a,int b)

            {if(b==1)  return a;

             else return  a+mystery(a,b-1);

            }

            void main()

            {int x=5,y=3;

             printf("%d\n",mystery(x,y));

            }

             

            9.以下程序運行后輸出結果中第一行為____( 9)____,第二行為____( 10 )____。

            #include "stdio.h"

            void main()

            {int i=5;

             do

             {switch(i%2)

              {case 0: i--; break;

               case 1: i--; continue;

               }

              i--;

              printf("%d\n",i);

              }while(i>0);

            }

            10.以下程序運行后輸出結果中第一行為_____(11)___,第二行為______(12)___ _。

            #include

            int fun(int a[],int n,int b[])

            {int i=0,j,m=0,c,x;

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

             {x=a[i]; c=1;

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

                if(a[j]==x)  c++;

                else {i=j-1; break; }

              if(j>=n) i=j;

              if(c==1)  b[m++]=x;

              else  {b[m++]=-c;  b[m++]=x;  }

             }

             return m;

            }

            void main()

            {int x[]={4,4,4,4,4,4,4,4,1,2},y[10],i,j,n=10;

            n=fun(x,n,y);

            for(i=0;i<N;I++)

             {if(i%2==0)  printf("\n");

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

              }

            }

            11.以下程序運行后輸出結果中第一行為____( 13 )__________,第二行為____( 14 )_____,

            第三行為____( 15 )___________。

            #include "stdio.h"

            #define N 3

            main()

            {int a[N][N],b[N*N]={1,1},i,j;

             for(i=2;i<N*N;i++)

              b[i]=b[i-1]+b[i-2];

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

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

                a[j][i]=b[i*N+j];

             for(i=0;i<N;I++)

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

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

               printf("\n");

              }

            }

            12.以下程序運行后輸出結果中第一行為__(16)_,第二行為__(17)____,第三行為_(18)____。

            #include "stdio.h"

            #include "stdlib.h"

            struct node

            {char data; struct node *next; };

            struct node *insert(struct node *h,char c)

            {struct node *p,*p1,*p2;

             p=(struct node *)malloc(sizeof(struct node));

             p->data=c; p->next=NULL;

             if(h==NULL) h=p;

             else

             {p1=p2=h;

              while(c>p1->data&&p1->next!=NULL)

              {p2=p1;p1=p1->next; }

              if(c<=p1->data)

               if(p1==h)  {p->next=h; h=p; }

               else {p2->next=p; p->next=p1;  }

              else

              {p1->next=p; }

             }

             return h;

            }

            struct node *del(struct node *h)

            {struct node *p=h;

             while(p!=NULL)

             {if(p->data%2==0) p->next=p->next->next;

              p=p->next;

             }

             return h;

            }

            void print(struct node *h)

            {struct node *p=h;

             while(p!=NULL)

             {printf("%c",p->data);  p=p->next; }

             printf("\n");

            }

            void main()

            { struct node *head=NULL;

              char *item="32659",*p=item;

              puts(item);

              while(*p)  head=insert(head,*p++);

              print(head);  del(head); print(head);

            }

             

            完善程序(12分)

            13.以下程序的功能是:用簡單迭代法求方程cos(x)-x=0在區間(0,1)上的一個近似實根。迭代公式為:xn+1=cos(xn),(n=0,1,2,...),當xn+1-xn的絕對值小于1e-6時,xn+1即是方程cos(x)-x=0x0附近的一個誤差小于1e-6的近似實根(此根的近似值是0.7391)。

            #include

            #include

            float root(float x0)

            {float x1;    _____( 19 )________;

             do

             { x0=x1;

               x1=cos(x0);

             }while(____20___________);   

             return x1;

            }

            void main()

            {float x;

             x=__(   21   )__;

             printf("x=%f,cos(%f)-%f=%f",x,x,x,cos(x)-x);

            }

            14.以下程序的功能是找到具有這樣特性的正整數A:若將A的個位數p移到首位,所得到的數為原數的p倍。例如,將102564的個數4移到首位得到410256,而410256=102564*4,因此數102564具有此特性。對于p=2,3,4,5,6,7,8,9均存在具有此特性的整數。但除本例外,其余數的倍數均超過12,不能用普通整型數表示,但可用類似手算的方法找到它們。

            函數int serch(int p)的功能是:找到末位數是p且具有上述特性的正整數A,以十進制形式將A保存到數組a中,每個數組元素保存A的一位數(個位數p保存在a[0]中,十位數保存在a[1]中,百位數保存在a[2]中,其他位依次類推)。

            算法提示:(1)將p保存到a[0],將a[0]a[1]的進位值置為0;

                      2)對于i=1,2,3,....,計算“a[i-1]*p+a[i-1]a[i]的進位值得到t,若t=pA已找到,否則將t 的個位數保存到a[i],t的十位數作為a[i]a[i+1]的進位值。

            #include

            #define N 60

            int a[N];

            int search(int p)

            {int i,t,c=0;

             a[0]=____( 22 )____;           

             for(i=1;;i++)

             {t=__( 23 )___________;                  

              if(t==p) break;

              a[i]=t%10; c=t/10;

              }

              return i;

            }

            void main()

            {int p,i,n;

             scanf("%d",&p);

             n=search(p);

             printf("p=%d; A=",p);

             for(i=__( 24 )______;i>=0;i--)               

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

            }

             

            15.以下程序的功能是:main函數通過調用fun1函數將數組S4個元素中大于等于平均值的那些數保存到a數組,小于平均值的那些數保存到b數組,變量n、m分別保存a數組和b數組中數據的個數。輸出數組S中數據的平均值和a、數組中的數據。

            #include"stdio.h"

            #deine N 4

            double fun1(int *x,int *y,int *z,int *n,int *m)

            {int i;

             double av=0;

            ___( 25 )__________;                 

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

            _____(26)__________;               

            av/=N;

            for(i=0;i<N;I++)

            if(__27_____)                     

            {y[*n]=x[i];  (*n)++;  }

            else

             {z[*m]=x[i];  (*m)++;  }

             return av;

            }

            void main()

            {int S[N]={60,80,50,90},a[N]={0},b[N]={0},t,i,j,m,n; double ave;

             ave=fun1(S,a,b,&n,&m);

             printf("%f\n",ave);

             for(i=0;i<n;i++)   printf(“%3d”,a[i]);

             printf("\n");

             for(i=0;i<m;i++) printf(?%3d?,b[i]);

            }

            16.以下程序的功能是:在不改變a數組中數據存儲位置的前提下,按a數組第一列元素的值從大到小依次輸出a數組的各行元素。實現算法:將a數組每行第一個元素的值和地址依次保存到index結構數組相應元素的成員xy中,對index 數組按成員x的值從大到小排序,依次輸出index數組每個元素的成員y指向的a數組中一行的全部元素的值。

            #include <stdio.h>

            struct link

            {int x,*y; }

            void main()

            { int a[ ][3]={{20,40,30},{30,10,20},{40,50,30},{60,60,30}},i,j,k,*p;

              struct link index[4]={0},tmp;

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

             { index[i].y=__( 28 )______;                

               index[i].x=a[i][0];

              }

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

              {k=i;

              for(j=i+1;j<4;j++)

               if(__( 29 )_____) k=j;                    

              if(k!=i) {tmp=index[i];index[i]=index[k];index[k]=tmp; }

              }

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

              {p=index[i].y;

               printf("\n");

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

                 printf("%3d",______( 30 )_____);             }

            }

             

            国产在线精品一区二区三区不卡_亚洲第一极品精品无码_永久免费无码网站在线观看_亚洲av综合日韩