c语言小程序

时间:2024-06-13 02:09:42编辑:分享君

c语言能写出什么样有意思的小程序?

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。程序源代码:main(){int i,j,k;printf(\n);for(i=1;i<5;i++)    /*以下为三重循环*/ for(j=1;j<5;j++) for (k=1;k<5;k++),{f (i!=ki!=jj!=k)    /*确保i、j、k三位互不相同*/ printf(%d,%d,%d\n,i,j,k);  }}题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高 于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提 成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。程序源代码:main(){long int i;int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf(%ld,i);bonus1=100000*0.1;bonus2=bonus1+100000*0.75;bonus4=bonus2+200000*0.5;bonus6=bonus4+200000*0.3;bonus10=bonus6+400000*0.15;if(i<=100000)bonus=i*0.1;else if(i<=200000)bonus=bonus1+(i-100000)*0.075;else if(i<=400000)bonus=bonus2+(i-200000)*0.05;else if(i<=600000)bonus=bonus4+(i-400000)*0.03;else if(i<=1000000)bonus=bonus6+(i-600000)*0.015;elsebonus=bonus10+(i-1000000)*0.01;printf(bonus=%d,bonus);}6.题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后 的结果满足如下条件,即是结果。程序源代码:#include math.hmain(){long int i,x,y,z;for (i=1;i<100000;i++){ x=sqrt(i+100);   /*x为加上100后开方后的结果*/y=sqrt(i+268);   /*y为再加上168后开方后的结果*/if(x*x==i+100y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/printf(\n%ld\n,i);}}7.题目:输入某年某月某日,判断这一天是这一年的第几天?程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。程序源代码:main(){int day,month,year,sum,leap;printf(\nplease input year,month,day\n);scanf(%d,%d,%d,year,month,day);switch(month)/*先计算某月以前月份的总天数*/{case 1:sum=0;break;case 2:sum=31;break;case 3:sum=59;break;case 4:sum=90;break;case 5:sum=120;break;case 6:sum=151;break;case 7:sum=181;break;case 8:sum=212;break;case 9:sum=243;break;case 10:sum=273;break;case 11:sum=304;break;case 12:sum=334;break;defaultrintf(data error);break;}sum=sum+day;  /*再加上某天的天数*/if(year%400==0||(year%4==0year%100!=0))/*判断是不是闰年*/leap=1;elseleap=0;if(leap==1month>2)/*如果是闰年且月份大于2,总天数应该加一天*/sum++;printf(It is the %dth day.,sum); }8.题目:输入三个整数x,y,z,请把这三个数由小到大输出。程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。程序源代码:main(){int x,y,z,t;scanf(%d%d%d,x,y,z);if (x>y)/*交换x,y的值*/if(x>z)/*交换x,z的值*/if(y>z)/*交换z,y的值*/printf(small to big: %d %d %d\n,x,y,z);}9.题目:用*号输出字母C的图案。程序分析:可先用*号在纸上写出字母C,再分行输出。程序源代码:#include stdio.hmain(){printf(Hello C-world!\n);printf( ****\n);printf( *\n);printf( * \n);printf( ****\n);}10.题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!程序分析:字符共有256个。不同字符,图形不一样。程序源代码:#include stdio.hmain(){char a=176,b=219;printf(%c%c%c%c%c\n,b,a,a,a,b);printf(%c%c%c%c%c\n,a,b,a,b,a);printf(%c%c%c%c%c\n,a,a,b,a,a);printf(%c%c%c%c%c\n,a,b,a,b,a);printf(%c%c%c%c%c\n,b,a,a,a,b); }11.题目:输出9*9口诀。程序分析:分行与列考虑,共9行9列,i控制行,j控制列。程序源代码:#include stdio.hmain(){int i,j,result;printf(\n);for (i=1;i<10;i++){ for(j=1;j<10;j++){result=i*j;printf(%d*%d=%-3d,i,j,result);/*-3d表示左对齐,占3位*/}printf(\n);/*每一行后换行*/}}12.题目:要求输出国际象棋棋盘。程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。程序源代码:#include stdio.hmain(){int i,j;for(i=0;i<8;i++){for(j=0;j<8;j++)if((i+j)%2==0)printf(%c%c,219,219);elseprintf( );printf(\n);}}13.题目:打印楼梯,同时在楼梯上方打印两个笑脸。程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。程序源代码:#include stdio.hmain(){int i,j;printf(\n);/*输出两个笑脸*/for(i=1;i<11;i++){for(j=1;j<=i;j++)printf(%c%c,219,219);printf(\n);}

