编写C程序时应该注意的:
编写程序必须:
一。包含并且仅仅包含一个main()
二。程序体应该在{ 和}之间书写
三。变量必须"先定义后使用"
如必须有int i,j;
才能有i=10;j=j+1; printf("%5d",j); 这样的语句。
不能写成inti,j; int及其他类型关键字和后面的变量之间要有空格。
四。语句结尾必须有; 但函数首部不能加分号;如void main() ;错误
五。注意关键字的书写准确
如printf 不要写成print
六。学会看编译时的错误提示如statement missing ; 表示该高亮提示行没有结尾;
变量定义时注意其类型,需要看该变量的应用之处,确定该变量应该是整型、实型或者字符型
如:如果要执行i=j%k; 这样运算则i,j,k 都应该是整型。
若要计算原面积s=pi*r*r; 则s,pi,r 都应该是实型。
scanf("%f,%d,%c",&i,&j,&k); 描述向计算机输入三个值按顺序分别给变量
i,j,k。
其中i,j,k的类型对应分别是实型,整型,字符型。即该scanf语句之前应该有定义: float i;
int j;
char k;
运行时在黑屏输入界面下输入:
10.53,88,t 其中:
10.53是实型数据对应%f的格式控制字符要求,将其赋给输入列表的第一个变量i,(注意变量名是i,但用在scanf中必须写成&i).
88是整型数据对应%d的格式控制字符要求,将其赋给输入列表的第二个变量j 't'是字符型数据(运行输入时不要带' ')对应%c的格式控制字符要求,将其赋给输入列表的第三个变量k
注意输入时用“,”分隔因为在上面%f,%d,%c 中间是指定用‘,’分隔的。
如果写成scanf("%f:%d:%c",&i,&j,&k); 则运行时输入10.53:88:t
如果写成scanf("%f%d%c",&i,&j,&k); 则运行时输入10.53 88 t 中间用空格分隔。printf("%7.3f",k);的含义是:
输出实型变量k的值,并且k的值实际占用7个字符位置,小数位数为三位。
如果k的实际值占不满7个字符宽,则输出时数据前面(左边)系统自动补上相应空格,使其占够7位
如果k的实际值多于7个字符宽,则系统自动扩展宽度,显示全部真实值。
若改为%-7.3f含义是:
如果k的实际值占不满7个字符宽,则输出时数据后面(右边)系统自动补上相应空格,使其占够7位
如printf("%7.3f,%-7.2f;;;%12.3f,%-12.2f",122.8899,122.8899,122.8899,122.8899);
则输出为:
122.890,122.89_;;;_____122.890,122.89______
_表示空格_____5个空格______6个空格
变量定义时应该注意,
<1>.turbo c中定义语句应该放到程序开始的地方,在所有执行语句之前如
int a=0,b=1,c=3;
float k;
k=a+b-c;
是正确的,而
int a=0,b=1,c=3;
a=b-c;
float k;
k=1;
则是不正确的。
*** 但在vc中两者都是正确的
<2>.定义变量时候注意类型声明的关键字必须和变量之间存在空格。
int k,l,j;是正确的,而intk,l,j;是错误的。
<3>.变量定义时,还要注意变量的范围。如果想把10!赋值给变量s,不能把s定义为int,
因为10!的结果超过了int的最大值32767。(c++下int范围已经增大为4字节了)
特殊地方(1)。c语言中乘法运算符*不能省略,即5/9(f-32)应当写
成:5/9*(f-32)
(2)。注意5/9的结果是0而不是0.555556应该写成5.0/9 5/9.0
5.0/9.0都对;同种数据类型数据之间运算结果仍为该
类型,保持不变。
(3)。混合运算时,必须先考虑运算符之间的优先级,优先级高的先运行;
如果优先级一样的情况下,按各运算符的结合性进行。
(4)。i++,i的值先拿出来用,然后再自增。
i=1; j=i++; ------j的值为1;
++i,i的值先自增然后再拿出来用。
i=1; j=++i; ------j的值为2;
有关文件的问题:
(1)。c语言的源文件名应该是不多于8个字符组成,并注意以.c
(vc中为.cpp)结尾。
(2)。文件名中应该只有一个"."不能有12.3.c 这样的名字。
(3)。文件名中不应出现汉字字符以及其他特殊字符,如rrr(1).c
就会引起问题。
(4)。定义一个文件比如第一章第三题可以采用类似如下的命名方式:1-3.c。
(5)。程序运行时,出现黑屏,可能是在等待用户输入,因为使用了scanf语句。
也可能是死循环,此时同时按下ctrl和break键,强行中断。
(6)。编辑好文件后先保存再调试运行!
(7)。每次编好的程序都应该给一个新的文件名,而不能仅仅沿
用以前的名字,否则将会把以前编写好的文件覆盖掉。printf("格式控制" ,输出表列);
printf("%d,%8.4f \n %-10.2s--\t--r=%6d", 10 , 888.888 , "suabngu" , k );
(k是整型变量并且前面已经赋值)。
<1>"格式控制"中普通字符原样照印,如前面的, 空格- r= 。
<2>"格式控制"中转义字符按照表示含义输出,如前面的\n \t 。
<3>"格式控制"中控制字符和后面输出表列中数据对象一
一对应即从个数、类型、顺序上一致。
如上面%d 对应10
%8.4f 对应888.888
%-10.2s 对应"suabngu" 表示输出该字符串到屏幕,但仅输出该字
符串的前两个字符即su,并且其右补8个空格。
%6d 对应k
scanf("格式控制",地址表列);
scanf("a=%d, f=%10f, k=%c : " ,&i,&j,&k);
i,j,k分别是整型,实型,字符型变量注意变量前面的&
<1>"格式控制"中普通字符程序运行黑屏时原样照输
如前面的语句运行时,黑屏状态下应该输入a=10, f= (此处可以有0个或者多个空格)90.89, k=$ :回车符。
<2>"格式控制"中转义字符按照表示含义输入。
<3>"格式控制"中控制字符和后面地址表列中地址对象一一对应即从个数、类型、顺序上一致。
%d对应&i %10f对应&j %c对应&k
注意都是给变量赋值,即相应屏幕输入值给了变量i,j,k。但形式上必须要前加&,原因以后再说。
<4>地址表列中不能出现常量,比如123,'*',12.333都是不对的。
16,关于赋值语句的说明:
<1>.赋值语句形式为变量名=表达式;
注意:赋值号(=)左边只能为变量名,-----常量、表达式不允许出现在赋值号左边。
赋值号(=)右边的表达式可以是常量、变量、表达式的形式。
<2>复合的赋值语句
本文档为【编写C程序时应该注意的问题(基础知识部分)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。