C語言課后習題及答案.doc

上傳人:good****022 文檔編號:116433628 上傳時間:2022-07-05 格式:DOC 頁數(shù):51 大?。?93.50KB
收藏 版權(quán)申訴 舉報 下載
C語言課后習題及答案.doc_第1頁
第1頁 / 共51頁
C語言課后習題及答案.doc_第2頁
第2頁 / 共51頁
C語言課后習題及答案.doc_第3頁
第3頁 / 共51頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《C語言課后習題及答案.doc》由會員分享,可在線閱讀,更多相關(guān)《C語言課后習題及答案.doc(51頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、第一章一、選擇題1.C/C+規(guī)定,在一個源程序中,main()函數(shù)的位置( )。CA.必須在最開始 B.必須在最后C.可以任意 D.必須在系統(tǒng)調(diào)用的庫函數(shù)的后面2.以下()是C/C+合法的標識符。AA.char2 B.x C.int D.7Bw3.下面的程序,對于輸入:2 9 15,輸出的結(jié)果是( )。B#includeiostream.hvoid main()int a; float b;coutinput a,b:ab;couta+b=a+bb)&(n=cd)運算后,m、n的值分別是( )。BA.0,0 B.0,1 C.1,0 D.1,1二、把下列數(shù)學表達式寫成C/C+表達式。1x+ya+

2、b: (x+y)!=(a+b).2(ln10+xy)3:pow(log(10)+x*y),3)3:sin(w*u)/(cos(45*180/3.14)+3*pow(x,y)4:exp(3)+sqrt(2*x+3*y)5:fabs(x-y)+(x+y)/(3*x)6:1/(1/r1+1/r2+1/r3)三、根據(jù)下列條件寫一個C/C+表達式。1a和b中有一個大于d:ad|bd2將x、y中較大的值送給z:z=xy?x : y3將直角坐標系中點(x,y)表示在第3象限內(nèi):x0&yz|y+zz|x+zy5將含有3位小數(shù)的實型變量x的值,四舍五入到百分位:(int)(x*100+0.5)/100.6d是不

3、大于100的偶數(shù):d0&d0)個人進行分班,每班k(0)個人,最后不足k人也編一個班,問要編幾個班:n%k=0?n/k : n/k+1四、編程題:1 編程序求半徑為r、高為h的圓柱體的體積。 #include iostream.hvoid main()float r,h,v;cinrh;v=3.1416*r*r*h;coutabc;ave=(a+b+c)/3;min=(ab)?a:b;min=(cmin)?c:min;coutave=ave min=minendl;3.將字符串“12”轉(zhuǎn)換為整數(shù)12并輸出。#include iostream.hvoid main()char c1=1,c2=2

4、;int x;x=10*(c1-0)+c2-0;coutxx;c1=x/100;c2=x/10%10;c3=x%10;x=100*c3+10*c2+c1;coutxyear;x=year%400=0|year%4=0&year%100!=0;x!=0?coutyearis a leap year!: coutyearyear;x=(year%400=0|year%4=0&year%100!=0)?y: n;coutxx;y=log(x*x+3)/log(10)+3.14/2*cos(40*3.14/180);couty;第三章一、選擇題1.為了避免嵌套的if else 語句的二義性,C/C+語

5、言規(guī)定else總是與( )組成配對關(guān)系。CA. 縮排位置相同的if B.在其之前未配對的ifC. 在其之前未配對的最近的if D.同一行上的if2.設(shè)有函數(shù)關(guān)系為,下面( )選項不能正確表示上述關(guān)系。DA. if(x=0) B. y=1;if(x0)y=-1; if(x=0)else y=0; if(x=0) if(x!=0) if(x=0)y=0; if(x0)y=1; else y=1; else y=0;3.若有變量定義“int a=7;”,則下列語句組對應(yīng)的輸出結(jié)果是( )。D(該答案后還應(yīng)附“其他值”)switch(a%5)case 0:couta+; case 1:cout+a;

6、case 2:couta-; case 3:cout -a; default: cout”其他值”;A.其他值 B.5 C. 7 D.7 5其他值4.以下程序段中循環(huán)體語句“k+”執(zhí)行的次數(shù)為( )。Cfor(k=0,m=4;m;m-=2)for(n=1;n4;n+)k+;A. 16 B.12 C.6 D.85.執(zhí)行下面程序段后,變量k的值為( )。Bfor(k=0,m=1;m4;m+)for(n=1;n=0);8.若輸入字符串“ABC”,下面程序段的輸出為( )。Cchar c;while(cinc,c!=n)coumn;if(m0&n0)break;功能:輸入兩個正整數(shù)給m和n。(2)若有

