(21)有以下程序:
程序運行后的輸出結(jié)果是( )。
(22)有以下程序:
程序運行后的輸出結(jié)果是( )。
A.02356
B.0235
C.235
D.2356
以下關于retllm語句的敘述中正確的是( )。
A.一個自定義函數(shù)中必須有一條return語句
B.一個自定義函數(shù)中可以根據(jù)不同情況設置多條retum語句
C.定義成void類型的函數(shù)中可以有帶返回值的return語句
D.沒有return語句的自定義函數(shù)在執(zhí)行結(jié)束時不能返回到調(diào)用處
(24)已定義以下函數(shù):
fun函數(shù)的返回值是( )。
一個整數(shù)
B.不確定的值
C.形參P中存放的值
D.形參P的地址值(25)以下程序段完全正確的是( )。
int * p;scanf(”%d”,&p);
B.int*p;scanf(”%d”,P);
C.int k,* P:&k;scanf(’’%d”,P);
D.int k,*p;*P=&k;scanf(”%d”,P);
(26)設有定義:
double a[10],*s=a;
以下能夠代表數(shù)組元素a[3]的是( )。
A.($s)[3]
B.}(s+3)
C.*s[3]
D.}s+3
27、有以下程序
程序運行后的輸出結(jié)果是( )。
A.6,2,3,4,5,
B.2,2,3,4,5,
C.1,2,3,4,5,
D.2,3,4,5,6,
(28)有以下程序:
程序運行后的輸出結(jié)果是( )。
A.4
B.34
C.31
D.32
(29)以下選項中正確的語句組是( )。
A.char*s;8={1.BOOK!”}i
B.char*s;8=”BOOK!”;
C.char S[10];S=”BOOK!”;
D.char S[];S=”BOOK!”;(30)若有定義語句:
char}sl=‘’0K”,:It s2=”ok”;
以下選項中,能夠輸出“OK”的語句是( )。
A.if(strcmp(sl,s2)!=0)puts(s2);
B.if(strcmp(sl,s2)!=0)puts(s1);
C.if(strcmp(sl,s2)==1)puts(s1);
D.if(strcmp(sl,s2)==0)puts(s1);
(31)有以下程序:
程序運行后的輸出結(jié)果是( )。
A.Afternoon
B.ftemoon
C.Morning
D.oming
(32)有以下程序,程序中庫函數(shù)islower(ch)用以判斷ch中的字母是否為小寫字母:
程序運行后的輸出結(jié)果是( )。
A.ab cd EFg!
B.Ab Cd EFg!
C.ab cd EFG!
D.aB cD EFG!
(33)有以下程序:
程序運行后的輸出結(jié)果是( )。
A.0
B.9
C.6
D.8
(34)有以下程序:
程序執(zhí)行后的輸出結(jié)果是( )。
A.55.
B.50
C.45
D.60
(35)有以下結(jié)構(gòu)體說明、變量定義和賦值語句:
則以下scanf函數(shù)調(diào)用語句有錯誤的是( )。
scanf(”%s”,s[0].name);
B.scanf(”%d”,&s[0].a(chǎn)ge);
C.scanf(”%c”,&(ps一>sex));
D.scanf(”%d”,ps一>age):
(36)若有以下語句:typedef struct S{int 9;char h;}T;以下敘述中正確的是( )。
A.可用s定義結(jié)構(gòu)體變量
B.可用T定義結(jié)構(gòu)體變量
C.S是struct類型的變量
D.T是struct S類型的變量
程序運行后的輸出結(jié)果是( )。
A.1002,ZhangDa,1202.0
B.1002,ChangRon9。1202.0
C.1001,ChangRon9,1098.0
D.1001,ZhangDa,1098.0
(38)設有宏定義:
#define IsDIV(k,n)((k%1"1==1)?1:O)且變量m已正確定義并賦值,則宏調(diào)用:
IsDIV(m,5)&&IsDIV(m,7)為真時所要表達的是( )。
判斷m是否能被5和7整除
B.判斷m被5和7整除是否都余l(xiāng)
C.判斷m被5或者7整除是否余1
D.判斷m是否能被5或者7整除
(39)有以下程序:
程序運行后的輸出結(jié)果是( )。
A.3
B.1
C.2
D.0
(40)有以下程序:
程序運行后的輸出結(jié)果是( )。
A.1 2
B.1 4
C.123 4
D.123 456
(21)B【解析】第一次執(zhí)行外循環(huán),i的值為3,第一次執(zhí)行內(nèi)循環(huán)j的值為1,j&1t;=2條件成立,打印i+j的值,即4;第二次執(zhí)行內(nèi)循環(huán)J的值為2,j&1t;=2條件成立,打印i+j的值,即5;再判斷條件不成立,打印回車換行符,跳出內(nèi)循環(huán)。第二次執(zhí)行外循環(huán),i的值為2,內(nèi)循環(huán)的執(zhí)行同第一次一樣,所以打印3和4,打印回車換行,結(jié)束內(nèi)循環(huán)。第三次執(zhí)行外循環(huán)i的值為1,同理內(nèi)循環(huán)中打印2和3,打印回車換行符,結(jié)束內(nèi)循環(huán)。
(22)C【解析】k的值為5,逐個對caBe語句進行匹配,均不匹配,執(zhí)行defau1t下的語句n=0;k一一。再執(zhí)行case2:ca804:后面的語句n+=2;k一一;。執(zhí)行break語句跳出switch判斷,打印n的值,即2。經(jīng)過第一次循環(huán)后,k的值為3,然后進行k>0&&11&1t;5條件判斷為真。第二次執(zhí)行循環(huán)體,執(zhí)行case3:后面的語句n+=1;k一一;。再執(zhí)行break語句跳出循環(huán),此時打印n的值3,此時k的值為2。第三次執(zhí)行循環(huán)體k的值為2,滿足條件,執(zhí)行case2:case4:后面的語句n+=2;k一一;。執(zhí)行break語句跳出循環(huán)體。打印n的值5。此時n不滿足條件k>0&&n&1t;5,所以結(jié)束循環(huán)。整個程序的打印結(jié)果為235。
(23)B【解析】在函數(shù)中允許有多個Iett1r11語句,但每次調(diào)用只能有一個return語句被執(zhí)行,因此只能返回一個函數(shù)值。定義成void類型的函數(shù),不允許從該函數(shù)取得返回值,也不允許使用return語句,c選項描述錯誤。沒有return語句的函數(shù)在執(zhí)行到函數(shù)的最后一條語句后會自動返回到調(diào)用處,A、D選項描述錯誤。因此B選項正確。
(24)A【解析】返回值為指針變量指向的數(shù)據(jù),該數(shù)據(jù)已被定義為整型。因此A選項正確。
(25)C【解析】A選項中錯在沒有對指針進行初始化,是無效指針,并且在scanf(”%d”,&p)中無需再進行取地址操作;B選項中沒有對指針進行初始化,是無效指針;D選項中語句+P=&k;的左端t pt是指針所指內(nèi)存空間的值,&k是地址,應為P=&k。因此C選項正確。
(26)B【解析】語句·s=a;表示指針變量s指向一維數(shù)
組a的首地址。a[3]表示引用數(shù)組a的第4個元素,+(s+i)表示引用指針8所指數(shù)組a的第i+1個元素,選項A、C、D的表示方法錯誤,只有B選項正確。
(27)A【解析】本題考查的是函數(shù)的地址調(diào)用,將數(shù)組名作為數(shù)組首地址進行傳遞,然后取首個數(shù)組元素值進行加1運算,循環(huán)5次。因此A選項正確。
(28)C【解析】本題重點考察二維數(shù)組名作為實參進行參數(shù)傳遞,在主函數(shù)中調(diào)用了fun函數(shù),實參為二維數(shù)組名a和兩個整數(shù)4.0,這樣對應定義fun函數(shù)首部有三種形式,這里采用了第一種形式——行指針,這樣在fun函數(shù)對s[i][j]進行操作實際上就是對主函數(shù)中的a[i][j]進行操作,再分析fun函數(shù)的作用便可知,是求二維數(shù)組第0列中的那個元素。因此C選項正確。
(29)B【解析】A選項去掉大括號就正確了;c選項和D選項應在定義時賦初值。因此B選項正確。
(30)B【解析】strcmp(s1,s2)是字符串比較函數(shù),比較規(guī)則是兩個字符串自左向右逐個字符相比(按照ASCI1碼值大小),-以第一個不相同的字符的大小作為比較結(jié)果。因為。O。&1t;10.,所以strcmp(s1,s2)為負值,只有B選項正確。
(31)A【解析】本題主函數(shù)中定義了一個指針數(shù)組a,可以將它看成一個以字符指針為元素的一維數(shù)組。和一般的一維數(shù)組名能賦給同類型指針變量一樣,該字符指針數(shù)組也可以賦給指向字符指針的指針,所以數(shù)組名a可以用做函數(shù)fun()的實參。在fun()函數(shù)中,++P操作使形參P往后移動一個字符指針的位置,即指針a[1]的位置。故最后通過礎nd()函數(shù)輸出的字符串為“Afternoon”。因此A選項正確。
(32)D【解析】調(diào)用缸函數(shù)后,實參數(shù)組名s1傳給形參指針P,P也指向數(shù)組s1。m函數(shù)的功能是遍歷字符數(shù)組中的所有字符,如果某一個字符是空格并且前一個字符是小寫字母的話,就把前一個字符轉(zhuǎn)換為大寫。程序中語句P[i一1]=P[i—1]一ga’+-A‘;即P[i一1]=P[i一1]一32,意思是將P[i一1]中的字符轉(zhuǎn)換為大寫。因此D選項正確。
(33)C【解析】主函數(shù)中調(diào)用f函數(shù),同時將數(shù)值3傳遞給變量x,執(zhí)行條件不滿足條件if(x==0I1X==1);跳過re—turn(3);,直接執(zhí)行語句Y=X}X—f(x一2);這里f(x一2)為函數(shù)的遞歸調(diào)用,再次訶用f函數(shù),此時x=1,判斷條件成立,返回3給f(1),Y=3}3—3=6,最后將6返回主函數(shù),并進行輸出。因此c選項正確。
(34)D【解析】內(nèi)部靜態(tài)變量是始終存在的,當函數(shù)被調(diào)用退出后,內(nèi)部靜態(tài)變量會保存數(shù)據(jù),再次調(diào)用該函數(shù)時,以前調(diào)用時的數(shù)值仍然保留著。m(a,5)的值是15,再次調(diào)用后Ⅲm=15,所以fun(b,4)=45,s=45+15=60。因此D選項正確。
(35)D【解析】本題考查結(jié)構(gòu)體的相關知識,題目中需要輸入一個變量,scanf要求參數(shù)為指針,而D選項中ps一>age為一個變量,不是指針,所以錯誤。
(36)B【解析】本題考查typ1edef重新聲明一種結(jié)構(gòu)體類型,那么T為結(jié)構(gòu)體類型,而不是結(jié)構(gòu)體變量,所以B選項正確。
(37)B【解析】本題考查結(jié)構(gòu)體變量的引用以及作為函數(shù)參數(shù),題目雖然看似復雜,其實比較容易,f函數(shù)的參數(shù)是結(jié)構(gòu)體變量,然后對參數(shù)重新賦值并返回,所以該題目的答案為B選項。
(38)B【解析1本題考查邏輯運算符的相關概念,邏輯與若要為真,那么兩邊都要為真,即m都能被5和7整除都余1,所以選項B正確。
(39)A【解析】本愿考查位運算符以及相關運算,‘為按位或,&為按位與,部么a'b為3,再與c按位與仍然為3,所以答案為A選項。
(40)D【解析】fprintf()函數(shù)向文本文件輸出數(shù)據(jù),將輸出的內(nèi)容按格式輸出翻硬盤的文本文件中。執(zhí)行兩次fprintf后。文件中的內(nèi)容為。123 456”,所以D選項正確。