C語言編程思維陳萌課后參考答案_第1頁
C語言編程思維陳萌課后參考答案_第2頁
C語言編程思維陳萌課后參考答案_第3頁
C語言編程思維陳萌課后參考答案_第4頁
C語言編程思維陳萌課后參考答案_第5頁
已閱讀5頁,還剩44頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

C語言編程思維習(xí)題答案第1章編程十問1.編程需要較強(qiáng)的邏輯思維能力,學(xué)習(xí)編程能夠有效地訓(xùn)練自己的邏輯思維能力和分析能力;同時(shí),通過編程學(xué)習(xí)可以理解計(jì)算機(jī)程序的基本工作原理,這對(duì)更好地使用計(jì)算機(jī)等信息化設(shè)備有非常大的幫助。2.學(xué)習(xí)程序設(shè)計(jì)有三大好處。一、訓(xùn)練自己的工作流程意識(shí)。程序是嚴(yán)格按鈕既定流程運(yùn)行的,長期、系統(tǒng)地編程學(xué)習(xí)能夠使人們習(xí)慣流程處理的意識(shí),提高了工作效率。二、當(dāng)前,計(jì)算機(jī)正在成為各行各業(yè)越來越重要的基礎(chǔ)工具,不少行業(yè)需要定制專用軟件,絕大多數(shù)的程序員沒有行業(yè)背景,如果非計(jì)算機(jī)專業(yè)的行業(yè)人員能夠了解一些基本的程序設(shè)計(jì)知識(shí)將會(huì)在軟件開發(fā)過程中有效地與程序員進(jìn)行溝通、交流。三、能夠訓(xùn)練基本工程思維。很多程序設(shè)計(jì)知識(shí)體現(xiàn)了基本的工程思維,例如,函數(shù)很好地訓(xùn)練了我們?cè)谔幚韽?fù)雜問題時(shí),先進(jìn)行細(xì)化分解,再對(duì)分步任務(wù)進(jìn)行求解,最終完全全部任務(wù)的工程分解能力。3.程序是運(yùn)行在計(jì)算機(jī)、手機(jī)等信息化設(shè)備上的指令序列,能夠程序的運(yùn)行使信息化設(shè)備按照人們既定的規(guī)則和流程進(jìn)行運(yùn)算或事務(wù)處理。程序能夠幫助人們解決生活、學(xué)習(xí)、工作等諸多方面的各種問題。4.計(jì)算機(jī)技術(shù)發(fā)展了70年,已經(jīng)成為各行各業(yè)的基礎(chǔ)工具之一。程序設(shè)計(jì)能夠解決的專業(yè)問題越來越多,例如機(jī)床操作控制、道路交通監(jiān)視預(yù)警、交通信號(hào)管理、商業(yè)數(shù)據(jù)分析、機(jī)器語言翻譯、商品交易、生產(chǎn)流水線控制、物流管理等等。第2章編程環(huán)境與風(fēng)格應(yīng)試訓(xùn)練題1.C解析標(biāo)識(shí)符必須以大小寫英文字母或下劃線作為首字母,故選項(xiàng)A、B、D不正確;標(biāo)識(shí)符只能包含大小寫英文字母、數(shù)字和下劃線,選項(xiàng)C正確。2.A解析C語言中注釋可以放在任何位置,但不能夾在變量名或關(guān)鍵字中間,選項(xiàng)A正確;C語言中的變量要在使用之前定義,C標(biāo)準(zhǔn)規(guī)定定義位置在相關(guān)程序塊的首部,選項(xiàng)B錯(cuò)誤;C語言中兩側(cè)數(shù)據(jù)類型可以不一致,系統(tǒng)可進(jìn)行強(qiáng)制類型轉(zhuǎn)換,選項(xiàng)C錯(cuò)誤;C語言數(shù)值常量中不允許存在空格,選項(xiàng)D錯(cuò)誤。3.C解析C語言規(guī)定,源程序擴(kuò)展名必須為.c,一個(gè)C語言源程序可以由一個(gè)或多個(gè)源程序文件構(gòu)成,但必須有一個(gè)且只能有一個(gè)主函數(shù)main。C語言編寫的函數(shù)除main外,都需要被調(diào)用才可以執(zhí)行。4.A解析C語言程序僅可以編譯執(zhí)行5.D解析要編譯C語言源程序必須先安裝C語言集成開發(fā)環(huán)境,但是,已經(jīng)編譯生成的.exe程序在運(yùn)行時(shí)不依賴集成開發(fā)環(huán)境,可以不安裝。6.D解析用戶標(biāo)識(shí)符必須是下劃線或字母開頭,其后可以是大小寫字母、數(shù)字和下劃線。7.C解析void和unsigned是C語言保留字,故A、D不正確;標(biāo)識(shí)符必須以大小寫英文字母或下劃線作為首字母,所以B不正確。