7、變量定于“int count=0,m=1;”,試寫出下列語句組對應(yīng)的輸出結(jié)果。do if(m%5)continue; count+; while(+m=100);結(jié)果:20(3)#include”iostream.h”void main()int m,n(4),k;long int t,s=0;for(m=1;m=n;m+) for(t=1,k=1;k=m;k+) t*=m; s+=t;cout”s=”c,c!=.) if(c=a&cz) c+=1; if(c=z)c=a;cout=1;i-) coutsetw(i+5) ; for(j=1;j=4-i;j+) cout* ; coutendl

8、; 輸出:* * * * * *三、程序填空題:(1)下面的程序是檢查輸入的算術(shù)表達式中括號是否配對,并顯示相應(yīng)的結(jié)果。本程序邊輸入,邊統(tǒng)計,以輸入?作為表達式輸入結(jié)束,然后顯示結(jié)果。#include”iostream.h”void main()int count(0);char c;cout”請輸入表達式,以輸入?表示結(jié)束”c,c!=?)if(c=() count+; else if( ) count-; if( ) cout”左右括號配對”endl;else if ( )cout”左括號多于右括號”count”個”endl;elsecout” 右括號多于左括號” count”個”0 cou

9、nt(2) 用輾轉(zhuǎn)相減法求兩個正整數(shù)m和n的最大公約數(shù)。#include”iostream.h”void main()int m,n; ;while(m-n!=0) if(mn) ; else ;cout”gcd(m,n)=”mmn m=m-n n=n-m(3)求100的階乘的末尾包含多少個0?程序通過找出1-100之間的所有整數(shù)中包含5這個因子的個數(shù)來求解。如100=5*5*4含5的因子個數(shù)為2,在求階乘過程中會在末尾產(chǎn)生2個0。#include iostream.hvoid main()int m,n,k=0;for(m=5;m100;) ;while(n%5=0) k+; ; ;cout

10、”100!include”k;填空結(jié)果:n=m n=n/5 m=m+5四、編程題:1.編一程序,實現(xiàn)下列分段函數(shù)的求值: #include iostream.h#include math.hvoid main()float x,y; coutinput x:x; if(x5) y=fabs(x); else if(x20) y=3*x*x-2*x+1; else y=x/5; coutx=x,y=yendl;2.按工資的高低納稅,已知不同工資s的稅率p如下: s1000 p=0%1000s2000 p=5%2000s3000 p=8%3000s5000 p=10%5000s p=15%編一程序

11、,輸入工資數(shù),求納稅款和實得工資數(shù)。#include iostream.hvoid main() float s,p,t,w; coutinput s:s; switch(int(s)/1000) case 0:p=0;break; case 1:p=0.05;break; case 2:p=0.08;break; case 3: case 4:p=0.1;break; default:p=0.15;break; t=s*p; w=s-t; cout納稅款=t,實得工資=wendl;3.編一程序,求1001000之間有多少個整數(shù),其各個數(shù)位數(shù)字之和等于5?#include iostream.h

12、void main()int m,count=0; for(m=100;m1000;m+) if(m%10+m/10%10+m/100=5) count+; coutcount=countendl;4.雞兔共籠有30個頭,90只腳,求雞兔各有多少?#include iostream.hvoid main()int m,n; for(m=0;m=30;m+) for(n=0;n=30;n+) if(m*2+n*4=90&m+n=30) cout雞:m兔:n1e-6;n+) t=(-1)*t; pi=pi+t/(2.0*n+1.0); pi=4*pi; coutpi=pi1e-6;n=n+2) t

13、=(-1)*t; pi=pi+1.0*t/n; pi=4*pi; coutpi=piendl;6.編一程序,求出方程x2+2x=y3(其中1x100,1y100)的所有整數(shù)解。#include iostream.hvoid main()int x,y; for(x=1;x=100;x+) for(y=1;y=100;y+) if(x*x+2*x=y*y*y) coutx=x,y=yendl;7.輸入一個英文句子(以句號結(jié)束),要求將句中單詞分行打印,試編寫符合上述要求的程序。#include iostream.h#include stdio.hvoid main()char ch; while

14、(ch=getchar()!=.) if(ch= ) coutendl; else coutch;8.一個整數(shù),它加上100后是一個完全平方數(shù),再加上168又是一個完全平方數(shù),求1000以內(nèi)滿足該條件的數(shù)。#include iostream.h#include math.hvoid main()int m,k1,k2; for(m=0;m=1000;m+) k1=sqrt(m+100); k2=sqrt(m+100+168); if(k1*k1=m+100&k2*k2=m+100+168) coutm是滿足條件的數(shù)0) x1=x; else x2=x;while(fabs(x2-x1)eps)

15、; coutx;第四章一、選擇題1.下列數(shù)組定義語句中,正確的是( )。CA.int a3,4; B.int n=3,m=4,int anm;C.int a34; D.int a(3)(4);2.以下不能對二維數(shù)組a初始化的語句是( )。AA. int a2=1,2; B.int a23=1,2,3,4,5,6;C. int a23=1; D.int a23= 1,2;3.要使字符數(shù)組str中存放串”Lucky”并能正確處理,下列正確的定義語句是( )。CA.char str=L,u,c,k,y ; B. char str5=L,u,c,k,y ; C. char str=”Lucky”; D

16、. char str 5= ”Lucky” ;4.已知有語句“int a34=1,2,5,3,2,4,7,9,3,6,5,8,*p=&a00;”,則表達式(*p+2)+*(p+2)的值應(yīng)為( )。DA.10 B.5 C. 6 D.85.已知有語句“int a5=1,3,5,7,9,*p=&a3;”,則表達式p-1的值為( )。CA.表達形式不合法 B.值不確定 C.5 D.66.要比較兩個字符數(shù)組a、b中字符串是否相等,下面正確的是( )。BA.a=b B.strcmp(a,b)=0 C. strcpy(a,b) D. strcmp(a,b)=07.下面正確的描述是()。AA.gets函數(shù)可以

17、輸入包括空格的字符串B.cin可以輸入包含空格的字符串 C.使用gets函數(shù)不需要聲明頭文件:#include “stdio.h” D.使用gets函數(shù)必須需要聲明頭文件:#include “iostream.h”8.已知如下變量的定義“char s10,*p;”下列正確的語句是( )。BA.s=”asdfghj”; B.p=”asdfgh”; C.cins; D.p=s;cinp;二、讀程序,寫結(jié)果。1. #include”iostream.h”void main()char s =”1234567890”,*p;int i;for(p=s+5;*p!=0;p+)cout*p;p=s+4;i

18、=0;while(i+5)coutmh;do ci+=m%h;while(m=m/h)!=0);for(-i;i=0;-i) n=ci;coutbn;結(jié)果是:43. #include”iostream.h”void main() int a =-2,3,0,-5,-4,6,9,*p=a,m,n; m=n=*p; for(p=a;pm)m=*p; if(*pn)n=*p;cout ”m-n=”m-n; 結(jié)果是:14三、程序填空題。1.利用一維數(shù)組顯示Fibonacci數(shù)列的前20項,每行顯示5個數(shù),每個數(shù)寬度5位。即:0,1,1,2,3,5,8,13,如圖所示。#include”iostream

19、.h”#includeiomanip.hvoid main() int i; int x20= ; for(i=2;i20;i+) ; for(i=0;i20;i+) if(i%5=0)coutendl; cout ;coutendl; 填空為:(1)0,1(2)xi=xi-1+xi-2(3)setw(5)xi2.隨機產(chǎn)生6個學生的分數(shù)(分數(shù)范圍1100),存放在數(shù)組a中,以每2分一個*顯示,如圖所示。#includeiostream.h#includestdlib.hvoid main() int a6,i,j; for(i=0;i6;i+) ai= ; for(j=0; ;j+) cout

20、*;cout aiendl; 填空為:(1)rand()%101 (2)jai/2(3)A(i)=3.下列程序?qū)?shù)組a中的每4個相鄰元素的平均值存放于數(shù)組b中。#includeiostream.hvoid main() int a10,m,n; float b7; for(m=0;mam; for(m=0;m7;m+) ; for(n=m; ;n+) bm=bm+an; ; for(m=0;m7;m+)coutbm; 填空為:(1)bm=0(2)nm+4(3)bm=bm/44.下面程序按字母順序比較兩個字符串s1和s2的大小,若相等,則輸出0;否則輸出其第一個不相等的字符的ASCII編碼差值。

