第 1 頁:選擇題 |
第 3 頁:程序填空題 |
第 4 頁:程序改錯題 |
第 5 頁:程序設計題 |
21以下選項中正確的語句組是( )。
A.char*s;8={1.BOOK!”}i
B.char*s;8=”BOOK!”;
C.char S[10];S=”BOOK!”;
D.char S[];S=”BOOK!”;
參考答案:B
參考解析:A選項去掉大括號就正確了;c選項和D選項應在定義時賦初值。因此B選項正確。
)22有以下程序l
該程序試圖通過指針P為變量n讀人數據并輸出,但程序有多處錯誤,以下語句正確的是( )。
參考答案:A
參考解析:選項B的正確寫法應為P=&n;選項c的正確寫法應為scanf(”%d”,P);選項D的正確寫法應為printf(”%d\n”,* P)。
23以下程序段中的變量已正確定義:
程序段的輸出結果是( )。
A.**B.****C.*D.********
參考答案:C
參考解析:由于內層循環for(k=1;k<3;k++)后面直接跟了空語句“;”所以在循環內部什么操作也不做,跳出外層循環后執行打印語句,所以打印了一個“t”,選擇C。
24若有定義:float x=1.5;int a=1,b=3,c=2;則正確的switch語句是( )。
參考答案:A
參考解析:B選項中switch((int)x);語句中不應該有最后的分號。switch(exprl),中的exprl不能用浮點類型或10n9類型,也不能為一個字符串,所以c錯誤。ca”后面常量表達式的類型必須與switch后面表達式的類型一致,所以D錯誤。
25以下能正確定義字符串的語句是( )。
A.char str=”\x43”;
B.char str[]=”、0”;
C.char str=”;
D.char str[]={’\064’};
參考答案:B
參考解析:C語言中,字符串是用一對雙引號括起來的字符序列,并用字符型數組來存放,故c選項和D選項不屬于字符串,A選項定義的是一個字符變量s拄,卻用來存放字符串,顯然也不正確,因此B選項正確。
26若要求定義具有10個int型元素的一維數組a,則以下定義語句中錯誤的是( )。
參考答案:B
參考解析:一雛數組的定義方式為:類型說明符數組名[常量表達式];注意定義數組時,元素個數不能是變量。因此應該選B選項。
27設有定義:
則以下賦值語句中錯誤的是( )。
A.data2=(2,6);B.data2=datal;C.data;real=datal.real;D.data2.real=datal.unreal;
參考答案:A
參考解析:A)選項中可以在聲明變量的同事為data2賦值,但是dala2=(2,6);應寫作data2={2,61。所以選擇A。
28有以下程序:
程序運行后的輸出結果是( )。
A.852B.963C.741D.875421
參考答案:A
參考解析:第一次for循環,y的值為9,y%3的值為3,滿足條件打印一一Y,即先減一后打印,所以打印8;第二次for循環,Y的值為7,y%3的值為1,不執行打印語句;第三次for循環,y的值為6,y%3的值為0,滿足條件打印一一Y,即先減一后打印,所以打印5;第四次for循環,Y的值為4,不滿足if條件,不執行打印語句;第五次for循環,Y的值為3,滿足if條件,打印輸出2;第六次for循環,Y的值為1,不滿足條件,不執行打印語句。
29設變量均已正確定義,若要通過
scaIIf(”%d%c%d%c”,&al,&el,&a2,&c2);
語句為變量al和a2賦數值l0和20,為變量cl和c2賦字符x和Y。以下所示的輸入形式中正確的是( )。(注:口代表空格字符)
參考答案:C
參考解析:輸入數據的格式必須與scanf()的格式控制串完全匹配,如果A、B、Cc選項中在數字l0后面均輸入了空格,則會將空格賦給變量cl,而不是把x賦給cl,所以選擇 C選項。
30下面不屬于需求分析階段任務的是( )。
A.確定軟件系統的功能需求
B.確定軟件系統的性能需求
C.需求規格說明書評審
D.制定軟件集成測試計劃
參考答案:D
參考解析:需求分析階段的工作有:需求獲取;需求分析;編寫需求規格說明書;需求評審,所以選擇D。
31以下選項中可用做c程序合法實數的是( )。、、
A.3.0e0.2B..1e0C.E9D.9.12E
參考答案:B
參考解析:A選項中e后面的指數必須為整數,所以錯誤。C語言規定,E之前必須要有數字,所以c選項錯誤。E后面必須要有數字,且必須為整數,所以D選項錯誤。
32有以下程序:
程序運行后的輸出結果是( )。
A.10B.11C.20D.21
參考答案:D
參考解析:聲明data是結構S數組。初始化data『0].a=10;data[0].b=100;data[1].a=20;data[1].b=200。主函數中P=data[1];即P.a=data[1].a;P.b=data[1].b;執行語句prinff(”%d\n”,++(P.a));打印輸出時p.a先增l再打印。P.a=data[1].a=20,先增1等于21。
33若有定義語句:int a=3,b=2,c=1;以下選項中錯誤的賦值表達式是( )。
A.a=(b=4)=3;B.a=b=c+1;C.a=(b=4)+c;D.a=1+(b=c=4);
參考答案:A
參考解析:不能將變量或常量賦給一個表達式,所以A選項中(b=4)=3是錯誤的。
34有以下程序:
執行程序時,給變量x輸入l0,程序運行后的輸出結果是( )。
A.55B.54C.65D.45
參考答案:A
參考解析:該程序考察的是函數的遞歸調用,在調用一個函數的過程中又出現直接或間接地調用該函數本身,稱為函數的遞歸調用。執行結果為l+2+3+…+8+9+10=55。因此A選項正確。
35以下關于邏輯運算符兩側運算對象的敘述中正確的是( )。
A.可以是任意合法的表達式
B.只能是整數0或非0整數
C.可以是結構體類型的數據
D.只能是整數0或1
參考答案:A
參考解析:C語言的邏輯運算符比較特別,它的操作數沒有明確的數據類型,可以是任意合法的表達式,所以選擇A。
36設有如下函數定義:
若執行調用語句“ll=fm(3);”,則函數tim總共被調用的次數是( )。
A.2B.3C.4D.5
參考答案:B
參考解析:首先n=fun(3),3被當作參數傳遞進去,這就進行了-次調用,3被當做參數傳進去后,程序會執行這句dee rctlu'nfun(k-1)+1;這就調用了第二次,而參數是3—1也就是2。2被當做參數傳進去后,程序會執行這句elseremm fun(k—I)+1;這就調用了第三次,而參數是2-1也就是1。1被當做參數傳進去后,程序會執行這句else if(k==1)return 1:不再遞歸調用,所以最終結果為3次。
37已知大寫字母A的ASCIl碼值是65,小寫字母a的ASCIl碼值是97。以下不能將變量C中的大寫字母轉換為對應小寫字母的語句是( )。
A.C=(。A’+C.%26一"a"B.c=c+32C.c=c一"A"+"a"D.c=(c一’A")%26+-a"
參考答案:A
參考解析:根據題意可知,小寫字母比與之對應的大寫字母的ASCⅡ碼大32。A選項中字符A加上c表示的大寫字符再對字母個數26取余,本身這個表達式沒有任何含義,所以選擇A選項。
38有以下程序:
若運行時輸入:2 4 6<回車>,則輸出結果為( )。
A.2 0 4B.2 0 0C.2 4 0D.2 4 6
參考答案:A
參考解析:本題中輸入的3個數據2,4,6分別賦值給了x[0[0],x[1][0],x[2][0]。x[o][1]仍為初始時的0,所以打印輸出時的結果為A選項。
39有以下程序:
程序運行后的輸出結果是( )。
A.120B.11C.6D.21
參考答案:D
參考解析:fun函數中的變量X為靜態局部變量,占用固定的內存單元,下一次調用時仍可以保留上次調用時的值。也就是說,如果多次調用fun函數,x的定義只在第一次調用時有效,從第二次調用開始,x的定義相當于不存在,直接使用上次X的值。fun函數被調用了5次,每次調用后的返回值累加到s上。5次調用后,x的值為6,8的值為1+2+3+4+5+6=21。因此D選項正確。
40若有定義語句:
char S[10]=”1234567\0\0”;則strlen(s)的值是( )。
A.7B.8C.9D.10
參考答案:A
參考解析:strlen()函數在計算字符串長度時,遇到結束標識為止,且長度不包括結束標識。本題中字符串,從第一個字符開始,遇到第一個結束標識‘\0’為止,注意‘\0’不占字符串長度,所以字符串長度為7。因此A選項正確。
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |