計算機等級二級C語言模擬試題1(十)

字號:

一、選擇題(1)~(10)每小題2分,(11)-(50)每小題1分,共60分)
     下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項涂寫在答題卡相應位置上,答在試卷上不得分。
     (1)算法能正確地實現(xiàn)預定功能的特性稱為算法的__________。
     A)確定性  B)易讀性  C)健壯性  D)高效性
     答案:A
     評析:算法的確定性是指算法中的每一個步驟都必須是有明確定義的,不允許有摸棱兩可的解釋,也不允許有多義性,即每個步驟都是預先定義好的。
     (2)數(shù)據(jù)在計算機存儲器內表示時,物理地址與邏輯地址相同并且是連續(xù)的,稱之為__________。
     A)存儲結構    B)邏輯結構
     C)順序存儲結構  D)鏈式存儲結構
     答案:C
     評析:如果數(shù)據(jù)之間在邏輯上有相鄰關系時,能夠在物理位置上體現(xiàn)出來,則這種存儲結構稱為順序存儲結構。如果數(shù)據(jù)之間的邏輯相鄰關系在存儲時是靠存儲地址的指針來體現(xiàn)的,則稱為鏈式存儲結構。
     (3)從未排序序列中依次取出一個元素與已排序序列中的元素依次進行比較,然后將其放  在已排序序列的合適位置,該排序方法稱為__________。
     A)希爾排序  B)冒泡排序  C)插入排序  D)選擇排序
     答案:C
     評析:最基本的排序方法有三大類,即選擇排序、交換排序和插入排序。
     (4)對線性表進行折半查找時,要求線性表必須__________。
     A)以順序方式存儲
     B)以鏈接方式存儲
     C)以順序方式存儲,且結點按關鍵字有序排列
     D)以鏈接方式存儲,且結點按關鍵字有序排列
     答案:C
     評析:折半查找算法要求被查找的對象必須采用順序的存儲結構,并且關鍵字有序排列。
     (5)鏈表不具備的特點是__________。
     A)可隨機訪問任意一個結點
     B)插入和刪除不需要移動任何元素
     C)不必事先估計存儲空間
     D)所需空間與其長度成正比
     答案:A
     評析:順序表可以隨機訪問任意一個結點,而鏈表必須從第一個數(shù)據(jù)結點出發(fā),逐一查找每個結點。
     (6)下列描述中正確的是__________。
     A)軟件是物理產品
     B)程序就是軟件
     C)軟件工程由方法、工具和過程三部分組成
     D)軟件工程是一個機械工程
     答案:B
     評析:軟件是與計算機系統(tǒng)操作有關的程序、規(guī)程、規(guī)則及任何與之有關的文檔和數(shù)據(jù)。計算機軟件是一種邏輯產品,而不是物理產品。軟件工程是用工程、科學和數(shù)學的原則與方法研制、維護計算機軟件的有關技術及管理方法。軟件工具可以自動或半自動的生成軟件文檔。軟件工程過程是管理者控制軟件開發(fā)各環(huán)節(jié)的基本方法。
     (7)軟件測試是保證軟件質量最關鍵的步驟,下列關于白盒測試技術描述中不正確的是_______。
     A)保證模塊中每一獨立的路徑至少執(zhí)行一次
     B)保證所有判斷的每一分支至少執(zhí)行一次
     C)保證每一循環(huán)都在邊界條件和一般條件下最多執(zhí)行一次
     D)驗證所有內部數(shù)據(jù)結構的有效性
     答案:C
     評析:軟件測試技術中,白盒測試技術和黑盒測試技術是兩種基本的軟件測試手段。白盒測試技術有四個原則:保證模塊中每一個獨立的路徑至少執(zhí)行一次;保證所有判斷的每一分支至少執(zhí)行一次;保證每一循環(huán)都在邊界條件和一般條件下至少執(zhí)行一次;驗證所有內部數(shù)據(jù)結構的有效性。
     (8)客觀世界中任何一個事物都可以看成一個對象。但是從計算機的角度看,一個對象應  該包含兩個要素:一個是_______,另一個是需要進行的操作。
     A)語句  B)命令  C)算法  D)數(shù)據(jù)
     答案:D
     評析:在面向對象的程序 設計 中,從計算機的角度看,一個對象應該包含兩個元素:數(shù)據(jù),相當于家庭中的成員;操作,相當于家庭成員的活動。對象就是一個包含數(shù)據(jù)與這些數(shù)據(jù)有關的操作的集合。
     (9)下列概念中,不是數(shù)據(jù)庫管理系統(tǒng)必須提供的數(shù)據(jù)控制功能的是_______。
     A)安全性  B)完整性  C)移植性  D)一致性
     答案:C
     評析:數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)控制功能是指在數(shù)據(jù)庫建立、運行和維護時,由DBMS統(tǒng)一管理、統(tǒng)一控制,以保證數(shù)據(jù)的安全性、完整性和一致性。
     (10)設關系R和關系S的元數(shù)分別是3和4,關系T是R和S的笛卡兒積,即T=R×S,則關系T的元數(shù)是_______。
     A)7  B)9  C)12  D)16
     答案:A
     評析:笛卡兒積的定義是設關系R和s的元數(shù)分別是r和s,R和s的笛卡兒積是一個(r十s)元屬性的集合,每一個元組的mr個分量來自R的一個元組,、后s爪分量來自s的一個元組。所以關系T的屬性元數(shù)是3+4=7。
     (11)以下敘述中正確的是_______。
     A)C語言中的全部數(shù)據(jù)類型都是基本類型
     B)C語言中的全部數(shù)據(jù)類型都是構造類型
     C)C語言中的數(shù)據(jù)類型只有兩種,即基本類型和構造類型
     D)以上都不對
     答案:D
     評析:c語言中的數(shù)據(jù)類型有四種,即基本類型、構造類型、指針類型和空類型。
     (12)下列可作為C語言賦值語句的是_______。
     A)x=3,y=5  B)a=b=6  C)i--;  D)y=6
     答案:C
     評析:此題實際上是考查對c語言中"語句"概念的理解。表達式后面只有加上分號才能成為語句,因此,A),B),D)均是表達式,只有C)為語句。且利用自減運算符使i值減l。
     (13)以下可以定義為用戶標識符的是_______。
     A)printf  B)net  C)3com D)int
     答案:B
     評析:c語言中的標識符分為兩類。一類是系統(tǒng)標識符,即系統(tǒng)定義使用的關鍵字標識符等。另一類是用戶自定義標識符。兩類標識符都只能用字母、數(shù)字和下劃線三種字符組成。且第一個字母必須為字母或下劃線。并且用戶自定義標識符不能使用系統(tǒng)關鍵字相同的標識符。
     (14)以下選項中,不能作為合法常量的是_______。
     A)0X2A  B)015  C).2.8e9  D)123.6e0.4
     答案:D
     評析:c程序中的基本數(shù)據(jù)類型有整型、實型和字符型。其中整型常量三種形式,即八進制、十進制和十六進制。而實型常量有十進制小數(shù)和指數(shù)形式兩種。
     (15)有以下程序
     main()
     {
     int a;  char c=10:
     float f=-100.0;double x;
     clrscrO;
     a=f/=c*=(x=6.5);
     printf("%d,%c,%3.1C%3.1f\n",a,c,Cx);
     }
     程序運行后的輸出結果是_______。
     A)1,65,1,6.5  B)1,A,1.5,6.5  C)1,65,1.5,6.5  D)2,65,1.5,6.5
     答案:B
     評析:在賦值語句a=f/=c*=(x=6.5);中,可得x=6.5,將x的值乘以10賦予c,為65,再將f=100的值除以65,并按照四舍五入的原則,重新賦給f'得到f=-I.5。最后將f的值賦給a,由于a是整型,所以得到a=l。
     (16)以下語句序列中錯誤的是_______。
     A)int x=l;  B)int x=0;  C)int x=2.3;  D)int x=l,y=l;
     x++;     (x+1)++;   (x++)+1;    (x++)+(y一);
     答案:B
     評析:c語言中的自加、自減運算只能用于變量,而不能用于常量或表達式?!?(17)有定義語句:im.a;char b[10],c;則錯誤的輸入語句是__________。
     A)scanf("%d%s%c",&a,D,&C);   B)scanf("%d%s%c",&a,&b,&C);
     C)scanf("%d%s%d",&a;b,&C);   D)scanf("%d%s"&c,a,%,&C);
     答案:D
     評析:在scanf()語句中,在給整型變量和字符型賦值時,必須要在變量名前加取地址符號(&),而對字符型數(shù)組賦值時,可以不在變量名前不加取地址符號,也可以加取地址符號。而且對于字符型變量既可以賦給整型值,也可以賦給字符型值。
     (18)有定義語句:int x,y;,若要通過scan即x=%d,y=%n&x,&y);語句使變量x得到數(shù)值11,變量y得到數(shù)值12,下面四組輸入形式中,正確的是________。
     A)1l  12<回車>    B)ll,12<回車>
     C)x=l l,y=12<回車>  D)x=ll,<回車>12,<回車>
     答案:C
     評析:在scanf()語句中,對于變量的賦值必須與數(shù)據(jù)的輸入格式相一致。特別是一些字符說明。
     (19)設有如下程序段:
     int x=6, y=4;
     printf("%d\n",(x%y,x&&y));
     則以下敘述中正確的是__________。
     A)輸出語句中格式說明符的個數(shù)少于輸出項的個數(shù),不能正確輸出
     B)運行時產生出錯信息
     C)輸出值為2
     D)輸出值為l
     答案:D
     評析:在逗號表達式(表達式1,表達式2)中,其運算方法是先求表達式1的值,然后求表達2的值,整個逗號表達式的值是表達式2的值。
     (20)有以下程序
     main()
     {
     int i=1.j=2,k=3;
     clrscr();
     if(i++==j&&k--==j)
     printf("%d,%d,%d",i++'j,k);
     else
     printf("%d,%d,%d",++i,++j,k--);
     }
     程序運行后的輸出結果是_________。
     A)l,2,3  B)2,2,3  C)2,3,2  D)3,3,3
     答案:D
     評析:按照運算符的優(yōu)先級,最先計算的是關系運算i++==j,由于此關系式不成立,,它的結果是為"假"值,由此可以確定邏輯與運算的結果必然是"假"值,因此參加邏輯與運算的另一個關系表達式"k--==j"的值,系統(tǒng)不再對它進行運算。此時變量i的值自加1變成2,然后執(zhí)行else語句后的printf語句。
     (21)有定義語句:int a=l,b=l,c=3,x;,則以下選項中各程序段執(zhí)行后,x的值不等于3是__________。
     A)if(c   else if(b   C)if(a%b>a) x=3;    D)if(a     if(a<2)x=2;        if(b&&a     if(a<1)z=l;        if(c   答案:C
     評析:在各種運算符中,運算級別的是算術運算,如果有括號,當然先算括號內的表達式的值。
     (22)有以下程序,其輸出結果是____________。
     main()
     {  float x=l; int y;
     X++:
     y=x+l;
     printf("x=%d,y=%f",x, y);
     }
     A)x=2,y=3    B)x=2,y=3.0
     C)x=2.0,y=3  D)x=0.y=O.000000
     答案:D
     評析:一般在對變量定義為何種類型的數(shù)據(jù)時,對輸出應有完全一致的數(shù)據(jù)類型格式。但整型與實型數(shù)據(jù)在進行混合運算時,一般其數(shù)據(jù)類型可以自動轉換。如本題的y=x+l;語句中,系統(tǒng)自動將實型表達式x+l的結果轉換為整數(shù)賦給整型變量y,但整型變量y只能得到實型數(shù)的整數(shù)部分。
     (23)有以下程序
     main()
     {
     int a[6]={5,6,7,8,9,10},s=0,I=0;
     clrserO;
     do
     {
     if(a[i]%2 I-0)
     s+=a[I];
     }while(++i<5);
     primf("%d\n",s);
     }
     程序運行后的輸出結果是_________。
     A)21  B)22  C)23  D)24
     答案:A
     評析:引用數(shù)組中的某個元素時,可以直接使用數(shù)組名加下標的形式。如p[1],就是數(shù)組中下標為1的元素,按順序數(shù),是第2個元素,因為數(shù)組的下標是從0開始的。本題實際上是求數(shù)組中所有奇數(shù)元素的和。
     (24)若有如下程序段,
     main()
     {
     char a[7]="123\010\032";
     int i,j=0;
     clrscr0;
     for (I=0;i     j+=sizeof(a);
     printf("%d,%d\n",I,J);
     }
     程序運行后的輸出結果是_________。
     A)5,30  B)5,35  C)5,25    D)5,20
     答案:B
     評析:數(shù)組的存儲空間是在其定義后就分配的。字符數(shù)組a[7]="123\010\032"的存儲空間是7個單元。即sizeof(a)=7。而函數(shù)strlen()是求字符串的長度的。a[7]="123\010\032"中,有兩個轉義字符,因此字符串的長度實際上是5個字符。所以strlen(a)=5。在程序的for循環(huán)中,其循環(huán)的次數(shù)是5次,j每次加7,所以最后的結果是35。i的值就是循環(huán)的次數(shù)。
     (25)如果在c程序中要用到庫函數(shù)中的字符串比較函數(shù)strcmp(),那么在程序前面應該  添加的頭文件是__________。
     A)stdio.h  B)string.h  C)alloc.h  D)math.H
     答案:B
     評析:庫函數(shù)并不是c語言的一部分,它是由人們根據(jù)需要編制并提供用戶使用的。在調用不同類別的庫函數(shù)時,必須在程序前添加相應的頭文件。
     (26)若已定義的函數(shù)有返回值,則以下關于該函數(shù)調用的敘述中錯誤的是_________。
     A)函數(shù)調用可以嵌套和遞歸
     B)函數(shù)調用可以作為一個函數(shù)的實參
     C)函數(shù)調用可以出現(xiàn)在表達式中
     D)函數(shù)調用可以作為一個函數(shù)的形參
     答案:D
     評析:函數(shù)的調用有三種方式。一是將函數(shù)調用作為一個語句。二是函數(shù)出現(xiàn)在_個表達式中。三是作為一個函數(shù)的實參。但是沒有函數(shù)調用作為形參。而且函數(shù)在調用時還有嵌套和遞歸兩種特殊的情形。
     (27)下列關于c語言中字符常量與字符串常量的敘述中,錯誤的是_________。
     A)字符常量是用單撇號括起來的一個字符
     B)空格字符也可用作字符常量
     C)字符串常量是用單撇號括起來的一個字符序列
     D)字符串常量是用雙撇號括起來的一個字符序列
     答案:C
     評析:c語言中的字符型數(shù)據(jù)常量有兩類,一類是用單撇號括起來的字符常量。字符常量除了常用的字符外,還包括特殊的空格符和以"\"開頭的轉義字符。字符串常量則是用雙撇號括起來的一個字符序列。