第一章:
一些重要知识点总结:
1.C语言规定:标识符只能由字母数字和下划线三种且第一个字符必须为字母/下划线
2.一个函数名后面必须跟一对圆括号,括号内写函数的参数名及其类型,如果函数没有参数,可以在括号中写void,也可以是空括号。
第二章:
都是些例题,就不做总结了
第三章: 顺序结构
1.实型常量:
指数形式:规定字母E/e代表以10为底的指数(但e/E之前必须有数字,且e/E之后必须为整数)
2.字符常量:
①普通字符:用单撇号括起来的一个字符,如:'Z',但是不能写成'CH','12',同时'A','a'是不同的字符常量。
②转义字符:
常用的主要是:\t 制表符 \n换行符
3.字符串常量:
用双撇号括起来
4.符号常量:
用#define指令,指定用一个符号名称代表一个常量
#define PI 3.1416 //注意行末没有分号
这个指令表示程序里面所有PI都置换成3.1416,也就是不需要写很长的数字了.
习惯上符号常量大写,主要不要将符号常量误认为变量,符号常量不占内存,只是个临时符号,代表一个值。
5.变量:
必须先定义,后使用
6.常变量:
定义变量时,前面加一个关键字 const ,如:
const int a=3;
定义a为一个整型变量,指定其值为3,而且在变量存在期间其值不能变。
7.一般而言,变量名用小写字母表示
8.数据类型:
eg.
short a; //a为有符号的短整型变量
unsigned short b; //b为无符号的短整型变量
说明:
①只有整型(包括字符型)数据可以加signed或unsigned修饰符,实型数据(见1.实型常量)不能加。
②对无符号整型数据用%u格式输出。%u表示用无符号十进制数的格式输出。如:
unsigned short price =50;
printf(“%u\n”,price);//指定无符号十进制格式输出
如果输入-1,结果是65535。 原因是因为系统对-1先转换为补码形式。
补充补码原码反码(正数三者相同)
原码 反码 补码 1110 1010 1001 0101 1001 0110 负数首位1,正数首位0 首位不变其他位取反 反码+1
9.字符型数据
*不能显示的字符:空(null)字符(以'\0'表示)、警告(以'\a'表示)、退格(以'\b'表示)、回车(以'\r'表示)等
*字符变量:
用类型符char定义字符变量 %d 表示十进制整数 %c表示字符形式输出
char c='?'; //定义c为? printf("%d %c\n".c.c); 输出结果 63 ?
10.浮点型数据:
*单精度浮点型:float
c规定,float类型必须至少能表示6位有效数字,取值范围是10^-37~10^37
*双精度浮点型:double
*float 占4个字节 double占8个字节
*均用%f 来作为占位符
11.转换规范总览
以%开始 标志 最小字段宽度 精度 长度指定符 转换操作 % - # 0 12 .4 l d 十进制整数常量(小数点也算一位) 保留小数点后四位 有h,hh,l,ll,z #include <stdio.h> int main() { int un=1234; double df=123.456789; printf("%2d\n",un); //最小要求两位,有四位,不做处理// printf("%6d\n",un); //只有四位,补齐到六位// printf("%12d\n",df); //只有十位,补齐到十二位// return 0; }
12.整型类型占位符总结
类型 | 占位 |
int | %d |
浮点double | %f |
字符char / 字符串 | %c / %s |
unsigned char,unsigned short,unsigned int(无符号十进制数) | %u |
unsigned long | %lu |
unsigned long long | %llu |
13.运算符和表达式
% | 求余运算符 |
i++,i-- | 先执行i |
++i,--i | 先执行i=i+1 |
补充:
逗号表达式:先求解表达式1,再求解表达式n。整个表达式的值是表达式n的值。
eg.1.x=(a=3,6*3)
2.x=a=3,6*a
第一个是赋值表达式,将一个逗号表达式的赋值给x,x的值等于18;
第二个是逗号表达式,包括一个赋值表达式和一个算术表达式,x的值等于3.
14.数据的输入输出
putchar | 输出字符 |
getchar | 输入字符 |
printf | 格式输出 |
scanf | 格式输入 |
puts | 输出字符串 |
gets | 输入字符串 |
第四章:选择结构
1.优先级(从上往下依次降低)
! | 非 |
算术运算符 | 加减乘除类 |
关系运算符 | 大于小于类,==,!=(不等于) |
&&和|| | |
赋值运算符 | =(注意:从右至左) |
2.选择结构表达方式
注意:C中非0均为假
3.if 嵌套(利用else if 使程序更简略)
注意:如果if或else if或else后只有一个语句可以不加{}
4.switch语句注意事项
*switch后面的括号只能填一个整型表达式
*case后的常量不能重复
*可以没有default.
5.break
*如果不想执行switch中后续的case,加上break,跳出整个switch
6.continue
提前结束本次循环
第五章:循环结构
1.while
2. do while
3.for循环
例题1:
//给一个不多于五位的整数 1.求它是几位数2.分别输出每一位数字3.按逆序输出每个数字
int main()
{
int n;
printf("请输入数:");
scanf("%d", &n);
int m = n;
if (n <= 0 || n > 99999)
{
printf("enter data error\n");
return 0;
}
int count = 0;
while (n != 0)
{
n /= 10;
count = count + 1;
}
printf("位数是 %d\n", count);
int index = 1;
for (int i = 0; i < 4; i++)
{
index = index * 10;
}
n = m;
while (n != 0)
{
printf("%d", n / index);
n = n % index;
index = index % 10;
}
printf("\n");
n = m;
while (n != 0)
{
printf("%d", n % 10);
n /= 10;
}
printf("\n");
return 0;
}
例题2:
//输入四个整数,按从小到大顺序输出
#include <stdio.h>
int main()
{
int t,a, b, c, d;
printf("请输入四个数:");
scanf("%d %d %d %d", &a, &b, &c, &d);
printf("a=%d,b=%d,c=%d,d=%d\n", a, b, c, d);
if(a>b)
{
t = a; a = b; b = t;
}
if (a > c)
{
t = a; a = c; c = t;
}
if (a > d)
{
t = a; a = d; d = t;
}
if (b > c)
{
t = b; b = c; c = t;
}
if (b > c)
{
t = b; b = c; c = t;
}
if (b > d)
{
t = b; b = c; c = t;
}
if (c > d)
{
t = c; c = d; d = t;
}
printf("排序结果如下:\n");
printf("%d %d %d %d \n", a, b, c, d);
return 0;
}
例题3:
//求1!+2!+...+20!
#include <stdio.h>
int main()
{
double s = 0, t = 1;
int n;
{
t = t * n;
s = s + t;
}
printf("1!+2!+...+20!=%22.15e\n", s);
return 0;
}
例题4:
//求水仙花数
#include <stdio.h>
int main()
{
int i, j, k, n;
printf("numbers are");
for (n = 100; n < 1000; n++)
{
i = n / 100;
j = n / 10 - i * 10;
k = n % 10;
if (n == i * i * i + j * j * j + k * k * k)
printf("%d", n);
}
printf("\n");
return 0;
}