嵌入式day3

内容较长,仔细回顾~~~

文章目录

一、学习内容?

浮点型和字符型:

1.变量分类

2.舍入误差

3.常量的类型

4.字符型数据&转义字符的使用

5.字符变量

6.大小写字母的转换

7.算术运算符和算术表达式

8.强制类型转换运算符

9.自增自减运算符及附录

二、实例讲解笔记--

1. 代码在下面~~

字符数据存储
ASCII编码 


'\n' //一个字符  转义字符 

'\n' //换行 

\n 

"n"
练习1: 
printf("D:\\abc\\");
练习2:
printf("abc\tij#k\n");
 abc     ij#k
练习3:
 printf("ab*c\t*de\rf\tg\n");
  
  ab*c    *de
  f       g
  
  fb*c    gde 
  字符常量的形式:
 'a'
 '\141'
 '\x61'
 
 97
 0141
 0x61 
 ------------------
 总结:
 1.常量 形式 
  'a'
 '\141'
 '\x61'
 97
 0141
 0x61 
 2.变量 
 char 
unsigned char 
signed char 

3.要点
   字符数据存储 
   ASCII表 
   转义字符 
   4.考点 
   'abcd'   //多个字符 
   数字字符 与 数值之间 转换 
   字符大小写转换 
-------------------------------
运算符 表达式 
算术运算 
+
-


% 取余 
++
-- 
运算符 
表达式 由运算符 和 运算数 构成字符序列 
1+2 //所有的表达式都是有结果的(值)
    //表达式一定是由数据类型的 
    
1+(2*3) 
1+(2*3) 

隐式类型转换 

double <---- float

int <----char/short 

规则:
从右向左:
   必转 


   
从下到上:
   低精度类型 与 高精度类型混合运算 
   此时 低精度 往 高精度转
   -10
   1|000 0000 0000 0000 0000 0000 0000 1010
  1|111 1111 1111 1111 1111 1111 1111 0101
  1111 1111 1111 1111 1111 1111 1111 0110 
   f    f    f     f    f    f    f   6

输入输出

输入 
     参考点:
            计算机 
            [内存]
输出 

#include <stdio.h>

stdio 
std -->标准 
io --- input & output 

putchar getchar // 单个字符的输入输出 
printf scanf    //格式化的输入输出 
gets /puts      //字符串的输入和输出 

函数的学习:
功能:
参数:
返回值: 
 int getchar(void); //字符的输入
 参数:无 
 返回值: 
 eg:
 getchar();
    int putchar(int c);//字符的输出 
 参数: 
      c -->int 是 getchar的返回值  
 返回值: 
    返回的是 ,输出的字符的ascii值 

练习:
    从键盘输入 hello
    将hello转换为大写
    输出

思路:
   s1.输入数据 
   int  c1,c2,c3,c4,c5
   
   s2.转换 
     c1 = c1 - 32;
     ....
   s3.输出 
     putchar(c1);
     
printf /scanf 

printf(); //格式化输出函数

格式:
printf("格式控制字符串",输出参数列表);

printf("a= %d\n",a);
格式控制字符串:
   普通字符: //原样输出 
    
   控制字符:    
   占位符: %d %o %x  //最终是要替换成实际的数值的 
控制字符:
  整型数:
   %d
   %o 
   %x 
   %u  
 浮点型:
   %f 
   %e 
   %g 
  字符型:
   %c 
   %s --- 字符串 

   
 其它控制字符: //附加字符 
 m.n 
 m --表示 输出的宽度   
     指定宽度 ,
     输出时,当实际数据,小于宽度时,
     输出格式 默认右对齐  
              前面 加 - 左对齐 
              %-10d 
     其余位置 默认填充空格 
              可以自己指定填充0
              %010d 
              
 l %ld long 数据
   %lld 
   
   %lu 
   %llu 
      n --表示 输出的精度  //浮点数 字符串 

 %% 两个百分号 对应输出 一个 %  

scanf();  //格式化的输入函数 
格式:
scanf("格式控制字符串",地址列表);
格式控制字符串:
  普通字符:
        原样输入 
  控制字符 
      占位符:
      整型数:
       %d
       %o 
       %x 
       %u  
     浮点型:
       %f  --- 对于float 类型 %f double 类型 %lf  
       %e      
       %g 
      字符型:
       %c   --- 匹配字符 
       %s --- 字符串  
 地址列表:
     &a 
eg:
  int a; 
  scanf("%d",&a);
空白符:
    分隔符 
    Tab 
    回车 
    空格 

scanf() 工作原理


键盘 --->|输入缓冲区|  ---FIFO (队列) (first in first out  )
         | abcde    |
          a b c d e
         %c%c%c%c%c\n 
         
         空白符 --- 匹配任意空白符,直到遇到非空白符结束 


注意:
1.%c -- 可以匹配空白符 
2.scanf不要输入 \n 
3.scanf匹配结束的条件 
 a.空白符 
 b.超出指定宽度 
 c.遇到了非法输入 
   %d --- 0~9 
【回顾】
1.第三章结束
  ++         //1.左值
  --         //2.const int value; ---> //只读变量 
             //3.++ -- 本质 
             //4.i+++++i  (贪心原则)  (i++)++ +i 
             //5.printf("%d,%d",i,++i); //不要对同一个变量 同时++             
  赋值运算   
             //1. =  
             //2. 连续赋值 a=b=c=4;
             //3. 混合类型赋值 
                  int = double   //精度丢失 
                  整型 与 整型
                  short = int  //长 给 短 --- 高位截断 
                  int  = short //有符号短 给 长 -->符号位扩展 
                               //无符号短 给 长 -->高位补零                  
                                   
  作业:代码在下面
1.从终端输入两个两位数, //scanf 
第一个数的个位作为新数的千位,
第一个数的十位作为新数的个位,
第二个数的个位作为新数的百位,
第二个数的十位作为新数的十位,
打印该数
12
34
2431

思路:
  s1.定义两个int变量num1,num2 
  s2.输入值 -scanf 
  
  s3.处理数据 
     ge  = num1%10 ;
     shi = num1/10; 
     bai = num2%10;
     qian = num2/10;
     newNum = qian*1000 + bai*100 + shi*10 +ge; 
 s4. 输出 
     printf();
  

2.编写程序从终端输入数据给到变量,
  并打印变量的值
   a = 3 b = 5 x = 8.5 
   y = 71.82 c1= 'A' c2 = 'a'   


scanf("%d%d%f%f%c%c",&a,&b,&x,&y,&c1,&c2);
printf("a = %d b = %d x = %f y = %f c1 = \'%c\' c2 = \'%c\'\n",a,b,x,y,c1,c2);

[ a] //FIFO 
%d%d %f  %f    %c   %c
3 5  8.5 71.82 空格  A

%*c 表示跳过一个匹配数据  

   
fflush(); //
gets    //放到字符数组 
puts  
-----------------------------
总结一下:
1.getchar 
  putchar
  2.
  scanf 
  printf 
3.缓冲区 //FIFO  
  while(getchar()!= '\n')  ;

代码如下(示例):

 

2.试卷分配问题

代码如下(示例):

 


总结

如各个小标题所示 做完课后习题中的疑难杂症后继续上传~

  • 22
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值