c語言習(xí)題講解1_第1頁
c語言習(xí)題講解1_第2頁
c語言習(xí)題講解1_第3頁
c語言習(xí)題講解1_第4頁
c語言習(xí)題講解1_第5頁
已閱讀5頁,還剩77頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

習(xí)題講解大綱內(nèi)容回顧習(xí)題講解內(nèi)容回顧----第一章C程序的基本結(jié)構(gòu)printf函數(shù)scanf函數(shù)輸入輸出格式控制符轉(zhuǎn)義字符C程序的開發(fā)環(huán)境C程序的開發(fā)過程內(nèi)容回顧----第二章符號(hào)分類(關(guān)鍵字、標(biāo)識(shí)符)標(biāo)識(shí)符命名規(guī)則基本數(shù)據(jù)類型變量常量常用運(yùn)算符和表達(dá)式運(yùn)算符的優(yōu)先級(jí)與結(jié)合性數(shù)據(jù)類型轉(zhuǎn)換內(nèi)容回顧----第三章算法算法表示方法程序設(shè)計(jì)的一般方法C語言三種控制結(jié)構(gòu)break和continue語句循環(huán)結(jié)構(gòu)的嵌套goto語句內(nèi)容回顧----第四章數(shù)組的概念一維數(shù)組的定義、初始化、賦值、引用二維數(shù)組的定義、初始化、賦值、引用數(shù)組在內(nèi)存中的存儲(chǔ)方式字符數(shù)組與字符串字符串的輸入、輸出函數(shù)字符串操作函數(shù)1.從鍵盤上輸入兩個(gè)整數(shù),然后在屏幕上輸出這兩個(gè)數(shù)的積。#include<stdio.h>voidmain(){

int

a,b,c;

scanf("%d,%d",&a,&b);c=a*b;

printf("%d\n",c);}2.編寫C程序,輸出以下信息:**********VeryGood!**********#include<stdio.h>voidmain(){

printf("**********\n");

printf("VeryGood!\n");

printf("**********\n");}3.編寫一個(gè)程序,輸入三個(gè)整數(shù),輸出其最大者

#include<stdio.h>voidmain(){

int

a,b,c;

intm;

scanf("%d,%d,%d",&a,&b,&c);m=a;if(b>m)m=b;if(c>m)m=c;

printf("%d\n",m);}4.從鍵盤上輸入一個(gè)半徑r,輸出圓的面積、周長(zhǎng)。

#include<stdio.h>voidmain(){ floatr,s,l; scanf("%f",&r); s=3.14*r*r; l=2*3.14*r; printf("%.0f\n%.1f\n",s,l);

}5.已知F=9÷5×C+32,其中其中C表示攝氏溫度,F(xiàn)表示華氏溫度,從鍵盤上輸入一個(gè)攝氏溫度,轉(zhuǎn)換為華氏溫度輸出。

#include<stdio.h>voidmain(){ floatf; floatc; scanf("%f",&c); f=9.0/5*c+32;printf("%.2f\n",f);}6.從鍵盤輸入兩個(gè)整數(shù),交換兩個(gè)變量的值并輸出。#include<stdio.h>voidmain(){

int

a,b;

intt;

scanf("%d,%d",&a,&b);

printf("交換前:a=%d,b=%d\n",a,b); t=a;a=b;b=t;

printf("交換后:a=%d,b=%d\n",a,b);}7.從鍵盤輸入兩個(gè)整數(shù),交換兩個(gè)變量的值并輸出。注意:該題要求不借助中間變量來實(shí)現(xiàn),而是借助一系列算術(shù)運(yùn)算。#include<stdio.h>voidmain(){

int

a,b;

scanf("%d,%d",&a,&b);

printf("交換前:a=%d,b=%d\n",a,b); a=a-b;b=b+a;a=b-a;

printf("交換后:a=%d,b=%d\n",a,b);}8.從鍵盤輸入一個(gè)四位數(shù)的正整數(shù),編程實(shí)現(xiàn)反序輸出這四位數(shù)。#include<stdio.h>voidmain(){

int

x,a,b,c,d,y;

scanf("%d",&x); a=x%10; b=(x%100)/10; c=(x%1000)/100; d=x/1000;y=a*1000+b*100+c*10+d;

