1. 变量的数据类型
1)整型——整数——int data=10
4个字节 8位——32位 最大可表示到2的32次方 单片机是2个字节*8=16 2的16次方=65536 c51(2) 65535 int a = 65535; for
2)字符型——ASCII码——char data3='c'——1个字节——8bit
3)浮点型——小数——float data2=3.5——4个字节
2. print 函数
错误代码如图:
原因分析:int a=5 其后为加分号“;”
printf 函数的学习:
2.1认识
1)几种变量声明:
int a=5; float f=5.8; char c='#';
2)printf 输出:
原样输出、整数、小数、-小数指定位数、字符、16进制输出、内存地址、简单的数学运算...
#include <stdio.h>
/*
作者:崔家奇 //代码段的注释
*/
int main()
{
int a_data=5; //变量声明,int是整数的数据类型,a是变量名称,5是初始值
float f_data=5.8;
char c_data='#';
int data=100;
int chu=3;
float result;
result=(float)data/chu; //(float)是强制转换,把整数转换为小数
printf("不忘初心,牢记使命666!\n"); //占位符,不显示;这种是原样输出
printf("好好学习\n");
printf("666\n");
printf("a=%d\n",a_data); //占位符以%开头;这种是带有原样输出和占位符的;printf("格式控制",输出表列)
//%d是格式声明 其他字符是普通字符如\n换行符、逗号、空格
a_data=100;
printf("修改之后的数=%d\n",a_data); //在编程中,等号表示将右侧的值赋给左侧的变量;而在数学中,等号表示两个表达式相等
printf("16进制输出a=0x%x\n",a_data);
printf("小数=%f\n",f_data);
printf("这是字符显示c=%c\n",c_data);
printf("a_data的地址=%p\n",&a_data); //&:输出地址时,取变量地址的运算符号&
printf("result=%f\n",result);
printf("result2=%5.1f,s=%-5.2f\n",(float)data/chu,result);
return 0;
}
2.2练习
-
几种占位符:%d %c %s %f %x %p
-
printf 输出:两个变量的和、差、积、商
#include <stdio.h>
/*
作者:崔家奇 //代码段的注释
*/
int main()
{
int a_data=5; //变量声明,int是整数的数据类型,a是变量名称,5是初始值
float f_data=5.8;
char c_data='#';
int data=100;
int chu=3;
float result;
result=(float)data/chu; //(float)是强制转换,把整数转换为小数
printf("不忘初心,牢记使命666!\n"); //占位符,不显示;这种是原样输出
printf("好好学习\n");
printf("666\n");
printf("a=%d\n",a_data); //占位符以%开头;这种是带有原样输出和占位符的;printf("格式控制",输出表列)
//%d是格式声明 其他字符是普通字符如\n换行符、逗号、空格
a_data=100;
printf("修改之后的数=%d\n",a_data); //在编程中,等号表示将右侧的值赋给左侧的变量;而在数学中,等号表示两个表达式相等
printf("16进制输出a=0x%x\n",a_data);
printf("小数=%f\n",f_data);
printf("这是字符显示c=%c\n",c_data);
printf("a_data的地址=%p\n",&a_data); //&:输出地址时,取变量地址的运算符号&
printf("result=%f\n",result);
printf("result2=%5.1f,s=%-5.2f\n",(float)data/chu,result);
return 0;
}
3. scanf函数
3.1原样输入、地址符号
-
输入一个整数
-
输入三个整数
#include <stdio.h>
int main()
{
int data;
int data2;
int data3;
printf("请输入一个整数:\n");
scanf("%d",&data); //为啥要输&,about指针部分内容;
printf("输入完毕\n"); //scanf格式中有什么字符,终端输入的时候也要输入
printf("您输入的数据为%d\n",data);
printf("请输入三个整数:\n");
scanf("%d%d%d",&data,&data2,&data3); //在终端输入的时候,可以回车输数字或在数字后空格继续输数字
//%d之间可以空格,终端操作同上
printf("输入完毕\n"); //%d之后可加逗号,输入时也严格输入2,5,9
printf("您输入的数据为%d,%d,%d\n",data,data2,data3);
/*
printf("请输入三个整数:\n");
scanf("data=%d,data2=%d,data3=%d",&data,&data2,&data3); //仅在前面都没函数的情况下才可正常运行
printf("输入完毕\n"); //输入的时候要严格data=2,data2=7,data3=9
printf("您输入的数据为data=%d,data2=%d,data3=%d\n",data,data2,data3);
*/
return 0;
}
3.2混合输入
-
依次输入整数,字符和小数
#include <stdio.h>
int main()
{
char data;
char data2;
char data3;
int dataInt;
float dataFloat;
/*
printf("请输入三个字符\n");
scanf("%c%c%c",&data,&data2,&data3);
printf("您输入的数据为data=%c,data2=%c,data3=%c",data,data2,data3\n);
*/
printf("请依次输入整数,字符和小数\n");
scanf("%d%c%f",&dataInt,&data,&dataFloat);
printf("您输入的数据为dataInt=%d,dataFloat=%c,data=%f\n",dataInt,data,dataFloat);
return 0;
}
4. put 和 get 函数
和 printf 的区别:
-
自动换行
-
printf多种花样输出,puts只输出字符串
#include <stdio.h>
/*
和printf的区别:
1. 自动加入换行符
2. printf支持多种花样输出,而puts只是输出字符串
*/
int main()
{
char c;
puts("请输入一个字符");
c=getchar();
puts("您输入的字符是:");
putchar(c);
return 0;
}