声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

楼主: 风花雪月

[C/C++] 经典C语言50例子(转贴)

 关闭 [复制链接]
 楼主| 发表于 2008-9-15 17:25 | 显示全部楼层
【程序31】
题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续
   判断第二个字母。
1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。
2.程序源代码:
  1. #include <stdio.h>

  2. void main()

  3. {

  4. char letter;

  5. printf("please input the first letter of someday\n");

  6. while ((letter=getch())!='Y')/*当所按字母为Y时才结束*/

  7. { switch (letter)

  8. {case 'S':printf("please input second letter\n");

  9.      if((letter=getch())=='a')

  10.       printf("saturday\n");

  11.      else if ((letter=getch())=='u')

  12.          printf("sunday\n");

  13.        else printf("data error\n");

  14.      break;

  15. case 'F':printf("friday\n");break;

  16. case 'M':printf("monday\n");break;

  17. case 'T':printf("please input second letter\n");

  18.      if((letter=getch())=='u')

  19.       printf("tuesday\n");

  20.      else if ((letter=getch())=='h')

  21.          printf("thursday\n");

  22.        else printf("data error\n");

  23.      break;

  24. case 'W':printf("wednesday\n");break;

  25. default: printf("data error\n");

  26.   }

  27.  }

  28. }
复制代码

==============================================================
【程序32】
题目:Press any key to change color, do you want to try it. Please hurry up!
1.程序分析:            
2.程序源代码:
  1. #include <conio.h>

  2. void main(void)

  3. {

  4. int color;

  5. for (color = 0; color < 8; color++)

  6.  {

  7.  textbackground(color);/*设置文本的背景颜色*/

  8.  cprintf("This is color %d\r\n", color);

  9.  cprintf("Press any key to continue\r\n");

  10.  getch();/*输入字符看不见*/

  11.  }

  12. }
复制代码
回复 支持 反对
分享到:

使用道具 举报

 楼主| 发表于 2008-9-15 17:26 | 显示全部楼层
【程序33】
题目:学习gotoxy()与clrscr()函数   
1.程序分析:
2.程序源代码:
  1. #include <conio.h>

  2. void main(void)

  3. {

  4. clrscr();/*清屏函数*/

  5. textbackground(2);

  6. gotoxy(1, 5);/*定位函数*/

  7. cprintf("Output at row 5 column 1\n");

  8. textbackground(3);

  9. gotoxy(20, 10);

  10. cprintf("Output at row 10 column 20\n");

  11. }
复制代码

==============================================================
【程序34】
题目:练习函数调用
1. 程序分析:
2.程序源代码:
  1. #include <stdio.h>

  2. void hello_world(void)

  3. {

  4. printf("Hello, world!\n");

  5. }

  6. void three_hellos(void)

  7. {

  8. int counter;

  9. for (counter = 1; counter <= 3; counter++)

  10. hello_world();/*调用此函数*/

  11. }

  12. void main(void)

  13. {

  14. three_hellos();/*调用此函数*/

  15. }
复制代码
 楼主| 发表于 2008-9-15 17:27 | 显示全部楼层
【程序37】
题目:对10个数进行排序
1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,
      下次类推,即用第二个元素与后8个进行比较,并进行交换。       