printf("%d\n",y);}9.編寫一個(gè)程序,輸入4個(gè)字符,將輸入的字符譯成密碼。加密規(guī)則是:將原來的字母用字母表中其后面第3個(gè)字母來替換,如字母c換成f,字母y換成b。提示:根據(jù)字母的ASCII碼值,按照加密方法對(duì)各個(gè)字符進(jìn)行運(yùn)算后輸出

#include<stdio.h>voidmain(){ charch1,ch2,ch3,ch4; scanf("%c\n%c\n%c\n%c",&ch1,&ch2,&ch3,&ch4); ch1+=3; ch2+=3; ch3+=3; ch4+=3;printf("%c%c%c%c\n",ch1,ch2,ch3,ch4);}10.編寫一個(gè)程序,輸入任意三個(gè)小數(shù),顯示這三個(gè)小數(shù)相加的結(jié)果;該結(jié)果四舍五入轉(zhuǎn)換成整數(shù)輸出#include<stdio.h>voidmain(){ floatf1,f2,f3,sum; scanf("%f%f%f",&f1,&f2,&f3); sum=f1+f2+f3; printf("%.1f\n%d\n",sum,(int)(sum+0.5));}11.判斷輸入的是數(shù)字字符還是其他字符(數(shù)字字符范圍為‘0’-‘9’)。如果是數(shù)字字符,輸出Yes;如果是其他字符,輸出No;#include<stdio.h>voidmain(){ charch;

scanf("%c",&ch); if(ch>='0'&&ch<='9') {

printf("Yes\n"); } else {

printf("No\n");}}12.先計(jì)算再編程檢驗(yàn)計(jì)算結(jié)果(a=0,b=2,c=1)!(2<5)7>3&&10>65>2||4>8a>3&&b>=5a>3||b>=5!(b>=5)!(a==b)!(a=b)a&&b++&&--c

a||b--||c++a||b--||++ca||--b||++c#include<stdio.h>voidmain(){inta=0,b=2,c=1;printf("%d\n",!(2<5));printf("%d\n",7>3&&10>6);printf("%d\n",5>2||4>8);printf("%d\n",a>3&&b>=5);printf("%d\n",a>3||b>=5);printf("%d\n",!(b>=5));printf("%d\n",!(a==b));printf("%d\n",!(a=b));printf("%d\n",a&&b++&&--c);printf("%d\n",a||b--||c++);printf("%d\n",a||b--||++c);printf("%d\n",a||--b||++c);}13.編寫程序,從鍵盤輸入任意一個(gè)數(shù)x,求出對(duì)應(yīng)的分段函數(shù)y的值并輸出,以2位小數(shù)形式。#include<stdio.h>voidmain(){ floatx,y;

scanf("%f",&x); if(x<0) { y=x+1; } else { if(x>=0&&x<1)y=11; else y=x*x*x; } printf("%.2f\n",y);}14.按要求輸入并運(yùn)行下面的程序#include<stdio.h>voidmain(){charc1,c2;

c1='a';

c2='b';

printf("%c%c\n,",c1,c2);}

①運(yùn)行此程序。②在此基礎(chǔ)上增加一個(gè)語句:

printf("%d%d\n",c1,c2);再運(yùn)行,并分析結(jié)果。③將第2行改為:

intc1,c2;再使之運(yùn)行,并觀察結(jié)果。④再將第3、4行改為:

c1=a;/*不用單撇號(hào)*/

c2=b;'a':undeclaredidentifier

再使之運(yùn)行,分析其運(yùn)行結(jié)果。⑤再將第3、4行改為:

c1="a";/*用雙撇號(hào)*/

c2="b";

再使之運(yùn)行,分析其運(yùn)行結(jié)果。⑥再將第3、4行改為:

c1=300;/*用大于255的整數(shù)*/

c2=400;

再使之運(yùn)行,分析其運(yùn)行結(jié)果。truncationfrom'constint'to'char'cannotconvertfrom'char[2]'to'char'15.輸人并運(yùn)行給出的程序#include<stdio.h>voidmain(){charc1=‘a(chǎn)’,c2=‘b’,c3=‘c’,c4=‘01’,c5=‘16’;

printf("a%cb%c%c",c1,c2,c3);printf("%c%c",c4,c5);}在上機(jī)前先用人工分析程序,寫出應(yīng)得結(jié)果,上機(jī)后將二者對(duì)照。warningC4305:'initializing':truncationfrom'constint'to'char'16.輸入并運(yùn)行下面的程序#include<stdio.h>voidmain(){int

