回望

一、指針 用指針方法編寫一個程序,輸入 3 個整數(shù),將它們按由小到大的順序輸出

#include <stdio.h>

void swap(int *pa,int *pb) {?

int temp;?

temp = *pa;?

*pa = *pb;?

*pb = temp;

}

void main() {?

int a,b,c,temp;

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

? if(a>b)? swap(&a,&b);?

? if(b>c)? swap(&b,&c);?

? if(a>c)? swap(&a,&c);?

? printf("%d,%d,%d",a,b,c);

? }?


二、 編寫一個函數(shù),將一個字符串中的元音字母復(fù)制到另一個字符串,然后在主函數(shù)中輸出。

#include<stdio.h>

int main()

{void copy(char c[],char b[]);

char a[100],b[20];

gets(a);

copy(a,b);

puts(b);

return 0;

}

void copy(char c[],char b[])

{int i,j=0;

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

if(c[i]=='a'||c[i]=='A'||c[i]=='e'||c[i]=='E'||c[i]=='i'||c[i]=='I'||c[i]=='O'||c[i]=='o'||c[i]=='u'||c[i]=='U')

{b[j]=c[i];j++;}

b[j]='\0';

return;

}


三、寫一函數(shù),對輸入的一組整數(shù)按由小到大的順序排序,在main主函數(shù)調(diào)用該函數(shù)實(shí)現(xiàn)排序 。

#include<stdio.h>

void main()

{void paixu(int a[],int n);

int a[100],i,n;

printf("需要對多少數(shù)進(jìn)行排序:");

scanf("%d",&n);

printf("請輸入要排序的一組數(shù)(用空格隔開):");

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

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

paixu(a,n);

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

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

printf("\n");

return;

}

void paixu(int a[],int n)

{int i,j,t;

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

for(i=0;i<n-1-j;i++)

if(a[i]>a[i+1])

{t=a[i];a[i]=a[i+1];a[i+1]=t;}

}


四、 編寫一個函數(shù),統(tǒng)計字符數(shù)組中大寫字母的個數(shù)。

#include <stdio.h>

int main()

{char string[100],Le;

int count(char s[]);

printf("input string:\n");

_gets(string)__;? ? ? ? ? //輸入字符串

Le=count(string);? ? ? ? ? ? //調(diào)用count函數(shù)

printf("大寫字母有%d個",Le);

return 0;

}

int count( char s[ ] )? ? ? ?

{int sum=0,i;

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

if (s[i]>='A' && s[i]<='Z')

sum++;

? return sum;

}


五、從鍵盤輸入一個字符串,刪除其中的字母 a后輸出。例如,輸入字符串"abcaca",輸出 bcc。

#include <stdio.h>

#include <string.h>

void main()

{

? ? char a[100],b[100];int i,j=0;

gets(a);

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

if(a[i]!='a')

{b[j]=a[i];j++;}

b[j]='\0';

printf("%s\n",b);

}


六、 有一篇文章,共有3行文字,每行有80個字符,要求分別統(tǒng)計出其中英文大寫字母、小寫字母、數(shù)字、空格以及其他字符的個數(shù)。

#include <stdio.h>

#include <string.h>

void main()

{

char str[3][80];

int i,j,m=0,n=0,p=0,q=0,t=0;

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

gets(str[i]);

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

{

for(j=0;j<strlen(str[i]);j++)

{

if(str[i][j]>='A'&&str[i][j]<='Z')

m++;

else if(str[i][j]>='a'&&str[i][j]<='z')

n++;

else if(str[i][j]>='0'&&str[i][j]<='9')

p++;

else if(str[i][j]==' ')

q++;

else? t++;}

}

printf("大寫字母有%d個\n小寫字母有%d個\n數(shù)字有%d個\n空格有%d個\n其他字符有%d個\n",m,n,p,q,t);

}

七、 //求一個3×3的整數(shù)矩陣對角線元素之和。

#include <stdio.h>

void main()

{

int a[3][3],i,j,m=0;

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==j || i+j==2)

? m=m+a[i][j];

printf("%d\n",m);

}


八、 //用選擇法對10個整數(shù)排序。10個整數(shù)用scanf函數(shù)輸入。

#include <stdio.h>

void main()

{

int i,j,m,min,t,a[10];

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

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

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

{

m=i;min=a[i];

for(j=i+1;j<10;j++)

{

if(min>a[j])

{min=a[j];m=j;}

}

t=a[i];a[i]=a[m];a[m]=t;

}

printf("排序后的數(shù)組為:\n");

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

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

}


九、 //用遞歸法求Fibonacci數(shù)列第n項的值。該數(shù)列有如下的特點(diǎn):第1個數(shù)和第2個數(shù)都為1,從第3個數(shù)開臺,每個數(shù)都是其前面兩個數(shù)之和。即:

#include<stdio.h>

long Fibonacci(int n)

{ long f;

if(n==0||n==1)

f=n;

else

f=Fibonacci(n-1)+Fibonacci(n-2);

return f;

}

int main()

{

int n;

scanf("%d",&n);

printf("F(%d)=%d\n",n,Fibonacci(n));

return 0;

}


十、 //寫一個判斷素數(shù)的函數(shù),在主函數(shù)輸入一個整數(shù),輸出是否素數(shù)的信息。

要求:

(1)函數(shù)名為prime,如果是素數(shù),函數(shù)返回值為1,如果不是素數(shù),函數(shù)返回值為0。

#include<stdio.h>

int prime(int x)

