C語(yǔ)言復(fù)習(xí)題整理_第1頁(yè)
C語(yǔ)言復(fù)習(xí)題整理_第2頁(yè)
C語(yǔ)言復(fù)習(xí)題整理_第3頁(yè)
C語(yǔ)言復(fù)習(xí)題整理_第4頁(yè)
C語(yǔ)言復(fù)習(xí)題整理_第5頁(yè)
已閱讀5頁(yè),還剩31頁(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、第 2部 分C語(yǔ)言程序設(shè)計(jì)習(xí)題與解答題解 1 緒 論習(xí)題一、選擇題1一個(gè)完整的可運(yùn)行的C 源程序中( B)。A.可以有一個(gè)或多個(gè)主函數(shù)C.可以沒(méi)有主函數(shù)2構(gòu)成C 語(yǔ)言源程序的基本單位是( D )。A.子程序B.過(guò)程B.必須有且僅有一個(gè)主函數(shù)D.必須有主函數(shù)和其他函數(shù)C.文本D.函數(shù)3某C 程序由一個(gè)主函數(shù)main( ) 和一個(gè)自定義函數(shù)max( ) 組成,則該程序(D )。A*總是從max()函數(shù)開(kāi)始執(zhí)行C.寫(xiě)在后面的函數(shù)先開(kāi)始執(zhí)行B.寫(xiě)在前面的函數(shù)先開(kāi)始執(zhí)行D*總是從 main()函數(shù)開(kāi)始執(zhí)行4 C 語(yǔ)言規(guī)定,一個(gè)C 源程序的主函數(shù)名必須為( C)。D functionA programB

2、includeC main5下列說(shuō)法正確的是(C )。A.在書(shū)寫(xiě)C語(yǔ)言源程序時(shí),每個(gè)語(yǔ)句以逗號(hào)結(jié)束B(niǎo).注釋時(shí),/和*號(hào)間可以有空格C.無(wú)論注釋內(nèi)容的多少,在對(duì)程序編譯時(shí)都被忽略D C 程序每行只能寫(xiě)一個(gè)語(yǔ)句6. C語(yǔ)言源程序文件的后綴是(C ),經(jīng)過(guò) Compile 后,生成文件的后綴是(A ),經(jīng)過(guò) Build 后,生成文件的后綴是( B )。A .objB .exeC .cD .doc7 Visual C+ IDE 的編輯窗口的主要功能是(A ),輸出窗主要功是,輸出窗口的主要功能是(D ),調(diào)試器,調(diào)試器(Debug)的主要功能是(。A.建立并修改程序C.跟蹤分析程序的執(zhí)行B.將C源程序

3、編譯成目標(biāo)程序D.顯示編譯結(jié)果信息(如語(yǔ)法錯(cuò)誤等)8在Visual C+ 開(kāi)發(fā)環(huán)境下,C 程序按工程( project )進(jìn)行組織,每個(gè)工程可包括(D)C/CPP源文件,但只能有( A ) main函數(shù)。A1 個(gè)C3 個(gè)B 2 個(gè)D 1 個(gè)以上(含 1 個(gè))在調(diào)試時(shí)沒(méi)有提示出錯(cuò),而且成功執(zhí)行并計(jì)算出了結(jié)果,只是結(jié)果等于9調(diào)試程序時(shí),如果某個(gè)語(yǔ)句后少了一個(gè)分號(hào),調(diào)試時(shí)會(huì)提示錯(cuò)誤,這種情況一般稱之為(A )。而某個(gè)“計(jì)算2 的平方”的程序5 ,這種情況一般稱之為( D )。A.語(yǔ)法錯(cuò)誤B.正常情況C.編譯器出錯(cuò)D.邏輯設(shè)計(jì)錯(cuò)誤二、簡(jiǎn)答題.如何使用注釋語(yǔ)句使用注釋有何好處. C程序?qū)?shū)寫(xiě)格式有何要求

4、規(guī)定書(shū)寫(xiě)格式有何好處符號(hào)名包括模塊名、常量名、標(biāo)號(hào)名、子程序名等。這些名字應(yīng)該能反映它所代表的實(shí)際東西,具有一定的意義,使其能夠見(jiàn)名知義,有助于對(duì)程序功能的理解.簡(jiǎn)述C程序上機(jī)調(diào)試的一般步驟 編輯,編譯,連接,運(yùn)行.簡(jiǎn)述C程序從.c源文彳到.exe可執(zhí)行文件的生成過(guò)程習(xí)題一、選擇題. C語(yǔ)言中最基本的非空數(shù)據(jù)類(lèi)型包括( DA.整型、浮點(diǎn)型、無(wú)值型C.整型、浮點(diǎn)型、字符型. C語(yǔ)言中運(yùn)算對(duì)象必須是整型的運(yùn)算符是(A. %B, /.若已定義x和y為int類(lèi)型,則執(zhí)行了語(yǔ)句A. 1B, 2.若有以下程序段:題解2基本數(shù)據(jù)類(lèi)型與運(yùn)算符)。B,整型、字符型、無(wú)值型D.整型、浮點(diǎn)型、雙精度型、字符型A )

5、。C.x=1 ; y=x+3/2 ;后 y 的值是(B )。C.D.D.int a=1,b=2,c;c=b*a;則執(zhí)行后,c中的值是(0.能正確表示邏輯關(guān)系:A. a=10 or a=10 & a=0|a=10 II a=0)。C. _ok)。C. nD. zwdD. 2D. .設(shè)先有定義:int a=10;則表達(dá)式a+=a *=a的值為( DA. 10B.100C. 1000D.200.設(shè)先有定義: int a=10;則表達(dá)式(+a)+(a -)的值為(202122D. 19.有如下程序: #include main()int y=3,x=3,z=1;printf(%d%dn”,(+x,y+

6、),z+2);運(yùn)行該程序的輸出結(jié)果是(A.443311.假定 x、V、z、mi勻?yàn)閕nt型變量,有如下程序段:x=2; y=3; z=1;m=(Vx)V: x;m=(zz)&(v=z)&x|y+z&v+z(x+V)z)&(V=z)&x|(V+z)&(y+z)=1&0&3|9&9=0|1=1.如果a=1,b=2,c=3,d=4 ,則條件表達(dá)式aba:(cdc:d 的值為A.B. 2C.D.A.15.設(shè) int m=1,n=2;則m+=n的結(jié)果是( AB. 1C.D.二、填空題.表達(dá)式10/3的結(jié)果是10%3的結(jié)果是.執(zhí)行t句:int a=12;a+=a-=a*a; 后的值是-2643.以下語(yǔ)句的

7、輸出結(jié)果是-1short b=65535;printf(%d,b);4.以下程序的執(zhí)行結(jié)果是X=3, a=2, b=2#include main()int a,b,x;x=(a=3,b=a-);printf(x=%d,a=%d,b=%dn,x,a,b);.以下程序的執(zhí)行結(jié)果是0#includemain()float f1,f2,f3,f4;int m1,m2;f1=f2=f3=f4=2;m1=m2=1;printf(%dn,(m1=f1=f2)&(m2=f3f4);.以下程序的執(zhí)行結(jié)果是n=1#include main() float f=;int n;n=(int)f%3;printf(n=

8、%dn,n);三、簡(jiǎn)答題2.簡(jiǎn)述轉(zhuǎn)義字符的用途并舉實(shí)例加以說(shuō)明題解3控制結(jié)構(gòu)習(xí)題一、選擇題1.結(jié)構(gòu)化程序模塊不具有的特征是(B )。A.只有一個(gè)入口和一個(gè)出口B.要盡量多使用 goto語(yǔ)句C. 一般有順序、選擇和循環(huán)3種基本結(jié)構(gòu)D.程序中不能有死循環(huán). C語(yǔ)言中,邏輯真等價(jià)于( C )。A.整數(shù)1B.整數(shù)0.以下4條語(yǔ)句中,有語(yǔ)法錯(cuò)誤的是( D )。A. if (ab) m=a;C.非0數(shù)B. if(a=0) m=a;4若i , j 均為整型變量,則以下循環(huán)* ( C )。D if (a=b;)=0) m=a;for (i=0,j=2; j=1; i+,j-)printf(%5d, %dn,

9、i, j);A.循環(huán)體只執(zhí)行一次C.是無(wú)限循環(huán)5以下程序段,執(zhí)行結(jié)果為(A )。B.循環(huán)體執(zhí)行二次D.循環(huán)條件不合法a=1;doa=a*a; while(!a);A*循環(huán)體只執(zhí)行一次C.是無(wú)限循環(huán)6* C 語(yǔ)言中 while 與 do-while 語(yǔ)句的主要區(qū)別是( AB.循環(huán)體執(zhí)行二次D.循環(huán)條件不合法)。A* do-while 的循環(huán)體至少無(wú)條件執(zhí)行一次B* do-while 允許從外部跳到循環(huán)體內(nèi)C * while 的循環(huán)體至少無(wú)條件執(zhí)行一次D * while 的循環(huán)控制條件比do-while的嚴(yán)格7*語(yǔ)句while (!a); 中條件等價(jià)于( D )。A* a!=0B* aC * a=

10、18*以下程序的運(yùn)行結(jié)果為(D )。#include main( )int i=1,sum=0;while(i=100)sum+=i;i+;printf(1+2+3+.+99+100=%d, sum); A* 5050B* 1C* 09*以下程序的運(yùn)行結(jié)果為(A )。D* a=0D.程序陷入死循環(huán)#include main( )int sum,pad;sum=pad=5;pad=sum+;pad+;+pad;printf(%dn, pad);C. 5D.A. 7B, 610.以下程序的運(yùn)彳r結(jié)果為( d )。#include main()int a=2,b=10;printf(a=%d,b=%

11、dn”, a,b);A. a=%2,b=%10B, a=2,b=10a=%d,b=%dD. a=%d,b=%d.為了避免嵌套的if-else語(yǔ)句的二義性,C語(yǔ)言規(guī)定else總是( C )A.與縮排位置相同的if組成配對(duì)關(guān)系B.與在其之前未配對(duì)的if組成配對(duì)關(guān)系C.與在其之前未配對(duì)的最近的if組成配對(duì)關(guān)系d.與同一彳r上的if組成配對(duì)關(guān)系.對(duì)于for (表達(dá)式1;表達(dá)式3)可理解為( B )for (表達(dá)式 1; 0 ;表達(dá)式3)for (表達(dá)式 1; 1 ;表達(dá)式3)C. for (表達(dá)式1;表達(dá)式1;表達(dá)式3)for (表達(dá)式1;表達(dá)式3;表達(dá)式3)程序填空.下面程序的功能是計(jì)算n!#inc

12、lude main ()int i, n;long p;printf ( Please input a number:n);scanf (%d, &n);p=1;for (i=2; i=n; i+)p*=i 或 p=p*iprintf(n!=%ld, p);.下面程序的功能是:從鍵盤(pán)上輸入若干學(xué)生的成績(jī),統(tǒng)計(jì)并輸出最高和最低成績(jī),當(dāng)輸入負(fù)數(shù)時(shí)結(jié)束輸入。#include main () float score, max, min; printf ( Please input one score:n); scanf (%f, &score); max=min=score; while (score

13、=0) if (scoremax)max=score;if (scoremin) min=score;printf ( Please input another score:n); scanf (%f, &score); printf(nThe max score is %fnThe min score is %f, max, min); 3.下面程序的功能是:計(jì)算y二的值。要求從鍵盤(pán)上輸入x的值,精度控制在內(nèi)。#include #include main () float x , y=0, fz=-1, fm=-1, temp=1; printf ( Please input the val

14、ue of x:n); scanf (%f, &x); while ( abs(temp) fz=【6】-fz*x;語(yǔ)句對(duì)其運(yùn)算進(jìn)行判定后執(zhí)行相應(yīng)fm=fm+2; temp=fz/fm; y+=temp; printf(ny= %f, y); 4.下面的程序完成兩個(gè)數(shù)的四則運(yùn)算。用戶輸入一個(gè)實(shí)現(xiàn)兩個(gè)數(shù)的四則運(yùn)算的表達(dá)式,程序采用switch的運(yùn)算并給出結(jié)果。#include main() float x,y; char op;printf(Please input Expression:);scanf(%f%c%f,&x,&op,&y);【7】switch (op)printf(%g%c%g=

15、%gn,【8】);9 break;case +:caseprintf(%g%c%g=%gn,x,op,y,x-y);break;printf(%g%c%g=%gn,x,op,y,x*y);break;if (【10(y=-1e-6)&(y=1e-6)printf(Division Error!n);elseprintf(%g%c%g=%gn,x,op,y,x/y);break;default:printf(Expression Error!n);casecase /:習(xí)題一、選擇題D. 3. C語(yǔ)言中函數(shù)形參的缺省存儲(chǔ)類(lèi)型是(A.靜態(tài)(static )C.寄存器(register ).函數(shù)調(diào)用

16、語(yǔ)句function(exp1,exp2), 18)A. 0B. 1.下面函數(shù)返回值的類(lèi)型是( D )。square(float x)B )。B.自動(dòng)(auto )D.外部(extern )中含有的實(shí)參個(gè)數(shù)為( C )。C. 2return x*x;B,是void型D,是int型A.與參數(shù)x的類(lèi)型相同C.無(wú)法確定4. C語(yǔ)言規(guī)定,程序中各函數(shù)之間( D )A.不允許直接遞歸調(diào)用,也不允許間接遞歸調(diào)用B,允許直接遞歸調(diào)用,但不允許間接遞歸調(diào)用C.不允許直接遞歸調(diào)用,但允許間接遞歸調(diào)用D.既允許直接遞歸調(diào)用,也允許間接遞歸調(diào)用. 一個(gè)函數(shù)返回值的類(lèi)型取決于( C )。A. return語(yǔ)句中表達(dá)式

17、的類(lèi)型B.調(diào)用函數(shù)時(shí)臨時(shí)指定C.定義函數(shù)時(shí)指定或缺省的函數(shù)類(lèi)型D.調(diào)用該函數(shù)的主調(diào)函數(shù)的類(lèi)型.下面敘述中,錯(cuò)誤的是(C )。A.函數(shù)的定義不能嵌套,但函數(shù)調(diào)用可以嵌套B,為了提高可讀性,編寫(xiě)程序時(shí)應(yīng)該適當(dāng)使用注釋C.變量定義時(shí)若省去了存儲(chǔ)類(lèi)型,系統(tǒng)將默認(rèn)其為靜態(tài)型變量D.函數(shù)中定義的局部變量的作用域在函數(shù)內(nèi)部.在一個(gè)源程序文件中定義的全局變量的有效范圍為(A. 一個(gè)C程序的所有源程序文件C.從定義處開(kāi)始到該源程序文件結(jié)束.某函數(shù)在定義時(shí)未指明函數(shù)返回值類(lèi)型,且函數(shù)中沒(méi)有A.沒(méi)有返回值C.返回一個(gè)系統(tǒng)默認(rèn)值.函數(shù)swap(int x, int y)可實(shí)現(xiàn)對(duì)C )。B.該源程序文件的全部范圍D.函

18、數(shù)內(nèi)全部范圍return語(yǔ)句,現(xiàn)若調(diào)用該函數(shù),則正確的說(shuō)法是(D )B.返回一個(gè)用戶所希望的值D,返回一個(gè)不確定的值a和b的值分別為( B )。x和y值的交換。在執(zhí)行如下定義及調(diào)用語(yǔ)句后,int a=10, b=20;swap (a,b );A. 10 和 10B, 10 和 2010.下面錯(cuò)誤的敘述是( D )。A.在某源程序不同函數(shù)中可以使用相同名字的變量B.函數(shù)中的形式參數(shù)是局部變量C.在函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效D.在函數(shù)內(nèi)的復(fù)合語(yǔ)句中定義的變量在本函數(shù)范圍內(nèi)有效二、程序填空1,求 s=1! +2! +3! +10!之和。程序如下:C. 20 和 10D. 20 和 20#i

19、nclude long int factorial(int n)int k=1;long int p=1;for(k=1; k=n; k+)【1】p=p*k;return p;main()int n;float sum=0;for(n=1;n=10;n+)2 sum=sum+factorial(n);printf(%n,sum);2.以下函數(shù)用以求x的y次方。double fun (double x, int y)int i;double m=1;i+ )for ( i=1; i3】=y 或 y+1m=4】m*xreturn m;三、閱讀程序并寫(xiě)出運(yùn)行結(jié)果.下面程序運(yùn)行的結(jié)果是 2, 4,6,

20、8#include #define MAX_COUNT 4 void fun( );main() int n;for(n=1; n=MAX_COUNT; n+) fun(); void fun( )static int k;k=k+2;printf (%d, k);4.下面程序運(yùn)彳T的結(jié)果是 _8, 17#include int fun(int x, int y)static int m=0, n=2;n+=m+1;m=n+x+y;return m;main()int j=4, m=1, k;k=fun(j, m);printf (%d, k);k=fun(j,m);printf(%dn, k

21、);題解 5習(xí)題一、選擇題1 、,在下列數(shù)組定義、初始化或賦值語(yǔ)句中,正確的是()。2:34:56A int a8; a8=100;C int x =1,2,3,4,5,6;inti, a100;則下列語(yǔ)句中不正確的是(ABCDfor ( i=0; i100; i+ )for ( i=0; i100; i+ )scanf (%d, &a);for ( i=0; i100; i+ )char c =GOOD;不等價(jià)的是(A char c = G, O, O, D, 0;C char c4=GOOD;char c8=GOOD;A puts (c);C printf (%s, c);a 3=0,1,

22、2,3,4,5,6,7;A 2以下程序的運(yùn)行結(jié)果是(ai=i;scanf ( %d, &ai );scanf ( %d, a+i );)。BB int x5=1,2,3,4,5,6;Dint n=8; int scoren;)。char c =GOOD;D char c5= G, O, O, D, 0;則下列語(yǔ)句中不正確 的是( D,則 a 數(shù)組中行的大小是()。B for ( i =0; ci!=D for ( i =0; ci!= 0; i + ))。B)。0;i + )printf (%c, ci);putchar ( c );C 4D.無(wú)確定值#include void f ( int

23、 b )int i=0;while(bi=10)bi+=2;i+;main( )int i, a = 1, 5,10, 9,13, 7;f (a+1);for(i=0; i6; i+)printf(%4d , ai);B 171211137A 271211139C. 1712111397.若執(zhí)行以下程序段,其運(yùn)行結(jié)果是(D )D. 1712913char c =a, b, 0, c, 0;printf ( %sn, c );A. ab cB. abC. abcD. ab8數(shù)組名作為參數(shù)傳遞給函數(shù),作為實(shí)際參數(shù)的數(shù)組名被處理為(D )。A *該數(shù)組長(zhǎng)度B-該數(shù)組元素個(gè)數(shù)C*該函數(shù)中各元素的值D*

24、該數(shù)組的首地址9.執(zhí)行下面的程序段后,變量 k中的值為( D )。int k=3, s2=1;s0=k;k=s1*10;A, 不定值B. 33C. 3010.在定義D. 0int a54;之后;對(duì)a的引用正確的是(C )。A.a24B. a50C. a00D. a0,011.當(dāng)接受用戶輸入的含空格的字符串時(shí),應(yīng)使用函數(shù)(B)。A.scanf()B. gets()C. getchar()D. getc()二、程序填空1.以下程序用來(lái)檢查二維數(shù)組是否對(duì)稱(即對(duì)所有 i , j都有aij=aji)#include main ()int a44=1,2,3,4, 2,2,5,6, 3,5,3,7, 8

25、,6,7,4;int i, j, found=0;for ( j=0; j4; j+ )for (i=0; i4; i+ )if (1 1aij!=aji )found=【2】1;break;if (found)break;if (found)printf ( 不對(duì)稱 n);elseprintf(對(duì)稱 n);5個(gè)數(shù)。2.以下程序是用來(lái)輸入 5個(gè)整數(shù),并存放在數(shù)組中,找出最大數(shù)與最小數(shù)所在的下標(biāo)位置,并把兩者對(duì)調(diào),然后輸出調(diào)整后的#include main ()int a5, t, i, maxi, mini;for ( i=0; i5; i+ )scanf ( %d”, &ai);mini=m

26、axi=【3】0;for ( i=1; iai) mini=i;if ( aiamaxi)5】 maxi=iprintf (最小數(shù)的位置是 :3dn, mini );printf (最大數(shù)的位置是:3dn, maxi );t=amaxi;【6】amaxi=amini;amini=t;printf ( 調(diào)整后的數(shù)為:);for ( i=0; i5; i+ )printf ( %d , ai);printf (n);3,給定一 3 x 4的矩陣,求出其中的最大元素值,及其所在的行列號(hào):main()int i,j,row=0,colum=0,max;static int a34=123,4,9,8,

27、7,6,10,-10,-4,4;【7】max=a00;for(i=0;i=2;i+)for(j=0;jmax)【9】max=aij; row=i;colum=j;printf(max=%d,row=%d,colum=%d,max,row,colum);4.下述函數(shù)用于確定給定字符串的長(zhǎng)度,請(qǐng)完成程序。strlen ( chars)int i=0;while (【10 si!= 0return (【11i);5.以下程序的功能是從鍵盤(pán)上輸入若干個(gè)字符(以回車(chē)鍵作為結(jié)束)組成一個(gè)字符數(shù)組,然后輸出該字符數(shù)組中的字符串,請(qǐng)?zhí)羁?include main () char str81; int i;fo

28、r ( i=0; i80; i+ ) stri=getchar( ); if (stri= n)break; stri= 0; 【12】i=0;while ( stri!= 0 )putchar(13 stri+);三、閱讀程序并寫(xiě)出運(yùn)行結(jié)果.寫(xiě)出下列程序的運(yùn)行結(jié)果并分析。#include main() static int a45=12340,220,0,0,3,4,5,0,0,6,0,0,0,0; int j,k;for (j=0;j4;j+) for(k=0;k5;k+) if (ajk=0) break; printf( %d,ajk); printf(n);.寫(xiě)出下列程序的運(yùn)行結(jié)果并

29、分析。#include main ( )int a66,i,j;for (i=1 ;i6 ; i+)for ( j=1;j6;j+)aij= i*j;for (i=1 ;i6 ; i+)for ( j=1;j6;j+)printf( %-4d ,aij ) ;printf(n);3寫(xiě)出下列程序的運(yùn)行結(jié)果并分析。#include main ( )int a =1,2,3,4,i,j,s=0;j=1;for ( i=3;i=0;i- )s=s+ai*j;j=j*10;printf(s=%dn,s);4寫(xiě)出下列程序的運(yùn)行結(jié)果并分析。#include main( )int a=0,2,5,8,12,1