a,b;unsignedc,d;longe,f;a=100;b=-100;e=50000;f=32767;c=a;

printf("%d,%d\n",a,b);

printf("%u,%u\n",a,b);

printf("%u,%u\n",c,d);c=a=e;d=b=f;

printf("%d,%d\n",a,b);

printf("%u,%u\n",c,d);}請(qǐng)對(duì)照程序和運(yùn)行結(jié)果分析:①將一個(gè)負(fù)整數(shù)賦給一個(gè)無符號(hào)的變量,會(huì)得到什么結(jié)果;②將一個(gè)大于32767的長(zhǎng)整數(shù)賦給整型變量,會(huì)得到什么結(jié)果;③將一個(gè)長(zhǎng)整數(shù)賦給無符號(hào)變量,會(huì)得到什么結(jié)果(分別考慮該長(zhǎng)整數(shù)的值大于或等于65535以及小于65535的情況)。可以改變程序中各變量的值,以便比較。例如;a=65580,b=-40000,e=65535,f=65580。17.輸入并運(yùn)行下面的程序#include<stdio.h>voidmain(){

inti,j,m,n;i=8;j=10;m=++i;n=j++;

printf("%d,%d,%d,%d",i,j,m,n);}

①運(yùn)行程序,注意i、j、m、n各變量的值,分別作以下改動(dòng)并運(yùn)行。9,11,9,10②將第4、5行改為:

m=i++;n=++j;

再運(yùn)行。9,11,8,11

③將程序改為:voidmain(){inti,j;i=8;j=10;printf("%d,%d",i++,j++);}④在③的基礎(chǔ)上,將printf語句改為;printf("%d,%d",++i,++j);⑤再將printf語句改為printf("%d,%d,%d,%d",i,j,i++,j++);⑥將程序改為,voidmain(){int

i,j,m=0,n=0;i=8;j=10;m+=i++;n-=--j;

printf(“i=%d,j=%d,m=%d,n=%d",i,j,m,n);}18.要將“China”譯成密碼,譯碼規(guī)律是:用原來字母后面的第4個(gè)字母代替原來的字母。例如,字母“A”后面第4個(gè)字母是“E”,用“E”代替“A”。因此,“China”應(yīng)譯為“Glmre”。請(qǐng)編一程序,用賦初值的方法使c1、c2、c3、c4、c5五個(gè)變量的值分別為'C'、'h'、'i'、'n'、'a',經(jīng)過運(yùn)算,使c1、c2、c3、c4、c5分別變?yōu)?G'、'l'、‘m'、'r'、'e',并輸出。①輸入事先已編好的程序,并運(yùn)行該程序。分析是否符合要求。②改變c1、c2、c3、c4、c5的初值為:'T'、'o'、'd'、'a'、'y',對(duì)譯碼規(guī)律作如下補(bǔ)充:'W',用'A'代替,'X',用'B'代替,'Y'用'C'代替,'Z'用'D'代替。修改程序并運(yùn)行。③將譯碼規(guī)律修改為:將字母用它前面的第4個(gè)字母代替,例如'E'用'A代替,'Z'用'U'代替,'D'用'Z'代替,'C'用'Y'代替,'B'用'X'代替,'A'用'V'代替。修改程序并運(yùn)行。#include<stdio.h>voidmain(){charc1='C',c2='h',c3='i',c4='n',c5='a';c1+=4;c2+=4;c3+=4;c4+=4;c5+=4;printf("密碼是%c%c%c%c%c\n",c1,c2,c3,c4,c5);}19.閱讀程序,給出關(guān)鍵點(diǎn)的解題思路,寫出結(jié)果并演算

#include<stdio.h>voidmain(){

inta=5,b=4,c=3;

int

s,t; if(a>b>c)s=a; elses=0; t=(a-c>c+2==0);/**/

printf("s=%d,t=%d\n",s,t);}s=0,t=1/*算術(shù)運(yùn)算符優(yōu)先級(jí)高于關(guān)系運(yùn)算符,a-c結(jié)果為2,c+2結(jié)果為5,然后求2>5==0的值,因?yàn)?gt;、==同為關(guān)系運(yùn)算,優(yōu)先級(jí)相同,所以按照關(guān)系運(yùn)算的左結(jié)合律2>5值為0,0==0結(jié)果為1,所以t=1*/

20.閱讀程序,給出關(guān)鍵點(diǎn)的解題思路,寫出結(jié)果并演算

#include<stdio.h>voidmain(){printf("%d,%d,%d,%d\n",(4>3)&&(5>1),(4<3)&&(5>1),(4>3)&&(5<1),(4<3)&&(5<1));printf("%d,%d,%d,%d\n",(4>3)||(5>1),(4<3)||(5>1),(4>3)||(5<1),(4<3)||(5<1));printf("%d,%d\n",!(4>3),!(4<3));}/**/

21.閱讀程序,給出關(guān)鍵點(diǎn)的解題思路,寫出結(jié)果并演算

#include<stdio.h>voidmain(){inta1,a2,a3,a4,b1,b2,b3,b4;a1=a2=a3=a4=10;b1=(a1++)+(a1++)+(a1++);/**/b2=(++a2)+(++a2)+(++a2);/**/b3=(a3--)+(a3--)+(a3--);/**/b4=(--a4)+(--a4)+(--a4);/**/printf("a1=%d,a2=%d,b1=%d,b2=%d\n",a1,a2,b1,b2);printf("a3=%d,a4=%d,b3=%d,b4=%d\n",a3,a4,b3,b4);}22.閱讀程序,給出關(guān)鍵點(diǎn)的解題思路,寫出結(jié)果并演算

#include<stdio.h>voidmain(){inta=3,b=4,c=1,max,t;

if(a>b,a>c)max=a;elsemax=0;t=(a+3,b+1,++c);

/**/

printf("max=%d,t=%d\n",max,t);}max=3,t=223.閱讀程序,給出關(guān)鍵點(diǎn)的解題思路,寫出結(jié)果并演算

#include<stdio.h>voidmain(){

int

a,b,c,max;

scanf(“%d,%d,%d”,&a,&b,&c); max=a>(b>c?b:c)?a:(b>c?b:c);/**/printf("a=%d,b=%d,c=%d,max=%d\n",a,b,c,max);}24.閱讀程序,給出關(guān)鍵點(diǎn)的解題思路,寫出結(jié)果并演算

閱讀程序,給出關(guān)鍵點(diǎn)的解題思路,寫出結(jié)果并演算(程序E3_6.C)。譯密碼。為使電文保密,往往按一定規(guī)律將其轉(zhuǎn)換成密碼,收?qǐng)?bào)人再按約定的規(guī)律將其譯回原文。例如,可以按以下規(guī)律將電文變成密碼:將字母a變成e,即變成其后的第4個(gè)字母,W變成A,X變成B,Y變成C,Z變成D。字母按上述規(guī)律轉(zhuǎn)換,非字母字符不變。如“china!”轉(zhuǎn)換為“Glmre!”。下面的程序?qū)崿F(xiàn)輸入一行字符,要求輸出其相應(yīng)的密碼。#include<stdio.h>voidmain(){charc;

while((c=getchar())!='\n')/**/{ if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))/**/{c=c+4;

if(c>'Z'&&c<='Z'+4||c>'z')c=c-26;/**/ }

printf("%c",c);}}25.求下面算術(shù)表達(dá)式的值。(1)x+a%3*(int)(x+y)%2/4設(shè)x=2.5,a=7,y=4.7(2)(float)(a+b)/2+(int)x%(int)y設(shè)a=2,b=3,x=3.5,y=2.526.寫出下面表達(dá)式運(yùn)算后a的值,設(shè)原來a=12。設(shè)a和n已定義為整型變量。(1)a+=a(2)a-=2(3)a*=2+3(4)a/=a+a(5)a%=(n%=2),n的值等于5(6)a+=a-=a*=a#include<stdio.h>voidmain(){floatx=2.5f,y=4.7f;inta=7;printf("%f",x+a%3*(int)(x+y)%2/4);}3-7.(1)2.500000(2)3.5000003-8.(1)24(2)10(3)60(4)0(5)0(6)027.給出一個(gè)百分制成績(jī),要求輸出成績(jī)等級(jí)A、B、C、D、E。90分以上為A,81~89分為B,70~79分為C,60~69分為D,60分以下為E。在輸入分?jǐn)?shù)為負(fù)值(如-70)時(shí),應(yīng)能處理輸入時(shí)的錯(cuò)誤。此時(shí)不應(yīng)給出等級(jí),當(dāng)輸入數(shù)據(jù)大于100或小于0時(shí),通知用戶“輸入數(shù)據(jù)錯(cuò)”,程序結(jié)束。(if)#include<stdio.h>voidmain(){intscore;scanf("%d",&score);if(score<0||score>100)

