版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第一套
(1)下列敘述中正確的是
A)所謂算法就是計算方法
B)程序可以作為算法的?種描述方法
C)算法設(shè)計只需考慮得到計算結(jié)果
D)算法設(shè)計可以忽略算法的運算時間
答案:B
【解析】算法是指對解題方案的準(zhǔn)確而完整的描述,算法不等于數(shù)學(xué)上的計算方法,也不等
于程序,A選項錯誤。算法設(shè)計需要考慮可行性、確定性、有窮性與足夠的情報,不能只考慮
計算結(jié)果,C選項錯誤。算法設(shè)計有窮性是指操作步驟有限且能在有限時間內(nèi)完成,如果一
個算法執(zhí)行耗費的時間太長,即使最終得出了正確結(jié)果,也是沒有意義的,I)選項錯誤。算
法在實現(xiàn)時需要用具體的程序設(shè)計語言描述,所以程序可以作為算法的一種描述方法,B選
項正確。
(2)下列敘述中正確的是
A)一個算法的空間復(fù)雜度大,則其時間復(fù)雜度也必定大
B)一個算法的空間復(fù)雜度大,則其時間復(fù)雜度必定小
C)一個算法的時間且雜度大,則其空間復(fù)雜度必定小
D)算法的時間復(fù)雜度與空間更雜度沒有直接關(guān)系
答案:D
【解析】算法的空間復(fù)雜度是指算法在執(zhí)行過程中所需要的內(nèi)存空間,算法的時間復(fù)雜度,
是指執(zhí)行算法所需要的計算工作量,兩者之間并沒有直接關(guān)系,答案為D。
(3)下列敘述中錯誤的是
A)數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)元素不能是另一數(shù)據(jù)結(jié)構(gòu)
B)數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)元素可以是另一數(shù)據(jù)結(jié)構(gòu)
C)空數(shù)據(jù)結(jié)構(gòu)可以是線性結(jié)構(gòu)也可以是非線性結(jié)構(gòu)
D)非空數(shù)據(jù)結(jié)構(gòu)可以沒有根結(jié)點
【答案】A
【解析】數(shù)據(jù)元素是一個含義很廣泛的概念,它是數(shù)據(jù)的“基本單位”,在計算機中通常作為
一個整體進行考慮和處理,數(shù)據(jù)元素可以是一個數(shù)據(jù)也可以是被抽象出的具有一定結(jié)構(gòu)數(shù)據(jù)
集合,所以數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)元素可以是另一數(shù)據(jù)結(jié)構(gòu)。
滿足有且只有一個根結(jié)點并且每一個結(jié)點最多有一個前件,也最多有一個后件的非空的數(shù)據(jù)
結(jié)構(gòu)認為是線性結(jié)構(gòu),不滿足條件的結(jié)構(gòu)為非線性結(jié)構(gòu)。
空數(shù)據(jù)結(jié)構(gòu)可以是線性結(jié)構(gòu)也可以是非線性結(jié)構(gòu)。非空數(shù)據(jù)結(jié)構(gòu)可以沒有根結(jié)點,如非性線
結(jié)構(gòu)“圖''就沒有根結(jié)點。故選A選項
(4)結(jié)構(gòu)化程序設(shè)計的基本原則不包括()。
A)多態(tài)性
B)自頂向下
C)模塊化
D)逐步求精
答案:A
【解析】結(jié)構(gòu)化程序設(shè)計的思想包括:自頂向下、逐步求精、模塊化、限制使用got。語句,
所以選擇A)。
(5)結(jié)構(gòu)化程序設(shè)計中,下面對got。語句使用描述正確的是
A)禁止使用goto語句
B)使用goto語句程序效率高
C)應(yīng)避免濫用goio語句
D)以上說法均錯誤
答案:C
【解析】結(jié)構(gòu)化程序設(shè)計中,要注意盡量避免got。語句的使用,故選C。
(6)下列敘述中正確的是
A)軟件是程序、數(shù)據(jù)和文檔
B)軟件是程序和數(shù)據(jù)
C)軟件是算法和數(shù)據(jù)結(jié)構(gòu)
D)軟件是算法和程序
答案:A
【解析】計算機軟件由兩部分組成:一是機器可執(zhí)行的程序和數(shù)據(jù);二是機器不可執(zhí)行的,
與軟件開發(fā)、運行、維護、使用等有關(guān)的文檔。故選A選項
⑺軟件生命周期是指()。
A)軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程
B)軟件從需求分析、設(shè)計、實現(xiàn)到測試完成的過程
C)軟件的開發(fā)過程
D)軟件的運行維護過程
答案:A
【解析-】通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周
期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個時期都屬于
軟件生命周期
(8)卜面能作為軟件需求分析工具的是
A)PAD圖
B)程序流程圖
C)甘特圖
D)數(shù)據(jù)流程圖(DFD圖)
答案:D
【解析】軟件需求分析方法包括結(jié)構(gòu)化分析方法和面向?qū)ο蟮姆治龇椒▋纱箢?,前者常用?/p>
具為數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、判定表、判定樹等。故D選項正確。
(9)在數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)語言中,負貢數(shù)據(jù)的查詢、增加、刪除和修改等操作的是
A)數(shù)據(jù)定義語言
B)數(shù)據(jù)管理語言
C)數(shù)據(jù)操縱語營
D)數(shù)據(jù)控制語言
答案:C
【解析】數(shù)據(jù)庫管理系統(tǒng)提供了相應(yīng)的數(shù)據(jù)語言,它們是:數(shù)據(jù)定義語言,該語言負責(zé)數(shù)據(jù)
的模式定義與數(shù)據(jù)的物理存取構(gòu)建;數(shù)據(jù)操縱語言,該語言負責(zé)數(shù)據(jù)的操縱,包括查詢與增、
刪、改等操作:數(shù)據(jù)控制語言,該語言負責(zé)數(shù)據(jù)完整性、安全性的定義與檢查以及并發(fā)控制、
故障恢復(fù)等功能。C選項正確。
(10)在數(shù)據(jù)庫系統(tǒng)中,考成數(shù)據(jù)庫實現(xiàn)的數(shù)據(jù)模型是
A)概念數(shù)據(jù)模型
B)邏輯數(shù)據(jù)模型
C)物理數(shù)據(jù)模型
D)關(guān)系數(shù)據(jù)模型
答案:B
【解析】數(shù)據(jù)模型按照不同的應(yīng)用層次分為以下3種類型:概念數(shù)據(jù)模型,它是一種面向客
觀世界、面向用戶的模型,它與具體的數(shù)據(jù)庫管理系統(tǒng)和具體的計算機平臺無關(guān);邏輯數(shù)據(jù)
模型,是面向數(shù)據(jù)庫系統(tǒng)的模型,著重于在數(shù)據(jù)庫系統(tǒng)一級的實現(xiàn);物理數(shù)據(jù)模型,是面向
計算機物理實現(xiàn)的模型,此模型給出了數(shù)據(jù)模型在計算機上物理結(jié)構(gòu)的表示。B選項正確。
(11)以下敘述中錯誤的是()。
A)使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題
B)結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成
0C語言是一種結(jié)構(gòu)化程序設(shè)計語言
D)結(jié)構(gòu)化程序設(shè)計提倡模塊化的設(shè)計方法
答案:A
【解析】使用順序,選擇(分支),循環(huán)三種基本結(jié)構(gòu)構(gòu)成的程序可以解決所有問題,而不只
是解決簡單問題,所以A)錯誤。
(12)以下選項中敘述正確的是
A)函數(shù)體必須由{開始
B)C程序必須由main語句開始
C)C程序中的注釋可以嵌套
D)C程序中的注釋必須在一行完成
答案:A
【解析】函數(shù)體是函數(shù)首部下面的花括號內(nèi)的部分,所以函數(shù)體必須由{開始,A選項正確。
一個源程序文件可以包括預(yù)處理命令、全局聲明、函數(shù)定義,程序總是從main函數(shù)開始執(zhí)行
的,不是main語句,B選項錯誤。C程序中的允許兩種注釋,以〃開頭的單行注釋;以/*開始,
以*/結(jié)束的塊式汪祥,D選項錯誤。函數(shù)可以嵌套,注釋不能嵌套,C選項錯誤。
(13)以下敘述正確的是
A)C編譯程序把文件后綴為.c的源程序文件編譯成文件后綴為.obj的二進制文件
B)C編譯程序把文件后綴為.。的源程序文件編譯成文件后綴為.exc的可執(zhí)行文件
0C編譯程序把文件后綴為.obj的二進制文件編譯成文件后綴為exe的可執(zhí)行文件
D)鏈接程序把文件后綴為.c的源程序文件鏈接成文件后綴為.exe的可執(zhí)行文件
答案:A
【解析】C編譯程序把文作后綴為.c的源程序文件編譯成文件后綴為.obj的二進制文件,鏈
接將一個或多個目標(biāo)文件與程序用到的庫文件連接起來,形成一個可以在操作系統(tǒng)直接運行
的執(zhí)行程序.exe,故排除B,C,D選項,答案選A選項。
(14)按照C語言規(guī)定的用戶標(biāo)識符命名規(guī)則,不能出現(xiàn)在標(biāo)識符中的是()。
A)大寫字母
B)下劃線
0數(shù)字字符
D)連接符
答案:D
【解析】C語言中標(biāo)識符由字母、下劃線、數(shù)字組成,且開頭必須是字母或下劃線。所以D)
選項中的連接符不合法。
(15)下列定義變量的語句中錯誤的是
A)int_int;
B)doubleint_;
C)charFor;
D)floatUS$;
答案:D
【解析】C語言規(guī)定,變量命名必須符合標(biāo)識符的命名規(guī)則。D選項中包含了非法字符〃$“,所以
錯誤。標(biāo)識符由字母、數(shù)字或下劃線組成,且第一個字符必須是大小寫英文字母或者下劃線,
而不能是數(shù)字。大寫字符與小寫字符被認為是兩個不同的字符,所以For不是關(guān)鍵字for。
(16)C語言中的標(biāo)識符分為關(guān)鍵字、預(yù)定義標(biāo)識符和用戶標(biāo)識符,以下敘述正確的是
A)關(guān)鍵字可用作用戶標(biāo)識符,但失去原有含義
B)預(yù)定義標(biāo)識符可用作用戶標(biāo)識符,但失去原有含義
0在標(biāo)識符中大寫字母和小寫字母被認為是相同的字符
D)用戶標(biāo)識符可以由字母和數(shù)字任意順序組成
答案:B
【解析】關(guān)鍵字不可用作C語言的標(biāo)識符,所以A錯誤。在標(biāo)識符中大寫字母與小寫字母作為不
同字符處理,所以C錯誤。標(biāo)識符由下劃線、字母、數(shù)字組成,且必須以下劃線和字母開始,所以
D錯誤。
(17)以下選項中合法的常量是
A)999
B)2.7e
C)OXab
D)123E0.2
答案:C
【解析】A選項中含有非法的空格,所以錯誤。C語言中十六進制常量以O(shè)x開頭,所以C正確。實
型常量中e的前后必須均有數(shù)據(jù),且其后必須為整數(shù),所以B和I)錯誤。
(17)有以下程序
#include<stdio.h>
mainO
{intk=33;
printf(*%d,%x\nw,k,k,k);
}程序的運行結(jié)果是
A)33,41,21
B)33,33,33
041,33,21
D)33,21,41
答案:A
【解析】整型常量有3種表示方法,分別是十進制數(shù)表示法、八進制數(shù)表示法和十六進制數(shù)
表示法。十進制整型常量沒有前綴,輸出格式控制符為%d:八進制整型常量以0作為前綴,
輸出格式控制符為%。;十六進制整型常量以0X或Ox作為前綴,輸出格式控制符為%X。整型33
用八進制表示為41,十六進制表示為21,A選項正確。
(18)以下選項中,合法的一組C語言數(shù)值常量是()。
A)12.0Xa234.5c0
B)028.5e-3-Oxf
C).1774el.5Oabc
D)0x8A10,0003.e5
答案:A
【解析】C語言中八進制整型常量的開頭是數(shù)字0,十六進制整型常量的開頭數(shù)字是Ox。C語
言中的實型常量有兩種表示形式:小數(shù)形式,小數(shù)形式表示的實型常量必須要有小數(shù)點;指
數(shù)形式,以"e"或〃E”后跟一個整數(shù)來表示以10為底數(shù)的凝數(shù),且規(guī)定字母e或E之前必須要有
數(shù)字,且。或E后面的指數(shù)必須為整數(shù)。B)選項中028錯誤,八進制中沒有數(shù)字8。C)選項中
4eL5中e后面的指數(shù)不是整數(shù)。D)選項中數(shù)字“10,000”不能用逗號.
(19)已知大寫字母A的ASCII碼是65,小寫字母a的ASCII碼是97。以下不能將變量c中的大寫
字母轉(zhuǎn)換為對應(yīng)小寫字母的語句是()。
A)c=('A,+c)%26-,a,
B)c=c+32
C)c^-'A'+'a'
D)c=(c-'A')%26+'a'
答案:A
【解析】根據(jù)題意可知,小寫字母比與之對?應(yīng)的大寫字母的ASCII碼大32。A選項中字符A加上c
表示的大寫字符再對字母個數(shù)26取余,本身這個表達式?jīng)]有任何含義所以選擇A選項。
(20)若有定義:doublea,b,c:能正確給a,b,c輸入數(shù)據(jù)的語句是()。
A)scanfC%lf%lf%lf*&a,&b,&c)
B)scanf(*%f%ftb,&c);
C)scanf(*%lf%lf%lfw,a,b,c):
D)scanf(*%lf%lf&b,&c):
答案:D
【解析】對f,%le是針對double的,如果僅用%「,輸入的數(shù)據(jù)可能不完全接收,數(shù)據(jù)的精度
可能不足Af主要針對float類型的變量的輸入,因此選項B錯誤。根據(jù)題目格式可知A,C錯誤。
故答案為D選項。
(21)若有以下程序段
doublex=5.16894;
printf("%f\n"z(int)(x*1000+0.5)/(double)1000);
則程序段的輸出結(jié)果是
A)5.170000
B)5.175000
05.169000
D)5.168000
答案:C
【解析】斷的輸出格式是以帶小數(shù)點的數(shù)學(xué)形式輸出浮點數(shù)。首先計算x*1000,結(jié)果為
5168.94然后+0.5,結(jié)果為5169.44,然后進行強制類型轉(zhuǎn)換,轉(zhuǎn)換成整型為5169,然后除以雙
精度數(shù)據(jù)1000,結(jié)果也為雙精度數(shù)據(jù)5.169,輸出時按照%f的格式輸出,所以輸出結(jié)果為
5.169000,
(22)若變量已正確定義,在1“亞沖向1£(“%小-,1<);中,以下不可替代W的是()。
A)a<>b+c
B)ch=getchar()
C)a=b+c
D)a++
答案:A
【解析】選項A)是非法的表達式,C語言中沒有?運算符。
(23)//include<stdio.h>
main()
{intx,y,z;
x=y=l;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);
}
程序運行后的輸出結(jié)果是()o
A)2,3,3
B)2,3,2
C)2,3,1
D)2,2,1
答案:C
【解析】z=x++,y++,++y;因為賦值運算符的優(yōu)先級高于逗號運算符的優(yōu)先級,所以可以
將上式表示成(z=xr),(yM),(Iiy)o然后從左向右先計算表達式Z=XL,因為x3先使
用后自增,所以z的值為1,x的值為2。再計算逗號表達式第二個表達式y(tǒng)++,此時y的值為2,
最后計算第三個表達式++y,y的值為3。
(24)有如下程序
#include<stdio.h>
mainO
(
inta=0,b=1;
if(a++&&b++)
printf(T);
else
prinlf("F");
printf(*a=%d,b=%d\n*,a,b);
)
程序運行后的輸出結(jié)果是
A)Ta=hb=2
B)Fa=0,b=2
C)Fa=l,b=l
D)Ta=0,b=l
答案:C
【解析】題目中判斷if條件是否成立,a++先取值為0,則(a++&&b++)為0,且不計算b++,
而后a自增得a=l,if條件不成立執(zhí)行else函數(shù)體,飾出F。最后執(zhí)行語句
printf(",a=%d,b=%d\nz,,a,b);按照格式輸出a=l,b=l。C選項正確。
(25)有以下程序
#include<stdio.h>
mainO
{char*s=*120119110w;
ininO,nl,n2,nn,i;
n0=nl=n2=nn=i=0;
do{
switch(s[i++])
{default:nn++:
case'O':n0++;
case*I':nl++:
case'2':n2++;
}while(s⑴);
printf(*nO=%d,nl=%d,n2=%d,nn=%d\n*?nO,nl,n2,nn):
)
程序的運行結(jié)果是()。
A)nO=3,nl=8,n2=9,nn=l
B)nO=2,nl=5,n2=l,nn=l
C)n0=2,nl=7,n2=10,nn=l
D)n0=4,nl=8,n2=9,nn=l
答案;A
【解析】本題執(zhí)行過程為,s[0]=T"匹配case'1',nl=l,n2=l;s[l]='2',匹配case'2',
n2=2;s[2]='O',匹配case'O',nO=Lnl=2,n2=3;s[3]=,T,匹配caseT',nl=3,r.2=4;
s[4]=*T,匹配case'1',nl=4,n2=5;s[5]=,9*,匹配default,nn=Ln0=2,nl=5,r,2=6;
s[6]=,T,匹配case'1',nl=6,n2=7;s[7]=>T,匹配case'1',nl=7,n2=8;s[8]=,0,,
匹配case'O',n0=3,nl=8,n2=9;s[9]='\0',退出循環(huán)。輸出nO,nl,n2,im為3,8,9,1,A
選項正確。
(26)有以下程序
#include<stdio.h>
main()
{inti,j=0:
chara[]="lbwareyou*,b[10]={0};
for(i=0;a[i];i++)
if(a[i]==-)
b[j++]=a[i+l];
printf(*%s\nz,,b):
)
程序運行后的輸出結(jié)果是()。
A)Hay
B)Howareyou
C)we
D)ay
答案:D
【解析】for語句循環(huán)體執(zhí)行功能是,每次當(dāng)a[i]元素為‘‘時,自動將a[i]下一個元素賦值
給b[j],賦值完成后,j值加1,因此a[i]的'a'和'y'分別賦值給答案為D選項。
(27)行以下程序
#include<stdio.h>
main()
{chara=3,b=6,c;
c=(a*b)?2;
printf(飛d\n*,c);
)
程序運行后的輸出結(jié)果是()。
A)5
B)1
C)20
D)18
答案:C
【解析1-運算符為按位異或運算符,即01=1,「0=1,11=0,0-0=0,因此@飛=101在進行<<
操作,變?yōu)?01002=2010,因此答案為C選項。
(28)有如下程序
#include<stdio.h>
mainO
(
inti,*ptr;
intarray[5]=(5,3,1};
for(ptr=array,i=0;i<5;i++,ptr++)
(
if(*ptr==0)
putchar(,X');
else
putchar('A'+*ptr);
)
printf(~\n");
)
程序運行后的輸出結(jié)果是
A)FDBXX
B)FFFXX
C)I'DBBB
D)ABCDE
答案:A
【解析】在對數(shù)組進行初始化時,如果對數(shù)組的全部元素賦以初值,定義時可以不指定數(shù)組
長度,如果被定義數(shù)組的長度與初值個數(shù)不同,則數(shù)組長度不能省略;如果在說明數(shù)組時給
出了長度,但沒有給所有的元素賦予初始值,而只依次給前面的幾個數(shù)組元素賦予初值,那
么C語言將自動對余下的元素賦初值,則array={5,3,1,0,0}。程序執(zhí)行過程為:執(zhí)行for
循環(huán),將數(shù)組首地址賦給指針plr,依次遍歷每一個元素,如果數(shù)組元素為0則輸出X,如
果不為0則按照字母表輸出字符5,后第array[i]個字符。程序運行后的輸出結(jié)果為:FDBXX,
A選項正確。
(29)有以下程序
/include<stdio.h>
main()
char*s="12134";
intk=0,a=0;
while(s[k+1])
k++;
if(k%2==0)
(
a=a+(s[k]-'O'+l);
continue;
)
a=a+(s[k]-'O');
)
printf("k=%da=%d\n",k,a);
}
程序運行后的輸出結(jié)果是()O
A)k=5a=15
B)k-4a-12
C)k=6a=ll
D)k=3a=14
答案:B
【解析】當(dāng)k=0時,執(zhí)行while-*次,得到k=La為2;當(dāng)k=l時,執(zhí)行while一次,得到k=2,
a為4;當(dāng)k=2時,執(zhí)行while一次,得到k=3,a為7;當(dāng)k=3時,執(zhí)行while一次,得到k=4,a
為12;所以答案為B選項。
(30)有以下程序
#include<stdio.h>
main()
{inta,b;
for(a=l,b=l;a<=100;a++)
{if(b>=20)break;
if(b%3==1){b=b+3;continue;}
b=b-5;
)
printf("%d\n",a);
)
程序的輸出結(jié)果是()。
A)10
B)9
C)8
D)7
答案:C
【解析】首先注意for循環(huán)的控制條件當(dāng)b>=20或者a>100則跳出for循環(huán)也即b<20且
a<=100時執(zhí)行for循環(huán);第一次進入循環(huán)a=l,b=l均滿足循環(huán)條件,但b%3==l條件滿足,故執(zhí)
行b=b+3,得到b=4,注意有continue,所以后面語句不執(zhí)行,直接跳轉(zhuǎn)到a++這個語句,所以
第一次循環(huán)完之后a=2,b=4;進入第二輪循環(huán),b%3=l也是滿足的,故再次b=b+3,此輪循環(huán)
執(zhí)行之后a=3,b=7,進入下一輪。此后和前面循環(huán)同理,都是b$3=l滿足,因為每次都是加3,
而之后又去模3,且都跳過for后面語句直接執(zhí)行a++,所以,一直循環(huán)到b=22跳出for循環(huán)。
此時a為&綜合起來就是,每次循環(huán)b增加3,a增加1,且當(dāng)b>22時跳出循環(huán),結(jié)束程序。所
以b從1增加到22,有(22T)/3=7,所以a=l+7=8.因此C選項正確。
(31)設(shè)有一個M*N的矩陣已經(jīng)存放在一個V行N列的數(shù)組x中,且有以下程序段
sum=0;
for(i=0:i<M;i++)sum+=x[i][0]+x[i][N-l]:
for(j=l;j<N-l;j++)sum+=x[0][j]+x[M-l][j];
以上程序段計算的是
A)矩陣兩條對角線元素之和
B)矩陣所有不靠邊元素之和
C)矩陣所有元素之和
D)矩陣所有靠邊元素之和
答案:D
【解析】程序執(zhí)行過程為:第一個for循環(huán)實現(xiàn)對第一列和第N列求和。第二個for循環(huán)在上
一個for循環(huán)結(jié)果上實現(xiàn)對第一行和第M行從笫二個元素到第N1個元素的求和,總體來說,
就是矩陣所有靠邊元素之和,D選項正確。
(32)若有以下程序
include<stdio.h>
voidfun(inta[],intn)
{intt,i,j;
for(i=0;i<n;i+=2)
for(j=i+2;j<n;j+=2)
if(a[i]>a[jl){t=a[i];a[i]=a[j];a[j]=t;}
)
main()
{intc[10]={10,9,8,7,6,5,4,3,2,l},i;
fun(c,10);
for(i=0;i<10;i-+)printf("%d,“,c[i]);
printf("\n");
)
則程序的輸出結(jié)果是(),
A)1,10,3,8,5,6,7,4,9,2,
B)10,9,8,7,6,5,4,3,2,1,
010,1,8,3,6,5,4,7,2,9,
D)2,9,4,7,6,5,8,3,10,1,
答案:D
【解析】該題首先對一維數(shù)組進行初始化,c[0]到c[9]依次賦值為次到l;fun(c,10);語句調(diào)
用fun函數(shù),fun函數(shù)的功能是將一維數(shù)組奇數(shù)位元素的數(shù)值由小到大排序;最后將排好序的
新的一維數(shù)組進行輸出。因此D選項正確。
(33)若有以下程序
include<stdio.h>
#defineN4
voidfun(inta[][N],intb口,intflag)
{intij;
for(i=O;i<N;i++)
{b[i]=a[O][i);
for(j=l;j<N;j++)
if(flag?(b[i]>a[j][i]):(b[i]<a[j][i]))b[i]=a[j][i];
)
)
main()
{intx[N][N]={l,2,3,4,5,6,7,8,9,10,ll,12,13,14,15,16},y[NLi;
fun(x,y,1);
for(i=0;i<N;i++)printf(”%d,",y[i]);
fun(x,y,0);
for(i=0;i<N;i++)printf(”%d,”,y[i]);
printf("\n");
)
則程序的輸出結(jié)果是
A)4,8,12,16,1,5,9,13,
B)1,2,3,4,13,14,15,16,
C)1,5,9,13,4,8,12,16,
D)13,14,15,16,1,2,3,4,
答案:B
【解析】該題首先初始化二維數(shù)組,if(flag?(b[i]>a[i][j]):(b[i]<a[i][j]))
條件語句的條件表達式使用了條件運算符構(gòu)成的選擇結(jié)構(gòu),即門ag為真時,以(b[i]>
作為條件表達式的值,否則以(b[i]<作為條件表達式的值,fun函數(shù)功
能是給一維數(shù)組賦值。fun(x,y,1);該函數(shù)調(diào)用后,即當(dāng)門ag為真時,使一維數(shù)組獲得一
維數(shù)組第1行的數(shù)值;fun(x,y,0);該函數(shù)調(diào)用后,即當(dāng)flag為假時,使一維數(shù)組獲得二維
數(shù)組第4行的數(shù)值;因此B選項正確。
(34)有以下程序
#include<stdio.h>
voidfunl(char*p)
(
char*q;
q=p;
while(*q!='\0')
(
(*q)++;
q++;
)
)
main()
chara[]={"Program"},*p;
P=&a[3];
funl(p);
printf("%s\n",a);
}
程序執(zhí)行后的輸出結(jié)果是()O
A)Prphsbn
B)Prohsbn
C)Progsbn
D)Program
答案:B
【解析】(*q)++是q所指的字符加1,q++就是指針移到下一個字符。因此B選項正確。
(35)有以下程序
#include<stdio.h>
#include<string.h>
voidfun(char*s,intml,intm2)
{chart,*p;
p=s+ml;s=s+m2;
while(s<p)
{t=*s;*s=*p;*p=t;
s++;p—;
)
)
main()
{charss[10]="012345678";
intn=6;
fun(ss,0,n-1);
fun(ss,9,n):
fun(ss,0,9);
printf(飛s\n",ss):
)
程序運行后的輸出結(jié)果是<)。
A)012345
B)876543210
C)876543
D)012345678
答案:A
【解析】fun(*ss,ml,m2)的作用是,如果ml>m2交換數(shù)組元素ss[ml],ss[m2]<>因此,
fun(ss,0,5)后ss的0,1,2:3,4,5,6,7,8,\0。fun(ss,9,6)后ss的0,1,2,3,4,5,\(),8,7,6。
fun(ss,0,9)后ss的0,1,2:3,4,5八0,8,7,6。因此打印結(jié)果012345。故答案為A選項
<36)有以下程序
#include<stdio.h>
lypedefstructstu{
charname[10];
chargender;
intscore;
}STU;
voidf(STUa,STU*b,STUc)
{*b=c=a:
printf(*%s,%c,%d,*,b->namc,b->gcnder,b->score):
printf(*%s,%c,%d,*,c.name,c.gender,c.score):
)
main()
{STUa={"Zhao",'m',290),b={"Qian",'f',350},c={"Sun",'m',370);
f(a,&b,c);
printf(*%s,%c,%d,*,b.name,b.gender,b.score);
printf(飛s,%c,%d\n”,c.name,c.gender,c.score);
)
程序運行后的輸出結(jié)果是()。
A)Zhao,HI,290,Zhao,m,290,Zhav,叫290,Sun,in,370
B)Zhao,in,290,Zhao,m,290,Zhao,m,290,Zhao,in,290
C)Zhao,m,290,Zhao,m,290,Qian,f,350.Sun,m,370
D)Zhao,in,290,Zhao,m,290,Qian,f,350,Zhao,in,290
答案:A
【解析】C語言函數(shù)參數(shù)傳遞分為:1、值傳遞過程中,被調(diào)函數(shù)的形參作為被調(diào)函數(shù)的局部
變量處理,即在內(nèi)存的堆棧中開辟空間以存放由主調(diào)函數(shù)放進來的實參的值,從而成為了實
參的一個拷貝。值傳遞的特點是被調(diào)函數(shù)對形參的任何操作都是作為局部變量進行,不會影
響主調(diào)函數(shù)的實參變量的值。
2、地址傳遞過程中,被調(diào)函數(shù)的形參雖然也作為局部變量在堆棧中開辟了內(nèi)存空間,但是
這時存放的是由主調(diào)函數(shù)放進來的實參變量的地址。被調(diào)函數(shù)對形參的任何操作都被處理成
間接尋址,即通過堆棧中存放的地址訪問主調(diào)函數(shù)中的實參變量。正因為如此,被調(diào)函數(shù)對
形參做的任何操作都影響了主調(diào)函數(shù)中的實參變量。題設(shè)中,參數(shù)b是地址傳遞,因此會直
接影響實參變晟。a,c是值傳遞,傳遞是a,c的拷貝,不會a,c實參產(chǎn)生影響,因此,調(diào)用函
數(shù)返回,3殳有被修改,b被修改了。故答案為A選項。
(37)有以下程序:
#include<stdio.h>
#include<stdlib.h>
intfun(intn)
{int*p;
p=(int*)malloc(sizeof(int));
*p=n;return*p;
}
main()
{inta;
a=fun(IO);printR"%d\n",a+fun(10));
程序的運行結(jié)果是()。
A)0
B)10
020
D)出錯
答案:C
【解析】maHoc(sizeof(int))的作用是開辟一個長度為sizeof(int)存儲空間,并通過強制
類型轉(zhuǎn)換(int*)將此存儲空間的地址就給了一個整型的指針變量p。然后執(zhí)行語句*p=n,使
得*P的值為10,并通過return返回此值,叩a的值為10。然后在主函數(shù)中輸出a+fun(10)=
10+10=20。
(38)有以下程序
include<stdio.h>
#definef(x)x*x*x
main()
(
inta=3,s,t;
s=f(a+l);
t=f((a+l));
printf("%d,%d\n”,s,t);
}程序運行后的輸出結(jié)果是()。
A)10,64
B)10,10
C)64,10
D)64,64
答案:A
【解析】本題考查宏定義的用法,宏定義只是做個簡單的替換,所以本題中執(zhí)行
f(a+1)=a+1*a+1*a+1=3*a+1=10,f((a+l))=(a+1)*(a+1)*(a+1)=64,所以答案為A選項。
(39)有以下程序
#include<stdio.h>
main()
(
inti;
FILE*fp:
for(i=0;i<3;i++)
(
fp=fopen(*res.txt*,'w");
fputc(*K*+i,fp);
fclose(fp);
)
}
程序運行后,在當(dāng)前目錄下會牛.成一個res.txt文件,其內(nèi)容是()。
A)EOF
B)M
C)KLM
D)L
答案:B
【解析】for循環(huán)中,每次都執(zhí)行打開文件res.txt.寫入文件、再關(guān)閉文件的操作,由于fopen
函數(shù)使用‘w'模式寫文件,所以每次打開res.ixt后,都刪除文件中的原有數(shù)據(jù),再重新寫入
新數(shù)據(jù)。所以文件最終的內(nèi)容只與最后一次for循環(huán)有關(guān),最后一次for循環(huán)是向文件res.txt
寫入'K'+2,即M,正確答案是B選項。
(40)有以下程序
0include<stdio.h>
main()
{FILE*fp;
inti,a[6]=(1,2,3,4,5,6},k;
fp=fopen(*data.dat*,"w+");
fprintf(fp,a[0]);
for(i=l;i<6;i++)
{rewind(fp);
fprintf(fp,*%d\n*,a[i]);
)
rewind(fp):
fscanf(fp,"*d”,&k);
fclose(fp);
prinlf(飛d\n”,k);
)
程序運行后的輸出結(jié)果是()。
A)6
B)21
C)123456
D)654321
答案:A
【解析】本題首先定義文件指針變量fp和一個數(shù)組a[],再打開一個文件“data.dat”,隨后
先給文件寫入數(shù)據(jù)a[0],由于rewind函數(shù)是將文件指針從當(dāng)前位置重新指向文件開始位置,
所以「or循環(huán)依次將數(shù)組a中的數(shù)據(jù)寫入文件開始位置,退出循環(huán)后,文件中的數(shù)據(jù)順序為:
654321,重新使指針指向文件開始位置,將此時fp指向的數(shù)據(jù)(即文件中第一個數(shù)據(jù)6)寫
入變量k中,關(guān)閉文件,輸出k值,答案為A選項。
第二套
(1)算法空間復(fù)雜度的度量方法是
A)算法程序的長度
B)算法所處理的數(shù)據(jù)量
C)執(zhí)行算法所需要的工作單元
D)執(zhí)行算法所需要的存儲空間
答案:D
【解析】算法的空間復(fù)雜度是指執(zhí)行這個算法所需要的內(nèi)存空間,。算法執(zhí)行期間所需的存
儲空間包括3個部分:輸入數(shù)據(jù)所占的存儲空間:程序木身所占的存儲空間:算法執(zhí)行過程
中所需要的額外空間。D選項正確。
(2)下列敘述中正確的是
A)循環(huán)隊列屬于隊列的鏈?zhǔn)酱鎯Y(jié)構(gòu)
B)雙向鏈表是二叉樹的鏈?zhǔn)酱鎯Y(jié)構(gòu)
C)非線性結(jié)構(gòu)只能采用鏈?zhǔn)酱鎯Y(jié)構(gòu)
D)有的非線性結(jié)構(gòu)也可以采用順序存儲結(jié)構(gòu)
答案:D
【解析】循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu),A選項錯誤。雙向鏈表為順序存儲結(jié)構(gòu),
二叉樹通常采用鏈?zhǔn)酱鎯Y(jié)構(gòu),B選項錯誤。完全二叉樹是屬于非線性結(jié)構(gòu),但其最佳
存儲方式是順序存儲方式,C選項錯誤,D選項正確。
(3)下列敘述中正確的是()。
A)順序存儲結(jié)構(gòu)的存儲一定是連續(xù)的,鏈?zhǔn)酱鎯Y(jié)構(gòu)的存儲空間不一定是連續(xù)的
B)順序存儲結(jié)構(gòu)只針對線性結(jié)構(gòu),鏈?zhǔn)酱鎯Y(jié)構(gòu)只針對非線性結(jié)構(gòu)
C)順序存儲結(jié)構(gòu)能存儲有序表,鏈?zhǔn)酱鎯Y(jié)構(gòu)不能存儲有序表
D)鏈?zhǔn)酱鎯Y(jié)構(gòu)比順序存儲結(jié)構(gòu)節(jié)省存儲空間
答案:A
【解析】鏈?zhǔn)酱鎯Y(jié)構(gòu)既可以針對線性結(jié)構(gòu)也可以針對非線性結(jié)構(gòu),所以B)與C)錯誤。
鏈?zhǔn)酱鎯Y(jié)構(gòu)中每個結(jié)點都由數(shù)據(jù)域與指針域兩部分組成,增加了存儲空間,所以D)錯
誤。
(4)下列關(guān)于棧的敘述中,正確的是
A)棧底元素一定是最后入棧的元素
B)枝頂元素一定是最先入棧的元素
C)棧操作遵循先進后出的原則
D)以上說法均錯誤
答案:C
【解析】棧頂元素總是后被插入的元素,從而也是最先被刪除的元素;棧底元素總是最
先被插入的元素,從而也是最后才能被刪除的元素。棧的修改是按后進先出的原則進行
的。因此,棧稱為先進后出表,或"后進先出〃表,所以選擇C。
(5)在軟件設(shè)計中不使用的工具是()。
A)系統(tǒng)結(jié)構(gòu)圖
B)PAD圖
C)數(shù)據(jù)流圖(DFD圖)
D)程序流程圖
答案:C
【解析】系統(tǒng)結(jié)構(gòu)圖是對軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計的圖形顯示。在需求分析階段,已經(jīng)
從系統(tǒng)開發(fā)的角度出發(fā),把系統(tǒng)按功能逐次分割成層次結(jié)構(gòu),是在概要設(shè)計階段用到的。
PAD圖是在詳細設(shè)計階段用到的。程序流程圖是對程序流程的圖形表示,在詳細設(shè)計過
程中用到。數(shù)據(jù)流圖是結(jié)構(gòu)化分析方法中使用的工具,它以圖形的方式描繪數(shù)據(jù)在系統(tǒng)
中流動和處理的過程,由于它只反映系統(tǒng)必須完成的邏輯功能,所以它是一種功能模型,
是在可行性研究階段用到的而非軟件設(shè)計時用到,所以選擇C)。
(6)下面對類-對象主要特征描述正確的是()o
A)對象唯一性
B)對象無關(guān)性
C)類的單一性
D)類的依賴性
答案:A
【解析】對象的基本特點是:標(biāo)識唯一性、分類性、多態(tài)性、封裝性、模塊獨立性好。
類是具有共同屬性、共同方法的對象的集合,是關(guān)于對象的抽象描述,反映屬于該對象
類型的所有對象的性質(zhì)。對象具有的性質(zhì),類也具有,故A選項正確。
(7)在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。
A)可行性分析報告
B)軟件需求規(guī)格說明書
C)概要設(shè)計說明書
D)集成測試計劃
答案:B
【解析】A)錯誤,可行性分析階段產(chǎn)生可行性分析報告。C)錯誤,概要設(shè)計說明書是總
體設(shè)計階段產(chǎn)生的文檔。D)錯誤,集成測試計劃是在概要設(shè)計階段編寫的文檔。B)正確,
需求規(guī)格說明書是后續(xù)工作如設(shè)計、編碼等需要的重要參考文檔。
(8)下面對軟件測試描述錯誤的是()?
A)嚴格執(zhí)行測試計劃,排除測試的隨意性
B)隨機地選取測試數(shù)據(jù)
C)測試根本目的是盡可能多地發(fā)現(xiàn)并排除軟件中隱臧的錯誤
D)軟件測試是保證軟件質(zhì)量的重要手段
答案:B
【解析】在測試之前制定測試計劃,并嚴格執(zhí)行,測試用例的選擇不可隨意,應(yīng)選擇有
代表性的,盡可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯誤,A選項敘述正確,B選項敘述錯誤。測
試根本bl的是盡可能多地發(fā)現(xiàn)并排除軟件中隱藏的錯誤,C選項敘述正確。軟件測試是
保證軟件質(zhì)量、可靠性的關(guān)鍵步驟,D選項敘述正確。故正確答案為B選項。
(9)在數(shù)據(jù)庫系統(tǒng)中,用于對客觀世界中復(fù)雜事物的結(jié)構(gòu)及它們之間的聯(lián)系進行描述的是
A)概念數(shù)據(jù)模型
B)邏輯數(shù)據(jù)模型
C)物理數(shù)據(jù)模型
D)關(guān)系數(shù)據(jù)模型
答案:A
【解析】數(shù)據(jù)模型按照不同的應(yīng)用層次分為以下3種類型:概念數(shù)據(jù)模型,著重于對客
觀世界復(fù)雜事物的描述及對它們內(nèi)在聯(lián)系的刻畫;邏輯數(shù)據(jù)模型,是面向數(shù)據(jù)庫系統(tǒng)的
模型,著重于在數(shù)據(jù)庫系統(tǒng)一級的實現(xiàn);物理數(shù)據(jù)模型,是面向計算機物理實現(xiàn)的模型,
此模型給出了數(shù)據(jù)模型在計算機上物理結(jié)構(gòu)的表示。A選項正確。
(10)公司中有多個部門和多名職員,每個職員只能屬于一個部門,一個部門可以有多名職員。則實體部
門和職員間的聯(lián)系是
A)1:1聯(lián)系
B)m:1聯(lián)系
C)1:m聯(lián)系
D)m:n聯(lián)系
答案:C
【解析】兩個實體集間的聯(lián)系實際上是實體集間的函數(shù)關(guān)系,主要有一對一聯(lián)系(上1)、
一對多聯(lián)系(l:m)、多對一聯(lián)系(m:l)、多對多聯(lián)系(m:n)。對于每一個實體部門,
都有多名職員,則其對應(yīng)的聯(lián)系為一對多聯(lián)系(l:m),答案選C。
(11)關(guān)于程序中的注釋,以下敘述正確的是
A)注釋的內(nèi)容必須放在?對和*/之間
B)注釋必須置于所說明的語句前或語句后
0注釋中間可以嵌套另一個注釋
D)注釋內(nèi)容錯誤會導(dǎo)致編譯出錯
答案:A
【解析】程序中,注釋可以出現(xiàn)在程序的任何位置,B選項錯誤;注釋中間不能嵌套另
一個注釋,C選項錯誤;注釋內(nèi)容不影響程序編譯,D選項錯誤,答案為A選項。
(12)有以下程序
#include<stdio.h>
mainO
{intk=-17;
printf(飛d,%x\n”,k,1-k,1-k);
)
程序的運行結(jié)果是()。
A)-17,22,12
B)-17,12,22
C)-17,-22,-12
D)17,22,12
答案:A
【解析】整型常量有3種表示方法,分別是十進制數(shù)表示法、八進制數(shù)表示法和十六進
制數(shù)表示法。十進制整常量沒有前綴,輸出格式控制符為%d;八進制整常量以0作為前
綴,輸出格式控制符為加;十六進制整常量以0X或Ox作為前綴,輸出格式控制符為%X。
l-k=18,整型常量18用人進制表示為22,十六進制表示為12,A選項正確。
(13)以下定義語句中正確的是()。
A)inta=b=O;
B)charA=65+lzb='b';
C)floata=l,*b=&a,*c=&b;
D)doublea=0.0;b=l.l;
答案:B
【解析】A選項語句中b變量還沒有定義不能直接用于給a變量賦值。C選項語句中*b、*c表
示的是一個實型變量的地址,不能再將&b賦值給指針型變量c°D選項語句中a=0.0后面應(yīng)
該為逗號,不能是分號。
(14)有以下程序:
#include<stdio.h>
main()
{ints,t,A=10:doubleB=6;
s=sizeo?A);t=sizeoHB);
printf("%d,%d\nH,s,t);
)
在VC6.0平臺上編譯運行,程序運行后的輸出結(jié)果是()。
A)10,6
B)4,4
O2,4
D)4,8
答案:D
【解析】C語言中利用sizeof。函數(shù)判斷數(shù)據(jù)類型長度,在VC6.0平臺中,整型int占有4
個字節(jié),double型數(shù)據(jù)占有8個字節(jié)。
(15)表達式:(int)((double)9/2)-9%2的值是()。
A)0
B)3
04
D)5
答案:B
【解析】先將整型數(shù)據(jù)9強制轉(zhuǎn)換成double型,然后除以2得到的結(jié)果與double型保持一
致,即為4.5,然后將4.5強制轉(zhuǎn)換成整型數(shù)據(jù)4,然后計算9%2的值為1,最后計算4T的值
為3,所以選擇B選項。
(16)設(shè)有定義:intx=ll,y=12,z=0;,以下表達式值不等于12的是()。
A)(z,X,y)
B)(z=x,y)
C)z=(x>y)
D)z=(x==y)
答案:D
【解析】逗號表達式的計算過程是從左到右逐個求每個表達式的值,取最右邊一個表達
式的值作為該逗號表達式的值。賦值運算結(jié)合性為由右向左結(jié)合,賦值運算符左值為變
量,右值為變量或常量,且左右兩邊數(shù)據(jù)類型相同才能實現(xiàn)賦值。成功實現(xiàn)賦值后以左
值為返回值。邏輯表達式成立則返回1,不成立返回0,A選項邏輯表達式x二二y不成立,
則z=0,表達式值為0。B選項中逗號表達式x,y取y值為表達式值,然后賦值給z=12,表
達式值為12。C選項逗號表達式(x,y)取y值為表達式值,然后賦值給z=12,表達式值為
120D選項逗號表達式(z,x,y)取y值為表達式值12。選擇D選項。
(17)若有定義:inta=0,b=0,c=0,d=0;,有C語言表達式(a++&&b++)?c++:d++,以卜.關(guān)于其執(zhí)行
順序的敘述正確是()。
A)先執(zhí)行a++,表達式a++的值為0,由此即可確定(a++&&b++)的值為0,因此執(zhí)行d++
B)先執(zhí)行a++,表達式a++的值為0:再執(zhí)行b++,表達式b++的值為0,由此可確定(a++&&b++)值為0,因
此執(zhí)行d++
C)先執(zhí)行a++,表確定(a++&&b++)值為1,因此執(zhí)行C++達式a++的值為1;再執(zhí)行b++,表達式b++的值為
1,由此可
D)先執(zhí)行b++,表達式b++的值為1;再執(zhí)行a++,表達式a++的值為1,由此可確定(a++麟b++)值為1,因
此執(zhí)行C++
答案:A
【解析】表達式1?表達式2:表達式3,若表達式1為真,則執(zhí)行表達式2,否則執(zhí)行表
達式3。邏輯與運算符遵循〃短路求值〃策略,即只有在僅靠左操作數(shù)的值無法確定玄邏
輯表達式的結(jié)果時,才會求解右操作數(shù),表達式(a++&&b++)中,左操作數(shù)a++的值為0,
已經(jīng)可以確定整個邏輯表達式的結(jié)果為0,因此右操作數(shù)b++不再求解,直接執(zhí)行表達式
3,即d++,答案為A選項
(18)有以下程序:
#include<stdio.h>
main()
{unsignedchara=2,b=4,c=5?d:
d=a|b:d&=c;printf(n%d\nH,d);}
程序運行后的輸出結(jié)果是()。
A)3
B)4
C)5
D)6
答案:B
【解析】&按位與,如果兩個相應(yīng)的二進制位都為1,則該位的結(jié)果值為1,否則為0。I
按位或,兩個相應(yīng)的二進制位中只要有一個為1,該位的結(jié)果值為1。2的二進制為
00000010,4的二進制為0D000100,所以做或運算結(jié)果為00000110,該數(shù)與5即00000101
做與操作結(jié)果為00000100,即4
(19)有以下程序
#include<stdio.h>
main()
{charc;
c=getchar();
do{
putchar(c++);
}while((c=getchar())!='#');
)
程序運行時從第一列開始輸入:abedefg**回車〉,則輸出結(jié)果是
A)bcdefgh$
B)bcdefgh
C)abedefg#
D)abedefg
答案:D
【解析】運算符〃++〃放在變量后面時,先參與其他操作,再對變量+1。pulchar(C++)表
示先輸出當(dāng)前c值,再對c值+1,當(dāng)輸入abedef##時,在while語句中,程序輸入”#〃,循
環(huán)退出。因此輸出為abedefg,答案為D選項。
(20)若有定義:charc:intd:,程序運行時輸入:1,2〈回車),能把值1輸入給變量c、值2輸入給
變量d的輸入語句是
A)scanf(*%c,%d*?&c,&d);
B)scanf&c,&d);
C)scanf&c,&d):
D)scanf(*%d%d*,&c,&d);
答案:A
【解析】scanf函數(shù)的調(diào)用格式為:scanf(格式控制串,地址列表);,格式控制串,由%
開頭,后跟格式字符,如c對應(yīng)字符型變量,d對應(yīng)整型變量。地址表列需要讀入的是所
有變量的地址或字符串的首地址。如果除了格式說明字符和附加格式字符外,如果還有
其他字符,則在輸入數(shù)據(jù)時要求按一一對應(yīng)的位置原樣輸入這些字符,比如兩個格式說
明之間有一個逗號,則從鍵盤輸入時輸入量之間也應(yīng)照原樣輸入逗號。A選項正確。
(21)有以下程序
#include<stdio.h>
main()
{inta=l,b=2,c=3,d=0;
if(a==l&&b++==2)
if(b!=2||c-!=3)
printf("%d,%d,%d\n",a,b,c);
elseprintf(”%d,%d,%d\rT,a,b,c);
elseprintf("%d,%d,%d\n",a,b,c);
}
程序運行后的輸出結(jié)果是()o
A)1,3,2
B)1,3,3
O1,2,3
D)3,2,1
答案:B
【解析】。Iso總是和最近的if配對,所以進入第一個if語句中條件判斷時,因為是邏輯與
操作需要兩邊運算對象的值均為非零值,才為真,所以需要逐個執(zhí)行判斷的結(jié)果為L不
再執(zhí)行第二個case語句中的操作。而是進入第二個if語句條件判斷,因為b!=2條件成立
所以整個條件表達式的值為真,所以不再執(zhí)行邏輯或的第一個運算對象(c—!=3)c的值
不變,也不再執(zhí)行第一個else語句。打印a的值1,b的值3,c的值3。
(22)有以下程序
[include<stdio.h>
main()
{ints;
scanfC^d",&s);
while(s>0)
{switch(s)
{case1:printf("%d",s+5);
case2:printf("%d"/s+4);break;
case3:printf("%d",s+3);
default:printfC^d",s+1);break;
)
scanf("%d",&s);
)
)
運行時,若輸入123450<回車>,則輸出結(jié)果是()o
A)66656
B)6566456
C)66666
D)6666656
答案:B
【解析】switch語句的執(zhí)行流程是:首先計算switch后面圓括號中表達式的值,然后用此
值依次與各個case的常量表達式比較,若圓括號中表達式的值與某個case后面的常量表
達式的值相等,就執(zhí)行此case后面的語句,執(zhí)行后遇break語句就退出switch語句;若圓
括號中表達式的值與所有case后面的常量表達式都不等,則執(zhí)行default后面的語句。然
后退出。所以輸入1時打印65,輸入2時打印6,輸入3時打印64,輸入4時打印5,輸入5時打
印6。
(23)設(shè)有以下代碼
do{
while(條件表達式1)
循環(huán)體A;
}while(條件表達式2);
while(條件表達式1)
(
do{
循環(huán)體B;
}while(條件表達式2);
)
其中,循環(huán)體A與循環(huán)體B相同,以下敘述正確的是
A)循環(huán)體A與循環(huán)體B的執(zhí)行次數(shù)相同
B)循環(huán)體A比循環(huán)體B的執(zhí)行次數(shù)多?次
C)循環(huán)體A比循環(huán)體B的執(zhí)行次數(shù)少一次
D)循壞體A與循必、體B的執(zhí)行次數(shù)不確定
答案:A
【解析】while循環(huán)語句一般形式為:while(表達式):循環(huán)體},執(zhí)行過程為:首先判斷
表達式,成立(非0)則執(zhí)行循環(huán)體,不成立(0)則退出循環(huán)。do…while循環(huán)語句一
般形式為:do{循環(huán)體}while(表達式),執(zhí)行過程為:首先執(zhí)行循環(huán)體,之后判斷表達
式,成立(非0)則再一次執(zhí)行循環(huán)體,不成立(0)則退出循環(huán)。假設(shè)表達式1與表達
式2成立次數(shù)為nl與n2,若nl>n2,則循環(huán)體A執(zhí)行次數(shù)為n2+l,B執(zhí)行次數(shù)n2+l;若nl<n2,
則循環(huán)體A執(zhí)行次數(shù)為nLB執(zhí)行次數(shù)nl,A選項正確。
(24)有以下程序
#include<stdio.h>
main()
{inta=0,b=0;
for(;a<5;a++)
{if(a%2==0)continue;
b+=a;
break:
)
printf(*%d'n”,b);
程序運行后的輸出結(jié)果是()。
A)1
B)4
C)0
D)10
答案:A
【解析】for語句中,當(dāng)a=0時,滿足for循環(huán)中if語句的條件,執(zhí)行continue繼續(xù)下一
次循環(huán),a+1后再進入for語句循環(huán),此時a=l不滿足if語句,執(zhí)行b=b+a為1,接著執(zhí)行
break語句,終止循環(huán),最后輸出b=l,故答案為A選項,
(25)有以下程序
//include<stdio.h>
main()
{inti=5;
do
{if(i%3==l)
if(i%5==2)
{printf("*%d"zi);break;}
i++;
}while(i!=0);
printf("\n");
)
程序的運行結(jié)果是
A)*2*6
B)*3*5
C)*5
D)*7
答案:D
【解析】do...while語句是先執(zhí)行后判斷,所以第一次先執(zhí)行循環(huán)體,判斷i%3二=1的條
件,由于i為5所以余數(shù)為2,條件不成立,執(zhí)行i++,i的值為6,判斷while條件為真,第二次
執(zhí)行循環(huán)體,同第一次循環(huán)體的執(zhí)行過程一樣,i的值變?yōu)?,判斷while條件為真,第三次
執(zhí)行循環(huán)體,此時說3二=1條件成立,判斷i%5==2也成立,打印*與i的值,即*7,然后執(zhí)行
break語句,跳出循環(huán)。所以選擇D選項。
(26)有以下程序
//include<stdio.h>
main()
{intc(6]={10
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 護理實訓(xùn):靜脈輸液泵使用
- 心血管護理與疾病管理
- 供應(yīng)室團隊建設(shè)與溝通技巧
- 基礎(chǔ)護理中的感染爆發(fā)處理
- 護理告知制度的國際比較
- 聽辨樂器的音色課件
- 單孔腹腔鏡的護理
- 宜賓消防安全知識學(xué)習(xí)
- 學(xué)生五一消防安全提示
- 工地教育手冊講解
- 江蘇省鹽城市東臺市2024-2025學(xué)年六年級上學(xué)期期末考試英語試題
- 鐵塔冰凍應(yīng)急預(yù)案
- 文物復(fù)仿制合同協(xié)議
- 大貨車司機管理制度
- 主人翁精神課件
- 2025年1月浙江省高考技術(shù)試卷真題(含答案)
- 【低空經(jīng)濟】低空經(jīng)濟校企合作方案
- 第十單元快樂每一天第20課把握情緒主旋律【我的情緒我做主:玩轉(zhuǎn)情緒主旋律】課件+2025-2026學(xué)年北師大版(2015)心理健康七年級全一冊
- 家具制造行業(yè)企業(yè)專用檢查表
- 以租代購房子合同范本
- 脊柱內(nèi)鏡課件
評論
0/150
提交評論