C語(yǔ)言基本題解答_第1頁(yè)
C語(yǔ)言基本題解答_第2頁(yè)
C語(yǔ)言基本題解答_第3頁(yè)
C語(yǔ)言基本題解答_第4頁(yè)
C語(yǔ)言基本題解答_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、C語(yǔ)言基本概念題解答選編 一、單項(xiàng)選擇題 1. 以下字符列中,能作為C程序自定義標(biāo)識(shí)符的是 num(10)   file_bak   break   class+2【解】C語(yǔ)言規(guī)定,C程序的標(biāo)識(shí)符的命名規(guī)則是要由英文字母或下線字符開(kāi)頭,由英文字母、下線字符和數(shù)字符構(gòu)成的字符序列,并且不可以與C語(yǔ)言規(guī)定的保留字相同。在供選擇的答案中,選擇含有括號(hào)字符,不是標(biāo)識(shí)符,它好象是函數(shù)調(diào)用表達(dá)式;選擇符合C語(yǔ)言關(guān)于標(biāo)識(shí)符的構(gòu)成規(guī)則,所以它可以作為標(biāo)識(shí)符;選擇是C語(yǔ)言的保留字,它不可以再被程序設(shè)定為標(biāo)識(shí)符;選擇是一個(gè)加法運(yùn)算算術(shù)

2、表達(dá)式,也不可以作為程序的標(biāo)識(shí)符。所以解答是。 2下列字符列中,不是用來(lái)表達(dá)轉(zhuǎn)義字符是         074   0【解】轉(zhuǎn)義字符有三種書(shū)寫形式:反斜杠字符后接上某個(gè)規(guī)定的字符;反斜杠字符后接上1至3個(gè)八進(jìn)制數(shù)字符;反斜杠字符和字符x之后接上1至2個(gè)十六進(jìn)制數(shù)字符。后兩種分別以八進(jìn)制數(shù)和十六進(jìn)制數(shù)直接給出字符的ASCII代碼值。而074是八進(jìn)制整數(shù),不是轉(zhuǎn)義字符。所以解答是。 3下列字符列中,可以作為“字符串常量”的是   ABC   ABC 

3、  abc   a【解】C程序中,一個(gè)字符串常量是表示一個(gè)字符序列,書(shū)寫時(shí),用雙引號(hào)字符前后括住這個(gè)字符序列。所以只有ABC是一個(gè)正確的字符串常量,其余都不是。其中,ABC可作為標(biāo)識(shí)符,字符列abc不能出現(xiàn)在C程序中,a是一個(gè)字符常量。所以解答是。 4在用一個(gè)字節(jié)存儲(chǔ)一個(gè)字符的系統(tǒng)中,n在內(nèi)存占用的字節(jié)數(shù)是   1   2   3   4【解】一般來(lái)說(shuō),一個(gè)字符在內(nèi)存中只占1個(gè)字節(jié),n是轉(zhuǎn)義字符,其意義是換行符,它作為一個(gè)字符存儲(chǔ),在內(nèi)存也只占1個(gè)字節(jié)。所以解答是。 

4、;5字符串 xyz在內(nèi)存占用的字節(jié)數(shù)是   3  4   6   8【解】字符串中的每個(gè)字符占1個(gè)字節(jié),但C程序在存儲(chǔ)字符串時(shí),要在最后一個(gè)有效字符后面接上1個(gè)字符串結(jié)束的標(biāo)記符0。這樣,存儲(chǔ)字符串常量xyz需要4個(gè)字節(jié)。所以解答是。 6設(shè)變量m,n,a,b,c,d均為0,執(zhí)行(m = a=b)|(n=c=d)后,m,n的值是   0,0  0,1   1,0   1,1【解】計(jì)算(m = a=b)|(n=c=d)的過(guò)程是先計(jì)算邏輯或的左運(yùn)算分量

5、(m = a=b)的值,由于賦值運(yùn)算符的優(yōu)先級(jí)比關(guān)系運(yùn)算符=的優(yōu)先級(jí)低,又先計(jì)算a=b。因a,b均為0后,所以比較結(jié)果值為1。將1賦給變量m,使變量m的值變?yōu)?。同時(shí)這個(gè)賦值運(yùn)算的結(jié)果也是1,這樣邏輯運(yùn)算的左運(yùn)算分量的值為1。由于邏輯或運(yùn)算的左運(yùn)算分量值為1,按照C語(yǔ)言對(duì)邏輯或運(yùn)算優(yōu)化計(jì)算的規(guī)定,不再計(jì)算邏輯或的右運(yùn)算分量,而直接得到邏輯或運(yùn)算的結(jié)果為1。由于邏輯或的右運(yùn)算分量不曾計(jì)算過(guò),所以變量n的值也不為變化。這樣,上述表達(dá)式計(jì)算后,變量m 的值為1,變量n的值為0。所以解答是。 7設(shè)a為5,執(zhí)行下列語(yǔ)句后,b的值不為2的是   b = a/2  b

6、 = 6-(-a)   b = a%2   b = a < 3 ? 3: 2【解】因兩個(gè)整型數(shù)據(jù)相除,結(jié)果是整數(shù),當(dāng)a的值為5時(shí),計(jì)算表達(dá)式b = a/2后,使b的值為2。計(jì)算表達(dá)式b = 6 - (-a)是先計(jì)算子表達(dá)式(-a),先讓a的值減1變成4,并以減1后的a為子表達(dá)式的結(jié)果,所以子表達(dá)式的結(jié)果為4,最后使b的值為2。在計(jì)算表達(dá)式b =  a % 2時(shí),求余運(yùn)算a % 2的結(jié)果為1,最后使變量b的值為1。計(jì)算表達(dá)式b = a < 3 ? 3 : 2時(shí),先計(jì)算條件表達(dá)式a < 3 ? 3 : 2,以2為結(jié)果,最后也使變量

7、b的值為2。所以解答是。 8執(zhí)行語(yǔ)句“x = (a = 3, b = a-);”后,x,a,b的值依次為   3,3,2  2, 3,2   3,2,3   2,3,3【解】計(jì)算表達(dá)式x = (a = 3, b = a-)時(shí),先計(jì)算賦值號(hào)右端圓括號(hào)內(nèi)的逗號(hào)表達(dá)式。逗號(hào)表達(dá)式要求各子表達(dá)式順序計(jì)算,并以最后子表達(dá)式的值為整個(gè)逗號(hào)表達(dá)式的結(jié)果。所以該表達(dá)式計(jì)算時(shí),先讓變量a的值為3,a-的值是a當(dāng)時(shí)的值,以該值為結(jié)果賦給變量b,并以該值為逗號(hào)表達(dá)式的值賦給變量x,然后a的值被減少1。所以計(jì)算該表達(dá)式后,使變量x,a,b

8、的值依次為3,2,3。所以解答是。 9設(shè)有語(yǔ)句“int a=3;”,則執(zhí)行了語(yǔ)句“a + = a - = a*a;”后,變量a的值是   3  0  9  -12【解】由于賦值運(yùn)算符的結(jié)合性自右至左,語(yǔ)句“a + = a - = a*a;”的執(zhí)行是先計(jì)算a*a,得到值9,再計(jì)算a - = a*a,使a 的值為-6,接著計(jì)算a += a,使a 的值為-12。所以解答是。 10在以下一組運(yùn)算符中,優(yōu)先級(jí)最高的運(yùn)算符是   <=  =  %  &&【解】常規(guī)運(yùn)

9、算符的優(yōu)先級(jí)自高到低的排列順序是算術(shù)運(yùn)算符、移位運(yùn)算符、關(guān)系運(yùn)算符、按位運(yùn)算符、邏輯運(yùn)算符、條件運(yùn)算符、賦值運(yùn)算符、逗號(hào)運(yùn)算符。所以問(wèn)題所給的四個(gè)運(yùn)算符按優(yōu)先級(jí)自高到低的排列順序是%,<=,&&,=。所以解答是。 11設(shè)整型變量i的值為3,則計(jì)算表達(dá)式i-i后表達(dá)式的值為   0  1  2  表達(dá)式出錯(cuò)【解】有些運(yùn)算符只有一個(gè)字符,也有許多運(yùn)算符由兩個(gè)字符組成。特別是有些字符既可是單個(gè)字符的運(yùn)算符,又能組成雙字符的運(yùn)算符。編譯系統(tǒng)在識(shí)別源程序時(shí),通常是盡量多地讀入字符,能組成多字符單詞的先盡量組成多字符單詞。所

10、以表達(dá)式i-i,被編譯器理解為(i-)-i。另外,當(dāng)表達(dá)式中某變量有后綴自增和自減運(yùn)算時(shí),先按變量的原值計(jì)算表達(dá)式,然后再對(duì)變量進(jìn)行自增和自減運(yùn)算。同樣地,當(dāng)表達(dá)式中某變量有前綴自增和自減運(yùn)算時(shí),先對(duì)變量進(jìn)行自增和自減運(yùn)算,然后再按變量的新值計(jì)算表達(dá)式。按這個(gè)約定,求表達(dá)式(i-)-i是計(jì)算i-i的值為0,然后再對(duì)i作自減運(yùn)算。這樣,表達(dá)式(i-)-i的值為0。所以解答是。 12若已定義x和y為double類型,則表達(dá)式:x=1, y = x+3/2的結(jié)果是   1  2  2.0  2.5【解】由于變量x和y都是double類型,表

11、達(dá)式x=1, y = x+3/2是先計(jì)算x=1,由于1是整型的,x是double類型的,該計(jì)算先將整數(shù)1轉(zhuǎn)換成double類型的1.0,并將1.0賦給變量x。計(jì)算y = x+3/2是先求3/2的值,因是兩整數(shù)相除,結(jié)果是整型值1,然后在計(jì)算x+1時(shí),也先將1轉(zhuǎn)換成1.0,然后求得x+1的值為2.0,最后將該值賦給變量y,并得到整個(gè)表達(dá)式的值為2.0,簡(jiǎn)寫成2.0。所以解答是。 13設(shè)a=1,b=2,c=3,d=4,則表達(dá)式a < b ? a : c < d ? a : d的結(jié)果為   4  3  2  1【解】條件運(yùn)算符的

12、優(yōu)先級(jí)比關(guān)系運(yùn)算符的優(yōu)先級(jí)低,并且它的結(jié)合性是自右向左的,所以表達(dá)式a < b ? a : c < d ? a : d可用圓括號(hào)等價(jià)地寫成(a < b) ? a : (c < d) ? a : d)。因a<b成立,計(jì)算結(jié)果為a的值1。所以解答是。 14設(shè)a為整型變量,下列C表達(dá)式中,不能表達(dá)數(shù)學(xué)關(guān)系式:10<a<15的是   10<a<15         a = 11 | a = 12 | a = 13 | a = 14 

13、0;  a>10&&a<15      !(a<=10)&&!(a>=15)【解】數(shù)學(xué)關(guān)系式10<a<15表示a只能是11,12,13,14四個(gè)值之1。用C表達(dá)式表示這個(gè)條件,可寫成a >10&& a < 15,或!(a<=10)&&!(a>=15),或a = 11 | a = 12 | a = 13 | a = 14等。若寫成10<a<15,該算式的計(jì)算順序是先求出10<a的結(jié)果0或1,然后以

14、這個(gè)結(jié)果與15比較,是否小于15,顯然這與數(shù)學(xué)式子的意義是不一致的。所以解答是。 15若有以下定義:char a; int b; float c; double d;則表達(dá)式a*b+d-c值的類型為  float  int  char  double【解】基本類型的數(shù)據(jù)可以混合運(yùn)算,但運(yùn)算時(shí),對(duì)要求運(yùn)算分量類型相同的運(yùn)算來(lái)說(shuō),如運(yùn)算分量的類型不是全相同,則會(huì)有自動(dòng)類型轉(zhuǎn)換發(fā)生。類型自動(dòng)轉(zhuǎn)換規(guī)則規(guī)定類型低(簡(jiǎn)單)的向類型高(復(fù)雜)的轉(zhuǎn)換。各類型由高到低的排列順序是:       long

15、 double 、double、float、unsigned long、long、unsigned int、int。這樣,若有定義:char a; int b; float c; double d;則表達(dá)式a*b+d-c的值的類型是double的。首先計(jì)算a*b,得到int類型的值,接著計(jì)算a*b+d,得到double類型的值,最后計(jì)算a*b+d-c,得到double類型的值。所以解答是。  16設(shè)a,b和c都是int型變量,且a=3,b=4,c=5,則下面的表達(dá)式中值為0的是 a&&b  a<=b  a|b+c&&b-c&#

16、160; !(a<b)&& !c | 1)【解】對(duì)于表達(dá)式a&&b,兩個(gè)非0運(yùn)算分量的邏輯與結(jié)果為1。對(duì)于表達(dá)式a<=b,由于關(guān)系式成立,結(jié)果也為1。又由于變量a為非0,表達(dá)式a|b+c&&b-c的結(jié)果也為1。對(duì)于表達(dá)式!(a<b)&&!c|1),先是計(jì)算(a<b)得到結(jié)果1;計(jì)算!c得到結(jié)果為0;再計(jì)算它們的邏輯與,結(jié)果為0。繼續(xù)與1求邏輯或,得到結(jié)果為1。最后,對(duì)1求邏輯非,得到結(jié)果為0。所以解答是。 17設(shè)a=3,b=4,執(zhí)行“printf(“%d, %d”, (a, b), (b, a);

17、”的輸出是 3,4  4,3  3,3  4,4【解】在調(diào)用格式輸出函數(shù)的語(yǔ)句中,其中每個(gè)格式符對(duì)應(yīng)一個(gè)輸出項(xiàng),格式符d要求輸出項(xiàng)內(nèi)容以十進(jìn)制整數(shù)形式輸出。語(yǔ)句中的第一個(gè)格式符對(duì)應(yīng)輸出項(xiàng)(a, b)是一個(gè)逗號(hào)表達(dá)式,該表達(dá)式的值是b 的值,所以先輸出4。接著輸出字符逗號(hào)。同樣輸出項(xiàng)(b,a)的值是a的值,輸出3。所以語(yǔ)句執(zhí)行將輸出4, 3。正解的選擇是。 18使用“scanf(“x=%f,y=%f”, &x, &y)”,要使x, y均為1.25,正確的輸入是  1.25,1.25  1.25  1.25

18、60; x=1.25,y=1.25  x=1.25  y=1.25【解】格式輸入函數(shù)的格式字符串中的字符可以分成三類:空格類字符、其它普通字符和格式轉(zhuǎn)換說(shuō)明。其中空格類字符用來(lái)自動(dòng)跳過(guò)空格類字符,直至下一個(gè)非空格類字符。普通字符要求輸入字符與其完全相同。格式轉(zhuǎn)換說(shuō)明對(duì)輸入字符列按格式轉(zhuǎn)換說(shuō)明進(jìn)行轉(zhuǎn)換,得到內(nèi)部值存儲(chǔ)到對(duì)應(yīng)輸入項(xiàng)所指定的存儲(chǔ)位置中。格式輸入函數(shù)調(diào)用scanf(“x=%f,y=%f”, &x, &y)以普通字符x=開(kāi)頭,輸入時(shí)也要先輸入x=。接著是一個(gè)浮點(diǎn)數(shù)輸入格式,所有能構(gòu)成一個(gè)浮點(diǎn)數(shù)1.25的字符序列都能滿足要求。接著是普通字符列“,y=”,

19、在輸入的浮點(diǎn)數(shù)之后也要有字符列“,y=”。最后又是浮點(diǎn)數(shù)輸入格式,同樣所有能構(gòu)成一個(gè)浮點(diǎn)數(shù)1.25的字符序列都能滿足要求。問(wèn)題給出的供選擇答案中只有x=1.25,y=1.25是正確的輸入。所以選擇。    通常,格式輸入函數(shù)調(diào)用中,不在格式字符串插入普通字符,要求輸入與格式中的普通字符匹配的字符,而是簡(jiǎn)潔地寫上輸入格式即可。 19設(shè)a,b為字符型變量,執(zhí)行“scanf(“a=%c,b=%c”, &a, &b)”后使a為A,b為B,從鍵盤上的正確輸入是  AB  A,B  A=A,B=B  a=A,b

20、=B【解】函數(shù)調(diào)用scanf(“a=%c,b=%c”, &a, &b)中,普通字符必須按格式字符串要求照原樣輸入,c格式對(duì)緊接的任何字符都輸入。所以實(shí)現(xiàn)問(wèn)題的要求,輸入字符列應(yīng)為“a=A,b=B”。另外要特別指出,在程序中,為表示字符常量,字符前后需加單引號(hào)。但用字符格式輸入字符時(shí),在要輸入字符前后不必另鍵入單引號(hào)。若鍵入單引號(hào),則這個(gè)單引號(hào)也將作為字符被輸入。正確的解答是。 20設(shè)有int i=010, j=10;則執(zhí)行“printf(“%d, %dn”, +i, j-);”的輸出是  11,10  9,10  010,9 

21、10,9【解】變量i和j的初值分別為八進(jìn)制數(shù)010和十進(jìn)制數(shù)10,格式輸出函數(shù)調(diào)用printf(“%d, %dn”, +i, j-)中,+i的值是變量i增1后的值,原來(lái)值是八進(jìn)制數(shù)010,等于十進(jìn)制數(shù)8,輸出9。j-的值是變量j減1之前的值,輸出10。格式字符串中的逗號(hào)是普通字符照原樣輸出。所以問(wèn)題給出的格式輸出函數(shù)調(diào)用將輸出9,10。正確的解答是 21假定所有變量均已正確定義,下列程序段運(yùn)行后x的值是   a = b = c = 0; x = 35;      if(!a)x-;else if(b);if(c)x

22、 = 3;else x = 4; 34  4  35  3【解】以變量a,b,c的值均為0,變量x的值為35,語(yǔ)句:      if(!a)x-;else if(b);if(c)x = 3;else x = 4;由兩個(gè)if語(yǔ)句組成。首先執(zhí)行前一個(gè)if語(yǔ)句“if(!a)x-;else if(b);”,因變量a的值為0,條件!a成立,執(zhí)行x-使x的值變?yōu)?4。接著執(zhí)行后繼的if語(yǔ)句“if(c)x = 3;else x = 4;”,因變量c的值為0,條件不成立而執(zhí)行x = 4,最終使變量x的值為4。正確解答是。注意前一個(gè)

23、if語(yǔ)句的else部分的成分語(yǔ)句只有“if(b);”,這是一個(gè)單分支if語(yǔ)句,且其成分語(yǔ)句為空語(yǔ)句。 22下面的程序段所表示的數(shù)學(xué)函數(shù)關(guān)系是     y = -1;     if(x!=0) if(x>0) y = 1; else y = 0;      -1  (x<0)          1  (x < 0)

24、0;          0  (x<0)          -1  (x<0) y = 0  (x=0)   y = -1 (x = 0)   y = -1 (x = 0)  y = 1 (x = 0)       1  (x>0) 

25、0;        0  (x > 0)           1 (x > 0)         0 (x > 0)【解】程序段首先置變量y的值為-1,接著按變量x值的不同情況重置變量y的值。重置的首要條件是x!=0,若變量x的值為0,則不再重置變量y的值,所以在x值為0情況下,y的值是-1。在變量x的值不等于0的條下,

26、若x的值大于0,重置變量y的值為1;若變量x的值小于0,重置變量y的值為0。所以程序段實(shí)現(xiàn)當(dāng)變量x的值為0時(shí),變量y的值為-1;當(dāng)變量x的值大于0時(shí),置變量y的值為1;當(dāng)變量x的值小于0時(shí),置變量y的值為0。正確解答為。 23設(shè)int a = 8, b = 7, c = 6, x = 1;執(zhí)行語(yǔ)句   if (a > 6) if (b > 7) if (c > 8) x = 2; else x = 3;后x的值是 0    1    2    3【解】將上述

27、語(yǔ)句寫成易讀的結(jié)構(gòu)化形式:   if (a > 6)      if(b > 7)         if (c > 8)           x = 2;        else   x = 3;該語(yǔ)句的執(zhí)行過(guò)程是,首先判定(a > 6),因a 的值是8,條件成立;

28、接著判定(b > 7),因b的值是7,條件不成立。在上述語(yǔ)句中,沒(méi)有對(duì)應(yīng)if(b > 7)的else,上述語(yǔ)句就因(b > 7)的條件不成立而不執(zhí)行任何有意義的動(dòng)作,結(jié)束該語(yǔ)句的執(zhí)行。這樣,變量a、b、c和x的值都不會(huì)因執(zhí)行上述語(yǔ)句而改變,所以變量x 的值依舊保持1。所以解答是。 24執(zhí)行下列程序段   x = 9;   while (x > 7)     printf(“*”); x-; 后輸出的結(jié)果是 *    *    *&#

29、160;   *【解】上述代碼以x的初值為9,在x>7成立的情況下循環(huán),每次循環(huán)輸出一個(gè)*字符,并讓x的值減1。共執(zhí)行2次循環(huán),也就共輸出了2個(gè)*字符。所以解答為。 25循環(huán)語(yǔ)句“for(x=0, y=0; (y!=123) | (x < 4); x+);”的循環(huán)執(zhí)行 無(wú)限次   不確定次  4次      3次【解】for循環(huán)語(yǔ)句的初始化部分置變量x和y的初值為0,循環(huán)條件是(y!=123) | (x < 4),每次循環(huán)后變量x的值增1。由于循環(huán)過(guò)程中變量y的值未被

30、修改過(guò),循環(huán)條件又是一個(gè)邏輯或,其左分量(y!=123)永遠(yuǎn)成立,也就是循環(huán)條件永遠(yuǎn)成立。所以該循環(huán)語(yǔ)句將循環(huán)執(zhí)行無(wú)限次。正確解答是。 26設(shè)x和y為int型變量,則執(zhí)行下面的循環(huán)后,y的值為for(y=1, x=1; y <=50; y+)    if(x >= 10) break;   if(x%2 = 1) x += 5; continue;   x -= 3; 2  4  6  8【解】for循環(huán)語(yǔ)句的初始化部分置變量x和y的初值為1,循環(huán)條件是(y<=50),每次循環(huán)

31、后變量y的值增1,控制循環(huán)最多執(zhí)行50次。循環(huán)體有三個(gè)語(yǔ)句:首先在發(fā)現(xiàn)變量x的值大于等于10時(shí),結(jié)束循環(huán);接著是當(dāng)變量x除2的余數(shù)為1(即變量x是奇數(shù))時(shí),讓變量x值增5,讓x變成偶數(shù),并直接進(jìn)入下一輪循環(huán);如變量x是偶數(shù),則從變量x減去3,讓變量x變成奇數(shù)。由上述分析知,每?jī)纱窝h(huán)使變量x的值增加2。第一次循環(huán)后,變量x的值變成6。第二次循環(huán)后,變量x的值變成3。第三次循環(huán)后,變量x的值變成8。第四次循環(huán)后,變量x的值變成5。第五次循環(huán)后,變量x的值變成10。第六次循環(huán)時(shí),因變量x的值大于等于10,直接跳出循環(huán),這次循環(huán)是非正常結(jié)束,對(duì)變量y的修正只執(zhí)行了5次。所以循環(huán)結(jié)束后,變量y的值增至

32、6。正確的解答是。 27在C語(yǔ)言中,下列說(shuō)法中正確的是  編程時(shí)盡量不要使用“do 語(yǔ)句 while(條件)”的循環(huán) “do 語(yǔ)句 while(條件)”的循環(huán)中必須使用“break”語(yǔ)句退出循環(huán) “do 語(yǔ)句 while(條件)”的循環(huán)中,當(dāng)條件非0時(shí)將結(jié)束循環(huán) “do 語(yǔ)句 while(條件)”的循環(huán)中,當(dāng)條件為0時(shí)將結(jié)束循環(huán)【解】do-while語(yǔ)句的一般形式是:  do 語(yǔ)句  while (表達(dá)式);其語(yǔ)義是重復(fù)執(zhí)行其成分語(yǔ)句,直至表示條件的表達(dá)式值為0時(shí)結(jié)束。do-while語(yǔ)句是正常使用的一種循環(huán)結(jié)構(gòu)之一。do-while語(yǔ)句的循環(huán)結(jié)束條件由

33、while 后的表達(dá)式值為0所控制,并不一定要有break語(yǔ)句跳出循環(huán)來(lái)結(jié)束循環(huán)。do-while語(yǔ)句在條件值非0時(shí),將繼續(xù)循環(huán),而不是結(jié)束循環(huán)。條件值為0時(shí),才結(jié)束循環(huán)。所以正確的選擇是。 28若有下列說(shuō)明,則數(shù)值為4的表達(dá)式是int a12 = 1,2,3,4,5,6,7,8,9,10,11,12;char  c = a, d, g;   ag-c  a4  ad-c  ad-c【解】數(shù)組元素的下標(biāo)自0開(kāi)始順序編號(hào),值為4的元素是a3。所以只有下標(biāo)表達(dá)式的值為3才是正確的。下標(biāo)表達(dá)式g-c中的的變量g和c的值是還未被設(shè)定的,其值不

34、確定。a4的值為5,下標(biāo)為4是不對(duì)的。d-c的值為1,a1的值是2,所以也是不對(duì)的。變量c的值為a,d-c=3,所以正確解答是。 29設(shè)有定義:“char s12=“string”;”,則printf(“%dn”, strlen(s);的輸出是 6  7  11  12【解】在C語(yǔ)言中,字符串是指在有效字符之后有字符串結(jié)束標(biāo)記符的字符列,并約定字符串的長(zhǎng)度是指字符串中有效字符個(gè)數(shù),不包括字符串的結(jié)束標(biāo)記符。存于字符數(shù)組s中的字符串是”string”,該字符串的長(zhǎng)度為6,所以輸出該字符串的長(zhǎng)度應(yīng)是6。正確的解答是。 30下列C代碼中,合法的數(shù)組定

35、義是   int a = “string”;   int a5 = 0, 1, 2, 3, 4, 5;   char a = “string”;     char a = 0, 1, 2, 3, 4, 5;【解】錯(cuò)誤的原因是整數(shù)數(shù)組不可以用字符串對(duì)其初始化。錯(cuò)誤的原因是,數(shù)組初始化時(shí),初始化指定的值的個(gè)數(shù)不能多于數(shù)組的元素個(gè)數(shù)。錯(cuò)誤的原因是,能用字符串初始化的只有字符指針變量,或字符數(shù)組。字符串不能對(duì)其它類型的變量初始化,包括字符變量。是正確的,因?yàn)樽址麛?shù)組可以用小整數(shù)(作為字符的ASCII代碼

36、值)對(duì)其元素初始化。 31字符串”mx43np102q”的長(zhǎng)度是 7     9   15   16【解】字符串的長(zhǎng)度是指字符串中有效字符的個(gè)數(shù)。在C程序中,組成字符串的字符可以是一般的普通字符,也可以是轉(zhuǎn)義字符。其中轉(zhuǎn)義字符又可以用多種不同形式來(lái)表達(dá):反斜杠字符之后接上預(yù)先規(guī)定的字符,用來(lái)表示特殊字符或特定意義的控制字符。如單引號(hào)字符、雙引號(hào)字符、反斜杠字符等特殊字符,換行、回車、退格等控制字符。反斜杠字符之后接上1至3位八進(jìn)制數(shù)字符,這是直接用八進(jìn)制數(shù)字表示字符的ASCII代碼的方式。反斜杠字符之后接上字符x,

37、并后接1至2個(gè)十六進(jìn)制數(shù)字符,這是直接用十六進(jìn)制數(shù)字表示字符的ASCII代碼的方式。后二種能表示C語(yǔ)言允許的任何字符。在本小題給出的字符串中,字符x43是用十六進(jìn)制數(shù)表示的一個(gè)字符,字符表示一個(gè)反斜杠字符,字符n表示一個(gè)換行字符,字符102是用八進(jìn)制數(shù)表示的一個(gè)字符。這樣,所給字符串只有7個(gè)有效字符。所以,該字符串的長(zhǎng)度是7,解答為。 32設(shè)有如下定義,則正確的敘述為char x = “abcdefg”, y = a, b, c, d, e, f, g;  數(shù)組x和數(shù)組y等價(jià)        &#

38、160;       數(shù)組x和數(shù)組y長(zhǎng)度相同  數(shù)組x的長(zhǎng)度大于數(shù)組y的長(zhǎng)度      數(shù)組x的長(zhǎng)度小于數(shù)組y的長(zhǎng)度【解】不指定數(shù)組長(zhǎng)度的字符數(shù)組定義,其所需要的字節(jié)數(shù)可由初始化中給出的值的個(gè)數(shù)確定。字符數(shù)組可以用字符串初始化,也可用字符逐個(gè)給字符數(shù)組的元素初始化。但盡管用字符初始化時(shí),給出了字符串中的全部字符,但字符串自動(dòng)會(huì)含有字符串的結(jié)束標(biāo)記符,字符串初始化所需要的字節(jié)個(gè)數(shù)會(huì)比用同樣多的字符初始化多1個(gè)字節(jié)。所以只有才是正確的。 33 設(shè)有定義“int a = 3, b, *p =

39、 &a;”,則下列語(yǔ)句中使b不為3的語(yǔ)句是   b = *&a;  b = *p;  b = a;  b = *a;【解】定義有int a = 3, b, *p = &a;對(duì)b賦值的表達(dá)式有*&a、*p、a、*a。引用變量a 的值有兩種方法,一是直接引用a ,二是通過(guò)a 的指針間接引用a。對(duì)于后者,又有多種表達(dá)方法,通過(guò)指向a 的指針p,間接引用a 的內(nèi)容,如*p?;蛲ㄟ^(guò)求地址運(yùn)算符由變量a得到其指針&a,再由這指針表達(dá)式間接引用a 的內(nèi)容,如*&a。所以表達(dá)式*&a、*p和a都能引用變量

40、a的值,而使b的值為3。而表達(dá)式*a是錯(cuò)誤的,因?yàn)閍不是指針變量,不能對(duì)它施行取內(nèi)容運(yùn)算符*。所以解答是。 34設(shè)char str110 = “ABCDE”, str210 = “xyz”;則執(zhí)行語(yǔ)句  printf(“%d”, strlen(strcpy(str1, str2); 后的輸出結(jié)果是  9    8    5    3【解】上述代碼是輸出表達(dá)式strlen(strcpy(str1, str2)的值,該表達(dá)式的求值 順序是先執(zhí)行函數(shù)調(diào)用strcpy(str1, s

41、tr2),該函數(shù)調(diào)用將str2 所指字符串內(nèi)容復(fù)制到str1所指的字符數(shù)組中,并返回存放于str1中的字符串的首字符的指針。經(jīng)函數(shù)調(diào)用strcpy(str1, str2)后,str1中的內(nèi)容變成字符串“xyz”。接著求更新成字符串“xyz”的str1中的字符串的長(zhǎng)度,并輸出。這樣,代碼將輸出整數(shù)3。所以解答為。 35設(shè)int x = 1, 3, 5, 7, 9, 11, 13, *p = x;則不能正確引用數(shù)組元素的表達(dá)式是  *(p-)  *(-p)   *(p+)    *(+p)【解】根據(jù)C語(yǔ)言關(guān)于數(shù)組變量名

42、表達(dá)式就是數(shù)組首元素的指針的約定,上述指針變量p的初值是指向數(shù)組x的首元素x0。表達(dá)式*(p-)的求值順序是先求p-,它的值是p 的原先值,即x0的指針&x0。這樣,表達(dá)式*(p-)引用的是數(shù)組x的首元素x0,是對(duì)數(shù)組x的一個(gè)有意義元素的引用。但這里要指出的是在該表達(dá)式求值后,變量p 的值將要減去一個(gè)單位,使p 指向x0的前一個(gè)位置,這是一個(gè)在程序中沒(méi)有確定意義的位置。表達(dá)式*(-p)的求值順序是先求-p,它首先讓變量p 的值減去一個(gè)單位,使p 指向x0的前一個(gè)位置,這是一個(gè)在程序中沒(méi)有確定意義的位置。表達(dá)式*(-p)引用的不再是數(shù)組x的一個(gè)有意義的元素。表達(dá)式*(p+)的求值順序是先

43、求p+,它的值是p 的原先值&x0。這樣,表達(dá)式*(p+)引用的是數(shù)組x的首元素x0,是對(duì)數(shù)組x的一個(gè)有意義元素的引用。在該表達(dá)式求值后,變量p 的值將要增加一個(gè)單位,使p 是x0的后一個(gè)元素的指針,即&x1。表達(dá)式*(+p)的求值順序是先求+p,它首先讓變量p 的值增加一個(gè)單位,使p的值是x0的后一個(gè)元素的指針,即&x1。這樣,表達(dá)式*(+p)引用的是數(shù)組x的元素x1,也是一個(gè)有意義的引用。所以解答為。 36設(shè) int x = 1, 2, 3, 4, y, *p = &x1;則執(zhí)行語(yǔ)句   y = (*-p)+;  后變

44、量y的值為  1    2     3      4【解】上述指針變量p的初值是指向數(shù)組x的元素x1。表達(dá)式y(tǒng) = (*-p)+的求值順序是先求-p,它首先讓變量p 的值減去一個(gè)單位,使p 指向x0。接著求表達(dá)式*-p,這是對(duì)x0的引用。表達(dá)式(*-p)+也就是x0+,它的值是 x0的原來(lái)值1。最后,表達(dá)式y(tǒng) = (*-p)+將1賦給變量y,使y的值為1。經(jīng)上述表達(dá)式求值后,x0的值變成2。所以解答為。 37在C語(yǔ)言中,下列說(shuō)法中,錯(cuò)誤的敘述是 

45、 函數(shù)定義可以分為兩個(gè)部分:函數(shù)說(shuō)明部分和函數(shù)體  主函數(shù)可以調(diào)用任何非主函數(shù)  任何非主函數(shù)可以調(diào)用其它任何非主函數(shù)  程序可以從任何函數(shù)開(kāi)始執(zhí)行【解】每個(gè)C函數(shù)的定義分兩部分,函數(shù)說(shuō)明部分和函數(shù)體,所以敘述是正確的敘述。在C語(yǔ)言中,函數(shù)可以遞歸調(diào)用,主函數(shù)可以調(diào)用程序中的任何函數(shù),當(dāng)然可以調(diào)用任何非主函數(shù)的其它函數(shù),所以敘述是一個(gè)正確的敘述。同樣理由,敘述也是正確的。C語(yǔ)言規(guī)定,C程序只有一個(gè)主函數(shù),并總是從主函數(shù)開(kāi)始執(zhí)行,不能從非主函數(shù)開(kāi)始執(zhí)行。所以,說(shuō)程序可以從任何函數(shù)開(kāi)始執(zhí)行是錯(cuò)誤的。所以解答是。 38執(zhí)行下列程序   in

46、t fun(int x1, int x2)     int x;   x1 > x2 ? (x = 3) : (x = 4); return x + x1;       main()     printf(“%dn”, fun(7, 8);   后輸出結(jié)果是  9    10     11      12【解】上述程序中,

47、主函數(shù)以實(shí)際參數(shù)7和8調(diào)用函數(shù)fun,并輸出函數(shù)的返回值。函數(shù)fun被調(diào)用時(shí),形式參數(shù)x1的初值是7,x2的初值是8。函數(shù)執(zhí)行表達(dá)式語(yǔ)句x1 > x2 ? (x = 3) : (x = 4)這是一個(gè)條件表達(dá)式,因條件x1 > x2不成立,條件表達(dá)式求(x = 4),該表達(dá)式的求值使函數(shù)的局部變量x的值為4。最后,函數(shù)返回x + x1的值11。所以解答為。 39函數(shù)調(diào)用語(yǔ)句“f(e1, e2), (e3, e4, e5);”中參數(shù)的個(gè)數(shù)是。      1     2    

48、4     5  【解】上述函數(shù)調(diào)用中,(e1, e2)和(e3, e4, e5)是兩個(gè)帶括號(hào)的表達(dá)式,所以函數(shù)調(diào)用只提供兩個(gè)實(shí)參,其中第一個(gè)實(shí)參先計(jì)算e1的值,然后計(jì)算e2,并以e2的值為實(shí)參。第二個(gè)實(shí)參順序計(jì)算e3,e4,e5,并以e5的值為實(shí)參。所以解答是。 40以下程序中的for循環(huán)執(zhí)行的次數(shù)是   #include  <stdio.h>   #define  N  2   #define  M  N+1 

49、  #define  NUM  (M+1)*M/2   main()     int i, n = 0;      for(i = 1; i <=NUM;i+) n+; printf(“%d”, n);         printf(“n”);          5     6    

50、; 8     9  【解】代碼NUM被替換成(2+1+1)* 2+1/2,所以其值是8。所以程序中的for循環(huán)執(zhí)行的次數(shù)是8次。正確解答是。  二、填充題 1用高級(jí)語(yǔ)言編寫的程序稱為程序,它可以通過(guò)程序翻譯一句執(zhí)行一句的方式執(zhí)行,也可以通過(guò)程序一次翻譯產(chǎn)生程序,然后執(zhí)行?!窘狻坑酶呒?jí)語(yǔ)言編寫的程序稱為源程序,源程序不能在計(jì)算機(jī)上直接運(yùn)行,運(yùn)行源程序有兩種方式:一種是通過(guò)解釋程序,對(duì)源程序逐句解釋執(zhí)行;另一種是先讓編譯程序?qū)⒃闯绦蛞淮畏g產(chǎn)生目標(biāo)程序(目標(biāo)程序是計(jì)算機(jī)可直接執(zhí)行的機(jī)器語(yǔ)言程序,它是一種二進(jìn)制代碼程序),然后執(zhí)

51、行目標(biāo)程序。  2C程序是由函數(shù)構(gòu)成的。其中有并且只能有個(gè)主函數(shù)。C語(yǔ)言程序的執(zhí)行總是由函數(shù)開(kāi)始,并且在函數(shù)中結(jié)束(如別的函數(shù)未調(diào)用終止程序執(zhí)行的庫(kù)函數(shù))?!窘狻緾程序是由若干函數(shù)構(gòu)成的。其中有并且只能有1個(gè)主函數(shù)(用main命名)。C程序的執(zhí)行總是由主函數(shù)開(kāi)始執(zhí)行,通常在主函數(shù)中結(jié)束(如沒(méi)有在別的函數(shù)中調(diào)用終止程序執(zhí)行的庫(kù)函數(shù)的話)。  3在C程序中,判邏輯值時(shí),用表示邏輯值“真”, 又用表示邏輯值“假”。 在求邏輯值時(shí),用表示邏輯表達(dá)式值為“真”, 又用表示邏輯表達(dá)式值為“假”?!窘狻吭贑程序中,判邏輯值時(shí),用非0表示真;而判邏輯值時(shí),用數(shù)0表示假。

52、邏輯表達(dá)式計(jì)算時(shí),邏輯表達(dá)式值為真是用1表示的,若邏輯表達(dá)式的值為假,則用0表示。  4無(wú)符號(hào)基本整型的數(shù)據(jù)類型符為,雙精度實(shí)型數(shù)據(jù)類型符為,字符型數(shù)據(jù)類型符為?!窘狻繜o(wú)符號(hào)的基本整型的類型符為unsigned int,或簡(jiǎn)寫成unsigned。雙精度實(shí)型數(shù)據(jù)類型符為double,字符型數(shù)據(jù)類型符為char。  5設(shè)有下列運(yùn)算符:<<、+、+、&&、<=,其中優(yōu)先級(jí)最高的是,優(yōu)先級(jí)最低的是?!窘狻繉?duì)運(yùn)算符<<、+、+、&&、<=,按它們的優(yōu)先級(jí)自高到低的順序排列為:+、+、<<

53、;、<=、&&所以,優(yōu)先級(jí)最高的是+,優(yōu)先級(jí)最低的是&&。 6設(shè)整型變量x、y、z均為5: 執(zhí)行“x -= y-x”后,x = , 執(zhí)行“x %= y+z”后,x = , 執(zhí)行“x = (y>z)?x+2:x-2,3,2”后,x = ?!窘狻吭谧兞縳、y、z的值均為5的情況下,計(jì)算各表達(dá)式。由于表達(dá)式x-=y-z等價(jià)于表達(dá)式x = x (y-z),所以計(jì)算后x的值為5。表達(dá)式x%=y+z等價(jià)于表達(dá)式x = x % (y+z),所以計(jì)算后x的值也為5。表達(dá)式x =(y>z)? x+2 : x-2,3,2的計(jì)算過(guò)程用圓括號(hào)描述其計(jì)算順序是

54、:       (x =(y>z)?x+2:x-2),3),2即這是一個(gè)逗號(hào)運(yùn)算表達(dá)式,由一個(gè)賦值表達(dá)式和兩個(gè)數(shù)值構(gòu)成,逗號(hào)表達(dá)式要求順序求各子表達(dá)式的值。表達(dá)式x =(y>z)?x+2:x-2的計(jì)算是先求賦值號(hào)右邊的條件表達(dá)式,因條件(y>z)為假,求出x-2的值為3,將該值賦給變量x,使x的值為3。 7能表述“20<x<30或x<-100”的C語(yǔ)言表達(dá)式是。【解】首先表述20<x<30的C表達(dá)式可寫成20<x && x < 30。所以表述“20&

55、lt;x<30或x<-100”的C表達(dá)式為20<x && x < 30 | x < -100。  8結(jié)構(gòu)化程序設(shè)計(jì)規(guī)定的三種基本結(jié)構(gòu)是結(jié)構(gòu),選擇結(jié)構(gòu)和結(jié)構(gòu)?!窘狻拷Y(jié)構(gòu)化程序設(shè)計(jì)的三種基本控制結(jié)構(gòu)是順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。 9若有定義語(yǔ)句“int a = 25, b = 14, c = 19;”,以下語(yǔ)句的執(zhí)行結(jié)果是。if(a+<=25 && b- <= 2 && c+)   printf(“*a=%d,b=%d,c=%dn”, a, b, c); e

56、lse printf(“#a=%d,b=%d,c=%dn”, a, b, c);【解】問(wèn)題所給的if語(yǔ)句中,條件a+ <= 25 && b- <= 2 && c+是先求邏輯與的第一個(gè)運(yùn)算分量,它是一個(gè)關(guān)系式,關(guān)系成立。接著判定第二個(gè)邏輯與運(yùn)算分量,又是一個(gè)關(guān)系式,由于變量b的值是14,b不小于等于2,運(yùn)算分量的關(guān)系式不成立,導(dǎo)致if語(yǔ)句的條件為假,執(zhí)行else部分。在求if語(yǔ)句的條件時(shí),計(jì)算了2個(gè)邏輯與分量,使變量a 的值增了1,變量b的值被減了1。所以輸出內(nèi)容是:#a=26,b=13,c=19。 10以下兩條if語(yǔ)句可合并成一條if語(yǔ)句為

57、。if (a <= b) x = 1; else y = 2;if(a > b) printf(“*y = %dn”, y); else printf(“#x = %dn”, x);【解】在以上兩條if語(yǔ)句中,兩個(gè)條件剛巧相反。若將前一個(gè)if語(yǔ)句的第一個(gè)成分語(yǔ)句與第二個(gè)if語(yǔ)句的第二個(gè)成分語(yǔ)句合并;第一個(gè)if語(yǔ)句的第二個(gè)成分語(yǔ)句與第二個(gè)if語(yǔ)句的第一個(gè)成分語(yǔ)句合并,寫成一條if語(yǔ)句如下:if (a <= b)  x = 1; printf(“#x = %dn”, x); else y = 2; printf(“*y = %dn”, y);  11

58、下列程序的功能是輸入一個(gè)整數(shù),判斷是否是素?cái)?shù),若為素?cái)?shù)輸出1,否則輸出0,請(qǐng)為程序填空。main()  int i, x, y = 1;   scanf(“%d”, &x);   for(i = 2; i<=x/2; i+)      if y = 0; break;   printf(“%dn”, y);【解】為判數(shù)x是否是素?cái)?shù),預(yù)置變量y的值為1(x可能是素?cái)?shù)),然后用循環(huán),用2至x/2的整數(shù)i測(cè)試對(duì)x的整除性,若能被其中的某個(gè)整數(shù)整除,則x是合數(shù),置y的值

59、為0(x不是素?cái)?shù)),結(jié)束測(cè)試循環(huán)。若都不能整除,則x為素?cái)?shù)。i能否整除x,可用求余運(yùn)算x%i等于0來(lái)判定。所以程序中的空框可填x%i = 0。測(cè)試x為素?cái)?shù)的代碼可寫成:y = 1;for(i=2; i <=x/2; i+)   if(x%i = 0) y = 0; break;  12根據(jù)變量定義“static int b5, a3=1,2,3,4,5,6;”,b4=,a12= ?!窘狻肯到y(tǒng)規(guī)定,靜態(tài)變量定義時(shí),若未初始化,系統(tǒng)自動(dòng)給定二進(jìn)制代碼全0的值。所以靜態(tài)數(shù)組b的元素全為0,當(dāng)然包括b4也為0。靜態(tài)數(shù)組a是兩維數(shù)組,每行有三個(gè)元素,在初始化中給出了六

60、個(gè)初值,所以數(shù)組a有2行。由于數(shù)組的元素按行順序存儲(chǔ),并按行順序初始化。前三個(gè)值是第一行,后三個(gè)值是第二行。a12是第二行的第三列元素,也是a的最后一個(gè)元素,所以其值是6。 13若在程序中用到“putchar()”函數(shù)時(shí),應(yīng)在程序開(kāi)頭寫上包含命令,若在程序中用到“strlen()”函數(shù)時(shí),應(yīng)在程序開(kāi)頭寫上包含命令?!窘狻縫utchar()是系統(tǒng)提供的頭文件stdio.h中定義的宏,所以程序要使用它,必須寫上包含命令:#include <stdio.h>。函數(shù)strlen()是系統(tǒng)提供的字符串處理函數(shù)之一,字符串處理函數(shù)的函數(shù)原型說(shuō)明和它們用到的有關(guān)常量、數(shù)據(jù)結(jié)構(gòu)等,在系統(tǒng)

61、提供的頭文件string.h中定義,所以使用該函數(shù)的程序應(yīng)在程序開(kāi)頭寫上包含命令#include <string.h>。 14下面程序的功能是輸出數(shù)組s中最大元素的下標(biāo),請(qǐng)?zhí)羁?。main()  int k, p,s = 1, -9, 7, 2, -10, 3;   for(p = 0, k = p; p < 6; p+)      if(sp > sk)    printf(“%dn”, k);【解】為要尋找數(shù)組中的最大元素的下標(biāo),需先預(yù)設(shè)1個(gè)臨時(shí)最大元素的下標(biāo)

62、,并順序逐一考察數(shù)組的元素,當(dāng)發(fā)現(xiàn)當(dāng)前元素比臨時(shí)最大元素更大時(shí),就用當(dāng)前元素的下標(biāo)更新臨時(shí)最大元素下標(biāo)。直至考察了數(shù)組的全部元素后,這臨時(shí)最大元素下標(biāo)就是數(shù)組的最大元素下標(biāo)。通常預(yù)設(shè)的最大元素下標(biāo)是數(shù)組的首元素下標(biāo),考察是從首元素開(kāi)始順序向后繼元素考察。程序中,存儲(chǔ)臨時(shí)最大元素下標(biāo)的變量是k,變量p控制順序考察的循環(huán)控制變量。當(dāng)發(fā)現(xiàn)當(dāng)前元素sp比臨時(shí)最大元素sk更大時(shí),應(yīng)該用p更新k。所以在空框處應(yīng)填入代碼“k=p;”。 15下面程序的功能是將一個(gè)字符串str的內(nèi)容顛倒過(guò)來(lái),請(qǐng)?zhí)羁铡?include <string.h>main()  int i, j, ;&#

63、160; char str = “1234567”;   for(i = 0, j = strlen(str) ; i < j; i+, j+)   k = stri; stri = strj; strj = k;   printf(“%sn”, str);【解】顛倒一個(gè)字符串中的字符,就是首尾對(duì)應(yīng)的元素兩兩交換。簡(jiǎn)單地可用兩個(gè)游標(biāo)變量i和j,i是前端元素的下標(biāo),j是后端元素的下標(biāo),交換以這兩個(gè)變量值為下標(biāo)的元素stri和strj。開(kāi)始時(shí),i的值為0,j的值為字符串末元素的下標(biāo)(字符串長(zhǎng)度減1)。每次交換后,i增1,j減1。繼續(xù)

64、交換的條件是stri還位于strj的前面,即i<j。字符串末元素的下標(biāo)是它的長(zhǎng)度減1,所以在第二個(gè)空框處應(yīng)填入-1。程序?yàn)榱私粨Qstri和strj,使用了變量k,該變量應(yīng)在程序的變量定義部分中一起定義,所以在第一個(gè)空框處應(yīng)填入k。 16“*”稱為運(yùn)算符,“&”稱為運(yùn)算符?!窘狻繂文窟\(yùn)算符“*”稱為取內(nèi)容運(yùn)算符,單目運(yùn)算符“&”稱為取地址運(yùn)算符。 17&后跟變量名,表示該變量的;*后跟指針變量名,表示該指針變量;&后跟的是指針變量名,表示該指針變量的?!窘狻繂文窟\(yùn)算符&是取地址運(yùn)算符,&后跟變量名,就表示該變量的地址。單目

65、運(yùn)算符*是取內(nèi)容運(yùn)算符,*后跟指針變量名,表示該指針變量所指變量的內(nèi)容。若&后跟的是指針變量名,就表示該指針變量的地址。若知道指針變量的地址,欲通過(guò)指針變量的地址引用指針變量所指變量的內(nèi)容,需要兩次取內(nèi)容運(yùn)算。 18 函數(shù)的形式參數(shù)的作用域?yàn)?,全局的外部變量和函?shù)體內(nèi)定義的局部變量重名時(shí),變量?jī)?yōu)先?!窘狻亢瘮?shù)將它的形參當(dāng)作它的局部變量,所以函數(shù)形參的作用域?yàn)槎x它的函數(shù)。當(dāng)函數(shù)的形參或函數(shù)內(nèi)的局部變量與函數(shù)外的全局變量同名時(shí),函數(shù)的局部變量?jī)?yōu)先。 19 若自定義函數(shù)要求返回一個(gè)值,則應(yīng)在該函數(shù)體中有一條語(yǔ)句;若自定義函數(shù)要求不返回一個(gè)值,則應(yīng)在該函數(shù)說(shuō)明時(shí)加一個(gè)類型

66、符。 【解】若自定義的函數(shù)有返回值,則函數(shù)返回時(shí)應(yīng)執(zhí)行帶表達(dá)式的return語(yǔ)句返回,該表達(dá)式的值將作為函數(shù)調(diào)用的結(jié)果。為了強(qiáng)調(diào)函數(shù)是一個(gè)不返回值的函數(shù),應(yīng)在該函數(shù)說(shuō)明時(shí),加上一個(gè)void類型說(shuō)明符。  20將一字符串中的小寫英文字母改成大寫。main()  int i = 0; char str80;   scanf(“%s”, str);   while (_)     if(_) stri -= a A;      _ ;      printf(“%sn”, str);【解】為了改寫字符串中的小寫英文字母,需要順序地考察字符串的每一個(gè)字符

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論