目标:
掌握使用Linux C程序设计基本结构,并且熟练掌握一种结构程序的设计方法。熟练运用if-else和switch进行选择程序设计,熟悉两者之间的区别与关系,熟练运用for,while,do-while进程循环设计,理解三者之间的区别。
常用输出函数
多类型输出函数:printf("格式控制",输出)
%c:输出单个字符,%d:输出十进制整数,%o:输出八进制整数,%x:输出十六进制整数,%u:输出无符号整数,%f:输出浮点数,%s:输出字符串,%e:输出指数形式浮点数,%g:自动选择浮点数格式,%.2f:位数限制,%-3d:左对齐,(0,0x,0%d,0x%d):前导。
多类型输入函数:scanf("格式控制",地址列表)
1.按指定格式的要求将数据库保存到指定内存空间;
2.当格式控制部分中相邻的两个格式字符均为%c时,输出当时不能使用空格,Tab键或回车键进行区分;
3.格式字符串中出现的普通字符(包括转义字符)都需要原样输出。转义字符将被视为普通字符;
4.允许使用域宽和附加域宽进行输入控制;
5.可以使用[]制定输入范围,一次读取,直到越线为止;
6.尽可能给出输入提示,以便输入操作;
getchar():单个字符
三大基本结构
三大结构主要包括:顺序结构,选择结构,循环结构
1.顺序结构:按语句出现的先后顺序执行语句;
2.选择结构:依据条件判断是否执行相关语句;
3.循环结构:当条件成立,重复执行某些语句;
共同特点
1.均包含一个入口和一个出口;
2.每一个部分代码都有机会被执行;
3.绝对不会存在死循环;
顺序结构
输入三个数求三个数的平均值:
#include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { double a,b,c; puts("请输出三个数值"); scanf("%lf%lf%lf",&a,&b,&c); double avg=(a+b+c)/3; printf("三个数的平均数为:%.2f",avg); return 0; }
选择结构
输入你的成绩看看你的成绩等级:
int _tmain(int argc, _TCHAR* argv[]) { float score; int k; puts("请输入你的成绩"); scanf("%f",&score); k=(int) (score/10); if(score>=90) { printf("A"); } else if(score<90&&score>=80) { printf("B"); } else if(score<80&&score>=70) { printf("C"); } else if(score<70&&score>=60) { printf("D"); } else if(score<60) { printf("E"); } return 0; }
float score; int k; puts("请输入你的成绩"); scanf("%f",&score); k=(int) (score/10); switch(k){ case 10: case 9: printf("A"); break; case 8: printf("B"); break; case 7: printf("C"); break; case 6: printf("D"); break; default: printf("E"); } return 0;
循环结构
输入学生人数,并求出这些学生的平均分:
int _tmain(int argc, _TCHAR* argv[]) { int num=0, score=0, sum=0,i=1; printf("请输入学生人数:"); scanf("%d", &num); while(i<=num){ printf("请输入第%d个学生人数:",i); scanf("%d", &score); sum += score; i++; } printf("学员的平均成绩:%.2f",1.0*sum/num); getchar(); }
break和continue,goto
break作用
1.一个循环中可以包含多个break语句,但是一般只有一个;
2.当循环内部含有switch语句,switch内部的break仅影响该switch语句,而不会影响其它循环;
3.break只能结束当前正在执行的循环,在执行多执行多重循环时需要特别注意;
continue作用
1.continue只能在循环里使用;
2.continue跳过循环体中剩余的语句而执行下一条循环;
goto作用
1.语句标号与goto语句可以不在一个循环内,但必须在同一个函数中;
int _tmain(int argc, _TCHAR* argv[]) { int i=1,sum=0; loop:if(i<=10) { sum+=i; i++; goto loop; } printf("sum=%d",sum); getchar(); }