printf("輸入數(shù)據(jù)錯(cuò)誤\n");else{if(score/10>=9)

printf("A\n");if(score/10==8)

printf("B\n");if(score/10==7)

printf("C\n");if(score/10==6)

printf("D\n");if(score/10<6)

printf("E\n");}}28.同上題#include<stdio.h>voidmain(){intscore;scanf("%d",&score);if(score<0||score>100)

printf("輸入數(shù)據(jù)錯(cuò)誤\n");else{switch(score/10){case10:case9:printf("A\n");break;case8:printf("B\n");break;case7:printf("C\n");break;case6:printf("D\n");break;case5:case4:case3:case2:case1:case0:printf("E\n");break;}}}29.給一個(gè)不多于5位的正整數(shù),要求:①求出它是幾位數(shù);②分別打印出每一位數(shù)字;③按逆序打印出各位數(shù)字,例如原數(shù)為321,應(yīng)輸出123。除此之外,程序還應(yīng)當(dāng)對(duì)不合法的輸入作必要的處理。例如:·輸入負(fù)數(shù);·輸入的數(shù)超過5位。30.求解方程ax2+bx+c=0,其中a,b,c從鍵盤上輸入(a>0),輸出對(duì)應(yīng)的x的值,以4位小數(shù)形式。#include<stdio.h>#include<math.h>voidmain(){

int

a,b,c; floats,d,x1,x2;

scanf("%d%d%d",&a,&b,&c); s=b*b-4*a*c; if(sqrt(s)>=0) { s=sqrt(s); d=(float)b*(-1)/(2*a); x1=d+s/(2*a); x2=d-s/(2*a); printf("%.4f\n%.4f\n",x1,x2); } else {

printf("無實(shí)根\n"); }}31.從鍵盤輸入10個(gè)數(shù),要求計(jì)算其和與均值并輸出。#include<stdio.h>voidmain(){

intn=0,s=0,a; floataverage; while(n<10) {

scanf("%d",&a); s+=a; n++; } average=1.0*s/n; printf("%d\n%.1f\n",s,average);}32.從鍵盤上輸入一個(gè)自然數(shù),輸出該數(shù)的階乘。#include<stdio.h>voidmain(){ intn,s=1; scanf("%d",&n); while(n>0) { s*=n; n--; } printf("%d\n",s);}33.求1到100內(nèi)奇數(shù)的和#include<stdio.h>voidmain(){ intn=1,s=0; while(n<=100) { if(n%2!=0) { s+=n; } n++; } printf("%d\n",s);}34.從鍵盤輸入10個(gè)數(shù),分別輸出正數(shù)之和負(fù)數(shù)之和。#include<stdio.h>voidmain(){

intn=1,s1=0,s2=0,a; while(n<=10) { scanf("%d",&a); if(a>=0) { s1+=a; } else if(a<0) { s2+=a; } n++; } printf("%d\n%d\n",s1,s2);}35.從鍵盤上輸入10個(gè)數(shù),輸出其中最大數(shù)與最小的數(shù)。#include<stdio.h>voidmain(){

intn=1,max,min,a;

scanf("%d",&a); max=a;min=a; while(n<=9) { scanf("%d",&a); if(a>max) { max=a; } if(a<min) { min=a; } n++; }

printf("%d\n%d\n",max,min);}36.鍵盤輸入兩個(gè)整數(shù),判斷第一個(gè)數(shù)是否是第二個(gè)數(shù)的倍數(shù)。37.計(jì)算多項(xiàng)式1-2+3-4+5-6…+n,前n項(xiàng)之和,n從鍵盤輸入。

37.計(jì)算多項(xiàng)式1-2+3-4+5-6…+n,前n項(xiàng)之和,n從鍵盤輸入。#include<stdio.h>#include<math.h>voidmain(){

ints=0,n,i=1,j;

scanf("%d",&n); for(;i<=n;i++) { s+=i*pow(-1,i-1); }

printf("%d\n",s);}38.已知,編程求圓周率,要求誤差不大于e,e從鍵盤上輸入,如0.0001。提示:可參考書124頁例6.6。#include<stdio.h>#include<math.h>voidmain(){ floatpai=0,i=1,n=1,s=1,e; scanf("%f",&e);while(fabs(i)>=e) { pai+=i; n=n+2; s=-s; i=s/n; } pai=pai*4; printf("%f\n",pai); }39.如果一個(gè)三位數(shù)的個(gè)位數(shù)、十位數(shù)和百位數(shù)的立方和等于該數(shù)自身,則稱該數(shù)為水仙花數(shù)。編程:從鍵盤輸入一個(gè)3位數(shù),判斷其是否水仙花數(shù)。#include<stdio.h>voidmain(){

int

x,a,b,c;

scanf("%d",&x); a=x/100; b=(x/10)%10; c=x%10;

if(x==a*a*a+b*b*b+c*c*c)

printf("yes\n"); else

printf("no\n"); }40.求100~999之間個(gè)位、十位、百位數(shù)之和等于7的數(shù)。輸入n,輸出第n個(gè)這樣的數(shù)#include<stdio.h>voidmain(){int

index,count=0;

int

a,b,c;

scanf("%d",&index);for(inti=100;i<=999;i++){ a=i/100; b=(i/10)%10; c=i%10; if(a+b+c==7) {count++; if(count==index) {

printf("%d\n",i); } }} }41.編寫游戲算命程序?qū)⒛橙说某錾暝氯占悠饋?,例如?975年2月20日出生的人就是1+9+7+5+0+2+2+0=26。如果結(jié)果不是一位數(shù),就再相加(如果相加之后還是一位數(shù)以上的話,就再相加,直到變成一位數(shù))。因此,先前算出來的26,需再計(jì)算2+6=8。將最后得出的一位數(shù)字對(duì)照下面的表就可以得知這個(gè)人上輩子是什么。42.猴子第一天摘下若干個(gè)桃子,當(dāng)即就吃了一半,又感覺不過癮,于是就多吃了一個(gè)。以后每天如此,到第n天(n從鍵盤輸入),發(fā)現(xiàn)就只剩了一直桃子,請(qǐng)編程計(jì)算猴子第一天摘的桃子個(gè)數(shù)。#include<stdio.h>voidmain(){inttotal=1,eatnumber=1,n;scanf("%d",&n);for(inti=1;i<n;i++){

eatnumber=(total+1)*2; total=eatnumber;}printf("%d\n",total);}43.已知雞翁每只錢五,雞母每只錢三,雞雛每三只錢一。鍵盤輸入n,用n錢買n只雞,計(jì)算雞翁,雞母,雞雛各幾只并輸出#include<stdio.h>voidmain(){

intmoney;

intcock,hen,chicken;

scanf("%d",&money);

for(cock=0;cock<=money/5;cock++) {

for(hen=0;hen<=money/3;hen++) {

for(chicken=0;chicken<=money*3;chicken+=3){

if(cock+hen+chicken==money&&cock*5+hen*3+chicken/3==money)

printf("cock=%d,hen=%d,chicken=%d\n",cock,hen,chicken);}} }}44.從鍵盤上輸入一個(gè)自然數(shù),輸出大于這個(gè)數(shù)的第4個(gè)素?cái)?shù)。#include<stdio.h>voidmain(){

int

n,count=0,j;

scanf("%d",&n);

for(inti=n+1;;i++) { for(j=2;j<i;j++) { if(i%j==0)break; } if(j>=i) { count++; if(count==4) {

printf("%d\n",i); break; } } }}45.一個(gè)小球從100米高度自由落下,每次落地后反彈回原高度的一半,再落下,它在第n次落地時(shí),共經(jīng)過m米,第n次反彈的高度是h。輸入n,輸出m,h值。#include<stdio.h>#include<math.h>voidmain(){ intn,i; floatm=100,s=100,h; scanf("%d",&n); for(i=2;s>0;i++) { s=s*0.5; m+=2*s; if(i==n) { h=s*0.5;printf("%f\n%f\n",m,h); } }}46.n個(gè)人,n塊磚,男人一次搬4塊,女人每次搬3塊,兩個(gè)孩子一塊磚。如果要求一次搬完這n塊磚,請(qǐng)編程計(jì)算男女孩各幾人并輸出。n有鍵盤輸入#include<stdio.h>#include<math.h>voidmain(){

