语言课堂笔记哈工大苏小红版排版后_第1页
语言课堂笔记哈工大苏小红版排版后_第2页
语言课堂笔记哈工大苏小红版排版后_第3页
语言课堂笔记哈工大苏小红版排版后_第4页
语言课堂笔记哈工大苏小红版排版后_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言课堂笔记信息工程学院 软件技术1班 张龙彪1. 一个标准C程序必须有且仅有一个main函数(主函数),标准C程序总是从main开始执行,与main所在位置无关。2. 除复合语句外,C语句都是以分号作为结束标志。(建议一行只写一条语句)。3. 关键字(保留字):C语言中预先规定的具有固定含义的一些单词。用户只能按照其预定含义使用,不得擅自改变意思。此类关键字有:auto break case char const continue default do double else enum extern float for goto if int long register return sh

2、ort signed sizeof static struct switch typedef union unsigned void volatile while。4. 标识符:分为系统定义标识符和用户自定义标识符两类。系统定义标识符(允许用户赋予其新含义)如main、库函数名printf、scanf等。用户自定义标识符如add 变量x、y、sum等。5. 分隔符:空格 回车或换行(程序中相邻的关键字、标识符之间等形式) 逗号(相邻同类项之间的分隔)。6. 其他符号:花括号: /* */ 。7. 运算符的优先级:优先级运算符含义运算类型结合方向I()->.+ -圆括号,函数参数表数组元素

3、下标指向结构体成员引用结构体成员后缀增1、后缀减1自左向右II!+ -*&(类型标识符)Sizeof逻辑非按位取反前缀增1,前缀减1求负间接寻址运算符取地址运算符强制类型转换运算符计算字节数运算符单目运算符自右向左III*、/、%乘、除、整数求余双目算术运算自左向右IV+ -加、减双目算术运算自左向右V<< >>左移、右移位运算自左向右VI< <=>、>=小于、小于等于大于、大于等于关系运算自左向右VII= !=等于 不等于关系运算自左向右VIII&按位与位运算自左向右九按位异或位运算自左向右十|按位或位运算自左向右十一&

4、&逻辑与逻辑运算自左向右十二|逻辑或逻辑运算自左向右十三?:条件运算符三目运算自右向左十四=+= -= *= /= %= &= = |= <<= >>=赋值运算符复合赋值运算符双目运算自右向左十五,逗号运算符顺序求值运算自左向右附(几个概念):8.常用运算符的优先级与结合性【习题2】习题所涉知识点: 变量命名:由字母、数字和下划线组成,第一位只能为字母或下划线,不饿能和C中保留字完全相同。 逻辑值“真”“假”判断:整数值0表示假,其他true,和任何非0数值均表示真。 字符常量:(单引号)括起来的单个普通字符或转义字符。常用转义序列:字符含义字符含义n换

5、行a响铃报警r回车,但不换行”一个双引号0空字符,通常作为字符串结束标志单引号t水平制表一个反斜线v垂直制表?问号b退格ddd1-3位八进制ASCII码值所代表的字符f走纸换页xhh1-2位十六进制ASCII码所代表的字符编程提示:每次按下Tab键,并不是从当前的光标位置向后移动一个Tab的宽度,而是移动到下一个制表位,实际移动的宽度视当前光标的位置距相邻的下一个制表位的距离而定。 字符串常量:有一对双引号括起来的一个字符序列,Eg. “qwer” “123” “w”等等。(“a”为字符串常量,a才是字符常量)注:系统对每个用双引号括起来的字符串常量都添加一个字符串结束标志0为便于C程序判断字

6、符串是否结束,0不引起任何控制动作,也不显示。 Char:定义字符型变量,用来存储数据。 字符串常量“t”NameAddressn”的长度为15。【解析】t为水平制表为一个字符,、”、Name 、 (一个反斜线) 、 Address 。 n表示换行,不是字符。9程序源代码是静态的,只有运行起来才能发挥作用。编辑:用程序设计语言设计源代码;编译:用户只需要发出编译指令,其他由编译器完成。编译器可以把程序设计语言转化成目标代码;链接:连接器把用户程序和支持它运行的必需的其他程序都合成在一起的过程,最后形成可执行文件的过程(DOS和Win下为.exe文件)。10.程序运行时适合数据一起保存在内存,由

7、CPU执行,存储形式为二进制,单位是字节。内存每个单元都被分配一个唯一的整数,称为地址。11.函数(Function)是C程序的基本单位,即C程序是由函数构成的。标准C程序有且仅有一个用main明明的函数,这个函数成为主函数。标准函数都是从main开始执行,而与他在程序中的位置无关。12.函数由函数首部和函数体两部分组成。函数首部包括对函数返回值类型、函数名、形参类型、形参名的说明。Main函数不需要在外界接受信息,但其他函数需要利用形参在外界接受参数信息。函数名后的一对花括号不可以省略。13.标识符命名:由英文字母、数字和下划线组成,且必须以英文字母或者下划线开头。不允许使用关键字作为标识符

8、的名字,且不允许与库函数名重复。Win通常用大小写混排方式命名,如AddChild等。Linux通常用小写加下划线命名,如add_child。建议不要将两种风格混在一起使用。14.整形常量:在计算机中均用二进制方式存储,但表示形式可以用十进制、八进制、十六进制。编译系统会自动讲其转换为二进制形式进行存储。15.整形常量类型的确定:长整形变量由常量值后跟L 或l来表示如-256L,1024l等等。(带理解)。16.计算机中的实型数以浮点形式表示,即小数点位置可以浮动的。17.C语言中字符常量用单引号括起来的字符,如a,2等。3表示一个字符,而3表示一个整数。为了表示某些控制字符(如回车符、换行符

9、等),C语言引入了一种特殊形式的字符常量转义序列。用斜线开头,凡是有该反斜线,编译器会自动将转义字符和下一个字符组成一个转义序列。18.宏常量 #define N 100 这种类型,是编译预处理指令。将字符中出现的宏名替换成字符串的过程成为宏替换。19.宏变量名一般用大写字母表示(为了与源程序中的变量名有所区别)。20.用双引号括起来的字符串如果与宏名相同,不会被宏替换。21.变量是在程序执行过程中可以改变、可以赋值的量,变量遵循“先定义,后使用”原则。定义形式为类型关键字 变量名1,变量名2;(多个变量定义用,分隔,用;结束)。22.整型的类型关键字为int,但江都的实行类型关键字为floa

10、t,双精度的实型类型关键字为double,字符型的类型关键字为char。如:short max /等价于short int max; long sum /等价于long int sum;unsigned int area/定义area为无符号整型变量。Float score /定义score为单精度实型变量。Double total/定义total为双精度实型变量。Char sex/定义sex为字符型变量。可以定义的时候直接用=赋初值为0或其他想赋的值。23.变量名标识内存中的一个具体的存储单元,变量值则是存储单元中存放的数据。24.定义变量时,只要不指定为无符号类型,其隐含类型就是有符号类型

11、,signed通常都是省略不写的。25.sizeof可以获得类型或变量的字长(所占存储空间的大小)。Sizeof是一个编译时执行的运算符,不会导致额外的运行时的开销,他是在编译期间执行的,除非他的操作数是一个可变的长度数组。26.一个字符型变量之恩能够存储一个字符,存储字符串需要用字符数组。27.编程时注意实型变量数据的舍入误差,注意表示的值的数值溢出问题。四舍五入的写法用+0.5再取整表示。28.常用的标准数学函数:函数名功能函数名功能Sqrt(x)计算x的平方根,x>=0Exp(x)计算eX的值Fabs(x)计算x的绝对值Pow(x,y)计算xy的值Log(x)计算lnX的值,而不是

