C语言,程序设计

程序可以分为三种基本结构:顺序结构,分支结构,循环结构
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;
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值