c语言格式
A. 求c语言编写的一般格式
1,C语言程序的结构特点
一个C语言程序通常由一个预处理语句开始,如#include〉stdio.h〉,它表示,在编译语言程序前,用指明的文件取代改预处理语句,通常文件名是带有后缀为.h的磁盘文件.编译时,它将从磁盘中读出并插入到原来的预处理程序语句中.即预处理语句被指明的包含文件(头文件)代替.
头文件通常是在程序中被调用函数的说明语句和该函数用到的一些符号常量的宏定义.如在程序中经常调用一些标准库函数时,系统提供了相应的头文件,他们其中的一些内容是对该函数的说明及该函数用到的符号常量的宏定义等,如对fgets()的说明放在头文件stdio.h中,再盖头文件包含了对fgets()函数的说明:
char *fgets(char *s,int n,FILE *stream)
对符号常量的定义:
#define NULL 0
当然还包含了一些其他的标准I/O函数的说明和宏定义等.用户也可以建立自己的头文件,在程序开头用include进行包含就行了:
#include"文件名"
注意此时用" "符号来包括,它与 #include〉文件名〉的区别是查找的路径不同.前者表示现在当前目录中查找该文件,如果找不到,再到系统指定的目录中查找.而后者只在系统的制定目录中查找(一般是include\目录),若找不到,便报错.所以用#include"文件名"的形式常用于用户自己写的包含文件,他们通常放在和用户程序同一个目录下.当然在这种形式中,文件名也可用文件路径代替,这时,编译器就去用户指定的目录去查找包含文件.文件包含也可以用在程序行中,如:
main()
{
...
#include "myc.c"
...
}
其中myc.c时用户的c文件,编译时,它将从磁盘中取出,插入到该位置处.
一些在程序中常用到的常量也用编译预处理命令#define来定义,如在真假判断时,常用符号常量TURE和FALSE表示真和假,这时可以用一下定义:
#define TURE 1
#define FALSE 0
将以上代码写在程序的开头,编译时在程序中出现TURE的地方都用1代替,出现FALSE的地方用0代替.
一个完整的C程序,总是由main()函数开始,它像一个大型乐曲的引子,由此引出许多乐章(执行不同的功能的函数);main()函数又像一个大型建筑的框架,它显示了要完成这个建筑的轮廓,这些轮廓就是由一个个函数调用勾画出来的.因此可以说一个C程序是由一个个的模块堆砌起来的,这些模块的最小元素是函数.当然,模块也可以是一个源程序,它又有许多的函数组成.所以c程序的设计是一种模块化的设计,是许多的函数的堆砌.因此在应用程序的设计中,应将一个个的功能用一个个的函数来实现.下面就谈谈函数的使用.
turbo C的函数的使用
Turbo C2.0提供了400多个标准的库函数,每个函数都完成一定的功能.当程序执行这些功能时,只要调用这些函数即可,用户不必再自己写这些函数了.这些库函数包括输入输出函数,数学函数,字符串处理函数,内存函数,与BIOS和Dos有关的接口函数,屏幕函数和图形函数,过程控制函数和目录函数等.这些函数在我的主页上都能查到,欢迎来查询.
当标准库函数中没有用户要用的函数时,就必须自己设计了,设计函数的原则是:
1,函数不应处理太多的功能,要保持函数的小型化,功能单一化.
2,一个函数要保持自己的独立性,如同一个黑匣子一样,有进有出.
3,在函数中多使用复合语句,使函数也具有结构化,并且可以提高执行效率和节省存储空间.
4,在主函数前,要罗列出所有使用自定义函数的原型说明,这有利于在大型程序设计中追踪要调用的函数设置是 否正确.
5,在程序适当的地方加入注释(用/*...*/包含的语句)这便于程序的阅读和调试.
6,采用层次的书写程序格式,按程序的不同功能分层次.
这样一个函数编译后,其内部定义的程序代码与数据与另一个函数的程序代码和数据不会相互影响,因此在函数中要使用局部变量,即它的生存期指维持在调用该函数并执行时,也就是说函数被激活时.要尽量少用或不用全局变量,它将破坏函数的独立性.函数的这种设计方法类似于面向对象设计方法中的封装性.
C大型软件程序的设计步骤
C语言作为结构化的程序设计语言,易采用自顶向下的设计方法,即开始咱不涉及问题的实质和具体的解决步骤,而只是从问题的全局出发,给出一个概括性的抽象描述.例如编写一个信号处理程序,它要求对信号数据经过数字处理后进行图形显示并存盘.因而程序大轮廓应该是:
1,信号数据的输入
2,信号预处理
3,信号进行数字处理
4,进行显示
5,进行存盘
接着对各项功能进行细分,例如对于信号的输入,又可分为:
1.通过com1或com2由RS-232接口进行输入
2.由磁盘数据文件输入
对信号预处理又可分为:
1.对信号进行反序排列
2.用窗函数预处理
对数字处理又可分为:
1.求快速傅立叶变换
2.求功率谱
对用窗函数处理又可分为:
1.海明窗处理函数
2.汉宁窗处理
3.布拉格曼窗处理
其他功能依此类推.
在此细化的基础上再进行细化,以至于成为一个个单独的功能,便于用一个个函数来实现.
下面就是设计一个个函数的实质性阶段.要定义变量,要选区标准函数,要确定算法,这是构造程序的基本单元.当一个个函数都设计完了以后,便可将这些函数在主函数中堆砌起来,并用主函数做总控程序,完成对他们的参数传递,控制选择对这些函数的调用,形成一个完整的实用的信号处理程序.
大程序的设计风格
当一个程序较大时,可将一个程序分成几个部分,每一个部分可单独编成一个源文件,这些源文件可进行单独编译成.obj文件,然后将这些文件组合成一个较大的程序.通常可采用如下方法:
1.include方法
例如,一个程序分成两个源文件,既由a1.c和a2.c两个源程序组成,这时候可将a1.c写成:
#include〉stdio.h〉
#include"a2.c"
main()
{
...
strcpy(s1,s2);
a2();
...
}
而a2.c可写成:
#include〉string.h〉
void a2()
{
....
}
然后在制作一个project文件,内容为:a1.c a2.c
设这个工程文件名为:a1.prj,其中文件中各文件名的后缀可省略,先后顺序也无关,它只影响编译时的顺序.者可在Turbo c的编辑状态下写成,并存盘为a2.prj文件.然后用Alt+p选择Project菜单中的Project_name项,填写生成的a1.prj文件名.然后按F9,即可生成a1.exe可执行文件.
当用汇编语言与C语言混合编程时,则要将汇编语言子程序单独编译生成.obj文件,然后制作工程文件,再进行对C程序的编译和连接.关于这方面的介绍可参考Turbo c2.0的命令行编译.
若程序还需要一些其他的被编译的程序或库文件,这些文件时C语言的标准库不能提供的,则也可将它们的名字放在Project文件中.如:
mymain
myfunc
secial.obj
other.lib
当用F9进行编译连接时,对后缀为.obj的文件只进行连接,对后缀为.lib的库文件不会进行编译,只是进行连接,这样当进行外部调用时,就只会对库进行检索.
当多个源文件制作成project 文件时,一个.c的源文件依赖于其他的.c源文件,若它们之间用一个头文件来进行接口,这时应用括号将这些头文件扩起来(头文件之间可用逗号,空格或分号间隔),这样一旦头文件改变时,它们将被重新编译,例如:有一个主程序名为mymian.c,它包含头文件为:myfuncs.h,而另一个文件是myfuncs.c
这样当project文件的内容写成如下形势时:
mymain.c(myfuncs.h)
myfuncs.c(myfuncs.h)
若一旦myfuncs.h被修改,则对该project文件进行编译时,mymain.c及myfuncs.h将被重新编译
B. 请问用C语言编写程序的格式是什么
如:
1.#include
“
引入头文件(主要引入函数库,如stdio.h;数学函数”)
2. int main(void ) {
“
主函数必须是小写的(程序唯一入口,前面的int、void等都可省略,但“括号”不能。大括号内包含的内容为程序主体”
Int num = 10
3.printf(“会好的”);
Printf(“我今年%d岁了\n”,num);
“\n:表示换行;%d表示在这里带入定义的函数num =
10,所以后面必须跟‘num’这个标识符”
}
首先,在程序中注意一些小问题。
1.程序要在英文输入法的界面输入,不然程序会报警。
2.程序的格式要有一定的层次关系。
3.在定义函数(标识符)时注意不要选择了关键字。最好在“=”两边都空一格。
4.在定义函数时注意数据类型的取值范围。如:
整型
[signed]int
-2147483648~+2147483648
无符号整型
unsigned[int]
0~4294967295
短整型 short
[int] -32768~32768
无符号短整型
unsigned
short[int]
0~65535
长整型 Long
int
-2147483648~+2147483648
无符号长整型 unsigned
[int]
0~4294967295
字符型[signed]
char
-128~+127
无符号字符型 unsigned
char
0~255
单精度
float
3.4 x 10^(-38)~ 3.4 x
10^(+38)
双精度
double
1.7 x 10^(-308)~ 1.7 x
10^(+308)
长双精度 long
double 1.7
x 10^(-308)~ 1.7 x
10(+308)
C. C语言的输出格式
截图是在C-Free5.0环境下的运行结果。因为b是float类型,在%.2f格式下输出的是0.50,而a是int类型,小数部分被截除,整数部分为零,所以输出为0。要说明的是,对于赋值运算符=,先进行运算符“=“右边部分的运算,然后将表达式的运算结果赋给“=”左边的变量。
D. 用C语言编程中,一般的格式是怎样的
C语言源程序的编程格式归纳如下: 1,强制性规则 1,一个C语言源程序必须有且只有一个MAIN函数. 2,函数名后必须紧跟圆括号对,函数体放在右圆括号")"后的花括号对"{}"中. 3,每个程序体(包括函数的函数体,含有多条语句的选择结构和循环结构中的语句序列)必须用一对花括号括起来. 4,文件包含预处理命令,#INCLUDE<*.H>应置于源程序的开始位置. 5,语句未尾必须有分号,而预处理命令和函数首部的未尾及右花括号之后不要分号. 6,同一字母大,小写意义不同,关键字和标准库函数名必须用小写. 7,变量必须先定义,后使用 8,除已有明显间隔符外,标识符,关键字之间必须有至少一个空格 9,注解必须包含在"/* */符号之间 我想你想要知道的是C语言的四种程序结构吧 如下:1,分支语句格式 ①if(条件) {分支体} 这种分支结构中的分支体可以是一条语句,此时“{}”可以省略,也可以是多条语句即复合语句。它有两条分支路径可选,一是当条件为真,执行分支体,否则跳过分支体,这时分支体就不会执行。如:要计算x的绝对值,根据绝对值定义,我们知道,当x>=0时,其绝对值不变,而x<0时其绝对值是为x的反号,因此程序段为:if(x<0)x=-x; ②if(条件) {分支1} else {分支2} ③IF嵌套分支语句:其语句格式为: if(条件1) {分支1} else if(条件2) {分支2} else if(条件3) {分支3} …… else if(条件n) {分支n} else {分支n+1} FOR嵌套,其语句格式为: for(初值A;范围A;步长A) { for(初值B;范围B;步长B) { 循环体 } } FOR嵌套例子:九九乘法表 main()这里是主程序的编程格式,你参考下 { int a,b,c; for(a=1;a<=9;a++) { for(b=1;b<=a;b++) { c=b*a; printf("%dx%d=%d ",b,a,c); } printf("\n"); } }
E. c语言输出格式%*s
c语言输出格式%*s,标识形参占位。
*在printf中使用,表示用后面的形参替代的位置,实现动态格式输出。例如:printf("%*s",10,s);意思是输出字符串s,但至少占10个位置,不足的在字符串s左边补空格,这里等同于printf("%10s",s)。
(5)c语言格式扩展阅读:
C语言输出格式大全:
格式占位符(%)可以以下字母配合使用用来表示某些特定的输入输出。
%a,%A 读入一个浮点值(仅C99有效)
%c 读入一个字符
%d 读入十进制整数
%i 读入十进制,八进制,十六进制整数
%o 读入八进制整数
%x,%X 读入十六进制整数
%s 读入一个字符串,遇空格、制表符或换行符结束。
%f,%F,%e,%E,%g,%G 用来输入实数,可以用小数形式或指数形式输入。
%p 读入一个指针
%u 读入一个无符号十进制整数
%n 至此已读入值的等价字符数
%[] 扫描字符集合
%% 读%符号
F. C语言格式
int main()
{
char c;
printf("请输入一个字符:");
c = getchar();
switch(c)
{
case '1':
printf("yes");break;
case '2':
//略
break;
default: print("");
}
return 0;
}
G. c语言的格式
你按Ctrl+F9就运行了,然后按Alt+F5结果显示在屏幕上
H. C语言所有语句格式
循环结构是程序中一种很重要的结构。其特点是, 在给定条件成立时,反复执行某程序段,直到条件不成立为止。 给定的条件称为循环条件,反复执行的程序段称为循环体。 C语言提供了多种循环语句,可以组成各种不同形式的循环结构。
while语句
while语句的一般形式为: while(表达式)语句; 其中表达式是循环条件,语句为循环体。
while语句的语义是:计算表达式的值,当值为真(非0)时, 执行循环体语句。其执行过程可用图3—4表示。 统计从键盘输入一行字符的个数。
#include <stdio.h>
void main(){
int n=0;
printf("input a string:\n");
while(getchar()!='\n') n++;
printf("%d",n);
}
本例程序中的循环条件为getchar()!='\n',其意义是, 只要从键盘输入的字符不是回车就继续循环。循环体n++完成对输入字符个数计数。从而程序实现了对输入一行字符的字符个数计数。
使用while语句应注意以下几点:
1.while语句中的表达式一般是关系表达或逻辑表达式,只要表达式的值为真(非0)即可继续循环。
void main(){
int a=0,n;
printf("\n input n: ");
scanf("%d",&n);
while (n--)
printf("%d ",a++*2);
}
本例程序将执行n次循环,每执行一次,n值减1。循环体输出表达式a++*2的值。该表达式等效于(a*2;a++)
2.循环体如包括有一个以上的语句,则必须用{}括起来, 组成复合语句。
3.应注意循环条件的选择以避免死循环。
void main(){
int a,n=0;
while(a=5)
printf("%d ",n++);
}
本例中while语句的循环条件为赋值表达式a=5, 因此该表达式的值永远为真,而循环体中又没有其它中止循环的手段, 因此该循环将无休止地进行下去,形成死循环。4.允许while语句的循环体又是while语句,从而形成双重循环。
do-while语句
do-while语句的一般形式为:
do
语句;
while(表达式);
其中语句是循环体,表达式是循环条件。
do-while语句的语义是:
先执行循环体语句一次, 再判别表达式的值,若为真(非0)则继续循环,否则终止循环。
do-while语句和while语句的区别在于do-while是先执行后判断,因此do-while至少要执行一次循环体。而while是先判断后执行,如果条件不满足,则一次循环体语句也不执行。
while语句和do-while语句一般都可以相互改写。
void main(){
int a=0,n;
printf("\n input n: ");
scanf("%d",&n);
do printf("%d ",a++*2);
while (--n);
}
在本例中,循环条件改为--n,否则将多执行一次循环。这是由于先执行后判断而造成的。
对于do-while语句还应注意以下几点:
1.在if语句,while语句中, 表达式后面都不能加分号, 而在 do-while语句的表达式后面则必须加分号。
2.do-while语句也可以组成多重循环,而且也可以和while语句相互嵌套。
3.在do和while之间的循环体由多个语句组成时,也必须用{}括起来组成一个复合语句。
4.do-while和while语句相互替换时,要注意修改循环控制条件。
I. C语言的所有格式符。
%a,%A 读入一个浮点值(仅C99有效)
%c 读入一个字符
%d 读入十进制整数
%i 读入十进制,八进制,十六进制整数
%o 读入八进制整数
%x,%X 读入十六进制整数
%s 读入一个字符串,遇空格、制表符或换行符结束。
%f,%F,%e,%E,%g,%G 用来输入实数,可以用小数形式或指数形式输入。
%p 读入一个指针
%u 读入一个无符号十进制整数
%n 至此已读入值的等价字符数
%[] 扫描字符集合
%% 读%符号