第3章機(jī)器思維1、流程圖圖SEQ圖\*ARABIC1題3-1偽代碼開始定義變量i,s0→s1→iwhile(i<=99){s=s+i;i=i+2;}輸出變量s結(jié)束2、流程圖圖SEQ圖\*ARABIC2題3-23、流程圖圖SEQ圖\*ARABIC3題3-34、流程圖圖SEQ圖\*ARABIC4題3-45、流程圖圖SEQ圖\*ARABIC5題3-5

第4章順序結(jié)構(gòu)的程序1.#include"stdio.h"intmain(){ intArea=0,Length,Width; printf("請(qǐng)輸入主臥室的長度和寬度:"); scanf("%d%d",&Length,&Width); Area+=Length*Width; printf("請(qǐng)輸入次臥室的長度和寬度:"); scanf("%d%d",&Length,&Width); Area+=Length*Width; printf("請(qǐng)輸入書房的長度和寬度:"); scanf("%d%d",&Length,&Width); Area+=Length*Width; printf("請(qǐng)輸入陽臺(tái)的長度和寬度:"); scanf("%d%d",&Length,&Width); Area+=Length*Width; printf("請(qǐng)輸入客廳的長度和寬度:"); scanf("%d%d",&Length,&Width); Area+=Length*Width; printf("請(qǐng)輸入廚房的長度和寬度:"); scanf("%d%d",&Length,&Width); Area+=Length*Width; printf("請(qǐng)輸入衛(wèi)生間的長度和寬度:"); scanf("%d%d",&Length,&Width); Area+=Length*Width; printf("該套房屋總面積為:%d平方米\n",Area); return0;}2.#include"stdio.h"#include"math.h"intmain(){ intL,W,Area,Count,Amount; printf("請(qǐng)輸入拋光磚長度和寬度(單位:mm):"); scanf("%d%d",&L,&W); printf("請(qǐng)輸入客廳面積(單位:m^2):"); scanf("%d",&Area); Count=ceil((Area*1000000)/(L*W));//ceil()為向上取整函數(shù) Amount=Count*95; printf("鋪滿客廳需要%d塊拋光磚,共需%d元錢\n",Count,Amount); return0;}3.#include"stdio.h"#include"math.h"intmain(){ floatP,M; printf("請(qǐng)輸入桃子的價(jià)格(單位:角):"); scanf("%d",&P); printf("請(qǐng)輸入錢數(shù)(單位:元):"); scanf("%d",&M); printf("最多能吃到%d個(gè)桃子\n",(int)floor(M*10/P)); //注意:本題核桃換桃子的條件并未用到,只是向讀者說明哪些條件能夠用到解題中需程序員自行判斷。 return0;}4.#include"stdio.h"intmain(){ floatInterest,MPrincipal,tax,tax_rate,Interest_rate; printf("請(qǐng)輸入一年期定期利率(單位:%):"); scanf("%f",&Interest_rate); printf("請(qǐng)輸入利息稅率(單位:%):"); scanf("%f",&tax_rate); printf("請(qǐng)輸入利息稅金額(單位:元):"); scanf("%f",&tax); MPrincipal=tax*100/tax_rate; Interest=MPrincipal*100/Interest_rate; printf("該儲(chǔ)戶本金為%f元,利息為%f元,銀行向該儲(chǔ)戶支付的現(xiàn)金應(yīng)該是:%f\n",Interest,MPrincipal,Interest+MPrincipal-tax); return0;}5.#include"stdio.h"intmain(){ floatE_Area,A_Area,Rate,Dis_Area; printf("請(qǐng)輸入原有校舍總面積:"); scanf("%f",&E_Area); printf("請(qǐng)輸入新增面積百分比:"); scanf("%f",&Rate); A_Area=E_Area*(Rate/100); Dis_Area=(A_Area-2000)/2; printf("完成該計(jì)劃所需費(fèi)用為:%f\n",A_Area*700+Dis_Area*80); return0;}應(yīng)試訓(xùn)練題一、選擇題1.C 2.B 3.C 4.B 5.C 6.C 7.D 8.A 9.A 10.A11.B 12.B 13.A 14.A 15.B 16.D 17.D 18.A 19.D 20.C二、填空題1.09 2.1 3.3 4.x%10 5.2 6.5 7.1 8.49.printf(“****a=%d,b=%d****”,a,b); 10.2008 11.15 12.“x/y=%d”圖SEQ圖\*ARABIC6第3小題計(jì)算過程圖三、編程題本章及后續(xù)各章編程題請(qǐng)注意以下說明:a、如何讀者使用的編譯器為VS2010及以上版本,請(qǐng)?jiān)诖a第一行添加上:#define_CRT_SECURE_NO_WARNINGSb、運(yùn)行程序時(shí),請(qǐng)按Ctrl+F5鍵,程序運(yùn)行完成后會(huì)自動(dòng)暫停,直到按任意鍵繼續(xù)。1、#include"stdio.h"intmain(){ floatc=32,h=8,area=0.0; //本題三角形底邊和高已知均為整數(shù),所以,變量c和h類型設(shè)定為整型也可。 area=(c*h)/2.0; printf("三角形面積為:%f\n",area); return0;}2、//使用VS2013及以上版本工具時(shí),請(qǐng)?zhí)砑釉撔斜苊獬霈F(xiàn)對(duì)scanf函數(shù)的安全提示#include"stdio.h"#include"conio.h"intmain(){ floatc,h,area=0.0; //當(dāng)無法預(yù)測(cè)用戶會(huì)輸入何值時(shí),將變更設(shè)定為float或double較為適宜。 printf("請(qǐng)輸入三角形的底邊長:"); scanf("%f",&c); printf("請(qǐng)輸入三角形的高:"); scanf("%f",&h); area=(c*h)/2.0; printf("三角形面積為:%f\n",area); _getch();//VS2013及以上版本使用本函數(shù) return0;}3、#include"stdio.h"intmain(){ floatS,r=10,pi=3.14; S=pi*r*r; printf("圓的面積為:%f\n",S); return0;}4、#include"stdio.h"intmain(){ floatS,r,pi=3.14; printf("請(qǐng)輸入圓的半徑:"); scanf("%f",&r); S=pi*r*r; printf("圓的面積為:%f\n",S); return0;}5、#include"stdio.h"intmain(){ floatS,V,r,pi=3.14; printf("請(qǐng)輸入圓的半徑:"); scanf("%f",&r); S=4*pi*r*r; V=(4*pi*r*r*r)/3; printf("該圓的表面積為:%f\n",S); printf("該圓的體積為:%f\n",V); return0;}6、#include"stdio.h"intmain(){ charc; printf("請(qǐng)輸入一個(gè)大字字母:"); scanf("%c",&c); printf("對(duì)應(yīng)的小寫字母是:%c\n",c+32); return0;}7、#include"stdio.h"#include"math.h"intmain(){ floata,b,c,x1,x2; printf("請(qǐng)輸入一元二次方程的系數(shù)a、b、c:"); scanf("%f%f%f",&a,&b,&c); x1=(-b+sqrt(b*b-4*a*c))/(2*a); x2=(-b-sqrt(b*b-4*a*c))/(2*a); printf("方程的根是:x1=%f\tx2=%f\n",x1,x2); return0;}8、#include"stdio.h"intmain(){ intm,a,b,c; printf("請(qǐng)輸入一個(gè)三位整數(shù):"); scanf("%d",&m); a=m/100; b=(m%100)/10; c=m%10; printf("%d%d%d\n",b,c,a); return0;}9、#include"stdio.h"intmain(){ floata,b,t; printf("請(qǐng)輸入a:"); scanf("%f",&a); printf("請(qǐng)輸入b:"); scanf("%f",&b); t=a; a=b; b=t; printf("現(xiàn)在a=%f\tb=%f\n",a,b); return0;}10、#include"stdio.h"#include"math.h"intmain(){ floatx1,x2,y1,y2,S; printf("請(qǐng)輸入x1:"); scanf("%f",&x1); printf("請(qǐng)輸入y1:"); scanf("%f",&y1); printf("請(qǐng)輸入x2:"); scanf("%f",&x2); printf("請(qǐng)輸入y2:"); scanf("%f",&y2); S=sqrt(pow(x1-x2,2)+pow(y1-y2,2)); printf("|AB|=%f\n",S); return0;}