{int i,f;

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

{if (x%i==0)? break;}

if(i<x)? f=0;

else f=1;

return f;}

int main()

{int prime(int x);

int a,x;

scanf("%d",&x);

a=prime(x);

if (a==1)

? printf("是素數(shù)\n");

else

? printf("不是素數(shù)\n");

return 0;}

(2)保留判別素數(shù)的函數(shù),修改主函數(shù),要求實(shí)現(xiàn)輸出100~200之前的素數(shù)。

#include<stdio.h>

int prime(int x)

{int i,f;

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

{if (x%i==0)? break;}

if(i<x)? f=0;

else f=1;

return f;}

int main()

{int prime(int x);

int a,x;

for (x=100;x<=200;x++)

{a=prime(x);

if (a==1)

? printf("%5d",x);

}

return 0;}

十一、 //輸出100以內(nèi)所有能被3整余但不能被5整除的數(shù),按每5個數(shù)的形式輸出。

#include <stdio.h>

void main()

{ int i,k=0;

? ? for (i=1;i<=100;i++)

{ if (i%3==0 && i%5!=0)

{printf("%4d",i);

? k++;

? if (k%5==0) printf("\n");

}

}

printf("\n個數(shù):%d\n",k);

}


十二、 // 輸入一行字符,分別統(tǒng)計出其中的英文字母、空格、數(shù)字和其他字符的個數(shù)。

#include <stdio.h>

void main()

{

int a=0,b=0,c=0,d=0;

char j;

for(;(j=getchar())!='\n';)

{? if('a'<=j && 'z'>=j || 'A'<=j &&'Z'>=j)

a++;

else if('0'<=j && '9'>=j)

b++;

else if(' '==j)

c++;

else d++;

}

printf("字母%d 數(shù)字%d 空格%d 其他%d\n",a,b,c,d);

}


十三、 //自己編寫一個求x的n次方的函數(shù)(函數(shù)名為power,n為整數(shù)),在主函數(shù)中輸入x和n的值,調(diào)用函數(shù)求出x的n次方。

#include<stdio.h>

double power(int x,int n)

{double t=1;

for(;n>=1;n--)

t=t*x;

return t;

}

void main()

{int x,n;

printf("輸入x和n的值:");

scanf("%d%d",&x,&n);

power(x,n);

printf("%.0f\n",power(x,n));

return;

}


十四、 /*以下程序的功能為:通過輸入年份和月份,判斷該月的天數(shù)。請?zhí)羁铡?/p>

分析:

(1)一年中1、3、5、7、8、10、12月份均為31天;4、6、9、11月份均為30天;如果該年是閏年,則2月份為29天,否則為28天。

(2)閏年的條件是:能被4整除但不能被100整除,或者能被400整除。*/

#include<stdio.h>

int main()

{ int y,m,d;

? printf("請輸入年份和月份");

? scanf("%d,%d",&y,&m);

? switch(m)

? {case 2:

? ? ? ? ? if (m%4==0&&m%100!=0 || m%400==0) //判斷是否為閏年

? d=29;

? else

? d=28;

? break;

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12: d=31;break;

case 4:

case 6:

case 9:

case 11:d=30;

? }

? printf("%d年%d月份有%d天\n",y,m,d);

return 0;

}

十五、 /*打印如下圖形。請?zhí)羁铡?/p>

? ? ? *

? ? * * *

? * * * * *

* * * * * * *

*/

#include<stdio.h>

int main()

{ int i,j;

? for (i=1;i<=4;i++)

{for (j=1;j<=10-i;j++) ? ? printf(" ");? ? //輸出*之前的空格

? for (j=1; j<=2*i-1;j++) printf("*");// 輸出每一行的"*"

? ? ? printf("\n");? ? //輸完每一行后換行

? ? }

? return 0;

}


十六、 /*輸出如下圖形。

? ? ? ? ? ? ? ? 1

? ? ? ? ? ? ? 1 2 1

? ? ? ? ? ? 1 2 3 2 1

? ? ? ? ? 1 2 3 4 3 2 1

? ? ? ? 1 2 3 4 5 4 3 2 1

? ? ? 1 2 3 4 5 6 5 4 3 2 1

? ? 1 2 3 4 5 6 7 6 5 4 3 2 1

? 1 2 3 4 5 6 7 8 7 6 5 4 3 2 1

1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1

*/

#include<stdio.h>

int main()

{ int i,j;

? for (i=1;i<=9;i++)

{for (j=1;j<=20-i;j++)? ?

printf(" ");? ?

? for (j=1;j<=i;j++)

? printf("%d",j);

? ? ? for (j=i-1;j>=1;j--)

? printf("%d",j);

? printf("\n");? ?

? ? }

? return 0;

}


十七、 // S=1/2+2/3+3/5+5/8+……? (前20項的和)? (12.278297)

#include <stdio.h>

void main()

{ int i,m=1,n=2,a;

float b,s=0;

for(i=1;i<=20;i++)

? {

b=(float)m/n;a=n;n=m+n;m=a;

s=s+b;}

printf("%f\n",s);

}


十八、 //S=1!+2!+3!+……10!進(jìn)制 (4037913)

方法一:

#include <stdio.h>

void main()

{

int i,a=1,b=0;

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

{a=a*i;

b=b+a;}

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

}

方法二:

#include<stdio.h>

void main()

{int i,s,a,n;

s=0;

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

{

? for(n=1,a=1;n<=i;n++)

? ? a=a*n;

? s=s+a;

}

printf("s=%d\n",s);

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容