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