版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
103f
程序11
題目:有1、2、3、4個(gè)數(shù)字,能組成多少個(gè)互不一樣且無(wú)重復(fù)數(shù)字的三位數(shù)?都是多少。
1.程儕分析:可填在百位、十位、個(gè)位的數(shù)字都是1、2、3、4。組成所有的排列后再去
拽不滿足條件的1?列。
2.程序源代碼:
main()
{
inti,j,k;
printf('\n');
for(i=1;i<5;i++)/*以下為三重—環(huán)*/
for(j=1;j<5;j++)
for(k=1;k<5;k++)
]
if(i!=k&&i!=j&&j!=k)/*隨保i、j、k三位互不一樣"/
printf("%d,%d,%d\n",i,j,k);
【程序2】
題目:企業(yè)發(fā)放的獎(jiǎng)金根據(jù)利洞提成。利洞(I)低于或等于10萬(wàn)元時(shí),獎(jiǎng)金可提10%;利可高
于10萬(wàn)元,低于20萬(wàn)元時(shí),低于10萬(wàn)元的局部按10%攝成,高于10JJ元的局部,可可提
成7.5%;20萬(wàn)到40。之間時(shí),高于20萬(wàn)元的局部,可提成5%;40萬(wàn)到60萬(wàn)之間時(shí)高于
40萬(wàn)元的局部,可提成3%;60月到100月之間時(shí),高于60萬(wàn)元的局部,可提成1.5%,高
于
100萬(wàn)元時(shí),超過(guò)100萬(wàn)元的局部技1%提成,從譙盤輸入當(dāng)月利潤(rùn)I,求應(yīng)發(fā)放獎(jiǎng)金總責(zé)?
1.程容分析:請(qǐng)利用數(shù)釉來(lái)分界,定位。注意定義時(shí)需把獎(jiǎng)金定義成長(zhǎng)整必
2.程序源代碼:
main()
{
longinti;
intbonusl,bonus2tbonus4,bcnus6,bonus10,bonus;
scanf('%ld',&i);
bonus1=100000*0.1;bonus2=bonus1+100000*0.75;
bonus4=bonus2+200000*0.5:
bonus6=bonus4+200000*0.3;
bonusl0=bonus6+400000*0.15;
if(i<=100000)
bonus=i*0.1;
elseif(i<=200000)
bonus=bonus1+(i-100000)*0.075;
elseif(i<=400000)
bonus=bonus2+(i-200000)*0.05;
elseif(i<=600000)
bonus=bonus4+(i-400000)*0.03;
elseif(i<=1000000)
bonus=bonus6+(i-600000)*0.015;
else
bonus=bonus10+(i-1000000)*0.01;
printf("bonus=%d",bonus);
【程序3】
題目:一個(gè)整數(shù),它加上100后是一個(gè)完全平方數(shù),再加上168又是一個(gè)完全平方數(shù),靖問(wèn)該
數(shù)是多少?
1.程序分析:在10月以內(nèi)判斷,先將垓數(shù)加上100后再開(kāi)方,再將族數(shù)加上268后再千方,
如果開(kāi)方后
的結(jié)果滿足如下條件,即是結(jié)果。背看具體分析:
2.程序源代碼:
include"math,h*
main()
{
longinti,x,y,z;
for(i=1;i<100000;i++)
{x=sqrt(i+100);/*x為加上100后開(kāi)方后的結(jié)果*/
y=sqrt(i+268);/*y為再加上168后開(kāi)方后的結(jié)果*/
if(x*x==i+100&&y*y==i+268)/*如果一個(gè)數(shù)的平方根的平方等于該數(shù),這說(shuō)明此數(shù)是完全平方數(shù)
*/
printf(,\n%ld\n",i);
【程序4】
胞目:輸入某年某月某日,列明這一天是這一年的第幾天?
1.程序分析:儀3月5日為例,?該先把前兩個(gè)月的加起來(lái),然后再加上5天即本年的第幾
天,特殊
情次,閏年且輸入月份大于3時(shí)需考慮多加一天。
2程序源代眄:
main()
(
intday,month,year,sum,leap;
printf('\npleaseinputyear,month,day\n");
scanf("%d,%d,%d",&year,&month,&day);
switch(month)/*先計(jì)算某月以前月份的總天數(shù)*/
case1:sum=0;break;
case2:sum=31;break;
case3:sum=59;break;
case4:sum=90;break;
case5:sum=120;break;
case6:sum=151;break;
case7:sum=181;break;
case8:sum=212;break;
case9:sum=243;break;
case10:sum=273;break;
case11:sum=304;break;
case12:sum=334;break;
default:printf("dataerror");break;
}
sum=sum+day;/*再加上某天的天數(shù)*/
if(year%400==0||(year%4==0&&year%100!=0))/*利斷是不是閏年*/
leap=1;
else
leap=0;
if(leap==1&&month>2)/*如果是國(guó)年且月份大于2,總天數(shù)應(yīng)送加一天*/
sum++;
printf("ltisthe%dthday.",sum);)
【程序5】
題目:輸入三個(gè)整數(shù)x,y,z,請(qǐng)把這三個(gè)數(shù)由小到大輸出。
1.程序分析:我們想方法把最小的數(shù)放到x上,先揩x與yiJ展比執(zhí),如果x>y那么將x與y
的值進(jìn)展交換,
然后再用x與z進(jìn)展比機(jī),如果x>z那么將x與z的值也限交換,這樣能使x最小。
2程序源代碼:
main()
{
intx,y,z,t;
scanf("%d%d%d',&x,&y,&z);
if(x>y)
{t=x;x=y:y=t;}/*交模x.v的值*/
if(x>z)
{t=z;z=x;x=t;}/*交換x,z的值,/
if(y>z)
{t=y;y=z;z=t;}/*交換z.y的fi7
printf("smalltobig:%d%d%d\n",x,y,z);
【程序6】
題目:用*號(hào)輸出字母C的圖案。
1.程序分析:可先?
103f
?*’號(hào)在紙上寫出字母G再分行輸出。
2.程序源代碼:
include"stdio.hr
main()
{
printf("HelloC-worldiXn");
printfC'****^");
printf("*\n");
printfC*\n");
printf("****\n");
[Bff7]
題目:輸出特殊圖案,請(qǐng)?jiān)赾環(huán)境中運(yùn)行,看一看,VeryBeautiful!
1.程序分析:字符共有256個(gè)。不同字符,圖形不一樣。
2.程序源代碼:
include"stdio.h"
main()
{
chara=176,b=219;
printf("%c%c%c%c%c\n',b,a,a,a,b);
printf("%c%c%c%c%c\n',a,b,a,b,a);
printf("%c%c%c%c%c\n',a,a,b,a,a);
printf("%c%c%c%c%c\n',a,b,a,b,a);
printf("%c%c%c%c%c\n',b,a1a,a,b);}
【程序8】
題目:榆出9*9口抉。
1.程序分折:分行與列考慮,共9行9列,i控制行,j控制列。
2程仲源代碼:
include"stdio.h"
main()
intij,result;
printf('\n");
for(i=1;i<10;i++)
{for(j=1;j<10;j++)
(
result=i*j;
printf("%d*%d=%-3d",i,i,resjlt);/*-3d表示左對(duì)齊,占3位*/
}
printf('\n");Z*每一行后換行7
【程序9】
題目:要求輸出國(guó)麻象棋核盤。
1.用齊分析:用i控制行,j來(lái)控制列,根據(jù)i+j的和的變仇來(lái)控制輸出黑方格,I是白方格。
2.程序源代碼:
include"stdio.h'
main()
{
inti,j;
for(i=0;i<8;i++)
(
for(j=0;j<8;j++)
jf((i+j)%2==0)
printf("%c%c',219,219);
else
printf("");
printfC^");
【程序10]
題目:打印樓隊(duì)同時(shí)在1tm方打印兩個(gè)笑臉。
1.用齊分析:用i控制行,j來(lái)控制列,j根據(jù)i的變化來(lái)控制輸出黑方格的個(gè)數(shù)。
2.程序源代碼:
include"stdio.h'
main()
{
intij;
0而叱\1\1\俏:〃輸出兩個(gè)笑臉*/
for(i=1;i<11;i++)
(
for(j=1;j<=i;j++)
printf("%c%c",219,219);
printfCrf);
【程序11]
四目:古典呵堰:有一對(duì)兔于,從出生后第3個(gè)月起回個(gè)月那生一對(duì)兔子,小兔子長(zhǎng)到第三個(gè)
月
后每個(gè)月又生一對(duì)兔子,IR設(shè)兔子都不死,問(wèn)每個(gè)月的兔子總數(shù)為多少?
1.程序分析:兔子的規(guī)律為教列1,1,2,3,5,8,13,21....
2.程序源代碼:
main()
{
longf1,f2;
inti;
f1=f2=1;
for(i=1;i<=20;i++)
{printf("%12ld%12ld",f1,f2);
if(i%2==0)printf("\n");/*控制輸出,每行四個(gè)*/
西兩個(gè)月加起未賦值給第三個(gè)月*/
f2=f1+。/*前兩個(gè)月加起來(lái)城值給第三個(gè)HV
【程序12]
題目:判斷101-200之間有多少個(gè)素?cái)?shù),并輸出所有素?cái)?shù)。
1.程序分析:利斷素?cái)?shù)的方法:用一個(gè)數(shù)分別去除2到sqrt(這個(gè)數(shù)),如果能被整除,
那么說(shuō)明此數(shù)不是素?cái)?shù),反之是素?cái)?shù)。
2.程畀源代碼:
★include"math.h'
main()
{
intm,i,k,h=0,leap=1;
printf('\n");
for(m=101;m<=200;m++)
{k=sqrt(m+1);
for(i=2;i<=k;i++)
if(m%i==0)
{leap=O:break;}
if(leap){printfC%-4d"1m);h++;
if(h%10==0)
printf('\n");
leap=1;
printf('\nThetotalis%d",h);
【程序13]
題目:打印出所有的“水仙花數(shù)",所謂"水仙花數(shù)”是指一個(gè)三位數(shù),其各位數(shù)字立方和等
于族數(shù)
本身。例如:153是一個(gè)“水仙花數(shù)",gift153=1的三代方+5的三次方+3曲三次方。
1.程序分析:利用forSB環(huán)控制100-999個(gè)數(shù),每個(gè)數(shù)分解出個(gè)位,十位,百位。
2.程序源代碼:
main()
(
inti,j,k,n;
printf('"waterflower'numberis:");
for(n=100;n<1000;n++)
{
i=n/100;/*分解出百位*/
j=n/10%10;/*分解出十位*/
k=n%10;/“分解出個(gè)位“/
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
{
printf("%-5d",n);
printf('\n");
【程序14]
服目:招一個(gè)正整數(shù)分解質(zhì)因數(shù)。例如:輸入90,打印出90=2*3*3*5。
程序分析:對(duì)nil展分解質(zhì)因數(shù),應(yīng)先找到一個(gè)反小的質(zhì)數(shù)k,然后板下述步驟完質(zhì):
(1)如果這個(gè)質(zhì)數(shù)恰等于n,那么說(shuō)明分解質(zhì)因數(shù)的過(guò)程已經(jīng)完畢,打印出即可。
⑵如果nek,但n能被k整除,那么應(yīng)打印出k的值,并用n除以k的商,作為新的正整數(shù)你
n,
重復(fù)執(zhí)行第一步。
⑶如果n不能被k整除,那么用k+1作為k的值,重復(fù)執(zhí)行第一步。
2.程序源代碼:
/*
103f
zhengintisdividedyinshu*/
main()
intn,i;
printf('\npleaseinputanumber:\n");
scanf("%d",&n);
printf("%d=',n);
for(i=2;i<=n;i++)
(
while(n!=i)
(
if(n%i==O)
{printf("%d*",i);
n=n/i;
}
else
break;
}
}
printf("%du,n);}
【程序15]
堰目:勺用條件運(yùn)算符的冊(cè)套來(lái)完成此服:學(xué)習(xí)成績(jī)>=90分的同學(xué)用A表示,60-89介之間的
用B表示,
60分以下的用C表示。
1.程序分析:(a>b)?a:b這是條件運(yùn)算符的根本例子。
2.程序源代碼:
main()
{
intscore;
chargrade;
printf("pleaseinputascore\n');
scanf("%d",&score);
grade=score>=90?,A':(score>=60?1B':'C,);
printf("%dbelongsto%c',score,grade);
【程序16]
S!目:輸入兩個(gè)正整數(shù)m?ln,求其最大公蚪數(shù)和最小公倍數(shù)。
1.程序分析:利用熊除法。
2.程序源代碼:
main()
inta,b,num1,num2,temp;
printf("pleaseinputtwonumbers:\n");
scanf("%d,%d',&num1,&num2);
if(num1{temp=num1;
num1=num2;
num2=temp;
a=num1;b=num2;
while(b!=0)/*利用根除法,直到b為。為止*/
temp=a%b;
a=b;
b=temp;
printf("gongyueshu:%d\n",a);
printf("gongbeishu:%d\n",numrnum2/a);
【程序17]
題目:輸入一行字符,分前獲計(jì)出其中英文字母、空格、數(shù)字和其它字符的個(gè)數(shù)。
1.程序分析:利用while話句,條件為輸入的字符不為
2.程序源代碼:
include"stdio.h'
main()
{charc;
intletters=0,space=0,digit=0,others=0;
printf("pleaseinputsomecharacters\n");
while((c=getchar())!='\n')
(
if(c>='a,&&c<=,z,||c>="A,&&c<=,Z')
letters++;
elseif(c=='')
space++;
elseif(c>='01&&c<=,9,)
digit++;
else
others++;
)
printt("allinall:char=%dspace=%ddigit=%dothers=%d\n",letters,
space,digit,others);
【程序18]
題目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一個(gè)數(shù)字°例如2+22+222+2222+22222(此時(shí)
共有5個(gè)數(shù)相加),幾個(gè)翻加有解盤控制。
1.程序分析:關(guān)健是計(jì)算出每一項(xiàng)的值。
2.程序源代碼:
main()
{
inta,n,count=1;
longintsn=O,tn=O;
printf("pleaseinputaandn\n');
scanf("%d,%d,,&a,&n);
printf("a=%d,n=%d\n',a,n);
while(count<=n)
I
tn=tn+a;
sn=sn+tn;
a=a*10;
++count;
}
printf("a+aa+...=%ld\n",sn);
[flIf19]
題目:一個(gè)數(shù)如果恰好等于它的因子之和,這個(gè)數(shù)就稱為“完數(shù)"°例如6=1+2+3.編程
找出1000以內(nèi)的所有完數(shù)。
1.程序分析:請(qǐng)參照程序<--上頁(yè)程仔14.
2.程序源代碼:
main()
{
staticintk[10];
inti,j,n,s;
for(j=2;j<1000;j++)
(
n=-1;
s=j;
for(i=1;i{
if((j%i)==O)
{n++;
s=s-i;
k[n]=i;
1
if(s==O)
I
printf("%disawanshu",j);
for(i=0;iprintf("%d;,k[i]);
printf("%d\n",k[n]);
【程序20]
題目:一球以100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在
第10次落地時(shí),共經(jīng)過(guò)多少米?第10次反彈多高?
1.程序分析:見(jiàn)下面注群
2.程序源代碼:
main()
{
floatsn=100.0,hn=sn/2;
intn;
for(n=2;n<=10;n++)
{
sn=sn+2*hn;/*第n次落地111共經(jīng)過(guò)的米數(shù)*/
hn=hn/2;/*第n次反跳高度*/
}
printf("thetotalofroadis%f\n",sn);
printf("thetenthis%fmeter\n",hn);
}
【程序21]
題目:推鉞快問(wèn)題:猴子第一天病下假設(shè)干個(gè)機(jī)丸當(dāng)即吃了一半,還不想,又多吃了一個(gè)
第二天早上又將制下的桃子吃抻一半,Q多吃了一個(gè)。以后每天早上都吃了前一天制下
的一半零一個(gè)。到第10天早上耙再吃時(shí),見(jiàn)只制下一個(gè)機(jī)子了。求第一天共箱了多少Q(mào)
1.程序分析:采取逆向思維的方法,從后往前推斷。
2.程序源代碼:
main()
(
intdav,x1,x2;
day=9;
x2=1;
while(day>0)
(x1=(x2+1)*2;/*第一天的桃子數(shù)是第2天快子數(shù)加1后的2倍*/
x2=x1;
day—;
printf("thetotalis%d\n",x1);
103f
【程序22]
題目:兩個(gè)乒乓球隊(duì)進(jìn)展比賽,各出三人。甲隊(duì)為a,b,c三人,乙以為x,y,z三人。已抽等決定
比賽。有人向隊(duì)員打聽(tīng)比賽的。a說(shuō)他不fflx比,c說(shuō)他不和x,z比,請(qǐng)編程序找出
三隊(duì)賽手的。
1.程序分析:制斷素?cái)?shù)的方法:用一個(gè)數(shù)分別去除2到sqrt(這個(gè)數(shù)),如果能被整除,
那么說(shuō)明此數(shù)不是素?cái)?shù),反之是素藐
2.程序源代碼:
main()
{
chari,j,k;/*i是a的對(duì)手,j是b的對(duì)手,k是c的對(duì)手*/
for(i=,x';i<='z,;i++)
for(j=x;j<=,z';j++)
(
if(i!=j)
for(k=,x';k<='z';k++)
{if(i!=k&&j!=k)
{if(i!='x'&&k!='x,&&k!=1z,)
printf("orderisa—%c\tb—%c\tc—%c\n",i,j,k);
[程序23]
堰目:打印出如以下圖案〔菱形〕
1.程儕分析:先把圖形分成兩局部來(lái)對(duì)待,前四行一個(gè)規(guī)律,后三行一個(gè)規(guī)律,利用雙重
forS3,第一層控制行,第二層控制列。
2.程仲源代碼:
main()
{
inti,j.k;
for(i=0;i<=3;i++)
(
for(j=0;j<=2-i;j++)
printfC");
for(k=0;k<=2*i;k++)
printfC'*');
printfC^");
}
for(i=0;i<=2;i++)
(
for(j=0;j<=i;j++)
printfCM);
for(k=0;k<=4-2*i;k++)
printfC'*');
printf('\n");
【程序24]
題目:有一分?jǐn)?shù)序列:2/1,3/2,5/3,8/5,13/8,21/13…求出這個(gè)數(shù)則的前20項(xiàng)之和。
1.程序分析:請(qǐng)抓住分子與分母的變化規(guī)律。
2.程序源代碼:
main()
{
intn,t,number=20;
floata=2,b=1,s=0;
for(n=1;n<=number;n++)
]
s=s+a/b;
t=a;a=a+b;b=t;/*這同部是程序的關(guān)堤,請(qǐng)讀者猜情t的作用*/
}
printf("sumis%9.6f\n',s);
【程序25]
題目:求1+2!+3!+...+20!的和
1.程序分折:此程序只是把累加變成了累來(lái)。
2.程序源代碼:
main()
(
floatn,s=O,t=1;
for(n=1;n<=20;n++)
]
t*=n;
s+=t;
}
printf("1+2!+3L..+20!=%e\n',s);
)
[程序26]
題目:利用遞歸方法求5!。
1.程序分析:遞歸公式:fn=fn_1*4!
2.程序源代碼:
include"stdio.h"
main()
(
inti;
intfact();
for(i=0;i<5;i++)
printf(,\40:%d!=%d\n",i,fact(i));
)
intfact(j)
intj;
(
intsum;
if(j==O)
sum=1;
else
sum=j*fact(j-1);
returnsum;
【程序27]
題目:利用遞歸出物調(diào)用方式,將所輸入的5個(gè)字符,口反觸序打印出來(lái)。
1.程序分析:
2.程序源代碼:
include"stdio.h'
main()
inti=5;
voidpalin(intn);
printf("\40:");
palin(i);
printf('\n*);
)
voidpalin(n)
intn;
(
charnext;
if(n<=1)
(
next=getchar();
printfCW:");
putchar(next);
)
else
(
next=getchar();
palin(n-l);
putchar(next);
【程序28]
題目:行5個(gè)大坐在一起,問(wèn)第五個(gè)入多少歲?他說(shuō)比第4個(gè)大大2歲。問(wèn)第4個(gè)人歲我,他
說(shuō)比第
3個(gè)人大2歲。問(wèn)第三個(gè)人,又說(shuō)比第2人大兩歲。問(wèn)第2個(gè)人,說(shuō)比第一個(gè)人大兩歲。最后
同第一個(gè)人,他說(shuō)是10歲。請(qǐng)問(wèn)第五個(gè)人名大?
1.程序分折:利用遞歸的方法,遞舊分為回推和遞推兩個(gè)階段。要想知道第五個(gè)人歲數(shù),需知
道
第四人的歲虬依次類推,推到第一人〔10歲〕,fif108o
2.程序源代碼:
age(n)
intn;
{
intc;
if(n==1)c=10;
elsec=age(n-1)+2;
return(c);
main()
(printfC%d",age(5));
[gff29]
題目:給一個(gè)不多于5位的正整數(shù),要求:一、求它是幾位數(shù),二、逆齊打印出各位數(shù)字。
1.程序分析:學(xué)會(huì)分解出每一位數(shù),如下解釋:(這里是一種簡(jiǎn)單的算法,斷專數(shù)002M趙鑫
攝供)
2.程序源代碼:
main()
{
longa,b,c,d,e,x;
scanf('%ld',&x);
a=x/10000;/*分解出萬(wàn)位*/
b=x%10000/1000;/*分解出千位*/
c=x%1000/100;/*分解出百隹*/
d=x%100/10;/*分解出十位*/
e=x%10;/*介解出個(gè)位*/
,
if(a!=0)printf('thereare5,%ld%ld%ld%ld%ld\n,e)d,c,b,a);
elseif(b!=0)printfCthereare4,%ld%ld%ld%ld\n',e,d,c,b);
elseif(c!=0)printf("thereare3,%ld%ld%ld\n",e,d,c);
elseif(d!=0)printfCthereare2,%ld%ld\n",e,d);
elseif(e!=0)printf("thereare1,%ld\n",e);
103f
【程序30]
題目:一個(gè)5位數(shù),判斷它是不是回文數(shù)。HI12321是回文數(shù),個(gè)位與Jj位一樣,十位與千位
一樣。
1.程序分析:同29例
2.程序源代碼:
main()
{
longge,shi,qian,wan,x;
scanf('%ld',&x);
wan=x/10000;
qian=x%10000/1000;
shi=x%100/10:
ge=x%10;
if(ge==wan&&shi==qian)/*個(gè)位等于萬(wàn)位并且十位等于千位,/
printf("thisnumberisahuiwen\n");
else
printf("thisnumberisnotahuiwen\n');
[gff31]
題目:靖輸入星期JI的第一個(gè)字母來(lái)判斷一下是星期JI,如果第一個(gè)字母一樣,那么券續(xù)
判斷第二個(gè)字母。
1.程序分析:用情況諾句比}fl好,如果第一個(gè)字母一樣,用么判斷用情況培句或if晤句切Bi第
二個(gè)字母。
2.程序源代碼:
include<stdio.h>
voidmain()
{
charletter;
printf("pleaseinputthefirstle^erofsomeday\n");
while((letter=getch())!=<Y1)/*當(dāng)所按字母為Y時(shí)才完畢*/
{switch(letter)
{case'S':pnntfCpleaseinputsecondletter\n");
if((letter=getch())==,a')
printf("saturday\n");
elseif((letter=getch())=='u)
printf("sunday\n');
elseprintf("dataerror\n');
break;
case,F,:printf("friday\n");break;
case,M':printf("monday\n");break;
case'T':printf("pleaseinputsecondletter\n");
if{(letter=getch())==,u,)
printf("tuesday\n");
elseif((letter=getch())=='h')
printf(',thursday\n'');
elseprintf("dataerror\n');
break;
caseW:p「intf("wednesday\n");break;
default:printf("dataerror\n");
【程序32]
題目:Pressanykeytochangecolor,doyouwanttotryit.Pleasehurryup!
1.程序分析:
2.程序源代碼:
include<conio.h>
voidmain(void)
(
intcolor;
for(color=0;color<8;color++)
]
textbackg「ound(colo「);/*設(shè)置文本的背景前色*/
cprintf("Thisiscolor%d\r\n",color);
cprintf("Pressanykeytocon1inue\r\n");
getch();/*輸入字符看不見(jiàn)*/
}
【程齊33】
題目:學(xué)習(xí)gotoxy()與clrsc「()函數(shù)
1.程序分析:
2.程序源代碼:
include<conio.h>
voidmain(void)
(
cl「scr();/*清屏出數(shù)*/
textbackground(2);
gotoxy(1,5);/*定位函數(shù)*/
cprintf("Outputatrow5column1\n");
textbackground(3);
gotoxy(20,10);
cprintf("Outputatrow10column20\n");
【程Jf34】
題目:練習(xí)函數(shù)調(diào)用
1.程序分析:
2.程序源代碼:
include<stdio.h>
voidhello_world(void)
{
printf("Hello,world!\n");
)
voidthree_hellos(void)
(
intcounter;
for(counter=1;counter<=3;counter++)
hello_world();/*調(diào)用此函教*/
voidmain(void)
three_hellos();/*調(diào)用此函數(shù)*/
【程序35]
堰目:文本隨色設(shè)置
1.程序分析:
2.程序源代碼:
include<conio.h>
voidmain(void)
I
intcolor;
for(color=1;color<16;color++)
(
textcolor(color);/*設(shè)置文本顏色*/
cprintf("Thisiscolor%d\r\n",color);
}
textcolor(128+15);
cprintf("ThisisblinkingW);
[flIf36]
題目:求100之內(nèi)的素?cái)?shù)
1.程序分析:
2.程畀源代碼:
#include<stdio.h>
include"math.h'
#defineN101
main()
{
inti,j,line,a[N];
for(i=2;i<N;i++)a[i]=i;
for(i=2;i<sqrt(N);i++)
for(j=i+1;j<N;j++)
{
if(a[i]!=O&&a[j]!=O)
if(a[j]%a[i]==O)
a[j]=O;}
printf('\n');
for(i=2,line=0;i<N;i++)
if(a[i]!=O)
|printfC%5d",a[i]);
line++;>
if(line==10)
(printfC\n");
line=O;}
【程序37]
題目:對(duì)目個(gè)敷進(jìn)展排序
1.程序分析:可以利用選擇法,即從后9個(gè)比版過(guò)程中,起擇一個(gè)最小的與第一個(gè)元素交換,
下次類推,即用第二個(gè)元素與后8個(gè)進(jìn)展比按,并進(jìn)展交概。
2.程序源代碼:
#defineN10
main()
(inti,j,min,tem,a[N];
/"inputdata*/
printf("pleaseinputtennum:\n');
for(i=0;i<N;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);}
printf('\n');
103f
for(i=0;i<N;i++)
printf("%5d',a[i]);
printf('\n");
/*sorttennum*/
for(i=0;i<N-1;i++)
{min=i;
for(j=i+1;j<N;j++)
if(a[min]>a[j])min=j;
tem=a[i];
afi]=afminl;
a[min]=tem;
"outputdata*/
printf("Aftersorted\n');
for(i=0;i<N;i++)
printf("%5d",a[i]);
[程序38]
服目:求一個(gè)3?3犯陣對(duì)角線元素之和
1.程序分析:利用雙重fo「箱訃控制揄人二維數(shù)組,再將累加后輸出。
2.程序源代碼:
main()
{
floata[3][3],sum=0;
inti,j;
printf("pleaseinputrectangleelement:\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%r,&a[i][j]);
for(i=0;i<3;i++)
sum=sum+a[i][i];
printt("duijiaoxianheis%6.2f',sum);
【程正39】
題目:有一個(gè)已經(jīng)排好序的數(shù)機(jī)現(xiàn)輸入一個(gè)數(shù),要求我原來(lái)的規(guī)律將它插人數(shù)為中。
1.程序分析:首先判斷此數(shù)是否大于6!后一個(gè)數(shù),然后再考慮插入中間的數(shù)的情況,插入后
此元素之后的數(shù),依次后核一個(gè)位置。
2.程序源代碼:
main()
{
inta[11]={1J,6,9,13,16,19,28,40,100};
inttempi,temp2,number,end,i,j;
printf("originalarrayis:\n");
for(i=0;i<10;i++)
printf("%5d",a[i]);
printf('\n");
printf("insertanewnumber:"):
scanf("%d"!&number);
end=a[9];
if(number>end)
a[10]=number;
else
(for(i=0;i<10;i++)
{if(a[i]>number)
{tempi=a[i];
a[i]=number;
for(j=i+1;j<11;j++)
Itemp2=a[j];
a昨tempi;
tempi=temp2;
I
break;
)
for(i=0;i<11;i++)
printf("%6d",a[i]);
【程序40]
題目:鬲一個(gè)數(shù)組逆序輸出。
1.程序分析:用第一個(gè)與最后一個(gè)交換。
2.程序源代碼:
#defineN5
main()
{inta[N]={9,6,5,4,1),i,temp;
printf('\noriginalarray:\n");
for(i=0;i<N;i++)
printf("%4d",a[i]);
for(i=0;i<N/2;i++)
{temp=a[i];
a[i]=a[N-i-1];
a[N-i-1]=temp;
}
printf('\nsortedarray:\n");
for(i=0;i<N;i++)
printf("%4d",a[i]);
【程序41]
題目:學(xué)習(xí)static定義靜態(tài)變量的用法
1.程序分析:
2.程序源代碼:
include"stdio.h'
varfuncO
intvar=0;
staticintstatic_var=O;
printf("\40:varequal%d\n",var);
printf(*\40:staticvarequal%d\n*,static_var);
printf('\n");
var++;
static_var++;
)
voidmain()
{inti;
for(i=0;i<3;i++)
varfuncO;
【程序42]
題目:學(xué)習(xí)使用auto定義變量的用法
1.程序分析:
2.程序源代碼:
include"stdio.h"
main()
{inti,num;
num=2;
for(i=0;i<3;i++)
{print1('\40:Thenumequal%d\n"tnum);
num++;
(
autointnum=1;
printf('\40:Theinternalblocknumequal%d\n",num);
num++;
【程序43]
題目:學(xué)習(xí)使用static的另一用法。
1.程序分折:
2.程仲源代碼:
include"stdio.h"
main()
(
inti,num;
num=2;
for(i=0;i<3;i++)
printf("\40:Thenumequal%d\n",num);
num++;
{
staticintnum=1;
printf('\40:Theinternalblocknumequal%d\n",num);
num++;
I
I
)
[程序44]
題目:學(xué)習(xí)使用external的用法°
1.程序分析:
2.程序源代碼:
include"stdio.h"
inta,b,c;
voidadd()
(inta;
a=3;
c=a+b;
}
voidmain()
{a=b=4;
add();
printf("Thevalueofcisequalto%d\n",c);
【程序45]
題目:學(xué)習(xí)使用「egiste「定義變量的方法。
1.程年分析:
2.程序源代碼:
voidmain()
(
registerinti;
inttmp=0;
for(i=1;i<=100;i++)
tmp+=i;
printf("Thesumis%d\n",tmp);
【程序46]
題目:$#define命令練習(xí)⑴
[程序分析:
2.程俘源代眄:
include"stdio.h'
#defineTRUE1
#defineFALSE0
#defineSQ(x)(x)*(x)
voidmain()
{
intnum;
intagain=1;
printf('\40:Programwillstopifinputvaluelessthan5O.\n");
while(again)
{
printf('\40:Pleaseinputnumber==>');
scanfC%d",&num);
printf('\40:Thesquareforthisnumberis%d\n",SQ(num));
if(num>=50)
again=
103f
TRUE;
else
again=FALSE;
[gif47]
題目:$#define命令練習(xí)⑵
1.程序分析:
2.程序源代碼:
include"stdio.h"
defineexchange(a,b){\/*宏定義中允許包含兩jfi衣裳命令的情柩,此時(shí)必須在最右邊加上、*/
intt;\
t=a;\
a=b;\
b=t;\
)
voidmain(void)
intx=10;
inty=20;
printf("x=%d;y=%d\n',x,y);
exchange(x.y);
printf("x=%d:y=%d\n',x,y);
【程序48】
題目:$#define命令練習(xí)⑶
[程仲分析:
2.程序源代碼:
#defineLAG>
#defineSMA<
#defineEQ==
include"stdio.hr
voidmain()
linti=1O;
intj=20;
if(iLAGj)
printf('\40:%dlargerthan%c\n",i,j);
elseif(iEQj)
printf(A40:%dequalto%d\n*,i,j);
elseif(iSMAj)
printf('\40:%dsmallerthan%d\n",ij);
else
printf('\40:Nosuchvalue.\n");
【程序49]
題目:#if#ifdeffll#ifndef的綜合應(yīng)用。
1.程序分析:
2程序源代碼:
include"stdio.h"
#defineMAX
#defineMAXIMUM(x,y)(x>y)?x:y
#defineMINIMUM(x,y)(x>y)?y:x
voidmain()
linta=10,b=20;
#ifdefMAX
printf('\40:Thelaraeroneis%d\n",MAXIMUM(a,b));
#else
printf('\40:Theloweroneis%d\n",MINIMUM(a,b));
#endif
#ifndefMIN
printf("\40:Theloweroneis%d\n",MINIMUM(a,b));
#else
printf("\40:Thelargeroneis%d\n",MAXIMUM(a,b));
#endif
#undefMAX
#ifdefMAX
printf("\40:Thelargeroneis%d\n",MAXIMUM(a,b));
#else
printf('\40:Theloweroneis%d\n",MINIMUM(a,b));
#endif
#defineMIN
#ifndefMIN
printf('\40:Theloweroneis%d\n",MINIMUMS,b));
#else
printf('\40:Thelargeroneis%d\n",MAXIMUM(a,b));
#endif
【程序50]
題目:include的應(yīng)用練習(xí)
[程將分析:
2.程序源代碼:
test.h文件如下:
#defineLAG>
#defineSMA<
#defineEQ==
include"test.h"/*一個(gè)新文件5O.c,包含test.h*/
include"stdio.h'
voidmain()
{inti=10;
intj=20;
if(iLAGj)
printt('\40:%dlargerthan%c
elseif(iEQj)
printf('\40:%dequalto%d\n',i,j);
elseif(iSMAj)
printf("\40:%dsmallerthan%d\n",i,j);
else
printf('\40:NosuchvalueAn");
【程序51]
題目:學(xué)習(xí)使用按位與&。
1.程序分析:0&0=0;0&1=0:1&0=0;1&1=1
2.程序源代碼:
include"stdio.h"
main()
{
inta,b;
a=077;
b=a&3;
printf('\40:Thea&b(decimal)is%d\n",b);
b&=7;
printf("\40:Thea&b(decimal)is%d\n",b);
[iff52]
題目:學(xué)習(xí)使用報(bào)位或I。
1.程序分析:0|0=0;0|1=1;110=1;1|1=1
2.程序源代碼:
include"stdio.h"
main()
(
inta,b;
a=077;
b=a|3;
printf('\40:Thea&b(decimal)is%d\n",b);
b|=7;
printf('\40:Thea&b(decimal)is%d\n",b);
【程序53]
題目:學(xué)習(xí)使用技位異或、
1.用齊分析:o^o=o;o*i=i;ro=i;ri=o
2.程序源代碼:
include"stdio.h*
main()
{
inta.b;
a=077;
b=a〃3;
printf('\40:Thea&b(decimal)is%d\n",b);
bN7;
printf("\40:Thea&b(decimal)is%d\n",b);
[6If54]
題目:取一個(gè)整數(shù)a川百喈開(kāi)場(chǎng)的4~7位。
程序分析:可以這樣考慮:
(1)先便a右移4位。
⑵設(shè)置一個(gè)低4位全力1,其余全為0的數(shù)??捎脋(~0<<4)
⑶將上血二者進(jìn)展&運(yùn)算。
2.程序源代碼:
main()
(
unsigneda,b,c,d;
scanf("%o",&a);
b=a?4;
c=~(~0?4);
d=b&c;
printfC%o\n%o\n,,,a,d);
【程序55]
81目:學(xué)習(xí)使用按位取反~。
[程序分析:~0=1;~1=0;
2.程序源代碼:
include"stdio.h"
main()
{
inta,b;
a=234;
b=-a;
printf('\40:Thea's1plement(decimal)is%d\n",b);
a=-a;
printf('\40:Thea's1plement(hexidecimal)is%x\n",a);
【程序56]
題目:血圖,學(xué)用circle亙困形。
[程仲分折:
2.程?
103f
蚊創(chuàng)1?
"circle*/
include"graphics.h'
main()
{intdriver.rnode.i;
floatj=1,k=1;
driver=VGA;mode=VGAHI;
initgraph(&driver,&mode,"");
setbkcolor(YELLOW);
for(i=0;i<=25;i++)
(
setcolor(8);
circle(310,250,k);
k=k+j;
j=i+0.3;
【程序57]
題目:畫圖,學(xué)用line亙直線。
[程序分析:
2.程序源代碼:
includegraphics.h*
main()
{intdriver,mode,i;
floatx0,y0,y1,x1;
floatj=12,k;
driver=VGA;mode=VGAHI;
initgraph(&driver,&mode1"");
setbkcolor(GREEN);
x0=263;y0=263;y1=275;x1=275;
for(i=0;i<=18;i++)
{
setcolor(5);
line(x0,y0,x0,y1);
x0=x0-5;
y0=y0-5;
x1=x1+5;
y1=y1+5;
i=j+10;
)
x0=263;y1=275;y0=263;
for(i=0;i<=20;i++)
]
setcolor(5);
line(x0,y0,x0,y1);
x0=x0+5;
y0=y0+5;
yi=yi-5;
【程序58]
堰目:畫圖,學(xué)用rectangle囪方形。
1.程序分析:利用f?!秆蹩刂?00-999個(gè)數(shù),每個(gè)數(shù)分解出個(gè)位,十位,百位。
2.程序源代碼:
include"graphics.h"
main()
lintxO,yO,y1,x1,driver,mode,i;
driver=VGA;mode=VGAHI;
initg「aph(&driver,&mode,"");
setbkcolor(YELLOW);
x0=263;y0=263;y1=275;x1=275;
for(i=0;i<=18;i++)
(
setcolor(1);
rectangle(xO,yO,x1,y1);
x0=x0-5;
y0=y0-5;
x1=x1+5;
y1=y1+5;
)
settextstyle(DEFAULT_F0NT,H0RIZ_DIR,2);
outtextxy(150,40,'Howbeautrulitis!");
lined30,60,480,60);
setcolor(2);
circle(269,269,137);
【程序59]
題目:血圖,綜合用子。
[程仲分折:
2.程序源代眄:
#definePAI3.1415926
#defineB0.809
#include"graphics.h"
include"math.h'
main()
inti,j,k,xO,yO,x,y,driver,mode;
floata;
driver=CGA;mode=CGACO;
initgraph(&driver,&mode,l,M);
setcolor(3);
setbkcolor(GREEN);
x0=150;y0=100;
circle(x0,y0,10);
circle(x0,y0,20);
circle(x0,y0,50);
for(i=0;i<16;i++)
I
a=(2*PAI/16)*i;
x=ceil(x0+48*cos(a));
y=ceil(yO+48*sin(a)*B);
setcolor(2);line(xO,yO,x,y);}
setcolor(3);circle(x0,y0,60);
rMake0timenormalsizeletters*/
settextstyle(DEFAULT_FONT,HORIZ_DIR,0);
outtextxy(10,170,'pressakey');
getch();
setfillstyle(HATCH_FILL,YELLOW);
floodfill(202,100,WHITE);
getch();
for(k=0;k<=500;k++)
{
setcolor⑶;
for(i=0;i<=16;i++)
(
a=(2*PAI/16)*i+(2*PAI/180)*k;
x=ceil(x0+48*cos(a));
y=ceil(yO+48+sin(a)*B);
setcolor(2);line(x0,y0,x,y);
}
for(i=1;j<=50;j++)
{
a=(2*PAI/16)*i+(2*PAI/180)*k-1;
x=ceil(x0+48*cos(a));
y=ceil(yO+48*sin(a)*B);
line(x0,y0,x,y);
1
restorecrtmodeO;
【程序60】
題目:iaia,綜合例子。
1.程序分析:
2.程序源代碼:
include"graphics.h'
#defineLEFT0
#defineTOP0
#defineRIGHT639
#defineBOTTOM479
#defineLINES400
#defineMAXCOLOR15
main()
{
intdriver,mode,error;
intxl.yl;
intx2,y2;
intdx1,dy1,dx2,dy2,i=1;
intcount=0;
intcolor=0;
driver=VGA;
mode=VGAHI;
initgraph(&driver,&mode,"");
x1=x2=y1=y2=10;
dx1=dy1=2;
dx2=dy2=3;
while(!kbhit())
{
Iine(x1,y1,x2,y2);
x1+=dx1;y1+=dy1;
x2+=dx2;y2+dy2;
if(x1<=LEFT||x1>=RIGHT)
dx1=-dx1;
if(y1<=TOP|lv1>=BOnOM)
dy1=-dy1;
if(x2<=LEFT||x2>=RIGHT)
dx2=-dx2;
if(y2<=TOP||y2>=BOnOM)
dy2=-dy2;
if(++count>LINES)
(
setcolor(color);
color=(color>=MAXCOLOR)?0:++color;
closegraph();
【程序61]
堰目:打印出柄薜三角形〔要求打印出10行如以下圖)
1.用齊分析:
1
11
121
1331
14641
15101051
2.程序源代碼:
main()
{inti,j;
inta[10][10];
printf('\n');
for(i=0;i<10;i++)
{a[i][0]=1;
a[i][i]=1;}
for(i=2;i<10;i++)
for(j=1;j<i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i<10;i++)
(for(j=0;j<=i;j++)
printf("%5d",a[i][j]);
printf('\n');
【程序62]
題目:學(xué)習(xí)putpixeli點(diǎn)。
1.程序分析:
2.程序源代碼:
103f
include"stdio.h"
include"graphics.h"
main()
{
inti,j,d「iver=VGA,mode=VGAHI;
initgraph(&driver,&mode,m,);
setbkcolor(YELLOW);
for(i=50;i<=230;i+=20)
for(j=50;j<=230;j++)
putpixel(i,j,1);
for(j=50;j<=230;j+=20)
for(i=50;i<=230;i++)
putpixeKijJ);
【程序63]
堰目:畫橢圓ellipse
1.程序分析:
2.程序源代碼:
include"stdio.h"
include"graphics.h"
include"conio.h"
main()
{
intx=360,y=160,driver=VGA,mode=VGAHI;
intnum=20,i;
inttop,bottom;
initgraph(&driver,&mode「);
top=y-30;
bottom=y-30;
for(i=0;i<num;i++)
{
ellipse(250,250,0,360,top,bottom);
top-=5;
bottom+=5;
)
getch();
【程序64]
題目:利用ellipseandrectangle畫圖。
[程序分析:
2.程序源代碼:
include"stdio.h"
include"graphics.h"
include"conio.h"
main()
(
intdriver=VGA,mode=VGAHI;
inti,num=15,top=50;
intleft=20,right=50;
initgraph(&driver,&mode,"");
for(i=0;i<num;i++)
I
ellipse(250,250,0,360,rightjeft);
ellipse(250,250,0,360,20,top);
rectangle(20-2*i,20-2*i,10*(i+2),10*(i+2));
right+=5;
left+=5;
top+=10;
}
getch();
【程序65]
題目:一個(gè)最優(yōu)美的圖案。
1.程序分析:
2.程畀源代碼:
★include"graphics.h'
include"math.h'
include"dos.h"
include"conio.h"
include"stdlib.h"
include"stdio.h*
include"stdarg.h"
#defineMAXPTS15
#definePI3.1415926
structPTS{
intx,y;
);
doubleAspectRatio=0.85;
voidLineToDemo(void)
structviewporttypevp;
structPTSpoints[MAXPTSJ;
inti,j,h,w,xcenter,ycenter;
intradius,angle,step;
doublerads;
printf("MoveTo/LineToDemonstration");
getviewsettings(&vp);
h=vp.bottom-vp.top;
w=vp.right-vp.left:
xcenter=w/2;/*Determinethecenterofcircle7
ycenter=h/2;
radius=(h-30)/(AspectRatio*2);
step=360/MAXPTS;/*Determine#ofincrements*/
angle=0;/*Beginatzerodegrees*/
for(i=0;i<MAXPTS;++i){/*Determinecircleintercepts*/
rads=(double)angle*PI/180.0;/*Convertangletoradians*/
points[i].x=xcenter+(int)(cos(rads)*radius);
points[i].y=ycenter-(int)(sin(rads)*radius*AspectRatio);
angle+=step;/*Movetonextincrement*/
}
circle(xcenter,ycenter,radius);/*Drawboundingcircle*/
for(i=0;i<MAXPTS;++i){/*Drawthecordstothecircle*/
for(j=i;j<MAXPTS;++j){/*Foreachremainingintersect*/
moveto(point
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 民航機(jī)場(chǎng)項(xiàng)目總工面試題庫(kù)
- 實(shí)木復(fù)合門建設(shè)項(xiàng)目可行性分析報(bào)告(總投資6000萬(wàn)元)
- 物聯(lián)網(wǎng)平臺(tái)開(kāi)發(fā)工程師面試題集
- 感應(yīng)熱處理機(jī)床建設(shè)項(xiàng)目可行性分析報(bào)告(總投資3000萬(wàn)元)
- 災(zāi)害預(yù)防工程師面試題及答案
- 深度解析(2026)《GBT 18866-2017橡膠 酸消化溶解法》
- 通信行業(yè)成本會(huì)計(jì)實(shí)務(wù)面試問(wèn)題及答案
- 深度解析(2026)《GBT 18714.3-2003信息技術(shù) 開(kāi)放分布式處理 參考模型 第3部分體系結(jié)構(gòu)》
- 年產(chǎn)xxx低噪聲風(fēng)機(jī)箱項(xiàng)目可行性分析報(bào)告
- 數(shù)據(jù)庫(kù)管理員崗位招聘面試題集
- 團(tuán)員證明模板(周五)
- 頸椎病的手術(shù)治療方法
- 野性的呼喚讀書(shū)分享
- 極簡(jiǎn)化改造實(shí)施規(guī)范
- 科研方法論智慧樹(shù)知到期末考試答案章節(jié)答案2024年南開(kāi)大學(xué)
- DBJ51-T 139-2020 四川省玻璃幕墻工程技術(shù)標(biāo)準(zhǔn)
- 一帶一路教學(xué)課件教學(xué)講義
- 工廠蟲(chóng)害控制分析總結(jié)報(bào)告
- 回顧性中醫(yī)醫(yī)術(shù)實(shí)踐資料(醫(yī)案)表
- 廣東省消防安全重點(diǎn)單位消防檔案
- 高考日語(yǔ)形式名詞わけ、べき、はず辨析課件
評(píng)論
0/150
提交評(píng)論