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