回望

一、指针 用指针方法编写一个程序,输入 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);

}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,393评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,790评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,391评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,703评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,613评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,003评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,507评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,158评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,300评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,256评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,274评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,984评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,569评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,662评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,899评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,268评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,840评论 2 339

推荐阅读更多精彩内容