C語言答案 第5章學習資料_第1頁
C語言答案 第5章學習資料_第2頁
C語言答案 第5章學習資料_第3頁
C語言答案 第5章學習資料_第4頁
C語言答案 第5章學習資料_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

廈門大學本科生公共課《C程序設計基礎》教材習題答案第五章循環(huán)結(jié)構(gòu)程序設計第1頁/共9頁一、選擇題設有如下程序段,則輸出結(jié)果為k=()C1000設有如下程序段,則最后輸出的a=()C1000設有如下程序段,則最后輸出的a=()B1001設有如下程序段,則輸出結(jié)果為k=()C500

5、.循環(huán)語句”for(inti=1,j=10;i==j;i++,j--)”的循環(huán)次數(shù)是A0.語句”for(x=0,y=0;y!=1&&x<4;x++);”是C循環(huán)4次設有程序段”intk=10;while(k=0)k=k-1;”,則敘述正確的是D循環(huán)體語句一次也不執(zhí)行與語句”while(!x);”等價的語句是Awhile(x==0);設有如下程序段,程序運行結(jié)果應為()A;i=1,j=1;i=1,j=2;i=2,j=1;i=2.j=2.下述有關(guān)break語句的描述中,不正確的是Cbreak語句用于if語句的內(nèi)嵌語句內(nèi),它結(jié)束該if語句下面關(guān)于循環(huán)語句的描述中,錯誤的是B循環(huán)體內(nèi)必須同時出現(xiàn)break語句和continue語句編程題用for循環(huán)語句編程輸出1~20之間的所有整數(shù),兩數(shù)之間以空格分隔。#include<stdio.h>main(){inti; for(i=1;i<=20;i++) printf("%d",i);}用for循環(huán)語句編程輸出20~1之間的所有整數(shù),兩數(shù)之間以空格分隔。inti;for(i=20;i>=1;i--) printf("%d",i);用for循環(huán)語句編程輸出A~Z之間的所有字符,兩字母之間以空格分隔,要求一行輸出八個字符inti; for(i=0;i<26;i++) {printf("%d",’A’+i);if((i+1)%8==0)printf(“\n”);}4.輸出100~200之間所有能被3和7整除的數(shù)(每行輸出4個數(shù))。#include<stdio.h>main(){ inti,count=0; for(i=100;i<=200;i++) if(i%3==0&&i%7==0){ printf("%d\t",i);count++;if(count%4==0)printf(“\n”);}}輸出1~1000之間所有滿足用3除余2,用5除余3,用7除余2的數(shù)(要求每行只輸出5個數(shù))。#include<stdio.h>main(){ inti,c=0; for(i=1;i<=1000;i++) if(i%3==2&&i%5==3&&i%7==2){ printf("%d\t",i); c++; if(c%5==0) printf("\n"); }}6.先讀入一個正整數(shù)n,然后計算并顯示前n個偶數(shù)的和。#include<stdio.h>main(){ intsum=0,n,i; printf("輸入一個正整數(shù):"); scanf("%d",&n); for(i=1;i<=n;i++) sum+=2*i; printf("前n個偶數(shù)和為:%d\n",sum);}計算S=1+1/2+1/3+1/4+…+1/200的值并輸出。inti,sum=0;for(i=1;i<=200;i++)sum+=1.0/i; printf("%d\n",sum);8.計算1-3+5-7+…-99+101的值。#include<stdio.h>main(){inti,r,sum=0;for(i=1,r=1;i<=101;i+=2,r=-r)sum+=r*i; printf("%d\n",sum);}9.輸入用戶輸入的6個整數(shù)并顯示其平均值。#include<stdio.h>main(){ floatsum=0; inttmp,i; for(i=0;i<6;i++) { printf("輸入第%d個數(shù):",i+1); scanf("%d",&tmp); sum=sum+tmp; } printf("平均值是:%f",sum/6);}10.輸出Fibonacci數(shù)列的前幾項直到該項的值值大于10000的所有數(shù)據(jù)項(每行5輸出項)#include<stdio.h>main(){ inta,b,c,i; a=1;b=1; for(i=1;a<=10000;i++) { printf("%d\t",a); c=a+b;a=b;b=c; if(i%5==0) putchar('\n'); }}11、輸出10000至99999中所有的回文數(shù)(回文數(shù)是指從左到右讀與從右到左讀都一樣的正整數(shù),如11,22,3443,94249等)。inti,m,n;for(n=10000;n<=99999;n++){m=0;//求出n的逆向值,放在m中。例如:123的逆向值為321.for(i=n;i>0;i/=10)m=m*10+i%10;if(m==n)printf(“%d“,n);}12.找出所有“水仙花數(shù)”。所謂“水仙花數(shù)”是指一個三位整數(shù),其各位數(shù)字立方和等于該數(shù)本身。#include<stdio.h>main(){ inti,j,k; for(i=1;i<=9;i++) for(j=0;j<=9;j++) for(k=0;k<=9;k++) if(100*i+10*j+k==i*i*i+j*j*j+k*k*k) printf("%d\n",100*i+10*j+k);}13.輸出1~100之間所有各位數(shù)之積大于各位數(shù)之和的數(shù)。#include<stdio.h>main(){ inti,j; for(i=1;i<=9;i++) { for(j=1;j<=9;j++) { if(i*j>i+j)printf("%d\t",i*10+j); } }}14、輸入一個整數(shù),計算該整數(shù)的位數(shù)和各位之和。intn,wei=0,sum=0;scanf(“%d”,&n);do{wei++;sum+=n%10;n/=10;}while(n!=0);或intn,wei=0,sum=0;scanf(“%d”,&n);while(n!=0){wei++;sum+=n%10;n/=10;}兩者的差別在于dowhile語句可以正確處理輸入的數(shù)為0的情況,輸入其它的數(shù),兩個程序的效果一樣。15.一個正整數(shù)如果恰好等于它的因子之和,這個數(shù)就稱為“完數(shù)”。找出10000之內(nèi)的所有完數(shù)。#include<stdio.h>main(){ inti,j,sum; for(i=1;i<=10000;i++){ for(j=1,sum=0;j<i;j++) if(i%j==0)sum+=j; if(sum==i)printf("%d\t",i); }}16.輸出“九九乘法表”#include<stdio.h>main(){ inti,j,k; for(i=1;i<10;i++) { for(j=1;j<=i;j++) printf("%d*%d=%d\t",i,j,i*j); printf("\n"); }}17.輸出如下圖形ABBBCCCCCDDDDDDD#include<stdio.h>main(){ inti,j,n;charch;scanf(”%d”,&n);//n為行數(shù),此時n=4 for(i=0;i<n;i++) {ch=‘A’+i;for(j=n-i-1;j>0;j--)putchar(’’); for(j=1;j<=2*i+1;j++) putchar(ch); putchar('\n'); }}18.輸出如下圖案*************************#include<stdio.h>main(){ inti,j,n;scanf(”%d”,&n);//n為行數(shù),此時n=7 for(i=0;i<=n/2;i++) {//打印上半部分,包括第4行 for(j=1;j<=2*i+1;j++)putchar(’*’); printf("\n");} for(i=1;i<=n/2;i++){ for(j=1;j<=n-2*i;j++)putchar(’*’); printf("\n");}}找出10000之內(nèi)的所有完數(shù)。#include<stdio.h>main(){ inti,j,sum; for(i=1;i<=10000;i++){ for(j=1,sum=0;j<i;j++) if(i%j==0)sum+=j; if(sum==i)printf("%d\t",i); }}找出500內(nèi)的所有素數(shù)。inti,n;for(n=2;n<=500;n++){m=sqrt(n);for(i=2;i<=m;i++)if(n%i==0)break;if(i>m)//說明不是通過break跳出循環(huán)的,此時是質(zhì)數(shù)printf(“%d”,n);}21.有一個分數(shù)序列2/1,3/2,5/3,8/5,13/8,21/13,…求出這個數(shù)列的前20項之和。#include<stdio.h>main(){ inta,b,c,i; doublesum=0; a=1;b=1; for(i=1;i<=20;i++) { c=a+b; sum+=(double)c/b; a=b; b=c; } printf("%lf\n",sum);}22.計算100~999之間有多少個數(shù)其各位數(shù)字之和是5.#include<stdio.h>main(){ inti,c=0,x,sum; for(i=100;i<1000;i++) { x=i;sum=0; while(x>0){ sum+=x%10; x/=10; } if(sum==5){ printf("%d\t",i); c++; } } printf("\n共%d個\n",c);}23、輸出1500至3000年之間的所有閏年,要求每行輸出8個數(shù)據(jù).intyear,count=0;for(year=1500;year<=3000;year++)if((year%4==0&&year%100!=0)||year%400==0){//是閏年printf(“%d“,year);count++;if(count%8==0)printf(“\n”);}24.求一個二位整數(shù)AB(其中AB分別為兩位整數(shù)的十位和個位),使AB-BA=45成立。#include<stdio.h>main(){ inti,j; for(i=10;i<=99;i++){ j=i%10*10+i/10; if(i-j==45) printf("%d\n",i); }}25.36塊磚,36人搬。男搬4,女搬3,兩個小孩抬一塊。一次剛好搬完,問男、女、小孩各多少人?#include<stdio.h>main(){ intboy,girl,child; for(boy=0;boy<=9;boy++) for(girl=0;girl<=12;girl++) {child=36-boy-girl; if(boy*8+girl*6+child==72)printf("boy=%dgirl=%dchild=%d\n",boy,girl,child); }}26、編程求解馬克思手稿中的數(shù)學數(shù)學題:有30個人,在一家飯館里吃飯共花了50先令

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論