C语言期末考试总结,看完保你过

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第一部分C语言初步知识主要内容1.1C程序开发运行方法1.2数据类型1.3运算符与表达式用VisualC++开发C程序:项目类型:Win32consoleApplication文件类型:C++SourceFile开发C程序的四个步骤:(1)编辑:在文件代码窗口,按照C语法规则编辑C源程序文件(.cpp或.c)。(2)编译:将C源程序文件编译为目标文件(.odj)。(3)连接:将库函数代码连接到目标文件中,生成一个可执行文件(.exe)。(4)执行:运行可执行文件(.exe),在屏幕上显示运行结果。§1-1C程序开发运行方法用VisualC++开发C程序的项目类型?用VisualC++开发C程序的文件类型?开发C程序的四个步骤?§1-2C的数据类型介绍C语言提供的以下一些数据类型:结构体类型struct数组数据类型构造类型指针类型基本类型空类型void整型intshortlong(unsigned)字符型char实型floatdoublelongdoubleC语言数据类型中的基本类型?C语言数据类型中的构造类型?1.常量常量:在程序运行过程中,其值不能被改变的量(1)整型常量十进制整数八进制整数:以0头的数。如:011-011085十六进制整数:以0x开头的数。如:0x123-0x120x2g(2)实型常量小数形式:有小数点且小数点后有数字。如:-0.11.110.00.指数形式:字母e(或E)之前为整数或小数且e后面为整数。如:12e3,1.8e-3,-.1e-3,e3,2e3.5规范化:小数点前有一位且只能有一位非零的数字整数的八进制形式?整数的十六进制形式?实数的小数和指数形式?(3)字符型常量字符常量:用单引号包含的一个字符转义字符:以\开头的字符字符串常量:用双引号包含的字符序列.如:'a','1‘,'\n','\0','\18'123,a,Howdoyoudo!,'abc'2.变量变量:在程序运行过程中,其值能被改变的量•变量命名要符合C语言标识符规则。C语言标识符规则:只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线如:sum,_total,ch1_1,M.D.Haln,¥100,3DMax合法的字符型常量形式?合法的转义字符形式?合法的C语言标识符形式?•变量要“先定义,后使用”•变量定义时,系统按变量类型分配内存。•字符数据和整型数据之间可以通用。如:已知charc1='a',c2=‘B'则printf(“%d,%d,%c,%c\n”,c1,c2,c1-32,c2+32);输出结果是:97,66,A,b字符型和整型通用?字母A:65字母a:97大小写差32大小写转换§1-3运算符和表达式优先级运算符运算符功能运算类型结合方向1()[]-.圆括号,函数参数表数组元素下标指向结构体成员结构体成员自左至右2!++、--*&(类型名)逻辑非自增1,自减1间接访问运算符求地址运算符强制类型转换单目运算自右至左3*、/、%乘、除/整除、整数求余双目运算符自左至右4+、-加、减6、=、、=小于、小于等于、大于、大于等于7==、!=等于、不等11&&逻辑与(短路运算符)12||逻辑或(短路运算符)13?:条件运算三目运算自右至左14=、+=、-=、*=/=、%=、&=、^=|=、=、=赋值、先运算再赋值双目运算15,顺序求值顺序运算自左至右•下列运算符中优先级最高的运算符是()A.!B.%C.+=D.||•已有定义:intx=789;则表达式x/10%10的值是()•已有定义:inta=3,b=4;floatc=5.4;则表达式!(a-b)+(int)c/2+a++的值是()•已有定义:inta=1,b=2,c=3,d=4,m=1,n=1;则计算表达式(m=ab)&&(n=cd)后,m、n的值是()•表示数学关系a≤b≤c的C语言表达式是()运算符:/除、整除%整数求余++自增1--自减1+=先运算再赋值(类型名)强制类型转换!逻辑非&&逻辑与(短路运算符)||逻辑或(短路运算符)?:条件运算符,逗号运算符(顺序求值)第二部分C结构化程序设计主要内容2.1三种基本结构2.2if语句2.3for语句2.4while语句2.5break和continue语句顺序结构选择结构:if、switch、break循环结构:for、while、continue、break§2-1三种基本结构§2-2if语句if(表达式1)语句1elseif(表达式2)语句2else语句3计算表达式1的值,若其值为真(值为非0),则执行语句1,否则计算表达式2的值,若其值为真(值为非0),则执行语句2,否则就执行语句3includestdio.hintmain(){inta,b;scanf(“%d”,&a);if(a0)b=-2*a;如果从键盘上输入8回车,则输出?elseif(a==0)b=0;elseb=2*a;printf(“a=%d,b=%d\n”,a,b);return0;}-2a(a0)例有一个函数b=0(a=0)编一程序,输入一个a值,输出b值。2a(a0)if-else语句§2-2for语句for(表达式1;表达式2;表达式3)语句(1)先计算表达式1。(2)计算表达式2,若其值为真(非0为真),则执行语句,然后执行下面第(3)步。若为假(值0为假),则结束循环,转到第(5)步。(3)计算表达式3。(4)转回上面第(2)步。(5)循环结束,执行for语句下面的一个语句#includestdio.hintmain(){inti,s=0;for(i=1;i=100;i++)s+=i;/*计算1+2+3+…+100的值*/printf(sum=%d,s);return0;}/*计算1+3+5+7+…+99的值*//*计算2+4+6+…+100的值*//*计算1*2+2*3+3*4++…+9*10的值*/for语句§2-3while语句while语句用来实现“当型”循环结构。一般形式:while(表达式)语句当表达式为非0值(“真”)时,执行语句。其特点是:先判断表达式,后执行语句。从键盘输入的字符中统计大写字母字符的个数,用换行符结束循环。#includestdio.hmain(){charc;intn=0;while((c=getchar())!=‘\n’)if(c=‘A’&&c=‘Z’)n++;printf(“Num=%d\n,n);}从键盘输入的字符中统计小写字母字符的个数?从键盘输入的字符中统计字母字符的个数?从键盘输入的字符中统计数字字符的个数?while语句§2-4break、continue语句break;结束整个循环。跳出循环体,接着执行循环语句下面的语句Continue;结束本次循环。跳到:for语句的表达式3处或while语句的表达式处继续进行。输出从100到200之间能被3整除的数。#include“stdio.h”main(){intn;for(n=100;n=200;n++){if(n%3!=0)continue;printf(%5d,n);}}输出从100到200之间不能被3整除的数?continue语句下面程序,输入-1-35892回车,则输出结果是?main(){inti,a;for(i=1;i=6;i++){scanf(“%d”,&a);if(a%2==0)break;printf(“%d”,a);}}如果break;改为continue;输出结果是?break语句第三部分数组、函数、指针和结构体主要内容3.1数组定义、初始化和引用3.2函数的定义与调用3.3指针变量的定义和引用3.4结构体变量的定义和引用1.数组定义和初始化•全部元素赋初值,可以不指定数组长度•给前面部分元素赋初值,后面自动置零•二维数组分行全部或部分元素赋初值,可以不指定第一维的长度•初值个数大于数组长度,则按语法错误处理。2.数组的引用•通过对数组元素的引用来实现§3-1数组定义、初始化和引用intb[]={1,-2,3,-4,5};intb[6]={-1,2,-3,4,-5};intb[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};intb[][4]={{0,1,2},{0},{2,3}};intb[][]={{10,11,12,13},{14,15,16,17},{18,19,20,21}};intb[3][]={{1,2,3},{1},{9,10}};intb[4]={1,2,3,4,5};数组初始化输入字符串:charb[]=”TheCLanguage.”;charb[15]=”TheCLanguage.”;charb[]={‘T’,‘h’,‘e’,‘’,‘C’,‘’,‘L’,‘a’,‘n’,‘g’,‘u’,‘a’,‘g’,‘e’,‘.’,‘\0’};charb[]={‘T’,‘h’,‘e’,‘’,‘C’,‘’,‘L’,‘a’,‘n’,‘g’,‘u’,‘a’,‘g’,‘e’,‘.’};输入含空格字符串:gets(b);scanf(“%s”,b);输入字符串#includestdio.hvoidmain(){inti;intx[2][2]={2,2,3,3};for(i=0;i2;i++)printf(“%3d”,x[i][0]);}程序输出结果是?printf(“%3d”,x[i][1]);结果是?printf(“%3d”,x[0][i]);结果是?printf(“%3d”,x[1][i]);结果是?数组的引用1.在主调函数中对被调用函数作函数原型声明。函数原型声明要和函数保持函数类型、函数名、以及形参的类型、个数和顺序相同,不检查形参名。intmulti(intx,inty){return(x*y);}§3-2函数定义和调用函数原型声明:intmulti(intx,inty);intmulti(int,int);intmulti(inta,intb);intmulti(int,inty);intmulti(intx,y);函数原型声明?2.函数调用时实参与形参保持个数、类型和顺序一致。3.可以通过return语句将一个函数值带回主调函数中去。求数组的n个元素中的最大值floatmax(floata[],intn){inti;floatm=a[0];for(i=1;in;i++)if(ma[i])m=a[i];returnm;}求数组的n个元素中的最小值intmin(inta[],intn)求数组的n个元素的平均值doubleaverage(doublea[],intn)形参用数组,实参用数组名。函数定义1.指针变量的定义•定义:基类型*指针变量;•赋值:指针变量=&变量;•间接访问:*指针变量;§3-3指针变量的定义和引用如:inta=10,*p=&a;printf(“%d,%d\n”,a,*p);//*p与a等价2.通过指针变量引用数组元素•下标法:a[i]•指针法:*(p+i)如:已有定义:intx[5]={2,4,6,8,10},*p=&x;则printf(“%d,%d”,*p,*(p+3));的输出结果是?通过指针变量引用数组元素?3.通过字符指针变量引用字符串•用字符串常量对字符指针变量赋初值•用字符指针变量访问字符串如:#includestdio.hvoidmain(){char*p=”TheCProgrammingLanguage.”;printf(“%c,%c,%s\n”,*(p+4),*(p+5),p+18);}用字符指针变量访问字符串4.指针变量作为函数参数•形参用指针变量,实参用指针如:实现交换两个实数的函数voidswap(float*p1,float*p2){floattemp;temp=*p1;*p1=*p2;*p2=temp;}形参用指针变量,实参用变量地址。在主函数中测试。指针变量作为函数参数如:实现字符串复制的函数voi

1 / 38
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功