課后習(xí)題數(shù)組-c語(yǔ)言資料資料文檔_第1頁(yè)
課后習(xí)題數(shù)組-c語(yǔ)言資料資料文檔_第2頁(yè)
課后習(xí)題數(shù)組-c語(yǔ)言資料資料文檔_第3頁(yè)
課后習(xí)題數(shù)組-c語(yǔ)言資料資料文檔_第4頁(yè)
課后習(xí)題數(shù)組-c語(yǔ)言資料資料文檔_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、求100內(nèi)的素?cái)?shù)的源代碼如下.附件中有源程序,方法不是惟一的,僅供參考.

#include〃stdio.h〃

voidmain()

{inti,j;

for(i=3;i<=100;i++)

(

for(j=2;j<=i-l;j++)

if(i%j==0)

break;

if(i=j)

printf("%4d",i);

)

printf("\n〃);

)

2、用選擇法對(duì)5個(gè)整數(shù)排序.

#include<stdio.h>

voidmain()

{inta[5]={0},i,j,index,temp;

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

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

for(i=0;i<=4-l;i++)

(

index=i;

for(j=i+l;j<=4;j++)

|

if(a[j]<a[index])

index=j;

if(index!=i)

(

temp=a[i];

a[i]=a[index];

a[index]=temp;

}

}

)

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

printf("%5d",a[i]);

printf("\n〃);

}3、有一個(gè)已經(jīng)排好順序的數(shù)組,今輸入一個(gè)數(shù),要求按原來(lái)排序的規(guī)律將它插入到數(shù)組中。

#include<stdio.h>

main()

{inta[10]={2,4,8,15,28,57,99,110,688);

inti,j,x;

scanf&x);

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

if(x<a[i])

break;

for(j=8;j>=i;j-)

a[j+l]=a[j];

a[j+l]=x;

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

printf('%d",a[i]);

)

4、求一個(gè)3*3矩陣對(duì)角線元素之和

#include<stdio.h>

main()

{intj,a[3][3]={{1,2,3},{4,5,6},{7,8,9}};

intsum=0,sum2=0,i;

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

sum=sum+a[i][i];

for(i=2,j=O;i>=O;j++,i—)

sum2=sum2+a[j][i];

sum=sum+sum2;

printf(〃%d\n〃,sum);

)

5、將一個(gè)數(shù)組中的值按逆序存放

#include<stdio.h>

main()

{inti,j,a[4],b[4];

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

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

for(j=0,i=3;j<4;j++,i—)

b[j]=a[i];

for(j=0;j<4;j++)

printf("%d〃,b[j]);

printf(〃\n〃);

)

6、輸出以下楊輝三角形

#include<stdio.h>

main()

(

inti,k,j,a[5][5]={{l},{1,1}};/*可改變數(shù)組大小來(lái)改變菱形的大小*/

for(i=2;i<5;i++)

(

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

第2頁(yè),共8頁(yè)

if((j=O)II(j=i))

a[i][j]=l;

else

a[i][j]=a[i-l][j]+a[i-l][j-1];

)

}

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

(

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

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

printf("\n");

}7、輸出“魔方陣”

魔方陣,古代又稱“縱橫圖”,是指組成元素為自然數(shù)1、2…n的平方的nxn的方陣,其中每一

個(gè)元素值都不相等,且每行、每列以及主、副對(duì)角線上各n個(gè)元素之和都相等。

如3x3的魔方陣:

816

357

492

魔方陣的羅列規(guī)律如下:

(1)將1放在第一行中間一列;

(2)從2開始直到nxn止各數(shù)挨次按下列規(guī)則存放;每一個(gè)數(shù)存放的行比前一個(gè)數(shù)的行數(shù)

減1,列數(shù)加1(例如上面的三階魔方陣,5在4的上一行后一列);

(3)如果上一個(gè)數(shù)的行數(shù)為1,則下一個(gè)數(shù)的行數(shù)為n(指最下一行);例如1在第一行,則2

應(yīng)放在最下一行,列數(shù)同樣加1;

(4)當(dāng)上一個(gè)數(shù)的列數(shù)為n時(shí),下一個(gè)數(shù)的列數(shù)應(yīng)為1,行數(shù)減去1。例如2在第3行最后一

列,則3應(yīng)放在第二行第一列;

(5)如果按上面規(guī)則確定的位置上已有數(shù),或者上一個(gè)數(shù)是第一行第n列時(shí),則把下一個(gè)

數(shù)放在上一個(gè)數(shù)的下面。例如按上面的規(guī)定,4應(yīng)該放在第1行第2列,但該位置己經(jīng)被占

領(lǐng),所以4就放在3的下面

#include<stdio.h>

intmain()

(

intn;

inta[31][31];

while(scanf&n)!=EOF)

(

intm=l;

inti=0;

intj=(n-l)/2;

while(m〈=n*n)

第3頁(yè),共8頁(yè)

a[i]

m++;

i—;

j++;

if((m-1)%n==O&&m>1)

(

i=i+2;

j=j-l;

)

if(i<0)i=i+n;

if(j>(n-l))j=j-n;

}

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

(

for(j=0;j<n;j++)

(

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

if(j==(n-1))

printf("\n");

}

)

}

return0;

}

