版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第一章
1.什么是程序?什么是程序設(shè)計(jì)?
程序:一組計(jì)算機(jī)能識(shí)別和執(zhí)行的指令。
程序設(shè)計(jì):是指從確定任務(wù)到得到結(jié)果、寫(xiě)出文檔的全過(guò)程(一般包
括以下6個(gè)階段:1.問(wèn)題分析2.設(shè)計(jì)算法3.編寫(xiě)程序4.對(duì)源程序進(jìn)
行編輯、編譯和連接5.運(yùn)行程序,分析結(jié)果)
2.為什么需要計(jì)算機(jī)語(yǔ)言?高級(jí)語(yǔ)言的特點(diǎn)?
(1)因?yàn)槿撕陀?jì)算機(jī)需要交流,就得創(chuàng)造一種計(jì)算機(jī)和人都能識(shí)別
的語(yǔ)言,就是計(jì)算機(jī)語(yǔ)言
(2)高級(jí)語(yǔ)言具有識(shí)別容易,記憶容易,可移植性好的優(yōu)點(diǎn),具有
執(zhí)行效率低的缺點(diǎn)
5.請(qǐng)參照本章例題,編寫(xiě)一個(gè)C程序,輸出以下信息:
**********************
Verygood!
**********************
#include<stdio.h>
intmain(){
printf(〃**********************\n〃)?
printf(z/Verygood!\n〃);
printf(〃*********************
return0;
)
6.編寫(xiě)一個(gè)C程序,輸入a,b,c三個(gè)值,輸出其中的最大者
#include<stdio.h>
intmain(){
inta,b,c,max;
printf("請(qǐng)輸入a,b,c的值:");
scanf(zz%d%d%d〃,&a,&b,&c);
max=a;
if(max<b)max=b;
if(max<c)max=c;
printf("%d”,max);
return0;}
第二章
4.(1)有兩個(gè)瓶子A和B,分別盛放醋和醬油。要求將它們互換(即
A瓶原來(lái)盛醋,現(xiàn)改盛醬油,B瓶相反)
inta,b,c;
t=a;
a=b;
b=t;
(2)依次將10個(gè)數(shù)輸入,要求輸出其中最大的數(shù)
#include<stdio.h>
intmain(){
inta[10],i,max;
printf(“請(qǐng)輸入10個(gè)數(shù):〃);
for(i=0;i<10;i++)
scanf(〃%cT,&a[i]);
max=a[0];
for(i=0;i<10;i++){
if(a[i]>max)
max=a[i];
)
printf("%d〃,max);
return0;}
⑶有3個(gè)數(shù)a,b,c,要求按大小順序把它們輸出
#include<stdio.h>
intmain(){
inta,b,c,t;
printf("請(qǐng)輸入a,b,c三個(gè)數(shù)的值:〃);
scanf(z/%d%d%d〃,&a,&b,&c);
if(a<b){t=a;a=b;b=t;}
if(a<c){t=a;a=c;c=t;}
if(b<c){t=a;b=c;c=t;}
printf(z/%d%d%d〃,a,b,c);
return0;}
⑷求1+2+3+...+100
#include<stdio.h>
intmain(){
inti,sum=0;
for(i=l;i<=100;i++)
sum+=i;
//,/
printf(sum=%d\n/sum);
return0;}
⑸判斷一個(gè)數(shù)n能否同時(shí)被3和5整除
#include<stdio.h>
intmain(){
intn;
printf(〃pleaseinputn:");
scanf("%d",&n);
if((n%3==0)&&(n%5==0))
printf(zz%d能同時(shí)被3和5整除”,n);
else
printf("%d不能同時(shí)被3和5整除〃,n);
return0;}
⑹將100~200之間的素?cái)?shù)輸出
#include<stdio.h>
#include<math.h>
intmain(){
intij;
for(i=100;i<=200;i++)
for(j=2;j<i;j++)
if(i%j==0)
break;
if(i==j)
printf(z/%d是素?cái)?shù)\n〃,i);
return0;}
⑺求兩個(gè)數(shù)m和n的最大公約數(shù)
#include<stdio.h>
intmain(){
intm,n,r=O;
printf(“輸入要求最大公約數(shù)的兩個(gè)數(shù):");
scanf("%d%d"/&m,&n);
r=m%n;
while(r!=0)
{m=n;
n=r;
r=m%n;}
printf("最大公約數(shù)是:%d\n“,n);
return0;}
⑻求方程式ax2+bx+c=0的根。分別考慮:
①有兩個(gè)不等的實(shí)根;
②有兩個(gè)相等的實(shí)根
#include<stdio.h>
#include<math.h>
intmain(){
inta,b,c,d,f,xl,x2;
printf("請(qǐng)輸入a,b,c的值:");
scanf("%d%d%d",&a,&b,&c);
d=b*b-4*a*c;
f=sqrt(d);
if(d>0){
xl=(-b+f)/2*a;
x2=(-b-f)/2*a;
printf(“方程有兩個(gè)不相等的根,分別是%d,%d“,xl,x2);}
elseif(d==O){
xl=x2=(-l)*b/(2*a);
printf("方程有兩個(gè)相等的根,是xl=x2=%d",xl);}
else
printf("方程有沒(méi)有根)
return0;}
8.(1)輸出1900~2000年中是閏年的年份,符合下面兩個(gè)條件之一的年
份是閏年
①能被4整除但不能被100整除
②能被100整除且能被400整除
#include<stdio.h>
intmain(){
intn;
for(n=1900;n<=2000;n++){
if((n%4==0&&n%100!=0)11(n%100==0&&n%400==0))
printf("%d是閏年〃,n);}
return0;}
第三章
1.假如我國(guó)國(guó)民生產(chǎn)總值的年增長(zhǎng)率為9%,計(jì)算10年后我國(guó)國(guó)民生
產(chǎn)總值與現(xiàn)在相比增長(zhǎng)多少百分比。計(jì)算公式為
p=(l+r)n,r為年增長(zhǎng)率,n為年數(shù),p為與現(xiàn)在相比的倍數(shù)
#include<stdio.h>
#include<math.h>
intmain(){
floatp/n=10,r=0.09;
p=pow(l+i;n);
printf(〃增長(zhǎng)的百分比為%f\n〃,p);
return0;}
6.請(qǐng)編程序?qū)?China“譯成密碼,密碼規(guī)律是:用原來(lái)的字母后面第4
個(gè)字母代替原來(lái)的字母。例如:字母“A”后面第4個(gè)字母時(shí)“E”,用
“E”代替“A”。因此,“China”應(yīng)譯為“Glmre”。請(qǐng)編一程序,用賦初值
的方法使cl,c2,c3,c4,c5這5個(gè)變量的值分別為'C','Y,W,
W,匕',經(jīng)過(guò)運(yùn)算,使cl,c2,c3,c4,c5分別為‘G',T,'m',
分別用putchar函數(shù)和printf函數(shù)輸出這個(gè)5個(gè)字符。
#include<stdio.h>
intmain(){
,,''
charcl='C'/c2='h,c3='i'zc4=n',c5=a;
cl=cl+4;c2=c2+4;c3=c3+4;c4=c4+4;c5=c5+4;
printf("%c%c%c%c%c",cl/c2/c3,c4,c5);
return0;}
7.設(shè)圓半徑r=1.5,圓柱高h(yuǎn)=3,求圓周長(zhǎng)、圓面積、圓球表面積、
圓球體積、圓柱體積。用scanf輸入數(shù)據(jù),輸出計(jì)算結(jié)果,輸出時(shí)要求
有文字說(shuō)明,取小數(shù)點(diǎn)后2位數(shù)字。請(qǐng)編程
#include<stdio.h>
#definePI3.14
intmain(){
floatr,h,15mMsv;
printf(〃請(qǐng)輸入半徑和圓柱:〃);
scanf(,&r,&h);
l=2*PI*r;
s=PI*r*r;
m=4*PI*r*r;
v=4/3*PI*r*r*r;
sv=PI*r*r*h;
printf(〃圓周長(zhǎng)是%.2f、圓面積是%.21圓球表面積是%.2f、圓球體積
是%.2大圓柱體積是%.2f〃,lsm,v,sv);
return0;}
第四章
3.寫(xiě)出下面各邏輯表達(dá)式的值,設(shè)a=3,b=4,c=5.
⑴a+b>c&&b==c0
(2)a||b+c&&b-c1
(3)!(a>b)&&!c||11
(4)!(x=a)&&(y=b)&&00
(5)!(a+b)+c-l&&b+c/21
5.從鍵盤(pán)輸入一個(gè)小于1000的正數(shù),要求輸出它的平方根(如平方
根不是整數(shù),則輸出其整數(shù)部分)。要求在輸入數(shù)據(jù)后對(duì)其進(jìn)行檢查
是否位小于1000的正數(shù)。若不是,則要求重新輸入。
#include<stdio.h>
#include<math.h>
intmain(){
intn,s;
printf(“請(qǐng)輸入一個(gè)小于1000的數(shù):”);
scanf("%d",&n);
if((n<0)||(n>1000)){
printf("數(shù)據(jù)錯(cuò)誤,請(qǐng)重新輸入\n“);
scanf("%d"z&n);}
s=(int)sqrt(n);
printf("%d的平方根為%d,n,s);
return0;}
6.寫(xiě)程序,輸入x的值,輸出y相應(yīng)的值
#include<stdio.h>
intmain(){
intx,y;
printf("請(qǐng)輸入x的值:〃);
scanf(〃%d〃,&x);
if(x<l)
Y=x;
elseif((x>=l)&&(x<10))
y=2*x-l;
else
y=3*x-ll;
printf(/zy=%d\n,,,y);
return0;}
8.給出一百分制成績(jī),要求輸出成績(jī)等級(jí)7V,BVCTD1E.9O分以上
為次,80~90分為E,70~79分為,C060分以下為F。
#include<stdio.h>
intmain(){
floatscore;
printf(〃請(qǐng)輸入分?jǐn)?shù):〃);
scanf(〃%f",&score);
while(score<0||score>100){
printf("數(shù)據(jù)有誤,請(qǐng)重新輸入\n〃);
scanf("%f”,&score);
if((score>90)&&(score<100))
printf("成績(jī)等級(jí)為A〃);
elseif((score>=80)&&(score<90))
printf("成績(jī)等級(jí)為B〃);
elseif((score>=70)&&(score<80))
printf(〃成績(jī)等級(jí)為C〃);
elseif((score>=60)&&(score<70))
printf("成績(jī)等級(jí)為D〃);
else
printf("成績(jī)等級(jí)為E〃);
return0;}
9.給出一個(gè)不多于5位的正整數(shù),要求:
①求出它是幾位數(shù)
②分別輸出每一位數(shù)字
③按逆序輸出各位數(shù)字,例如原數(shù)為321,應(yīng)輸出123
#include<stdio.h>
intmain(){
intn,x[10]J=0J=0;
printf(〃請(qǐng)輸入一個(gè)不多于5位的正整數(shù);
scanf(〃%d〃,&n);
while(n!=O){
x[i]=n%10;
n=n/10;
i++;}
intz=i;
printf("該數(shù)字為%d位數(shù)\n〃,z);
printf("逆序?yàn)?\n〃);
for(j=0;j<z;j++)
printfC%d;xO]);
return0;}
第五章
3.輸入兩個(gè)正整數(shù)m和6求其最大公約數(shù)和最小公倍數(shù)
#include<stdio.h>
intmain(){
intm,n,Gq,t;
printf("請(qǐng)輸入m和n的值:\n〃);
scanf(〃%d%d",&m,&n);
if(m<n){
t=m;
m=n;
n=t;}
r=m%n;
q=m*n;
while(r!=O){
m=n;
n=r;
r=m%n;}
printf(〃最大公約數(shù)為%d,最小公倍數(shù)為%d"p/n);
return0;}
4.輸入一行字符,分別統(tǒng)計(jì)出其中英文字母、空格、數(shù)字和其它字符
的個(gè)數(shù)。
#include<stdio.h>
#include<string.h>
intmain(){
chara[80];
inti/n,letter=0/space=0,digital=0/other=0;
printf("請(qǐng)輸入字符串:");
gets(a);
n=strlen(a);
for(i=0;i<n;i++){
|^(9[|]>='^&&3[1]<=7')11(a[i]>=,a'&&a[i]<='z,))
letter++;
elseif(a[i]=='')
space++;
elseif(a[i]>='0'&&a[i]<=,9,)
digital++;
else
other++;}
printf("英文字母的個(gè)數(shù)%d,空格的個(gè)數(shù)%d,數(shù)字的個(gè)數(shù)%d淇他字符個(gè)
數(shù)%€1”,letter,space,digital,other);
return0;}
5.求Sn=a+aa+aaa+...+aa...a之值,其中a是一個(gè)數(shù)字,n表示a的位數(shù),
例如:2+22+222+2222+22222(此時(shí)n=5),n由鍵盤(pán)輸入
#include<stdio.h>
intmain(){
intn/aJ=l/sn=O/tn=O;
printf(〃請(qǐng)輸入a,n的值:〃);
scanf("%d%d”,&a,&n);
while(i<=n){
tn=tn+a;
sn=sn+tn;
a=a*10;
i++;}
printf(//a+aa+aaa+...=%d\n,?,sn);
return0;}
6.求2%1九!(即求l!+2!+3!+4!+...+20!)
#include<stdio.h>
intmain(){
intij;
doublesum=0zs;
for(i=l;i<=20;i++){
s=l;
for(j=l;j<=i;j++)
s=s*i;
sum+=s;}
printf("sum=%f\n",sum);
return0;}
7.求求"+E落求J
#include<stdio.h>
intmain(){
intk;
floatsum=0.0/suml=0.0/sum2=0.0,sum3=0.0;
for(k=l;k<100;k++)
suml+=k;
for(k=l;k<50;k++)
sum2+=k*k;
for(k=l;k<10;k++)
sum3+=l/k;
sum=suml+sum2+sum3;
printf(//sum=%f\n,;sum);
return0;}
8.輸出所有的“水仙花數(shù)”,所謂“水仙花數(shù)”是指一個(gè)3位數(shù),其
各位數(shù)字立方和等于該數(shù)本身。例如,153是一水仙花數(shù),因?yàn)?/p>
153=13+53+33.
#include<stdio.h>
intmain(){
intn,i,j,k;
for(n=100;n<1000;n++){
i=n%10;
j=n/10%10;
k=n/100;
if(n==i*i*i+j*j*j+k*k*k)
printf(〃%d〃,n);}
return0;}
9.一個(gè)數(shù)如果恰好等于它的因子之和,這個(gè)數(shù)就稱(chēng)為“完數(shù)”。例如,
6的因子為1,2,3,而6=1+2+3,因此6是完數(shù)。編程找出1000之
內(nèi)的所有完數(shù),并按下面格式輸出其因子:6itsfactorsare1,2,3
#include<stdio.h>
intmain(){
intm,s,i;
for(m=2;m<=1000;m++){
s=0;
for(i=l;i<m;i++)
if((m%i)==0)s=s+i;
if(s==m){
printf("%d,itsfactorsare”,m);
for(i=l;i<m;i++)
if((m%i)==0)printf(〃%d〃,i);
printf(〃\n〃);}}
return0;}
,有一個(gè)分?jǐn)?shù)序列…,求出這個(gè)數(shù)列的前項(xiàng)之和
10123581320
#include<stdio.h>
intmain(){
inta=2,b=l/tj;
floatsum=0;
for(i=l;i<=20;i++){
sum=sum+a/b;
t=a;
a=a+b;
b=t;}
////
printf(sum=%f/sum);
return0;}
11.一個(gè)球從100m高度自由落下,每次落地后反跳回原高度的一半,
再落下,再反彈。求它在第10次落地時(shí),共經(jīng)過(guò)多少米,第10次反
彈多高
#include<stdio.h>
intmain(){
intn;
floatsn=100,hn=sn/2;
for(n=2;n<=10;n++){
sn=sn+2*hn;
hn=hn/2;}
printf(〃第10次落地時(shí)共經(jīng)過(guò)%£米\n〃,sn);
printf(〃第10次反彈%f米\n”,hn);
return0;}
12.猴子吃桃問(wèn)題。猴子第1天摘下若干個(gè)桃子,當(dāng)即吃了一半,還
不過(guò)癮,又多吃了一個(gè)。第2天早上又將剩下的桃子吃掉一半,又多
吃了一個(gè)。以后每天早上都吃了前一天剩下的一半零一個(gè)。到第10
天早上想再吃時(shí),就只剩下一個(gè)桃子。求第1天共摘多少個(gè)桃子
#include<stdio.h>
intmain(){
intday,xl,x2;
day=9;
x2=l;
while(day>0){
xl=(x2+l)*2;
x2=xl;
day-;}
printf(//total=%d\n,,,xl);
return0;}
13.用迭代法求x=亞求平方根的迭代公式為%九+i=X%+9,要
求前后兩次求出的x的差的絕對(duì)值小于IO三
#include<stdio.h>
#include<math.h>
intmain(){
floata,xO,xl;
printf(〃請(qǐng)輸入一個(gè)正數(shù):〃);
scanf(〃%f〃,&a);
x0=a/2;
xl=(x0+a/x0)/2;
do{
xO=xl;
xl=(x0+a/x0)/2;}while(fabs(x0-xl)>=le-5);
printf(〃[%f]的平方根為[%f]\n〃,a,xl);
return0;}
16.輸出以下圖案:
#include<stdio.h>
intmain(){
inti,j,k;
for(i=0;i<=3;i++){
for(j=0;j<=2-i;j++)
printf("〃);
for(k=0;k<=2*i;k++)
printf(〃*〃);
printf(〃\n〃);}
for(i=0;i<=2;i++){
for(j=0;j<=i;j++)
printf("");
for(k=0;k<=4-2*i;k++)
printf(〃*〃);
printf(〃\n〃);}
return0;}
第Aft八、?章立
1.用篩選法求100之內(nèi)的素?cái)?shù)
篩選法:在一張紙上寫(xiě)上全部數(shù),然后逐個(gè)判斷是否滿(mǎn)足條件,不滿(mǎn)
足的就挖掉,最后剩下的就是滿(mǎn)足條件的數(shù)
#include<stdio.h>
intmain(){
inta[100]JJ;
for(j=l;j<100;j++)
for(i=2;i<100/2;i++)
for(j=2;j<100;j++){
if(j%i==0&&a[j]!=0&&j!=i)
a[j]=0;}
printf(〃100以?xún)?nèi)的素?cái)?shù)為:\n〃);
for(j=2;j<=100;j++)
if(aU]!=0)
printf("%d:a[j]);
return0;}
2.用選擇法對(duì)10個(gè)整數(shù)排序
選擇法:按照升序的排序,設(shè)有10個(gè)元素,從第一個(gè)開(kāi)始和其余各個(gè)進(jìn)行比較,最小的放
在第一個(gè)數(shù),再將第二個(gè)數(shù)和余下8個(gè)進(jìn)行比較,再將最小的放在第二位,一直到排序結(jié)
束
#include<stdio.h>
intmain(){
inta[10]JJ,n;
printf(〃請(qǐng)輸入10個(gè)數(shù):〃);
for(i=0;i<10;i++)
scanf("%d”,&a「]);
for(i=0;i<10;i++)
for(j=i;j<10;j++){
if(a[i]>a[j])
{n=a[i];a[i]=a[j];a[j]=n;}}
printf(〃該十個(gè)數(shù)升序?yàn)椋骸?;
for(i=0;i<10;i++)
return0;}
3.求一個(gè)3*3的整型矩陣對(duì)角線(xiàn)元素之和
#include<stdio.h>
intmain(){
inta[3][3],i,j,sum=0;
printf(〃請(qǐng)輸入矩陣元素的值:\n〃);
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf(〃%d〃,&a[i][j]);
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(i==j11i+j==2)
sum+=a[i][j];
////
printf(sum=%d/sum);
return0;}
4.有一個(gè)已排好序的數(shù)組,要求輸入一個(gè)數(shù)之后,按原來(lái)排序的規(guī)律
將它插入數(shù)組中。
#include<stdio.h>
intmain(){
inta[100],x,n,i,j;
printf("請(qǐng)輸入待排序數(shù)值的個(gè)數(shù):\n");
H
scanf("%dz&n);
printf("請(qǐng)輸入待排序的每個(gè)數(shù)值:\n");
for(i=0;i<n;i++)
scanf("%d〃,&a[i]);
printf(”請(qǐng)輸入需要待排序的數(shù)值:\n“);
scanf(”%d”,&x);
for(i=0;i<n;i++){
if(a[i]>x){
for(j=n;j>i;j-)
aU]=a[j-l];
a[i]=x;
break;}}
printf("排序后:\n");
for(i=0;i<n+l;i++)
printf(“%5d”,a[i]);
return0;}
5.將一個(gè)數(shù)組中的值按逆序重新存放。例如,原來(lái)順序?yàn)?,6,5,4,
1,要求改為1,4,5,6,8
#include<stdio.h>
intmain(){
inta[20],i,t,n;
printf(〃請(qǐng)輸入數(shù)組元素的個(gè)數(shù):〃);
scanf("%d〃,&n);
printf(〃請(qǐng)輸入數(shù)組元素的值:〃);
for(i=0;i<n;i++)
scanf("%d〃,&a[i]);
for(i=0;i<n/2;i++){
t=a[i];a[i]=a[n-i-l];a[n-i-l]=t;}
for(i=0;i<n;i++)
printf(//%3d,:a[i]);
return0;}
6.輸出以下的楊輝三角形(要求輸出10行)
1
11
121
1331
14641
15101051
#include<stdio.h>
intmain(){
inti,j,a[10][10];
for(i=0;i<10;i++){
a[i][i]=l;
a[i][0]=l;}
for(i=2;i<10;i++){
for(j=l;j<=i-l;j++){
a[i]D]=a[i-l]O-l]+a[i-l]U];}}
for(i=0;i<10;i++){
for(j=0;j<=i;j++)
printf("%4d〃,a[i皿);
printf("\n〃);}
return0;}
7.輸出“魔方陣所謂魔方陣是指這樣的方陣,它的每一行、每一
列和對(duì)角線(xiàn)之和均相等。例如,三階魔方陣為
816
357
492
要求輸出的自然數(shù)構(gòu)成的魔法陣
8,找出一個(gè)二維數(shù)組中的鞍點(diǎn),即該位置上的元素在該行上最大、在
該列上最小。也可能沒(méi)有鞍點(diǎn)
#include<stdio.h>
#defineN4
#defineM5
intmain(){
inta[N][M],i,j,k,max,maxj,flag;
printf("請(qǐng)輸入數(shù)組元素的值:");
for(i=0;i<N;i++)
for(j=0;j<M;j++)
scanf(/%d”,&a[i皿);
for(i=0;i<N;i++){
max=a[i][O];
maxj=O;
for(j=0;j<M;j++)
if(a[i][j]>max){
max=a[i][j];
maxj=j;}
flag=l;
for(k=0;k<N;k++)
if(max>a[k][max]){
flag=O;
continue;}
if(flag){
printf("a[%d][%d]=%d\n"/maxj/max);
break;}}
if(!flag)
printf("ltisnotexist!\n");
return0;}
9.有15個(gè)數(shù)按由大到小順序存放在一個(gè)數(shù)組中,輸入一個(gè)數(shù),要求
用折半查找法找出該數(shù)是數(shù)組中第幾個(gè)元素的值,如果該數(shù)不在數(shù)組
中,則輸出“無(wú)此數(shù)”
#include<stdio.h>
#defineN15
intmain(){
inti,number,top,bott/midJoca,a[N],flag=l/sign;
charc;
printf("enterdata:");
scanf(“%d”,&a[0]);
i=l;
while(i<N){
scanf("%d",&a[i]);
if(a[i]>=a[i-l])
i++;
else
printf("enterthisdataagain:\n");}
printf("\n");
for(i=0;i<N;i++)
printf("%d",a[i]);
printf("\n");
while(flag){
printf("inputnumbertolookfor:");
scanf("%d",&number);
sign=0;
top=0;
bott=N-l;
if((number<a[O])11(number>a[N-l]))
loca=-l;
while((!sign)&&(top<=bott))
{mid=(bott+top)/2;
if(number==a[mid]){
loca=mid;
printf("Hasfound%d,itspositionis%d\n"/number;loca+l);
sign=l;}
elseif(number<a[mid])
bott=mid-l;
else
top=mid+1;}
if(!sign||loca==-l)
printf("cannotfind%d\n”,number);
printf("continueornot(Y/N)?");
scanf("%c",&c);
if(c=='N'||c=='n')
flag=0;}
return0;}
10.有一篇文章,共有3行文字,每行有80個(gè)字符。要求分別統(tǒng)計(jì)出
其中英文大寫(xiě)字母、小寫(xiě)字母、數(shù)字、空格以及其他字符的個(gè)數(shù)
#include<stdio.h>
intmain(){
inti=0,j=0zDletter=0zSletter=0zdigit=0,space=0zother=0;
chara[3][80];
printf(“請(qǐng)輸入三行文字:");
for(i=0;i<3;i++){
gets(a[i]);
for(j=0;j<80&&a[i][j]!='\0';j++){
if(a[i]U]>='A'&&a[i][j]<='Z')
Dletter++;
elseif(a[i][j]>='a'&&a[i][j]<=,z')
Sletter++;
elseif(a[i][j]>='0,&&a[i][j]<='91)
digit++;
elseif(a[i][j]=='')
space++;
else
other++;
})
printf("Dletter=%d/Sletter=%d,digit=%d,space=%d/other=%d"/
DletteGSIetteGdigit,space,other);
return0;}
11.輸出以下圖案
#include<stdio.h>
intmain(){
char
inti,j,k;
charspace='z;
for(i=0;i<5;i++){
printf(〃\n〃);
printf(/z");
for(j=l;j<=i;j++)
printf(〃%c”,space);
for(k=0;k<5;k++)
printf(〃%c〃,a[k]);}
printf(〃\n〃);
return0;}
12.有一行電文,已按下面規(guī)律譯成密碼:
A->Za—z
BfYb—y
CfXcfx.....
即第1個(gè)字母變成第26個(gè)字母,第i個(gè)字母變成第(26-i+l)個(gè)字母,
非字母字符不變。要求編程序?qū)⒚艽a譯回原文,并輸出密碼和原文
#include<stdio.h>
#include<string.h>
intmain(){
chara[80]zb[80];
inti,n;
printf("請(qǐng)輸入密碼:\n");
gets(a);
n=strlen(a);
for(i=0;i<n;i++){
if(a[i]>=7V&&a[i]<=Z)
b[i]=155-a[i];
elseif(a[i]>='a"&&a[i]<='z')
b[i]=219-a[i];
else
b[i]=a[i];}
for(i=0;i<n;i++){
//printf("%cn,a[i]);
printf("%c",b[i]);}
return0;}
13.編一程序,將兩個(gè)字符連接起來(lái),不要用strcat函數(shù)
#include<stdio.h>
intmain(){
chara[100],b[20];
inti=0,j=0;
printf(〃請(qǐng)輸入兩個(gè)字符串:\n〃);
gets(a);
gets(b);
while(a[i]!='\0')
i++;
while(a[j]!=/\O,)
a[i++]=b[j++];
puts(a);
return0;}
14.編一程序,將兩個(gè)字符串si和s2比較,若sl>s2輸出一個(gè)正數(shù);
若sl=s2,輸出0;若sl<s2,輸出一個(gè)負(fù)數(shù)。不要用strcpy函數(shù)。兩個(gè)
字符串用gets函數(shù)讀入。輸出的正數(shù)或負(fù)數(shù)的絕對(duì)值應(yīng)該是相比較
的兩個(gè)字符串相應(yīng)字符的ASCII碼的差值。例如,“A”與“C”相比,
由于"A”<“C",應(yīng)輸出負(fù)數(shù),同時(shí)由于腎與9的ASCII碼差值為2,
因此應(yīng)輸出“?2二同理:“And”和“Aid”比較,根據(jù)第2個(gè)字符比
較結(jié)果,“n”比“i”大5,因此應(yīng)輸出“5”
#include<stdio.h>
intmain(){
chara[20],b[20];
inti=0,n;
printf("請(qǐng)輸入兩個(gè)字符串:");
gets(a);
gets(b);
while(a[i]==b[i]&&(a[i]!='\0'))
i++;
if(a[i]==,\0,&&b[i]=='\0')
n=0;
else
n=a[i]-b[i];
printf("%d"zn);
return0;}
15.編寫(xiě)一個(gè)程序,將字符數(shù)組S2的全部字符復(fù)制到字符數(shù)組si中。
不用strcpy函數(shù),復(fù)制時(shí),、(T也要復(fù)制過(guò)去,'(X后面的字符不復(fù)制
#include<stdio.h>
#include<string.h>
intmain(){
charsl[80],s2[80];
inti;
printf("請(qǐng)輸入字符串的內(nèi)容:”);
scanf("%s",s2);
for(i=0;i<strlen(s2);i++)
sl[i]=s2[i];
printf(“sl:%s\n“,sl);
return0;}
第七章
1.寫(xiě)兩個(gè)函數(shù),分別求兩個(gè)整數(shù)的最大公約數(shù)和最小公倍數(shù),用主函
數(shù)調(diào)用這兩個(gè)函數(shù),并輸出結(jié)果。兩個(gè)整數(shù)由鍵盤(pán)輸入
#include<stdio.h>
intmain(){
inta,b,m,n;
printf(“請(qǐng)輸入兩個(gè)數(shù):”);
scanf(〃%d%d〃,&a,&b);
intGongyueshu(inta,intb){
intt;
if(a<b){
t=a;a=b;b=t;
)
intr;
r=a%b;
while(r!=0)
{a=b;
b=r;
r=a%b;}
returnb;}
intGongbeishu(intajntb){
intq,p;
q=Gongyueshu(a,b);
p=a*b/q;
returnp;
)
m=Gongyueshu(a,b);
n=Gongbeishu(a,b);
printf("最大公約數(shù)為:%d\n,:m);
printf(〃最大公倍數(shù)為:%d\n,:n);
return0;}
2.求方程ax2+bx+c=0的根。用3個(gè)函數(shù)分別求當(dāng)b2-4ac大于0、等
于0和小于0時(shí)的根并輸出結(jié)果。從主函數(shù)輸入a,b,c的值
#include<stdio.h>
#include<math.h>
floatxl,x2,disc,p,q;
floatDvalue(floata,floatb){
xl=(-b+sqrt(disc))/2*a;
xl=(-b-sqrt(disc))/2*a;}
floatvalue(floata,floatb){
xl=x2=-b/2*a;}
floatSvalue(floata,floatb){
p=-b/(2*a);
q=sqrt(-disc)/(2*a);}
intmain(){
floata,b,c;
printf("請(qǐng)輸入a,b,c的值:〃);
scanf(〃%f%f%f”,&a,&b,&c);
disc=b*b-4*a*c;
if(disc>0){
Dvalue(a,b);
printf("xl=%f,x2=%r,xl,x2);}
elseif(disc==0){
value(azb);
///:
printf(xl=%f/x2=%fxl/x2);}
else{
Svalue(a,b);
//,,
printf(xl=%f+%fi,x2=%f-%fi,p,q,p,q);}
return0;}
3.寫(xiě)一個(gè)判素?cái)?shù)的函數(shù),在主函數(shù)輸入一個(gè)整數(shù),輸出是否為素?cái)?shù)的
信息
#include<stdio.h>
#include<math.h>
intmain(){
voidlsprim(intn);
intn;
printf("請(qǐng)輸入一個(gè)整數(shù):");
scanf("%d",&n);
Isprim(n);
return0;}
voidlsprim(intn){
inti;
for(i=2;i<=sqrt(n);i++)
if(n%i==O)
break;
if(i==n)
printf("%d是素?cái)?shù)“,n);
else
printf("%d不是素?cái)?shù)”,n);}
4.寫(xiě)一個(gè)函數(shù),使給定的一個(gè)3*3的二維整型數(shù)組轉(zhuǎn)置,即行列互換
#include<stdio.h>
intmain(){
inta[3][3]JJ;
voidconveser(inta[][3]);
printf("請(qǐng)輸入數(shù)組的值:\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i]Ul);
printf(“數(shù)組為:\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++){
printf(“%3d”,a[i][j]);
if(j==2)
printf("\n");}
printf("行列互換后的數(shù)組為:\n");
conveser(a);
return0;}
voidconveser(inta[][3]){
intij,b[3][3];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
bU][i]=a[i]U];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{printf(“%3d”,b[i皿);
if(j==2)
printf("\n");}}
5.寫(xiě)一個(gè)函數(shù),使輸入的一個(gè)字符串按反序存放,在主函數(shù)中輸入和
輸出字符串
#include<stdio.h>
#include<string.h>
intmain(){
voidconverse(charstr[80]);
charstr[80];
printf(“請(qǐng)輸入一個(gè)字符串:\n");
gets(str);
converse(str);
print"'反序后的字符串:\n");
puts(str);
return0;}
voidconverse(charstr[80]){
inti,n;
charc;
n=strlen(str);
for(i=0;i<n/2;i++){
c=str[i];
str[i]=str[n-i-l];
str[n-i-l]=c;
})
6.寫(xiě)一個(gè)函數(shù),將兩個(gè)字符串連接
#include<stdio.h>
intmain(){
voidstrcat(chara[100],charb[20]);
chara[100],b[20];
printf("請(qǐng)輸入兩個(gè)字符串的值:\n");
gets(a);
gets(b);
strcat(a,b);
printf(“連接后的字符串值為:\n“);
puts(a);
return0;}
voidstrcat(chara[100],charb[20]){
inti=0,j=0;
while(a[i]!='\0')
i++;
while(b[j]!=W)
a[i++]=b[j++];
a[i]='\0';}
7.寫(xiě)一個(gè)函數(shù),將一個(gè)字符串中的元音字母復(fù)制到另一字符串,然后
輸出。
#include<stdio.h>
intmain(){
voidVowelcopy(chara[80],charb[20]);
chara[80],b[20];
printf("請(qǐng)輸入字符串的值:\n");
gets(a);
Vowelcopy(a,b);
printf(”%s”,b);
return0;}
voidVowelcopy(chara[80],charb[20]){
inti=0,j=0;
while(a[i]!='\0'){
if(a[i]=='a'||a[i]=='e'||a[i]=='i'||a[i]=='o'||a[i]=='u'||a[i]=='A'||
a[i]=='E'||a[i]==T||a[i]=='O'||a[i]=='U')
{bU]=a[i];
j++;)
i++;}
bU]='\O';}
8,寫(xiě)一個(gè)函數(shù),輸入一個(gè)4位數(shù)字,要求輸出這4個(gè)數(shù)字字符,但每
兩個(gè)數(shù)字間空一個(gè)空格。如輸入1900,應(yīng)輸出“1990”
#include<stdio.h>
intmain(){
voidfenli(intn);
inta[4],n,i;
printf("請(qǐng)輸入一個(gè)四位數(shù):");
scanf(“%d”,&n);
fenli(n);
return0;}
voidfenli(intn){
inta[4],i;
for(i=0;(i<4)&&(n!=0);i++){
a[i]=n%10;
n=n/10;}
for(i=3;i>=0;i-)
printf("%d",a[i]);}
9.編寫(xiě)一個(gè)函數(shù),有實(shí)參傳來(lái)一個(gè)字符串,統(tǒng)計(jì)此字符串中字母、數(shù)
字、空格和其他字符的個(gè)數(shù),在主函數(shù)中輸入字符串以及上述的結(jié)果
#include<stdio.h>
intmain(){
voidcount(chara[100]);
chara[100];
printf("請(qǐng)輸入字符串的值:\n“);
gets(a);
count(a);
return0;}
voidcount(chara[100]){
inti=0,letter=0/num=0,space=0/other=0;
while(a[i]!='\0'){
if((a[i]>='a'&&a[i]<=,z')||(a[i]>='A'&&a[i]<='Z'))
letter++;
elseif(a[i]>='0'&&a[i]<=,9,)
num++;
elseif(a[i]=='')
space++;
else
other++;
i++;}
printf("字母的個(gè)數(shù)為%d,數(shù)字的個(gè)數(shù)為%d,空格的個(gè)數(shù)為%d,其他字符
的個(gè)數(shù)為%(1",letter,num,space,other);}
10.寫(xiě)一個(gè)函數(shù),輸入一行字符,將此字符串中最長(zhǎng)的單詞輸出(程序
邏輯還有問(wèn)題)
#include<stdio.h>
#include<string.h>
intmain(){
voidLongestWord(chara[],charword[]);
chara[100]={0},word[100]={0};
printf("請(qǐng)輸入一行字符:\n");
gets(a);
LongestWord(azword);
printf("Thelongestwordis:%s\n",word);
return0;}
voidLongestWord(chara[]zcharword[]){
intmax」en=0,len=0,i=0;
while(a[i]!='\0'){
if(a[i]==''){
a[i]='\0';
len=strlen(a);
if(len>max_len){
max_len=len;
strcpy(word,a);
a=a+len+l;}}
i++;}}
11.寫(xiě)一個(gè)函數(shù),用“起泡法”對(duì)輸入的10個(gè)字符按由小到大順序排
序
#include<stdio.h>
intmain(){
inta[10]J;
printf(”請(qǐng)輸入十個(gè)待排序的數(shù)值:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("排序后的結(jié)果為:\n");
sort(a);
return0;}
intsort(inta[10]){
inti,j,t;
for(i=0;i<10;i++)
for(j=0;j<=10-i;j++)
if(aU]>aU+l]){
t=aU];a[j]=a[j+l];a[j+l]=t;}
for(i=0;i<10;i++)
printf(-%5d”,a[i]);}
12.用牛頓迭代法求根。方程為ax3+bx2+cx+d=0,系數(shù)a,b,c,d的值依次
為1,2,3,4由主函數(shù)輸入。求x在工附近的一個(gè)實(shí)根。求出根后
由主函數(shù)輸出
#include<stdio.h>
#include<math.h>
floatsolut(inta,intb,intc,intd)
{floatx=1,xO,f,fl;
do{
xO=x;
f=((a*x0+b)*xO+c)*x0+d;
fl=(3*a*xO+2*b)*xO+c;
x=xO-f/f1;
}while(fabs(x-xO)>=le-3);
return(x);}
intmain()
{inta,b,c,d;
printf("inputa,b,c,d:");
scanf("%d%d%d%d",&a,&b,&c,&d);
printf("x=%10.7f\n",solut(a,b,c,d));
return0;}
13.用遞歸方法求n階勒讓德多項(xiàng)式的值,遞歸公式為:
1(n=0)
x(n=1)
PnM=幾一?一(九一
(21)%—pni1)?Pn24)
。之1)
n
#include<stdio.h>
intmain(){
doublepolya(intnjntx);
intn,x;
printf("請(qǐng)輸入n和x的值:");
scanf("%d%d",&n,&x);
printf("%.2f\n"zpolya(n,x));
return0;}
doublepolya(intnjntx){
doubleresult;
if(n==0)
result=l;
elseif(n==l)
result=x;
else
result=((2*n-l)*x-polya(n-l/x)-(n-l)*polya(n-2/x))/n;
returnresult;}
14.輸入10個(gè)學(xué)生5門(mén)課的成績(jī),分別用函數(shù)實(shí)現(xiàn)下列功能:
(1)計(jì)算每個(gè)學(xué)生的平均分
(2)計(jì)算每門(mén)課的平均分
(3)找出所有50個(gè)分?jǐn)?shù)中最高的分?jǐn)?shù)所對(duì)應(yīng)的學(xué)生和課程
(4)計(jì)算平均分方差:
其中X1為某一學(xué)生的平均分
#include<stdio.h>
intmain(){
floatscore[10][5]JJ;
printf(〃請(qǐng)輸入10個(gè)學(xué)生的5門(mén)成績(jī):\n〃);
for(i=0;i<10;i++)
for(j=0;j<5;j++)
scanf("%f”,&a[i][j]);
printf(〃每個(gè)學(xué)生的成績(jī)分別為:\n〃);
for(i=0;i<10;i++)
for(j=0;j<5;j++){
printf(〃%3d〃,a[i][j]);
if(j==4)
printf(〃\n〃);}
return0;}
⑴計(jì)算每個(gè)學(xué)生的平均分:
doubleStu_avg(inta[10][5]){
floatavg=0,sum;
intij;
for(i=0;i<10;i++){
for(j=0/sum=0;j<5;j++)
sum=sum+a[i][j];
Stu_avg=sum/5.0;
printf("avg=%lf",Stu_avg);}}
(2)計(jì)算每門(mén)課的平均分
doubleCou_avg(inta[10][5]){
floatCou_avg=Ozsum;
intij;
for(j=0;j<5;j++){
for(i=0,sum=0;i<9;i++)
sum=sum+a[i][j];
Cou_avg=sum/10.0;
printf("avg=%lf",Cou_avg);}}
(3)找出所有50個(gè)分?jǐn)?shù)中最高的分?jǐn)?shù)所對(duì)應(yīng)的學(xué)生和課程
inthighest(inta[10]⑸){
intmaxJJ;
max=a[0][0];
for(i=0;i<10;i++)
for(j=0;j<5;j++)
if(a[i][j]>max)
max=a[i][j];
printf(“最高分?jǐn)?shù)的學(xué)生是第%d個(gè),課程是第%(1個(gè))卜1);}
(4)計(jì)算平均分方差:
voidvari(inta[10][5]){
intl,j,k,m;
floattemp[10],var,xl,x2;
for(i=0,m=0;i<10;i++,m++){
for(j=0,k=0;j<5;j++)
k+=a[i][j];
temp[m]=k/5;}
for(i=m=xl=x2=0;i<10;i++){
xl+=pow(temp[i],2);
x2+=temp[i];}
var=xl/10-pow(x2/10,2);
printf(/z%f",var);}
15.寫(xiě)幾個(gè)函數(shù):
(1)輸入10個(gè)職工的姓名和職工號(hào)
(2)按職工號(hào)從小到大順序排序,姓名順序也隨之調(diào)整
(3)要求輸入一個(gè)職工號(hào),用折半查找法找出該職工的姓名,從主
函數(shù)輸入要查找的職工號(hào),輸出該職工姓名
#include<stdio.h>
#defineN3
#defineLEN20
〃定義一個(gè)結(jié)構(gòu)體類(lèi)型
structstudent{
charname[LEN];
intnum;};
intmain(){
intno;
voidoutput(structstudentstu[]);
voidinput(structstudentstu[]);
voidsortByNum(structstudentstu[]);
voidbinSearch(intno,structstudentstu[]);
structstudentstu[N];
input(stu);
output(stu);
sortByNum(stu);
output(stu);
printf("請(qǐng)輸入要查找的職工號(hào)no.:\n");
scanf("%d",&no);
binSearch(no,stu);
return0;}
〃輸入N名職工的姓名和編號(hào)
voidinput(structstudentstu[]){
inti;
printf("請(qǐng)輸入%d職工的姓名和編號(hào):\n”,N);
for(i=0;i<N;i++){
scanf("%s%d",stu[i].name,&stu[i].num);}}
〃輸出職工的姓名編號(hào)
voidoutput(structstudentstu[]){
inti;
for(i=0;i<N;i++){
printf("name:%20s/no.:%5d\n”,stu[i].name,stu[i].num);}}
〃按職工號(hào)從小到大排序,姓名也隨之排序
〃選擇排序
voidsortByNum(structstudentstu[]){
intminJJ;
structstudentt;
for(i=0;i<N;i++){
min=i;
for(j=i+l;j<N;j++){
if(stu[j].num<stu[min].num){min=j;}}
if(min!=i){
t=stu[min];
stu[min]=stu[i];
stu[i]=t;}}
printf("按職工號(hào)從小到大排序完畢.\n“);}
〃二分查找職工編號(hào)
voidbinSearch(intno,structstudentstu[]){
〃賦初始值
intlow=0,high=N-l/mid;
while(low<=high){
mid=(low+high)/2;
if(no>stu[mid].num){low=mid+l;}
elseif(no<stu[mid].num){high=mid-l;}
elseif(no==stu[mid].num)
{printf("name:%s\n,stu[mid].name);
break;}}
if(low>high)printf("can'tfindtheno.%dworker.",no);}
16.寫(xiě)一個(gè)函數(shù),輸入一個(gè)十六進(jìn)制數(shù),輸出相應(yīng)的十進(jìn)制
#include<stdio.h>
#include<string.h>
#include<math.h>
intmain(){
voidconvert(chara[10]);
chara[10];
printf(“請(qǐng)輸入0~9,A到F或者a到f的數(shù):\n〃);
gets(a);
convert(a);
return0;}
voidconvert(chara[10]){
inti,n,num=0;
n=strlen(a);
for(i=n-l;i>=0;i-){
if(a[i]>=,0/&&a[i]<=,9,)
num+=(a[i]-/0,)*pow(16,n-l-i);
elseif(a[i]>=jA/&&a[i]<=,F/)
/,
num+=(10+(a[i]-0))*pow(16/n-l-i);
elseif(a[i]>=,a/&&a[i]<=T)
num+=(10+(a[i]-/0,))*pow(16,n-l-i);}
printf(〃轉(zhuǎn)換為十進(jìn)制為:〃);
printf("%d〃,num);}
17.用遞歸法將一個(gè)整數(shù)n轉(zhuǎn)換成字符串。例如,輸入483,應(yīng)輸
出字符串“483”。n的位數(shù)不確定,可以是任意位數(shù)的整數(shù)
#include<stdio.h>
intmain(){
voidfun(intn);
intn;
printf(/zinput:n\n");
scanf(〃%d〃,&n);
printf(〃該數(shù)字對(duì)應(yīng)的字符串為:\n〃);
fun(n);
return0;}
voidfun(intn){
inti;
if(n<0){
putcharC-');
n=-n;}
if((i=n/10)!=0)fun(i);
putchar(n%10+,0/);}
18.給出年、月、日,計(jì)算該日是該年的第幾天
#include<stdio.h>
intflag(intyear){
ints=0;
if(year%4==0&&year%400!=011year%100==0&&year%400==0)
s=l;
returns;}
intdate(intmonjntday){
ints=OJ;
inta[12]={31,28,31,30,31,30,3130,31,30,31,30);
for(i=0;i<mon-l;i++)
s=s+a[i];
s=s+day;
returns;}
intmain(){
intyear;mon,day,sum,p;
printf("請(qǐng)輸入一個(gè)日期:〃);
scanf(〃%d%d%d,,,&year,&mon,&day);
sum=date(mon,day);
p=flag(year);
if(mon>=3&&p==l)
sum++;
printf(/z%d年%€1月%(1日是這一年的第%(1\|1〃,year,mon,day,sum);
return0;}
第八章
1.輸入3個(gè)整數(shù),按由小到大的順序輸出
#include<stdio.h>
intmain(){
voidswap(int*pl,int*p2);
intnl,n2,n3;
int*pl,*p2/p3;
printf(〃請(qǐng)輸入nl,n2,n3的值:\n〃);
scanf("%d%d%d〃,&nl,&n2,&n3);
pl=&nl;
p2=&n2;
p3=&n3;
if(nl>n2)swap(pl,p2);
if(nl>n3)swap(pl,p3);
if(n2>n3)swap(p2,p3);
printf(zzNowtheorderis:%d%d%d”,nl,n2,n3);
return0;}
voidswap(int*pl,int*p2){
intp;
p=*pl;
*pl=*p2;
*p2=p;}
2,輸入3個(gè)字符串,按由小到大的順序輸出
#include<stdio.h>
#include<string.h>
intmain(){
voidswap(char*,char*);
charstrl[2O],str2[3O],str3[2O];
printf(〃請(qǐng)輸入三個(gè)字符串:\n〃);
gets(strl);
gets(str2);
gets(str3);
if(strcmp(strl,str2)>0)swap(strl,str2);
if(strcmp(strl,str3)>0)swap(strl,str3);
if(strcmp(str2,str3)>0)swap(str2,str3);
printfC'Nowtheorderis:\n");
z/,,
printf(%s\n%s\n%s\n/strl/str2,str3);
return0;}
voidswap(char*pl,char*p2){
charp[20];
strcpy(p,pl);strcpy(pl,p2);strcpy(p2,p);}
3.輸入10個(gè)整數(shù),將其中最小的數(shù)與第一個(gè)數(shù)對(duì)換,把最大的
數(shù)與最后一個(gè)數(shù)對(duì)換。寫(xiě)3個(gè)函數(shù):①輸入10個(gè)數(shù);②進(jìn)行處理③
輸出10個(gè)數(shù)
#include<stdio.h>
intmain(){
voidinput(int*);
voidmax_min_value(int*);
voidoutput(int*);
intnumber[10];
input(number);
max_min_value(number);
output(number);
return0;}
voidinput(int*number){
inti;
printf('Input10number:");
for(i=0;i<10;i++)
scanf("%cT,&number[i]);}
voidmax_min_value(int*number){
int*max/*min,*p,temp;
max=min=number;
for(p=number+l;p<number+10;p++)
if(*p>*max)max=p;
elseif(*p<*min)min=p;
temp=number[O];number[O]=*min;*min=temp;
if(max==number)max=min;
temp=number[9];number[9]=*max;*max=temp;}
voidoutput(int*number){
int*p;
printf(Now,theyare:");
for(p=number;p<number+10;p++)
printf("%4d〃,*p);
printf(〃\n〃);}
4.有n個(gè)整數(shù),使前面各數(shù)順序向后移m個(gè)位置,最后m個(gè)數(shù)
變成最前面m個(gè)數(shù)。寫(xiě)一函數(shù)實(shí)現(xiàn)以上功能,在主函數(shù)中輸入n個(gè)
整數(shù)和輸出調(diào)整后的n個(gè)數(shù)
#include<stdio.h>
voidmove(inta[20],intnjntm){
int*p,end;
end=*(a+n-l);
for(p=a+n-l;p>a;p-)
*p=*(p-l);
*a=end;
m--;
if(m>0)move(azn,m);}
intmain(){
inta[20],m/n/i;
printf("共有多少個(gè)數(shù):\n");
scanf("%cT,&n);
printf("請(qǐng)輸入n個(gè)整數(shù):\n");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
prin
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 辦公室租賃合同模板
- 招標(biāo)文件范本的標(biāo)準(zhǔn)制作流程
- 軟件采購(gòu)合同樣式
- 碎石采購(gòu)協(xié)議書(shū)格式
- 創(chuàng)新服務(wù)采購(gòu)協(xié)議
- 租房合同解除協(xié)議書(shū)范文
- 工程分包合同中的勞務(wù)培訓(xùn)計(jì)劃與實(shí)施
- 蔬菜購(gòu)銷(xiāo)合同的解除注意事項(xiàng)
- 礦機(jī)設(shè)備購(gòu)買(mǎi)合同示范
- 三方協(xié)議服務(wù)共贏
- 2024年演出經(jīng)紀(jì)人之演出經(jīng)紀(jì)實(shí)務(wù)題庫(kù)綜合試卷及答案(奪冠)
- 線(xiàn)性代數(shù)(上海電力大學(xué))智慧樹(shù)知到答案2024年上海電力大學(xué)
- 2024年人教版小學(xué)四年級(jí)信息技術(shù)(上冊(cè))期末試卷及答案
- 2024年全國(guó)煙花爆竹經(jīng)營(yíng)單位安全生產(chǎn)考試題庫(kù)(含答案)
- 《病梅館記》解析版(分層作業(yè))
- 嬰幼兒發(fā)展引導(dǎo)員理論考試題庫(kù)資料500題(含答案)
- 國(guó)家開(kāi)放大學(xué)2024年春季學(xué)期電大《商務(wù)英語(yǔ)4》試題及答案
- 《預(yù)防和減少未成年人犯罪》專(zhuān)題講座(經(jīng)典)
- 2024-2030年中國(guó)激光陀螺儀行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析報(bào)告
- DL∕ T 1195-2012 火電廠(chǎng)高壓變頻器運(yùn)行與維護(hù)規(guī)范
- 大數(shù)據(jù)分析導(dǎo)論智慧樹(shù)知到期末考試答案章節(jié)答案2024年南京工業(yè)大學(xué)
評(píng)論
0/150
提交評(píng)論