一,类型限定
*字符串常量*‘
字符串常量是内存中一段连续的char空间,以'\0'(数字0)结尾。
字符串常量是由双引号括起来的字符序列,如“china"、"C program","$12.5"都是合法的字符串常量。
字符串常量与字符常量的不同:
‘a’为字符常量"a"为字符串常量
每个字符串常量的结尾,编译器会自动的添加一个标志结束位'\0',即"a"包含两个字符“a”和“\0”。
printf函数和putchar函数
printf输出一个字符串,puthar输出一个char。
scanf和getchar
scanf与printf的使用格式相似
注意事项:
1:scanf函数中的"格式控制"后面应当是变量地址,而不是变量名。
2:如果在"格式控制字符串”中除了格式声明以外还有其它字符,则在输入数据时在对应的位置输入与这些字符相同的字符
用getchar输入一个字符
#include <stdio.h>
int main()
{
char a,b,c; //定义字符变量a,b,c
a=getchar(); //从键盘输入一个字符,送给对应字符变量
b=getchar();
c=getchar();
putchar(a); //打印变量对应字符
putchar(b);
putchar(c);
putchar('\n'); //换行
return 0;
}
运行结果:(仅个例)
ILY
ILY
*运算a++/a--与++a/--a区别:*
前者是先用原值参与计算后自增后者是先自增再参与计算
比较运算符
比较运算符返回值为0或1 表示真或假
逻辑运算符
所有非零值都为真值
类型转换
#include <stdio.h>
int main(void)
{
float p =3.14;
int w=2;
double sum=p*w;
printf("%lF\n",sum);
return 0;
}
运行结果:
6.280000
转换的方式有两种:
q强制类型转换例:
#include <stdio.h>
int main(void)
{
float p =3.14;
int w=2;
double sum=(int)p*w;
printf("%lF\n",sum);
return 0;
}
运行结果:
6
程序的流程结构
概述:
c语言支持最基本的三种程序运行机构:顺序结构,选择结构,循环结构。
顺序结构:程序按照顺序执行,不发生跳转
选择结构:依据是否满足条件,有选择的执行相应功能
循环结构:依据是否满足条件,循环多次执行某段代码
if语句:
例:
#include <stdio.h>
int main()
{
int lve=12;
if(lve>=12)
{
printf("召唤师您可以使用闪现");
}
else
{
printf("很遗憾召唤师您无法使用闪现");
}
return 0;
}
三目运算符:(?:)
表达式1?表达式2:表达式3
如果表达式1的 值为真,则选择2位结果,否则选择3为结果
#include <stdio>
int main()
{
int a=10;
int b=20;
printf("最大值为:%d",a>b?a:b);
return 0;
}
运行结果:
最大值为:20
switch语句
#include <stdio.h>
int main()
{
int score;
scanf_s("%d", &score);
switch (score)
{
case 5:
printf("excellent"); break;
case 4:
printf("good"); break;
case 3:
printf("go on"); break;
case 2:
printf("on no"); break;
case 1:
printf("bad"); break;
}
return 0;
}
运行结果:
5
excellent
循环语句
#include <stdio.h>
int main()
{
int i = 0;
while (i < 10)
{
printf("%d ", i);
i++;
}
printf("\n");
int b;
for (b = 0; b < 10; b++)
{
printf("b ");
}
printf("\n");
int c=0;
do {
printf("%d ", c);
c++;
} while (c<10);
return 0;
}
运行结果:
1 2 3 4 5 6 7 8 9
b b b b b b b b b
1 2 3 4 5 6 7 8 9
嵌套循环:
例:99乘法表
#include<stdio.h>//头文件
int main()//主函数
{
int a=1,b=1,c;//定义变量
while(b<=9)//循环判断
{
while(a<=b)//循环判断
{
printf("%d*%d=%d ",a,b,a*b);//打印
a++;
}
a=1;
b++;
printf("\n"); //换行
}
}