C语言源程序是由:数据类型、常量与变量、数组、指针、字符串、文件输入/输出构成。
具体介绍:
1、数据类型
C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。
2、常量与变量
常量其值不可改变,符号常量名通常用大写。变量是以某标识符为名字,其值可以改变的量。标识符是以字母或下划线开头的一串由字母、数字或下划线构成的序列,请注意第一个字符必须为字母或下划线,否则为不合法的变量名。变量在编译时为其分配相应存储单元。
3、数组
如果一个变量名后面跟着一个有数字的中括号,这个声明就是数组声明。字符串也是一种数组。它们以ASCII的NULL作为数组的结束。要特别注意的是,方括内的索引值是从0算起的。
4、指针
指针不仅可以是变量的地址,还可以是数组、数组元素、函数的地址。通过指针作为形式参数可以在函数的调用过程得到一个以上的返回值,不同于return(z)这样的仅能得到一个返回值。
指针是一把双刃剑,许多 *** 作可以通过指针自然的表达,但是不正确的或者过分的使用指针又会给程序带来大量潜在的错误。
5、字符串
C语言的字符串其实就是以'\0'字符结尾的char型数组,使用字符型并不需要引用库,但是使用字符串就需要C标准库里面的一些用于对字符串进行 *** 作的函数。它们不同于字符数组。
6、文件输入/输出
在C语言中,输入和输出是经由标准库中的一组函数来实现的。在ANSI C中,这些函数被定义在头文件<stdioh>;中。
扩展资料:
语言特点
1、高级语言:它是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元。
2、结构式语言:结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。
3、代码级别的跨平台:由于标准的存在,使得几乎同样的C代码可用于多种 *** 作系统,如Windows、DOS、UNIX等等;也适用于多种机型。C语言对编写需要进行硬件 *** 作的场合,优于其它高级语言。
4、使用指针:可以直接进行靠近硬件的 *** 作,但是C的指针 *** 作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针 *** 作的同时又增强了安全性,受到了一些用户的支持。
#include <iostream>
using namespace std;
#define m 45
#define n 100
#define t 10
int main()
{
FILE fp;
char filename[20],c[n];
printf("Type the file name which you want to open:");
scanf("%s",&filename);
fp=fopen(filename,"r+"); /以r-只读方式打开指定文件/
if((fp=fopen(filename,"r"))==NULL) /文件不存在输出错误/
{cout<<"文件不存在!"<<endl;exit(-1);}
cout<<"文件中内容如下:"<<endl;
for(int j=0;!feof(fp);j++){
c[j]=fgetc(fp);//从流中读取字符
}
char keyword[m][t]={"include","int","string","cout","cin","auto","break","case","char","class","const",
"continue","default","delete","do","double","else","enum","extern","float","for","friend","if","inline",
"int","long","new","operator","private","protected","public","register","return","short","sizeof","static",
"struct","switch","template","this","typedef","union","virtual","void","while"};//关键字数组
char a[t],p=c,q=a,s=a;
bool w=0,r=0;
int i=0;
for(i=0;i<10;i++)a[i]=NULL;//初始化临时数组
while (p !=NULL){
q=s=a;
if((p>='a'&&p<='z')||(p>='A'&&p<='Z')||p=='_'){//识别标识符
q=p;p++;q++;
while ((p>='a'&&p<='z')||(p>='A'&&p<='Z')||(p>='0'&&p<='9')||p=='_'){
q=p;p++;q++;
}
for(i=0;i<m;i++)if(strcmp(keyword[i],a)==0){r=1;break;}
if(r==1){cout<<"关键字为:";r=0;}
else cout<<"标识符为:";
while(s!=q){
cout<<s;
s++;
}
cout<<endl;
for(i=0;i<t;i++)a[i]=NULL;
}
else if(p=='\''){//识别字符常量
p++;
while(p!='\''){
q=p;
p++;
q++;
}
cout<<"字符常量为:";
while(s!=q){
cout<<s;
s++;
}
cout<<endl;
for(i=0;i<t;i++)a[i]=NULL;
p++;
}
else if(p=='\"'){//识别字符串常量
p++;
while(p!='\"'){
q=p;
p++;
q++;
}
cout<<"字符串常量为:";
while(s!=q){
cout<<s;
s++;
}
cout<<endl;
for(i=0;i<t;i++)a[i]=NULL;
p++;
}
else if(p=='+'||p=='-'||p==''||p=='/'||p=='='||p=='%'||p=='/'){//识别运算符
cout<<"运算符为:"<<p;
cout<<endl;
p++;
}
else if(p==';'||p==','){//识别分解符
cout<<"分界符为:"<<p;
cout<<endl;
p++;
}
else if(p>='0'&&p<='9'){
s=q=a;
q=p;p++;q++;
while(p>='0'&&p<='9'||p==''){
q=p;p++;q++;
}
while(s!=q){
if(s==''){w=1;break;}//识别实型常量
s++;
}
s=a;
if(w ==1){
cout<<"实型常量为:";
while(s!=q){
cout<<s;
s++;
}
for(i=0;i<t;i++)a[i]=NULL;
}
else {
cout<<"整型常量为:";
while(s!=q){//识别整型常量
cout<<s;
s++;
}
for(i=0;i<t;i++)a[i]=NULL;
}
cout<<endl;
}
else p++;
}
return 0;
}
C程序的基本结构 = 主函数+m自定义函数+n文件包含,(其中m、n均大于等于0)。
从公式可以看出一个C程序必须有且仅有一个主函数,因为主函数是C程序的入口点和结束点。而自定义函数和文件包含可以没有。
结构可以看成是特殊的数组。结构名等同数组名。结构变量等同 数组名,这样理解起来比较易懂。
数组含一组数,它们是同一类型的。整型数组,它的所有元素都是整型。float 数组,它的所有元素都是float型。结构含一组数,它们往往是不同类型的。 它的成员有整型,有float型,有 char 型。有没有结构变量,就同有没有数组变量一样。
扩展资料
用goto语句和if语句构成循环1到100求和的源代码如下
main()
{
int i,sum=0;
i=1;
loop: if (i<=100)
{
sum=sum+i;
i++;
goto loop;
}
printf("%d\n",sum);
}
以上就是关于C语言源程序是由什么构成的全部的内容,包括:C语言源程序是由什么构成的、求C语言编译原理语法分析程序、C语言源程序的基本结构是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)