VB与C的对照总结

上传人:痛*** 文档编号:169813328 上传时间:2022-11-17 格式:DOC 页数:14 大小:115KB
返回 下载 相关 举报
VB与C的对照总结_第1页
第1页 / 共14页
VB与C的对照总结_第2页
第2页 / 共14页
VB与C的对照总结_第3页
第3页 / 共14页
点击查看更多>>
资源描述
作者小序:该如何介绍下面这篇文章呢?它既不是VB也不是C语言。而是一篇系统总结VB与C语言之间的区别与联系的文章!由于本人是在学习了VB的基础上再学习C语言的,所以经历了一段很痛苦的过渡时期。记得当初别人问我VB问题,我连最基本的数组a(10)到底是在a(9)结束还是在a(10)结束都搞不清了!VB和C语言完全混成了一锅粥。至于C中的字符、字符串、字符数组等概念更由于VB的知识根深蒂固而闹不清楚。记得有次上C语言程序设计的选修课上,任馨老师曾说“一般学了VB再学习C语言都要经历一段过渡时期”,我听了深有感触。正是由于VB与C语言有着很多区别和联系,所以我觉得很有必要系统总结一下这方面的知识。可是在网上,我用百度和Google搜索,几乎没有这方面的总结,突然一种前无古人的使命感油然而生_正好国庆长假有了时间,我列表总结如下。由于我总结下表主要是为了学习这门语言的主干,并准备等级考试,所以与很偏的与考试内容关系不大的知识,即大纲和等级考试都不涉及的我就没有看书总结。表中内容很多是相关书籍中的原话 (本人自知水平有限所以不敢杜撰),但有些是我对知识的总结,所以由于本人水平的限制和时间的仓促,里面肯定有错误之处,真诚希望大家向我提出宝贵意见,大家共同使这篇文章臻于完善!崔欢2005年10月1日至5日于西南石油学院火箭楼本文导航VB与C的对照总结作者小序一基本知识二常量与变量三条件选择语句四循环控制五数组六过程 (函数)七指针八文件九参考文献十联系作者正文:一基本知识表格左边是VB内容,右边是C语言的内容,下同。基本认识VB是面向对象的,基于windows操作平台下的可视化编程语言。用户可以用鼠标编写代码。C语言是面向过程的程序语言。Turbo C是基于DOS平台的C编译系统。用户无法使用鼠标块操作。Ctrl+KB块头标记;Ctrl+KK块尾标记;Ctrl+KC块复制;Ctrl+KH取消;Ctrl+KV块移动快捷键打开工程Ctrl+O 新建工程Ctrl+N保存Form1:Ctrl+S 退出:Alt+Q运行:F5装载文件(Load ):F3 Alt+F5: 查看结果保存(Save): F2 激活主菜单:F10退出TC返回DOS(Quit): Alt+XCtrl+F9:编译+连接+运行Esc: 返回上一级菜单运算符 算术运算符(幂 -取负 *乘法 /浮点除法 整数除法 Mod取模 +加法 -减法) 字符串连接运算符(&、+) 关系运算符(=相等 或不等 大于 =大于或等于)逻辑运算符(Not And Or Xor Eqv Imp)语言的运算符可分为以下几类:算术运算符:用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(+)、自减(-)共七种。关系运算符:用于比较运算。包括大于()、小于(=)、小于等于(=)和不等于(!=)六种。逻辑运算符:用于逻辑运算。包括与(&)、或(|)、非(!)三种。位操作运算符:参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非()、位异或()、左移()六种。C共有34种运算符。运算符丰富是C语言的一个很重要的特点。C把括号、赋值、强制类型转换等都作为运算符处理,从而使C的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其他高级语言中难以实现的运算。赋值运算符:用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,=,=,或表不等关系,C语言中用符号“!=”。VB中逻辑运算符Not、And、Or对应C语言中的!、&、|。VB中And和Or可用于对数值(须转化为二进制数)进行位运算,分别为“逻辑与”和“逻辑或”。C语言中有专门的位运算符( | &)。变量的赋值VB中不允许连等。每次只能给一个变量赋值。C语言中存在“赋值表达式”。格式为:。如“a=5“是个赋值表达式。对赋值表达式求解的过程是:将赋值运算符右侧的“表达式”的值赋给左侧的变量。赋值表达式的值就是被赋值的变量的值。实例:a=b=c=5(赋值表达式的值为5,a、b、c值均为5) a=(b=10)/(c=2)(表达式值为5,a等于5,b等于10,c等于2)。数据类型字符串型(String)是VB基本数据类型之一。字符串是放在双引号内的若干个字符,其中长度为0(即不含任何字符)的字符串称为空字符串。实例:“Hello! Good Morning!”“123”“”(空字符串)字符型(char)是C语言基本数据类型之一。C的“字符常量”是用单撇号括起来的一个字符。字符型变量是用来存放字符常量的。注意:字符变量只能存放一个字符,不能存放字符串。另外,C语言还允许使用“字符串常量”。字符串常量是一对双撇号括起来的字符串。不能把一个字符串赋给一个字符变量。C规定:在每一个字符串的结尾加一个“字符串结束标志0“,以便系统据此判断字符串是否结束。字符串长度不包括那个结束标志。C语言中没有专门的字符串变量(不同于VB),若想将一个字符串存放在变量中,必须使用字符型数组。字符型数组元素可以整体访问。非字符型数组元素不可以整体访问。自定义数据类型的定义格式:Type 自定义数据类型名成员名1 As 类型名成员名2 As 类型名成员名n As 类型名End Type实例:Type Studentnum As String*6name As String*8sex As String*1age As IntegerEnd Type格式:先定义结构,再说明结构变量。struct 结构体名类型名 成员名1;类型名 成员名2;类型名 成员名n;在定义结构类型的同时说明结构变量。struct 结构名成员表列变量名表列;直接说明结构变量。struct成员表列变量名表列;易混淆语句用DefType语句定义变量类型:格式:DefType 字母范围注意:Def和类型标志之间不要有空格。字母范围用“字母字母”的形式表示。实例:DefDbl A-B, X-Z把以字母A、B、X、Y、Z开头的所有变量名定义为双精度类型。用typedef声明新的类型名来代替已有的类型名。实例:typedef int INTEGER; typedef float REAL;则:以下两行等价:a) int i, j; float a, b;b) INTER|GER i, j; REAL a, b;用typedef亦可声明结构体类型。注释语句注释部分对程序的运行不起作用。VB中的注释是“Rem”或一个撇号“”。注释部分必须用“/*”和“*/”括起来。“/*”和“*/”必须成对地出现,“/”和“*”之间不可有空格。可多行注释。程序语句的书写格式在一般情况下,程序语句要按照“一行一句,一句一行”的规则书写。但VB允许使用复合语句行,即把几个语句放在一行中,各语句之间用冒号(:)隔开。在输入程序时,也可以通过续行符把程序分别放在几行中。VB中续行符是下划线(_)。注意:续行符与它前面的字符之间至少要有一个空格。C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。C程序没有行号。标点一般在一行输入一条语句,每条语句行以回车键结束。Print方法:格式: 对象名.Print表达式表,|;使用逗号:标准输出格式,又称分区输出版式,以14个字符宽度划为一个区段,每个数据项位置占一个区段。使用分号:以紧凑输出格式输出,每个数值数据前面有一个符号位,后面有一个空格。每个语句和数据定义的最后必须有一个分号。分号是C语句的必要组成部分。分号不可少。即使是程序中最后一个语句也应包含分号。关于标点的几个注意事项注意:参数缺省时逗号不可丢。MsgBox ( “除数为0”, , “运算提示”)提示信息 图标按钮类型值缺省 标题注意:不要在不该加分号的地方加分号。在if、for、while语句中,不要画蛇添足多加分号。错误:if (ab); for (; ; );while (i=60 ,“合格”,“不合格”) 等价条件运算符,是C语言中唯一的一个三目运算符。条件表达式的一般形式为:表达式1 ?表达式2 :表达式3实例:max=(ab)?a:b;Printf(“%sn”,G=60?“pass”,“not pass”);多分支选择语句格式:Slect Case测试表达式 Case 条件1 语句块1 Case 条件2 语句块2 Case Else 语句块n End Select条件的表示形式有三种:1)简单常量(各常量之间用逗号分隔);2)测试范围。用“值1 To 值2”的形式;3)比较范围:用“Is关系表达式”的形式。实例:Case 2,5,10 To 20, Is50(三种形式可混用)注意:当用关键字Is定义条件时,只能是简单条件,不能是逻辑运算符将两个或多个简单条件组合在一起。例如Case Is10 And Is y , x , y)End Function实例:printstar ( ) main ( ) int max (int x, int y) float add (float x, float y)int max (int x, int y)int z;z = x y ? x : y ;return(z); 调用格式Sub过程的调用格式: Call 过程名(实参表) 过程名 实际参数Function过程的调用格式:函数过程名(实参表)实例:Call test (n,10) Test n,10Comb = fact(n)/(fact(m)*fact(n-m)调用Sub过程相当于执行一个语句,不直接返回值;而调用Function过程要返回一个值,因此可以像内部函数一样在表达式中使用。由Function过程返回的值赋给了“过程名”。函数调用的一般形式为:函数名(实参表列);按函数在程序中出现的位置来分,可以有以下三种函数调用方式: 函数语句。把函数调用作为一个语句,这时不要求函数带回值,只要求函数完成一定的操作(类似于VB中的Sub过程调用); 函数表达式。这时要求函数带回一个确定的值以参加表达式的运算。(类似VB中Function过程的调用); 函数参数。函数调用作为一个函数的实参。函数调用作为函数的参数,实质上也是函数表达式形式调用的一种,因为函数的参数本来就要求是表达式形式。实例:printstar (); c=2*max (a, b); m=max (a, max (b, c);printf (“%d”, max (a, b);实参和行参之间的传送在VB中参数传送有两种方式:“传值”和“传地址”。传值:单向传送。行参的改变不影响实参的值。(类似于C语言实参和行参的传送。)传地址:行参与实参共用一个地址,共享一个存储单元。行参的改变会导致实参的值也跟着变化。(类似C语言指针的概念)举例:Private Sub Command1_Click()Dim a As Integer, b As Integera = Val(InputBox(请输入字母a值)b = Val(InputBox(请输入字母b值)If a b Then Call swap(a, b)Print max=; a, min=; bEnd Sub 注意区别 Sub swap(x As Integer, y As Integer)temp = xx = yy = tempEnd Sub输入:4 9 结果:max=9, min=4C语言中实参和行参之间的传递是单向的“值传递”方式。若想通过调用函数用行参来改变实参的值,必须通过用指针作为参数来实现。举例:swap(int x,int y)int temp;temp = x;x = y;y = temp;main()int a,b;scanf(%d%d,&a,&b);if (ab)swap(a,b);printf(max=%d,min=%d,a,b);getch();输入:4 9 结果:max=4 , min=9返回值研究函数过程(Function过程)有且只有一个返回值。子程序过程(Sub过程)不直接返回值。但可以通过在Sub语句的参数表中增加形参的方式来带回返回值。由于一个Function过程只能有一个过程名,也因此只能带回一个返回值。而Sub过程通过增添参数的方式可以带回任意多个返回值。因此可以说,凡是能够用Function过程实现的程序,都可以用Sub过程来实现。由于返回值个数的限制导致Function过程不能实现的可以通过Sub过程来实现。因此Sub过程的使用范围比Function过程更广泛。(其实这两种过程都可以利用全局变量带回多个返回值。)函数的调用可以(而且是只可以)得到一个返回值(即函数值)。有时可以利用全局变量增加与函数联系的渠道,从函数中得到一个以上的返回值。可以运用指针变量做参数,得到多个变化了的值。详见谭浩强编著.C程序设计(第二版)第210页例10.4。七指针关于指针VB中没有指针变量。但VB中许多内容都无形中涉及了指针的概念。比如: 数组的赋值“b=a”语句。详见我校VB课本黎明,刘成安编著.Visual Basic程序设计教程.第100页6.4.4VB中行参与实参按地址传送时。EOF函数,指针是否指向文件末尾。(此处是我自己总结的,不知道恰不恰当,欢迎指正!)指针是C语言中一个很重要的概念。C中有专门的指针类型变量。正确而灵活地使用指针能够有效地表达复杂的数据结构;能动态分配内存;能方便地使用字符串;有效而方便到使用数组;在调用函数时得到多于一个的值;能直接处理内存地址等。可以说,不掌握指针就是没有掌握C的精华。 具体学习详见谭浩强编著.C程序设计(第二版)的10章。利用指针来访问内存是VB语言所办不到的。八文件文件的组成单元VB文件由记录组成。记录由字段组成,字段由字符组成。在VB中,以记录为单位处理数据。C语言中文件并不是由记录(record)组成的(这是和PASCAL或其他高级语言不同的)。一个C文件是一个字节流或二进制流。在C语言中对文件的存取是以字符(字节)为单位的。我们把这种文件称为流式文件。C语言允许对文件存取一个字符,这就增加了处理的灵活性。文件扩展名VB在工程资源管理器窗口中,含有一个应用程序所需要的文件的清单。工程资源管理器窗口中的文件可以分为6类,即窗体文件(.frm)、程序模块文件(.bas)、类模块文件(.cls)、工程文件(.vbp)、工程组文件(.vbg)和资源文件(.res)。源程序文件(.C)经过编译得到目标程序文件(.obj),再将目标程序文件输入内存,与系统提供的库函数等连接,得到可执行的目标程序文件(.exe),最后把目标程序文件(.exe)调入内存并使之运行。文件的打开和关闭文件的打开或创建:格式:Open “文件整个路径和文件名” For 方式Access存取类型锁定 As #文件号Len=记录长度方式:顺序文件:Append Output Input 随机文件:Random 二进制文件:Binary文件的关闭:格式:Close #文件号,#文件号实例:Open “c:abcabcfile.dat” For Input As #1 Close #1文件的打开:FILE *fp;fp= fopen (“文件名”,“使用文件方式”);文件的关闭:fclose(文件指针);实例:FILE*fp; fp = fopen (“a1”,”r”); fclose (fp);检测是否到文件末尾的函数EOF函数。格式:EOF(文件号)EOF函数返回被打开文件是否到了文件末尾,返回值为True,表示到达文件末尾;否则返回值为False。实例:顺序读出数据并显示在窗体上。While Not EOF(1) Input #1, temp Wend Do While Not EOF(1)OneChar=Input(1,#1)Print OneChar;Loopfeof函数。 格式:feof(文件指针)用来测试文件指针所指向的文件当前状态是否“文件结束”。如果文件结束,函数的值为“真”(非0),否则为假(0)。实例:将一个磁盘文件中信息复制到另一个磁盘文件中。while ( ! feof ( fp1 ) fputc (fgetc ( fp1 ) , fp2) ; 文件的读写顺序文件的读操作:Input #语句:Input #文件号,变量列表Input$函数:Input$(n , #文件号)Line Input# 语句:Line Input #文件号,字符串变量随机文件的读操作:Get #文件号,记录号,变量名二进制文件的读操作:Get #文件号,位置,变量名顺序文件的写操作: Print #语句: Print #文件号,Spc(n)|Tab(n)表达式表,|; Write语句:Write #文件号,表达式表随机文件的写操作:Put #文件号,记录号,变量名二进制文件的写操作:Put #文件号,位置,变量名C语言中关于文件读写的主要函数:fputc函数 putc (ch , fp);fgetc函数 ch=fgetc (fp);fread函数fread (buffer , size , count , fp) ;fwrite函数fwrite (buffer , size , count , fp);fprintf函数 fprintf (fp , 格式字符串,输出表列);fscanf函数 fscanf (fp,格式字符串,输入表列);fgets函数 fgets (字符数组,n,fp);fputs函数 fputs (字符数组,fp);参考文献:1谭浩强编著.C程序设计(第二版).北京:清华大学出版社,19992教育部考试中心编著.全国计算机等级考试二级教程-C语言程序设计.北京:高等教育出版社,19983教育部考试中心编著.全国计算机等级考试二级教程-Visual Basic程序设计(修订版).北京:高等教育出版社,20024黎明,刘成安编著.Visual Basic程序设计教程.成都:电子科技大学出版社,2004作者:崔欢联系方式:西南石油学院 资源与环境学院 资源勘查工程专业 2004级一班宿舍(7-109)电话: 0817-(一般晚上10:30以后在宿舍)Email: nchappy2005 个人网络博客: QQ:
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!