2.程序源代码:
  1. #define N 10

  2. main()

  3. {int i,j,min,tem,a[N];

  4. /*input data*/

  5. printf("please input ten num:\n");

  6. for(i=0;i<N;i++)

  7. {

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

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

  10. printf("\n");

  11. for(i=0;i<N;i++)

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

  13. printf("\n");

  14. /*sort ten num*/

  15. for(i=0;i<N-1;i++)

  16. {min=i;

  17. for(j=i+1;j<N;j++)

  18. if(a[min]>a[j]) min=j;

  19. tem=a[i];

  20. a[i]=a[min];

  21. a[min]=tem;

  22. }

  23. /*output data*/

  24. printf("After sorted \n");

  25. for(i=0;i<N;i++)

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

  27. }
复制代码

==============================================================
【程序38】
题目:求一个3*3矩阵对角线元素之和
1.程序分析:利用双重for循环控制输入二维数组,再将a累加后输出。
2.程序源代码:
  1. main()

  2. {

  3. float a[3][3],sum=0;

  4. int i,j;

  5. printf("please input rectangle element:\n");

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

  7.  for(j=0;j<3;j++)

  8.  scanf("%f",&a[i][j]);

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

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

  11. printf("duijiaoxian he is %6.2f",sum);

  12. }
复制代码
 楼主| 发表于 2008-9-15 17:27 | 显示全部楼层
【程序39】
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后
     此元素之后的数,依次后移一个位置。
2.程序源代码:
  1. main()

  2. {

  3. int a[11]={1,4,6,9,13,16,19,28,40,100};

  4. int temp1,temp2,number,end,i,j;

  5. printf("original array is:\n");

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

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

  8. printf("\n");

  9. printf("insert a new number:");

  10. scanf("%d",&number);

  11. end=a[9];

  12. if(number>end)

  13.  a[10]=number;

  14. else

  15.  {for(i=0;i<10;i++)

  16.   { if(a[i]>number)

  17.    {temp1=a[i];

  18.     a[i]=number;

  19.    for(j=i+1;j<11;j++)

  20.    {temp2=a[j];

  21.     a[j]=temp1;

  22.     temp1=temp2;

  23.    }

  24.    break;

  25.    }

  26.   }

  27. }

  28. for(i=0;i<11;i++)

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

  30. }
复制代码

==============================================================
【程序40】
题目:将一个数组逆序输出。
1.程序分析:用第一个与最后一个交换。
2.程序源代码:
  1. #define N 5

  2. main()

  3. { int a[N]={9,6,5,4,1},i,temp;

  4.  printf("\n original array:\n");

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

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

  7.  for(i=0;i<N/2;i++)

  8.  {temp=a[i];

  9.   a[i]=a[N-i-1];

  10.   a[N-i-1]=temp;

  11.  }

  12. printf("\n sorted array:\n");

  13. for(i=0;i<N;i++)

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

  15. }
复制代码
 楼主| 发表于 2008-9-15 17:27 | 显示全部楼层
【程序41】
题目:学习static定义静态变量的用法   
1.程序分析:
2.程序源代码:
  1. #include "stdio.h"

  2. varfunc()

  3. {

  4. int var=0;

  5. static int static_var=0;

  6. printf("\40:var equal %d \n",var);

  7. printf("\40:static var equal %d \n",static_var);

  8. printf("\n");

  9. var++;

  10. static_var++;

  11. }

  12. void main()

  13. {int i;

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

  15.   varfunc();

  16. }
复制代码

==============================================================
【程序42】
题目:学习使用auto定义变量的用法
1.程序分析:      
2.程序源代码:
  1. #include "stdio.h"

  2. main()

  3. {int i,num;

  4. num=2;

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

  6.  { printf("\40: The num equal %d \n",num);

  7.   num++;

  8.   {

  9.   auto int num=1;

  10.   printf("\40: The internal block num equal %d \n",num);

  11.   num++;

  12.   }

  13.  }

  14. }
复制代码
 楼主| 发表于 2008-9-15 17:28 | 显示全部楼层
【程序43】
题目:学习使用static的另一用法。   
1.程序分析:
2.程序源代码:
  1. #include "stdio.h"

  2. main()

  3. {

  4. int i,num;

  5. num=2;

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

  7. {

  8. printf("\40: The num equal %d \n",num);

  9. num++;

  10. {

  11. static int num=1;

  12. printf("\40:The internal block num equal %d\n",num);

  13. num++;

  14. }

  15. }

  16. }
复制代码

==============================================================
【程序44】
题目:学习使用external的用法。
1.程序分析:
2.程序源代码:
  1. #include "stdio.h"

  2. int a,b,c;

  3. void add()

  4. { int a;

  5. a=3;

  6. c=a+b;

  7. }

  8. void main()

  9. { a=b=4;

  10. add();

  11. printf("The value of c is equal to %d\n",c);

  12. }
复制代码
 楼主| 发表于 2008-9-15 17:28 | 显示全部楼层
【程序45】
题目:学习使用register定义变量的方法。
1.程序分析:
2.程序源代码:
  1. void main()

  2. {

  3. register int i;

  4. int tmp=0;

  5. for(i=1;i<=100;i++)

  6. tmp+=i;

  7. printf("The sum is %d\n",tmp);

  8. }
复制代码

==============================================================
【程序46】
题目:宏#define命令练习(1)   
1.程序分析:
2.程序源代码:
  1. #include "stdio.h"

  2. #define TRUE 1

  3. #define FALSE 0

  4. #define SQ(x) (x)*(x)

  5. void main()

  6. {

  7. int num;

  8. int again=1;

  9. printf("\40: Program will stop if input value less than 50.\n");

  10. while(again)

  11. {

  12. printf("\40:Please input number==>");

  13. scanf("%d",&num);

  14. printf("\40:The square for this number is %d \n",SQ(num));

  15. if(num>=50)

  16.  again=TRUE;

  17. else

  18.  again=FALSE;

  19. }

  20. }
复制代码
 楼主| 发表于 2008-9-15 17:28 | 显示全部楼层
【程序47】
题目:宏#define命令练习(2)
1.程序分析:            
2.程序源代码:
  1. #include "stdio.h"

  2. #define exchange(a,b) { \ /*宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上""*/

  3.             int t;\

  4.             t=a;\

  5.             a=b;\

  6.             b=t;\

  7.            }

  8. void main(void)

  9. {

  10. int x=10;

  11. int y=20;

  12. printf("x=%d; y=%d\n",x,y);

  13. exchange(x,y);

  14. printf("x=%d; y=%d\n",x,y);

  15. }
