第一篇:学习C语言之用if语句比较三个数的大小
# include
{
max=a;
min =b;
} else
{
max=b;
min =a;
} if(max { max=c; } if(min>c) { min=c; } printf(”max=%d,min=%d",max.min); return 0;} 述: 输入三个整数x,y,z,请把这三个数由小到大输出。输入: 输入数据包含3个整数x,y,z,分别用逗号隔开。输出: 输出由小到大排序后的结果,用空格隔开。样例输入 2,1,3 样例输出2 3 #include int main() { int *p1,p,*p2,*p3,a,b,c; scanf(“%d,%d,%d”,&a,&b,&c); p1=&a; p2=&b; p3=&c; if(*p1>*p2) {p=*p1;*p1=*p2;*p2=p;} if(*p1>*p3) {p=*p1;*p1=*p2;*p2=p;} if(*p2>*p3) {p=*p2;*p2=*p3;*p3=p;} if(*p1>*p3) {p=*p1;*p1=*p2;*p2=p;} if(*p2>*p3) {p=*p2;*p2=*p3;*p3=p;} printf(“%d %d %dn”,a,b,c); return 0; } C语言程序延时 Keil C51的编程语言常用的有2种:一种是汇编语言;另一种是C 语言。用汇编语言写单片机程序时,精确时间延时是相对容易解决的。比如,用的是晶振频率为12 MHz的AT 89C51,打算延时20 μs,51单片机的指令周期是晶振频率的1/12,即一个机器周期为1 μs;“MOV R0,#X”需要2个机器周期,DJNZ也需要2个机器周期,单循环延时时间t=2X+3(X为装入寄存器R0的时间常数)[2]。这样,存入R0里的数初始化为8即可,其精度可以达到1 μs。用这种方法,可以非常方便地实现512 μs以下时间的延时。如果需要更长时间,可以使用两层或更多层的嵌套,当然其精度误差会随着嵌套层的增加而成倍增加。 C程序中可使用不同类型的变量来进行延时设计。经实验测试,使用unsigned char类型具有比unsigned int更优化的代码,在使用时应该使用unsigned char作为延时变量。 有人说如果while里面不能放其它语句,否则也不行,用do-while就可以,具体怎样我没有去试.所有这些都没有给出具体的实例程序来.还看到一些延时的例子多多少少总有点延时差.为此我用for循环写了几个延时的子程序贴上来,希望能对初学者有所帮助.(晶振12MHz,一个机器周期1us.)一.500ms延时子程序 程序: void delay500ms(void) { unsigned char i,j,k; for(i=15;i>0;i--) for(j=202;j>0;j--) for(k=81;k>0;k--); } 计算分析: 程序共有三层循环 一层循环n:R5*2 = 81*2 = 162us DJNZ 2us 二层循环m:R6*(n+3)= 202*165 = 33330us DJNZ 赋值 1us = 3us 2us + R5 三层循环: R7*(m+3)= 15*33333 = 499995us DJNZ 2us + R6赋值 1us = 3us 循环外: 5us 子程序调用 2us + 子程序返回 2us + R7赋值 1us = 5us 延时总时间 = 三层循环 + 循环外 = 499995+5 = 500000us =500ms 计算公式:延时时间=[(2*R5+3)*R6+3]*R7+5 二.200ms延时子程序 程序: void delay200ms(void){ unsigned char i,j,k; for(i=5;i>0;i--) for(j=132;j>0;j--) for(k=150;k>0;k--);} 三.10ms延时子程序 程序: void delay10ms(void){ unsigned char i,j,k; for(i=5;i>0;i--) for(j=4;j>0;j--) for(k=248;k>0;k--);} 四.1s延时子程序 程序: void delay1s(void){ unsigned char h,i,j,k; for(h=5;h>0;h--)for(i=4;i>0;i--) for(j=116;j>0;j--) for(k=214;k>0;k--);} 1、putchar函数: putchar函数(字符输出函数)的作用是向终端输出一个字符。 一般形式为:putchar(c)输出字符变量c的值。 #include void main() { char a,b,c; a=‟A‟;b=‟B‟;c=‟C‟; putchar(a);putchar(b);putchar(c);putchar(„n‟); } 运行结果:ABC2、Getchar函数 getchar函数(字符输入函数)的作用是从终端(系统隐含指定的输入设备)输入一个字符。getchar函数没有参数,一般形式为:getchar() #include void main() { char c; c= getchar(); putchar(c); putchar(„n‟);//换行; } 运行结果:输出从键盘输入的字符 另外:putchar(getchar());或者 printf(„%c‟, getchar()); 3、printf函数 printf函数(格式输入函数),它的作用是向终端(或隐含指定的输出设备)输出若干个任意类型的数据。 printf的一般格式为printf(格式控制,输出列表) 例如:printf(”%d,%cn”,i,c) 4、scanf函数 scanf(格式输入函数)的作用是从终端(系统隐含指定的输入设备)输入若干个任意类型的数据。 一般形式为:scanf(格式控制,地址列表) 1、if语句: ********************* if(表达式) 语句; ********************* if(表达式) 语句1; else 语句2; ********************* if(表达式1)语句1; else if(表达式2)语句2; else if(表达式3)语句3; else if(表达式m)语句m; else 语句n ********************* If语句的嵌套 if(表达式) if(表达式)语句1 else语句2 else if(表达式)语句3 else语句 42、switch语句 switch(表达式) { case 常量表达式1: 语句1 case常量表达式2: 语句2 case常量表达式n: 语句n default : 语句n+1 } 3、goto语句 goto语句为无条件转向语句,一般格式为:goto语句标号; goto label_1; 求1至100的累加和; #include void main() { int i,sum=0; i=1; loop:for(i<=100) { sum=sum+I; i++; goto loop; } printf(“%dn”,sum); } 4、while语句 while语句用来实现“当型”循环结构。一般形式如下: while(表达式)语句当表达式非0值时,执行while语句中的内嵌套语句,先判断后执行。求1至100的累加和; #include void main() { int i,sum=0; i=100; while(i) { sum=sum+i; i--; } printf(“%dn”,sum) } #include void main() { int i,sum=0; i=1; while(i<=100) { sum=sum+i; i++; } printf(“%dn”,sum) } 5、do… while 语句 do… while 语句 先执行循环体,然后判断循环条件是否成立。 一般形式为: do 循环体语句 while(表达式) 求1至100的累加和; #include void main() { int i,sum=0; i=1; do { sum=sum+i; i++; } while(i<=100) printf(“%n“) } 6、for语句 for语句不仅可以用于循环次数已经确定的循环,而且可以用于循环次数不确定的循环而只给出循环结束条件。 for(表达式1;表达式2;表达式3)语句 它的执行过程如下: (1)、先求解表达式1。 (2)、求解表达式2,若其值为真(值非0),则执行for循环中指定的内嵌语句,然后执行下面的(3)。若表达式2为假(值为0),则结束循环,转到第(5)步。 (3)、求解表达式3。 (4)、转回上面第(2)步继续执行。 (5)、循环结束,执行for语句下面的一个语句。 For循环的一种应用: for(循环变量赋初值;循环条件;循环变量增值)语句 求1至100的累加和; #include void main() { int i,sum=0; for(i=1;i<=100;i++) { sum=sum+i; printf(“%n”,sum) } } 7、break语句 break语句可以是流程跳出switch结构,继续执行switch下面的语句。break语句也可以用来从循环体内跳出循环体,提前结束循环,接着执行循环体下面的语句。 break语句的一般形式为:break; 说明:break语句不能用于循环语句和switch语句之外的任何其他语句。 #include void main() { int i,sum=0; for(i=1;i<=100;i++) { sum=sum+i; if(sum>300)break; printf(“%n”,sum)} } 8、continue语句 C语言选择语句 C语言支持两种选择语句:if语句和switch语句。这些语句允许你只有在程序运行时才能。知道其状态的情况下,控制程序的执行过程。首先看一下if语句的用法: if语句: if语句是c语言中的条件分支语句。它能将程序的执行路径分为两条。if语句的完整格式如下: if(condition)statement1;; else statement2; 其中,if和else的对象都是单个语句(statement),也可以是程序块。条件condition可以是任何返回布尔值的表达式。else子句是可选的。 if语句的执行过程如下:如果条件为真,就执行if的对象(statement1);否则,执行else的对象(statement2)。任何时候两条语句都不可能同时执行。考虑下面的例子: int a,b; if(a < b)a = 0;else b = 0; 本例中,如果a小于b,那么a被赋值为0;否则,b被赋值为0。任何情况下都不可能使a 和b都被赋值为0。 记住,直接跟在if 或else语句后的语句只能有一句。如果你想包含更多的语句,你需 要建一个程序块,如下面的例子: int bytesAvailable; if(bytesAvailable > 0){ ProcessData(); bytesAvailable-= n; } else waitForMoreData(); 这里,如果变量bytesAvailable 大于0,则if块内的所有语句都会执行。嵌套 if 语句 嵌套(nested)if语句是指该if语句为另一个if或者else语句的对象。在编程时经常要用到嵌套if语句。当你使用嵌套if语句时,需记住的要点就是:一个else语句总是对应着和它同一个块中的最近的if语句,而且该if语句没有与其他else语句相关联。下面是一个例子: if(i == 10){ if(j < 20)a = b; if(k > 100)c = d; // this if is else a = c; // associated with this else } else a = d; // this else refers to if(i == 10) 如注释所示,最后一个else语句没有与if(j <20)相对应,因为它们不在同一个块(尽 管if(j <20)语句是没有与else配对最近的if语句)。最后一个else语句对应着if(i==10)。 内部的else语句对应着if(k>100),因为它是同一个块中最近的if语句。if-else-if 阶梯 基于嵌套if语句的通用编程结构被称为 if-else-if 阶梯。它的语法如下: if(condition) statement;else if(condition) statement;else if(condition) statement;else statement; 条件表达式从上到下被求值。一旦找到为真的条件,就执行与它关联的语句,该阶梯的其他部分就被忽略了。如果所有的条件都不为真,则执行最后的else语句。最后的else语句经常被作为默认的条件,即如果所有其他条件测试失败,就执行最后的else语句。如果没有最后的else语句,而且所有其他的条件都失败,那程序就不做任何动作。.下面的程序通过使用if-else-if阶梯来确定某个月是什么季节。// Demonstrate if-else-if statements.main(){ int month = 4;// April if(month == 12 || month == 1 || month == 2) printf(“Winter”); else if(month == 3 || month == 4 || month == 5) printf(“Spring”); else if(month == 6 || month == 7 || month == 8) printf(“Summer”); else if(month == 9 || month == 10 || month == 11) printf(“Autumn”); else printf(“Bogus Month”); } 该程序产生如下输出: Spring.试验这个程序。你将看到,不管你给month什么值,该阶梯中有而且只有一个语句执行。 小结: if语句的三种形式: a)if(表达式)语句 b)if(表达式)语句1 else 语句2 c) if(表达式1)语句1 else if(表达式2)语句2 …… else 语句第二篇:C语言实验题——三个数排序
第三篇:c语言延时语句
第四篇:C语言常用语句
第五篇:C语言if语句总结