國家二級C語言(函數(shù)和數(shù)組)機試模擬試卷 (二)_第1頁
國家二級C語言(函數(shù)和數(shù)組)機試模擬試卷 (二)_第2頁
國家二級C語言(函數(shù)和數(shù)組)機試模擬試卷 (二)_第3頁
國家二級C語言(函數(shù)和數(shù)組)機試模擬試卷 (二)_第4頁
國家二級C語言(函數(shù)和數(shù)組)機試模擬試卷 (二)_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

家二級C語言(函數(shù)和數(shù)組)機試模

擬試卷第1套

一、選擇題(本題共29題,每題1.0分,共29分。)

1、設(shè)有定義:intx[2][3];則以下關(guān)于二維數(shù)組X的敘述錯誤的是

A、數(shù)組x可以看作是由x[0]和x[l]兩個元素組成的一維數(shù)組

B、可以用x[0]=0;的形式為數(shù)組所有元素賦初值0

C、元素x[0]可看作是由3個整型元素組成的一維數(shù)組

D、x[0]和x[l]是數(shù)組名,分別代表一個地址常量

標準答案:B

知識點解析:二維數(shù)組的元素在內(nèi)存中占一系列連續(xù)的存儲單元。數(shù)組元素在內(nèi)存

中的排列順序是先存放第0行的元素,再存放第1行的元素……稱這種存放順序為

按行存放“可以把一個二維數(shù)組看成是一個一維數(shù)組,每個數(shù)組元素又是包含有若

干個元素的一維數(shù)組。另外在給二維數(shù)組賦初值時可以不用含花括號對。例如,

inta[4][3]={l,2,4,5};在編譯時,系統(tǒng)將按a數(shù)組元素在內(nèi)存中排列的順序,

將花括號內(nèi)的數(shù)據(jù)一一對應(yīng)地賦給各個元素,若數(shù)據(jù)不足,系統(tǒng)將給后面的元素自

動補初值0。以上將給a數(shù)組第一行的元素和第二行的第一個元素依次賦予1、2、

4、5,其他元素的初值都為0。

2、有以下程序#include#defineN3voidfun(inta口[N],intb口){inti,j:for(i=0;i

A、1,3,5?

B、2,4,8,

C、3,5,7

D、3,6,9,

標準答案:D

知識點解析:函數(shù)fun()的作用是求出二維數(shù)組也[N]中每一行中的最大元素,所以

在main。函數(shù)中執(zhí)行完fun(x,y)后,數(shù)組y中的元素為二維數(shù)組x[N][N]每一夕亍的

最大元素。

3、以下語句中存在語法錯誤的是

A、charss[][20]={"right?n};

B、char*ss[6];ss[l]="righi?";

,,

C、char*ss[]={"right?);

D、charss[6][20];ss[l]=',right?H;

標準答案:A

知識點解析:選項A中定義了二維數(shù)組ss,可以用于存儲字符串,但是字符串的

存儲不能通過賦值,僅可以初始化或者輸入得到,而選項C和A)不同,選項C為

指針數(shù)組,對于指針變量可以保存常量字符串的地址。

4、下列敘述中正確的是

A、兩個連續(xù)的單引號(")是合法的字符常量

B、可以對字符串進行關(guān)系運算

C、兩個連續(xù)的雙引號("”)是合法的字符串常量

D、空字符串不占用內(nèi)存,其內(nèi)存空間大小是0

標準答案:C

知識點解析:兩個連續(xù)的雙引號:”二是一個字符串常量,稱為“空串”。

5、以下選項中,能正確進行字符串賦值的是

A、chars[5]={,A,,'B','C',D,E};

B、char*s="ABCDE,,;

C、chars[4][5]={"ABCDE”};

D、char*s;gets(s);

標準答案:B

知識點解析:對于選項A字符串中無法存放字符串結(jié)束標志、OL選項C每行僅

僅存放5個字符,同樣的不能存放字符串結(jié)束標志,選項D中指針變量s沒有實際

的內(nèi)存空間,無法存放輸入的字符串。因此正確的選項為B),相當于char*s;

s="ABCDE\把字符串常量的首地址存放到指針變量中存儲。

6、有以下程序#includeintfun(chars[]){char*P=s:while(*P!=0)p++;return(p-

s);)main(){printfC^dXn",fun("OABCDEF"));)程序運行后的輸出結(jié)果是

6

B、7

C、1

D、0

標準答案:B

知識點解析:函數(shù)fun的主要功能是計算字符串中實際字符的個數(shù),因此主函數(shù)中

調(diào)用fun得到結(jié)果為7。

7、若有以下程序段charstr[4][l2]={"aa","bbb","ccccc","d"},*strp[4];inti;

for(i=0;i<4;i++)strp[i]=str[i];不能正確引用字符串的選項是

A、strp

B、str|O|

C、strp[3]

D^*strp

標準答案:A

知識點解析:程序段中定義指針數(shù)組*$印,含有4個元素,for循環(huán)sirp分別俁存

了二維數(shù)組str中的4個字符串的首地址,因此strp為二級地址,不能保存寧符串

的首地址,*strp或者slrp[O]中存放了字符串“aa”的首地址。所以不能正確引用字符

串的為選項A。

8、以下敘述中正確的是

A、下面的語句用賦初值方式來定義字符串,其中,'\0,是必須的char

strl[]={,s,,T,T,'\0'};

B、有定義語句:charstrl[]="strl";,數(shù)組strl將包含4個元素

C、字符串常量"strl”的類型是:字符串數(shù)據(jù)類型

D、字符數(shù)組的每個元素可存放一個字符,并且最后一個元素必須是、(T字符

標準答案:B

知識點解析:選項B中除了字符串中實際字符之外,還要存儲字符串結(jié)束標志,

應(yīng)為5個元素。在C語言中沒有字符串數(shù)據(jù)類型,因此選項C不正確,選項D字

符數(shù)組不一定必須存放字符串,因此沒有規(guī)定最后一個元素為字符串結(jié)束標志。

9、以下敘述中正確的是

A、charca[3][5]={”A“,”BB",'CCC'1);是不合語法的

B、字符串數(shù)組,是指數(shù)組中的每個元素都是一個存放字符串的一維數(shù)組

C、charca[][5]={“A“,“BB”,"CCC);是不合語法的

D、char*ca[3]={"A\"BB\"CCC"}?是不合語法的

標準答案:B

知識點解析:字符串數(shù)組,也就是一:維字符數(shù)組,其中每個元素為一,個字符

串,選項B的說法正確。選項A和C)對于ca的定義是正確的。選項D定義一個

指針數(shù)組,可以保存多個字符串的首地址。

10、以下敘述中正確的是

A、函數(shù)調(diào)用strlen(s):會返回字符串s實際占用內(nèi)存的大小(以字節(jié)為單位)

B、兩個字符串可以用關(guān)系運算符進行大小比較

C、當拼接兩個字符串時,結(jié)果字符串占用的內(nèi)存空間是兩個原串占用空間的和

D、C語言本身沒有提供對字符串進行整體操作的運算符

標準答案:D

知識點解析:C語言中沒有運算符可以處理字符串.耍調(diào)用"string庫中的函數(shù)來處

理字符串,其中strlen函數(shù)主要測試字符串中實際字符的個數(shù),比實際占用的內(nèi)存

至少要少一個。Strcat(il,s2)函數(shù)用于連接兩個字符串,是把字符串s2連接到si

的后而。

11、以下敘述中正確的是

A、不能用字符串常量對字符數(shù)組名進行整體賦值操作

B、字符串常量"Hell?!睍浑[含處理成一個無名字符型數(shù)組,它有5個元素

C^charstr[7]="string!";在語法上是合法的,運行也是安全的

D、char*str;str="Hello,;與charstr口;str="Hellon;效果是一樣的

標準答案:A

知識點解析:字符數(shù)組僅僅可以采用定義時初始化以及輸入得到數(shù)據(jù),在程序其他

部分不允許對其進行賦值。字符串常量中除了實際字符之外還有結(jié)束標志,選項B

錯誤,而選項C中,沒有空間存放字符串結(jié)束標志,因此運行是不安全的。選項

D中第一個sir為指針,可以賦值,而后面的為數(shù)組,在程序中賦值出錯。

12、以下敘述中正確的是

A、語句charstr[10]="string!";和charstr[10]={"string!”};并不等價

B、對于一維字符數(shù)組,不能使用字符串常量來賦初值

C、對于字符串常量"string!”,系統(tǒng)己自動在最后加入了、0,字符,表示串結(jié)尾

D、在語句charstr[]="string!”;中,數(shù)組str的大小等于字符串的長度

標準答案:C

知識點解析:在C語言中,字符串是借助于字符型一維數(shù)組來存放的,可以借助

在定義時初始化以及輸入來把字符串存入數(shù)組,并規(guī)定以字符'\0'作為"字符串結(jié)

束標志"。'\(T是一個轉(zhuǎn)義字符,稱為空值,它的ASCH碼值為0?!?F作為標志占

用存儲空間,但不計入字符串的實際長度。在C語言中,系統(tǒng)在每個字符串的最

后自動加入一個字符c\(r)作為字符串的結(jié)束標志。

13、設(shè)有定義charstr口="Hello";則語句pr定又%d%d",sizeof(str),slrlen(stri);

的輸出結(jié)果是

A、66

B、65

C、55

D、56

標準答案:B

知識點解析:sizeof主要用于測試變量所占的實際內(nèi)存,而strlen函數(shù)主要測試字

符串中實際字符的個數(shù),字符串"Hello”占有內(nèi)存6個字節(jié),而字符串中共有5個字

符。

14、設(shè)有定義語句:char*aa[2]={“abcd",“ABCD”};則以下敘述正確的是

A、aa數(shù)組的兩個元素只能存放含有4個字符的一維數(shù)組的首地址

B、aa數(shù)組的值分別是字符串“abed”和“ABCD”

C、aa是指針變量,它指向含有兩個元素的字符型數(shù)組

D、aa⑼存放了字符串“abed”的首地址

標準答案:D

知識點解析:題目中char*aa[2],定義了指針數(shù)組aa。有兩個元素,aa[0]存放

“abed”地址,而aa⑴存放“ABCD”地址。

15、以下選項中,沒有編譯錯誤的是

A、charstr3[]={'d','e','b','u','g',,\0'};

B、charstrl|5|="pass",str2[6];str2=strl;

C、charname[IO];name="china";

D、charstr4[]:str4=*'helloworld";

標準答案:A

知識點解析:選項A是定義了字符數(shù)組str3[],并對其賦初值。選項B中語句

str2二strl非法,字符數(shù)經(jīng)不能直接賦值。選項C,D)和選項B一致。

16、有以下程序main。{chara[5][10]={ltone","two^,"three","four","five");int

i,j;chart;for(i=0;i<4;i++)forO:i+1.j<5;j++)if(a[i][O]>a[j][O]){t=a[i][O];

a[i][O]=a[j][O];a[j][O]=t;}puts(a[l]);}程序運行后的輸出結(jié)果是

A、fwo

B、owo

C、two

D、fix

標準答案:A

知識點解析:這個程序的執(zhí)行過程是當i=0時,j=l,a⑼⑼=oa⑶⑼=f;置換

a[2][0]=Ca[3][O]=t;此時,a[2][0]=f,a[l][0]=t,再置換a[2][0]=i,a[l][0]=C;當i=3

時,j=4,a[3][O]=f=a43][O]=f;不置換:所以a[l]的結(jié)果為fwo。

17、設(shè)有定義:chars[81];inti=O;以下不能將一行(不超過80個字符)帶有空格

的字符串正確讀入的語句或語句組是

A、while((s[i-H-]=getchar())!=,\n,):s[i]=,\0\

B、scanf("%su,s);

C、gets(s);

D、do{scanf(”%c”,&s[i]);)while(s[i++]!='\n');s[i]=,\0,;

標準答案:B

知識點解析:本題考查標準輸入輸出函數(shù)和循環(huán)語句。gets(s)函數(shù)的作用是將輸入

的字符讀入字符串s,直到遇到回車。而scanf()函數(shù)接收字符串時的結(jié)束標志為回

車或者空格。

18、設(shè)有定義:charp[]={T,2,3),*q=p;以下不能計算出一個char型數(shù)據(jù)

所占字節(jié)數(shù)的表達式是

A、sizeoffp)

B、sizeof(char)

C^sizeof(*q)

D、sizeof(p[OJ)

標準答案:A

知識點解析:選項A計算的是p口字符數(shù)組首地址所占的內(nèi)存字節(jié)數(shù),返回值數(shù)組

中所有元素占有的空間。*q和p[0]分別表示數(shù)組p中下標為0的字符元素,選項B

和D)都可以計算char型數(shù)據(jù)占有的字節(jié)數(shù)。

19、有以下程序#include#includevoidmain(){char

str[][20]={,,One*World,,,,,One*Dream!"),*p=str[1];printf("%d,",strlen(p));

prinffC%s\n",p);}程序運行后的輸出結(jié)果是

A、9,One*Dream!

B>10.One*Dream!

C^9,One*World

D、10,One*World

標準答案:B

知識點解析:在主函數(shù)中定義了二維字符數(shù)組str,并對它賦初值。定義字符指針

P,并把字符串str[l]的地址賦給它。所以這時字符指針p指向字符串

“one*Drcam!”,然后在兩個輸出語句中,分別輸出這個字符串的長度10和字符串

本身。

2。、有以下程序#includcvoidmain(){charsLJ="012xy\U8s34f4w2";inti,n=0;

for(i=0;s[i]!=0;i++)if(s[i]>=,0,&&s[i]<=,9,)n++;prinlf("%d\n",n);}程序運

行后的輸出結(jié)果是

A、0

B、7

C、3

D、8

標準答案:C

知識點解析?:在主函數(shù)中的for循環(huán)語句中,當s[i]的值不等于0?9之間的數(shù)字

時,結(jié)束循環(huán)語句的執(zhí)行。由字符數(shù)組s的初值可以得到for循環(huán)語句執(zhí)行了三

次,所以變量n的值等于3。

21、以下不能將S所指字符串正確復(fù)制到t所指存儲空間的是

A、for(i=0;t[i]=s[i];i-+);

B、while(*t==,-s){t++;s++;)

C、for(i=0J=0;t[i++]=s[j++];);

D、do{*t++=*s++;}while(*s);

標準答案:D

知識點解析:在選項D中.不能把.,所指字符串的結(jié)束標志符賦給字符串J

22、下列語句組中,正確的是

A、char*s;s="Olympic";

chars[7];s="Olympic";

C、char*s;s={"Olympic”};

D、chars[7];s={"Olympic");

標準答案:A

知識點解析:選項A中定義了指針變量s,通過賦值語句保存字符串常量的地址,

而字符數(shù)組絕對不能賦值,而只能初始化或者輸入。

23、有以下程序main。{charch口="uvwxyz",*pc;pc=ch:printf(H%cha",

*(pc+5));)程序運行后的輸出結(jié)果是

A、0

元素ch[5]的地址

C、z

D、字符y的地址

標準答案:C

知識點解析:在程序中語句pc=ch;的功能是字符指針pc指向字符串數(shù)組ch|]的地

址,而*(ps+5)表示字符串數(shù)組ch[]中第6個字符z。

24>有以下程序#includcvoidmain(){chars[]=("012xy"[;inti,n=0;for(i=0;

s[i]!=0;i++)if(s嘲>='a'a&&s[i]v='z,)n++;printf("%d\n',,n);}程序運行后的

輸出結(jié)果是

A、0

B、3

C、5

D、2

標準答案:D

知識點解析:這段程序的功能求出字符串s中字符在小寫字符a到z之間字符的個

數(shù)。在程序中字符串s的值為“012xy”,所以在7符串s中符合要求的字的個數(shù)等

于2。

25、以下能正確定義字符串的語句是

A、charstr="\x43";

B、charstr[]=H\O";

C^charstr=";

D、charstr[]={,\064?):

標準答案:B

知識點解析:字符串常量是用一對雙括號括起來的一串字符。它用字符數(shù)組來存

放,不用一對大括號對括起來。

26、以下關(guān)于字符串的敘述中正確的是

A、兩個字符串中的字符個數(shù)相同時才能進行字符串大小的比較

B、可以用關(guān)系運算符對字符串的大小進行比較

C、空串比空格打頭的字符串小

D、C語言中有字符串類型的常量和變量

標準答案:c

知識點。析:C語言本身并沒有設(shè)置一種類型來定義字符串變量,卻允許使用“字

符串常量”。字符串常量是由雙引號括起來的一串字符。任意兩個字符串的大小比

較要調(diào)用字符串比較函數(shù)slrcmp(sl,s2)來進行,其比較的方法是依次對si和s2

中對應(yīng)位置上的字符兩兩進行比較,當出現(xiàn)第一對不相同的字符時,即由這兩個字

符決定所在串的大小(比較字符大小的依據(jù)是其ASCII碼值)。

27、若要求從鍵盤讀入含有空格字符的字符串,應(yīng)使用函數(shù)

A、getc()

gets()

C、getchar()

D^scanf()

標準答案:B

知識點解析:scanf()語句中用“空格”間隔不同的字符串,空格將被全部忽略掉,所

以用scanf()函數(shù)不能輸入空格;getchar。函數(shù)用于輸入字符,其調(diào)用形式為:

ch=getchan[),getchav。函數(shù)從終端讀入一個字符作為函數(shù)值,把讀入的一個字符

賦給變量ch。在輸入時,空格、回車符都將用于字符讀入,而且只有在用戶敲入

Enter.鍵時,讀入才開始執(zhí)行。gets。函數(shù)的調(diào)用形式為:gets(str_adr),其中stjadr

是存放輸入字符串的起始地址,可以是字符數(shù)組名、字符數(shù)組元素的地址或字符指

針變量。gels()函數(shù)用來從終端鍵盤讀入字符串(包括空格符),直到讀入一個換行符

為止。getc()函數(shù)的調(diào)用形式為:ch=getc(pf)其中pf是文件指針。函數(shù)的功能是從

pf指定的文件中讀入一個字符,并把它作為函數(shù)值返回。

28、有以卜程序#includemain(){chars口="abcde";s+=2;printf(u%d\n",

s[0]);}執(zhí)行后的結(jié)果是

A、輸出字符C的ASCII碼

B、輸出字符C

C、輸出字符a的ASCII碼

D、程序出錯

標準答案:D

知識點解析:因為字符數(shù)組s口的數(shù)組名s表示的是一個地址常量。所以語句

“s+=2;”不能將指針存當前化置的基礎(chǔ)上再向后移動兩位。因而程序編譯時出錯。

29、有下列程序:fiin(charP[][10]){intn===0,i;for(i=0;i<7;i++)

if(p[i][0]=,T,)n++;returnn;}main()(charstr[][10]={"Mon\"Tue","Wed",

"Thu","Fri","Sat","Sun");printf(n%d\n",fun(str));}程序執(zhí)行后的輸出結(jié)

果是

A、1

B、3

C、0

D、2

標準答案:D

知識點解析:本題在主函數(shù)中定義了一個字符二維數(shù)組sgHlO],并用{“Mon”,

“True”,“Wed”,“Thu”,“Fri”,“Sat”,“Sun”}初始化。函數(shù)fun(charp口[10])的功能

是統(tǒng)計出中p[i|[0]等于字符,「的個數(shù)。所以fun(str)的功能是統(tǒng)計一周七天

中英文名稱首字母為“T”的個數(shù)。因為字符串“True”和“Thu”的首字符是“T",所以

n=2o

家二級C語言(函數(shù)和數(shù)組)機試模

擬試卷第2套

一、選擇題(本題共28題,每題1.0分,共28分。)

1、有以下程序(strcpy為字符串復(fù)制函數(shù),strcat為字符串連接函數(shù))include

#includemain(){chara[10]=,'abc",b[10]="012",c[IO]=Hxyz";strcpy(a+1,b+2);

puts(strcat(a,c+1));}程序運行后的輸出結(jié)果是

A、bc2yz

B、a2yz

C^al2xyz

D、12yz

標準答案:B

知識點解析:程序執(zhí)行strcpy(a+l,b+2)后,字符數(shù)組a的值為飛2",冉進行字符

串的連接strcat(a,c+1),此時字符數(shù)組a的值為“a2yz”。

2、若各選項中所用變量已正確定義,函數(shù)fun中通過return語句返回一個函數(shù)

值,以下選項中錯誤的程序是

A、main(){..........x=fun(2?10);...........[floatfun(inta,intb){...........}

B、floatfun(inta,intb){..........}main(){...........x=fun(i,j);...........}

C、floatfun(int,int);main(){x=fiin(2,10);}floatfun(inta,intb){}

D、main(){floatfun(inti,intj);..........x=fun(i,j);...........}floatfiin(inta?intb){............}

標準答案:A

知識點解析:C語言規(guī)定,函數(shù)必須先定義,后調(diào)用(雨數(shù)的返回值類型為int或

char時除外)。在選項A)中,調(diào)用的子函數(shù)在調(diào)用后面定義,所以不正確。在選項

B)、C)中,被調(diào)用函數(shù)在主函數(shù)之前定義,再在主函數(shù)中調(diào)用,所以是正確的;在

選項D)中,存主函數(shù)中先對子函數(shù)floatfun(inti,intj)進行了聲明,然后進行調(diào)

用。

3、以下敘述中正確的是

A、用戶自己定義的函數(shù)只能調(diào)用庫函數(shù)

B、不同函數(shù)的形式參數(shù)不能使用相同名稱的標識符

C、在C語言的函數(shù)內(nèi)部,可以定義局部嵌套函數(shù)

D、實用的C語言源程序總是由一個或多個函數(shù)組成

標準答案:D

知識點解析:一個C語言源程序可以由一個或多個源文件組成,每個源文件可由

一個或多個函數(shù)組成,這些函數(shù)可以是自定義函數(shù),也可以是庫函數(shù),各個函數(shù)之

間沒有主從關(guān)系,不能嵌套定義函數(shù)。

4、若有定義語句:chars|10]="1234567\0\0";則st#n(s)的值是

A、8

B、7

C、9

D、10

標準答案:B

知識點解析:字符串長度函數(shù)strlen(s)表示計算出以s為起始地址的字符串的長

度,并作為函數(shù)值返回。這個長度值不包括串尾的結(jié)束標志

5、有以下程序#inchidemain(){charP[20]={'a,,5',5',5'},qlJ-'abc",

r[]="abcde";strcat(p,r);strcpy(p+strlen(q),q);printf("%d\n",strlen(p));}

程序運行后的輸出結(jié)果是

A、9

B、11

C、6

D、7

標準答案:C

知識點解析:字符串連接函數(shù)strcat(p,r)的功能是把字符數(shù)組p[]和山連接起來,

此時字符數(shù)組p[]的有效字符長度為9。再執(zhí)行sircpy(p十sirlen(q),q)字符串復(fù)制函

數(shù),把字符數(shù)組q口復(fù)制到字符數(shù)組p[]從p[3]開始到p[5]數(shù)組位置中,由于字符數(shù)

組q口中的內(nèi)容為字符串“abc”復(fù)制時把字符串結(jié)束標志、null,也復(fù)制到字符數(shù)組

pl/,這時字符函數(shù)st「1cn(p)返回字符數(shù)組的有效字符長度為6。

6、若有定義語句:charts1="OK",*s2=nok";以下選項中,能夠輸出“OK”的語句

A、if(strcmp(s1,s2)!=0)puts(sl);

B、if(strcmp(sl,s2)!=0)puts(s2);

C、if(strcmp(s1?s2)==1)puts(s1);

D、if(strcmp(s1,s2)==0)puts(s1);

標準答案:A

知識點解析:字符串比較函數(shù)strcmp的功能是對si和s2所指字符串進行比較。如

果sls2,返回正數(shù),所以對于本題米說,能夠輸出“OK”的語句是選項A)所指的語

句。

7、有以下程序,程序中庫函數(shù)islower(ch)用以判斷ch中的字母是否為小寫字母

#include#includevoidfun(char*p){inti=0;\vhile(p[i]){if(p[i]=,,&&islower(p[i-

