您的位置:首页 > 编程语言 > C语言/C++

C语言,程序设计

2016-03-07 23:27 274 查看
程序可以分为三种基本结构:顺序结构,分支结构,循环结构

C程序的执行部分是由语句组成的,程序的功能也是由执行语句实现的,

C语句可以分为以下五大类

表达式语句,函数调用语句,控制语句,复合语句,空语句

表达式语句:表达式加上分号

函数调用语句:由函数名,实际参数加上分号 ,一般形式为:函数名(参数);

控制语句:

条件判断语句: if switch

循环执行语句 do while,while,for

转向语句:break,goto,continue,return

赋值表达式只是个表达式,没有分号 x = y + 5

赋值语句:x = y + 5;

putchar函数是字符输出函数,

getchar从键盘输入一个字符

printf (“”);scanf(“”,&a);

scanf(“%d ,%d ,%d”,&a,&b,&c);输入的时候也要有,

sqrt();开平方根

printf(“%.2f”,a);保留两位小数

double %lf

分支:

关系运算符:比较两个量的运算符

= < <=

== !=

上面的四个的优先级高于后两个,关系运算符的优先级低于算术运算符

关系表达式的值是“真”和“假”假0,非零为真

逻辑运算符 ! && || 优先级顺序逐渐降低,右结合性

! 算术运算符 关系运算符 && ||

左结合性,自左向右

右结合型 ,自右向左

if语句三种形式

形式1:

if(表达式){

语句



形式2:

if(表达式){

}else{



形式3:

if(表达式1){

}else if(表达式2){

}else if (表达式3){

}else{



if语句的嵌套

为了避免这种二义性,C语言guising,else总是与它就近的if配对,if嵌套最好不要超过5个

条件运算符,条件表达式,三目运算符 表达式1 ? 表达式2 :表达式3;

算术运算符(+-*/) 关系运算符(> < >= <=) 逻辑运算符(&& ||) 条件运算符(? :)

switch语句

switch(表达式)

case(常量表达式1): 语句1;break;

case(常量表达式2): 语句2;break;

default:语句3;break;

(1)其中常量表达式不能相同,

(2)各个case后允许有多个语句,可以不用{}括起来(最好括起来)

(3)各个case后必须要有break

循环

循环结构是程序中一种很重要的结构,

特点:

再给定条件成立时反复执行某程序段,知道田间不成立为止,

给定过的条件成为循环条件

反复执行的程序段称为循环体

循环语句:

goto,if;while;do—while;for;

(1)用goto和if构成循环

goto语句是一种无条件转移语句,goto语句通常不用,因为它使得程序层次不清不宜读。

例题:计算1+…..100

int i = 1,sum = 0;

//loop为语句标号,自己随便起名字

loop:if(i <= 100){

sum += i;

i++;

goto:loop;//核心一句

}

printf(“%d”,sum);

(2)while

while(表达式){

语句;



例题:同上

int i = 1,sum = 0;

while(i <= 100){

sum += i;

i++;

}

printf(“%d”,sum);

例题:统计从键盘输入的字符的个数

int n = 0;

while(getchar() != ‘\n’){

n++;

}

printf(“%d”,n);

//以下两段为错误代码,

char a ;

int n = 0;

printf(“请输入一个字符:”);

a = getchar();

while(a != ‘\n’){

n++;

}

printf(“%d”,n);

//上面那一段代码会死循环,原因是:

char a,b,c,d ;int n = 0;

printf(“请输入字符:”);

a = getchar();

b = getchar();

c = getchar();

d = getchar();

printf(“a是多少呢%c b是多少呢%c c是多少呢%c d是多少呢%c\n”,a,b,c,d);

//

char a ;int n = 0;

printf(“请输入字符:”);

// scanf(“%c”,&a);

a = getchar();

printf(“a是多少呢%c\n”,a);

while (a!= ‘\n’) {

n++;

}

printf(“%d”,n);

printf(“写最后试试%c\n%c\n%c\n%c\n”,a,getchar(),getchar(),getchar());

(3)do-while

int i = 1;sum = 0;

do{

sum += i;

i++;

}while(i < 101);

do-while语句先执行一次循环体再判断是否满足条件

(4)for循环

int sum = 0;

for(int i = 0,i<101,i++){

sum += i;

}

NSLog(@”%d”,sum);

for中的三个表达式都是选择项,即可以缺省,但是分号不能省

省略第一次代表不对其赋初值;省略二代表没有结束循环的条件,容易变成死循环;省略三代表不对循环变量做操作,可以写在循坏体中;

表达式可以用逗号隔开

for(int i = 0,sum = 0;i< 200,i++,sum ++){

}

break和continue

break语句可以提前结束循环,只能用在循环语句和switch语句中,不能用于if等语句中

break只能跳出一个循环

int r = 1,PI = 3.14,area;

for(int r = 1,r< 10,r++){

area = PI * r * r;

printf(“r=%d,area=%d”,r,area);

if(area > 100){

break;

}

}

contiune跳出本次循环,break跳出整个循环

double PI = 3.14,area;

for(int r = 1;r< 10;r++){

area = PI * r * r;

printf(“r=%d,area=%f\n”,r,area);

if(area > 100){

continue;

}

}

double PI = 3.14,area;

for(int r = 1;r< 10;r++){

area = PI * r * r;

printf(“r=%d,area=%f\n”,r,area);

if(area > 100){

break;

}

}

例题:显示输入的字符,如果按的是ESC则退出循环,如果是enter键就不做处理,接着输入

//enter 13 esc 27

char c;

while(1){

c = gerchar()

printf(“%c\n”,c);

if(c == 13){

continue;

}

if(c == 27){

break;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: