C语言重磅来袭
机械学霸
转眼之间,期末即将到来了555
这一天,人们终于想起被C语言支配的恐惧…
你是否总是觉得脑海中一片混乱
是否总是觉得C文字如同乱码
是否总是觉得似乎会编程但又编写不出来
好难受呀??
但是不要慌,问题不大
机械1710班刘述清给大家带来了福利
特意给大家总结了自己手打的笔记!
基本知识/细节
1 ASCII码表对应字符: ASCII 48:0 65:A 97:a
2. system(“pause”)对应于stdlib.h头文件
3. 注释://一行内容 /*任意行内容*/
4. 基本数据类型:
字符型:char,%c
scanf(“%c”,&x)从键盘上获取x并导入一个字符。
printf(“%d %c”, ’x’ ‘x’)分别输出x的整数型和字符型
整数型:int k=(int)12.34将k强制转换为12.34的整 数部分12
单精度实数型:float
双精度实数型:double
空类型:void
5. 标识符:字母、数字、下划线
6. 常量:整型(10、8、16进制)、实型、字符型(字符、数字字符、转义字符\)、字符串、符号常量
7. 运算符:
++自增1(变量的值加1 )
--自减1(变量的值减1 )
i++先使用i的值,i再自增
++i i先自增,再使用i的值
逻辑运算符:
!逻辑非 &&逻辑与 ||逻辑或 0表示逻辑假 1表示逻辑真
8. %f输出float型,%lf输出double型。
9. 运算优先级:算术>关系>逻辑
例:a+b>c&&b+c>a&&a+c>b说明三角形三边关系
10. 一些特殊简写语句:
(i>j)?(a=0):(a=1) 表示若i>j则a=0,否则a=1
k=(i=7,j=8,i+j)这个表达式将i+j的值赋予给k,即k=15.
s+=a表示s=s+a
11. %4d表示整型最小输出位数为4,不够将左补空格,%04d会补0
%-4d也表示整型最小输出位数为4,不够将右补空格。
常用语句格式及说明
1. If -else 语句中系统判断时从上往下依次判断,一旦条件满足,跳出判断,后面的都不判 断
2. exit(0)强制退出
3. switch格式:
switch(选择值----有限整数)
{
case 选择值:
执行语句1;break;
case 选择值:
执行语句2;break;
default:
执行语句3;
}
4. while与do—while循环格式:
while(条件)
{
循环体语句;
}
do{
循环体语句;
}while(条件);//与while相比至少执行一次循环
5. For循环格式:
for(初值表达式;条件表达式;循环变量表达式)
{
循环体语句;
}
6. break与continue:
break跳出最近的封闭循环体,而continue是结束本次循环,继续下一次循环。
例如: 输出1~100之间的不能被7整除的数。
for (int i=1; i<=100; i++)
{
if (i%7==0)
continue;
cout << i << endl;
}
函数
1. 函数的定义是平行的,fun函数放在main后面也能被main调用。
2. 如果在调用函数的语句上面找不到函数原型,要在函数之前声明调用函数的值的类型:
int fun();
int main(){ }
Int fun(){
}
3. 自己定义的头文件用include“xxx.h” 引用,
4. 递归: 以求n!为例
int fac(int n)
{
if(n==0 | | n==1) f=1;
else f=n*fac(n-1);
return f;
}
5. 局部变量:在函数内部或某个控制块的内部定义,有效范围只限于本函数内部,退出函数变量失效。
全局变量:在函数外面定义,作用域从定义位置开始直到源文件结束。
6. 若要使用定义在本函数下面的全局函数(如int x),要加一个extern(extern int x;)
7. static变量---静态变量
8. 函数的默认储存类型为extern型(外部函数),能被其他源文件调用。
若函数声明形式为
static int main();
说明是内部函数
9. 宏定义:
#define 宏名 字符串
#define PI 3.1415926
可以用#undef终止宏的有效范围。
宏只做替换不做计算。
数组
1.数组:存储类型+数据类型+数组名+数组大小,如 static int a[6];
2.二维数组:
double s[2][3]定义一个二行三列矩阵:从s[0][0]、s[0][1]...到s[1][2]。
s是行的指针,s+1直接跳过当前行
3.二维数组定义方式:
double s[2][3]={1,2,3,4,5,6};将每个元素按顺序分配
double s[2][3]={{1,2,3},{4,5}};将大括号内的数组按序分配进第1、2行,可以分不满。
4.字符数组:
char s[5]={'h','e','l','l','o'};
char s[6]={"hello"};//系统自动加一个'\0'作为结束 标志,故不是s[5]
s[i]=getchar(x)定义s[i]为x。
getch()比起getchar没有屏显,自动输出。
gets()输入括号内的字符串,可包含空格,遇到回车 就结束且接收回车。
puts()输出括号内的字符串,自动换行
putchar()
scanf(“ %c”,m)scanf输入字符串时遇到空字符就结 束,且不会接收该空字符结尾。加入空格会使m遇到空字符如空格、回车时不会结束
scanf(“ %s”,m)中的空格会使m遇到空格就结束
输入语句不能以空字符开始
5.二维字符数组输入字符串:
char word[3][5]={"Jack","Lisa,"King"};
string.h头文件
6.字符串大小比较:strcmp()函数
如果str1>str2,strcmp(str1,str2)=1
如果=,结果=0;如果<,结果为-1
7.复制(覆盖):strcpy()
strcpy(str1,str2)用str2覆盖str1,长度不够的部分不覆盖。
8.连接:strcat()
strcat(str1,str2)将str2接到str1后,从'/0'开始接且覆盖'/0'。
9.strlen()求字符串长度
10.strlwr()将字符串大写字母转小写
strupr()将小写转大写
除此之外呢,小编总结了几条比较好的心得哟~
1)保持好奇心
咱们都是非计算机专业的大学生,大部分人对C语言是恐惧的,因为你懂得……保持好奇是我们学习不断前进的永恒动力。
2)掌握有效的学习方法
C语言是一门公认的不易入门的语言(否则也不会那么多大学生“惨叫”了^_^),因为涉及的内容比较多( 特别是语法繁多 )。概括起来几个阶段:
(a) 理解和体验阶段
阅读和理解现有的程序,一般是教材的程序,每个程序都必须亲手打一遍。在输入代码的同时,一定要弄清楚每一个语句的意义和运算符号的意义。
(b) 修改阶段:
完成了第一阶段的学习后,开始根据给定的代码进行简单的修改,这个阶段可以实现一点点自己的想法,同时也能将相关的语法掌握的更加熟练。
(c) 模仿阶段:
当我们可以进行简单修改代码后,可以尝试模仿现有程序的代码,编写自己的代码,比如,我们学会了加法器后,可以适当编写减法器等
(d) 独立阶段
在编写程序之前,阅读现有的程序,可以提高程序的理解能力,学会其他人编写程序的思想,通过问题分解、模块划分、算法设计和代码编写,最后调试程序。
文字:王迅
图片:王迅
排版:林帅儒