C语言数据类型与变量

1.数据类型介绍

    相似数据拥有的共同特征

1.1字符

        char
        unsigned char

1.2整型

        短整short
        整型int
        long
        long long

1.3浮点型

        单精度浮点型float
        双精度浮点型double
        long double

1.4布尔类型

        专门表示真假-Bool
        变量取值true or false

2.signed和unsigned

   用于修饰字符型和整型
   singed表示带有正负号
   unsigned表示0或正数
   int=signed int

3.数据类型的取值范围

4.变量

4.1创建

    类型是用来创造变量的
    tape name
    初始化即给变量初始赋值=?
int qi=6

4.2分类

     全局变量(大括号外)
     局部变量(大括号内)
     变量同名,局部变量优先

5.算术操作符:+、-、*、/、%

   /
#include<stdio.h>

int main()
{
    int n = 8 / 3;
    printf("%d\n", n);
    return 0;
}在这里插入代码片
```8\322  int为整型显示商

```c
#include<stdio.h>

int main()
{
    int n = 7.00 / 4.00;
    float m = 7.00 / 4.00;
    printf("%f\n", m);//1.750000
    printf("%d\n", n);//1
    return 0;
}

%求模运算,即返回两个整数相除的余数
负数求模结果正负号仅由第一个运算数正负号决定

#include<stdio.h>

int main()
{
    printf("%d\n",- 8%3);//-2
    printf("%d\n", 7%-2);//1
    return 0;
}

6.赋值操作符:=

连续赋值:a=s=d+9建议拆开
复合赋值:a=a+3即a+=3以此类推-=、*=、/=

7.单目操作符:++、–、+、-

++指变量加1 --指变量减1
a++先使用再加一
++a先加一再使用

8.强制类型转换

1 int a = (int)3.14;//意思是将3.14强制类型转换为int类型,这种强制类型转换只取整数部分

9.scanf与printf介绍

9.1基本用法

        printf即print format按照格式打印
#include<stdio.h>

int main()
{
	printf("hehe\n");
	return 0;
}

9.2占位符

#include <stdio.h>
int main()
{
 printf("There are %d apples\n", 3);
 return 0;
}

%d表示十进制整数占位符,会被后面的变量替代
多个占位符,后面的变量也依次按顺序书写`

#include <stdio.h>
int main()
{
 printf("%s says it is %d o'clock\n", "lisi", 21);
 return 0;
}

9.3占位符举例

• %a :⼗六进制浮点数,字⺟输出为⼩写。
• %A :⼗六进制浮点数,字⺟输出为⼤写。
• %c :字符。
• %d :⼗进制整数。

• %e :使⽤科学计数法的浮点数,指数部分的 e 为⼩写。
• %E :使⽤科学计数法的浮点数,指数部分的 E 为⼤写。
• %i :整数,基本等同于 %d 。
• %f :⼩数(包含 float 类型和 double 类型)。
• %g :6个有效数字的浮点数。整数部分⼀旦超过6位,就会⾃动转为科学计数法,指数部分的 e
为⼩写。
• %G :等同于 %g ,唯⼀的区别是指数部分的 E 为⼤写。
• %hd :⼗进制 short int 类型。
• %ho :⼋进制 short int 类型。
• %hx :⼗六进制 short int 类型。
• %hu :unsigned short int 类型。
• %ld :⼗进制 long int 类型。
• %lo :⼋进制 long int 类型。
• %lx :⼗六进制 long int 类型。
• %lu :unsigned long int 类型。
• %lld :⼗进制 long long int 类型。
• %llo :⼋进制 long long int 类型。
• %llx :⼗六进制 long long int 类型。
• %llu :unsigned long long int 类型。
• %Le :科学计数法表⽰的 long double 类型浮点数。
• %Lf :long double 类型浮点数。
• %n :已输出的字符串数量。该占位符本⾝不输出,只将值存储在指定变量之中。
• %o :⼋进制整数。
• %p :指针。
• %s :字符串
• %u :⽆符号整数(unsigned int)。
• %x :⼗六进制整数。
• %zd : size_t 类型。
• %% :输出⼀个百分号。

9.4.1最小宽度

         printf() 允许限定占位符的最⼩宽度。
#include <stdio.h>
int main()
{
 printf("%5d\n", 123); // 输出为 " 123"
 return 0;
}
上⾯⽰例中, %5d 表⽰这个占位符的宽度⾄少为5位。如果不满5位,对应的值的前⾯会添加空格。
输出的值默认是右对⻬,即输出内容前⾯会有空格;如果希望改成左对⻬,在输出内容后⾯添加空
格,可以在占位符的 % 的后⾯插⼊⼀个 - 号。 
int main()
{
 printf("%-5d\n", 123); // 输出为 "123 "
 return 0;
}

对于小数

// 输出 " 123.450000"
#include <stdio.h>
int main()
{
 printf("%12f\n", 123.45);
 return 0;
}

9.1.4.2 总是显⽰正负号

默认情况下, printf() 不对正数显⽰ + 号,只对负数显⽰ - 号。如果想让正数也输出 + 号,可
以在占位符的 % 后⾯加⼀个 + 。

#include <stdio.h>
int main()
{
 printf("%+d\n", 12); // 输出 +12
 printf("%+d\n", -12); // 输出 -12
 return 0;
}

9.1.4.3限定小数位数

// 输出 Number is 0.50
#include <stdio.h>
int main()
{
 printf("Number is %.2f\n", 0.5);
 return 0;
}

9.1.4.4输出部分字符串

%s 占位符⽤来输出字符串,默认是全部输出。如果只想输出开头的部分,可以⽤ %.[m]s 指定输出

的⻓度,其中 [m] 代表⼀个数字,表⽰所要输出的⻓度。

// 输出 hello
#include <stdio.h>
int main()
{
 printf("%.5s\n", "hello world");
 return 0;
}

scanf

1.基本用法

#include <stdio.h>
int main()
{
 int score = 0;
 printf("请输⼊成绩:");
 scanf("%d", &score);
 printf("成绩是:%d\n", score);
 return 0;
}

在这里插入图片描述

2.常用占位符举例

  • %s:输入字符串
  • %c:输入字符
  • %d:输入整型
  • %f:输入浮点型
  • %lf:double型
  • %Lf:long double型
  • %[a-b]:输入ASCII码表a-b之间,否则停止
    注意:只有%c不会忽视起始空白字符,其余均会跳过
    “ %c" %c前加空格可避免

特别地,%s从非空白字符开始读取,直至遇到空白字符停止,故不适用带空格字符串,或用多个%s
同时,输入字符数组时字符串的大小可能超过字符数组大小,故%[]s可限定字符串大小
3.赋值忽略符(*)
%*c可使scanf忽略该位置解析的数据,并且不返回继续读取
在这里插入图片描述
4.返回值
scanf函数返回的是成功读取变量的个数
在这里插入图片描述
如果读取变量个数为0,则返回0;若在成功读取任何数据前读取错误或读到文件结尾,则返回EOF(-1)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值