复制代码

==============================================================
【程序48】
题目:宏#define命令练习(3)   
1.程序分析:
2.程序源代码:
  1. #define LAG >

  2. #define SMA <

  3. #define EQ ==

  4. #include "stdio.h"

  5. void main()

  6. { int i=10;

  7. int j=20;

  8. if(i LAG j)

  9. printf("\40: %d larger than %d \n",i,j);

  10. else if(i EQ j)

  11. printf("\40: %d equal to %d \n",i,j);

  12. else if(i SMA j)

  13. printf("\40:%d smaller than %d \n",i,j);

  14. else

  15. printf("\40: No such value.\n");

  16. }
复制代码
 楼主| 发表于 2008-9-15 17:29 | 显示全部楼层
【程序49】
题目:#if #ifdef和#ifndef的综合应用。
1. 程序分析:
2.程序源代码:
  1. #include "stdio.h"

  2. #define MAX

  3. #define MAXIMUM(x,y) (x>y)?x:y

  4. #define MINIMUM(x,y) (x>y)?y:x

  5. void main()

  6. { int a=10,b=20;

  7. #ifdef MAX

  8. printf("\40: The larger one is %d\n",MAXIMUM(a,b));

  9. #else

  10. printf("\40: The lower one is %d\n",MINIMUM(a,b));

  11. #endif

  12. #ifndef MIN

  13. printf("\40: The lower one is %d\n",MINIMUM(a,b));

  14. #else

  15. printf("\40: The larger one is %d\n",MAXIMUM(a,b));

  16. #endif

  17. #undef MAX

  18. #ifdef MAX

  19. printf("\40: The larger one is %d\n",MAXIMUM(a,b));

  20. #else

  21. printf("\40: The lower one is %d\n",MINIMUM(a,b));

  22. #endif

  23. #define MIN

  24. #ifndef MIN

  25. printf("\40: The lower one is %d\n",MINIMUM(a,b));

  26. #else

  27. printf("\40: The larger one is %d\n",MAXIMUM(a,b));

  28. #endif

  29. }
复制代码

==============================================================
【程序50】
题目:#include 的应用练习   
1.程序分析:
2.程序源代码:
test.h 文件如下:
  1. #define LAG >

  2. #define SMA <

  3. #define EQ ==

  4. #include "test.h" /*一个新文件50.c,包含test.h*/

  5. #include "stdio.h"

  6. void main()

  7. { int i=10;

  8. int j=20;

  9. if(i LAG j)

  10. printf("\40: %d larger than %d \n",i,j);

  11. else if(i EQ j)

  12. printf("\40: %d equal to %d \n",i,j);

  13. else if(i SMA j)

  14. printf("\40:%d smaller than %d \n",i,j);

  15. else

  16. printf("\40: No such value.\n");

  17. }
复制代码
发表于 2008-9-18 11:38 | 显示全部楼层
这些例子虽然简单,但是非常的实用!谢谢分享!
发表于 2008-9-19 12:35 | 显示全部楼层
好象计算机等级考试题,怎么还有伪码啊?
发表于 2008-9-22 10:03 | 显示全部楼层
呵呵,可能也是转载的吧
 楼主| 发表于 2008-10-4 10:00 | 显示全部楼层
发表于 2009-6-29 09:57 | 显示全部楼层

回复 15楼 风花雪月 的帖子

看到你发了很多代码,并且是教研室主任级别,特此询问。

我现在想做一个带通滤波器,带通范围10Hz--30Hz,主要是想滤掉60Hz噪声干扰,采集到10Hz--30Hz的正弦信号,采样频率1000Hz,想问问你是否有这方面的C/C++代码,我找了好久,都是matlab的代码。

低通滤波也可以,截止频率为35Hz。

我是信号处理的新手,知之较少,还请帮助,谢谢了。
发表于 2009-9-24 16:20 | 显示全部楼层
确实很实用啊
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-23 20:19 , Processed in 0.056628 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表