回望

作者: 逍遥_9353 | 来源:发表于2018-01-16 14:11 被阅读37次

一、指针 用指针方法编写一个程序,输入 3 个整数,将它们按由小到大的顺序输出

#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);

  } 

二、 编写一个函数,将一个字符串中的元音字母复制到另一个字符串,然后在主函数中输出。

#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;

}

三、写一函数,对输入的一组整数按由小到大的顺序排序,在main主函数调用该函数实现排序 。

#include<stdio.h>

void main()

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

int a[100],i,n;

printf("需要对多少数进行排序:");

scanf("%d",&n);

printf("请输入要排序的一组数(用空格隔开):");

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;}

}

四、 编写一个函数,统计字符数组中大写字母的个数。

#include <stdio.h>

int main()

{char string[100],Le;

int count(char s[]);

printf("input string:\n");

_gets(string)__;          //输入字符串

Le=count(string);            //调用count函数

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个字符,要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。

#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数字有%d个\n空格有%d个\n其他字符有%d个\n",m,n,p,q,t);

}

七、 //求一个3×3的整数矩阵对角线元素之和。

#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个整数排序。10个整数用scanf函数输入。

#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("排序后的数组为:\n");

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

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

}

九、 //用递归法求Fibonacci数列第n项的值。该数列有如下的特点:第1个数和第2个数都为1,从第3个数开台,每个数都是其前面两个数之和。即:

#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;

}

十、 //写一个判断素数的函数,在主函数输入一个整数,输出是否素数的信息。

要求:

(1)函数名为prime,如果是素数,函数返回值为1,如果不是素数,函数返回值为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("是素数\n");

else

  printf("不是素数\n");

return 0;}

(2)保留判别素数的函数,修改主函数,要求实现输出100~200之前的素数。

#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以内所有能被3整余但不能被5整除的数,按每5个数的形式输出。

#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个数:%d\n",k);

}

十二、 // 输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。

#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 数字%d 空格%d 其他%d\n",a,b,c,d);

}

十三、 //自己编写一个求x的n次方的函数(函数名为power,n为整数),在主函数中输入x和n的值,调用函数求出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;

}

十四、 /*以下程序的功能为:通过输入年份和月份,判断该月的天数。请填空。

分析:

(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;

}

十五、 /*打印如下图形。请填空。

      *

    * * *

  * * * * *

* * * * * * *

*/

#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!进制 (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);

}

相关文章

  • 《回望》之回望

    久闻金宇澄大名,这回就碰上他的新书《回望》(广西师范大学出版社,2017),是一本多线叙事的非虚构作品:他的父亲,...

  • 回望,回望着停留

    最近感觉时间过得很快,一天天的过着,来到大学已经快两年了,和以前中心的期待大不相同,自己在大学里变得特别迷茫、特...

  • 回望

    寻不到你的足迹,无意把誓言说给风听 风儿微带着叹息,吹动了门前的风铃 风铃里藏着故事,摇曳着谁的一生 惊鸿一瞥的面...

  • 回望

    快乐的漂泊 在柔柔的春风中 你会想起家乡的味道么… 面对忧蓝的天空 你回忆起去年今日的傍晚了吗 站在黄昏似的路灯下...

  • 回望

    回望 文/与你相识 五月的时光 还剩一堆花的语言 能够记起的 只是一声祝福 还有什么必须唤醒 我们紧挨着大地前行 ...

  • 回望

    文/曼曼 槐花丛中,倚栏远眺,目光灼灼,翘首以盼,蜂蝶缠绵,叶上梢头,月落梨园。 ...

  • 回望

    溜进空谷 大声地向我看向的那里呼唤了一声 没有人应 就连自己也分不清原声和回音 登上黄河旁的高原 向着那辽阔的远方...

  • 回望

    那时候我们有梦 关于文学 关于爱情 关于穿越世界的旅行 如今我们深夜饮酒 杯子碰到一起 都是梦破碎的声音 ...

  • 回望

    文|璇子 经历总会被时间抚平 回忆里的刻骨铭心 终究只是一去不复返 像花一样灿烂地笑 无所顾忌一路折腾 真好,这才...

  • 回望

    现在微信用的多了,QQ已经淡出了我的视线,现在我身边的几乎很少有人玩QQ,我看到玩QQ的基本上都是小孩子在玩。向我...

网友评论

    本文标题:回望

    本文链接:https://www.haomeiwen.com/subject/ssusoxtx.html