1]))p[i-l]=p[i-l]-,a,+,A,;i++;}}main(){charsl[100]="abcdEFG!H;fun(sl);

printfC%s\n,',si);}程序運行后的輸出結(jié)果是

A、AbCdEFg!

B、abcdEFG!

C^abcdEFg!

D、aBcDEFG!

標準答案:D

知識點解析:函數(shù)fun(chai*p)的功能是如果p[i]指向的字符為空字符并且其前一個

字符是小寫字母,則把小寫字母變成大字母,所以在主函數(shù)中,執(zhí)行fun(sl)后,

小寫字母b,d都改成大字母。

8、若有以下定義和語句charsl[10]="abcd!”,*s2=*,\n123\\";printf("%d%d\

n",strlen(sl),strlen(s2));則輸出結(jié)果是

A、105

B、107

C、55

D、58

標準答案:C

知識點解析:本題要注意的是轉(zhuǎn)文字符的問題,在字符串s2中,有兩個轉(zhuǎn)義字

符,分別是回車換行符和反斜線。所以其字符串長度等于5。

9、有以下程序#includeintfun(inta,intb){if(b==0)returna;elsereturn(fun(-a,-

-b));)main(){PrintfC%d\n",fun(4,2));}程序的運行結(jié)果是

A、1

B、2

C、3

D、4

標準答案:B

知識點解析:由程序可知函數(shù)fun(inta,intb)是一個遞歸函數(shù)。所以當t函數(shù)中調(diào)

用fun(4,2)時,其執(zhí)行過程如下:fun(4,2)->fun(3,l)->fun(2,0),其返回值為

2o

10、下列選項中,能夠滿足“只要字符串si等于字符串s2,則執(zhí)行ST”要求的是

A、if(sl==s2)ST;

B>if(strcpy(sl,s2)==l)ST;

C、if(strcmp(s2,s1)=O)ST;

D、if(sl-s2==0)ST;

標準答案:C

知識點解析:在C語言中要對兩個字符串的大小進行比較,就需要調(diào)用字符串比

較函數(shù)sirempO,如果這個函數(shù)的返回值等于0,說明兩個字符串相等。

11、以下敘述中正確的是

A、函數(shù)名代表該函數(shù)的入口地址

B、所有函數(shù)均不能接受函數(shù)名作為實參傳入

C、函數(shù)體中的語句不能出現(xiàn)對自己的調(diào)用

D、如果函數(shù)帶有參數(shù),就不能調(diào)用自己

標準答案:A

知識點解析:函數(shù)形、實參傳遞的時候,要求對應(yīng)位汽類型一致即可,如果實參為

函數(shù)名,可以定義相心的形參為指向函數(shù)的指針變量來獲得該函數(shù)的入口地址,囚

此選項B)錯誤的,在C語言中允許進行遞歸調(diào)用,即自己調(diào)用自己,選項C)和選

項D)是錯誤的。

12、以下敘述中正確的是

A、函數(shù)既可以直接調(diào)用自己,也可以間接調(diào)用自己

B、任何情況下都不能用函數(shù)名作為實參

C、函數(shù)的遞歸調(diào)用不需要額外開銷,所以效率很高

D、簡單遞歸不需要明確的結(jié)束遞歸的條件

標準答案:A

知識點解析:一個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é)束遞歸的條

件。而每次進行遞歸調(diào)用時候,需要利用棧保存現(xiàn)場信息,因此并不會提高效率,

選項C)和選項D)不正確。函數(shù)名表名了函數(shù)的入口地址,如果函數(shù)的形參為指向

函數(shù)的指針變量,那么對應(yīng)的實參必須為函數(shù)名,因此函數(shù)名可以為函數(shù)的參數(shù),

選項B)錯誤。

13、以下關(guān)于retum語句的敘述中正確的是

A、一個自定義函數(shù)中必須有一條return語句

B、一個自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語句

C、定義成void類型的函數(shù)中可以有帶返回值的return語句

D、沒有return語句的自定義函數(shù)在執(zhí)行結(jié)束時不能返回到調(diào)用處

標準答案:R

知識點解析:return語句主要用于返回函數(shù)的值。在一個自定義函數(shù)中,可以根據(jù)

不同的情況設(shè)置多條reiurn語句返回函數(shù)的值。

14、己定義以下函數(shù)inifun(int*p)(return*p;}fun函數(shù)返回值是

A、不確定的值

B、一個整數(shù)

C、形參p中存放的值

D、形參p的地址值

標準答案:B

知識點解析:由函數(shù)inifun(int*p){retum*p;)的定義可知,返回值為整型指針變量

p所指向的數(shù)據(jù)。

15、以下敘述中錯誤的是

A、用戶定義的函數(shù)中可以沒有return語句

B、用戶定義的函數(shù)中若沒有relurn語句,則應(yīng)當定義函數(shù)為void類型

C、用戶定義的函數(shù)中可以有多個retum語句,以便可以調(diào)用一次返回多個函數(shù)值

D、函數(shù)的retum語句中可以沒有表達式

標準答案:C

知識點解析:函數(shù)值通過return語句返回,relurn語句的形式如下:retum表達式

或return(表達式);當程序執(zhí)行到return語句時,程序的流程就返回到調(diào)用該函數(shù)

的地方,并帶回函數(shù)值。在同一函數(shù)內(nèi),可以根據(jù)需要,在多處出現(xiàn)relurn語句,

在函數(shù)體的不同部位退出函數(shù)。無論函數(shù)體中有多少個relum語句,retum語句只

可能執(zhí)行一次,返回一個函數(shù)值。retum語句中也可以不含有表達式,這時必須定

義函數(shù)為void類型,它的作用只是使流程返回到調(diào)用函數(shù),并沒有確定的函數(shù)

值。函數(shù)體內(nèi)可以沒有return語句,這時也必須定義函數(shù)為void類型,程序的流

程就一直執(zhí)行到函數(shù)末尾的“}”,然后返回調(diào)用函數(shù),也沒有確定的函數(shù)值帶回。

16、以下敘述中錯誤的是

A、函數(shù)調(diào)用可以作為一個獨立的語句存在

B、函數(shù)形參的值也可以傳回給對應(yīng)的實參

C、若函數(shù)有返回值,必須通過return語句返回

D、C程序必須由一個或一個以上的函數(shù)組成

標準答案:B

知識點解析:一個C程序中可以包含任意多個不同名的函數(shù),但只能有一個主函

數(shù)。一個C程序總是從主函數(shù)開始執(zhí)行。函數(shù)的值通過retum語句返回,return語

句中的表達式的值就是所求的函數(shù)值。在C語言中,數(shù)據(jù)只能從實參單向傳遞給

形參,稱為“按值”傳遞。也即是說,當簡單變量作為實參時,用戶不可能在函數(shù)中

改變對應(yīng)實參的值。

I7N有以下程序intadd(inta,intb){return(a+b);main(){intk,(*f)(),a=5,

b=10;f=add;}則以下函數(shù)調(diào)用語句錯誤的是

A、k=add(a.b):

B、k=(*D(a,b);

C、k=*f(a,b);

D、k=f(a,b);

標準答案:C

知識點解析:在語句“k=*f(a,b)”中,由于“()”的優(yōu)先級高于“種,所以“*f(a,b);”

表示其返回類型為指針的帶有兩個整型參數(shù)的函數(shù),而不是整型數(shù)值,因此選項

C)為錯誤的調(diào)用形式。

18、以下敘述中正確的是

A、函數(shù)調(diào)用時,不必區(qū)分函數(shù)名稱的大小寫

B、調(diào)用函數(shù)時,函數(shù)名必須與被調(diào)用的函數(shù)名完全一致

C、函數(shù)名允許用數(shù)字開頭

D、在函數(shù)體中只能出現(xiàn)一次return語句

標準答案:B

知識點解析:在標準C中,函數(shù)的定義形式為:函數(shù)返回值的類型名函數(shù)名(類型

名形式參數(shù)1,類型名形式參數(shù)2,…){說明部分語句部分)需要說明的是函數(shù)

名和形式參數(shù)都是由用戶命名的標識符,在同一程序中,函數(shù)名必須惟一,形式參

數(shù)名只要在同一函數(shù)中惟一即可,與其他函數(shù)中的變量可以同名。relum語句的作

用是返回函數(shù)的值,在函數(shù)中可以出現(xiàn)多個或者沒有。

19、若有以下函數(shù)首部intfun(doublex[10],有t*n)則下面針對此函數(shù)的函數(shù)聲明語

句中正確的是

A、intfun(double,int);

B>inttun(double*x>intn);

C、intfun(double*,int*);

D^intfun(doublex,int*n);

標準答案:C

知識點解析:函數(shù)說明的一般形式為:類型名函數(shù)名(參數(shù)類型1,參數(shù)類型

2,....)。因為函數(shù)intfun(doublex[10],int*n)的第1個形式參數(shù)是一個雙精度型

的一維數(shù)組,第2個參數(shù)是一個整型指針,并返回一個整型值。一維數(shù)組的名字表

示的是一維數(shù)組的地址。

20、以下選項中敘述錯誤的是

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ù)的形參不可以說明為s〔atic型變量

標準答案:B

知識點解析:在函數(shù)定義的靜態(tài)變量,只需要賦值1次,即可保存初始值,不需要

每次調(diào)用時都賦初始值。

21、有以下程序intf(intx);main(){intn=Lm;m=f(f(f(n)));printf("%d\n",

m);)intf(intx){returnx*2;}程序運行后的輸出結(jié)果是

A、1

B、2

C、4

D、8

標準答案:D

知識點解析:程序考查了函數(shù)的調(diào)用。對于m=fl(f(f(n)));首先計算最內(nèi)層的函數(shù)

調(diào)用f(n),執(zhí)行f函數(shù),得到返回值2,然后計算f(2),得到返回值為4,最后計算

f(4),得到計算結(jié)果為8。

22、有以卜程序#includeintfun(intx,inty){if(x==y)retum(x);elsereturn((x+y)/

2);}main(){inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c)));}程序

運行后的輸出結(jié)果是

A、3

B、6

C、8

D、12

標準答案:B

知識點解析:fun(b,c)即fun(5,6),5!=6,所以返回(5+6)/2=5;fun(2*a,5)即

fun(8,5),8!=5,所以返回(8+5)/2=6。

23、有以下程序#inckideintf(intx,inty){retum((y-x)*x);)main(){inta=3,

b=4?c=5,d;d=f(f(a,b),f(a,c));pnntf("%d\n",d);}程序運行后的輸出

結(jié)果是

A、10

B、8

C、9

D、7

標準答案:C

知識點解析:本題考查函數(shù)的嵌套調(diào)用。首先計算f(a,b)與f(a,c),f(a,b)=(b-

a)*a=3,f(a,c)=(c一a)*a=6,然后計算f(3,6)=(6.3)*3=9o

24、有以卜程序#includcdoublef(doublex);main(){doublea=0;inti;for(i=0;

i<30;i+=10)a+=f((do-uble)i);printf("%5.Of\n".a);)doublef(doublex)

{reLurnx*x+l;}程序運行后的輸出結(jié)果是

A、401

B、500

C、503

D、1404

標準答案:C

知識點解析:由于函數(shù)f的作用是對形參x求平方再加1.所以在主函數(shù)中,循環(huán)

第一次執(zhí)行后變量a的值等于1,第二次執(zhí)行后,變量a的值等于102,第三次執(zhí)

行后,變量a的值等于50等

25、若函數(shù)調(diào)用時的實參為變量時,以下關(guān)于函數(shù)形參和實參的敘述中正確的是

A、形參只是形式上的存在,不占用具體存儲單元

B、函數(shù)的形參和實參分別占用不同的存儲單元

C、同名的實參和形參占同一存儲單元

D、函數(shù)的實參和其對應(yīng)的形參共占同一存儲單元

標準答案:B

知識點解析:在C語言中,函數(shù)的實參單元與形參單元在內(nèi)存中分配不同的存儲

單元。在調(diào)用函數(shù)時,給形參分配臨時存儲單元,并將實參對應(yīng)的值傳遞給形參,

在被調(diào)用函數(shù)中對形參存儲單元中的值進行運算,最后通過return語句把函數(shù)值返

回調(diào)用函數(shù)。當調(diào)用結(jié)束后,形參單元被釋放,實參單元仍保留并維持原值。

26、有以卜.程序voidfun(inla,intb,intc){a=b;b=c;c=a;)main(){int

a=10,b=20,c=30;fun(a,b,c);printf(n%d,%d,%d\n",c,b,a);}程

序運行后的輸出結(jié)果是

A、10,20,30

B、20,30,10

C、30,20,10

D、0,0,0

標準答案:C

知識點解析:函數(shù)fun中采用了變量作為參數(shù),那么參數(shù)傳遞以后,形參a,b,c

的變化對于實參a,b,c是沒有影響的,因此主函數(shù)中a,b,c的值經(jīng)過fun調(diào)用

以后,值沒有變化。

27、有以下程序#includcintf(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

標準答案:B

知識點解析:在函數(shù)main。中,第一次執(zhí)行for循環(huán)時,b的值等于1,此時輸出字

母B;第二次執(zhí)行for循環(huán)時,b的值等于3,此時輸出字母D:第三次執(zhí)行for循

環(huán)時,b的值等于8,此時輸出字母I。

28、若有以下程序voidf(intx){if(x>=10){printf(”%d?”,x%10);f(x/10);)

elseprintf("%d",x);)main()(intz=123456;f(z).}則程序的輸出結(jié)果是

A、6-5-4-3-2-1

B、6-5-4-3-2-1-

「、1-2-3-456

D、1-2-3-4-56

標準答案:A

知識點解析:函數(shù)f的主要功能為逆置輸出整數(shù)x的每一位數(shù)據(jù),如果z的值為

123456,逆置輸出的結(jié)果為6-5-4-3-2-1。

國家二級C語言(函數(shù)和數(shù)組)機試模

擬試卷第3套

一、選擇題(本題共28題,每題1.0分,共28分。)

1、有以下程序#include<stdio.h>voidfun(inla,intb){intt;t=a;a=b;b=t;}main()

{intc[10]=[1,234,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("%d;',c[i]);printf("\nu);}程序的運行結(jié)果是

A、2,143,65870,9,

B、0,9,8,7,65,4,3,2,1,

C、1,2,3,4,5,678,9,0,

D、0,1,2,345,6,7,8,9,

標準答案:C

知識點浦析:c語言規(guī)定,實參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳

遞,只由實參傳給形參,而不能由形參傳回來給實參。在調(diào)用函數(shù)時,給形參分配

存儲單元,并將實參對應(yīng)的值傳遞給形參,調(diào)用結(jié)束后,形參單元被釋放,實參單

元仍保留并維持原值。由此可知,在本題中,函數(shù)fun(inta,intb)的功能是實現(xiàn)形

參整形變量a和b值的互換。當在主函數(shù)中調(diào)用fun(c[i],c[i+l])時,把實參變量c[i]

和c[i+l]的值賦給形參變量a和b,執(zhí)行完函數(shù)時,形參變量a和b

的值發(fā)生了互換,實參變量c[i]和c[i+l]的值并沒有發(fā)生互換,所以輸出的值為

1,2,3,4,5,6,7,8,9,0。

2、有下列程序:main(){inti,s=O,t[]={1,2,34,5,6,7,8,9);for(i=0;i<9;i+=2)s+

=*(t+i);prinif("%d\n",s);)程序執(zhí)彳了后的輸出結(jié)果是

A、20

B、45

C、36

D、25

標準答案:D

知識點解析:本題在主函數(shù)中定義了一維整型數(shù)組2,345,6,7,8,9};然后在

for循環(huán)語句中自變量i從0開始,每次自加2,執(zhí)行s+=*(l+i)語句,因為C語言規(guī)

定數(shù)組名代表數(shù)組的首地址,也就是第?個元素的地址。因此*(t+i)代表數(shù)組的第

ill個元素。所以程序運行的結(jié)果是口315719=25,即變量s的值等于25。

3、下列選項中,能正確定義數(shù)組的語句是

A、intnum口;

B、intN=2008;intnum[N];

C、intnum[O..2OO8];

D、#defineN2008intnum[N];

標準答案:D

知識點解析:在定義一維數(shù)組時,數(shù)組的下標應(yīng)該是一個確定的整數(shù)值。要注意的

是在定義二維數(shù)組時,其第一維下標可以省略,但第二維下標不能省略。

4、若要求定義具有10個int型元素的一維數(shù)組a,則以下定義語句中錯誤的是

A、#definen5inta[2*n];

B、inta[5+5];

C、#defineN10inta|N];

D、intn=10,a[n];

標準答案:D

知識點解析:在C語言中,定義一維數(shù)組的語句形式為:類型名數(shù)組名[整型常量

表達式]。在選項D中,n是一個整型的變量。

5、下列程序中函數(shù)f的功能是:當flag為1時,進行由小到大排序;當flag為0

時,進行由大到小排序。voidf(intb[],intn,intflag){intij,t;for(i=0;i<n-l;i++)

for(j=i+l;j<n;j++)if(flag?b[i]>b[j]:b[i]<b[j]){t=b[i];b[i]=b[j];b[j]=t;}}main(){int

a[10]={5,4,3,2,l,6J,8,9,10},i;f(&a[2],5,0);f(a,5,l);for(i=0;i<10;i++)

pnntt("%d,",aLiJ);)程序運行后的輸電結(jié)果是

A、123,4,5,6,7,8,9/0,

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,876,5,4,3,2,1,

標準答案:B

知識點解析:主函數(shù)中進行了兩次f函數(shù)的調(diào)用。第一次傳遞給形參數(shù)組b的地址

為元素a[2]的地址,n接收數(shù)據(jù)位5,因此數(shù)組b中元素為3,2,1,6,7,此時flag的

值為0,進行由大到小排序,而數(shù)組b和實參數(shù)組a共用一段存儲空間,第一次調(diào)

用結(jié)束以后,數(shù)組a的值為5,4,7,6,3,2,1,8,9,10。第二次調(diào)用f函數(shù),形參數(shù)組凄收

實參數(shù)組a的首地址,取5個元素,由小到大排序:調(diào)用結(jié)束以后,數(shù)組a的值為

3,4,5,6,7,2,1,8,9,10o

6、有以下程序#include<stdio.h>main(){int

s[12]={l,2,3,4,4,3,2,l,l,l,2,3},c[5]={0},i;for(i=0;i<12;i++)c[s[i]]++;for(i=l;i<

5;i++)printf("%d,\c[i]);printf("\nM);}

A、4332

B、2344

C、1234

D、1123

標準答案:A

知識點解析:本題考查for語句的循環(huán)控制,首先定義了兩個數(shù)組并賦予了初始

值,第一個for循環(huán)語句循環(huán)12次遍歷s數(shù)組的各個元素,將中的原素值作為

c口數(shù)組中的下標,使相應(yīng)的值自加。例如當i=0,c[s[0]]++為c[l]++,其值變?yōu)?/p>

1,當執(zhí)行i=l,2,…11后,c[l]、c[2]、c[3]、c[4]分別為4、3、3、2,故選項A為

正確的運行結(jié)果。

7、彳j下列程序:#include<stdio.h>voidfun(int*a,intn)/*fun函數(shù)的功能是將a所

指數(shù)組元素從大到小排序*/{intfor(i=0;i<n-l;j++)for(j=i+l;jVn;j++)if(a[i]<

a[j]){t=a[i];a[i]=a[j];a[j]=t;)}main(){intc[10]={l,2,3,4,5,6,7,8,9,0),i;fun(c+4,6);

for(i=0;i<IO;i++)printf("%d;',cli]);printf("\n");}程序的運行結(jié)果是

A、1,2,3,4,9,876,5。

0,9,8,7,6,5,123,4,

C、098,7,6,5,4,321,

D、123,4,5,6,7,8,9,0,

標準答案:A

知識點解析:fun。函數(shù)的功能是對數(shù)組a口的元素從大到小進行排序。所以在主函

數(shù)執(zhí)行fun(c+4,6)語句時,將從數(shù)組c的第5個元素開始的后6個元素進行從大到

小排序。排序之后,數(shù)組c的內(nèi)容變?yōu)閧123,4,9,8,7,6,5,0}。

8、有以下程序#include<stdio.h>main(){inic[6]={10,20,30,40,50,60),*p,*s;p=