第5章會(huì)思考的程序應(yīng)試訓(xùn)練題選擇題D 2.A 3.B 4.C 5.A 6.D 7.C 8.D 9.D10.A 11.C 12.C 13.A 14.D 15.B 16.C 17.C 18.B填空題4 2.1217 3.200 4.1AbCeDf2dF 5.10編程題1.#include"stdio.h"intmain(){ floatx,y; printf("請(qǐng)輸入兩個(gè)實(shí)數(shù):"); scanf("%f%f",&x,&y); if(x>y) printf("%f,%f\n",y,x); else printf("%f,%f\n",x,y); return0;}2.#include"stdio.h"http://說明:本例所采用的輾轉(zhuǎn)相除法在未知m、n值時(shí)是無法確知需要多少次if語句才能找出最大公約數(shù)。//本題旨在讓讀者感受順序、分支語句的不足,以便更好地開始第6章學(xué)習(xí)。本題同樣出現(xiàn)在第6章//練習(xí)題中第三大題第8小題,請(qǐng)讀者仔細(xì)對(duì)比兩種不同解法。intmain(){ intm,n,r; printf("請(qǐng)輸入兩個(gè)整數(shù):"); scanf("%d%d",&m,&n); if(m<n) { r=m;m=n;n=r; } if(m%n==0) r=n; else { r=m%n; m=n; n=r; if(m%n==0) r=n; else { r=m%n; m=n; n=r; if(m%n==0) r=n; else { r=m%n; m=n; n=r; if(m%n==0) r=n; else { r=m%n; m=n; n=r; if(m%n==0) r=n; else { r=m%n; m=n; n=r; if(m%n==0) r=n; } } } } } printf("最大公約數(shù)為:%d\n",r); return0;}3.#include"stdio.h"intmain(){ inta,b,c,max; printf("請(qǐng)輸入三個(gè)整數(shù):"); scanf("%d%d%d",&a,&b,&c); if(a>b) max=a; else max=b; if(max<c) max=c; printf("最大的數(shù)是:%d\n",max); return0;}4.#include"stdio.h"intmain(){ floata,b,c,min; printf("請(qǐng)輸入三個(gè)數(shù):"); scanf("%f%f%f",&a,&b,&c); if(a<b) min=a; else min=b; if(min>c) min=c; printf("最小的數(shù)是:%f\n",min); return0;}5.#include"stdio.h"#include"math.h"intmain(){ floatx; printf("請(qǐng)輸入一個(gè)任意實(shí)數(shù):"); scanf("%f",&x); if(x>=0) printf("|x|=%f\n",x); else printf("|x|=%f\n",fabs(x)); return0;}6.#include"stdio.h"http://題目中并未指明a、b是整數(shù)還是實(shí)數(shù),所以需要考慮實(shí)數(shù)情況。intmain(){ floata,b; printf("請(qǐng)輸入兩個(gè)數(shù):"); scanf("%f%f",&a,&b); if((int)(a/b)*b==a||(int)(b/a)*a==b) printf("%f與%f是倍數(shù)關(guān)系\n",a,b); else printf("%f與%f不是倍數(shù)關(guān)系\n",a,b); return0;}7.#include"stdio.h"intmain(){ inty; printf("請(qǐng)輸入年份:"); scanf("%d",&y); if(y%400==0||(y%4==0&&y%100!=0)) printf("%d是閏年\n",y); else printf("%d是平年\n",y); return0;}8.#include"stdio.h"#include"math.h"intmain(){ floatx,y; printf("請(qǐng)輸入x的值:"); scanf("%f",&x); if(x<=0) y=pow(x,2); elseif(x<3) y=x-5; else y=3*x+1; printf("y=%f\n",y); return0;}9.#include"stdio.h"intmain(){ floata,b,c; printf("請(qǐng)輸入a、b、c三個(gè)數(shù):"); scanf("%f%f%f",&a,&b,&c); if(a>b) { if(b>c) printf("%f<%f<%f",c,b,a); elseif(a>c) printf("%f<%f<%f",b,c,a); else printf("%f<%f<%f",b,a,c); } else { if(b<c) printf("%f<%f<%f",a,b,c); elseif(a>c) printf("%f<%f<%f",c,a,b); else printf("%f<%f<%f",a,c,b); } return0;}10.#include"stdio.h"intmain(){ charc; printf("請(qǐng)輸入一個(gè)字母:"); c=getchar(); if(c>='a'&&c<='z') c=c-32; elseif(c>='A'&&c<='Z') c=c+32; printf("%c\n",c); return0;}11.#include"stdio.h"intmain(){ charc; printf("請(qǐng)輸入一個(gè)字母:"); c=getchar(); if(c>='a'&&c<='z') { c=c+5; if(c>'z') c=c-'z'+'a'-1; } elseif(c>='A'&&c<='Z') { c=c+5; if(c>'Z') c=c-'Z'+'A'-1; }printf("%c\n",c); return0;}12.#include"stdio.h"intmain(){ intx,y,z; charc; printf("請(qǐng)按‘整數(shù)運(yùn)算符整數(shù)’的格式輸入要運(yùn)算的數(shù)和符號(hào),請(qǐng)注意不要輸入單引號(hào)和空格:\n"); scanf("%d%c%d",&x,&c,&y); switch(c) { case'+': z=x+y; break; case'-': z=x-y; break; case'*': z=x*y; break; case'/': z=x/y; break; default: break; } printf("%d%c%d=%d\n",x,c,y,z); return0;}13.#include"stdio.h"intmain(){ intx; printf("請(qǐng)輸入一個(gè)百分制分?jǐn)?shù):"); scanf("%d",&x); if(x>=90&&x<=100) printf("優(yōu)秀\n"); elseif(x>=80&&x<90) printf("良好\n"); elseif(x>=70&&x<80) printf("中等\n"); elseif(x>=60&&x<70) printf("及格\n"); elseif(x>=0&&x<60) printf("不及格\n"); else printf("分?jǐn)?shù)輸入不正確\n"); return0;}14.#include"stdio.h"intmain(){ inti; printf("1000以內(nèi)能夠同時(shí)被3、5、7整除的數(shù)是:"); for(i=1;i<=1000;i++) if(i%3==0&&i%5==0&&i%7==0) printf("%d\t",i); return0;}15.#include"stdio.h"intmain(){ floata,b,c; printf("請(qǐng)輸入三角形邊長a:"); scanf("%f",&a); printf("請(qǐng)輸入三角形邊長b:"); scanf("%f",&b); printf("請(qǐng)輸入三角形邊長c:"); scanf("%f",&c); if(a<b+c||b<a+c||c<a+b) { if(a==b&&a==c&&b==c) printf("這是一個(gè)等邊三角形\n"); if(a==b||a==c||b==c) { if(a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b) printf("這是一個(gè)等腰直角三角形\n"); else printf("這是一個(gè)等腰三角形\n"); } elseif(a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b) printf("這是一個(gè)直角三角形\n"); } else printf("所輸入的數(shù)據(jù)無法構(gòu)成一個(gè)三角形\n"); return0;}