12、logaXSin(x)计算sinx的值,x为弧度制Log10(X)计算lgx的值Cos(x)计算cosx的值,x为弧度制29.在C语言中,非“0”值均表示真,也可以不是数值,只有0表示假。30.逻辑运算符:!单目逻辑非;&&双目逻辑与 |双目逻辑或。31.闰年的表示条件,可以被4整除,但不能被100整除 或者 被400整除。32.赋值运算符:变量名=表达式 判等 表达式1=表达式2.33.n*=m+2 等价于 n=n(m+2)。34类型强制转换运算符:使用强制转换运算符,可把表达式的结果硬性转换为一个用户制定的类型值,他是一个单目运算符,与其他单目运算符优先级相同。形式:(类型

13、)表达式35.表达式中的类型转换:Float Char,shortDoublelongunsignedint 高低36.复合语句:用一对花括号括起来构成的语句成为复合语句,也称为语句块。语句1;语句2;语句3;语句4注:在复合语句中定义的变量只能在复合语句中使用。37.在表达式语句中,没有人何必脑大师而只有一个分号,成为空语句。 ;/空语句。38.字符输入输出getchar(),putchar(),是专门用于字符输入输出的函数,其中getchar()用于从键盘上读取一个字符,它等待用户击键后,将读入值返回,并自动把用户击键结果回显到屏幕上。格式:变量=getchar putchar(变量)。3

14、9.整型输入输出 scanf(“%d”,&n); printf(“%d”,n);40.表格1:函数printf()的格式转换说明符。41.表格2:函数scanf()的格式转换说明符。42.数据结构(数据的描述和组织形式)+算法(对操作或行为的描述,即操作步骤)=程序。43.程序:有穷性、确定性、有效性、没有输入或有多个输出、有一个或多个输出。开始/结束框 一般处理框 判断框输入输出框 连接符44.流程图:(流程线) I45.顺序结构、选择结构(条件语句if-else)、循环结构。开关语句switch case常量1。46.直到型循环(dowhile),当型循环while() for(表

15、达式1;表达式2;表达式3)。47.switch case1 ;case2;case3开关语句后用break终止后面的执行。48.循环结构 while(表达式)可执行语句序列。Do-while用来实现直到型循环,先执行,后判断。当执行次数大于一次时,直到型循环与当型循环作用相同。当第一次就为假时,do-while会执行一次,而当型循环一次也不执行。(在第一次进入循环时条件就不为真的特殊情况下,while语句和do-while语句是不等价的。)49.for(表达式1;表达式2;表达式3),其中表达式1的作用是初始化变量。表达式2的作用是给出循环重复执行的判断条件。表达式3的作用是给循环控制变量增

16、值。三个表达式用“;”分隔。50.while(表达式2)可执行语句序列,表达式351.while和do-while与剧中的表达式和for语句中的表达式2都是循环继续的条件,而不是循环终止条件。如果没有能够最终将条件改变为假的条件,那么循环永远都不会终止,变成无限循环。(死循环)。52.素数:指除了能被1及其自身整除外,不能被其他任何整数整除的正整数。(1不是素数)53.全局变量:与main()平行定义的变量,在程序的所有位置都有效。局部变量:在程序的某个语句块内定义,只对该语句块有效。#include<stdio.h>Int global /定义全局变量Int main() 54.

17、变量存储类型:我们所使用的未声明的变量均为自动变量(auto),运行到该语句时才为其分配内存,退出时,自动释放内存。定义格式为auto 变量名 变量名 ;由于auto型使用频繁,所以在C中可以省略。默认为auto型。寄存器变量(很少使用)。静态变量也是仅在语句块内有效,在第一次进入语句块时候就会分配内存而且初始化,一直到程序完全退出才会释放该内存。Static。55.预处理#include #define(宏定义指令)等。56.assert差错,assert为真时,程序不受影响,一旦为假,程序终止运行。57.模块化程序设计:将各功能化为分步程序进行设计定义,后设计、执行。58.一个对象部分地由

