浅谈c语言和c++和VB的区别.docx
《浅谈c语言和c++和VB的区别.docx》由会员分享,可在线阅读,更多相关《浅谈c语言和c++和VB的区别.docx(8页珍藏版)》请在冰豆网上搜索。
浅谈c语言和c++和VB的区别
优点:
利用VB开发界面友好、操作方便的软件只需很短的时间。
缺点:
VB运行速度较慢
C语言是国际上非常流行的一种中级编程语言,以其灵活、高效等优点而获得广泛应用,许多的应用程序都是用C语言在DOS环境下编写而成。
其优点就是vb的缺点:
速度比vb快
缺点:
可视化不如vb
C语言与C++的区别有很多:
1,全新的程序程序思维,C语言是面向过程的,而C++是面向对象的。
2,C语言有标准的函数库,它们松散的,只是把功能相同的函数放在一个头文件中;而C++对于大多数的函数都是有集成的很紧密,特别是C语言中没有的C++中的API是对Window系统的大多数API有机的组合,是一个集体。
但你也可能单独调用API。
3,特别是C++中的图形处理,它和语言的图形有很大的区别。
C语言中的图形处理函数基本上是不能用在中C++中的。
C语言标准中不包括图形处理。
4,C和C++中都有结构的概念,但是在C语言中结构只有成员变量,而没成员方法,而在C++中结构中,它可以有自己的成员变量和成员函数。
但是在C语言中结构的成员是公共的,什么想访问它的都可以访问;而在VC++中它没有加限定符的为私有的。
4,C语言可以写很多方面的程序,但是C++可以写得更多更好,C++可以写基于DOSr程序,写DLL,写控件,写系统。
5,C语言对程序的文件的组织是松散的,几乎是全要程序处理;而c++对文件的组织是以工程,各文件分类明确。
6,C++中的IDE很智能,和VB一样,有的功能可能比VB还强。
7,C++对可以自动生成你想要的程序结构使你可以省了很多时间。
有很多可用的工具如加入MFC中的类的时候,加入变量的时候等等。
8,C++中的附加工具也有很多,可以进行系统的分析,可以查看API;可以查看控件。
9,调试功能强大,并且方法多样。
相关阅读》》C语言初学者编程规范—命名规则
1)骆驼命名法
混合使用大小写字母来构成变量和函数的名字。
例如,骆驼命名法printEmployeePaychecks(),下划线命名法print_employee_paychecks()。
骆驼命名法在许多新的函数库和MicrosoftWindows这样的环境中使用的多。
另一方面,下划线命名法是C出现后开始流行起来的,在许多旧的'程序和UNIX环境中,使用非常普遍。
2)匈牙利命名法
这种命名法是一位叫CharlesSimonyi的匈牙利程序员发明的,在微软工作,于是这种命名法就通过微软的各种产品和文档资料向世界传播开了。
大部分程序员不管自己使用什么软件进行开发,或多或少都使用了这种命名法。
这种命名法的出发点是把变量名按:
属性+类型+对象描述的顺序组合起来,使程序员看到变量时对变量的类型和其属性有直观的了解。
基本原则:
变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。
要基于容易记忆容易理解的原则,要保证名字的连贯性。
例如,表单的名称为form,那么在匈牙利命名法中可以简写为frm,则当表单变量名称为Switchboard时,变量全称应该为frmSwitchboard。
这样可以很容易从变量名看出Switchboard是一个表单。
同样,如果此变量类型为标签,那么就应命名成lblSwitchboard。
可以看出,匈牙利命名法非常便于记忆,而且使变量名非常清晰易懂,这样,增强了代码的可读性,方便各程序员之间相互交流代码。
3)帕斯卡命名法
帕斯卡命名法指当变量名和函式名称是由二个或二个以上单字连结在一起,而构成的唯一识别字时,用以增加变量和函式的可读性。
命名规则:
单字之间不以空格断开或连接号(-)、底线(_)连结,第一个单字首字母采用大写字母;后续单字的首字母亦用大写字母,例如:
FirstName、LastName。
每一个单字的首字母都采用大写字母的命名格式,被称为“Pascal命名法”,源自于Pascal语言的命名惯例,也有人称之为“大驼峰式命名法”(UpperCamelCase),为驼峰式大小写的子集。
C语言assert的用法有哪些
原型定义:
#include
voidassert(intexpression);
assert的作用是现计算表达式expression,如果其值为假(即为0),那么它先向stderr打印一条出错信息,
然后通过调用abort来终止程序运行。
请看下面的程序清单badptr.c:
复制代码代码如下:
#include
#include
#include
intmain(void)
{
FILE*fp;
fp=fopen("test.txt","w");//以可写的方式打开一个文件,如果不存在就创建一个同名文件
assert(fp);//所以这里不会出错
fclose(fp);
fp=fopen("noexitfile.txt","r");//以只读的方式打开一个文件,如果不存在就打开文件失败
assert(fp);//所以这里出错
fclose(fp);//程序永远都执行不到这里来
return0;
}
宏名:
assert
功能:
测试一个条件并可能使程序终止
用法:
voidassert(inttest);
程序例:
复制代码代码如下:
#include
#include
#include
structITEM{
intkey;
intvalue;
};
/*additemtolist,makesurelistisnotnull*/
voidadditem(structITEM*itemptr){
assert(itemptr!
=NULL);
/*additemtolist*/
}
intmain(void)
{
additem(NULL);
return0;
}
assert()宏用法
注意:
assert是宏,而不是函数。
在C的assert.h头文件中。
assert宏的'原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:
复制代码代码如下:
#include
voidassert(intexpression);
assert的作用是先计算表达式expression,如果其值为假(即为0),那么它先向标准错误流stderr打印一条出错信息,然后通过调用abort来终止程序运行;否则,assert()无任何作用。
宏assert()一般用于确认程序的正常操作,其中表达式构造无错时才为真值。
完成调试后,不必从源代码中删除assert()语句,因为宏NDEBUG有定义时,宏assert()的定义为空。
C语言输出菱形的方法
题目:
输出行列都相等的菱形,如5行5列:
行列12345
1*
2***
3*****
4***
5*
分析:
当行数等于总行数的一半时,*是递增的,递增为2。
当行数大于总行数的一半时,*是递减的,递增为2。
设有一个行列为n的菱形,
我们用变量i作为行数,以0开始,i
k作为n菱第i行要输出的*个数。
则i<=n的中值(用m表示,m=(n-1)i="">m时,k递减。
因为k相对于m行对称,所以:
当i>m时,i每增加i-m时的k值就和第m-i行的k值相等,即第i-m行和第m-(i-m)相对称。
所以得出结果:
当i<=m时,k=2i+1
当i>m时,k=2(m-(i-m))+1,(m=(n-1)/2)。
即k=2n-2i-1
由于我们只需要输出*左边的空格即可,所以每行*左边的空格的个数为:
(n-每行的k)/2。
每行循环输出空格,再循环输出每行的'*,再输出回车,结束一行。
这样我们就可以开始编程了。
#include
intmain()
{
inti,j,k,n;//定义四个变量:
i是行,j每行*号前的空格数,k每行的*号数
printf("pleaseinputoddn:
");
scanf("%d",&n);//输入奇数n
for(i=0;i
{
if(n>=2*i+1)//判断k值
k=2*i+1;
else
k=2*n-2*i-1;
for(j=(n-k)/2;j>0;j--)//循环输出空格
printf("");
for(;k>0;k--)//循环输出*号
printf("*");
printf("n");//输出回车结束一行
}
本来呢题目就到止结束了,但上面的程序还不够完美
比如说,别人输入n值为偶数怎么办?
输入非数值呢?
我们加一点东西进去:
#include
intmain()
{
inti,j,k,n=0;//这里给n赋初值,即使输入非数值,n也可有确切的值。
do{//增加一个大循环,可以令n可以输入多次以观察不同的结果。
printf("pleaseinputoddn,0toexit:
");//当输入0的时候,退出大循环,结束程序。
scanf("%d",&n);
if(!
(n%2))//增加对输入偶数的判断。
{
printf("youinputaeven,pleaseinputagain.n");
continue;
}
for(i=0;i
{
if(n>=2*i+1)
k=2*i+1;
else
k=2*n-2*i-1;
j=(n-k)/2;
for(;j>0;j--)
printf("");
for(;k>0;k--)
printf("*");
printf("n");
}
}while(n);
return0;
}
C语言程序设计有哪些
内容如下:
1.数字排列2.奖金分配问题3.已知条件求解整数4.输入日期判断第几天
5.输入整数进行排序6.用*号显示字母C的图案7.显示特殊图案8.打印九九口诀
9.输出国际象棋棋盘10.打印楼梯并按条件打印笑脸11.经典兔子问题12.判断素数
13.水仙花数问题14.正整数分解质因数15.学习成绩划分16.正整数求其最大公约数和最小公倍数
17.统计英文字母/空格/数字个数18.求s=a+aa+aaa+aa...a的值19.求解"完数"20.球体自由落下物理问题
21.猴子吃桃问题22.乒乓球比赛抽签问题23.打印菱形图案24.分数数列求和
25.求1+2!
+3!
+...+20!
的和26.利用递归方法求5!
27.将输入字符以相反顺序打印28.岁数问题
29.求解正整数位数30.判断回文数31.星期几猜测游戏32.改变文本颜色
33.学习gotoxy()与clrscr()函数34.练习函数调用35.设置文本颜色36.求100之内的素数
37.对10个数进行排序38.求3*3矩阵对角线元素之和39.数字插入数组重新