第6章循環(huán)往復(fù),周而復(fù)始應(yīng)試訓(xùn)練題選擇題1.A 2.D 3.B 4.B 5.D 6.B 7.D8.B 9.D 10.A 11.D 12.A 13.A 14.C填空題1.01123 2.7 3.s=0 4.55.34 6.AFK 7.213編程題1.#include"stdio.h"intmain(){ inti,s=0; for(i=1;i<=100;i=i+3) s=s+i; printf("1+4+7+...+100=%d\n",s); return0;}2.#include"stdio.h"intmain(){ inti,s=1; for(i=1;i<=19;i=i+2) s=s*i; printf("1*3*5...*19=%d\n",s); return0;}3.#include"stdio.h"intmain(){ inti,n,s=0; printf("請(qǐng)輸入n:"); scanf("%d",&n); for(i=1;i<=n;i++) s=s+i; printf("1+2+3...+%d=%d\n",n,s); return0;}4.#include"stdio.h"intmain(){ inti,s1=0,s2=0; for(i=1;i<=100;i++) if(i%2==0) s2=s2+i; else s1=s1+i; printf("奇數(shù)之和是:%d\n偶數(shù)之和是:%d\n",s1,s2); return0;}5.#include"stdio.h"intmain(){ inti,j; for(i=101;i<=200;i++) { for(j=2;j<=i-1;j++) if(i%j==0) break; if(j==i)//如果上層的for循環(huán)是中途退出的,此處j一定小于i。反之,如果j等于i則說明在2到i-1中都沒有找到能夠整除的數(shù) printf("%d\t",i); } return0;}6.#include"stdio.h"intmain(){ inti,a,b,c; for(i=100;i<=999;i++) { a=i/100; b=(i%100)/10; c=i%10; if(i==a*a*a+b*b*b+c*c*c) printf("%d\t",i); } return0;}7.#include"stdio.h"intmain(){ intm,i=2; do{ printf("請(qǐng)輸入一個(gè)正整數(shù):"); scanf("%d",&m); }while(m<=0); printf("%d=",m); while(m>1) { if(m%i==0) { printf("%d*",i); m=m/i; } else i++; } printf("\b\b");//'/b’退格符用于消除因式最后的*號(hào)。 return0;}8.#include"stdio.h"intmain(){ intm,n,a,b,r; printf("請(qǐng)輸入兩個(gè)正整數(shù)m和n(m>n):"); scanf("%d%d",&m,&n); if(m<n) { r=m;m=n;n=r;} r=n;//m=18,n=9這種情況時(shí),while不執(zhí)行,n即為最大公約數(shù) a=m;b=n; while(a%b!=0) { r=a%b; a=b; b=r; } printf("最大公約數(shù)為:%d\n",r); r=m; while(!(r%m==0&&r%n==0)) r++; printf("最小公倍數(shù)為:%d\n",r); return0;}9.#include"stdio.h"#include"conio.h"intmain(){ inta=0,n=0; charc; printf("請(qǐng)連續(xù)輸入字母或數(shù)字(回車鍵結(jié)束):"); do{ c=_getche(); if((c>='a'&&c<='z')||(c>='A'&&c<='Z')) a++; elseif(c>='0'&&c<='9') n++; }while(c!='\r'); printf("\n字母?jìng)€(gè)數(shù)是:%d\t數(shù)字個(gè)數(shù)是:%d\n",a,n); return0;}10.#include"stdio.h"intmain(){ ints=0,a,n,i,j,k; printf("請(qǐng)輸入a和n:"); scanf("%d%d",&a,&n); for(i=1;i<=n;i++) { k=0; for(j=1;j<=i;j++) k=k*10+a; s=s+k; } printf("s=%d\n",s); return0;}11.#include"stdio.h"intmain(){ floatfz1=2,fz2=3,fm1=1,fm2=2,t,s=0; inti; s=fz1/fm1+fz2/fm2; for(i=3;i<=20;i++) { t=fz1; fz1=fz2; fz2=fz1+t; t=fm1; fm1=fm2; fm2=fm1+t; s=s+fz2/fm2; } printf("s=%f\n",s); return0;}12.#include"stdio.h"intmain(){ inti,s=0,m=1; for(i=1;i<=20;i++) { m*=i; s=s+m; } printf("1!+2!+...+20!=%d\n",s); return0;}13.#include"stdio.h"intmain(){ floatfm=1.0,s=0,x; do{ x=1.0/fm; s=s+x; fm+=2; printf("%f\n",x); }while(x>=1E-6); printf("s=%f\n",s); return0;}14.#include"stdio.h"intmain(){ intm; do{ printf("請(qǐng)輸入一個(gè)正整數(shù):"); scanf("%d",&m); }while(m<=0); while(m>0) { printf("%d",m%10); m=m/10; } return0;}15.#include"stdio.h"#include"conio.h"intmain(){ charc; do{ c=_getch(); if(c>='A'&&c<='Z') c=c+32; if(c>='a'&&c<='z') c=(c+1)%122; putchar(c); }while(c!='@'); return0;}//程序在輸入字母時(shí)即已完成轉(zhuǎn)換,例如輸入'a'時(shí)看到的輸出已是轉(zhuǎn)換后的'b'16.#include"stdio.h"intmain(){ floath=10,s=0; inti; for(i=1;i<=10;i++) { s=s+h; h=h/2; } printf("共經(jīng)過%f米,第10次反彈%f米\n",s,h); return0;}17.#include"stdio.h"intmain(){ intj,t; for(j=0;j<=30;j++) for(t=0;t<=30;t++) if(j+t==30&&j*2+t*4==90) printf("雞有%d只,兔有%d只\n",j,t); return0;}18.#include"stdio.h"intmain(){ intr,w,b; for(r=0;r<=3;r++) for(w=1;w<=5;w++) for(b=0;b<=6;b++) if(r+w+b==8) printf("紅球:%d只,白球:%d只,黑球:%d只\n",r,w,b); return0;}19.#include"stdio.h"intmain(){ intm,w,c; for(m=1;m<=28;m++) for(w=1;w<=28;w++) for(c=1;c<=28;c++) if(m*3+w*2+c*1==50) printf("男人:%d人,女人:%d人,小孩:%d人\n",m,w,c); return0;}20.#include"stdio.h"intmain(){ intm,i; for(i=1;i<=99;i++) { if(i<10) { m=(i*i)%10; } else { m=(i*i)%100; } if(m==i) printf("%d\n",i); } return0;}