intn;

int

m,w,c;

scanf("%d",&n);

for(m=0;m<=n/4;m++)

for(w=0;w<=n/3;w++) {c=n-w-m; if((4*m+3*w+c/2)==n&&c%2==0)

printf("%d\n%d\n%d\n",m,w,c); }}47.完全數(shù)是其各因子之和正好等于本身的數(shù),如6=1+2+3,28=1+2+4+7+14,所以6,8都是完全數(shù),請(qǐng)編程找出2-20000內(nèi)的所有完全數(shù).輸入整數(shù)n,輸出第n個(gè)完全平方數(shù)48.求s=a+aa+aaa+aaaa+……的前n項(xiàng)和,a和n從鍵盤上輸入,如輸入5和3,則求5+55+555的值#include<stdio.h>voidmain(){

int

a,n;

intcount=0,t;

scanf("%d%d",&a,&n); count=a;t=a; for(inti=2;i<=n;i++) { t=t*10+a; count+=t; }

printf("%d\n",count); }49.一個(gè)數(shù)如果是另一個(gè)整數(shù)的完全平方,該數(shù)被稱為完全平方數(shù)。

如:1,4,9,16,25,36,49,64等,請(qǐng)顯示200以內(nèi)的完全平方數(shù)和它們的個(gè)數(shù)。#include<stdio.h>voidmain(){

intcount=0,t; for(inti=1;i<=200;i++) { for(intj=1;j<=i;j++) { if(i==j*j) { count++;

printf("%d\n",i); } } }

printf("%d個(gè)\n",count); }50.求解愛因斯坦數(shù)學(xué)題。有一條長(zhǎng)階梯,若每步跨2階,則最后剩1階。若每步跨3階,則最后剩2階,若每步跨5階,則最后剩4階,若每步跨6階則最后剩5階。直到每步跨7階,最后才一階不剩。請(qǐng)問這條階梯共有多少階?#include<stdio.h>voidmain(){ intn=1;while(!((n%2==1)&&(n%3==2)&&(n%5==4)&&(n%6==5)&&(n%7==0))) { n++; } printf("%d\n",n); }51.從鍵盤上輸入一個(gè)大于或等于1的正整數(shù)n,判斷它是否是素?cái)?shù)。n從鍵盤輸入。

#include<stdio.h>voidmain(){

intn;

scanf("%d",&n);

intj; for(j=2;j<n;j++) { if(n%j==0)break; } if(j>=n) {

printf("素?cái)?shù)\n"); } else {

printf("不是素?cái)?shù)\n"); }}52.編寫程序,當(dāng)用戶從鍵盤輸入公元年、月、日三個(gè)整數(shù)值(年份范圍為2001~2099),能夠計(jì)算該日是這一年的第幾天。(能被4整除,但不能被100整除是閏年;能被4整除,又能被400整除是閏年53.老鼠咬壞了帳本,式中符號(hào)□是被老鼠咬掉的地方。要恢復(fù)下面的等式,應(yīng)在2個(gè)□中分別填上一個(gè)數(shù)字,編程輸出這2個(gè)數(shù),2數(shù)間用逗號(hào)隔開,例如3,5。

3□×6237=□3×3564#include<stdio.h>voidmain(){

int

a,b; for(a=1;a<=9;a++) { for(b=1;b<=9;b++) {if((30+a)*6237==(b*10+3)*3564){

printf("%d,%d\n",a,b);} } } }54.輸入兩個(gè)正整數(shù)m和n,求它們的最大公約數(shù)和最小公倍數(shù)展轉(zhuǎn)相除法是古希臘求兩個(gè)正整數(shù)的最大公約數(shù)的也叫歐幾里德算法,用較大的數(shù)除以較小的數(shù),結(jié)果的余數(shù)和被除數(shù)構(gòu)成新的一對(duì)數(shù),繼續(xù)做上面的除法,直到大數(shù)被小數(shù)求盡,這個(gè)較小的數(shù)就是最大公約數(shù).以求288和123的最大公約數(shù)為例,操作如下:(288,123)--(42,123)--(42,39)--(3,39)則3就是他們的最大公約數(shù)。最小公倍數(shù)是兩個(gè)數(shù)的乘積除以兩個(gè)數(shù)的最大公約數(shù)。

55.輸入一行字符,分別統(tǒng)計(jì)出其中的英文字母、空格、數(shù)字和其他字符的個(gè)數(shù)56.編程求數(shù)學(xué)表達(dá)式的值

#include<stdio.h>voidmain(){

intn;longdoublesum=0;longdoublemul; for(n=1;n<=20;n++) {

mul=1; for(intm=1;m<=n;m++) {

mul*=m; } sum+=mul; }

printf("%lf\n",sum);}57.編程輸出以下圖案

*

***

*****

*******

*****

***

*58.一個(gè)長(zhǎng)度為L(zhǎng)米的材料,需要截成長(zhǎng)度為a米和b米的短材料,其中L,a,b從鍵盤上輸入,編程求解兩種短材料各截多少根時(shí),剩余的材料最少,輸出a,b的根數(shù),以及剩余材料的長(zhǎng)度。L,a,b均為正數(shù)。59.從鍵盤上輸入10個(gè)數(shù),逆序(與輸入順序相反)輸出此10個(gè)數(shù)。#include<stdio.h>voidmain(){

inta[10],i,j;

for(i=0;i<10;i++)

scanf("%d",&a[i]);

for(j=10;j>0;j--)

printf("%d",a[j-1]);

printf("\n");}60.從鍵盤上輸入10個(gè)數(shù),計(jì)算均值,輸出其中小于均值的數(shù)。#include<stdio.h>voidmain(){

inta[10],i,j,s=0;

for(i=0;i<10;i++) {

scanf("%d",&a[i]); s+=a[i]; } floataverage=1.0*s/10;

for(j=0;j<10;j++) { if(a[j]<average) {

printf("%d",a[j]); } }

printf("\n");}61.從鍵盤上輸入10個(gè)數(shù),置于數(shù)組中,交換數(shù)組第一個(gè)位置和最后一個(gè)位置上的數(shù),輸出交換后的數(shù)組。#include<stdio.h>voidmain(){

inta[10],i,j,t;

for(i=0;i<10;i++) {

scanf("%d",&a[i]); } t=a[0];a[0]=a[9];a[9]=t;

for(j=0;j<10;j++) {

printf("%d",a[j]); }

printf("\n");}

62.從鍵盤上分別輸入2個(gè)數(shù)的集合,每集合10個(gè)數(shù),輸出交集。按照第一個(gè)集合的數(shù)的順序輸出。63.編程輸出n到2012年間的所有閏年,每5個(gè)一行,n從鍵盤上輸入。(四年一閏,百年不閏,四百年閏)#include<stdio.h>voidmain(){inti,j=0,a;scanf("%d",&a);for(i=a;i<=2012;i++){if(((i%4==0)&&(i%100!=0))||(i%400==0)){printf("%d",i);j++;if(j%5==0)printf("\n");}}printf("\n");}

64.已知奇數(shù)集合A為{1,3,5,9,11,13,15,19,23,25},從鍵盤上輸入一個(gè)自然數(shù)n,若n在集合A中,則輸出n在A中的位置,否則輸出“無此數(shù)”。65.F0=0,F(xiàn)1=1,F(xiàn)n=F(n-1)+F(n-2)(n>=2),要求用一維數(shù)組實(shí)現(xiàn)輸出斐波那契數(shù)列的前n項(xiàng),每行輸出4個(gè)數(shù),n通過鍵盤輸入。

66.已有一個(gè)數(shù)組{1,2,3,4,6,9,12,23,45},現(xiàn)輸入一個(gè)數(shù),查找數(shù)組中是否有這個(gè)數(shù),如果有,把這個(gè)元素刪除掉并分別輸出刪除前和刪除后的數(shù)組元素。67.在按大小排列的有序數(shù)列{1,2,3,4,6,9,12,23,45}中插入任意一個(gè)值(從鍵盤輸入),使其仍然有序,然后輸出。68.21個(gè)人圍成一個(gè)圈,編號(hào)一次為1—21,從第1號(hào)開始報(bào)數(shù),報(bào)到

n的倍數(shù)的人退出,一直報(bào)下去,直到剩下1人,求出此人的編號(hào)(n鍵盤輸入)。69.輸入10個(gè)整數(shù)用選擇排序法將它們按照升序排列好70.用插入排序法對(duì)10個(gè)數(shù)進(jìn)行降序排列#include<stdio.h>voidmain(){

溫馨提示

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