C语言学习笔记

数据类型

  1. 整数类型:byte,short,int,long //int比较常用
  2. 浮点数(小数)类型:float,double //一般用double
  3. 字符类型:char
  4. 布尔类型:boolean //值只有两个,ture或false

进制
5. 【B】二进制:顾名思义凡二进一,0,1,10,11,100,101,110,111,1000//0b+数字
6. 【O】八进制:凡八进一,0,1,2,3,4,5,6,7,10,11。。。。//0+数字
7. 【H】十六进制:凡十六进一,0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f、10.‘’‘’‘’‘’1a、、、、、 //0x加数字
8. 【D】十进制


字符转化成数字

  • +0转化为数字,例如;name+0
  • 字符前加(int)例如:((int)name)

数字转化为字符

  • 前面加\u,例如:char a=’\u0500’

AWT在JDK中的目录

  • 在jdk-jre-lib-rt.jar用360压缩打开

Windows窗口

  • Frame:
  • Dialog:

C笔记

printf四种输出方式

  1. (“字符串\n”);//【\n】表示换行
  2. (“输出控制符”,输出参数);
  3. (“输出控制符1 输出控制符2”,输出参数);
  4. (“输出控制符 非输出控制符”,输出参数);

输出控制符含义

  • %d ----int
  • %ld------ long int
  • %c----char
  • %f----float
  • %lf------double
  • %x(或%X或%#X)----int 或 long int 或 short int
  • %o----同上
  • %s-----字符串

scanf-s 两种用法

  1. scanf_s(“输入控制符”, 输入参数);
    功能:将从键盘输入的字符转化为控制符所规定格式数据,然后存入以输入参数的值为地址的变量中。
  2. scanf_s(“非输入控制符 输入控制符” 输入参数);
    功能:将从键盘输入的字符转化为控制符所规定格式数据,然后存入以输入参数的值为地址的变量中,非输入控制符必须原样输入

如何使用scanf_s编写出高质量代码
3. 使用scanf_s之前最好先使用printf提示用户以什么样的方式输入。
4. scanf_s中尽量不要使用非输入控制符,尤其是不要用\n。
5. 应该编写代码对用户的非法输入做适当的处理 。
c // char ch ; while ((ch=getchar()) != '\n') continue;

除法与取模运算符

  • 除法与运算结果和运算对象的数据类型有关,如果两个数都是int,则商就是int。若商有小数,则截取小数部分;被除数与除数中只要有一个或两个都是浮点型数据,则商也是浮点型,不截取小数点部分。【16/5.0==3.2000】
  • 取余%的运算对象必须是整数,结果是整除后的余数,其余数的符号与被除数相同

运算符

  • 算术运算符
    -, + , * , %(取余数)

  • 关系运算符
    > , >= , < , <= , !=(不等于) , ==(等于)

  • 逻辑运算符
    !(非) , &&(并且), ||(或)

    !真 -----假
    !假 -----真

    真&&真----真
    真&&假----假
    假&&真----假
    假&&假----假

    真||真----真
    真||假----真
    假||真----真
    假||假----假

    【C语言对真假的处理】

    非零是真
    零是假

    真是1表示
    假是0表示
    &&左边的表达式为假 , 右边的表达式肯定不会执行
    || 左边的表达式为真 , 右边的表达式肯定不会执行

  • 赋值运算符
    = ,+=,*=,/=,-= , 例如:a+=3等价于a=a+3

  • 优先级别:
    算术>关系>逻辑>赋值

流程控制

  1. if最简单的用法
    if (表达式)
    输出语句
  2. if的范围问题
    1. if(表达式)
      语句A;
      语句B;
      解释:if默认只能控制语句A的执行与不执行
      if无法控制语句B执行或不执行
      或者说:语句B一定执行
    2. if(表达式)
      {
      语句A;
      语句B;
      }
      此时if可以控制语句A语句B
      由此可见:if默认只能控制一个语句执行或不执行
      如果想控制多个语句执行或不执行的话就要把这些语句用{}括起来

强制类型转化

  • 格式:(数据类型)(表达式)
  • 功能: 把表达式的值强行转化为前面数据类型的值
  • 例子:(int)(6.0)最终值为6
    (float)(5)最终值为5.000000

浮点数的存储所带来的问题

  • float和double 都不能保证可以精确的存储一个小数
  • 举例:
    if (|x - 0.000001| <= 0.000001)
    printf(“是零\n”);
    else
    printf(“不是零\n”);
    循环中更新的变量不能定义为浮点型

进制转换

  1. 十进制转换为r进制
    方法:除r取余,直至商为0,余数倒序排列。
  2. r进制转换为十进制
    方法:相应数值乘r的n次方, 例如:16F—>F(15)+6*16+1*16²=367

关于while

  1. 执行顺序:
    格式:
    A;
    while(B)
    {sum;
    C;}
  2. 与for的相互比较
    for和while可以相互转换
    for(1,2,3)
    A;
    等价于
    1;
    while(2)
    {
    A;
    3;
    }
    while和for可以相互转换,但for的逻辑性更强,更不容易出错,推荐多使用for。
  3. 举例

从键盘输入一个数字,如果该数字是回文数,则返回yes,否则返回no。

回文数:正着写和倒着写都一样。比如:121,12321。

  1. 什么时候用while,什么时候用for
    没法说,到最后自然就懂了!
  2. do…while与for的比较
    格式:
    do{

    }while (表达式);
    do…while 与for不等价,当然与while也不不等价。

**break和continue

  • break:
    break如果用于循环是来终止循环的。
    break如果用于switch,则是用来终止switch的。
    break不能直接用于if,除非if属于循环内部的一个子句。
    例子:
    for(i = 0; i < 3; ++i)
    {
    if (3>2)
    break;//虽然break是if内部的语句,但break终止的却是外部for循环。
    printf(“哈哈”);//永远不会输出。
    }
    break只能终止距离它最近的循环。
  • continue:
    用于跳过本次循环余下的语句,转去判断是否需要执行下一次循环。
    1. 例子:
      for(1,2,3)
      {
      A;
      B;
      continue;//如果执行该语句,则执行完该语句后,会执行3语句,C,D语句会被跳过。
      C;
      D;
      }
      2.while语句
      while(1,2,3)
      {
      A;
      B;
      continue;//如果执行该语句,则执行完该语句后,会执行表达式,C,D语句会被跳过。
      C;
      D;
      }//可以联想到之前收集垃圾字符的写法。
      学习路线
      【 C——》JavaSE——》SQL——》HTML——》Java Web】

数组

  • 为什么需要数组
    为了解决大量同类型数据的储存和使用问题
    为了模拟现实世界

  • 数组的分类
    一维数组:
    完全初始化
    int a[5] = {1,2,3,4,5};
    不完全初始化
    int a[5] = {1,2,3};
    不初始化, 所以元素都是垃圾值
    int a[5];
    清零
    int a[5] = {0};

    二维数组
    三维数组

  • 多维数组是否存在?
    不存在
    因为内存是线性一维的
    n维数组可以当做每个元素是n-1维数组的一维数组。
    比如:
    int a[3][4];
    该数组是含有3个元素的一维数组
    只不过每个元素都可以再分成4个小元素
    int a[3][4][5];
    该数组是含有3个元素的一维数组
    只不过是每个元素都是4行5列的二维数组

函数】{C语言第二大重点!}

一些单词的含义:【int】 表示函数返回的值是int类型。【void】括号中的void表示该函数不能接收数据,函数前的void表示该函数没有返回值 。【return】表示返回主调函数的值。

  • 为什么需要函数

    1. 避免了重复性操作。
    2. 有利于程序的模块化。
  • 什么是函数

  1. 逻辑上:能够完成独立功能的独立的代码块.
  2. 物理上:
    能够接受数据[当然也可以不接收数据]。
    能够对数据进行处理。
    能够将数据处理的结果返回[当然也可以不返回任何值]。

总结:函数是一个工具,它是为了解决大量类似问题而设计的,函数可以当成一个黑匣子。



【过页!】

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值