c;s=&c[5];printf("%d\n",s-p);}程序運行后的輸出結(jié)果是

A、5。

B、6

C、5

D、60

標準答案:C

知識點解析?:主函數(shù)中指針變量p指向數(shù)組as保存了數(shù)組最后一個元素的地

址,那么s-p為兩個地址之間的元素差5。

9、以下敘述中正確的是

A、一條語句只能定義一個數(shù)組

B、數(shù)組說明符的一對方括號中只能使用整型常量,而不能使用表達式

C、每個數(shù)組包含一組具有同一類型的變量,這些變量在內(nèi)存中占有連續(xù)的存儲單

D、在引用數(shù)組元素時,下標表達式可以使用浮點數(shù)

標準答案:C

知識點解析:數(shù)組的定義格式:類型說明符數(shù)組名[整型常量表達式],…;可以同時

定義多個類型相同的數(shù)組,之間以逗號分隔開,數(shù)組的類型表明了數(shù)組中元素的數(shù)

據(jù)類型,數(shù)組中所有元素的類型相同,數(shù)組經(jīng)過定義以后就可使用,編譯程序?qū)?/p>

其分配一片連續(xù)的存儲空間進行連續(xù)存儲.「語言中只能單個引用數(shù)組元素而不能

一次引用整個數(shù)組。引用格式為:數(shù)組名[下標],引用元素時,需要注意下標只能

為整型常量或整型表達式。

10、以下敘述中正確的是

A、語句inta[]={0};是不合法的,遺漏了數(shù)組的大小

B、語句chara[2]={"A","B“};是合法的,定義了一個包含兩個字符的數(shù)組

C、語句inta[8]={0};是合法的

D、語句chara[3|;a="AB”;是合法的,因為數(shù)組有三個字符空間的容量,可以保

存兩個字符

標準答案:C

知識點解析:當系統(tǒng)為所定義的數(shù)組在內(nèi)存中開辟一串連續(xù)的存儲單元時,這些存

儲單元中并沒有確定的值,可以在定義語句中為所定義數(shù)組的各個元素賦初值。

數(shù)組初始化賦值是指在數(shù)組定義時給數(shù)組元素賦予初值。初始化賦值的一般形式

為:類型說明符數(shù)組名[常量表達式目值,值,…,值};需要注意的是當所賦初值多

于所定義數(shù)組的元素個數(shù)時,在編譯時將給出出錯信息,在指定初值時,第一個初

值必定賦給下標為。的元素,然后按這些數(shù)值的排列順序賦初值,只能給元素逐個

賦值,不能給數(shù)組整體賦值。如果給全部元素賦值,則在數(shù)組說明中,可以不給出

數(shù)組元素的個數(shù)。

11、如果定義floata[10],x;則以下敘述中正確的是

A、表達式a+1是非法的

B、語句a=&x;是非法的

C、三個表達式a[l]、*(a+l)、表示的意思完全不同

D、表達式舉&a[lj是非法的,應(yīng)該寫成率

標準答案:B

知識點解析:定義語句floata[10],x;以后,數(shù)組名a表示了數(shù)組元素的首地址,是

常量在程序中不能更改,因此選項A是的描述是正確的。而指向運算符和取址運

算符,是互反運算符優(yōu)先級相同,*&對1]和*(&對1])含義相同。

12、有以下程序#include<stdio.h>main(){inta[]={10,20,30,40),*p=a,i;for(i=0;i<

=3;i++){a[i]=*p;p++;}printf("%d\nM,a[2]);}程序運行后的輸出結(jié)果是

A、20

B、30

C、10

D、40

標準答案:B

知識點解析:因為指針變量p的初始值指向數(shù)組a,所以執(zhí)行for循環(huán)語句后,數(shù)

組a中的元素的值不變,

13、若有以下程序main(){inti,j=0;chara[]="Howareyou!";for(i=0:a[i];i++)if

(a[i]!='?)a[j++]=a[i];a|j尸\0';printf(M%s\n",a);}則程序的輸出結(jié)果是

A、Howareyou

B、Hay!

C、Howareyou!

D、Howareyou!

標準答案:C

知識點解析:主函數(shù)中利用for循環(huán)訪問字符串的每一個字符,判斷當前字符是否

為空格,如果是空格則刪除。因此刪除字符串"Howareyou!”中空格以后,字符串

為Howareyou!o

14>若有以下程序#include<stdio.h>main(){inti,j=0;chara[]="Howareyou!1',

b[10];for(i=0;a[i];)if(a[i]=,')b[jH]=a[i+]];b[j]=,\O,;printf(M%s\nM,b);)則

程序的輸出結(jié)果是

A、Howareyou

B、Hay!

C^Howareyou!

D、ay

標準答案:D

知識點解析:主函數(shù)中利用for循環(huán)訪問字符串a(chǎn)的每一個字符,判斷當前字符是

否為空格,如果是空格則保存該空格后面的一個字符存放到字符數(shù)組b中。在字符

串“Howareyou!”中,第一個空格后面字符為3,第二個空格后面字符為了。

15、若有以下程序#includcchar*a="you",b[]="wclcomc#you#to#China!";main()

{inti,j=0;char*p;fbr(i=0;b[i]!=,\0,;){if(*a==b[i]){p=&b[i];for(j=0;

a[j]!=,\O,;j++){if(a[j]!=*p)break;p++;}if(a[j]='\O')break;}}printfC%s\n",p);)

則程序的輸出結(jié)果是

A^#you#to#China!

B、me#you#to#China!

C、#China!

D、#to#China!

標準答案:D

知識點解析?:程序中循環(huán)部分的主要功能是,在字符串b中尋找是否含有子串a(chǎn),

如果含有則退出,字符有針p指向該匹配子串后面的位置,利用printf函數(shù)輸出則

從該位置開始一直輸出到字符串b的結(jié)尾。

16、以下數(shù)組定義中錯誤的是

A>intx[][3]={0};

B>intx[2][3]={{l,2},{3,4},{5,6}};

C.intx[][3]={{l,2,3},{4,5,6));

D.intx[2][3]={1,2,34,5,6};

標準答案:D

知識點解析:二維數(shù)組的初始化有以下幾種形式:①分行進行初始化;②不分行

的初始化;③部分數(shù)組元素初始化;④省略第一維的定義,不省略第二維的定

義。在選項A中賦值號左邊定義了一個3行2列的二維數(shù)組,而右邊用2行3列的

數(shù)字進行賦初

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論