收藏 分销(赏)

C语言期末考试复习资料.ppt

上传人:快乐****生活 文档编号:14604166 上传时间:2026-10-19 格式:PPT 页数:122 大小:445.54KB 下载积分:10 金币
下载 相关
C语言期末考试复习资料.ppt_第1页
第1页 / 共122页
C语言期末考试复习资料.ppt_第2页
第2页 / 共122页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,C语言期末考试复习资料完整版,C语言期末考试复习资料完整版C语言期末考试复习资料完整版,考试的主要题型和分数分布,:,1 单项选择题(,1,0小题,每题2分,共,2,0分),2 填空题(每空,1,分,共,1,0分),3,阅读程序,(每题2分,,,共10分),4,程序填空,(每,空,2分,,,共,4,0分),5,编写程序(,2,小题,每题,10,分,共20分),2,第一章,C,语言概述,3,第,1章 C语言概述,本章包含4项目重点内容:,1 简单的C语言程序,#include,void main(),printf(This is a C program.n);,4,2 VC+6.0 环境:,编辑,C,语言源程序 后缀是,.c,或,.cpp,经过编译产生目标文件,后缀是,.obj,再经过连接成为可执行文件,后缀 是,.exe,3 C,语言是结构化程序,有三种结构,(,1,)顺序结构;,(,2,)选择结构;,(,3,)循环结构;,5,4 C语言是由函数组成的,其中必须有一个并且只有一个主函数 main,程序的执行从main 函数开始,到main 函数结束,.,6,第二章,数据类型、运算符及表达式,7,C的数据类型,C语言提供了以下一些数据类型。,数据类型,构造类型,指针类型,空类型(,无值类型),void,枚举类型,enum,数组类型,结构类型,struct,联合类型,union,基本类型,整型,int,字符型,char,实型(浮点型),单精度实型,float,双精度实型,double,8,常量,及变量,常量和符号常量,在程序运行过程中,其值不能被改变的量称为常量,常量区分为不同的类型:,整型 100,125,-100,0,实型 3.14,0.125,-3.1e3,字符型 a,057,x3c,字符串“a”,“ab”,”1232”,定义,字符常量,:,#define PI 3.1415926,#define N 20,9,变量命名的规定:,语言规定标识符,:,1 只能由字母、数字和下划线三种字符组成;,(注意不要混淆下划线_和杠号(减号)-),2 第一个字符必须为字母或下划线;,3 不能使用关键字.,例:,sum,_123,m123,Student_name1,12a,Jo-hn,¥123,a#b,int,10,整型常量的表示方法,整型常量即整常数。在语言中,整常数,可用以下三种形式表示:,(1)十进制整数。,如:,123,-456,(2)八进制整数。以0开头的数是八进制数。,如:,0123表示八进制数123,等于十进制数83,0129 非法(每位0-7合法),(3)十六进制整数。以0 x开头的数是16进制数。,如:0 x123,代表16进制数123,等于十进制数291 而 0 x12g 非法(每位0-f合法,),11,字符型数据,字符常量,(1)用,单引号,包含的单个字符,(2)用,单引号,包含的由,开始的转义字符,例,a,A,1,037,x2d,abc,“a”,082,x5g,12,字符串常量,字符串常量是一对,双引号,括起来的字符序列,.,合法的字符串常量,:,“,How do you do.”,“CHINA”,,“,a”,,“,$123.45”,可以输出一个字符串,如,printf(“How do you do.”),;,13,运算符简介,的运算符有以下几类:,(1)算术运算符(+-*/%),(2)关系运算符(!),(3)逻辑运算符(!|),(4)位运算符 (|),(5)赋值运算符(及其扩展赋值运算符),(6)条件运算符(?:),14,算术运算符和算术表达式,基本的算术运算符:,(加法运算符或正值运算符如:、),(减法运算符或负值运算符,如:、),*,(乘法运算符。如:*),(除法运算符,实数相除结果是双精度实数,整数相除结果是整数;两数同号结果是正数,两数异号结果是负数,且舍入得方向不固定,Vc+是“向0取整,),(求余运算符,两侧必须为整型数据,结果及被除数一致。,),15,自增、自减运算符,作用是使变量的值增或减,如,:,,(在使用之前,使,+1 或-1),,(在使用之后,使,+1 或-1),就是使用 i 的原值执行本条语句,而在执行下条语句前将 i+1 或-1,int m=5,n=10;printf(%d,%dn,m+,-n);,显示5,9,若再有:printf(“%dn”,m);显示6,16,赋值运算符,赋值符号“”就是赋值运算符,它的作用是,将一个数据赋给一个变量,如a=5;(单等号),而 a=5 是判断 a是否等于 5;(双等号),如 int a=3;if(a=2)为假,,而 if(a=5)为真。,17,第三章,最简单的,c,程序设计,-,顺序程序设计,18,C语句概述,C程序,源程序文件,1,源程序文件,2,源程序文件,n,预处理命令,函数,n,函数,1,数据声明,函数首部,函数体,数据声明,执行语句,19,C语句概述,控制语句 完成一定的控制功能,1 if()else,条件,语句 6 break 间断语句,2 for(),循环,语句,7,switch()开关语句,3 while(),循环,语句,8,goto 转向语句,4 do while();,循环,语句,9,return 返回语句,5 continue,继续,语句,20,格式输入,及输出,(一),.格式输出函数,函数作用:向终端(或系统隐含指定的输出设备)输出,若干个任意类型,的数据。,一般格式:,printf(格式控制,输出表列),%d,:以带符号的十进制形式输出整数,%o,:以八进制无符号形式输出整数,%x,:以十六进制无符号形式输出整数,21,格式输入,及输出,%u,:以无符号十进制形式输出整数,%c,:以字符形式输出,只输出一个字符,%s,:输出字符串,%f,:以小数形式输出单,双精度数,隐含输出六位小数,%e,:以指数形式输出实数,%g,:选用%f或%e格式中输出宽度较短的一种格式,不输,出无意义的0,22,格式输入,及输出,用printf 和scanf函数输出和输入数据。#include,int,main()int a,b,c;scanf(“%d,%d,%d”,运行情况:,3,4,5 (输入a,b,c的值)3,4,5 (输出a,b,c的值),表示,a在内存中的地址,其中,,&是地址运算符,23,在格式输入,及输出中,格式控制是用双引号包括的,其中一般带有%d,%c,%f,%s等各种对数据类型的要求.,24,第四章,选择结构程序设计,25,关系运算符和关系表达式,1.关系运算符及其优先次序,(,小于,),(,大于,),=(,大于或等于,),=(,等于,),!=(,不等于,),优先级相同(高),优先级相同(低),说明:,关系运算符的优先级低于算术运算符,关系运算符的优先级高于赋值运算符,26,关系运算符和关系表达式,2.,关系表达式,用关系运算符将两个表达式(可以是算术表达式或,关系表达式,逻辑表达式,赋值表达式,字符表达式),接起来的式子,称关系表达式,例:,ab,a+bb+c,(a=3)(b=5),ab)(bb”,的值为“真”,表达式的值为,1,。,C语言中没有专用的逻辑值,1代表真,0代表假,27,逻辑运算符和逻辑表达式,1.逻辑运算符及其优先次序,(1)&(逻辑,及,),(2)|(逻辑或),(3)!(逻辑非),优先次序:,逻辑非!,算术运算符 关系运算符 逻辑,及或,赋值运算符,或运算中有,1,值为1,与运算中有0,值为0,28,if语句,2.If语句的嵌套,在,if语句中又包含一个或多个if语句称为if语句的嵌套。,形式:,if(),if()语句1,else 语句2,else,if()语句3,else 语句4,内嵌,if,29,if语句,如,int a=3,b=4,c=5;,if(ab),a=b,;b=c;c=a;,第1个,因为ab,)?,a:b;,min=(ab),?,a:b;,31,if语句,例,:输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。,#include void main()char ch;scanf(“%c”,ch=,(A=ch,printf(“%cn”,ch);,/注意:不能用 A=ch=Z,它永远为真,如果字符变量,ch的值为大写字母,则条件表达式的值为(),即相应的小写字母。如果ch的值不是大写字母,则条件表达式的值为,即不进行转换。,32,几个典型的判断,:,判断大写字母:,if(A=c&c=Z),判断小写字母:,if(a=c&c=z),判断数字:,if(0=c&c=9),判断闰年:,if(year%4=0&year%100!=0)|year%400=0),33,注意:例如在判断数字中:,if(0=c&c=9),不可以没有,&,也不能没有 ,即不能用,if(0=c=9),也不能用,if(0=c&c=9),但可以用,if(48=c&c=57),(想想为什么?),34,用switch语句实现,(,若a是整数),按照考试成绩输出等级百分制分数段,switch(a/10),case 10:,case 9:grade=A;break;,case 8:grade=B;break;,case 7:grade=C;break;,case 6:grade=D;break;,default:grade=E;,35,第五章,循环结构程序设计,36,用while语句实现循环,while语句用来实现“当型”循环结构。,一般形式:,while(表达式)语句,当表达式为非0值时,执行while语句中的内嵌语句。其特点是:先判断表达式,后执行语句。,37,求正整数m和n的最大公约数和最小公倍数:,#include void main()int p,r,n,m;printf(请输入两个正整数n,m:);scanf(%d,%d,while(m!=0),r=n%m;n=m;m=r;printf(它们的最大公约数为:%dn,n);,printf(它们的最小公倍数为:%dn,p/n);,38,其中用下面的辗转相除法求出最大公约数n,while(m!=0),r=n%m;n=m;m=r;,把它独立出来就是一个函数,int hcf(int m,int n),int r;,while(m!=0)r=n%m;n=m;m=r;return(n);,用 p/n 得到最小公倍数,39,用do-while语句实现循环,do-while语句的特点:先执行循环体,然后判断循环条件是否成立。,一般形式:,do,循环体语句,while(表达式);,执行过程:先执行一次指定的循环体语句,然后判别表达式,当表达式的值为非零,(“真”)时,返回重新执行循环体语句,如此反复,直到表达式的值等于0为止,此时循环结束。,40,例如,:为了保证输入成绩的正确,可以使用语句:,printf(请输入学生成绩a(0-100):);,scanf(%d,while(a100),printf(n 输入有误,请重输:);,scanf(%d,41,我们更简洁地用,do-while语句,do,printf(“请输入成绩 a(0-100):”);,scanf(“%d”,while(a100);,注意,while(a100);的含义和;号,42,用,do-while语句计算 10!,i=1;s=1;do s=s*i;i+;while(i=10);,不是:,i=1;s=0;do s=s*i;i+;while(i=10);,也不是:,doi=1;s=1;s=s*i;i+;while(i=10);,doi=1;s=0;s=s*i;i+;while(i=10);,43,while语句和用do-while语句的比较:,while 是先判断条件,再决定是否执行,所以可能一次也不执行;,do-while 是先执行再判断条件,决定是否还执行,所以至少执行一次,.,44,用for 语句实现循环,C,语言中的,for,语句使用最为灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替,while,语句。,一般形式,:,for(,表达式,1,;表达式,2,;表达式,3),语句,45,注意,:,for,中用两个分号隔开,不能省略,;,for,只对其后,第一个语句,有效,如果要求对多条语句有效,必须用,花括号,括之成为复合语,;,for(),后通常没有分号,有分号将不执行任何语句,只执行自己的循环,;,46,下面是,用for语句,显示数组,a中的最小值的程序,#include,void main(),int a5=4,2,8,9,5,i,min;,min=a0;,for(i=1;iai)min=ai;,printf(%dn,min);,47,break语句和continue语句,break语句,break语句可以用来从循环体内跳出循环体,,即提前结束循环.,一般形式:,break;,注意,:,break语句只能用于循环语句或switch语句中。,48,continue语句,作用为结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次循环的判定.,一般形式:,continue;,49,例 把,100200之间的不能被3整除的数输出。,#include void main()int n;for(n=100;n字符串2,函数值为1。,(3),如果字符串1str2),只能用,if(strcmp(str1,str2)0),69,6.strlen函数,其一般形式为:,strlen(字符数组),strlen是测试字符串长度的函数。函数的值为字符串中的实际长度(不包括0在内)。,例如:,char str10=China;,printf(%d,strlen(str);,输出结果不是10,也不是6,而是5,即有效字符数.,70,strlwr(字符串),strlwr函数7.strlwr函数,其一般形式为:的作用是将字符串中大写字母换成小写字母。,8.strupr函数,其一般形式为:,strupr(字符串),strupr函数的作用是将字符串中小写字母换成大写字母。,71,使用字符串函数时,必须包括字符串函数库:,#include,72,我们可以不使用字符串函数编写程序:,例如,:,不使用strcat 连接两个字符串;,不使用strcpy 拷贝字符串;,不使用strcmp 比较字符串;,73,不使用,strcpy 拷贝字符串:,1 用数组:,For(i=0;i=strlen(s2);i+)S1i=s2i;,2 用指针:p1=s1;p2=s2;,while(*p1+=*p2+);,寻找字符串尾:while(s1i)i+;,i 就是字符串尾的下标,再拷贝就是连接。,74,第七章,函数,75,简单的C语言函数,#include,/*文件包含*/,void,main(),/*主函数*/,/*函数体开始*/,printf(“This is a C program.n”);,/*函数体语句*/,/*函数体结束*/,76,说明:,main是主函数名,void,是,函数类型,每个C程序是由若干函数组成的,其中必有一个并且只能有一个,主函数,main(),每个C程序从main函数开始执行,到main函数,结束,即执行的是主函数的函数体,及主函数,main,在程序中的位置无关,;,77,是函数开始和结束的标志,不可省略;,每个C语句以分号结束;,在主函数中直接或间接调用其他函数;,使用标准输入出库,函数时,应写:,#include,使用数学库,函数和字符串函数时,应写:,#include,#include,78,一个函数由两部分组成,:,函数的首部:,例,1.3中的max函数首部,int max(int x,int y),函数体:,花括号内的部分。若一个函数有多个花括号,则最外层的一对花括号为函数体的范围。,79,函数定义的一般形式,类型标识符,函数名,(形式参数表列),声明部分,语句部分,其中类型标识符是函数返回值的数据类型,如:int,char,float,double 等,也可以是无返回值,写为void.,也可以没有形式参数表列,称为无参函数.,80,例如:,int max(int,int),int;/*函数体中声明部分*,?;/*函数体中语句部分*,return();/*返回值*/,81,函数参数和函数的值,形式参数和实际参数,形式参数:,函数名后面括弧中的变量名称为“形式参数”(简称“,形参,”),;,实际参数:,主调函数中调用一个函数时,函数名后面括弧中的参数,(可以是一个表达式)称为“实际参数”(简称“,实参,”),;,函数返回值:,return后面的括弧中的值作为函数带回的值(称,函数返回值,)。,82,说明:,1.函数的返回值是通过函数中的return语句获得的。,一个函数中可以有一个以上的return语句,执行到哪一个return语句,哪一个语句起作用。,83,函数的调用,对被调用函数的声明和函数原型,在一个函数中调用另一函数(即被调用函数)需要具备哪些条件呢?,1.首先被调用的函数必须是已经存在的函数(是库函数或用户自己定义的函数)。,84,3.如果使用用户自己定义的函数,而该函数的位置在调用它的函数(即主调函数)的后面,应该在主调函数中对被调用的函数作声明,即写上函数的原型。,用函数首部加上,;号表示函数声明.,2.如果使用库函数,还应该在本文件开头用#include 命令将调用有关库函数时所需用到的信息“包含”到本文件中来。如#include,#include,#include,85,函数调用的实例(求两整数的最大公约数):,#include,void main(),int hcf(int u,int v);,/函数声明,int u,v,h;,scanf(%d,%d,h=hcf(u,v);,printf(%d,%d的最大公约数是:%dn,u,v,h);,/函数定义,int hcf(int u,int v),/函数首部,int r;,while(v!=0),r=u%v;u=v;v=r;,return(u);,86,局部变量和全局变量,局部变量,在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用它们,在此函数以外是不能使用这些变量的。这称为“局部变量”,。,87,全局变量,在函内定义的变量是,局部变量,而在函数外定义的变量称为外部变量,也称全局变量.,静态局部变量是函数中保持最近值不释放的变量,在函数中用下面方式定义:,static int c=7;,88,考察静态局部变量的值,#include,void main(),int(int a);,,;,(;),(,();,int(int),int;,;,3;,2;,();,3次调用函数f 后,c 的值是 9,89,第八章,指针,90,地址和指针的概念,内存区的每一个字节有一个编号,这就是“,地址,”。,如果在程序中定义了一个变量,在对程序进行编译时,系统就会给这个变量分配内存单元。,91,一个变量的地址称为该变量的“指针”。,例如,地址,2000是变量的指针。如果有一个变量专门用来存放另一变量的地址(即指针),则它称为“指针变量”。,指针和指针变量的定义:,92,指针变量的引用,注意,:,指针变量中只能存放地址(指针),,不要将一个整数(或任何其他非地址类型的数据),赋给一个指针变量。,例 通过指针变量访问整型变量,#include,voidmain(),int;,int*p;,;,p;/*把变量的地址赋给 p*/,printf(“%d,%dn”,a,*p);,93,对“”和“*”运算符说明:,如果已执行了语句,p 那么:,那么,a 和*p 是相同的值,所以,如果,a=3,;,Printf(“%d,%d”,a,*p);显示是 3,3,所以,如果,*,p=6,;,Printf(“%d,%d”,a,*p);显示是 6,6,94,指针变量作为函数参数,例,10.3 对输入的两个整数按大小顺序输出,#include,void main(),void swap(int*,int*);,int,;,int*p,*p;,scanf(,);,p;p2;,if(),swap(p,p2);,printf(,);,95,void swap(int *,int *),int temp;,temp*1;,*;,*temp;,96,下面的函数,:,void swap(int a,int b),int temp;,tempa;,a=b;,b=temp;,/*只在函数中交换了局部变量*/,同样不可用函数:void swap(int *p,int b),或 void swap(int a,int *p),只能用函数,void swap(int *p1,int *p2),处理主调用函数中的变量,97,定义一个指向数组元素的指针变量的方法,例如:,int a10,*p;,p=a;(a是数组的首地址,注意a前没有地址符),或 p=,虽然a和p都是地址,它们是不同的:,a 是数组的首地址,一旦由系统分配,就是一个固定的值;,而p是指针变量,是可以改变的.,所以,a+是错误的,而p+是正确的,.,指向数组元素的指针,98,10.通过指针引用数组元素,如果,int a6,*p=a;,引用一个数组元素,可以用:,()下标法,如,ai形式;,()地址或指针法,如*(a+i)或*(p+i),注意,:a0-a5合法,a6非法;,*(a)-*(a+5)合法,*(a+6)非法;,*(p)-*(p+5)合法,*(p+6)非法;,99,字符串,及指针,字符串的表示形式,例 定义一个字符数组,对它初始化,,然后输出该字符串,#include,void main(),char *sabcdefg;,printf(%n,s);,输出 abcdefg,(1)用字符数组存放一个字符串,然后输出该字符串。,100,输出,cdefg 的语句是:,printf(%n,s+2);s+2 是指针,输出 efg 的语句是:,printf(%n,s+4);s+4是指针,输出字符 f 的语句是:,printf(%cn,*(s+5));*(s+5)是字符,注意:输出字符串用,%s 和指针;,输出字符用%c 和*(指针),101,指针运算,及数据:,#include,void main(),int a5=2,4,6,8,10,*p;p=a;,printf(%d,*(p+2);,printf(%d,*+p);,printf(%d,*p+);,printf(%dn,*+p);,显示 6,4,4,8,注意,1 p+2 没有改变p 的值;,注意 2 +p,和 p+的区别,.,102,调用函数实现数组的相反顺序存放:,#include,void main(),void inv(int x,int n);,/函数声明,int i,a10=3,7,9,11,0,6,7,5,4,2;,printf(The original array:n);,for(i=0;i10;i+),printf(%d,ai);,printf(n);,inv(a,10);,/调用函数,printf(The array has been inverted:n);,for(i=0;i10;i+),printf(%d,ai);,printf(n);,103,/用数组元素:,void inv(int x,int n),int temp,i,j,m=(n-1)/2;,for(i=0;i=m;i+),j=n-1-i;,temp=xi;xi=xj;xj=temp;,104,/或用指针:,void inv(int*x,int n),int*p,temp,*i,*j,m=(n-1)/2;,i=x;j=x+n-1;p=x+m;,for(;i=p;i+,j-),temp=*i;*i=*j;*j=temp;,这时函数声明要改成:,void inv(int*x,int n);,105,用选择法实现数组从大到小排序的函数:,void sort(int x,int n),int i,j,k,t;,for(i=0;in-1;i+),k=i;,for(j=i+1;jxk)k=j;,if(k!=i),t=xi;xi=xk;xk=t;,106,第九章,用户建立的数据类型,-,结构体,107,问题定义:,有时需要将不同类型的数据组合成一个有机,的整体,以便于引用。,如:,一个学生有学号,/,姓名,/,性别,/,年龄,/,地址等,int num;,char name20;,char sex;,int age;,char addr30;,108,声明一个结构体类型的一般形式为:,struct,结构体名,成员表列;,如:,struct,student,int,num;,char,name20;,char,sex;,int,age;,float,score;,char,addr30;,结构体名,类型名,成员名,109,定义结构体类型变量的方法,可以采取以下,3,种方法定义结构体类型变量:,先声明结构体类型再定义变量名,例如:,struct student,student1,student2,;,|,结构体类型名 结构体变量名,定义了,student1,和,student2,为,struct student,类型的变量,即它们具有,struct student,类型的结构,.,图9-2,student1,100101 ZhangXin M 19 90.5 Shanghai,100102 WangLi F 20 98 Beijing,student2,110,引用结构体变量中成员的方式为,结构体变量名,.成员名,例如,,student1.num,表示student1变量中的num成员,即student1的num(学号)项。可以对变量的成员赋值和运算,student1.num=10010,111,但不能用以下语句整体读入结构体变量,,例如:,scanf(%d,s,c,d,f,s,student1);,结构体变量的地址主要用作函数参数,传递结构体变量的地址。,对结构体变量初始化.,#include void main()struct student long int num;char name20;char sex;char addr20;a=10101,LiLin,M,123 Beijing Road;,/*对结构体变量a赋初值*/,printf(No.:%ldnname:%snsex:%cnaddress:%sn,a.num,a.name,a.sex,a.addr);,112,结构体数组,一个结构体变量中可以存放一组数据(如一个学生的学号、姓名、成绩等数据)。如果有个学生的数据需要参加运算,显然应该用数组,这就是结构体数组。结构体数组,及以前介绍过的数值型数组不同之处在于每个数组元素都是一个结构体类型的数据,它们都分别包括各个成员项。,113,定义结构体数组,和定义结构体变量的方法相仿,只需说明其为数组即可。,例如:,struct student,int num;char name20;,char sex;int age;,float score;char addr30;,;,struct student stu3;,以上定义了一个数组,stu,数组有个元素,均为struct student类型数据。,114,结构体数组的初始化,及其他类型的数组一样,对结构体数组可以初始化。,例如:,struct student,int num;char name20;char sex;,int age;float score;char addr30;,;,stu210101,LiLin,M,18,87.5,103 BeijingRoad,,10102,Zhang Fun,M,19,99,130 Shanghai Road;,115,例 指向结构体变量的指针的应用,#include#include void main()struct studentlong num;char name20;char sex;float score;struct student s;,struct student*p;p=,s.num=89101;strcpy(s.name,”LiLin”);s.sex=M;s.score=89.5;,printf(No.:%ldnname:%snsex:%cnscore:%fn,s.num,s.name,s.sex,s.score);,printf(No.:%ldnname:%snsex:%cnscore:%fn,(*p).num,(*p).name,(*p).sex,(*p).score);,定义指针变量,p,指向struct student 类型的数据,指向的结构体变量中的成员,116,9.3.2 指向结构体数组的指针,11.6.2 指向结构体数组的指针,例,9.4 指向结构体数组元素的指针的应用,#include struct studentint num;char name20;char sex;int age;struct student stu3=10101,Li Lin,M,18,10102,Zhang Fun,M,19,10104,WangMing,F,20;void main()struct student*p;printf(No.Name sex age);,for(str;str;p)printf(%5d%-20s%2c%4dn,p-num,p-name,p-sex,p-age);,运行结果:,LiLin 18,Zhang Fun,19,WangMing,20,117,所以,s.num,(*p).num,p-num,都表示学生 s 的学号,是正确的.,而,(*s).num,p.num,(*p)-num,p-.num,都是错误的!,118,常见错误举例,119,1 多写了分号,void main();,for(i=0;i10;i+);,while(m!=0);,2 把分号写成了逗号,for(i=0,i10,i+);,3 写错了&,scanf(“%d”,a);/应该是&a,少了&,gets(/应该是str,多了&,120,4 缺少函数体前后的花括号 ,5 printf,scanf 中把双引号”写成,单引号,6 语句后缺少分号,c=a+b,7 数据声明中把逗号写成分号:,把 int a,b,c;,写成:,int a;b;c;,121,人有了知识,就会具备各种分析能力,,明辨是非的能力。,所以我们要勤恳读书,广泛阅读,,古人说“书中自有黄金屋。,”通过阅读科技书籍,我们能丰富知识,,培养逻辑思维能力;,通过阅读文学作品,我们能提高文学鉴赏水平,,培养文学情趣;,通过阅读报刊,我们能增长见识,扩大自己的知识面。,有许多书籍还能培养我们的道德情操,,给我们巨大的精神力量,,鼓舞我们前进,。,
展开阅读全文

开通  VIP、SVIP  下载更划算
下载10份以上建议开通 VIP 会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        关注我们

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服