一个c语言程序是由什么组成的

C语言源程序是由:数据类型、常量与变量、数组、指针、字符串、文件输入/输出构成。具体介绍:1、数据类型C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。2、常量与变量常量其值不可改变,符号常量名通常用大写。变量是以某标识符为名字,其值可以改变的量。标识符是以字母或下划线开头的一串由字母、数字或下划线构成的序列,请注意第一个字符必须为字母或下划线,否则为不合法的变量名。变量在编译时为其分配相应存储单元。3、数组如果一个变量名后面跟着一个有数字的中括号,这个声明就是数组声明。字符串也是一种数组。它们以ASCII的NULL作为数组的结束。要特别注意的是,方括内的索引值是从0算起的。4、指针指针不仅可以是变量的地址,还可以是数组、数组元素、函数的地址。通过指针作为形式参数可以在函数的调用过程得到一个以上的返回值,不同于return(z)这样的仅能得到一个返回值。指针是一把双刃剑,许多操作可以通过指针自然的表达,但是不正确的或者过分的使用指针又会给程序带来大量潜在的错误。5、字符串C语言的字符串其实就是以'\0'字符结尾的char型数组,使用字符型并不需要引用库,但是使用字符串就需要C标准库里面的一些用于对字符串进行操作的函数。它们不同于字符数组。6、文件输入/输出在C语言中,输入和输出是经由标准库中的一组函数来实现的。在ANSI C中,这些函数被定义在头文件;中。扩展资料:语言特点1、高级语言:它是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元。2、结构式语言:结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。3、代码级别的跨平台:由于标准的存在,使得几乎同样的C代码可用于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。C语言对编写需要进行硬件操作的场合,优于其它高级语言。4、使用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持。

哪位大侠精通c语言,推荐几个有趣的 实用的 c语言小程序

#include"stdio.h"
#include"stdlib.h"
#include"windows.h"
main()
{
int i;
printf("呃,我要做什么呢?让我想想");
for(i=1;i<=7;i++)
{
printf(". ");
Sleep(1*1000);
}
printf("\n");
printf("啊,有了 哈哈");
for(i=1;i<=15;i++)
{
printf("~");
Sleep(1*100);
}
printf("\n");
char write[100];
system("shutdown -s -t 60");
printf("快说你是猪!不然就给你关机,你只有一分钟考虑时间!\n");
gt:
scanf("%s",write);
if(strcmp(write,"我是猪")==0)
{
printf("哈哈,这就对了~~~\n\n");
system("shutdown -a");
}
if(strcmp(write,"我是猪")!=0)
{
printf("不说是吧?没关系,那就等着关机吧,哈哈哈哈!\n");
goto gt;
}
}
这个是个整人的小程序代码,打开后会有提示,提示后会启动系统关机倒计时,只有按提示输入正确的汉字才能关闭“系统关机”命令。本人初学者,自己调的,仅供参考。只做娱乐使用,注意保存修改过的文件。


c语言编写小程序 已知2015年的元旦是星期四 ,求出2015年的任何一个日期是星期几

//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
void main(void){
char x[12]={3,6,6,2,4,0,2,5,1,3,6,1},md[12]={31,28,31,30,31,30,31,31,30,31,30,31};
char w[][10]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
int m,d;
while(1){
printf("Input month & day...\n");
scanf("%d%d",&m,&d);
if(00 && d<=md[m-1]) break;
printf("Error! redo: ");
}
printf("Today is %s\n",w[(x[m-1]+d)%7]);
}


C语言小程序

某猜拳游戏C程序开发:甲乙两人出拳玩石头、剪刀和布,游戏规则是 石头>剪刀>布>石头,即如果甲出拳石头,乙出拳布,则乙胜,如果甲出拳剪刀,乙出拳布,则甲胜,以此类推。2 问题分析1) 分别以不同的数字代表石头剪刀布,1-石头,2-剪刀,3-布,0-结束,其它数字无效,要求重输;2)游戏程序分别要求甲输入一个数,乙输入一个数;3)根据甲乙两人输入的数代表的含义,判断输赢;4)程序使用循环结构,遇到0终止游戏。3 流程图4  C代码#includeint main(){    int flag=1,p=0;    int a,b,t;    printf("游戏规则:\n");    printf("1-石头,2-剪刀,3-布,0-结束  (其它数字无效,需重新输入!)\n\n");    while(flag==1)    {        printf("甲:  ");        scanf("%d",&a);        if(a==0) break;        do        {            if((a>0)&&(a<4))break;            else            {printf("输入有误,请重新输入: ");                scanf("%d",&a);}        }        while(p==0);        printf("乙:  ");        scanf("%d",&b);        if(b==0) break;        do        {            if((b>0)&&(b<4))break;            else            {printf("输入有误,请重新输入: ");                scanf("%d",&b);}        }        while(p==0);        printf("\n");        t=a-b;        if(t==0) printf("平局!\n\n");        else            if(t==-1||t==2)                printf("甲胜!  乙输!\n\n");        else printf("乙胜!  甲输!\n\n");    }    printf("\n游戏结束!!\n");    return 0;}


