1.字符串常量
表示 | 字符数组 |
所占字节数 | 字符串字符数+1 |
关于1的说明:存放字符'\0'(其ASCII码值为0),是字符串结束的标志 |
2. 字符变量的应用
表示 | char c,singleCharacter |
初始化 | char c='\n',Character='a' |
备注 | 字符变量的输出格式为‘\c’ |
3. 实型
实型常量 | 十进制小数形式必须有小数点 | |
指数形式:十进制小数+阶码标志(e/E)+阶码(带符号整数) 2.3E6=2.3^10^6 | ||
实型变量 | 单精度(float) | 数的范围(1E-37,1E38) |
双精度(double) | 数的范围(1E-307,1E308) | |
长精度(long double) | 数的范围(1E-4931,1E4932) |
4. 枚举类型
\ | 说明 | 枚举变量的取值是有限的 |
例 | 星期几 | #include <stdio.h> int main() { enum weekday {mon = 1,tue,wed,thu,fri,sat,sun} work; //weekday work work = wed; printf("Wednesday is the %drd day",work); } |
延伸: #include <stdio.h> int main() { enum weekday {sun,mon = 1,tue,wed,thu,fri,sat}; enum weekday wkd; //声明wkd wkd = sun; // 申明的时候,进行初始化,否则不规范 printf("sunday is the %drd day",wkd); } | ||
水果类型 | #include <stdio.h> void main() { enum fruit {apple = 1,orange,banana} fr;//或enum fruit {apple = ,orange=2,banana=3} fr; fr = orange; printf("the fruit number is : %d\n",fr); } |
5. 标准输入与输出函数
标准 输入函数 | 格式 | scanf(格式控制字符串,地址列表) |
取地址运算符 | & | |
格式字符串 | %d(int)、%ld(long)、%f(float)、%lf(double) | |
标准 输出函数 | 格式 | printf(格式控制字符串,输出列表) |
格式字符串 | %d(int);%ld(long);%c(一个字符); %s(字符串);%f(double默认精度到6位小数) |
6. 表达式和运算符
表达式 | 操作数与运算符 | 8 x 3+6 2*a+10 |
| #include <stdio.h> void main() { printf("%d",sizeof(float)); } | |
运算符 | 赋值运算符 | = |
height = 198.6; gender = 'f'; x=a+b; a=b=c=8; | ||
算术运算符 | 双目运算符+、* | |
单目运算符- | ||
除法运算符 | 若两者皆为整数,则结果也为整数(取整方向为0); 若有一个是实型,则结果为双精度 | |
模运算符 | % | |
双目运算符,即取余 | ||
若两者皆为整数,则结果为整数(取整方向为0) | ||
关系运算符 | > < >= <= == != | |
真代表1,假代表0 | ||
#include <stdio.h> void main() { int a=1; int b=2; printf("%d\n",a==b); } | ||
逻辑运算符 | 逻辑与 && | |
逻辑或 || | ||
逻辑非 ! | ||
位运算符 | 按位与 & //对每位二进制数做与运算(&) | |
按位或 | //对每位二进制数做或运算(|) | ||
按位异或 ^ | ||
按位取反 ~ | ||
左移<< | ||
右移>> | ||
条件运算符 | 表达式1?表达式2:表达式3 | |
max = a>b? a:b;\\若a>b为真,则返回a,否则返回b | ||
#include <stdio.h> void main() { int a=1; a+=1;//a=a+1 printf("%d\n",a); } |
7. c语言的三种基本控制结构
顺序结构(从上之下,依次执行);
选择结构(用条件表达式,来描述条件);
循环结构
三要素:循环变量、循环体、循环终止条件;
7.1 选择:
7.1.1 if语句
if语句 | 嵌套if语句 |
#include <stdio.h> void main() { int score = 0; char level = '\0'; printf("请输入成绩:"); scanf("%d",&score);
if (score>=60 && score<70) { level = 'D'; } else if(score>=70 && score<80) { level = 'C'; }else if (score>=80 && score<90) { level = 'B'; }else if (score>=90 && score<100) { level = 'A'; }else if (score>=100) { level = 'S'; }else { level = 'E'; } printf("your level is %c\n",level); } | if(表达式) if(表达式) 语句 |
7.1.2 switch语句
多路判定语句 |
#include <stdio.h> void main() { int n=0; printf("请输入第几季度:\n"); scanf("%d",&n); switch (n) //括号后,无符号 { case 1: //1后面的冒号 printf ("您输入的是第一季度\n"); break; case 2: printf("您输入的是第二季度\n"); break; case 3: printf("您输入的是第三季度\n"); break; case 4: printf("您输入的是第四季度\n"); break; default: printf("您输入的季度有误:%d\n",n); } } |
7.1.3 goto语句
无条件转移语句
复合语句//用{}
空语句//没有任何内容的语句,用;
7.2 循环结构
while语句 | do-while语句 | for语句 |
判断框+循环体(主循环为真) | 循环体+判断框 | 表达式1+判断语句(含表达式2)+循环体+表达式3 |
#include <stdio.h> void main() { int a = 8; int sum = 0; while (++a <= 99) { sum=sum+a;//sum+=a } printf("sum=%d\n",sum); } | #include <stdio.h> void main() { int a = 8; int sum = 0; do { sum=sum+a;//sum+=a } while (++a <= 99);//注意分号 printf("sum=%d\n",sum); } | #include <stdio.h> void main() { int a = 9; int sum = 0; for(a=9;a<=99;a++) { sum=sum+a; } printf("sum=%d\n",sum); } |
7.3 其他
break语句: 使程序终止循环,而执行循环后面的语句,但只能跳出一层
continue语句: 跳过本次循环后面的语句,强制执行下一次循环
结束死循环:ctrl+pause/break