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

            江蘇省高等學校計算機等級考試
            二級Visual C++考試(樣卷)
            (本試卷完成時間  120分鐘)

             

            本套試卷的視頻講解見:http://school.njwww.net/kecheng/detail_921575


            第一部分  計算機信息技術基礎知識
            選擇題(共20分,每題2分)
            1.下列關于數字技術與微電子技術的敘述中,錯誤的是______ 。
            A.數字技術的處理對象是"比特",一個觸發器可以存儲2個比特
            B.在數據通信時,遠距離傳輸或者無線傳輸時需要用比特對載波進行
            C.現代集成電路使用的半導體材料主要是硅
            D.我國第2代居民身份證中使用了非接觸式IC芯片
            2.下列關于臺式PC芯片組的敘述中,錯誤的是______ 。
            A.芯片組是主板上最為重要的部件之一,存儲器控制、I/O控制等功能主要由芯片組實現
            B.芯片組與CPU同步發展,有什么樣功能和速度的CPU,就需要使用什么樣的芯片組
            C.芯片組決定了主板上能安裝的內存最大容量及可使用的內存條類型
            D.同CPU一樣,用戶可以很方便、很簡單地更換主板上的芯片組
            3.下列關于I/O設備的敘述中,錯誤的是______。
            A.目前平板電腦、智能手機的觸摸屏大多為"多點觸摸屏",可同時感知屏幕上的多個觸控點
            B.掃描儀可分為手持式、平板式和滾筒式等類型,目前普通家用/辦公用掃描儀大多為滾筒式
            C.目前一些型號的數碼相機已具有拍攝視頻和進行錄音的功能
            D.為了降低成本,目前許多PC采用集成顯卡,其顯示控制器被集成在芯片組中
            4.下列關于PC外存儲器的敘述中,錯誤的是____。
            A.目前PC采用的硬盤,其盤片的直徑通常為3.5英寸、2.5英寸或1.8英寸
            B.U盤和存儲卡都是采用閃爍存儲器制作的,目前其容量大多為幾GB至幾十GB
            C.目前固態硬盤的存儲容量大多為數百GB,但其讀寫速度遠不如傳統硬盤(硬磁盤)
            D.藍光光盤是目前最先進的大容量光盤,單層盤片的存儲容量可達25GB
            5.下列關于Windows操作系統功能的敘述中,錯誤的是______。
            A.對于多任務處理,系統一般采用按時間片輪轉的策略進行處理器調度
            B.系統采用了虛擬存儲技術進行存儲管理,其頁面調度算法為"最近最少使用"( LRU)算法
            C.系統支持多種文件系統(如FAT32、NTFS、CDFS等)以管理不同的外存儲器
            D.系統支持任何I/O設備的"即插即用"和"熱插拔"
            6.下列關于程序設計語言的敘述中,錯誤的是____。
            A.雖然機器語言不易記憶、機器語言程序難以閱讀和理解,但目前還有很多人使用其編寫程序
            B.匯編語言與計算機的指令系統密切相關,不同類型的計算機,其匯編語言通常不同
            C.VBScript語言是VB的子集,用其編寫的程序可以嵌入在HTML文檔中以擴充網頁的功能
            D.Java語言是一種適用于網絡環境的程序設計語言,目前許多手機軟件就是用Java編寫的
            7.下列關于通信技術的敘述中,錯誤的是______。
            A.調制與解調技術主要用于模擬通信,在數字通信中不需要使用調制與解調技術
            B.使用多路復用技術的主要目的是提高傳輸線路的利用率,降低通信成本
            C.在數據通信中采用分組交換技術,可以動態分配信道資源,提高傳輸效率和質量
            D.數據通信網絡大多采用分組交換技術,但不同類型網絡的數據包格式通常不同
            8.Internet使用TCP/IP協議實現了全球范圍的計算機網絡的互連,連接在
            Internet上的每一臺主機都有一個IP地址。目前使用的是IPv4標準(32位地
            址),下一代互聯網將會采用IPv6標準,其IP地址為____。
                A.48位
                B.64位
                C.96位
                D.128位
            9.下列關于字符編碼標準的敘述中,錯誤的是____。
            A.在ASCII標準中,每個字符采用7位二進制編碼
            B.在絕大多數情況下,GB2312字符集包含的1萬多個漢字足夠使用
            C.Unicode字符集既包含簡體漢字,也包含繁體漢字
            D.中文版Windows XP及其后的Windows系列操作系統均支持國標GB18030
            10.由于采用的壓縮編碼方式及數據組織方式的不同,圖像文件形成了多種不同的文件格式。在下列四種圖像文件中,常用于網頁上發布并可具有動畫
            效果的是    。
            A. BMP
            B.JPEG
            C.GIF
            D. TIF
            參考答案:
            1.A    3.B  2.D    4.C   5.D   6.A   7.A  8.D  9.B  10.C

            第二部分  Visual C++程序設計
                一、選擇題(共10分,每題2分)
                1.設有說明:“char s[100]="my\'s apple. \nyour=\65";”,則strlen(s)
            的值是____。
                A.19    B.24    C.27    D.28
                2.下列有關break和continue語句的敘述中,正確的是____。
                A.前者用于循環語句,后者用于switch語句
                B.前者用于循環語句或switch語句,后者用于循環語句
                C.前者用于switch語句,后者用于循環語句
                D.前者用于循環語句,后者用于循環語句或switch語句
                3.以下關于函數重載的敘述中,正確的是____。
                A.函數名相同,函數的參數個數和參數類型也相同,但函數的返回值的類型不同
                B.函數名相同,函數的參數個數必須不同,對參數類型和函數的返回值的類型沒有限制
                C.函數名相同,函數的參數類型必須不同,對參數個數和函數的返回值的類型沒有限制
                D.函數名相同,函數的參數個數或者參數類型不同,對函數的返回值的類型沒有限制
              4.以下有關類的敘述中,不正確的是____。
              A.類是一組對象的模板
              B.類是數據和函數(方法)的封裝體
              C.在類中定義數據成員時,可直接對數據成員設置初值或賦值
              D.對象是類的實例,類聲明在前,而對象定義在后
              5.以下有關運算符重載的敘述中,正確的是____。
              A.能用成員函數重載的運算符,均能用友元函數重載
              B.能用友元函數重載的運算符,均能用成員函數重載
              C.用成員函數或友元函數重載同一運算符時,兩者的參數類型與個數相同
              D.通過運算符重載,能改變運算符的優先級


            二、填空題(共20分,每空2分)
            1.[程序]
            #include 
            int fun(int x, int &y)
            {  int a=x;
               static int b =10;
               x=a+y; y=b+y; b=y+a;
               return (x++) ;
            }
            void main( void)
            {   int x=1, y=5;
                for(int i=0; i<3; i++) {
                  cout<    }
            }
            執行程序后,輸出的第一行是___(1)___    ,第二行是 ___(2)___


            2.[程序]
            #include
            int *p;
            void fun(int a, int &b)  {
                p=&b;
                a+=*p;   b+=a;
                cout<}
            void main( void)
            {
              int x = 20, y = 30 ;
              fun(x, y) ;
              cout<< x<<'\t'<}
            執行以上程序后,輸出的第一行是___(3)___,第二行是___(4)___.
            3.[程序]
            #include 
            int n1 =O,n2=O,n3=0 ,n4=0;
            class T{
              public :
                T(int a) {    ia = a;   n1++ ;       }
                void print( )    {  cout<    int Getia() {return ia;}
              private :
                int ia;
            };
            class S1 : public T{
                int x;
              public :
                S1(int a,int c) :T(a)     { x=c;   n2++ ;  }
                void printS1( )    {  cout<< Getia( )<<'\t'<};
            class S2 : public T{
                int y;
            public :
                S2(int a) :T(10)   {   y=a;   n3++ ;   }
                void printS2 ( )     { cout<};
            class S : public S1, public S2 {
                int xx;
            public :
                 S ( int a , float b,int c,int d) :S1(a,b) ,S2(c) {     xx = d;    n4 ++ ; }
                 void printS( ) { cout<

            };
            void main( void)
             {    T t1(2) ;     S1 t2(3,4) ;
                 S2 t3(5) ;   S  t4(6,7,8,9) ,  * p;
                 p=&t4;
                 p->printS( );    p->printS1( ) ;    p->printS2( ) ;
                 cout<}
                執行程序后,輸出的第二行是___(5)___ ,第三行是___(6)___ ,第四行是___(7)___    。
            4.[程序]
            #include
            class A{
            public :
                 int x,y;
                 A(int a,int b)
                 {x=a;  y=b;}
                 virtual void display( )  { cout<};


            class B : public A{
              public :
                 int z;
                 B(int a,int b,int c) :A( a,b)    {   z =c; }
                 void display( )  { cout<< x<<'\t'<< y<<'\t'<< z<< endl; }
            };
            class D: public B {
            public :
                 int m;
                 D(int a,int b,int c,int d) :B( a,b,c)   { m = d; }
                 void display( )  { cout<< x<<'\t'<< y<<'\t'<< z<<'\t'<};
            class E :public A{
             public :
                 int n;
                 E(int a,int b,int c) :A( a,b) {n =c;  }
                 void display1( )   { cout<<"E::"<};
            void fun(A * p1)  {
               p1-> display ( ) ;

            }
            void main( void)  -
                    A b0(10,20) , *p;
                    p = &b0;    fun(p) ;
                    B b1(30,40,50) ;
                    D d1( 31,41, 51,61) ;
                    p = &b1;      fun( p) ;
                    p = &d1;      fun( p) ;
                    E e1(100,200 ,300) ;
                    p = &e1;    fun(p) ;
            }

                執行以上程序后,輸出一共___(8)___行,其中第二行是___(9)___,第四行是___(10)___    。

            三、操作題(共50分)
                1.以下程序首先建立一條鏈表,然后按照如下順序刪除鏈表中的結點:以
            鏈表的第一個結點為1號結點開始依次搜索,刪除所有序號為3的倍數的結
            點,即刪除第3、6、9、……個結點,當搜索一遍結束后再從鏈表頭部繼續此操
            作,直到鏈表的結點個數少于3個為止。(10分)
                程序輸出為:

            當前鏈表中的結點依次為:23 12  32  54 74 25  65  94  17  72
            第1輪刪除的結點為:32 25 17
            當前鏈表中的結點依次為:23 12 54 74 65  94 72
            第2輪刪除的結點為:54 94
            當前鏈表中的結點依次為:23 12 74 65 72
            ... ...
            第5輪刪除的結點為:72
            鏈表中剩余的結點為:23  12
            [程序]

            #include 
            struct node {
                int data;
                node *next;
            };
            node * insert(int x, node * head)
            {
                 node *p;
                 p = new node;
                 p -> data = x;
                 p-> next= head;
                 return p;
            }
            void fun( node *head, int n)
            {   node *p, *p1,*q;
                int i,num =1;
                if(!head) return;
                 while(n >2){
                    cout<<"當前鏈表中的結點依次為:";
                    p=head;
                    while(p){
                      cout<data<<"    ";
                      p=p->next;
              }
                    cout<        p=head;
                    ___(1)___    ;
                    i=2;
                    while(q) {
                if(i%3==0){
                      cout<< q -> data<<'\t';
                    ___(2)___    ;
                    delete q;
                    q=p->next;
                    n--;
                    i++;
              }
              else{
                      p=p->next;
                     i++;
                     __(3)___;
                  }
               }
                num++;
                cout< }
              cout<<"鏈表中剩余的結點為:";
              p= head;
              while(p){
                cout<data<<" ";
                ___(4)___;
              }
               cout<}
            void main( void)
            {
                int a[10] ={23, 12, 32, 54, 74, 25, 65, 94, 17, 72 } ;
                node  * head =0;
                for(int i= 9; i >=0; i-- )
                  ___(5)___  ;
                fun(head,10);
            }
                【要求】
                ·打開T盤中MYFA. txt文件,將其復制到文件myfa.cpp中(或把上述程
            序錄入到文件myfa.cpp中),根據題目要求及程序中語句之間的邏輯關系對程
            序進行完善。程序中的注解可以不輸入。
                ·完善后的源程序文件myfa. cpp必須放在T盤的根目錄下,供閱卷用。
             2.程序改錯(20分)
                【題目】以下程序的功能是:求1000000以內的所有平方回文數。平方回文
            數是指該整數為某一整數的平方,且該整數的各位數字呈中心對稱。


            正確程序的輸出結果如下:
            1000000以內的平方回文數為:
            121 484 676 10201 12321 14641 40804 44944 69696 94249 698896
            含有錯誤的源程序如下:
            #include
            int pow(int m,int n)    //計算m的n次方
            {  int t=0;
               for(int i=0; i    t*=m;
               return t;
            }
            int pingfanghuiwen( int a)
            {  int temp,k,num, sum;
               int count,i,n;
               n=a*a;
               count=0;
               while( 1){  //計算n的位數
                 k=n-pow(10,count);
               if(k<0)
                 continue ;
               count ++ ;
            }
               sum =0;
               num = n;
               for(i=0; i     temp = num;
                 sum= sum+ temp*pow(10,  count -i);
                 num= num/10;
               }
              if(sum==n)
                return 1;
              else
                return 0;
            }
            void main()
            {  int i;
               cout<<"1000000以內的平方回文數為:"<   for(i=10;i<1000; i++)
                  if( pingfanghuiwen(i))
                    cout<    cout< }
            【要求】
                ·打開T盤中MYFB.txt文件,將其復制到文件myfb. cpp中(或把上述程
            序錄入到文件myfb. cpp中),根據題目要求及程序中語句之間的邏輯關系對程
            序中的錯誤進行修改。程序中的注解可以不輸入。
                ·改錯時,可以修改語句中的一部分內容,增加少量的變量說明、函數原型
            說明或編譯預處理命令,但不能增加其他語句,也不能刪除整條語句。
                ·改正后的源程序文件myfb. cpp必須放在T盤的根目錄下,供閱卷用。
            3.程序編程題(20分)
                【題目】字符串的并集定義為兩個字符串中所包含的所有字符(并集中字符
            的排列順序不做要求,但不能重復)。試定義一個字符串類STR,求兩個字符串
            的并集。具體要求如下:
                (1)私有數據成員
                ·char *p1,*p2;存放兩個原始字符串。
                ·char *p;存放兩個字符串的并集。
                (2)公有成員函數
                ·STR( char s1[],char s2[]);初始化原始字符串并為指針p分配存儲空間。
                ·void del(char *p);刪除p指向字符串中的重復字符。
                ·void fun();求指針p1和p2所指向的兩個字符串的并集,結果存人指針p所指向的存儲空間,注意調用del()函數刪除結果中的重復字符。
                ·void print();輸出兩個原始字符串及它們的并集。
                ·~STR();析構函數,釋放動態內存。
                (3)在主函數中對該類進行測試。
                輸出示例:
                原字符串:adb12345    abcdefg23xz
                它們的并集為:adb12345cefgxz
                【要求】
                源程序文件名必須為myfc.cpp,并放在T盤根目錄下,供閱卷用。
                參考答案:
                一、選擇題
                1.A    2.B    3.D    4.C    5.B

            本套試卷的視頻演示見:school.njwww.net

            二、填空題
            1.6  15
            2. 16  31
            3. 50  80  80
            4. 20 80 80
            5. 6 7
            6. 10 8
            7. 5  2 2 1
            8. 4
            9. 30 40  50
            10. 100  200
            三、操作題
            1 (1) q =head ->next
                (2) p -> next =q ->next
                (3) q =q ->next
                (4) p =p ->next
               (5) head =lnsert(a[i] , head)
            2.
            (1)  第3行的int t=0修改為   int t=1;
            (2)  第16行的continue修改為 break
            (3)第23行的count-i 修改為 count-i-1
            (4)第34行的cout<

            3.
            #include
            #include
            class STR{
                char *p1,  *p2,  *p;
            public :
                STR(char s1[ ] , char s2[ ])
                {   int n1 = strlen ( s1)  + 1 ,  n2 = strlen( s2)  + 1 ;
                    strcpy( p1 = new char[n1] , s1) ;
                    strcpy( p2 = new char[n2] , s2) ;
                    p = new char[n1 + n2 + 1] ;
                 }
                 void fun( )
                 {   char *s=p1,  *p0 =p;
                     while(*p0++=*s+);
                     s=p2;
                     p0--;
                     while(*p0++=*s++);
                     del(p);
                  }
                 void del( char  * s)   
                 { while(*(s+1)){                                            //4分
                   for( char *s1 =s+1;  *s1; s1++ )
                      if(*s==*s1){
                        *s1='\0';
                        strcat( s,s1 +1) ;
                        s1--;
                      }
                   s++;
                  }
              }

            void print()
            {  cout<<"原字符串:";
               cout<   cout<<"它們的并集為:"<}
              ~STR()
             { delete []p1;
               delete []p2;
               delete []p;
              }
            };

            void main( )                                           //2分
            {    STR  s1("adb12345", " abcdefg23xz") ;
                 s1.fun( );
                 s1.print( );
            }

            本套試卷的視頻講解見:http://school.njwww.net/kecheng/detail_921575

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