第7章模塊化與協(xié)作開發(fā)應(yīng)試訓(xùn)練題選擇題1.C 2.B 3.A 4.B 5.A 6.C 7.B8.C 9.B 10.D 11.D 12.B 13.B 14.B15.D 16.A 17.C 18.B 19.C 20.A 21.A 22.D 23.C 24.B 25.C 填空題1.4 2.i 3.a[row][col] 4.30255.doubleavg(doublea,doubleb) 6.max(inta,intb) 7.2 118.1 3 6 9.777654321編程題1.#include"stdio.h"intfun(intn){ intj; if(n<0) printf("error!"); elseif(n==0||n==1) j=1; else j=fun(n-1)*n; return(j);}intmain(){ intn; inty; printf("inputanintegernumber:"); scanf("%d",&n); y=fun(n); printf("%d!=%d\n",n,y);}2.#include"stdio.h"#definePI3.14//求圓環(huán)面積doublearea(doublebigR,doublesmallR);intmain(void){ doublebigR,smallR; doublea; printf("請(qǐng)輸入大圓和小圓的半徑:\n"); scanf_s("%lf%lf",&bigR,&smallR); a=area(bigR,smallR); printf("圓環(huán)面積是:%.2lf",a);}doublearea(doublebigR,doublesmallR){ doubleareaBig,areaSmall; doublearea; areaBig=bigR*bigR*PI; areaSmall=smallR*smallR*PI; area=areaBig-areaSmall; returnarea;}3.#include"stdio.h"intfun(intn){ intj; if(n<0) printf("error!"); elseif(n==0||n==1) j=1; else j=fun(n-1)*n; return(j);}intmain(){ intn=10; inty; y=fun(n); printf("%d!=%d\n",n,y);}4.#include"stdio.h"floatfact(intk){ floatp=1; inti; for(i=1;i<=k;i++) p=p*i; return(p);}intmain(){ floats=0; inti; for(i=1;i<=19;i+=2) s=s+fact(i); printf("s=%f\n",s);}5.#include"stdio.h"floatfact(intk){ floatp=1; inti; for(i=1;i<=k;i++) p=p*i; return(p);}intmain(){ floatc; intm,n; scanf("%d%d",&m,&n); c=fact(m)/fact(n)/fact(m-n);/*或c=jc(m)/(jc(n)*jc(m-n));*/ printf("c=%f\n",c);}6.#include"stdio.h"intisp(intm){ inti; for(i=2;i<=m-1;i++) { if(m%i==0) return(0);/*能除盡,不是素?cái)?shù),返回0*/ } return(1);/*不能除盡,是素?cái)?shù),返回1*/}intmain(){ ints=0,i; for(i=2;i<=1000;i++) { if(isp(i)!=0) s=s+i; } printf("s=%d\n",s);}7.#include"stdio.h"floatm(floata,floatb){ floatmax; if(a>b) max=a; else max=b; return(max);}intmain(){ floata,b,c,d,u,v,max; scanf("%f%f%f%f",&a,&b,&c,&d); u=m(a,b); v=m(c,d); max=m(u,v);/*主調(diào)函數(shù)中變量名不能與被調(diào)函數(shù)名重名*/ printf("max=%f\n",max);}8.#include"stdio.h"intisleap(inty){ if(y%400==0||y%4==0&&y%100!=0) return(1); else return(0);}intmain(){ intyear; scanf("%d",&year); if(isleap(year)!=0)/*或if(isleap(year))*/ printf("%disaleapyear.\n",year); else printf("%disnotaleapyear.\n",year);}9.#include"stdio.h"intisleap(inty){ if(y%400==0||y%4==0&&y%100!=0) return(1); else return(0);}intmain(){ intyear; for(year=1;year<=1000;year++) { if(isleap(year)!=0)/*或if(isleap(year))*/ printf("%d,",year); } printf("\n");}10.#include"stdio.h"doublep(doublex,intn){ inti; for(i=1;i<=n;i++) x=x*10; x=x+0.5; x=(long)x; for(i=1;i<=n;i++) x=x/10; return(x);}intmain(){ doublex; scanf("%lf",&x); x=p(x,2); printf("x=%f\n",x);}11.#include"stdio.h"intrev(inta){ intd,r=0; while(a!=0) { d=a%10; r=r*10+d; a=a/10; } return(r);}intmain(){ inta,r; scanf("%d",&a); r=rev(a); printf("r=%d\n",r);}12.#include"stdio.h"floatave(floata[],intn){ floats=0,p; inti; for(i=0;i<n;i++) { s=s+a[i]; } p=s/n; return(p);}intmain(){ floata[20],p; inti; for(i=0;i<20;i++) { scanf("%f",&a[i]); } p=ave(a,20); for(i=0;i<20;i++) { if(a[i]<p) printf("%f,",a[i]); }}

