版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
家二級C語言機(jī)試(函數(shù)和數(shù)組)模
擬試卷第1套
一、選擇題(本題共38題,每題1.0分,共38分。)
1、以下敘述中正確的是
A、用戶自己定義的函數(shù)只能調(diào)用庫函數(shù)
B、不同函數(shù)的形式參數(shù)不能使用相同名稱的標(biāo)識符
C、在C語言的函數(shù)內(nèi)部,可以定義局部嵌套函數(shù)
D、實(shí)用的C語言源程序總是由一個或多個函數(shù)組成
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:一個C語言源程序可以由一個或多個源文件組成,每個源文件可由
一個或多個函數(shù)組成,這些函數(shù)可以是自定義函數(shù),也可以是庫函數(shù),各個函數(shù)之
間沒有主從關(guān)系,不能嵌套定義函數(shù)。
2、若有定義語句:chartsl=nOK",*s2=nok";以下選項(xiàng)中,能夠輸出“0K”的語句
是
A^if(strcmp(sl,s2)!=0)puts(sl);
B、if(strcmp(sl,s2)!=0)puts(s2);
C、if(strcmp(s1>s2)==l)puts(sl);
D^if(strcmp(sLs2)==0)puts(sl);
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:字符串比較函數(shù)sircmp的功能是對si和s2所指字符串進(jìn)行比較。如
果slVs2,返回負(fù)數(shù),如果sl==s2,返回0,如果sl>s2,返回正數(shù),所以對于本
題來說,能夠輸出“OK"的語句是選項(xiàng)A)所指的語句。
3、有以下程序#includeintfun(inta,intb){if==0)returna;elseretum(fun(—a.—
b));}main。{printf("%d\n”,fun(4,2));}程序的運(yùn)行結(jié)果是
A、1
B、2
C、3
D、4
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:由程序可知函數(shù)fun(inta,intb)是一個遞歸函數(shù)。所以當(dāng)主函數(shù)中調(diào)
用fun(4,2)時,其執(zhí)行過程如下:fun(4,2)->fun(3,l)->fun(2,0),其返回值為
2o
4、以下敘述中正確的是
A、函數(shù)既可以直接調(diào)用自己,也可以間接調(diào)用自己
B、任何情況下都不能用函數(shù)名作為實(shí)參
C、函數(shù)的遞歸調(diào)用不需要額外開銷,所以效率很高
D、簡單遞歸不需要明確的結(jié)束遞歸的條件
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:一個C語言源程序可以由一個或多個源文件組成,每個源文件可由
一個或多個函數(shù)組成,各函數(shù)之間是平行的,除了主函數(shù)外,函數(shù)之間可以相互調(diào)
用,甚至C語言中的函數(shù)可以直接或間接地自己調(diào)用自己,稱之為遞歸調(diào)用,該
調(diào)用主要用于把要解決的問題轉(zhuǎn)化為一個新的問題,而這個新問題的解決方法仍與
原來的解法相同,只是所處理的對象有規(guī)律地遞增或遞減,可以應(yīng)用這個轉(zhuǎn)化過程
使問題得到解決,同時為了有效使用遞歸調(diào)用必定要有一個明確的結(jié)束遞歸的條
件。而每次進(jìn)行遞歸調(diào)用時候,需要利用棧保存現(xiàn)場信息,因此并不會提高效率,
選項(xiàng)C)和選項(xiàng)D)不正確。函數(shù)名表名了函數(shù)的入口地址,如果函數(shù)的形參為指向
函數(shù)的指針變量,那么對應(yīng)的實(shí)參必須為函數(shù)名,因此函數(shù)名可以為函數(shù)的參數(shù),
選項(xiàng)B)錯誤。
5、以下敘述中錯誤的是
A、用戶定義的函數(shù)中可以沒有return語句
B、用戶定義的函數(shù)中若沒有return語句,則應(yīng)當(dāng)定義函數(shù)為void類型
C、用戶定義的函數(shù)中可以有多個return語句,以便可以調(diào)用一次返回多個函數(shù)值
D、函數(shù)的return語句中可以沒有表達(dá)式
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:函數(shù)值通過return語句返回,return語句的形式如下:return表達(dá)式
或return(表達(dá)式);當(dāng)程序執(zhí)行到return語句時,程序的流程就返回到調(diào)用該函數(shù)
的地方,并帶回函數(shù)值。在同一函數(shù)內(nèi),可以根據(jù)需要,在多處出現(xiàn)relum語句,
在函數(shù)體的不同部位退出函數(shù)。無論函數(shù)體中有多少個return語句,return語句只
可能執(zhí)行一次,返回一個函數(shù)值。return語句中也可以不含有表達(dá)式,這時必須定
義函數(shù)為void類型,它的作用只是使流程返回到調(diào)用函數(shù),并沒有確定的函數(shù)
值。函數(shù)體內(nèi)可以沒有return語句,這時也必須定義函數(shù)為void類型,程序的流
程就一直執(zhí)行到函數(shù)末尾的“}”,然后返回調(diào)用函數(shù),也沒有確定的函數(shù)值帶回。
6、以下敘述中正確的是
A、函數(shù)調(diào)用時,不必區(qū)分函數(shù)名稱的大小寫
B、調(diào)用函數(shù)時,函數(shù)名必須與被調(diào)用的函數(shù)名完全一致
C、函數(shù)名允許用數(shù)字開頭
D、在函數(shù)體中只能出現(xiàn)一次retunr語句
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:在標(biāo)準(zhǔn)C中,函數(shù)的定義形式為:函數(shù)返回值的類型名函數(shù)名(類型
名形式參數(shù)1,類型名形式參數(shù)2,...)(說明部分語句部分}需要說明的是
函數(shù)名和形式參數(shù)都是由用戶命名的標(biāo)識符,在同一程序中,函數(shù)名必須惟一,形
式參數(shù)名只要在同一函數(shù)中惟一即可,與其他函數(shù)中的變量可以同名。relurn語句
的作用是返回函數(shù)的值,在函數(shù)中可以出現(xiàn)多個或者沒有。
7^有以下程序intf(intx);main(){intn=l,m;m=f(f(f(n)));printf("%d\n",
m);}intflinlxl{returnx*2;}程序運(yùn)行后的輸出結(jié)果是
A、1
B、2
C、4
D、8
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:程序考查了函數(shù)的調(diào)用。對于m=f(f(n)));首先計(jì)算最內(nèi)層的函數(shù)調(diào)
用f(n),執(zhí)行f函數(shù),得到返回值2,然后計(jì)算f(2),得到返回值為4,最后計(jì)算
f(4),得到計(jì)算結(jié)果為8。
8、有以下程序#includedoublef(doublex);main(){doublea=0;inti;for(i=0;i
<30;i+=l0)a+=f((double)i);printf("%5.f\n",a);)doublef(doublex){return
X*X+1;}程序運(yùn)行后的輸出結(jié)果是
A、401
B、500
C、503
D、1404
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:由于函數(shù)f的作用是對形參x求平方再加1,所以在主函數(shù)中,循環(huán)
第一次執(zhí)行后變量a的值等于1,第二次執(zhí)行后,變量a的值等于102,第三次執(zhí)
行后,變量a的值等于50等
9、有以下程序#inchideintf(intx);main(){inta,b=0;for(a=0;a<3;a++)
{b=b+f(a);putchar(,A,+b);})intf(intx){returnx*x+l;}
A、BCD
B、BDI
C、ABE
D、BCF
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:在函數(shù)main。中,第一次執(zhí)行for循環(huán)時,b的值等于1,此輸出字母
B:第二次執(zhí)行for循環(huán)時,b的值等于3,此時輸出字母D;第三次執(zhí)行for循環(huán)
時,b的值等于8,此時輸出字母I。
10、有以下程序程nchideintfun(intn){inta;if(n==l)retum1;a=n+fun(n-l);
return(a);)main()(printf(M%d\n",fun(5));}程序的輸出結(jié)果是
A、14
B、10
C>15
D、9
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:函數(shù)fun為遞歸定義的函數(shù),當(dāng)調(diào)用
fun(5)-5+fun(4)-5+4+fun(3)-5+4+3+fun(2)―5+4+3+2+fun(1),因此最后的結(jié)果
為15。
11>設(shè)有如下函數(shù)定義intfun(intk){if(kVl)return0;elseif(k==l)return1;else
returnfun(k-1)+1;}若執(zhí)行調(diào)用語句:n=fun(3);,則函數(shù)fun總共被調(diào)用的次數(shù)
是
A、2
B、4
C、3
D、5
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析?:這道題目考查了函數(shù)的遞歸調(diào)用,當(dāng)執(zhí)行調(diào)用語句n=fun(3)時,返回
n=fun(2)+l,再執(zhí)行fun(2),返回n:fun(l)+1+1,而fun(l)等于1,所以最后n的
值等于3。而函數(shù)fun總共被調(diào)用了3次。即fun(3j,fun(2),fun(l)。
12,有以下程序intfun(intn){if(n==l)retum11elsereturn(n+fun(n-1))?}main()
{intx;scanf("%d"&x);x=fun(x);printf(n%d\n",x);}執(zhí)行程序時,給變量x
輸入10,程序的輸出結(jié)果是
A、54
B、65
C、45
D、55
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:在C語言中函數(shù)可以遞歸調(diào)用,即直接或間接地自己調(diào)用自己。本
題在函數(shù)intfun(intn)的定義中乂出現(xiàn)了對函數(shù)fun的調(diào)用,所以函數(shù)fun是遞歸函
數(shù)。因而在主函數(shù)中調(diào)用x二fun(x)時,當(dāng)輸入10賦給變量x時,遞歸調(diào)用的過程
為:fun(l0)=10+fun(9)=10+9+fun(8)=10+9++8+fun(7)=10+9++8+7+fun(6)
=10+9++8+7+6+fun(6)=10+9++8+7+6+5+fun(4)=10+9++8+7+6+5+4+fun(3)
=10+9++8+7+6+5+4+3+fun(2)=10+9++8+7+6+5+4+3+2+fun(1)
=10+9++8+7+6+5+4+3+2+1=55
13、以下敘述中正確的是
A、只有全局變量才有自己的作用域,函數(shù)中的局部變量沒有作用域
B、只要是用戶定義的標(biāo)識符,都有一個有效的作用域
C、只有在函數(shù)內(nèi)部定義的變量才是同部變量
D、局部變量不能被說明為static
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:在函數(shù)內(nèi)定義的變量是局部變量,而在函數(shù)之外定義的變量稱為外部
變量,也是全局變量。全局變量可以為源文件中其他函數(shù)所共用,其作用域?yàn)閺亩?/p>
義變量的位徨開始到源文件結(jié)束。因此只要用戶定義的標(biāo)識符,全部都有作用域。
局部變量可以說明為auto、register以及statico
14>有以下程序#includeinta=l,b=2;voidfunl(inta,intb){printfr%d%d",
a,b);)voidfun2()(a=3;b=4;)main(){funl(5,6);fun2();printf("%d%d\
n",a,b);}程序運(yùn)行后的輸出結(jié)果是
A、3456
B、1256
C、5612
D、5634
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:函數(shù)funl。的作用是輸出局部變量a和b的值,在主函數(shù)中執(zhí)行
funl(5,6)的結(jié)果是輸出5,6:函數(shù)fun2()的作用是給變量a和b分別賦值3,4;
執(zhí)行fun2()的作用是輸H3,4。
15、有以下程序#includefun(inta,intb){intstaticm=0,i=2;i=i+m+l;
m=i+a+b;returnm;)inain(){intk=4,m=l,p;p=fun(k,m);printf("%d,”,
p);p=fun(k,m);printf(n%d\n",p);)程序運(yùn)行后的輸出結(jié)果是
A、8,17
B、7,16
C、8,8
D、7,17
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:本題考查了靜態(tài)變量以及局部變量的同名問題。主函數(shù)中調(diào)用fun函
數(shù)兩次,第一次調(diào)用fun(4,1),形參a和b接收以后,i值為3,m的值為8,調(diào)
用結(jié)束返回8存放到p中并且輸出p的值為8,除了靜態(tài)變量m和i,變量a,b撤
銷。第二次調(diào)用fun(4,1),接收實(shí)參值以后,i為3+8+1,而m為12+4+1,即輸
出函數(shù)值17c
16、在C語言中,只有在使用時才占用內(nèi)存單元的變量,其存儲類型是
A、externftregister
B、auto和static
C、staticWregister
D、auto和register
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:在C語言中,動態(tài)變量(auto)存儲在內(nèi)存中的動態(tài)存儲區(qū),在程序運(yùn)
行中,只有當(dāng)調(diào)用變量所在的函數(shù)時,系統(tǒng)才臨時給變量分配內(nèi)存單元;全局變量
(extern)一經(jīng)定義,系統(tǒng)為其分配固定的內(nèi)存單元;靜態(tài)變量(static),編譯系統(tǒng)為其
分配固定的存儲空間;寄存器變量(register)不保存在內(nèi)存上,而是直接存儲在CPU
的寄存器中。
17、有以下程序程ncludeinifun(){staticintx=l;x+=l;returnx;}main(){inti,
s=l:for(i=l;i<=5;i++)s+=fun();printf(n%d\n",s);}程序運(yùn)行后的輸出結(jié)
果是
A、11
B、21
C、6
D、120
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:這道試題主要考查了局部靜態(tài)變量的應(yīng)用。在函數(shù)fun()中定義了局
部靜態(tài)變量整型x,其初值等于1,在主函數(shù)中循環(huán)執(zhí)行5次,第一次變量s的值
等于3,變量x的值等于2,第二次變量s的值等于6,變量x的值等于3,第三次
變量s的值等于10,變量x的值等于4,第四次變量s的值等于15,變量x的值等
于5,第五次變量s的值等于21,變量x的值等于6。
18、有以下程序#includeintfun(){staticintx=l;x*=2;returnx;}main(){int
i,s=l;for(i:1;i<=2;i++)s=fun();printf("%d\n",s);}程序運(yùn)行后的輸出
結(jié)果是
A、4
B、1
C、0
D、8
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:在子函數(shù)fun()中定義局部靜態(tài)變量x,其初值等于I,然后再把其值
擴(kuò)大1倍后返回。在主函數(shù)中執(zhí)行for循環(huán)語句2次,調(diào)用函數(shù)fun()兩次,所以變
量s的值等于4。這里要強(qiáng)調(diào)的一點(diǎn)是當(dāng)函數(shù)fun()執(zhí)行完畢后,局部靜態(tài)變量x的
值不會丟失,仍然有效。
19、下列定義數(shù)組的語句中,正確的是
A、intN=10;intx|N];
B、#defineN10intx[N];
C^intx[0.10];
D、intx|];
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:數(shù)組說明的一般形式為:類型說明符數(shù)組名[常量表達(dá)式]:其中類型
說明符可以是任一種基本數(shù)據(jù)類型或構(gòu)造數(shù)據(jù)類型,數(shù)組名是定義的數(shù)組標(biāo)識符。
常量表達(dá)式表示數(shù)據(jù)元素的個數(shù),也就是數(shù)組的長度,必須是整型常量。
20、有下列程序:main(){inti,s=0,t[]={l,2,3,4,5,6,7,8,9):for(i=0;
i<9;i+=2)s+=*(t+i);printf("%d\n",s);}程序執(zhí)行后的輸出結(jié)果是
A、20
B、45
C、36
D、25
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:本題在主函數(shù)中定義了一維整型數(shù)組山={123,4,5,6,7,8,9};然后在
for循環(huán)語句中自變量i從0開始,每次自加2,執(zhí)行s+=*(l+i)語句,因?yàn)镃語言規(guī)
定數(shù)組名代表數(shù)組的首地址,也就是第一個元素的地址。因此*(t+i)代表數(shù)組的第
i+1個元素。所以程序運(yùn)行的結(jié)果是1+3+5+7+9=25,即變量s的值等于25o
21、下列程序中函數(shù)f的功能是:當(dāng)flag為1時,進(jìn)行由小到大排序;當(dāng)flag為0
時,進(jìn)行由大到小排序。voidflintb[],intn,intflag){inti,j,t;for(i=0:i<n-
1;i++)for(j=i+l.j<n.j++)it(tlag?b[iJ>bDJ:bUJ<b|jJ){t=blij;bLiJ=b|jJ;bDJ:
l;))main(){inta[10]={5,4,3,2,1,6,7,8,9,10),i;f(&a[2],5,0);
f(a,5,1);for(i=0;i<10;i++)printf("%d,\a[]);}程序運(yùn)行后的輸出結(jié)果
是
A、1,2,3,4,5,6,7,8,910,
B、3,4,5,6,7,2,1,8,9,10,
C、5,4,3,2,1,6,7,8,9,10,
D、10,9,8,7,6,5,4,3,2,1,
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:主函數(shù)中進(jìn)行了兩次f函數(shù)的調(diào)用。第一次傳遞給形參數(shù)組b的地址
為元素a[2]的地址,n接收數(shù)據(jù)位5,因此數(shù)組b中元素為3,2,1,6,7,此時flag的
值為0,進(jìn)行由大到小排序,而數(shù)組b和實(shí)參數(shù)組a共用一段存儲空間,第一次調(diào)
用結(jié)束以后,數(shù)組a的值為5,4,7,6.3,2,1,8,9,10。第二次調(diào)用f函數(shù),形參數(shù)組接收
實(shí)參數(shù)組a的首地址,取5個元素,由小到大排序:調(diào)用結(jié)束以后,數(shù)組a的值為
3,4,5,6,7,2,1,8,9,10o
22N有以下程序#includemain(){int武6]={10,20,30,40,50,60}?*p,*s;
p=c:S=&c[5];printf("%d\n",s-p);)程序運(yùn)行后的輸出結(jié)果是
A、50
B、6
C、5
D、60
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:主函數(shù)中指針變量p指向數(shù)組c,s保存了數(shù)組最后一個元素的地
址,那么S-P為兩個地址之間的元素差5。
23、如果定義floata[10],x;則以下敘述中正確的是
A、表達(dá)式a+1是非法的
語句a=&x;是非法的
C、三個表達(dá)式a[l]、*(a+l)、*&a[l]表示的意思完全不同
D、表達(dá)式是非法的,應(yīng)該寫成*(&(a[l]))
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:定義語句floataf|10],x;以后,數(shù)組名a表示了數(shù)組元素的首地
址,是常量在程序中不能更改,因此選項(xiàng)A)是的描述是正確的。而指向運(yùn)算符和
取址運(yùn)算符,是互反運(yùn)算符優(yōu)先級相同,*&a[l]和氣&a[l])含義相同。
24>若有以下程序#inckidemain(){inti,j=0;chara|]="Howareyou!",b|10];
for(i=0;a[i];i++)iRa[i]='')b[j++]=a[i+l];b[j]='\O';printf("%s\n",b);)貝1]
程序的輸出結(jié)果是
A、Howareyou
B、Hay!
C、Howareyou!
D、ay
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:主函數(shù)中利用for循環(huán)訪問字符串a(chǎn)的每一個字符,判斷當(dāng)前字符是
否為空格,如果是空格則保存該空格后面的一個字符存放到字符數(shù)組b中。在字符
串“Howareyou!”中,第一個空格后面字符為出,第二個空格后面字符為V。
25、有以卜程序#include#defineN4voidfun(inta[][N],intb||)(inti;for(i=0;i
<N;i++)b[i]=a[i][i]-a[i][N-l-i];)voidmain(){intx[N][N]={{1,2,3,4),{5,
6,7,8),{9,10,11,12),(13,14,15,16)),y[N],i;fun(x,y);
for(i=0;i<N;i++)printf("%d,",y[i]);printf("\nH);}程序運(yùn)行后的輸出結(jié)果
是
A、-12,-3,0,0,
B、-3,-1,1>3,
C、0,1,2,3,
D、-3,-3,-3,-3,
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:fun函數(shù)的功能是求出二維數(shù)組a中第i行第i個元素與第N-1-i元素
的差.賦給在主函數(shù)中,把實(shí)參二維數(shù)組x和一維數(shù)組y傳遞給形參a和
b,最后輸出一維數(shù)組y中元素的值。
26、有下列程序:main(){intx[3][2]={0},i;for(i=0;i<3;i++)scanf("%d,\
x[i]);printf("%3d%3d%3dkn",x[0][0],x[0][l],x[l][0]);}若運(yùn)行時輸入:24
6<CR>,則輸出結(jié)果為
A、200
B、240
C、204
D、246
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:語句x[3H2|={0}表示將二維數(shù)組x的所有元素賦初值0,而循環(huán)語句
for=(i=0;iV3;i++)stallf("%cTx[iD表示對數(shù)組元素x[0][0]、x[l][0],x⑵[0]賦
值。所以當(dāng)運(yùn)行程序時,輸入246VCRA時,數(shù)組元素x[0][0]=2、x[l][0]=4>
x|2]|0|=6,因此,輸出數(shù)組元素x[0H0]=2、x[0][l]=0>x⑴⑼=4的值204。
27、有下列程序:main(){inti4|]|3]={9,8,7,6,5,4,3,2,1);for(i=0;i
<3;i++)printfC%d"t[2-i][i]);}程序執(zhí)行后的輸出結(jié)果是
A、753
B、369
C>751
D、357
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:由于在程序中定義了二維數(shù)組8,7,6,5,4,3,2,
1);由二維數(shù)組的存儲方式按行存儲,即初始化完第一行的所有列再初始化下一行
的元素??芍@是一個3行3列的二維數(shù)組,第一行的元素為{9,8,7),第二行
的元素為(6,5,4),第三行的元素為{3,2,l}o然后用for循環(huán)輸出
t[!][1]>t|0|[2],它們的值分別為3、5、70
28、以下錯誤的定義語句是
A>intx[4][3]={(l,2,3],(1,2,3},{1,2,3},{1,2,3J):
B>intx[][3]={{0},{1},{1,2,3});
C>intx[][3]={l,2,3,4);
D>intx[4][]={{l,2,3),{1,2,3),[1,2,3),{1,2,3));
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:一維數(shù)組定義和初始化是允許省略行下標(biāo),不允許省略列下標(biāo)。
29、有以下程序#include<stdio.h>#deftneN3voidfun(inta[][N],intb[]){int
ij;for(i=0;i<N;i++){b[i]=a[i][0];fbr(j=l;j<N;j++)if(b[i]<
a[i][j])b[i]=a[i][j];})main(){intx[N][N]={1,2,3,4,5,6,7,8,9),y[N],
i;fun(x,y);for(i=0;i<N;i++)printf("%d,",y[i]);printf("\nn);}
A、1?3,5?
B、2,4,8,
C、3.5.7
D、3,6,9,
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:函數(shù)fun()的作用是求出二維數(shù)組中每一行中的最大元素,所以
在main()函數(shù)中執(zhí)行完fun(x,y)后,數(shù)組y中的元素為二維數(shù)組x[N]|N]每一行的最
大元素。
30、以下選項(xiàng)中,能正確進(jìn)行字符串賦值的是
A、chars[5]={'A',A「C','DI'E');
B、char*S="ABCDE”;
C、chars[4][5]={1,ABCDE");
D、char*s;gets(S);
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:對于選項(xiàng)A)字符串中無法存放字符串結(jié)束標(biāo)志、(F,選項(xiàng)c)每行僅
僅存放5個字符,同樣的不能存放字符串結(jié)束標(biāo)志,選項(xiàng)D)中指針變量s沒有實(shí)
際的內(nèi)存空間,無法存放輸入的字符串。因此正確的選項(xiàng)為B),相當(dāng)于char*s:
s="ABCDE”,把字符串常量的首地址存放到指針變量中存儲。
31、以下敘述中正確的是
A、下面的語句用賦初值方式來定義字符串,其中,'\0,是必須的char
strl[]={,s,,T,”‘,'\0');
B、有定義語句:charstrl[尸'strF;,數(shù)組strl將包含4個元素
C、字符串常量"strl”的類型是:字符串?dāng)?shù)據(jù)類型
D、字符數(shù)組的每個元素可存放一個字符,并且最后一個元素必須是、(T字符
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:選項(xiàng)B)中除了字符串中實(shí)際字符之外,還要存儲字符串結(jié)束標(biāo)志,
應(yīng)為5個元素。在C語言中沒有字符串?dāng)?shù)據(jù)類型,因此選項(xiàng)C)不正確,選項(xiàng)D)字
符數(shù)組不一定必須存放字符串,因此沒有規(guī)定最后一個元素為字符串結(jié)束標(biāo)志。
32、以下敘述中正確的是
A、不能用字符串常量對字符數(shù)組名進(jìn)行整體賦值操作
B、字符串常量"Hello”會被隱含處理成一個無名字符型數(shù)組,它有5個元素
u
C、charstr[7]="string!;在語法上是合法的,運(yùn)行也是安全的
D、char*str:str="Hello';與charstr口:str="Hello":效果是一樣的
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:字符數(shù)組僅僅可以采用定義時初始化以及輸入得到數(shù)據(jù),在程序其他
部分不允許對其進(jìn)行賦值。字符串常量中除了實(shí)際字符之外還有結(jié)束標(biāo)志,選項(xiàng)
B)錯誤,而選項(xiàng)C)中,沒有空間存放字符串結(jié)束標(biāo)志,因此運(yùn)行是不安全的。選
項(xiàng)D)中第一個SU?為指針,可以賦值,而后面的為數(shù)組,在程序中賦值出錯。
33、設(shè)有定義語句:char*aa[2]={“abcd”JABCD”};則以下敘述正確的是
A、aa數(shù)組的兩個元素只能存放含有4個字符的一維數(shù)組的首地址
B、aa數(shù)組的值分別是字符串“abed”和“ABCD”
C、aa是指針變量,它指向含有兩個元素的字符型數(shù)組
D、aa⑼存放了字符串“abed”的首地址
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:題目中char*aa[2],定義了指針數(shù)組aa,有兩個元素,aa[0]存放
“abed”地址,而aa[l]存放“ABCD”地址。
34、設(shè)有定義:chars[81];inti=0;以下不能將一行(不超過80個字符)帶有空格
的字符串正確讀入的語句或語句組是
A、while((s[i++]=getchar())!=,\n');s[i]=,\0,;
B、scanf(H%s",s);
C^gets(s);
D、do{scanf("%c",&s[i]);)while(s[i++]!=,\n*);s[i]=,\0,
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:本題考查標(biāo)準(zhǔn)輸入輸出函數(shù)和循環(huán)語句。gets(s)函數(shù)的作用是將輸入
的字符讀入字符串s,直到遇到回車。而scanf()函數(shù)接收字符串時的結(jié)束標(biāo)志為回
車或者空格。
35、有以卜程序#inc1udevoidmain。{chars[]="012xy\08s34f4w2";inti,n=0;
for(i=0;s[i]!=0;i++)if(s[i]>='0'&&s[i]<='9')n4T;printf(H%d\nn,n);}程序
運(yùn)行后的輸出結(jié)果是
A、0
B、7
C、3
D、8
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:在主函數(shù)中的for循環(huán)語句中,當(dāng)s[i]的值不等于0—9之間的數(shù)字
時,結(jié)束循環(huán)語句的執(zhí)行。由字符數(shù)組s的初值可以得到for循環(huán)語句執(zhí)行了三
次,所以變量n的值等于3。
36、有以下程序main。{charch[]="uvwxyz",*pc;pc二ch;print!(M%c\n",
*(pc+5));}程序運(yùn)行后的輸出結(jié)果是
A、0
B、元素ch⑸的地址
C、z
D、字符y的地址
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:在程序中語句pc二ch;的功能是字符指針pc指向字符串?dāng)?shù)組ch[]的地
址,而木(ps+5)表示字符串?dāng)?shù)組ch[]中第6個字符z。
37、以下關(guān)于字符串的敘述中正確的是
A、兩個字符串中的字符個數(shù)相同時才能進(jìn)行字符串大小的比較
B、可以用關(guān)系運(yùn)算符對字符串的大小進(jìn)行比較
C、空串比空格打頭的字符串小
D、C語言中有字符串類型的常量和變量
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:C語言本身并沒有設(shè)置一種類型來定義字符串變量,卻允許使用“字
符串常量''。字符串常量是由雙引號括起來的一串字符。任意兩個字符串的大小比
較要調(diào)用字符串比較函數(shù)strcmp(sl,s2)來進(jìn)行,其比較的方法是依次對si和s2
中對應(yīng)位置上的字符兩兩進(jìn)行比較,當(dāng)出現(xiàn)第一對不相同的字符時,即由這兩個字
符決定所在串的大小(比較字符大小的依據(jù)是其ASCII碼值)。
38、有下列程序:fun(charp[][10]){intn=O,i;for(i=0;i<7;i++)
if(p[i][0]=,T,)n+-;returnn;)main(){charstr|]|10]={MMon","Tue","Wed",
"Thu",Tri","Sat%MSunM);printf("%d\n".fun(str));}程序執(zhí)行后的輸出結(jié)
果是
A、I
B、3
C、0
D、2
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:本題在主函數(shù)中定義了一個字符二維數(shù)組str[][10],并用{“Mon”,
'"Tue”,"Wed”,“Thu”,“Fri”,"Sat”,“Sun”}初始化。函數(shù)ftin(charp口[10])的功能
是統(tǒng)計(jì)出p[][10]+p[i][D]等于字符T的個數(shù)。所以fun(str)的功能是統(tǒng)計(jì)一周七天
中英文名稱首字母為“T”的個數(shù)。因?yàn)樽址癟ue”和“Thu”的首字符是“T”,所以
n=2o
國家二級C語言機(jī)試(函數(shù)和數(shù)組)模
擬試卷第2套
一、選擇題(本題共38題,每題1.0分,共38分。)
1、若各選項(xiàng)中所用變量已正確定義,函數(shù)fun中通過return語句返回一個函數(shù)
值,以下選項(xiàng)中錯誤的程序是
A、main(){.......x=fun(2>10);.......)floatfun(inta,intb){........}
B、floatfun(inta,intb){.......)main(){.......=fun(i,j);........}
C^floatfun(int,int);main(){.......x=fiin(2,10);.......)floatfun(inta,intb){........)
D、main(){floatfun(inti,intj);.......x=fun(ij);.......}floatfun(inta,intb){.........)
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:「語言規(guī)定,函數(shù)必須先定義.后調(diào)用(函數(shù)的返向值類型為面或
char時除外)。在選項(xiàng)A)中,調(diào)用的子函數(shù)在調(diào)用后面定義,所以不正確。在選項(xiàng)
B)、C)中,被調(diào)用函數(shù)在主函數(shù)之前定義,再在主函數(shù)中調(diào)用,所以是正確的;在
選項(xiàng)D)中,在主函數(shù)中先對子函數(shù)floatfun(inti,in[j)進(jìn)行了聲明,然后進(jìn)行調(diào)
用。
2、有以下程序#includemain(){charp[20]={匕',力‘,'c',2,},q[]="abc",
r[]="abcde";strcat(p,r);strcpy(p+strlen(q),q):printf("%d\n”.strlen(p));}
程序運(yùn)行后的輸出結(jié)果是
A、9
B、11
C、6
D、7
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:字符串連接函數(shù)strcal(p,r)的功能是把字符數(shù)組p[]和山連接起來,
此時字符數(shù)組p□的有效字符長度為9,再執(zhí)行strcpy(p+sirlen(q),q)字符串復(fù)制函
數(shù),把字符數(shù)組q口復(fù)制到字符數(shù)組p[]從p[3]開始到p[5]數(shù)組位置中,由于字符數(shù)
組q|]中的內(nèi)容為字符串“abc”復(fù)制時把字符串結(jié)束標(biāo)志\nul「也復(fù)制到字符數(shù)組
p口中,這時字符函數(shù)strlen(p)返回字符數(shù)組p口的有效字符長度為6。
3、若有以下定義和語句charsl[10]="abed!”,*s2="\nl23\\":printf("%d%d\
n",strlen(sl),strlen(s2));則輸出結(jié)果是
A、105
B、107
C、55
D、58
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:本題要注意的是轉(zhuǎn)義字符的問題,在字符串s2中,有兩個轉(zhuǎn)義字
符,分別是回車換行符和反斜線。所以其字符串長度等于5。
4、以下敘述中正確的是
A、函數(shù)名代表該函數(shù)的入口地址
B、所有函數(shù)均不能接受函數(shù)名作為實(shí)參傳入
C、函數(shù)體中的語句不能出現(xiàn)對自己的調(diào)用
D、如果函數(shù)帶有參數(shù),就不能調(diào)用自己
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:函數(shù)形、實(shí)參傳遞的時候,要求對應(yīng)位置類型一致即可,如果實(shí)參為
函數(shù)名,可以定義相應(yīng)的形參為指向函數(shù)的指針變量來獲得該函數(shù)的入口地址,因
此選項(xiàng)B)錯誤的,在C語言中允許進(jìn)行遞歸調(diào)用,即自己調(diào)用自己,選項(xiàng)C)和選
項(xiàng)D)是錯誤的。
5、己定義以下函數(shù)intfun(int*p){retum*p;)fun函數(shù)返回值是
A、不確定的值
B、一個整數(shù)
C、形參p中存放的值
D、形參p的地址值
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:由函數(shù)inlfun(int*p){re【um*p;}的定義可知,返回值為整型指針變量
p所指向的數(shù)據(jù)。
6、有以下程序intadd(inta,intb){retum(a+b);}main(){intk,(*f)(),a=5,
b=10;f=add;…}則以下函數(shù)調(diào)用語句錯誤的是
A^k=add(a,b);
B、k=(*f)(a,b);
C、k=*f(a,b);
D、k=f(a,b);
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:在語句“k=*f(a,b)”中,由于“()”的優(yōu)先級高于“*”,所以“*f(a,b);”表
示其返回類型為指針的帶有兩個整型參數(shù)的函數(shù),而不是整型數(shù)值,因此選項(xiàng)C)
為錯誤的調(diào)用形式。
7、以下選項(xiàng)中敘述錯誤的是
A、在C程序的同一函數(shù)中,各復(fù)合語句內(nèi)可以定義變量,其作用域僅限本復(fù)合語
句內(nèi)
B、C程序函數(shù)中定義的賦有初值的靜態(tài)變量,每調(diào)用一次函數(shù),賦一次初值
C、C程序函數(shù)中定義的自動變量,系統(tǒng)不自動賦確定的初值
D、C程序函數(shù)的形參不可以說明為static型變量
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:在函數(shù)定義的靜態(tài)變量,只需要賦值1次,即可保存初始值,不需要
每次調(diào)用時都賦初始值。
8、有以下程序#includeintf(intx,intY){retum((y-x)*x);)main(){inta=3,
b=4,c=5,d;d=f(f(a,b),f(a,c));printf(n%d\n",d);}程序運(yùn)行后的輸出
結(jié)果是
A、10
B、8
C、9
D、7
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:本題考查函數(shù)的嵌套調(diào)用。首先計(jì)算f(a,b)與f(a,c),f(a,b)=(b-
a)*a=3,f(a?c)=(c-a)*a=6,然后計(jì)算f(3,6)=(6.3)*3=9o
9、有以下程序voidfun[inta,intb,intC){a=b;b=c;c=a;}main(){inta=10,
b=20,c=30;fun(a,b,@C)@;printf("%d,%d,%d\n”,c,b,a);)程序運(yùn)
行后的輸出結(jié)果是
A、10,20,30
B、20,30,10
C、30,20,10
D、0,0,0
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析?:函數(shù)fun中采用了變量作為參數(shù),那么參數(shù)傳遞以后,形參a,b,c的
變化對于實(shí)參a,b,c是沒有影響的,因此主函數(shù)中4b,c的值經(jīng)過fun調(diào)用以后,值
沒有變化。
10>有以下程序程ncludeintfun(intx){intp;if(x==0IIx==l)retum(3);p=x-
fun(x-2);retum(p);)main(){printf("%d\nM,fun(9));}程序運(yùn)行后的輸出結(jié)果
是
A、5
B、9
C、4
D、7
標(biāo)準(zhǔn)答案:D
C3x-0x-h
知識點(diǎn)解析:函數(shù)fun的主要功能是:,un<x,Lx-^x-2)其他?初值x的值
為9,因此fun(9)=9.fun(7)=9-(7-(5-(3-3))),因此答案為7。
11、以下選項(xiàng)中函數(shù)形參不是指針的是
A、tun(int&p){...}
B、fun(inta[10]){...}
C、fun(int*a){...}
D、fun(intP[]){...}
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:C語言中形參數(shù)組是指針變量,其數(shù)組中元素的個數(shù)由傳遞的實(shí)參數(shù)
組決定,因此可以在定義的時候,不給出元素個數(shù)的說明,因此選項(xiàng)B)和D)形參
均為指針變量,選項(xiàng)A)的定義在C語言中不存在的。
12、有以下程序(strcat函數(shù)用以連接兩個字符串)#include#includemain(){char
a[20]=MABCD\OEFG\0H,b[]==MIJK";strcat(a,b);printf("%s\n",a);}程序
運(yùn)行后的輸出結(jié)果是
A、ABCDE\OFG\OIJK
B、ABCDIJK
C、UK
D、EFGIJK
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:在字符串中字符'\0'表示字符串的結(jié)束標(biāo)志,所以字符串a(chǎn)和b相
連接的結(jié)果為ARCDIJKc
13、若有以下程序intf(inta[],intn){if(n>1){intt;t=f(a,n-1);returnt>a[n-
l]?t:a[n-l];}elsereturna[0];}main(){inta[]={8,2,9,1,3,6,4,7,5);
printf("%d\nn,f(a,9));)則程序的輸出結(jié)果是
A、9
B、I
C、8
D、5
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:主函數(shù)中調(diào)用f(a,9),遞歸函數(shù)的調(diào)用過程如下:
f(a,9)->f(a,8)->f(a,7)->f(a,6)->f(a,5)->fta,4)->f(a,3)->f(a,2)->f(a,l),f(a,l)得到返回值
為a[0],值為8,遞歸過程開始回歸,回歸過程描述如下:8>a[l],返回8T8>
a[2]不成立,返回a[2]的值為9……因此函數(shù)f的主要功能為計(jì)算數(shù)組中的最大
值。.主函數(shù)中輸出最大值為9。
14、有以下程序程td=l;voidfun(intP){intd=5;d+=p++;prinlf("%d",d);)
main(){inta=3;fun(a);d+=a++;printf("%d\nH,d);)程序的輸出結(jié)果是
A、96
B、94
C、84
D、85
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:代碼考查點(diǎn)為全局變量和局部變量的同名問題,若全局變量和某個函
數(shù)中的局部變量同名,則在該函數(shù)中,此全局變量被屏蔽,在該函數(shù)內(nèi),訪問的是
局部變量,與同名的全局變量不發(fā)生任何關(guān)系。主函數(shù)執(zhí)行fun(3)時候,執(zhí)行調(diào)用
函數(shù)fun,使用局部變量d=5,執(zhí)行d+=p++,相當(dāng)于d=d+(p++),得到d的值為
8,輸出。函數(shù)調(diào)用結(jié)束,轉(zhuǎn)到主函數(shù),繼續(xù)執(zhí)行d+=a++,此時d為全局變量,執(zhí)
行語句以后,d值為4。
15、有以下程序voidfun2(chara,charb){printf("%c%c",a,b):)chara=,A\
b=,B,;void{a='C';b='D';)main(){funl();printf("%c%c”,a,b);
fun2(E,F);}程序的運(yùn)行結(jié)果是
A、ABEF
B、CDEF
C、ABCD
D、CDAB
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:在funl()因數(shù)之前定義了全局字符變量a和b。這兩個變量的作月域
是從其定義處到整個程序結(jié)束。在funl()函數(shù)之內(nèi)定義了兩個變量a和b,并且分
別初始化為字符'C和,在C語言中,若全局變量和某個函數(shù)中的局部變量同
名,則在該函數(shù)中此全局變量被屏蔽,在該函數(shù)內(nèi)訪問的是局部變量,與同名的全
局變量不發(fā)生任何關(guān)系。所以在主函數(shù)中,執(zhí)行funl()后,變量a、b的值分別等
于,C、打印輸出CD,接著執(zhí)行fun2(,E"'F)語句,變量a、b的值變
為,E<'F并輸出。
16、有以下程序fun(intx,intY){staticintm=0,i=2;i+=m+l;m=i+x+y;return
m;)main(){intj=l,m=l,k;k=fun(j,m);printf("%d,”,k);k=fun(j,m);
printfC%d\n",k);}執(zhí)行后的輸出結(jié)果是
A、5,5
B、5,11
C、11,11
D、11,5
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:子函數(shù)fun(intx,inly),將變量m和i聲明為局部靜態(tài)變量,因此第
1次調(diào)用主函數(shù)后,局部靜態(tài)變量m和i的值為5和3,第1次函數(shù)調(diào)用結(jié)束時,
它們的值不釋放保持不變,所以第2次調(diào)用時,局部靜態(tài)變量m和i的初始值分別
為5和3,即在執(zhí)行“i+=na+l”時,i的值為9,因此最終m的值為11。
17、有以下程序程ncludeinif(intn):main(){inta=3,s;s=f(a);s=s+f(a);
printf(n%d\n",s);)intflintn)(staticinta=l;n+=a++:returnn;}程序運(yùn)行后
的輸出結(jié)果是
A、9
B、8
C、7
D、10
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:在主函數(shù)中第一次調(diào)用f(a)時,得到變量s的值等于4,在第二次調(diào)
用f(a)時,在子函數(shù)f中由于變量a是一個局部靜態(tài)變量,所以這次其值等于2,
因而在主函數(shù)中第二次調(diào)用f(a)后,其返回值等于5,最后變量s的值等于9。
18、有以下程序intf(intm){staticintn=0;n+=m;returnn;}main(){intn=0;
printfC%d",f(++n));printfC%d\n",f(n++));)程序運(yùn)行后的輸出結(jié)果是
A、1,1
B、1,2
C、2,3
D、3,3
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:由于在函數(shù)f中,變量n為靜態(tài)局部變量,所以在主函數(shù)中第一次調(diào)
用函數(shù)f后,變量n的值等于1,當(dāng)?shù)诙{(diào)用函數(shù)f時,在函數(shù)f的內(nèi)部靜態(tài)局部
變量n的值仍然保留等于1,所以返回函數(shù)值等于2。
19、有以下程序voidfun(inta口,intn){inti,t;for(i=0;i<n/2;i++){t=a[i];
a[i]=a[n-l-i];a[n-l-i]=t;))main(){intk[10]=(1,2,3,4,5,6,7,8,9,10),
i;fun(k,5);for(i=2;i<8;i++)printf(”%d",k[i]);printf("\n");}程序的運(yùn)
行結(jié)果是
A、87654.3
B、321678
C、1098765
D、345678
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:函數(shù)fun(ima[],intn)的功能是實(shí)現(xiàn)整型數(shù)組a口元素的逆置操作。在
主函數(shù)中當(dāng)執(zhí)行fun(k,5)時,對k[10]中的子數(shù)組k[5]={l,2,3,4,5)的首尾元
素進(jìn)行逆置,此時k[10|={5,4,3,2,1,6,7,8,9,10}。所在循環(huán)語句中輸
出從第2?7個數(shù)組元素時,其值分別為321678。
20>有以下程序#includevoidfun(inta,intb)(mtt:t=a;a=b:b=t:)main()
{intc|IO]={1,2,3,4,5,6,7,8,9,0),i;for(i=0;i<10;i+=2)fun(c[i],
c[i+l]);for(i=0;i<10;i++)printf(H%d,",c[i]);printf(H\n");}程序的運(yùn)行
結(jié)果是
A、2,1,4,3,6,5,8,7,0,9,
B、0,9,8,7,6,5,4,3,2,1,
C、1,2,3,4,5,6,7,8,9,0,
D、0,1,2,3,4,5,6,7,8,9,
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:C語言規(guī)定,實(shí)參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳
遞,只由實(shí)參傳給形參,而不能由形參傳回來給實(shí)參。在調(diào)用函數(shù)時,給形參分配
存儲單元,并將實(shí)參對應(yīng)的值傳遞給形參,調(diào)用結(jié)束后,形參單元被釋放,實(shí)參單
元仍保留并維持原值。由此可知,在本題中,函數(shù)fun(inta,intb)的功能是實(shí)現(xiàn)形
參整形變量a和b值的互換。當(dāng)在主函數(shù)中調(diào)用fun(c[i],c[i+l])時,把實(shí)參變量
c[i]和c[i+l]的值賦給形參變量a和b,執(zhí)行完函數(shù)fun(c[i],c[i+”)時,形參變量a
和b的值發(fā)生了互換,實(shí)參變量c[i]和c[i+l]的值并沒有發(fā)生互換,所以輸出的值
為1,2,3,4,5,6,7,8,9,0。
21、若要求定義具有10個ini型元素的一維數(shù)組a,則以下定義語句中錯誤的是
#definen5inta[2*n];
B、inta[5+5];
C、#defineN10inta[a];
D^intn=10,a[n]:
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:在C語言中,定義一維數(shù)組的語句形式為:類型名數(shù)組名【整型常
量表達(dá)式】。在選項(xiàng)D)中,n是一個整型的變量。
22、有下列程序:#includevoidfun(int*a,intn)/*fun函數(shù)的功能是將a所指數(shù)組
元素從大到小排序*/{intt,i,j;for(i=0;i<n-l;j++)for(j=i+j<n;j++)if[a[i]
A、1,2,3,4,9,8,7,6,5,0,
B、0,9,8,7,6,5,1,2,3,4,
C、0,9,8,7,6,5,4,3,2,1,
D、1.2.3,4.5,6.7.9.0.
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:fun()函數(shù)的功能是對數(shù)組a口的元素從大到小進(jìn)行排序。所以在主函
數(shù)執(zhí)行。fun(c+4,6)語句時,將從數(shù)組c的第5個元素開始的后6個元素進(jìn)行從大
到小排序。排序之后,數(shù)組c的內(nèi)容變?yōu)閧1,2,3,4,9,8,7,6,5,0}。
23、以下敘述中正確的是
A、語句inta[]={0);是不合法的,遺漏了數(shù)組的大小
B、語句chara[2]={“A","B“};是合法的,定義了一個包含兩個字符的數(shù)組
C、語句inta[8]={0);是合法的
D、語句chara[3];a="AB";是合法的,因?yàn)閿?shù)組有三個字符空間的容量,可以保
存兩個字符
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:當(dāng)系統(tǒng)為所定義的數(shù)組在內(nèi)存中開辟一串連續(xù)的存儲單元時,這些存
儲單元中并沒有確定的值,可以在定義語句中為所定義數(shù)組的各個元素賦初值。
數(shù)組初始化賦值是指在數(shù)組定義時給數(shù)組元素賦予初值。初始化賦值的一般形式
為:類型說明符數(shù)組名[常量表達(dá)式]={值,值,...,值};需要注意的是當(dāng)所
賦初值多于所定義數(shù)組的元素個數(shù)時,在編譯時將給出出錯信息,在指定初值時,
第一個初值必定賦給下標(biāo)為0的元索,然后按這些數(shù)值的排列順序賦初值,只能給
元素逐個賦值,不能給數(shù)組整體賦值。如果給全部元素賦值,則在數(shù)組說明中,可
以不給出數(shù)組元素的個數(shù)。
24、若有以下程序main。{intij=O;chara||="Howareyou!";for(i=0;a[i];i++)
if(a[i]!='')a[j++]=a[i];a[j]=,\O,;printff%s\n",a);}則程序的輸出結(jié)果是
A、Howarcyou
B、Hay!
C^Howareyou!
D^Howarcyou!
標(biāo)準(zhǔn)答案:c
知識點(diǎn).析:主函數(shù)中利用for循環(huán)訪問字符串的每一個字符,判斷當(dāng)前字符是否
為空格,如果是空格則刪除。因此刪除字符串“Howarcyou!”中空格以后,字符串
為Howareyou!o
25、以下數(shù)組定義中錯誤的是
A、intx[][3]={0};
intx[2][3]={{l,2),{3,4),{5,6));
intx[][3]={{l,2,3),{4,5,6));
D>intx[2][3]={l,2,3,4,5,6};
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:二維數(shù)組的初始化有以下幾種形式:①分行進(jìn)行初始化;②不分行
的初始化;③部分?jǐn)?shù)組元素初始化;④省略第一維的定義,不省略第二維的定
義。在選項(xiàng)A)中賦值號左邊定義了一個3行2列的二維數(shù)組,而右邊用2行3列
的數(shù)字進(jìn)行賦初值"所以出現(xiàn)了邊界的越界溢出而出錯°
26、以下定義數(shù)組的語句中錯誤的是
A、intnum[][3]={{1,2),3,4,5,6);
B、intnum=(1,2,3,4.5,6}:
intnum[][4]={1,2,3,4,5,6);
D>intnum[2][4]={{l,2),{3,4),{5,6});
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:在選項(xiàng)D)的數(shù)組定義中,賦值號左邊定義了一個2行4列的二維數(shù)
組,而在右邊定義了一個3行2列的二維數(shù)組。
27、有下列程序:main(){inta[4][4]={{1,4,3,2),{8,6,5,7),[3,7,2,
5),{4,8,6,1}},i,i,k,t;for(i=0;i<4;i++)for(j=0;j<3;j++)
for(k=j+l;k<4;k++)if(a[j][i]>a[k][i]){t=aU][i];a[j][i]=a[k][i];a[k][i]=t;}/*
按列排序*/for(i=0;i<4;i++)printf("%d",a[i][i]);}程序運(yùn)行后的輸出結(jié)果是
A、8,7,3,1,
1,6,5,7,
C、4,7,5,2,
D、1,6,2,1,
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:最外層的for語句的自變量i是列下標(biāo),而內(nèi)部的兩個for語句的自變
量j和k是行下標(biāo)。所以由程序段可知,這是利用三重循環(huán)對二維數(shù)組a[4H4]的元
素按列從小到大進(jìn)行排序,所以最后排完序的結(jié)果為a[4][4]={{l,4,2,1},{3,
6,3,2),{4,7,5,5},{8,8,6,7)),最后一個for語句的功能是輸出數(shù)組
a[4][4]主對角線上的元素,因而輸出為1,6,5,7o
28、若有定義:intw[3][5];則以下不能正確表示該數(shù)組元素的表達(dá)式是
A、*(*w+3)
B、*(*(w+l))
C、C(w+1)[4])
D、(&w[0][0]+I)
標(biāo)準(zhǔn)答案:c
知識點(diǎn).析:在
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年鄭州龍湖一中招聘工作人員備考題庫及答案詳解1套
- 普洱市第一中學(xué)2026年度急需緊缺人才第二批招聘備考題庫及答案詳解一套
- 武安市市場監(jiān)督管理局2025年公開招聘食品檢測專業(yè)技術(shù)人員的備考題庫及答案詳解一套
- 2025年齊齊哈爾醫(yī)學(xué)院附屬第一醫(yī)院公開招聘編制外眼科醫(yī)師備考題庫及一套答案詳解
- 中國人民人壽保險(xiǎn)股份有限公司2026年校園招聘備考題庫及答案詳解參考
- 云南省衛(wèi)生健康委所屬事業(yè)單位開展2026年校園招聘309名備考題庫及答案詳解1套
- 2025年區(qū)某企業(yè)招聘勞務(wù)派遣人員備考題庫含答案詳解
- 2025年嘉興市經(jīng)英人才發(fā)展服務(wù)有限公司城南分公司公開招聘勞務(wù)派遣人員備考題庫有答案詳解
- 成都市龍泉驛區(qū)青臺山中學(xué)校2025年秋季教師招聘備考題庫及參考答案詳解1套
- 2025年成都市花園國際小學(xué)招聘儲備教師備考題庫及答案詳解1套
- 2025年10月自考04184線性代數(shù)經(jīng)管類試題及答案含評分參考
- 路燈養(yǎng)護(hù)投標(biāo)方案(技術(shù)標(biāo))
- 幼兒園防火安全檢查記錄表
- 南方科技大學(xué)校聘能力測評英語測評
- 2023高效制冷機(jī)房系統(tǒng)應(yīng)用技術(shù)規(guī)程
- 第十一章靈巧彈藥
- 電力工程公司積成績效考核管理體系制度規(guī)定
- 銀行IT服務(wù)管理事件管理流程概要設(shè)計(jì)
- 地圖文化第三講古代測繪課件
- LY/T 2230-2013人造板防霉性能評價
- GB/T 34891-2017滾動軸承高碳鉻軸承鋼零件熱處理技術(shù)條件
評論
0/150
提交評論