第 1 頁:選擇題 |
第 5 頁:程序填空題 |
第 6 頁:程序改錯題 |
第 7 頁:程序設計題 |
11設a、b、e、d、m、n均為int型變量,且a=5、b=6、c=7、d=8、m=2、n=2,則邏輯表達式(m=a>b)&&(n=c>d)運算后,n的值是( )。
A.0B.1C.2D.3
參考答案:C
參考解析:因為a>b不成立,故表達武a>b的值為0,即把0賦給rn,因此&&左邊表達式的值為0,0與任何值&&運算都為0,于是不再計算&&.右邊表達式的值,所以此時的l3.仍然為2。
12以下選項中不合法的用戶標識符是( )。
A.abC.CB.fileC.MainD.PRINTF
參考答案:A
參考解析:C語言規定標識符只能由字母、數字、下劃線組成,并且只能由字母或下劃線開頭。A中包含點符號,因此A選項不合法。
13為了提高軟件的獨立性,模塊之間最好是( )。
A.控制耦合B.公共耦合C.內容耦合D.數據耦合
參考答案:D
參考解析:在程序設計中,各模塊間的內聚性越強,則耦合性越弱。一般較優秀的軟件設計,應盡量做到高內聚、低耦合,以有利于提高模塊的獨立性。耦合性與內聚性是模塊獨立的兩個定性標準,是互相關聯的。
14以下程序的輸出結果是( )。
main()
{ char*s=”l2134211”;
int v[4]={0,0,0,0),k,i;
for(k=0;s[k];k++)
{ switch(s[k])
{case…1:i=0;
case'2':i=1:
ease'3':i=2;
case'4':i=3;}
)
vEij++;
)
for(k=0;k<4;k++)printf(”%d¨,v[k]);
A.4 2 1 1B.0 0 0 8C.4 6 7 8D.8 8 8 8
參考答案:B
參考解析:本題考查switch,case語句,當k=0時,循環體成立,執行switch后表達式的值為’l’,執行case'1’,i的值為0,因為沒有break語句,繼續執行其后的語句,到最后一個語句時i的值為3,此時v[i]++,v[3]=1,接著執行k++后,k的值為1,當k=1時,循環成立。執行switch后的表達式的值為…2,執行case'2',i的值為1,因為沒有break語句,繼續執行其后的語句,到最后一個語句時,i的值為3,此時viii++,v[3]=2,接著執行k++后,k的值為2,依次下去,case'4'也會執行,最后i的值一定為3,到v[3]=8時循環結束,而vE03-vEz]的值一直沒有變化,故選擇8選項。
15若有定義“int a=5,b=7;”,則表達式a%=(b%2)運算后,a的值為( )。
A.0B.1C.11D.3
參考答案:A
參考解析:本題考查“%”運算符的使用。運算符“%”是整數除法的余數。本題中表達式a%=(b%2)等價于a=a%(b%2)=5%(7%2)=5%1=0。
16下列合法的聲明語句是( )。
A.int _abc=50;B.double int=3+5c2.5:C.long do=11;D.float 3_asd=3e-3;
參考答案:A
參考解析:標識符是由字母、數字或下劃線組成,并且它的第一個字符必須是字母或者下劃線。B選項int不是表達變量類型的標識符,它不能再用做變量名和函數名。c選項d0是c語言的一個關鍵字。D選項標識符不符合只能以字母或下劃線開始的要求。
17有以下程序:
#include
main()
{ int a[]={2,4.6.8},*p=a,i;
for(i=0;i<4;i+.+)a[i]=*p++;
printf(”%d\n”,a[2]);
程序的輸出結果是( )。
A.6B.8C.4D.2
參考答案:A
參考解析:p=a,相當于重新把a中的內容賦給a本身,所以a[2]=6。
18設a=1,b=2,c=3,d=4,則表達式:“a
A.4B.3C.2D.1
參考答案:D
參考解析:在三目運算符中,優先級相同,按從右到左的結合性計算,a
19下列程序的輸出結果是( )。
main()
(int i=1,j=2,k=3;
if(i++==1&&(++j==3==||k++==
3))
printf(”%d%d%d\n”,i,j,k);
)
A.1 2 3B.2 3 4C.2 2 3D.2 3 3
參考答案:D
參考解析:本題考查自增運算符“++”、邏輯與運算符“&&”和邏輯或運算符“||”。自增運算符“十十”出現在變量之前,表示先使變量的值加1,再使用變量的值進行運算;出現在變量之后,表示先使用變量的值進行運算,再使用變量的值加1。當邏輯與運算符“&&”兩邊的運算對象都為真時,邏輯表達的值才為真;當邏輯或運算符“||”只要一個值為l,值就為l。根據運算符的優先級,題中應先計算內層括號中的值。++j是先自加后運算,因此運算時J的值等于3,所以表達式++j一3成立,即表達式的值為l;1與任何數都為進行或(||)運算,結果都為1,因此k一3的表達式i++是先運算后自加,因此運算時i為l,所以i十+一1成立,自加1后i一2。if語句的條件為真即“1”,所以輸出i、j、k的值分別是2,3,3。
20以下程序的輸出結果是( )。
main()
{char str[][10]={¨china”,”beijing”),*p=str;
printf(”%s\n”,p十10):
A.ChinaB.BeijingC.ngD.ing
參考答案:B
參考解析:本題考查指針,由*P—str可知,指針P指向字符串數組的首地址。二維數組str為每個字符串分配的存儲空間是10個字節,因此p+10指向str[1][o],輸出的字符串就是數組中的第2個字符串。
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |