学习C语言(5)

一、常量与变量
1、常量

常量有三种定义,分别是宏定义、const定义、枚举enum定义。

整型1000-345
实型十进制0.34
指数

12.56e3

字符转义字符'\n'
字符串"boy"
符号#define PI 3.1416
//宏定义:#define+标识符+数值
#define PI 3.1416

//const:const+数据类型+标识符+数值
const int = 1;
2、全局变量

大括号外部定义的变量。放入内存静态区,默认为0。

3、局部变量

在大括号内定义的变量,放入内存的栈区。

二、操作符
1、算术操作符(+、-、*、/、%)

算数操作符也作为运算符,以上操作符均为双目操作符,其包含两个操作数。如:a+b,a和b为操作数。

已知%f为float类数据、%lf为double类数据。除号两端均为整数时,若结果为整数,则%d能正常输出;若结果为小数,%d输出只能得到商(相当于数学中的去尾),希望得到浮点数的时候,则至少要其中一个操作数为浮点数。float默认打印小数点后六位。

%为取模,得到的是余数。只适用于整数,两个操作符都要为整数。

负数的求模规则:结果的正负号由第一个操作数决定。

2、赋值操作符(=和复合赋值)

① 初始化:创建变量时赋值;② 赋值:使用变量给予一定的值;

1、连续赋值

就是连等号,从右到左赋值。如:c=b=a+3。

2、复合赋值

+=、-=、*=、/=、%=等

例如+=:a+=3其实就是a=a+3,以此类推。

3、单目操作符(++、--、+、-)
1、++自增操作符

前置++:(先加1,后使用)先对a的值加一,再赋值给b。

include<stdio.h>
int main()
{
  int a=10,b=0;
  b=++a;
  printf("%d,%d\n",a,b);
  return 0;
}

上述结果:a=11,b=11

后置++:(先使用,后加1)先赋值,再对a加1

#include<stdio.h>
int main()
{
  int a=10,b=0;
  b=a++;
  printf("%d,%d\n",a,b);
  return 0;
}

上述结果:a=11,b=10

【前置--和后置--相似】

2、+和-

这里的+和-指的是正号和负号(与数学里的相同)。在负负得正的时候,负数要加括号。比如:-(-10)。这里要加括号,不然会被认为是自减。

三、占位符

占位符就相当于是这个位置可以用其它值所带入。第一个符号一定是%,第二个符号要看代入得数据类型。

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

结果都是:there are 3 apples

常见占位符
%c字符
%d(同%i)整数
%e(同%E)浮点数的指数形式
%ffloat类型的浮点数
%lfdouble类型的浮点数
%hdshort类型的短整型
%ldlong类型的长整型

%lld

long long 类型的长长整型
%p指针(地址)
%uunsigned int类型的整型
%s字符串

文本中可以有多个占位符。在文本中若有n个占位符时,printf中的函数就有n+1个,因为函数里本来就有一个。

四、scanf和printf介绍
1、printf的输出格式
限定宽度

printf()函数允许限定占位符的最小宽度。

整数的例子:%5d指的是占位符宽度至少为5位,默认输出的值是右对齐,不满5位的就在最前面加空格。想要左对齐就是在数字前加负号。

小数的例子:像%f默认在小数点后面打印6位;小数点及小数点前面的位数就是所加上的数字的位数。

总是显示正负号

只需在占位符的字母前加上+或-。如:%+d、%-d。

限定小数位

如果希望小数点后面显示一定的位数(比如2位),则写成%.2f即可。若所限制的位数后还有数据,计算机会四舍五入。

【限定宽度&小数位结合】

像上述的情况结合起来,就是限定宽度整数和小数位的结合。如:%6.2f 至少为6位宽度,小数点后保留2位。

可以进行参数传参。(“%*.*”,a,b,c);将a,b,c设置变量。

我们知道%s是输出字符串。那么%.[m]s可限制输出字符串的个数,其中[m]是一个数字。

2、scanf函数
基本用法

scanf()要取地址,&从内存中提取。scanf传递的是地址,而不是变量。

读取用户的输入——处理输入的数据并存入

scanf()在处理占位符的时候,会自动过滤掉空白字符(空格,制表符,回车,换行符)

解决scanf安全问题(VS编译器)

在代码的第一行添加:#define _CRT_SECORE_NO_WARNINGS

五、小练习
1、
#include <stdio.h>
int main()
{
	int a, b, c;
	a = 5;
	c = ++a;
	b = ++c, c++, ++a, a++;
	b += a++ + c;
	printf("a = %d b = %d c = %d\n:", a, b, c);
	return 0;
}

求其结果;(a=9,b=23,c=8)

2、

多组输入,一个整数(1~100),表示线段长度,即“*”的数量。

示例:

输入:10

           2

输出:**********

           **         

 代码如下所示:

#include<stdio.h>
int main()
{
    int n = 0;
    int i = 0;
    while (scanf("%d", &n) == 1)
    {
        for (i = 0; i < n; i++)
            printf("*");
        printf("\n");
    }
    return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值