8、找出一個(gè)二維數(shù)組中的鞍點(diǎn)

#include〃stdio.h〃

voidmain()

(

inta[4][4],i,j,min,m,n,max;

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

for(j=0;j<4;j++)

scanf&a[i][j]);

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

(

max=a[i][0];

for(j=i+l;j<4;j++)

if(a[i][j]>max)

(

max=a[i][j];

n=j;

)

min=a[0][i];

第4頁(yè),共8頁(yè)

for(j=i+l;j<4;j++)

if(a[j][i]<min)

(

min=a[j][i];

m=j;

}

)

if(max=min)

printfa[m][n]);

else

printf("沒(méi)有鞍點(diǎn)〃);

)

9、有15個(gè)數(shù)按大由小順序存放在一個(gè)數(shù)組中,輸入一個(gè)數(shù),要求用折半查找法找出該組中第幾

個(gè)元素的值.

#includez,math.h〃

main()

{staticinti,j,m,a[15]={l,4,9,13,21,34,55,89,144,233,377,570,671,703,812);

scanf(〃%d〃,&m);

for(j=0;j<15;j++)

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

printf(〃\n〃);

i=7;

while(fabs(i-7)<8)

{if(m<a[7D

{if(a[i]-m=O)

{printf("itisat(%d)\n,z,i+1);break;}i―;)

elseif(m>a[7])

{if(a[i]-m==0)

{printf("itisat(%d)\n”,i+1);break;}i++;}

else

printf("8\n");

)

if(fabs(i-7)-8==0)

printf(''Thereisnot\n〃);

)

10、有一篇文章,共有3行文字,每行有個(gè)80字符。要求分別統(tǒng)計(jì)出其中英文大寫字母、小

寫字母、空格以及其它字符的個(gè)數(shù)

#includez,stdio.h〃

#include<string.h>

main()

{inti,j=0,k=0,1=0,m=0,n=0;charstr0[301],strl[100],str2[100],str3[100];

gets(strl);gets(str2);gets(str3);

strcat(strO,strl);strcat(strO,str2);strcat(strO,str3);

for(i=O;strO[i]!='\0';i++)

第5頁(yè),共8頁(yè)

{if(strO[i]>=65&&str0[i]<=90)j++;

elseif(strO[i]>=97&&str0[i]<=122)k++;

elseif(strO[i]>=48&&str0[i]<=57)1++;

elseif(str0[i]==32)m++;

elsen++;

)

printf(,zDaxieXiaoxieShuziKonggeQita\n〃);

printf(z,%5d%7d%5d%6d%4d\n,z,j,k,1,m,n);

}

11、輸出平行四邊形

#include〃stdio.h〃

voidmain()

(

chara[5]={,

intd,b,c;

chars=,;

for(d=0;d<5;d++)

(

printf(〃\n〃);

for(b=0;b<d;b++)

printf(〃枇s);

for(c=0;c<5;c++)

printfa[c]);

)

printf(〃\n〃);

}

12、有一行電文譯文下面規(guī)律譯成密碼:

A->Za->z

B->Yb->y

C->Xc->x

即第一個(gè)字母變成第26個(gè)字母,第i個(gè)字母變成第(26-i+l)個(gè)字母。非字母字符不變,

要求編程序?qū)⒚艽a回原文,并打印出密碼和原文。

ftinclude^stdio.h〃

#include<string.h>

main()

inti;charstrl[10],str2[10];

第6頁(yè),共8頁(yè)

gets(strl);

for(i=0;strl[i]!=\0';i++)

if(strl[i]>=65&&strl[i]<=90)

str2[i]=155-strl[i];

elseif(strl[i]>=97&&strl[i]<=122)

str2[i]=219-strl[i];

else

str2[i]=strl[i];

)

printf(,z%s\n%s\n,z,strl,str2);

)

13編一程序,將兩個(gè)字符串聯(lián)接起來(lái),不要strcat函數(shù)。

ttinclude^stdio.h〃

#include<string.h>

main()

(

inti,j;charstrl[100]={0},str2[100]={0},str3[201]={0};

gets(strl);

gets(str2);

for(i=0;strl[i]!='\0';i++)

str3[i]=strl[i];

for(j=0;str2[j]!=;J++)

str3[j+i]=str2[j];

,<,,

printf(%s\n%s\n%s\n)strl,str2,str3);

}

14編一個(gè)程序,將兩個(gè)字符串SI和S2比較,如果S1>S2,輸出一個(gè)正數(shù);S1=S2,輸出0;

SKS2,輸出一個(gè)負(fù)數(shù)。不要用strcpy函數(shù)。兩個(gè)字符串用gets函數(shù)讀入。輸出的正數(shù)或

者負(fù)數(shù)的絕對(duì)值應(yīng)是相比較的兩個(gè)字符串相對(duì)應(yīng)字符的ASCII碼的差值。例如,'A'與

'C'相比,由于'A'<,C',應(yīng)輸出負(fù)數(shù),由于'A,與'C'的碼差值為2,因此應(yīng)輸出

〃-2〃。同理:〃And〃和〃Aid〃比較,根據(jù)第2個(gè)字符比較結(jié)果,'n'比'i'大5,因此應(yīng)輸

出〃5〃。

#include<stdio.h>

ftinclude<string.h>

main()

(

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論