計算機二級考試C++上機考試試題

          時間:2021-07-12 08:42:13 試題 我要投稿
          • 相關推薦

          計算機二級考試C++上機考試試題

            計算機二級考試有分筆試題以及上機操作題,下面就是小編跟大家分享計算機二級考試C++上機考試試題,歡迎大家閱讀!

          計算機二級考試C++上機考試試題

            一、程序改錯題

            使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序運行時有錯誤,請改正錯誤,使程序正常運行,并且要求最后一個catch必須拋出執行的任何異常。

            程序異常,輸出信息為

            error

            O

            ERROR

            注意:不要改動main函數,不能增加或刪除行,也不能更改程序的結構,錯誤的語句在//******error******的下面。

            試題程序:

            #include<iostream.h) style="font-family: "Microsoft Yahei"; white-space: normal; color: rgb(51, 51, 51);"

            intmain()

            {

            try

            {

            throw("error");

            }

            //********error********

            catch(chars)

            {

            cout<<s<<endl;

            }

            try

            {

            throw((int)0);

            }

            //********error********

            catch()

            {

            cout<<i<<endl;

            }

            try

            {

            throw(O);

            throw("error");

            }

            //********error********

            catch()

            {

            cout<<"ERROR"<<endl;

            }

            return0;

            }

            二、簡單應用題使用VC++6.0打開考生文件夾下的源程序文件2.cpp。請補充完整程序fun(inti),使其完成以下功能:如果i=5,則輸出如下5行#號。

            #

            ##

            ###

            ####

            #####

            注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。

            試題程序:

            #include

            voidfun(inti)

            {

            }

            intmain()

            {

            fun(5);

            return0;

            }

            三、綜合應用題使用VC++6.0打開考生文件夾下的源程序文件3.cpp。程序通過繼承關系,實現對姓名的控制。類TC1實現對名字訪問的接口,TC2實現對名字的設置和輸出。

            程序輸出為

            TC2Name

            May

            其中定義的類并不完整,按要求完成下列操作,將類的定義補充完整。

            (1)在類TCl中定義接口函數GetName為純虛函數。請在注釋1后添加適當的語句。

            (2)函數GetName2用于獲得名字的緩存,但只獲得允許讀操作這個緩存,請在注釋2后添加適當的語句。

            (3)實現TC2的構造函數,請在注釋3后添加適當的語句。

            (4)完成TC2的構造函數,實現對名字的處理。請在注釋4后添加適當的語句。

            注意:增加或者修改代碼的位置已經用符號表示出來,請不要修改其他的程序代碼。

            試題程序:

            #include

            classTC1

            {

            public:

            //********1********

            };

            classTC2:publicTCl

            {

            public:

            voidGetName()

            {

            cout<<"TC2Name"<<endl;

            }

            //********2********

            {

            returnm_str;

            }

            //********3********

            {

            inti:

            for(i=0;str[i]!=0;i++)

            m_str[i]=str[i];

            //********4********

            }

            private:

            charm_str[32];

            };

            voidmain()

            {

            TCl*P;

            TC20bj1("May");

            p=&objl;

            p->GetName();

            cout<<obj1.getnamc2()<<endl;

            return;

            }

            一、程序改錯題(1)應改為“catch(char*s)”。

            (2)應改為“cateh(inti)”。

            (3)應改為“catch(…)”。

            【解析】本題中第1個標識前的異常拋出語句為“throw("error");”,其中的類型為字符串。所以對應的異常捕捉語句catch中應該符合這個類型,而程序中給出的語句“catch(chars)”是字符型的`,所以第1處的語句修改為“catch(char*S)”。第2個標識前的異常拋出語句為“throw((int)0);”,其中的類型為int。對應的異常捕捉語句catch中應該符合這個類型,所以補充catch子句中的類型,否則如果找不到匹配的catch塊,系統就會調用一個系統函數,使程序終止運行。即第2處的語句修改為“catch(inti)”。如果在catch子句中沒有指定異常信息的類型,那么就用刪節號“…”表示它可以捕捉任何類型的異常信息,即修改為“catch(…)”。

            二、簡單應用題for(intj=0;j(i;j++)//行循環

            {

            for(intk=0;k<=j;k++)//列循環

            cout<<"#";//輸出“#”

            cout<<endl; style="font-family: "Microsoft Yahei"; white-space: normal; color: rgb(51, 51, 51);"

            }

            【解析】本題首先利用for循環進行外層循環,輸出對應的i行,然后利用for循環進行內層循環,輸出對應i行的i列。

            三、綜合應用題(1)應添加“virtualvoidGetNamt!()=0;”。

            (2)應添加“constchar*GetName2()”。

            (3)應添加“TC2(char*str)”。

            (4)應添加“m_str[i]=0;”。

            【解析】本題第1處要求“在類TC1中定義接口函數GetName,為純虛函數”。在C++中,在基類中用virtual聲明成員函數為虛函數。純虛函數是在聲明虛函數時被“初始化”為0的函數,即“virtualvoidGetName()=0;”。第2處要求“函數GetName2實現獲得名字的緩存,但只獲得讀允許操作這個緩存”。只能引用數據成員,而不能修改,所以使用常成員函數,其一般形式為“const函數類型函數名”,即“constchar*GetName2()”。第3處要求“實現TC2的構造函數”。TC2的構造函數與類TC2的名稱應該相同,而且第3處的大括弧中是對字符數組str的操作,所以類TC2的構造函數中的參數為str,即這里補全為“TC2(char*str)”。第4處要求“完成TC2的構造函數,實現對名字的處理”,補全類TC2的構造函數,構造函數中的名字變量str對應于類TC中的成員變量m_str,所以這里補全變量賦值操作“m_str[i]=0;”。

          【計算機二級考試C++上機考試試題】相關文章:

          計算機二級考試C++考前測試題及答案06-14

          計算機二級考試題及答案04-09

          計算機二級考試《java》試題及答案04-13

          計算機二級考試題型06-11

          計算機二級考試WEB試題及答案04-13

          計算機二級考試試題C語言沖刺試題02-22

          計算機二級JAVA考試鞏固試題及答案04-13

          省二級計算機考試試題06-11

          省二級計算機考試題06-11

          国产精品好爽好紧好大_亚洲男人综合久久综合_欧美福利电影a在线播放www_国产精品99久久精品无码

                  亚洲精品国产情侣Av在线 | 亚洲欧美视频一区二区三区 | 夜夜爽一区二区三区 | 亚洲V国产V中文在线 | 最新国产精品第1页 | 日本三级2019在线观看免费 |