2011春季學(xué)期C語言程學(xué)設(shè)計(jì)-教材-習(xí)題(1-8章).doc_第1頁
2011春季學(xué)期C語言程學(xué)設(shè)計(jì)-教材-習(xí)題(1-8章).doc_第2頁
2011春季學(xué)期C語言程學(xué)設(shè)計(jì)-教材-習(xí)題(1-8章).doc_第3頁
2011春季學(xué)期C語言程學(xué)設(shè)計(jì)-教材-習(xí)題(1-8章).doc_第4頁
2011春季學(xué)期C語言程學(xué)設(shè)計(jì)-教材-習(xí)題(1-8章).doc_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

習(xí)題第一章一選擇題1C語言的主要特點(diǎn)有哪些(B C D E)(多選) A簡潔、緊湊,使用方便、靈活,易于學(xué)習(xí)和應(yīng)用。 B語言是結(jié)構(gòu)化程序設(shè)計(jì)語言。 C語言允許直接對位、字節(jié)和地址進(jìn)行操作。 D數(shù)據(jù)類型豐富。 E語言生成的目標(biāo)代碼質(zhì)量高。2算法具有五個特性,以下選項(xiàng)中不屬于算法特性的是(B)。A有窮性B簡潔性C可行性D確定性3C語言程序由什么組成(C)。A子程序B主程序和子程序C函數(shù)D過程 4源程序要正確地運(yùn)行,必須要有什么函數(shù)(C)。 Aprintf函數(shù)B自定義的函數(shù)Cmain函數(shù)D不需要函數(shù)5以下說法中正確的是(C)。AC語言程序總是從第一個函數(shù)開始執(zhí)行B在C語言程序中,要調(diào)用的函數(shù)必須在main()函數(shù)中定義CC語言程序總是從main()函數(shù)開始執(zhí)行 DC語言程序中的main()函數(shù)必須放在程序的開始部分6一個C程序的執(zhí)行是從(A)。A本程序的main函數(shù)開始,到main()函數(shù)的結(jié)束B本程序文件的第一個函數(shù)開始,到本程序文件的最后一個函數(shù)的結(jié)束C本程序文件的main開始,到本程序文件的最后一個函數(shù)的結(jié)束D本程序文件的第一個函數(shù)開始,到本程序文件的main函數(shù)的結(jié)束7.下敘述不正確的是(D)。A一個C源程序可由一個或多個函數(shù)組成B一個C源程序必須包含一個main函數(shù)CC程序的基本組成單位是函數(shù)D在C程序中,注釋說明只能位于一條語句的后面8C語言是一種面向(D)的程序設(shè)計(jì)語言。A對象 B窗口 C用戶 D過程9在使用Visual C+ 6.0進(jìn)行編程時,下面哪種錯誤是它檢查不出來的(B)。A編譯錯誤 B邏輯錯誤 C語法錯誤 D連接錯誤10下面哪個產(chǎn)品不能開發(fā)C程序(B)。ATurbo C 2.0 BDOS 2.0 CVisual C+ 6.0 DMicrosoft C 6.0二填空題1C語言的語句以 ;結(jié)尾。2C程序的基本組成單元是 函數(shù) 。3一個C程序有且只能有一個 main函數(shù)。4C程序的函數(shù)體由 聲明部分 開始到 執(zhí)行部分 結(jié)束。5C程序的執(zhí)行是從 main 開始。6C程序中的每一行可以寫 多 條語句。7 邏輯錯誤 錯誤只能由編程者自己查找。8將源程序翻譯成等價的機(jī)器語言的過程叫做 編譯 。9編譯錯誤又叫 語法 錯誤。10若要在程序中使用輸入輸出函數(shù),那么就要在預(yù)處理命令中包含標(biāo)準(zhǔn)輸入輸出函數(shù)所在的頭文件,其命令為 #include 。三簡答題1請根據(jù)自己的理解說說程序設(shè)計(jì)的幾個階段。答:五個階段:分析階段由用戶和程序開發(fā)人員共同研究確定程序應(yīng)完成的功能,解決“做什么”的問題。設(shè)計(jì)階段由程序設(shè)計(jì)人員設(shè)計(jì)軟件的總體結(jié)構(gòu),也就是確定程序的組成模塊,以及各模塊之間的關(guān)系,并設(shè)計(jì)每個模塊的實(shí)現(xiàn)細(xì)節(jié)及具體算法。編碼階段利用程序設(shè)計(jì)語言編寫各算法的程序代碼。測試階段由專門的測試人員對編寫完成的程序代碼進(jìn)行測試,盡可能多的發(fā)現(xiàn)其中的錯誤。調(diào)試和運(yùn)行階段借助一定的調(diào)試工具找出程序中錯誤的具體位置,并改正錯誤,并在運(yùn)行期間進(jìn)行維護(hù)。2我們這一章都學(xué)了哪兩種注釋方法,使用上有什么區(qū)別。答:“/”是注釋,用于注釋一行,注釋不影響程序的編譯和運(yùn)行?!?*”和“*/”之間括起來的內(nèi)容也是注釋,可用于注釋多行。3簡述main()函數(shù)的作用。答:main()是C程序中唯一可以直接運(yùn)行的函數(shù),其他函數(shù)都直接或間接由main()調(diào)用執(zhí)行。C程序的執(zhí)行開始于main()函數(shù),一個結(jié)構(gòu)良好的C程序也應(yīng)結(jié)束于main()函數(shù)。對于一些較小的程序,用一個main()函數(shù)就夠了,全部的處理語句都放在main()函數(shù)中。對于一些復(fù)雜問題,需要進(jìn)行模塊化設(shè)計(jì),要將一個復(fù)雜問題分解成若干個相對簡單的一些子問題,每個子問題由一個或多個函數(shù)來處理,main()函數(shù)負(fù)責(zé)總控,并調(diào)用相應(yīng)的函數(shù)。4請寫出C程序的基本構(gòu)成。答:(1)源程序是由函數(shù)構(gòu)成的,其中必須有一個且只能有一個主函數(shù)(main函數(shù)),還可以有到多個其它函數(shù)。程序由main函數(shù)的首句開始執(zhí)行,由main函數(shù)的最后一句結(jié)束,函數(shù)中可調(diào)用其它函數(shù)。(2)語言中用戶可以自己定義函數(shù),也可以使用系統(tǒng)提供的庫函數(shù)(如:printf函數(shù)和scanf函數(shù))。要調(diào)用的庫函數(shù),必須在源程序首部加上相應(yīng)的庫文件包含。 (3)語言函數(shù)內(nèi)部不能定義函數(shù),函數(shù)之間是平等的。主函數(shù)main可以放在某一用戶函數(shù)之前,也可以放在某一用戶函數(shù)之后,但被調(diào)用的函數(shù)應(yīng)在主調(diào)函數(shù)之前定義或說明。5簡敘一個C程序的開發(fā)過程。答:下面以VC+6.0為例說明一個C程序的開發(fā)過程(1) 啟動VC(2) 輸入源程序(C語言代碼)(3) 源程序存盤(4) 編譯連接運(yùn)行程序(5) 若編譯有錯,改錯,再次編譯連接運(yùn)行程序(6) 查看程序結(jié)果(7) 若程序結(jié)果有錯,重復(fù)步驟(5)(8) 程序結(jié)果正確,結(jié)束。四程序設(shè)計(jì)題1編寫一個程序,輸出字符串this is my first c program。#include main() printf(*);printf( );printf(*);2編寫一個程序,輸出下面圖形:**3試編寫一個程序,利用printf()函數(shù),輸出以下圖形。 * * * * *#include main() int i,j,k; for(i=0;i3;i+) /*輸出上面3行*號*/ for(j=0;j2-i;j+) printf( ); /*輸出*號前面的空格*/ for(k=0;k=2*i;k+) printf(*); /*輸出*號*/ printf(n); /*輸出完一行*號后換行*/ for(i=0;i2;i+) /*輸出下面2行*號*/ for(j=0;j=i;j+) printf( ); for(k=0;k3-2*i;k+) printf(*); printf(n); 4模仿本章所學(xué)的例題試寫一個C程序,要求輸入兩個整數(shù),求出他們的和并輸出結(jié)果。#include main()int a,b;printf(Input the intager a:);scanf(%d,&a);printf(Input the integer b:);scanf(%d,&b);printf(sum=%d,a+b);5試編寫一個C程序,計(jì)算一個整數(shù)的平方。#include main()int a;printf(Input the intager a:);scanf(%d,&a);printf(a*a=%d,a*a);第二章習(xí)題一選擇題1以下變量名全部合法的是(A)AABC、L10、a_b、alB?123、print、*p、a+b C_12、Zhang、a/b、11fDLi_Li、P、for、1012若變量a、i已經(jīng)正確定義,且i已經(jīng)正確賦值,合法的賦值語句是(B)Aa= =1B+i;Ca=a+=5;D+(i+1);3存儲字符串a(chǎn)bc376x所需的字節(jié)數(shù)是(D)/此處改了原題。A11B12C6D74若題中各變量已經(jīng)正確定義并賦值,下面符合C語法的表達(dá)式是(B)Asum%5.8Ba+,a=4+d+eCint(25.5)%3 Da=b+c=a+15已有定義語句:int a=5,b=6,c=7;float d=8.8;以下能正確表示數(shù)學(xué)式的C語言表達(dá)式是(B )Aa/(b+c)*d B1/d* a/(b+c)Ca/(b+c)/dDa/b=1;b=a%26能表示條件的表達(dá)式是(D)A0=x=0,x=0&xb)&(n=cd)之后,n的值為(B)A1B2C3D48已知x=43,ch=A,y=0,則表達(dá)式(x=y&ch0|a4)?5:6的結(jié)果是 6 ;設(shè) int x=5,y=6;則表達(dá)式x=x+y的結(jié)果是 0 。3設(shè)a=3,b=-4,c=5,表達(dá)式!(bc)+(b!=a)|(a+b)&(b-c)的值為 1 。4設(shè)a的值是5,則a+=a-=a*=6的值為 0 。5設(shè)a=3,b=-4,c=5,表達(dá)式a+-c+b+的值是 -6 ,(后半題有錯,+a-c+b非法。分三種情況討論)+a-c+的值是 -1 ,b的值是 -4 。 +a-c+b的值是 -5 。,+a-c+-b的值是 3 。6以下程序的運(yùn)行結(jié)果是 341,525,U 。#includevoid main()int a=0x155;printf(“%d,%o,%c”,a,a,a);7已知A的ASCII碼為65,下面程序運(yùn)行結(jié)果是 B,66 。void mainchar ch; ch=B; printf(%c,%d,ch,ch);8以下程序的運(yùn)行結(jié)果是 7 。#includevoid main() int i,j; float a,b; char c; long m,n; i=5;j=-3; a=25.5;b=3.0; m=a/b; n=m+i/j; printf(%dn,n);9以下程序運(yùn)行結(jié)果是 1,0,3 。#includevoid main()int x=-1,y=4;int k;k=x+=0&!(y-=0);printf(%d,%d,%d,k,x,y);10以下程序輸入三個整數(shù)值給a,b,c,程序把b中的值給a,把c中的值給b,把a(bǔ)中的值給c,然后輸出a,b,c的值。請?zhí)羁铡?#include void main() int a,b,c; int temp; printf(Enter a,b,c:); scanf(%d%d%d, &a,&b,&c ); temp=a; a=b; b=c; c=temp; printf(a=%d b=%d c=%dn,a,b,c); 三程序設(shè)計(jì)1用標(biāo)準(zhǔn)輸入函數(shù)scanf()將十進(jìn)制數(shù)500賦給a,再將其按照十進(jìn)制、八進(jìn)制、十六進(jìn)制輸出。#include main()int a;printf(Input the intager a:);scanf(%d,&a);printf(a=%d,a); /以十進(jìn)制格式輸出printf(a=%o,a); /以八進(jìn)制格式輸出printf(a=%x,a); /以十六進(jìn)制格式輸出printf(na=%d,%o,%xn,a,a,a); /各種格式混合輸出2不借用第三個變量將a、b兩個變量中的值交換。#includevoid main() int a=3,b=4; a=a+b; b=a-b; a=a-b; printf(a=%d,b=%dn,a,b);3用getchar()函數(shù)輸入一個大寫字母,再用putchar函數(shù)輸出其對應(yīng)的小寫字母。#include void main( ) char ch; ch=getchar( ); putchar(ch=A & ch=Z ? ch+32:ch);putchar ( n);4要將“China”譯成密碼,密碼規(guī)則是:用原來的字母后面的第四個字母代替原來的字母。例如,字母“A”后面第四個字母是“E”,則用E代替“A”。因此,“China”應(yīng)譯為“Glmre”。編寫一程序,用賦初值的方法使c1、c2、c3、c4、c5五個變量的值分別為C、h、i、n、a,經(jīng)過運(yùn)算,使c1、c2、c3、c4、c5分別變?yōu)镚、l、m、r、e,并輸出。#include”stdio.h”main()char c1=C,c2=h,c3=i,c4=n,c5=a; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf(“keywords=%c%c%c%c%c”,c1,c2,c3,c4,c5);5已知三條邊a、b、c,求三角形面積(假定輸入的三條邊能構(gòu)成三角形)。計(jì)算三角形面積的海倫公式: 其中#include #include main() float a,b,c,s,area; scanf(“%f%f%f”,&a,&b,&c); s=(a+b+c)/2.0; area=sqrt(s*(s-a)*(s-b)*(s-c); printf(“a=%f b=%f c=%f s=%f”,a,b,c,s); printf(“area=%fn”,area);第三章習(xí)題一選擇題1結(jié)構(gòu)化程序設(shè)計(jì)中,程序的三種基本控制結(jié)構(gòu)是(D)A) 過程 函數(shù) 子程序 B) 遞歸 遞推 循環(huán)C) 調(diào)用 返回 轉(zhuǎn)移 D) 順序 選擇 循環(huán)2已知 int x=10,y=20,z=30; 以下語句執(zhí)行后x,y,z的值是(D)if(xy)z=x;x=y;y=z;A)20 10 10 B)10 20 30C)10 10 10 D)20 30 303C語言對嵌套if語句的規(guī)定是:else總是與(D)配對。A) 其之前最近的if B) 第一個if C) 縮進(jìn)位置相同的if D) 其之前最近的且尚未配對的if4若執(zhí)行以下程序時從鍵盤上輸入3和4,則輸出結(jié)果是(C)#includevoid main() int a,b,s; scanf(%d%d,&a,&b); s=a; if(a0) y=-1;else y=0; -1 (x0) 1 (x0) 0 (x0) 0 (x0) 0 (x0) -1 (x0) /此處改了原題。6若a和b均是正整型變量,以下正確的switch語句是(C)A)switch(pow(a,2)+pow(b,2) case 1: case 3: y=a+b; break; case 0: case 5: y=a-b; B)switch(a*a+b*b); case 3: case 1: y=a+b; break; case 0: y=b-a; break;C)switch( a ) default: x=a+b; case 10: y=a-b; break; case 11: x=b*a; break;D)switch( a+b ) case10: y=a-b; break; case11: x=b*a; break;7設(shè)有以下程序,則(B)void main( )int x=0,s=0;while (!x!=0)s+=+x;printf(%d,s);A) 運(yùn)行后輸出0 B) 運(yùn)行程序后輸出1C) 程序中有非法表達(dá)式 D) 該程序執(zhí)行無限次8以下循環(huán)體執(zhí)行次數(shù)是(B)void main()int i,j;for(i=0,j=1;i+y;x=i+) i=x; B)for( ; ; x+=i)C)while(1) x+; D)for(i=10; ;i-) sum+=i;10有下面程序段,則(D)for(t=1;t=100;t+)scanf(%d,&x);if(x10) continue;printf(“%3d”,t);A)當(dāng)x=0時,什么也不輸出C)printf函數(shù)永遠(yuǎn)也不執(zhí)行 D)最多允許輸出100個不小于10的整數(shù)/此處改了原題。二填空題1以下程序運(yùn)行結(jié)果是 4 。#include 3 void main() int a=3,b=4,c=5;if(ba)printf(%dn,b);printf(%dn,a);2以下程序運(yùn)行結(jié)果是 a=2,b=1 。#includevoid main() int x=1,y=0,a=0,b=0;switch(x) case 1:switch(y) case 0:a+;break;case 1:b+;break;case 2:a+;b+;break;printf(a=%d,b=%dn,a,b);3以下程序運(yùn)行結(jié)果是 0 2 4 6 8 10 。#includevoid main() int i; for(i=0;i=10;i+=2) printf(%3d,i);4若i為整型變量,則以下循環(huán)執(zhí)行次數(shù)是 2 。for(i=2;i!=0;) printf(%d,i-);5下面程序的運(yùn)行結(jié)果是 0 。#includevoid main() int y=10; doy-; while(-y); printf(%dn,y-);6程序填空:下面程序是從鍵盤輸入的字符中統(tǒng)計(jì)數(shù)字字符的個數(shù),用換行符結(jié)束循環(huán)。#includevoid main()int n=0,c;c=getchar();while( c!=n ) if( c=48&c=57 ) n+; fflush (stdin);/有此句時可每敲一個字符回一次車。無此句時敲完所有字符回一次車。 c=getchar();printf(%d,n);7以下程序運(yùn)行結(jié)果是 13579 。#includevoid main() int i; for(i=1;i=i+2) if(i10) break; printf(%d ,i); 8程序填空:下面程序的功能是把100到200之間的不能被3整除的數(shù)輸出。#includevoid main() int n;for(n=100; n=200 ;n+) if(n%3=0) /此處改了原題。 continue ; printf(%d ,n);9在空白位置填寫語句,使得下列程序在輸入n后,能夠求出1+1/2+1/3+1/4+.+1/n的值#includevoid main()float s=0 ; int n,i=1; scanf(%d,&n); for(i=1;i=n;i+) /此處改了原題。 s= s+1.0/i ; printf(sum=%fn,s);10以下程序的功能是:從鍵盤上輸入若干學(xué)生的成績,統(tǒng)計(jì)并輸出最高成績和最低成績,當(dāng)輸入負(fù)數(shù)時結(jié)束輸入。請?zhí)羁眨?includevoid main() float x,max=0,min=100; /此處改了原題。 scanf(%f,&x); while( x=0 ) if(xmax ) max=x; if( xmin ) min=x;scanf(%f,&x); printf(max=%fnmin=%fn,max,min);三程序設(shè)計(jì)題1編寫一個程序從鍵盤輸入圓錐體的半徑r和高度h,計(jì)算其體積。#include #definePI3.14voidmain()floatr,h;scanf(%f,%f,&r,&h);printf(%f,r*r*PI*h/3);2編寫程序,輸入一個實(shí)型數(shù)x,按照下面分段函數(shù)要求輸出y的值: x (x1)y= 3-x/5 (1=x=10)#include #include main()float x,f;scanf(%f,&x);if(x=1&x10) f=3-x/5;else f=fabs(11-3*x);printf(%f,f);3從鍵盤輸入17之間的數(shù)字,輸出表示一個星期中對應(yīng)的某一天的英文單詞,例如,輸入2時,輸出Tuesday,請用switch語句完成此程序的編制。#include main()int i;scanf(%d, &i);switch(i)case 1: printf(Mondayn);break;case 2: printf(Tuesday n);break;case 3: printf(Wendsday n);break;case 4: printf(Thirsday n);break;case 5: printf(Friday n);break;case 6: printf(Saturday n);break;case 7: printf(Sunday n);break;default: printf(Error!n);4編寫程序,輸入n,計(jì)算。#includemain()int n,i;float s=0,p=0;scanf(%d,&n);for(i=1;in+1;i+,i+) s=1.0/i-1.0/(i+1); p=p+s;printf(%fn,p);5編寫程序輸出如下圖案:*#include main() int i=1,j=1,k=1; for(i=1;i=7;i+) /*外循環(huán)控制行數(shù)*/ for(j=1;j=14-2*i;j+) /*內(nèi)循環(huán)控制空格的輸出個數(shù)*/ printf( ); for(k=1;k=2*i;k+) /* 內(nèi)循環(huán)控制星號的輸出*/ printf(*); printf(n); /*回車另起一行的控制,位于最外層循環(huán)*/ 說明:打印這個圖形用兩層循環(huán)控制。外循環(huán)控制輸出行數(shù);兩個并列的內(nèi)循環(huán)控制輸出每行的空格數(shù)和*號數(shù)字,空格數(shù)為14-2i,*數(shù)為2i。第四章習(xí)題一、選擇題1以下能正確定義一維數(shù)組的選項(xiàng)是(B)。Aint num(4*2);Bint num4*2;Cint long8;Dint num(8);2若有以下定義,則正確的敘述為(C)。 char x =abcdefg char y =a,b,c,d,e,f,g;A數(shù)組x和數(shù)組y中的數(shù)據(jù)完全相同 B數(shù)組x和數(shù)組y的長度相同 C數(shù)組x的長度大于數(shù)組y的長度 D數(shù)組x的長度小于數(shù)組y的長度3以下選項(xiàng)中,不是C語言合法字符串常量的是(B)。A121By= CnnDABCDx6d4若有定義“double a10;”則a數(shù)組元素下標(biāo)的上下限分別是(C)。A0,10B1,9 C0,9D1,105以下敘述中正確的是(C)。A函數(shù)名strcpy的作用是比較兩個字符串的大小B使用putchar函數(shù)時,必須在之前包含頭文件string.h C函數(shù)名strcmp的作用是比較兩個字符串的大小D調(diào)用gets函數(shù)只能取得一個字符串中空格或回車等分隔符之前的部分6以下能正確定義二維數(shù)組的是(C)。Aint num(4,2);Bint num2;Cint num 42;Dint short42;7. 以下敘述中錯誤的是(D)。 A對于int型數(shù)組,不可以直接用數(shù)組名對數(shù)組進(jìn)行整體輸入或輸出 B數(shù)組名代表的是數(shù)組所占存儲區(qū)的首地址,其值是地址常量不可改變 C可以在對數(shù)組初始化的時候確定數(shù)組元素的個數(shù)D當(dāng)程序執(zhí)行中,數(shù)組元素的下標(biāo)超出所定義的下標(biāo)范圍時,系統(tǒng)將給出“下標(biāo)越界”的出錯信息 8若有數(shù)組“int a10=1,2,3,4,5,6,7,8,9;”,則數(shù)值最大和最小元素的下標(biāo)分別是(C)。A9,1B9,0C8,9D8,09下列語句中正確的是(B)。Achar a3=a,b,c;Bchar a3= ab,df;Cchar a3= abc;Dchar a3= abc,1;10.有字符數(shù)組定義char a=abcnn,則數(shù)組a中有(A)個元素。A5B7C6D8二、填空題1數(shù)組是具有 相同 的數(shù)據(jù)類型的一組變量的有序集合,構(gòu)成數(shù)組的這些變量稱為 下標(biāo)變量 。在定義數(shù)組時對數(shù)組中的每一個元素賦值叫做數(shù)組的 初始化 ,對全部的數(shù)組元素賦初值時,可以不指定數(shù)組的 下標(biāo) 長度。2若已定義:“int a10, i;”以下fun( )函數(shù)的功能是:在第一個循環(huán)中給前10個數(shù)組元素依次賦1、2、3、4、5、6、7、8、9、10;在第二個循環(huán)中使a數(shù)組前10個元素中的值對稱折疊,變成1、2、3、4、5、5、4、3、2、1,請?zhí)羁铡un( int a ) int i; for(i=1; i=10; i+) ai-1 =i; for(i=0; i5; i+) a9-i =ai;3將楊輝三角形的數(shù)據(jù)賦給二維數(shù)組的下半三角,請?zhí)羁铡?1 11 2 11 3 3 11 4 6 4 1其構(gòu)成規(guī)律是:第0列元素和主對角線元素均為1;其余元素為其左上方和正上方元素之和;數(shù)據(jù)的個數(shù)每行遞增1。請將程序補(bǔ)充完整。#include #define N 6void main( ) int i,j; int xNN; for(i=0;iN;i+) xi0= xii =1; for(j=1;ji;j+) xij= xi-1j+xi-1j-1 ; for(i=0;iN;i+)for(j=0;ji+1;j+)printf(%3d,xij);printf(n);4以下程序統(tǒng)計(jì)從終端輸入的字符中,大寫字母的個數(shù)。用#號作為輸入結(jié)束標(biāo)志,請?zhí)羁眨海ㄔ}改動幾處)#include #include main() int num26,i; char c; for (i=0;i26;i+) numi=0; while ( (c=getchar() !=#) if (isupper(c)numc-A+=1; for (i=0;ia1,則交換;然后比較第二個數(shù)與第三個數(shù);依次類推,直至第n-1個數(shù)和第n個數(shù)比較為止,即第一趟冒泡排序,結(jié)果最大的數(shù)被安置在最后一個元素位置上;對前n-1個數(shù)進(jìn)行第二趟冒泡排序,結(jié)果使次大的數(shù)被安置在第n-1個元素位置;重復(fù)上述過程,共經(jīng)過n-1趟冒泡排序后,排序結(jié)束。4C語言中有沒有字符串變量,若有請舉例,若沒有又要如何表示字符串變量?答:無。用自符數(shù)組存放字符串,結(jié)尾加0。5分析以下程序的運(yùn)行結(jié)果:#include main ( ) int a10,i,k=0; for(i=0;i10;i+) ai=i; for(i=0;i4;i+) k+=ai+i; printf(%dn,k);答:輸出12。第一個循環(huán)把09放入a0a9中。第二個循環(huán)進(jìn)行4次,逐次把0+0、1+1、2+2、3+3累加到k變量中。四、程序設(shè)計(jì)題1輸入10個整數(shù)存放在一維數(shù)組中,找出其中最大值和此元素的下標(biāo)。#include main() int a10,i; int max,b=0; for(i=0;i10;i+) scanf(%d,&ai); max=a0; for(i=1;imax) max=ai; b=i; printf(是大值為:%d,max); printf(下標(biāo)為:%d,b);2編寫程序求出二維數(shù)組每行上的最大值,并輸出其行號及最大值。#include stdio.h#define N 3 /*宏定義*/#define M 4main() int aNM,max;int i,j;for (i=0;iN;i+)/*往數(shù)組a中輸入數(shù)據(jù)*/for (j=0;jM;j+)scanf(%d,&aij);for (i=0;iN;i+)max=ai0;/*最大值的初始值*/for(j=1;jM;j+)if(maxaij) max=aij; /*把i行的最大值賦值給max*/printf( %d line max %dn,i,max);/*輸出最大值和其下標(biāo)*/3編寫程序,輸出字符串中指定位置m上開始的n個字符。#include stdio.hmain() int i,j,m,n; char s100,ns100; gets(s); printf(Please input m,n:n); scanf(%d,%d,&m,&n); for(i=m,j=0;i=m+n-1;i+,j+) nsj=si; nsj=0; puts(ns);4將下列矩陣中的第一行和第四行對調(diào)。 對調(diào)后 #include stdio.hmain() int a44=1,2,3,4,15,26,37,48,11,21,31,41,4,3,2,1; int i,j,c; for(j=0;j4;j+) c=a0j; a0j=a3j; a3j=c; for(i=0;i4;i+) printf(n); for(j=0;j4;j+) printf(%d ,aij); 5已知一維數(shù)組int a10= 7,11,24, 28,35,46,52,63,74,81,編寫程序判斷從鍵盤輸入的x是否在該數(shù)組中。#include stdio.hmain( )int a10=7,11,24,28,35,46,52,63,74,81,i,x;scanf(%d,&x);for(i=0;i=10)printf(%d is not in data.n,x);第五章習(xí)題一選擇題1下列敘述中正確的是(C)。A使用已經(jīng)定義好的函數(shù),可以不進(jìn)行說明而直接使用B說明函數(shù)時必須明確其參數(shù)類型名稱和返回類型C函數(shù)可以有參數(shù)也可以沒有參數(shù)D函數(shù)必須有返回值2下列敘述中錯誤的是(A)。A主函數(shù)中定義的變量在整個程序中都是有效的B在其他函數(shù)中定義的變量在主函數(shù)中不能使用C每個函數(shù)都可以被其它函數(shù)調(diào)用(main函數(shù)除外)D復(fù)合語句中定義的變量只能在該復(fù)合語句中有效3下列敘述中正確的是(A)。 A在一個程序中只能有一個main函數(shù) B函數(shù)不能調(diào)用自身C每個函數(shù)都可以單獨(dú)運(yùn)行 D在一個函數(shù)內(nèi)部可以定義另一個函數(shù) 4在一個C程序中下列說法中正確的是(C)。 Amain函數(shù)必須出現(xiàn)在所有函數(shù)之前 Bmain函數(shù)是一個特殊的函數(shù),可以調(diào)用自身C程序的執(zhí)行從main函數(shù)開始并在執(zhí)行完main函數(shù)之后結(jié)束D在執(zhí)行main函數(shù)的過程中不能轉(zhuǎn)去執(zhí)行其他函數(shù)5以下敘述中不正確的是(B)。 A在不同的函數(shù)中可以使用相同名字的變量 B在同一函數(shù)中不可以使用相同名字的變量C數(shù)組元素做函數(shù)實(shí)參與數(shù)組名做函數(shù)實(shí)參的含義不同D函數(shù)中的形式參數(shù)是局部變量6下列函數(shù)定義語句中正確的是(D)。 Afloat add(float x;float y) return(x+y);Bfloat add(float x,y) return(x+y);Cint add(x,y) float x,y; return(x+y);Dint add(x,y) float x,y; return(x+y);7設(shè)函數(shù)func的定義形式為 void func(char ch, int x ) ,則以下對fun函數(shù)的調(diào)用語句中,正確的是(D)。Afunc(abc,2); Bt=func(A,2); Cp=func(65,2); Dfunc(65,2); 8有以下程序 #includevoid change(int a , int b) int t; t=a;a=b;b=t; main( ) int x=1,y=2,z=3; if(xy) change (x,y); else if(yz) change (y,z); else change (x,z); printf(%d,%d,%dn,x,y,z); 執(zhí)行后輸出結(jié)果是(A)。 A1,2,3 B3,1,2 C1,3,2 D2,3,1 9以下函數(shù)值的類型是(A)。fun (double a) double b; b

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論