18、它自己组成或按照它自己定义,则称它为递归。设计的函数称为递归函数。例:计算阶乘。long fact(long n);if(n<0)/n<0,无法计算阶乘,返0return 0;Else if(n=0 | n=1)return 1;/递归终止条件,当n为0或1时,返回1;Else Return n*fact(n-1);/递归调用计算n!。#include<stdio.h>long fact(long n);int main( )Int n;long result ;scanf(“%d”,&n);result =fact(n);59.数组的定义和初始化:由若干类型相

19、同的相关数据项按顺序存储在一起形成的一组同类型的有序数组的集合,称为数组。数据项称为其元素。“先定义,后使用”。60.数组元素和普通的基本型变量一样,可出现在任何合法的C语言表达式中,也可作为函数参数使用。61.数组定义时候,如果没有赋值,数组中存储的为随机值(在auto时,static会自动初始化)。C语言典型例题汇总1. 水仙花数求解:#include <stdio.h>#include <stdlib.h>int main() int m,g,s,b; m=100;for(;m<=999;m+) g=m%10;s=m/10%10;b=m/100; if(m

20、=g*g*g+s*s*s+b*b*b) printf("%dn",m); return 0;2. 判断是否为闰年:#include <stdio.h>#include <stdlib.h>int main() int year; printf("Please input the yearn" ); scanf("%d",&year); if(year % 4 =0 && year %100 !=0 | year %400=0) printf("The year is Runni

21、an"); elseprintf("The year is not runnian ") ; return 0;3. 九九乘法表输出:4. 输出完数:5. 3位正整数的反向输出:6.输入华氏温度,转化为摄氏度:7.输入两个数a,b;将这两个数反向进行输出。如a=8,b=6输出a=6,b=8。8. 输入一个班20名同学的C语言测验成绩,求出最高分,最低分,平均分,并按成绩由高到低进行排序。(使用模块化编程思想)。9. 输入一些学生的分数,哪个分数出现的次数最多?如果有多个并列,则都输出。设分数均不超过100的非负整数。10. 选择法、交换法排序:选择法:#inclu

22、de <stdio.h>#include <stdlib.h>#define N 100void Input(int a,int n);void Output(int a,int n);void SelectSort(int a,int n);int main()/升序排列 int aN,n; scanf("%d",&n); Input(a,n); SelectSort(a,n); Output(a,n); return 0;void Input(int a,int n) int i; for(i=0;i<n;i+) scanf(&qu

23、ot;%d",&ai); void Output(int a,int n) int i; for(i=0;i<n;i+) printf("%dt",ai); void SelectSort(int a,int n) int i,j,min,temp; for(i=0;i<n;i+) min=i; for(j=i+1;j<n;j+) if(amin>aj) min=j; temp=amin; amin=ai; ai=temp; 交换法#include <stdio.h>#include <stdlib.h>#d

24、efine N 100void Input(int a,int n);void Output(int a,int n);void ChangeSort(int a,int n);int main()/升序排列 int aN,n; scanf("%d",&n); Input(a,n); ChangeSort(a,n); Output(a,n); return 0;void Input(int a,int n) int i; for(i=0;i<n;i+) scanf("%d",&ai); void Output(int a,int n

25、) int i; for(i=0;i<n;i+) printf("%dt",ai); void ChangeSort(int a,int n) int i,j,temp; for(i=0;i<n;i+) for(j=i+1;j<n;j+) if(ai>aj) temp=aj; aj=ai; ai=temp; #include <stdio.h>#include <stdlib.h>#define N 100void Input(int a,int n);void Output(int a,int n);void BubbleSort(int a,int n);int main()/升序排列 int aN,n; scanf("%d",&n); Input(a,n); BubbleSort(a,n); Out

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论