计算机基础知识
char //字符数据类型
short //短整型
int //整形
long //长整型
long long //更长的整形
float //单精度浮点数
double //双精度浮点数
数据计量单位
Bit<Byte<KB<MB<GB<TB<PB
1Byte = 8Bit
1KB = 1024Byte
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
1PB = 1024TB
转义字符
‘\060’ 转义字符,060八进制数据,十进制为48,表示ASCII码为48的’0’
‘\b’ 转义字符,表示退格
C语言中如何计算字符串字节数
strlen:获取字符串的有效长度,不包括’\0’
通过函数strlen(s);s=*******(某些字符串)
返回整型数
以下代码为例
#include <stdio.h>
#include <string.h>
int main()
{
printf("%d\n", strlen("c:\test\121"));
return 0;
}
上述程序的运行结果为7
C语言中变量的使用
C语言中变量的访问规则:
- 不允许在同一个作用域中定义多个相同名称的变量
- 允许在不同的作用域中定义多个相同名称的变量
- 不同作用域中定义的变量,在访问时采用就近原则。
C语言中变量的类型:
- 变量可以分为局部变量和全局变量
- 局部变量是放在内存的栈区的,全局变量是放在内存的静态区
- 当全局变量和局部变量名字相同的情况,且都可以使用的时候,局部变量优先
ASCII码的使用
A 65 - Z90
a 97 - z 122
布尔类型
- 布尔类型是C99标准中引入的
- C语言中布尔类型是_Bool,使用时要包含头文件stdbool.h
- 布尔类型变量的取值是true或false
- 布尔类型是专门表示真和假的类型
C语言中的算术操作符规则
- 除号两边只要有一个是小数,就执行小数除法
- %操作符的操作数只能是整数
- %操作符计算的结果是两个操作数整除之后的余数
- 负数求模的规则是,结果的正负号由第一个运算数的正负号决定。
自加自减
b=a++;
b=a--;
等价于
b=a;a=a+1;
b=a;b=b-1;
刷题总结
通过今天晚上刷牛客网的题,学习了一个新的知识点
输入描述:多组输入,一个整数(1~100),表示线段长度,即“”的数量。
输出描述:针对每行输入,输出占一行,用“”组成的对应长度的线段。
示例1 输入:
10 2
输出:
**********
**
上题标准答案代码如下:
#include <stdio.h>
int main()
{
int num1 = 0;
int num2 = 0;
while(scanf("%d%d", &num1, &num2) != EOF)
{
if(num1>num2)
printf("%d>%d\n", num1, num2);
else if(num1<num2)
printf("%d<%d\n", num1, num2);
else
printf("%d=%d\n", num1, num2);
}
return 0;
}
其中scanf("%d%d", &num1, &num2) != EOF
是一个新的知识点,通过查阅资料,EOF是end of file的意思,因此这是判断是否“已经从键盘读取文件的结尾”的代码,需要配合while循环使用。
相关代码如下
//只要没有进入文件尾标志就进入循环
while(scanf("%d%d",&a,&b)!=EOF)
{
}
//只要没有成功读入两个整形数就进入循环
while(scanf("%d%d",&a,&b)!=2)
{
}
当我看见这道题,我给出的代码如下:
#include <stdio.h>
int main()
{
int a, b;
while (scanf("%d%d", &a, &b) != EOF)
{
if (a < b) printf("%d<%d\n", a, b);
else if (a == b) printf("%d=%d\n", a, b);
else printf("%d>%d\n", a, b);
}
return 0;
}
当然自己的代码也成功提交上了牛客网,通过这些天,我明白了在今后的C语言的学习中也要不断查阅资料,力求掌握题目中的语法点。