30、5,23,35,60,65;int x=15,i,n=10,m;i=n/2+1;m=n/2;while(m!=0)if(xai)i=i+m/2+1;m=m/2;elsebreak;printf(place=%d,i+1);5寫(xiě)出下列程序的運(yùn)行結(jié)果并分析。#include main( )int a=1,2,3,4,i,j,s=0;j=1;for(i=3;i=0;i-)s=s+ai*j;j=j*10;printf(s=%dn,s);6寫(xiě)出下列程序的運(yùn)行結(jié)果并分析。#include main( )char str=1a2b3c;int i;for(i=0;stri!=0;i+)if(stri=0&s

31、tri=9)printf(%c,stri);printf(n);四、編程題1編一程序,用簡(jiǎn)單選擇排序方法對(duì)10 個(gè)整數(shù)排序(從大到?。E判蛩悸窞椋菏紫葟膎 個(gè)整數(shù)中選出值最大的整數(shù),將它交換到第一個(gè)元素位置,再?gòu)氖S嗟膎-1 個(gè)整數(shù)中選出值次大的整數(shù),將它交換到第二個(gè)元素位置,重復(fù)上述操作n 次后,排序結(jié)束。2編寫(xiě)一程序,實(shí)現(xiàn)兩個(gè)字符串的連接(不用strcat( ) 函數(shù))。習(xí)題解答3:三、閱讀程序并寫(xiě)出運(yùn)行結(jié)果4:答案是:place=65:答案是:s=12346:答案是:123四、編程題1編一程序,用簡(jiǎn)單選擇排序方法對(duì)10 個(gè)整數(shù)排序(從大到?。?。排序思路為:首先從n 個(gè)整數(shù)中選出值最大的

32、整數(shù),將它交換到第一個(gè)答案是:1234答案是:2345468106912158121620101520251:2:12345答案是:s=022n 次后,排序結(jié)束。元素位置,再?gòu)氖S嗟膎-1 個(gè)整數(shù)中選出值次大的整數(shù),將它交換到第二個(gè)元素位置,重復(fù)上述操作/*/#include#define N 10void smp_selesort(int r ,int n)/*簡(jiǎn)單選擇排序*/ int i,j,k;int temp;for(i=0;in;i+)for(j=i+1;jn;j+)if(rirj)temp =ri;ri=rj;rj= temp;main( )int i,aN;printf(請(qǐng)輸入d

33、個(gè)整數(shù):n,N);for(i=0;iN;i+)scanf(%d,&ai);smp_selesort(a,N);/* 調(diào)用排序函數(shù) */printf( 排序后的輸出為: n);for(i=0;iN;i+)printf(%5d,ai);2編寫(xiě)一程序,實(shí)現(xiàn)兩個(gè)字符串的連接(不用strcat( ) 函數(shù))。/*/#includemain( )char str150,str250;int i=0,j=0;printf(請(qǐng)輸入字符串1: );scanf(%s,str1);printf(請(qǐng)輸入字符串2: );scanf(%s,str2);while(str1i!=0) i+;while(str1i+=str

34、2j+)!=0);printf( 連接后的字符串為: %s,str1);題解 6 指 針習(xí)題一、選擇題1若已定義int a=8, *p=&a; ,則下列說(shuō)法中不正確的是(D )。A. *p = a=8B* p=&aC* *&a=*pD *&a=&*a2若已定義short a2=8,10,*p=&a0; ,假設(shè) a0 的地址為2000,則執(zhí)行p+后,指針p 的值為( C )。A 2000B 2001C 2002D 20033若已定義int a8=0,2,3,4,5,6,7,8 ;*p=a; ,則數(shù)組第2 個(gè)元素“2 ” 不可表示為(C)。A a1B p1C *p+1D *(p+1)4若已定義in

35、t a,*p=&a,*q=&p; ,則不能表示變量 a 的是(C )。A *&aB *pC *qD *q5設(shè)已定義語(yǔ)句int*p10, (*q)10; ,其中的p 和 q分別是( D)。10 個(gè)指向整型變量的指針 指向具有10 個(gè)整型變量的函數(shù)指針 一個(gè)指向具有10 個(gè)元素的一維數(shù)組的指針 具有 10 個(gè)指針元素的一維數(shù)組A.、B.、C、D.、)。6若已定義int a24= 80, 81, 82, 83 , 84, 85, 86, 87 , (*p)4=a;則執(zhí)行 p+; 后, *p 代表的元素是( CA 80B 81C 84D 857執(zhí)行語(yǔ)句char a10=abcd; *p=a ;后,(p

36、+4) 的值是(B)。A abcdB 0C dD.不能確定8設(shè)已定義int a32=10,20,30,40,50,60;和語(yǔ)句 (*p)2=a; ,則 *(*(p+2)+1) 的值為( A)。9以下程序的運(yùn)行結(jié)果是(A 60B 30C 50D不能確定C )。#include main(int a43= 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12;int *p4, i;for(i=0; i4; i+)pi=ai;printf(%2d,%2d,%2d,%2dn, *p1, (*p)1, p32, *(p3+1);A4, 4, 9, 8B.程序出錯(cuò)C 4, 2,12,11D

37、1, 1, 7, 510以下各語(yǔ)句或語(yǔ)句組中,正確的操作是()。Achar s4=abcde;Bchar *s; gets(s);Cchar *s; s=abcde;D char s5; scanf(%s, &s);)。11以下程序的運(yùn)行結(jié)果是(#include main (char *s=xcbc3abcd;int a, b, c, d;a=b=c=d=0;for ( ; *s ; s+ )switch ( *s )casec:c+;caseb:b+;default :d+;casea:a+;break;printf(a=%d,b=%d,c=%d,d=%dn, a, b, c, d);ACa

38、=a的個(gè)數(shù)、 b=b,c 的個(gè)數(shù)、 c=c 的個(gè)數(shù)、a=1,b=5,c=3,d=8a=9,b=5,c=3,d=812若有以下程序:#include main ( int argc, char *argv )d=非a的個(gè)數(shù))B a=1,b=2,c=3,d=3D a=0,b=2,c=3,d=3while ( -argc )printf ( %s, argvargc);printf ( n);該程序經(jīng)編譯和連接后生成可執(zhí)行文件。現(xiàn)在如果在A. AABBCCB. AABBCCSDOSS示符下鍵入 S AA BBCC后回車(chē),則輸出結(jié)果是( C )C. CCBBAAD. CCBBAAS13.若有定義 ch

39、ar *language =FORTRAN, BASIC, PASCAL, JAVA, C;則language2的值是:一個(gè)字符一個(gè)地址一個(gè)字符串D.不定值14.若有以下定義和語(yǔ)句,則對(duì)a數(shù)組元素地址的正確引用是( C )int a23, (*p)3;P=a;A.*(p+2)B.p2C.p1+1D. (p+1)+215.若有 int max( ), (*p)();,為使函數(shù)指針變量p指向函數(shù) max,正確的賦值語(yǔ)句是(A )。A.p=max;B. *p=max;C. p=max(a, b);D. *p=max(a, b);16.若有定義int a35, i, j;(且 0V i3, 0 :j5

40、),則 aij不正確的地址表示是( D )。A.&aijB. ai+jC. *(a+i)+jD. *(*(a+i)+j)17.設(shè)先有定義:char s10;char *p=s;則下面不正確的表達(dá)式是( B )A. p=s+5B* s=p+s18.設(shè)先有定義:char *s;則下面正確的表達(dá)式是(B )。A. s=computerC. *s=computer二、程序填空1,定義 compare ( char *s1, char *s2 )C.s2=p4D. *p=s0B. *s=computerD. *s=c函數(shù),實(shí)現(xiàn)比較兩個(gè)字符串大小的功能。以下程序運(yùn)行結(jié)果為-32 ,請(qǐng)用正確答案填空。#in

41、clude main ()printf ( %dn, compare ( abCd, abc);compare ( char *s1, char *s2 )while ( *s1&*s2&【1】*s1=*s2)s1+; s2+; return *s1-*s2; .以下程序用來(lái)輸出字符串。#include main () char *a尸for, switch, if, while;char *p;for ( p=a; pa+4; p+ ) printf ( %sn,2】*p);.以下程序的功能是從鍵盤(pán)上輸入若干個(gè)字符(以回車(chē)鍵作為結(jié)束)組成一個(gè)字符數(shù)組,然后輸出該字符數(shù)組中的字符串,請(qǐng)?zhí)羁?i

42、nclude main () char str81,*p; int i;for (i=0;i80;i+) stri=getchar( ); if (stri=n ) break; stri= 0;【3】p=str;while(*p) putchar(*p【4+);.下面是一個(gè)實(shí)現(xiàn)把t指向的字符串復(fù)制到s的函數(shù),請(qǐng)完成程序。strcpy ( char*s, char *t )while ( (【5】*s+ = *t+ ) !=0);.下面count函數(shù)的功能是統(tǒng)計(jì)子串substr在母串str中出現(xiàn)的次數(shù)。count(char *str, char *substr) int i,j,k,num=0

43、;for (i=0;【6stri!=0; i+)for (【7】j=i, k=0 ; substrk=strj; k+, j+)if (substr【8】k+1=0)num+;break; return(num);.下面connect函數(shù)的功能是將兩個(gè)字符串s和t連接起來(lái)。connect (char *s, char *t)char *p=s;while (*s)9 s+;while (*t)*s=10*t;s+;t+;*s=0;【11】return (p);三、閱讀程序并寫(xiě)出運(yùn)行結(jié)果.運(yùn)行如下程序并分析其結(jié)果。#include main ()void fun ( char *s );stat

44、ic char str =123;fun ( str );void fun ( char *s )if ( *s )fun ( +s );printf ( %sn,-s );2運(yùn)行如下程序并分析其結(jié)果。#include void sub ( int *x, int y, int z )*x = y - z;main ( )int a, b, c;sub ( &a, 10, 5 );sub ( &b, a, 7 );sub ( &c, a, b );printf ( %d,%d,%dn, a, b, c );3下列程序的功能是保留給定字符串中小于字母n 的字母。請(qǐng)寫(xiě)出其結(jié)果并分析。#includ

45、e void abc ( char *p )int i, j;for ( i=j=0; *(p+i)!=0; i+ )if ( *(p+i)n )*(p+j)=(p+i);j+;*(p+j)=0;main( )char str =morning;abc ( str );puts ( str );4運(yùn)行如下程序并分析其結(jié)果。#include main ( )char *a4=Tokyo,Osaka ,Sapporo ,Nagoya ;char *pt;pt=a;printf(%s,*(a+2);5*設(shè)如下程序的文件名為,編譯并連接后在DOS提示下鍵入命令:myprogram one two th

46、ree ,則執(zhí)行結(jié)果是什么。#include main (int argc, char *argv )int i;for (i=1; iargc; i+)printf (%s%c, argvi, (iargc-1) : n);四、編程題1編一程序,求出從鍵盤(pán)輸入的字符串的長(zhǎng)度。3輸入一個(gè)字符串,按相反次序輸出其中的所有字符。5編寫(xiě)一個(gè)密碼檢測(cè)程序,程序執(zhí)行時(shí),要求用戶輸入密碼(標(biāo)準(zhǔn)密碼預(yù)先設(shè)定),然后通過(guò)字符串比較函數(shù)比較輸入密碼和標(biāo)準(zhǔn)密碼是否相等。若相等,則顯示“口令正確”并轉(zhuǎn)去執(zhí)行后繼程序;若不相等,重新輸入, 3 次都不相等則終止程序的執(zhí)行。習(xí)題解答三、閱讀程序并寫(xiě)出運(yùn)行結(jié)果1運(yùn)行結(jié)果是

47、:3231232運(yùn)行結(jié)果是:5, -2,73答案是:mig4答案是:Sapporo5答案是:one two three四、編程題1編一程序,求出從鍵盤(pán)輸入的字符串的長(zhǎng)度。/*/#include#include main( ) char str50,*p;int length=0;printf( 請(qǐng)輸入一個(gè)字符串 n);gets(str);p=str;while(*p!=0) p+; length+; printf( 輸入的字符串的長(zhǎng)度為 %dn,length);3輸入一個(gè)字符串,按相反次序輸出其中的所有字符。/*/#include#include main ( ) char str81,*p;

48、int i;for ( i=0;i=0 ) putchar(*(p+i) );5編寫(xiě)一個(gè)密碼檢測(cè)程序,程序執(zhí)行時(shí),要求用戶輸入密碼(標(biāo)準(zhǔn)密碼預(yù)先設(shè)定),然后通過(guò)字符串比較函數(shù)比較輸入密碼和標(biāo)準(zhǔn)密碼是否相等。若相等,則顯示“口令正確”并轉(zhuǎn)去執(zhí)行后繼程序;若不相等,重新輸入, 3 次都不相等則終止程序的執(zhí)行。/*/#include #include #include /* 字符串比較函數(shù) */int strcompare(char *str1,char *str2)while(*str1=*str2 & *str1!=0 & *str2!=0)str1+;str2+;return *str1-*s

49、tr2;main( )char password20=c program;char input_pass20;int i=0;while(1)printf( 請(qǐng)輸入密碼 n);gets(input_pass);if(strcompare(input_pass,password)!=0)printf( 口令錯(cuò)誤,按任意鍵繼續(xù));elseprintf( 口令正確! );break;/* 輸入正確的密碼,中止循環(huán) */getch( );i+;if(i=3) exit(0);/* 輸入正確密碼所進(jìn)入的程序段*/* 定義字符數(shù)組input_pass*/* 輸入密碼 */題解 7 結(jié)構(gòu)與共用/* 檢驗(yàn)密碼 */* 輸入 3 次錯(cuò)誤的密碼,退出程序 */習(xí)題一、選擇題1下面正確的敘述的是( D )。A.結(jié)構(gòu)一經(jīng)定義,系統(tǒng)就給它分配了所需的內(nèi)存單元B.結(jié)構(gòu)體變量和共用體變量所占內(nèi)存長(zhǎng)度是各成員所占內(nèi)存長(zhǎng)度之

溫馨提示

  • 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)論