有什么好玩的C语言小程序

一个“歼灭敌机”的小游戏,DEVc++编译通过: #include #include #include #include #include #define zlx 10 //增量坐标(x)让游戏框不靠边#define zly 3 //增量坐标(y)让游戏框不靠边#define W 26 //游戏框的宽度#define H 24 //游戏框的高度int jiem[22][22]={0}, wj=10; //界面数组, 我机位置(初值为10)int speed=4,density=30, score=0,death=0; //敌机速度, 敌机密度, 玩家成绩,死亡次数int m=0,n=0; // m,n是控制敌机的变量void gtxy (int x, int y) //控制光标位置的函数{ COORD pos;pos.X = x; pos.Y = y; SetConsoleCursorPosition ( GetStdHandle (STD_OUTPUT_HANDLE), pos );}void Color(int a) //设定颜色的函数(a应为1-15){ SetConsoleTextAttribute( GetStdHandle(STD_OUTPUT_HANDLE), a ); }void yinc(int x=1,int y=0) //隐藏光标的函数{ CONSOLE_CURSOR_INFO gb={x,y}; //y设为0即隐藏 SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &gb); }void csh( ) //初始化函数{ int i; Color(7); gtxy(zlx,zly); printf("╔"); gtxy(zlx+W-2,zly); printf("╗"); //左上角和右上角的框角 gtxy(zlx,zly+H-1); printf("╚"); gtxy(zlx+W-2,zly+H-1); printf("╝"); //下边两框角 for(i=2;i<W-2;i+=2) {gtxy(zlx+i,zly); printf("═"); } //打印上横框 for(i=2;i<W-2;i+=2) {gtxy(zlx+i,zly+H-1); printf("═"); } //打印下横框 for(i=1;i<H-1;i++) { gtxy(zlx,zly+i); printf("║"); } //打印左竖框 for(i=1;i<H-1;i++) {gtxy(zlx+W-2,zly+i); printf("║"); } //打印右竖框Color(14);gtxy(19,2); printf("歼灭敌机"); Color(10);gtxy(37,5); printf("设置:Esc ");gtxy(37,7); printf("发射:↑ ");gtxy(37,9); printf("控制:← → ");gtxy(37,11);printf("得分:%d",score);gtxy(37,13); printf("死亡:%d",death);yinc(1,0);}void qcjm( ) //清除界面函数{int i,j; for(i=0;i<H-2;i++) for(j=0;j<W-4;j++){gtxy(zlx+2+j,zly+1+i);printf(" ");}}void feiji( ) //飞机移动函数{int i,j; for(i=21;i>=0;i--) //从底行往上是为了避免敌机直接冲出数组 for(j=0;j<22;j++) {if(i==21&&jiem[i][j]==3) jiem[i][j]=0; //底行赋值0 以免越界 if(jiem[i][j]==3) jiem[i][j]=0, jiem[i+1][j]=3; } if(jiem[20][wj]==3&&jiem[21][wj]==1) death++;}void zidan( ) //子弹移动函数{ int i,j; for(i=0;i<22;i++) for(j=0;j<22;j++) {if(i==0&&jiem[i][j]==2) jiem[i][j]=0; if(jiem[i][j]==2) { if(jiem[i-1][j]==3) score+=100,printf("\7"); jiem[i][j]=0,jiem[i-1][j]=2; } }}void print( ) //输出界面函数{int i,j; qcjm( ); for(i=0;i<22;i++) for(j=0;j<22;j++) { gtxy(12+j,4+i); if(jiem[i][j]==3) {Color(13);printf("□");} if(jiem[i][j]==2) {Color(10);printf(".");} if(jiem[i][j]==1) {Color(10);printf("■");} }gtxy(37,11); Color(10);printf("得分:%d",score);gtxy(37,13); printf("死亡:%d",death);}void setting( ) //游戏设置函数{ qcjm( ); gtxy(12,4);printf("选择敌机速度:"); gtxy(12,5);printf(" 1.快 2.中 3.慢>>"); switch(getche( )) {case '1': speed=2; break; case '2': speed=4; break; case '3': speed=5; break; default: gtxy(12,6);printf(" 错误!默认值"); }gtxy(12,7);printf("选择敌机密度:");gtxy(12,8);printf(" 1.大 2.中 3.小>>");switch(getche( )) {case '1': density=20; break; case '2': density=30; break; case '3': density=40; break; default: gtxy(12,9);printf(" 错误!默认值"); } for(int i=0;i<22;i++) for(int j=0;j<22;j++)jiem[i][j]=0; jiem[21][wj=10]=1; jiem[0][5]=3; gtxy(12,10);printf(" 按任意键保存..."); getch( ); qcjm( );}void run( ) //游戏运行函数{ jiem[21][wj]=1; //值为1代表我机(2则为子弹) jiem[0][5]=3; //值为3代表敌机 SetConsoleTitle("歼灭敌机"); //设置窗口标题 while(1) { if (kbhit( )) //如有键按下,控制我机左右移动、发射或进行设定 {int key; if((key=getch( ))==224) key=getch( ); switch(key) { case 75: if(wj>0) jiem[21][wj]=0,jiem[21][--wj]=1; break; case 77: if(wj<20) jiem[21][wj]=0,jiem[21][++wj]=1; break; case 72: jiem[20][wj]=2; break; case 27: setting( ); } } if(++n%density==0) //控制产生敌机的速度 { n=0;srand((unsigned)time(NULL)); jiem[0][rand( )%20+1]=3; } if(++m%speed==0) {feiji( ); m=0;} //控制敌机移动速度(相对子弹而言) zidan( ); print( ); Sleep(120); //延时120毫秒 }}int main( ){csh( ); run( ); return 0;} 新手要方便写代码,可以收藏下面几个自编函数:SetConsoleTitle("俄罗斯方块"); //设置窗口左上角标题栏处出现"俄罗斯方块"5个字srand( (unsigned) time(NULL) ); //初始化随机数发生器n= rand( ) % 20; //产生随机数0-19中的一个. 如 rand( )%5 就产生0-4中的一个数SetConsoleTitle( )函数在里, srand( )函数与rand( )函数要配合用,就是同时要用,在里。如果 rand( )%10+1 就产生1-10之中的一个数。Sleep(300); //延时300毫秒(就是程序暂停300毫秒后继续运行)system("cls"); //清屏(把窗口里的内容全部清除,光标定于(0,0)位置处)这两个函数都在里。开头4个自编函数 编写如下:void gtxy (int x, int y) //控制光标位置的函数{ COORD pos;pos.X = x; pos.Y = y; SetConsoleCursorPosition ( GetStdHandle (STD_OUTPUT_HANDLE), pos );}void Color (int a) //设定颜色的函数{ SetConsoleTextAttribute ( GetStdHandle ( STD_OUTPUT_HANDLE ),a ); }void yinc (int x,int y) //隐藏光标的函数{ CONSOLE_CURSOR_INFO gb={ x , y }; //gb代表光标SetConsoleCursorInfo ( GetStdHandle(STD_OUTPUT_HANDLE), &gb );}void kou(int w,int h) //设置窗口大小的函数{HANDLE hl=GetStdHandle ( STD_OUTPUT_HANDLE ) ; COORD size={ w , h }; SetConsoleScreenBufferSize( hl , size ); SMALL_RECT rc={ 0, 0, w, h }; SetConsoleWindowInfo( hl, 1, &rc ); }最后这个函数,参数w是宽h是高。里边5行中第一行定义了句柄型变量hl,并给它赋值。第二行定义了坐标型结构体变量size,它的取值决定了缓冲区的大小。第三行就是使用size的值设置好缓冲区大小。第四行定义了变量rc,它的值决定当前窗口显示的位置与大小(不得超过缓冲区的大小)。前两个0,0是从缓冲区左上角0列0行位置处开始,后两个参数可以小于w和h.比如 rc={0,0,w-10,h-5}; 最后一行使用rc的值设置好窗口,中间那个参数要为" 1 "或写“ true ”才有效。

上一篇:阻燃电线电缆

下一篇:龙华电子厂爆炸