第8章批量數(shù)據(jù)的處理應(yīng)試訓(xùn)練題選擇題1.D 2.C 3.C 4.C 5.B 6.C 7.D8.C 9.D 10.A 11.B 12.B 13.A 14.C15.B 16.B 17.B 18.D 19.C 填空題1.14 2.3 3.i-1 4.137155.14 1340 6.123569 7.101418 8.FABCDE9.s[i+2] 10.How?are?you???How編程題1.#include"stdio.h"intmain(){ floata[10]; inti; for(i=0;i<10;i++) scanf_s("%f",&a[i]); for(i=1;i<=9;i+=2) printf("%f,",a[i]); for(i=0;i<=8;i+=2) printf("%f,",a[i]); printf("\n");}2.#include"stdio.h"intmain(){ inta[10],max,i,x; for(i=0;i<=9;i++) scanf("%d",&a[i]); max=a[0]; for(i=0;i<10;i++) { if(a[i]>max){ max=a[i]; x=i; } } printf("最大值max=%d下標(biāo)為%d",max,x);}3.#include"stdio.h"intmain(){ inta[10],i,j,t; for(i=0;i<10;i++)/*用循環(huán)輸入10個(gè)元素*/ scanf("%d",&a[i]); i=0;j=9; while(i<j) { t=a[i];a[i]=a[j];a[j]=t;/*交換對(duì)應(yīng)元素的值*/ i++;j--; } for(i=0;i<10;i++)/*用循環(huán)輸出10個(gè)元素*/ printf("%d,",a[i]); printf("\n");}4.#include"stdio.h"intmain(){ inta[10],i,j,min; floatb[10],sum=0,average; printf("請(qǐng)輸入10個(gè)整數(shù):"); for(i=0;i<10;i++) { scanf("%d",&a[i]); sum+=a[i]; } average=sum/10; printf("平均數(shù)為:%f",average); for(i=0;i<10;i++) b[i]=fabs((a[i]-average)); min=0; for(j=1;j<10;j++) { if(b[j]<b[min]) {min=j;} } printf("與平均數(shù)最相近的是數(shù)是:%d",a[min]); printf("它是第%d個(gè)數(shù)",min+1);}5.#include"stdio.h"#defineN200intmain(){ floata[N],s,p; intn=0; s=0; while(1) { scanf("%f",&a[n]); if(a[n]==-1)break; s=s+a[n]; n++; } p=s/n; printf("s=%f,p=%f\n",s,p);}6.#include"stdio.h"intmain(){ voidconvert(intn); intnumber; printf("inputaninteger:"); scanf("%d",&number); printf("output:"); if(number<0) { putchar('-');putchar('');/*先輸出一個(gè)‘-’號(hào)和空格*/ number=-number; } convert(number); printf("\n"); return0;}voidconvert(intn){ inti; if((i=n/10)!=0) convert(i); putchar(n%10+'0'); putchar(32);}7.#include"stdio.h"intmain(){ intx,y,a[32],i=0; printf("請(qǐng)輸入一個(gè)十進(jìn)制整數(shù).\n"); scanf_s("%d",&y); x=y; while(x!=0) { a[i++]=x%2;//將結(jié)果存放到數(shù)組中 x=x/2; } printf("十進(jìn)制整數(shù)%d轉(zhuǎn)換為二進(jìn)制數(shù)是:\n",y); for(i--;i>=0;i--) printf("%d",a[i]);//通過數(shù)組輸出 printf("\n");}8.#include"stdio.h"intmain(){ inta[3][4],i,j; for(i=0;i<=2;i++)/*行優(yōu)先次序,外循環(huán)控制行號(hào)*/ for(j=0;j<=3;j++)/*內(nèi)循環(huán)控制列號(hào)*/ scanf("%d",&a[i][j]); for(j=0;j<=3;j++)/*列優(yōu)先次序,外循環(huán)控制列號(hào)*/ { for(i=0;i<=2;i++)/*內(nèi)循環(huán)控制行號(hào)*/ { printf("%6d",a[i][j]); } printf("\n"); }}9.#include"stdio.h"intmain(){ floata[3][3]; inti,j; for(i=0;i<=2;i++)/*外循環(huán)控制行號(hào)*/ for(j=0;j<=2;j++)/*內(nèi)循環(huán)控制列號(hào)*/ scanf("%f",&a[i][j]); for(i=0;i<=2;i++) { for(j=0;j<=i;j++) { a[i][j]=1/a[i][j]; }/*因a[i][j]為float型,故不必寫作1.0/a[i][j]*/ } for(i=0;i<=2;i++) { for(j=0;j<=2;j++) { printf("%f,",a[i][j]); } printf("\n"); }}10.#include"stdio.h"intmain(){ inta[2][3]={{1,2,3},{4,5,6}},b[3][2],i,j; for(i=0;i<3;i++)/*按行給數(shù)組b的元素賦值*/ { for(j=0;j<2;j++)/*并分行顯示數(shù)組b內(nèi)容*/ { b[i][j]=a[j][i]; printf("%6d",b[i][j]); } printf("\n");/*注意該語句的位置*/ }}11.#include"stdio.h"intmain(){ inti,j,max; inta[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}}; max=a[0][0]; for(i=0;i<=2;i++) for(j=0;j<=3;j++) if(a[i][j]>max) { max=a[i][j]; } printf("max=%d\n",max);}12.#include"stdio.h"intmain(){ inti,j,max,row,colum; inta[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}}; max=a[0][0]; row=0; colum=0; for(i=0;i<=2;i++) for(j=0;j<=3;j++) if(a[i][j]>max) { max=a[i][j]; row=i; colum=j; } printf("max=%d,row=%d,colum=%d\n",max,row,colum);}13.#include"stdio.h"intmain(){ inta[3][2]={1,3,5,2,4,6},b[3][2]={9,8,7,3,2,1},c[3][2]; inti,j; for(i=0;i<3;i++) { for(j=0;j<2;j++) { c[i][j]=a[i][j]+b[i][j]; printf("%6d",c[i][j]); } printf("\n"); }}14.#include"stdio.h"intmain(){ inta[3][2]={1,3,5,2,4,6},b[2][4]={9,8,7,3,2,1,5,6},c[3][2]; inti,j,k; for(i=0;i<3;i++) { for(j=0;j<4;j++) { c[i][j]=0; for(k=0;k<2;k++) { c[i][j]=c[i][j]+a[i][k]*b[k][j]; } printf("%6d",c[i][j]); } printf("\n"); }}15.#include"stdio.h"intmain(){ floatg[6][5],s[6],a[6]; inti,j; for(i=0;i<6;i++) { s[i]=0;/*s[i]是第i個(gè)人的總分*/ for(j=0;j<5;j++) { scanf_s("%f",&g[i][j]);/*g[i][j]是第i個(gè)人第j門課的成績*/ s[i]=s[i]+g[i][j]; } a[i]=s[i]/5;/*a[i]是第i個(gè)人的平均分*/ printf("%f,%f\n",s[i],a[i]); }}16.#include"stdio.h"#include"stdlib.h"intmain(){ inta[100][100]; intm,n; printf("請(qǐng)輸入二維數(shù)組的維數(shù):"); scanf("%d%d",&m,&n); inti,j; for(i=0;i<m;i++){ for(j=0;j<n;j++){ scanf("%d",&a[i][j]); } } intmax; for(i=0;i<m;i++){ max=a[i][0]; for(j=1;j<n;j++){ if(a[i][j]>max){ max=a[i][j]; } } printf("第%d行最大值:%d\n",i+1,max); } return0;}17.#include"stdio.h"#include“string.h”intmain(){ chara[80],b[80]; inti,n; gets(a); n=strlen(a); for(i=0;i<=n;i++)/*包括'\0'在內(nèi)*/ b[i]=a[i]; puts(b);}18.#include"stdio.h"#include"string.h"intmain(){ chara[80]; inti,n,c=0; gets(a); n=strlen(a); for(i=0;i<=n-1;i++) { if(a[i]!=''&&(a[i+1]==''||a[i+1]=='\0')) c++;/*第i個(gè)字符不是空格,第i+1個(gè)字符是空格或'\0',表示一個(gè)單詞結(jié)束*/ } printf("c=%d\n",c);}19.#include"stdio.h"#include"string.h"intmain(){ charc='a',t[50];/*字符數(shù)組定義語句*/ intn,k,j; printf("\nInputastring:"); gets(t); n=strlen(t);/*用函數(shù)得到該字符串的長度*/ for(k=0;k<n;k++) if(t[k]==c){j=k;break;} elsej=-1; printf("\nPositionis:%d",j);/*輸出查詢結(jié)果*/}20.#

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論