21、#includeiostream.hvoid main() char ch140,ch240,*s1=ch1,*s2=ch2; int r; ; ; while(*s1!=0& ) s1+;s2+; if(*s1=0&*s2=0) ; else r=*s1-*s2; coutThe result iss1(2) cins2 (3)*s1=*s2(4) r=05.已知數(shù)組a和b都是按由小到大順序排列的有序數(shù)組,試將其合并后放入數(shù)組c中,使c也按由小到大的順序排列。#define M 3#define N 3#includeiostream.hvoid main() int aM,bN,cM+N,

22、j,k,l; for(k=0;kak; for(k=0;kbk; ; while(lM+N& ) if(ajbk) ; j+;l+; else ; while(lM+N& )cl+=bk+; while(lM+N& )cl+=aj+; for(l=0;lM+N;l+)coutcl;填空為:(1)j=k=l=0(2)jM&kN(3)cl=aj(4)cl+=bk+(5)kN(6)jM四、編程題。1.利用隨機數(shù)生成兩個矩陣(數(shù)據(jù)不一定相同,前者3070范圍、后者101135)。 要求:(1)將兩個矩陣相加結(jié)果放入C矩陣中。(2)統(tǒng)計C矩陣中最大值和下標。(3)以下三角形式顯示A矩陣、上三角形式顯示B

23、矩陣。(4)將A矩陣第1行與第3行對應(yīng)元素交換位置,即第1行元素放到第3行;第3行元素放到第1行。(5)求A矩陣兩條對角線元素之和。(1)#include stdlib.h#include iostream.hvoid main()int a44,b44,c44,i,j; for(i=0;i4;i+) for(j=0;j4;j+) aij=rand()%41+30; for(i=0;i4;i+) for(j=0;j4;j+) bij=rand()%35+101; cout矩陣A的內(nèi)容如下:n; for(i=0;i4;i+)for(j=0;j4;j+) coutaij ; coutendl; c

24、out矩陣B的內(nèi)容如下:n; for(i=0;i4;i+)for(j=0;j4;j+) coutbij ; coutendl; for(i=0;i4;i+) for(j=0;j4;j+) cij=aij+bij; cout矩陣C的內(nèi)容如下:n; for(i=0;i4;i+)for(j=0;j4;j+) coutcij ; coutendl; (2)#include stdlib.h#include iostream.hvoid main()int a44,b44,c44,i,j,max,imax,jmax; for(i=0;i4;i+) for(j=0;j4;j+) aij=rand()%41

25、+30; for(i=0;i4;i+) for(j=0;j4;j+) bij=rand()%35+101; cout矩陣A的內(nèi)容如下:n; for(i=0;i4;i+)for(j=0;j4;j+) coutaij ; coutendl; cout矩陣B的內(nèi)容如下:n; for(i=0;i4;i+)for(j=0;j4;j+) coutbij ; coutendl; for(i=0;i4;i+) for(j=0;j4;j+) cij=aij+bij; cout矩陣C的內(nèi)容如下:n; for(i=0;i4;i+)for(j=0;j4;j+) coutcij ; coutendl; max=c00;

26、 for(i=0;i4;i+) for(j=0;jmax) max=cij; imax=i; jmax=j; coutmax=cimaxjmax=maxendl;(3)#include stdlib.h#include iostream.hvoid main()int a44,b44,i,j; for(i=0;i4;i+) for(j=0;j4;j+) aij=rand()%41+30; for(i=0;i4;i+) for(j=0;j4;j+) bij=rand()%35+101; cout矩陣A的主對角線以下元素內(nèi)容如下:n; for(i=0;i4;i+)for(j=0;j=i;j+) c

27、outaij ; coutendl; cout矩陣B的主對角線以上元素內(nèi)容如下:n; for(i=0;i4;i+)for(j=i;j4;j+) coutbij ; coutendl; (4)#include stdlib.h#include iostream.hvoid main()int a44,i,j; for(i=0;i4;i+) for(j=0;j4;j+) aij=rand()%41+30; cout矩陣A的內(nèi)容如下:n; for(i=0;i4;i+)for(j=0;j4;j+) coutaij ; coutendl; for(j=0;j4;j+)int t=a0j; a0j=a2j

28、; a2j=t; cout改變后矩陣A的內(nèi)容如下:n; for(i=0;i4;i+)for(j=0;j4;j+) coutaij ; coutendl;(5)#include stdlib.h#include iostream.hvoid main()int a44,i,j,s=0; for(i=0;i4;i+) for(j=0;j4;j+) aij=rand()%41+30; cout矩陣A的內(nèi)容如下:n; for(i=0;i4;i+)for(j=0;j4;j+) coutaij ; coutendl; for(i=0;i4;i+) for(j=0;j4;j+) if(i=j|i+j=3)

29、s=s+aij; cout對角線元素之和為:sendl;2.不使用strcpy()函數(shù),用字符指針的形式將一個字符串的內(nèi)容復(fù)制到另一個字符數(shù)組中。用字符數(shù)組實現(xiàn)#include stdio.hvoid main()int i;char s150,s220; gets(s1); for(i=0;s1i!=0;i+) s2i=s1i;s2i=0;puts(s2);用字符指針實現(xiàn)#include stdio.hvoid main()int i;char s150,*p1=s1,*p2; p2=new char20; gets(p2); while(*p2!=0) *p1+=*p2+; *p1=0;p

30、uts(s1);3.編一個程序,將一串字符逆序存放后輸出。#include stdio.hvoid main() char s80,ch; int i,len=0; gets(s); while(slen!=0)len+; for(i=0;ich; for(i=j=0;si!=0;i+)if(si!=ch)sj=si;j+; sj=0; puts(s);第五章一、選擇題1. 下列敘述錯誤的是_A_。 A. 主函數(shù)中定義的變量在整個程序中都是有效的 B. 復(fù)合語句中定義的變量只在該復(fù)合語句中有效 C. 其它函數(shù)中定義的變量在主函數(shù)中不能使用 D. 形式參數(shù)是局部變量2. 若函數(shù)的形參為一維數(shù)組,

31、則下列說法中錯誤的是_B_。A. 形參數(shù)組可以不指定大小B. 函數(shù)調(diào)用時對應(yīng)的實參只能是數(shù)組名C. 函數(shù)調(diào)用時,系統(tǒng)會為形參數(shù)組分配存儲單元D. 函數(shù)中對形參的修改將會影響對應(yīng)的實參值3. 若函數(shù)的類型和return語句中的表達式的類型不一致,則_D_。A. 編譯時出錯B. 運行時出現(xiàn)不確定結(jié)果C. 不會出錯,且返回值的類型以return語句中表達式的類型為準D. 不會出錯,且返回值的類型以函數(shù)類型為準4. 下面的函數(shù)定義正確的是_D_。A. float f(float x;float y) B. float f(float x,y) return x*y; return x*y;C. flo

32、at f(x,y) D. float f( int x, int y) int x,y ; return x*y; return x*y;5. 下面函數(shù)頭的定義格式正確的是_C_。A. void sort(int an,int n) B. void sort(int a ,int n)C. void sort(int a ,int n) D. void sort(int a ,n)6. 下面4個程序中輸出結(jié)果是125的有_*(234)*_。(1). #include iostream.hvoid cube(int x) x=x*x*x; void main()int x=5;cube(x);

33、coutx;(3). #include iostream.hint cube(int x) x=x*x*x; return(x); void main()int x=cube(5);coutx;A. (1) B. (2) C. (3) D.(4)7. 設(shè)函數(shù)m()的說明形式為void m(int,int *); 利用函數(shù)m()對數(shù)5和整數(shù)j作函數(shù)m()定義的計算,正確的調(diào)用形式為_C_。A. m(&5,&j) B. m(5,j) C. m(5,&j) D. m(&5,j)8. 設(shè)函數(shù)的說明為: void fun(int a,int m); ,若有定義:int a10,n,x; 則下面調(diào)用該函數(shù)

34、正確的是_A_。A. fun( a, n); B. x=fun( a, n); C. fun( a10, 10); D. x=fun( a, n);9. 下面函數(shù)說明正確的是_C_。A. void f1(int a=3, int b, int c); B. void f2 int a, int b=3, int c);C. void f3(int a, int b, int c=3); D. void f4(int a, int b, int 3);10. 有兩個函數(shù)分別為: int f(int);和int f(int,int =100);,則下面說法正確的是_B_。A. 不能在同一個程序中定義B. 可以在同一個程序中定義,但不可以重載C. 可以在同一個程序中定義并可重載D. 以上說法均錯誤11. 以下幾種函數(shù)模板的定義正確的是_A_。A. template T fun1(T a,int b) C. template void fun1(int a,int b) T i; 12. 下面程序的輸出結(jié)果是_B_。#include iostream.hint m=10; void f(int m,int &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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!