1. <small id="kntrr"><delect id="kntrr"></delect></small>
    2. <sub id="kntrr"></sub>
        1. <form id="kntrr"><listing id="kntrr"></listing></form>
            江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
            2010秋江蘇省二級C++考試真題

                絕密★ 啟用前

            2010年秋

            江蘇省高等學校非計算機專業學生

            計算機基礎知識和應用能力等級考試

            二級試卷

            試卷語種:C++語言

             

              明:

            1.本試卷包括計算機基礎知識部分和程序設計部分,考試時間共12 0分鐘;

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

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

              )和填空題(30)兩種;

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

              擇其中一個你認為正確的答案,用HB鉛筆涂寫在答題卡的相應答題號內。

              每選對一項得1分,不選或選錯不得分;

            5.填空題用答題紙答題。請將答案用藍、黑色鋼筆或圓珠筆填寫在答題紙的

              相應答題號內,每個答案只占一行,不得換行。每填對一個答案得1分,

              不填或填錯不得分;

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

              否填寫正確。

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

              畢清點后,方可離場。

             

            第一部分  計算機基礎知識

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

                A.  現代集成電路使用的半導體材料只能是硅(Si),不能使用其它任何半導體材料

                B.  集成度是指集成電路包含的電子元件數目,可分為SSI、MSI、VLSI

                C.  Moore定律指出,單塊集成電路的集成度平均18--24個月翻一番

                D.  我國第二代身份證中嵌入了集成電路芯片,可以實現電子防偽和數字管理功能

              2.  數據傳輸速率是數據通信中重要的性能指標。Gb/s是數據傳輸速率的計量單位之一,其正確含義是 ___(2)___   。

                A.每秒兆位

                B.每秒千兆位

                C.每秒百兆位

                D.每秒百萬位

              3.  所謂"變號操作"是指將一個整數變成絕對值相同但符號相反的另一個整數。假設使用補碼表示的8位整數x=10010101,則經過變號操作后結果為___(3)___.

                A.01101010

                B.00010101

                C.11101010

                D.01101011

              4.  下列有關PC機主板的敘述中,錯誤的是 ___(4)___   。

                A.  主板的物理尺寸沒有標準,各廠家均可自行定義

                B.  主板上包含芯片組,它是PC機各組成部分相互連接和通信的樞紐

                C.  主板上包含BIOSCMOS芯片

                D.  主板上包含CPU插座、內存條插槽及其它類型的插槽

              5.  下列有關PC機中央處理器(CPU)和內存(內存條)的敘述中,正確的是 __(5)____   .

                A.PC機所采用的CPU都是Intel公司生產的Pentium系列芯片,其它廠商生產的

                CPU都與之不兼容

                B.  目前已有雙核的微處理器(例如Core 2 Duo),但還沒有四核的微處理器

                c.  通常來說,DRAM的速度比SRAM的存取速度慢

                D.  一般來說,一個內存條上僅有一個DRAMSRAM芯片

            6.  下列有關PCI/O總線與I/O接口的敘述中,錯誤的是 __(6)____   .

                A.  目前PC機中協調與管理總線操作的總線控制器包含在主板上的芯片組中

                B.  總線最重要的性能是數據傳輸速率,其單位通常為MB/sGB/s

                C.  SATA接口的數據傳輸速率通常低于USB 2.0的數據傳輸速率

                D.  USB連接器有4個引腳,其中一個引腳連接+5V電源

            7.  下列有關PC機常用I/O設備的敘述中,錯誤的是__(7)____。

                A.  目前臺式機鍵盤通常有一百零幾個按鍵,筆記本電腦的鍵盤有八十幾個按鍵

                B.  目前流行的鼠標是光電鼠標,其與主機的接口有PS/2USB兩種

                C.  寬屏LCD顯示器的寬高比為1691610

                D.  打印速度是打印機的重要性能指標,速度單位通常為dpi

            8.  下列有關PC機外存儲器的敘述中,錯誤的是___(8)___    。

              A.  目前硬盤的盤片大多為3.5、2.51.8英寸,一個硬盤中可有一個或多個盤片

              B.  目前有些u盤可以模擬硬盤和光盤存儲器啟動操作系統

              C.  目前光盤存儲器主要分為CD、DVDBD三種,它們均采用紅外激光進行讀寫

              D.  目前光驅的速率通常用多少倍速表示

            9.  下列有關計算機軟件的敘述中,錯誤的是___(9)___.

              A.  軟件一般是指程序及其相關的數據和文檔資料   

              B.  從軟件的用途考慮,軟件可以分為系統軟件和應用軟件,主要的系統軟件有操作系統、語言處理系統和數據庫管理系統等。   

              C.  從軟件的權益來考慮,軟件可以分為商品軟件、共享軟件和自由軟件,共享軟件和自由軟件均為無版權的免費軟件

              D.Linux是一種系統軟件、自由軟件

            10.到目前以止,Windows系列操作系統已推出多個版本。在下列版本中,最新的Windows

              版本是___(10)___

              A.  Windows7   B.  Windows Me  C.  Windows XP    D.  Windows Vista

            11.下列有關Windows XP操作系統功能的敘述中,錯誤的是___(11)___.

                A.  系統通過"時間片”輪轉策略支持多任務處理 

                B.  系統利用SPOOLing技術進行存儲管理

                C.  在設備管理中引入了緩沖技術,以減少I/O操作的等待時間

                D.  系統支持PnP功能,并按ACPI標準進行電源管理

            12.在因特網中某臺主機的IP地址為20.25.30.8,子網掩碼為255.255.255.0,那么該主機

              的主機號為  ___(12)___  。

              A.  20   B.  25    C.  30   D.  8

            13.局域網中需要傳輸的數據必須預先組織成若干數據幀,每一數據幀的格式如下圖所示:

            上圖中最末部分"?”表示的是___(13)___    。

            發送計算機地址

            目的計算機地址

            編號

            有效載荷

              ?

            A.協議信息

            B.校驗信息

            C.冗余信息

            D.結束標志

            14.目前網絡用戶接入因特網有多種方式,例如ADSL、HFC等。通過HFC接入因特網時采用的網絡是___(14)____。

                A.  有線電話網   B.  有線電視網   C.  無線局域網    D.  移動電話網

            15.下列網絡協議中,直接與電子郵件傳輸相關的網絡協議是___(15)___。

                A.FTP   B.SMTP    C.TELNET     D.NNTP

            16.下列有關計算機中文本與文本處理的敘述中,錯誤的是 ___(16)____ 

                A.  西文字符主要是采用ASCII字符集,基本ASCII字符集共有256個字符

                B.  我國最早采用的漢字字符集是GB2312,包含6000多個漢字和若干個非漢字字符

                C.  無論采用何種方式輸入漢字,在計算機中保存時均采用統一的漢字內碼

                D.  簡單文本和豐富格式文本中字符信息的表示相同,區別在于格式信息的表示

            17.彩色圖像所使用的顏色描述方法稱為顏色模型(即顏色空間)。下列四種顏色模型中,

                彩色噴墨打印機使用的是___(17)___.

                A.  RGB   B.  HSB    C.  YUV    D.  CMYK

             18.文件的擴展名用于標記文件的類型,用戶應該盡可能多地知曉各類文件的擴展名,

                列文件中,屬于數字聲音的文件是______

                A.  ABC.RM

                B.  ABC.WMA

                C.  ABC.MKV

                D.  ABC.SWF

             19.信息系統軟件開發瀑布模型包括系統規劃、系統分析、系統設計、系統實施和系統維

                護等幾個階段。下面各項工作中,屬于系統實施階段的是___(19)___

                A.問題定義

                B.可行性研究

                C.系統測試

                D.繪制E-R

            20.下列有關Micmsoft Word 2003Microsoft Excel 2003軟件的敘述中,錯誤的是___(20)___

                A.  利用Word軟件編輯文檔,可以將其保存為TXT、DOC、RTFHTM格式文件

                B.  利用Word軟件編輯文檔時,可以統計選定文本的字符數

                C.  Excel軟件中,可以打開(導入)TXT、DBF、HTML格式的文件(數據)

                D.  Excel文件可以設置打開權限密碼,但不可以單獨設置修改權限密碼

             

            第二部分  C++語言程序設計

            一、選擇題(用答題卡答題,答案依次填在21--30答題號內)

            21.對于fordowhile循環語句,以下描述正確的是___(21)___。

              A.for語句中的循環體至少執行一次            B.兩個語句中的循環體可能都不執行

              C.do...while語句中的循環體至少執行一次     D.兩個語句中的循環體至少執行一次

            22.設有說明語句;int hh[4]={2,3,4},*p=hh;則以下選項中存在語法錯誤的是___(22)___

              A.p++;    B.hh++;    C.(*p)++; D.(*hh)++

            23.以下說明語句中,不存在語法錯誤的是___(23)___  。

              A.int s=26,this=30;         B.int _s1=25,-s2=100;

              C.int n;cin>>n;int arr[n];  D.char str[]={"I am a student"};

            24.設有語句;int a=10,b=20,c=30;則執行語句;cout<<(a,b,c);其輸出結果是___(24)___

              A.10    B.20    C.30   D.10,20,30

            25.以下關于運算符重載的敘述中,正確的是___(25)___  。

                A.c++已有的任何運算符都可以重載    B.可以重載C++中沒有的運算符

                C.運算符重載時可改變其優先級       D.運算符重載時可改變其實現的功能

            26.設有函數原型說明;float *f(int,float);,則函數f的返回值為___(26)___    .

                A.一個實數    B.指向一個實數的指針  C.該函數的地址 D.指向一個函數的指針

            27.下列有關構造函數的敘述中,不正確的是___(27)___ .

                A.可以定義沒有構造函數的類    B.任何一個類必定有構造函數

                C.類的構造函數可以重載        D.構造函數沒有返回值

            28.下列有關類成員的敘述中,不正確的是___(28)___    。 

                A.當不指定類成員的訪問權限時則為私有成員   B.友元函數可訪問類中的任一成員

                C.指定為public的成員不允許在類外訪問      D.成員函數可訪問類中的任一成員

            29.以下關于類和對象的敘述中,不正確的是___(29)___   .

                A.不同的類可以產生相同類型的對象    B.類是一種類型,它定義了數據和操作

                C.對象是類的實例                    D.任一對象必屬于某一個類

            30.以下關于指針運算的敘述中,不正確的是___(30)___

                A.可以將NULL賦給任一指針變量

                B.兩個同類型的指針變量可進行相等或不等的比較運算

                C.指針變量的值加上整常數n,可使該指針指向當前元素后的第n個元素

                D-指向同一數組的兩個指針變量,在任何情況下,兩指針變量相減都是無意義的

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

            ●基本概念題,5

            1.每一個類均有構造函數和析構函數,這兩個函數中不可以定義為虛函數的是___(1)___  

            2.定義了宏;#define F(x,y,z)  x/y*z

              執行語句;b=F(3+4,2+2,4+4);后變量b的值為___(2)___

            3.函數重載和運算符重載實現的多態性屬于___(3)___多態性.

            4.為使函數不返回任何值,定義函數時應在函數名前加保留字(關鍵字)___(4)___    .

            5.C++存儲類型的四種說明符分別是;auto,static,extern___(5)___   。

            ●閱讀程序題,13

            6.[程序]  (2)

              #include <iostream.h>

              void main(void)

              {

                int c2,c3,c5,m=20;

                c2=c3=c5=0;

                for(int i=1;i<=m;i++){

                  if(i==15 || i==14)continue;

                if(i%2==0) c2++;

                if(i%3==0) c3++;

                if(i%7==0) c5++;

                }

                cout<<c2<<endl<<c3<<endl<<c5<<endl;

               }   

                執行程序后輸出的第一行是___(6)___,  第三行是___(7)___

            7.[程序]  (2)

              #include<iostream.h>

              int f(int a,int &b,int *c)

              {

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

                return  (a+b+*c);

              }

              void main(void)

              {

                int x=5,y=5,z=6,sum;

                for(int i=0;i<2;i++){

                  sum=f(x,y,&z);

                  cout<<x<<'\t'<<y<<'\t'<<z<<'\t'<<sum<<'\n';

                }

              }

                執行程序后輸出的第一行是___(8)___,第二行是___(9)___。

            8.[程序]  (2)

              #include <iostream.h>

              void f(int s[],int *y)

              {

                static int t=3;

                *y=s[t];

                s[t]*=2;

                t--;

              }

              void main(void)

              {

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

                int x=0;

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

                  f(a,&x);

                  cout<<x<<endl;

                }

                for(i=0;i<4;i++) cout<<a[i]<<'\t';

                cout<<'\n';

              }

                執行程序后輸出的第二行為___(10)___,最后一行為 ___(11)___。

            9.[程序](3)

                #include<iostream.h>

                void f(int x,int y)

                {  

                  char res[10]={0};

                  int i=0,rem;

                  do{

                     rem=x%y;

                     x=x/y;

                     if(rem<10) res[i]='0'+rem;else res[i]='A'+rem-10;

                     i++;

                    }while(x!=0);

                    i--;

                    for(;i>=0;i--) cout<<res[i];

                    cout<<endl;

                }

                void main(void)

                {

                  f(23,10);

                  f(45,8);

                  f(50,16);

                }

                執行程序后輸出的第一行是___(12)___,第二行是___(13)___,第三行是___(14)___.

            10.[程序]  (2)

              #include <iostream.h>

              char st[]="Your friend!";

              void f2(int );

              void f1(int i)

              {

                cout<<(st+i)<<endl;

                if(i<3){

                  i+=2;

                  f2(i);

                }

              }

              void f2(int i)

              {

                cout<<st[i]<<endl;

                if(i<3){

                   i+=2;

                   f1(i);

                }

              }

              void main(void)

              {

                int i=0;

                f1(i);

              }

                執行程序后輸出的第一行是___(15)___,第二行是___(16)___.

            11.[程序](2)

              #include<iostream.h>

              class A{

                public:

                    A(char *s){cout<<s<<endl;}

                    A(){ };

                };

                class B:public A{       //L1

                public:

                    B(char *s1,char *s2):A(s1)

                    { cout<<s2<<endl;}

                };

                class C : public A{      //L2

                public:

                    C(char *s1,char *s2):A(s1)

                    {  cout<<s2<<endl;}

                };

                class D:public B,public C{

                public:

                    D(char *s1,char *s2,char *s3,char *s4):B(s1,s2),C(s1,s3)

                    {    cout<<s4<<endl;}

                };

                void main(void)

                {

                   D *ptr= new D("students","study","C++","hard");

                   delete ptr;

                }

                執行程序后共輸出___(17)___.

                若分別將L1行改為;class B : virtual public A{       //L1

                L2行改為:class C:virtual public A{    //L2

                則執行程序后共輸出___(18)___行。

            ●完善程序題,12

            12.以下程序的功能是;從鍵盤上輸入一個大于等于3的整數,將其分解為質因子的乘積并輸

            .例如,輸入50,則輸出;50;2*5*5;輸入45,則輸出;45=3*3*5;輸入37.則出;37=37.

                [程序]  (4)

                #include <iostream.h>

                int prime(int x)  //求大于x的最小質數(素數)

                {

                  int flag=1;

                  x++;

                  while(___(19)___){

                     int i=2;

                     while(i<x){

                       if(___(20)___)break;

                       i++;

                     }

                     if(i<x)x++;else flag=0;

                  }

                return x;

                }

                void f(int n)  //n分解為若干個質數之積

                {

                  int flag=1;

                  int i=2;      //保證i為質數

                  do{

                     while(___(21)___){

                        if(flag==1){

                            cout<<i;

                            flag=0;

                        }

                        else cout<<'*'<<i;

                        n=n/i;

                     }

                    ___(22)___

                  }while(i<n);

                  if(n!=1)

                    if(flag==1) cout<<n;else cout<<'*'<<n;

                }

                void main(void)

                {

                 int x;

                do{

                 cout<<"請輸入一個整數,若小于3則重輸;";

                 cin>>x;

                }while(x<3);

                cout<<x<<'=';

                f(x);

                cout<<endl;

               }

            13.以下程序的功能是:實現兩個字符串拼接,函數strcat(char *s1,char *s2)先將s1所指向的字符串拷貝到s所指向的動態申請的存儲空間,接著將s2所指向的字符串拼接s所指向的字符串后面,函數返回拼接后的字符串。

                [程序](4)

                #include <iostream.h>

                char *strcat(char *s1,char *s2)

                {

                  char *s,  *p,  *q;

                  int len1=0,len2=0;

                  p=s1;

                  while(*p!='\0'){

                    len1++;

                    p++;

                  }

                  p=s2;

                  while(*p!='\0'){

                    len2++;

                    p++;

                  }

                  s=q=___(23)___ ;

                  p=s1;

                  for(int i=0;i<len1;i++)*q++=*p++;

                  p=s2;

                  while(___(24)___);

                    ___(25)___

                }

                void main(void)

                {

                  char s1[]="visual";

                  char s2[]="is esay";

                  char *s;

                  s=___(26)___;

                  cout<<s<<endl;

                  delete []s;

                }  

            14.下面程序的功能是;將兩個有序鏈表(降序捧序)合并為一個有序鏈表,函數merge(node *h1,node *h2)將由h1h2分別指向的己排序的兩個鏈表,合并為一個依然有序的鏈表。注意;對于數據大小相同的結點,都要保留在合并后的鏈表上。主函數產生兩條已降序排序的鏈表,并輸出合并后鏈表上的數據值.

              例如,原鏈表上各結點的數據依次為;

              h1:15,9,8,7,3

              h2:15,12,10,7,3,2

              合并后得到的新鏈表為;15,15,12,  10,9,8,7,7,3,3,2

              【程序](4)

              #include<iostream.h>

              struct node{

                int data;

                node*next;

               };

                node *merge(node *h1,node *h2)

                {

                 if(h1==NULL) return h2;

                 if(h2==NULL) return h1;

                 node *h=NULL;

                 if(___(27)___){

                    h=h1;

                    h1=h1->next;

                 }

                 else{

                     h=h2;

                     h2=h2->next;

                 }

                 node *p=h;

                 while(___(28)___){

                   if(h1->data >=h2->data){

                     p->next=h1;

                     p=h1;

                     h1=h1->next;

                   }

                   else{

                       p->next=h2;

                       p=h2;

                       h2=h2->next;

                   }

                }

                if(h1 !=NULL) ___(29)___;

                else   

                    if(h2!=NULL) p->next=h2;

                return h;

            }

            void main(void)

            {

              node a[5]={{15},{9},{8},{7},{3}};

              node b[6]={{15},{12},{10),{7},{3},{2}};

              node *h,*h1,*h2,*p;

              int i;

              h1=a;

              h2=b;

              for(i=0;i<4;i++) a[i].next=&a[i+1];    //形成a鏈表

              a[4].next=NULL;

              for(i=0;i<5;i++) b[i].next=&b[i+1];  //形成b鏈表

              b[5].next=NULL;

              ___(30)___   ;

              p=h;

              while(p){

                cout<<p->data<<'\t';

                p=p->next;

              }

              cout<<endl;

            }

             

            答案:

            1.A 2.B 3.D 4.A 5.C 6.C 7.D 8.C 9.C 10.A

            11.B 12.D 13.B 14.B 15.B16.A 17.D 18.B 19.C 20.D

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

            :填空

            (1)構造  (2)17  (3)編譯 (4)void (5)register

            (6)9  (7)1 (8)5 11 16 37 (9)5 27 32 75

            (10)3 (11)2 4 6 8 (12)23 (13)55 (14)32 (15)Your friend!

            (16)u (17)5 (18)3 (19)flag (20)x%i==0 (21)n%i==0 (22)i++

            (23)new char[len1+len2+1] (24)*q++=*p++ (25)return s

            (26)strcat(s1,s2) (27)h1->data>h2->data (28)h1!=0 && h2!=0

            (29)p->next=h1  (30)h=merge(h1,h2)

             

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