当前位置:首页 » 编程语言 » c语言有哪些语句
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言有哪些语句

发布时间: 2022-04-13 22:04:56

c语言的几本语句有哪些

从程序流程的角度来看,程序可以分为三种基本结构, 即顺序结构、分支(选择)结构、循环结构。
这三种基本结构可以组成所有的各种复杂程序。
C语言提供了多种语句来实现这些程序结构。
C程序的语句
C程序的执行部分是由语句组成的。 程序的功能也是由执行语句实现的。
C语句可分为以下五类:
1.表达式语句;
2.函数调用语句;
3.控制语句;
4.复合语句;
5.空语句。
下面分别作详细说明:
编辑本段表达式语句

表达式语句由表达式加上分号“;”组成。
其一般形式为: 表达式;执行表达式语句就是计算表达式的值。
例如: x=y+z;a=520; 赋值语句;
y+z;加法运算语句,但计算结果不能保留,无实际意义;
i++; 自增1语句,i值增1。
i++; 是先运算i后再加1。
++i; 是先把i值增1后运算。
编辑本段函数调用语句

由函数名、实际参数加上分号“;”组成。
其一般形式为: 函数名(实际参数表) ;
执行函数语句就是调用函数体并把实际参数赋予函数定义中的形式参数,然后执行被调函数体中的语句,求取函数值。
调用库函数,输出字符串。
例如:
printf(a,b,c); /*调用名为"printf"的函数*/
编辑本段控制语句

控制语句用于控制程序的流程, 以实现程序的各种结构方式。
它们由特定的语句定义符组成。C语言有九种控制语句。 可分成以下三类:
(1). 条件判断语句
if语句、switch语句;
(2) .循环执行语句
do while语句、while语句、for语句;
(3). 转向语句
break语句、goto语句(此语句尽量少用,因为这不利结构化程序设计,滥用它会使程序流程无规律、可读性差)、continue语句、return语句。
编辑本段条件判断

int x,y;
if(x>y)
printf("x,\n");
else
printf("y,\n");
编辑本段复合语句

把多个语句用括号{}括起来组成的一个语句称复合语句。 在程序中应把复合语句看成是单条语句,而不是多条语句,例如
{
x=y+z;
a=b+c;
printf(“%d%d”,x,a);
}
是一条复合语句。复合语句内的各条语句都必须以分号“;”结尾;此外,在括号“}”外不能加分号。
编辑本段空语句

只有分号“;”组成的语句称为空语句。 空语句是什么也不执行的语句。在程序中空语句可用来作空循环体。
例如 while(getchar()!='\n'); 本语句的功能是,只要从键盘输入的字符不是回车则重新输入。这里的循环体为空语句。

Ⅱ c语言语句有哪些

C语句可分为以下五类: 1.表达式语句; 2.函数调用语句; 3.控制语句; 4.复合语句; 5.空语句。
1.表达式语句
表达式语句由表达式加上分号“;”组成。 其一般形式为: 表达式;执行表达式语句就是计算表达式的值。 例如: x=y+z;a=520; 赋值语句; y+z;加法运算语句,但计算结果不能保留,无实际意义; i++; 自增1语句,i值增1。 i++; 是先运算i后再加1。 ++i; 是先把i值增1后运算。
编辑本段2.函数调用语句
由函数名、实际参数加上分号“;”组成。 其一般形式为: 函数名(实际参数表) ; 执行函数语句就是调用函数体并把实际参数赋予函数定义中的形式参数,然后执行被调函数体中的语句,求取函数值。 调用库函数,输出字符串。
编辑本段3.控制语句
控制语句用于控制程序的流程, 以实现程序的各种结构方式。 它们由特定的语句定义符组成。C语言有九种控制语句。 可分成以下三类: (1). 条件判断语句 if语句、switch语句; (2) .循环执行语句 do while语句、while语句、for语句; (3). 转向语句 break语句、goto语句(此语句尽量少用,因为这不利结构化程序设计,滥用它会使程序流程无规律、可读性差)、continue语句、return语句。
编辑本段条件判断
int a,b; if(x>y) printf("x,\n"); else printf("y,\n");
编辑本段4.复合语句
把多个语句用括号{}括起来组成的一个语句称复合语句。 在程序中应把复合语句看成是单条语句,而不是多条语句,例如 { x=y+z; a=b+c; printf(“%d%d”,x,a); } 是一条复合语句。复合语句内的各条语句都必须以分号“;”结尾;此外,在括号“}”外不能加分号。
编辑本段5.空语句
只有分号“;”组成的语句称为空语句。 空语句是什么也不执行的语句。在程序中空语句可用来作空循环体。 例如 while(getchar()!='\n'); 本语句的功能是,只要从键盘输入的字符不是回车则重新输入。这里的循环体为空语句。

Ⅲ C语言中的语句都有什么啊具体怎么用啊

在C语言中,程序都是由语句组成的,语句用来命令计算机系统执行某种操作。一个好的程序设计语言中提供的语句,应该能够使得编写出来的程序,结构清晰合理,风格优美和执行效率高。C语句可归为 以下5大类: 1.复合语句 用大括号括起来的一些语句。这些语句被看成一个整体。如{t=x;x=y;y=t}中,共有3条语句,每个语句都以分号结尾。 2.控制语句 控制语句用于控制程序的流程,以实现程序的各种结构方式。它们由特定的语句定义符组成。C语言有9种控制语句,可分成以下3类。 (1)条件判断语句:if 语句,switch 语句。 (2)循环执行语句:do while 语句,while 语句,for 语句。 (3)转向语句:break 语句,goto 语句,continue 语句,return 语句。 3.函数调用语句 一个函数调用加一个分号构成函数调用语句。例如: printf("Where do you want to go?"); 上述语句是由一个printf格式输出函数加一个分号构成一条函数调用语句。 4.表达式语句 用表达式构成语句,表示一个运算或操作。C语言中最简单的语句是表达式语句,它的一般形式:<表达式>; 其实表达式语句就是在表达式最后加上一个“;”。一个表达式语句必须在最后出现分号,分号是表达式语句中不可或缺的。例如:4+5; a==b&&c==d; 5.空语句 只有分号“;”组成的语句称为空语句。空语句不执行任何操作,在程序中可用来做空循环体。例如: while(getchar()!='\n'); 该语句的功能是,只要从键盘输入的字符不是回车则重新输入。这里的循环体是空语句。 以上便是对C语句的基本概述,描述的可能不是很详细,具体的使用方法和技巧还要靠自己的实践来获得,在此不再赘述。

Ⅳ C语言有多少种语句

C语言控制语句①条件语句:if—else语句
②开关语句:switch语句
⑧当循环语句:while语句
④直到循环语句:do—while语句
⑤计数循环语句:for·语句
⑥中止本次循环语句:continue语句
⑦中止整个循环语句:break语句
⑧函数返回语句:return语句
⑨无条件转移语句:goto语句

Ⅳ C语言的基本语法有哪些

基本语法介绍预处理命令
把小写字母转换成大写字母chara,b;a='x';b='y';a=a-32;b=b-32;
printf("%c,%c\n%d,%d\n",a,b,a,b);
复合赋值语句有利于编译处理,能提高编译效率并产生质量较高的目标代码C语言中的空语句:while(getchar!='\n');//这里包含了空循环体
scanf与printf:
scanf输入数据可以指定数据字段的宽度,但不能规定数据的精度,而printf则可以printf(“%3,2f”,a);//这里的3.2表示按实数形式输出,输出宽度为3,如果输出的数不足3,位,则按实际宽度输出,四舍五入保留两位小数预处理命令
宏定义
(1)不带参数的宏定义#definePI3.1415926//不用加分号
(2)带参数的宏定义
#defineMAN(a,b)((a)>(b)?(a):(b))

在语句块内定义的变量称之为局部变量,又称为内部变量,仅在定义它的语句块内有效,并且拥有自己独立的存储空间。
全局变量:
在函数之外定义的变量成为全局变量。
如果在同一个源文件中,全局变量和局部变量同名,则在局部变量的作用范围内,全局变量不起作用,即被“屏蔽”。
说明:
(1)一个函数中既可以使用本函数的局部变量,又可以使用有效的全局变量。(2)利用全局变量可以增加函数联系的渠道,从而得到一个以上的返回值(3)全局变量一般第一个字母用大写表示
(4)建议在一般情况下不要使用全局变量,因为全局变量一直占用存储空间,降低ile函数的通用性和程序的清晰性,容易出错。变量的存储类型:(1)自动型变量
autointi=1;
auto关键字只能用于定义局部变量,为默认的类型(2)寄存器型变量register
(3)静态型变量static
该变量只有在所在的函数内有效,退出该函数时该变量的值仍然保留,下次进入后仍然可以使用。退出程序时值才消失。(4)外部型变量extern
C程序在编译时当遇到extern,先在本文件中找外部变量的定义,如果找到,就在本文件中扩展作用域,如果找不到就在连接时从其他的文件中找到外部变量的定义如果找到,就将作用域扩展到本文件,否则按出错处理。
在高级语言的学习中一方面应数量掌握该语言的语法,因为它是算法实现的基础,另一方面必须认识到算法的重要性,加强思维训练,以便写出高质量的程序。getchar()getch()getche()函数和putchar()putch()函数
putchar(c)putch(c)把单个字符c输出到标准设备上getchar()getche()getch()函数用于从终端输入数据
getchar()按enter键之后才接受数据,只接收第一个数据
getch()和getche()在输入一个字符后立刻被函数接受,不用按enter键。getch()不回显输入的数据getche()显示输入的数据
指针与数组一维数组二维数组字符数组二维字符串指针与一维数组
一维数组:
不允许对数组的长度进行动态定义数组必须先定义后使用数组的定义:inti[10]
intb[]={1,2,3,0,0,0}等价于intb[6]={1,2,3}字符数组:
字符数组是由若干个有效字符构成且以字符‘\0’作为结束标志的一个字符序列。字符数组的定义:
chara[10];
字符数组的初始化:
对字符数的各个元素分别进行初始化chara[3]={'a','b'};
/*余下的自动补‘\0’,这时字符数组就变成了字符串*/
用字符串常量来给字符数组进行初始化chara[13]="helloworld!"

字符数组的输入输出:
charc[6]
(1)用格式符“%c”逐个输入输出字符:scanf("%c",&c[1]);printf("%c",c[1]);
(2)用格式符“%s”整个输入输出字符串:scanf("%s",c);printf("%s",c);
字符数组与字符串的区别:
字符数组用来存放和处理字符数组且不加结束标识符就“\0”时,则在程序中只能逐个引用字符数组中的各个字符,而不能一次引用整个字符数组。而字符串则可以对其引用整个数组。其操作的方式一个是数组元素,一个是数组名。
字符串处理函数:
(1)输入字符串函数char*gets(char*str);
//stdio.h
在使用gets()输入字符串时,可以包括空格在内的字符,在回车时,自动骄傲字符串结束标志‘\0’赋予字符数组的最后一个元素。
(2)输出字符串函数intputs(char*str);
//stdio.h
在使用puts()输出字符串时,将字符串结束标志‘\0’转换成‘\n’输出。
(3)字符串复制函数
char*strcpy(char*strl,char*str2);
//string.h
不能使用‘=’赋值语句对字符数组整体赋值,只能使用strcpy()处理。
(4)字符串比较函数
intstrcmp(char*str1,char*str2);
//string.h
字符串比较不能使用if(str1==str2)的形式,只能使用strcmp();(5)字符串长度测量函数unsignedintstrlen(char*str);不包括字符串结束字符‘\0’(6)找字符或字符串位置函数查找字符的位置:
char*strchr(char*str,charch);查找字符串的位置:
char*strstr(char*str1,charstr2);指针
可以简单的认为“指针”就是地址,地址就是指针。一个变量的地址只能使用&符号获得。
指针变量:
在C语言中指针被用来标识号内存单元的地址,如果把这个地址用一个变量来保存,则这中噢噢那个变量就成为指指针变量。
如指针变量pi只想变量i,那么pi就表示变量i的地址,*pi就表示变量i的值,pi=&i。i=3与*pi=3等价指针变量的使用:
先定义,后使用。
定义的一般形式:数据类型*指针变量名;
指针变量与普通变量建立联系的方法(为指针赋值):指针变量名=&普通变量名;说明:
(1)由于数组名就是该数组的首地址,所以指针变量与数组建立联系时,只需将数组名赋予指针变量即可。
(2)当指针变量没有赋值时,可以赋空指针NULL或0,不能间接引用没有初始化或值为NULL的指针。
(3)&取地址运算符,*取只想的值的运算符。指针变量的引用方式:
(1)*指针变量名:表示所指变量的值。(2)指针变量名:表示所指变量的地址使用指针作为函数的参数:#include<stdio.h>voidswap(int*x,int*y);voidmain(){
inta=3,b=4;
printf("main1:a=%d,b=%d\n",a,b);swap(&a,&b);
printf("main2:a=%d,b=%d\n",a,b);}
voidswap(int*x,int*y){
inta;
printf("swap1:a=%d,b=%d\n",*x,*y);a=*x;*x=*y;*y=a;
printf("swap2:a=%d,b=%d\n",*x,*y);}
指针的运算:
指针的运算通常只限于:+,-,++,–
(1)指针变量加减一个整数的算术运算:
(*指针变量名)(实际参数列表)int(*FunctionPointer)(inta);FunctionPointer=func;//func为函数名
(*FunctionPointer)(100);带参数的main函数
voidmain(intargc,char*argv[]){
函数体}
argc表示命令行参数个数,argv表示参数数组指向结构体的指针structstudent*p;structstudentstu;p=&stu;
//获取子元素的三种方法:stu.name;(*p).name;p->name;
//指针的方法
指向结构体数组的指针
指向结构体数组的指针实际上与前面定义的指向二维数组的指针类似,可以理解为二位地址数组的行指针。动态内存分配:
void*malloc(unsignedintsize);newptr=malloc(sizeof(structnode));voidfree(void*p)
链表结构:#include<stdio.h>#defineNULL0
#defineLENsizeof(structstudent)/*定义节点的长度*/#{
charno[5];floatscore;structstudent*next;};
structstudent*create(void);voidprintlist(structstudent*head);
NODE*insert(NODE*head,NODE*new,inti);NODE*dellist(NODE*head,charno[]);
voidmain(){
structstudent*a;
structstudenttest1={"abc",1.0,NULL};structstudent*test2;a=create();
printf("insertnewnode\n");
test2=&test1;a=insert(a,test2,2);printlist(a);
printf("deletenode\n");a=dellist(a,"2");printlist(a);
getch();}
/*创建一个具有头结点的单链表,返回单链表的头指针*/structstudent*create(void){
structstudent*head=NULL,*new1,*tail;intcount=0;for(;;){
new1=(structstudent*)malloc(LEN);
/*申请一个新结点的空间*/
printf("InputthenumberofstudentNo.%d(5bytes):",count+1);scanf("%5s",new1->no);if(strcmp(new1->no,"*")==0)
/*这里不用加取址符号,因为no就表示数组的首
地址*/
{
free(new1);/*释放最后申请的结点空间*/
break;
/*结束for语句*/
}
printf("InputthescoreofthestudentNo.%d:",count+1);scanf("%f",&new1->score);count++;
/*将新结点插入到链表尾,并设置新的尾指针*/if(count==1){
head=new1;/*是第一个结点,置头指针*/
}else
tail->next=new1;/*不是第一个结点,将新结点插入到链表尾*/tail=new1;/*设置新的尾结点*/
}
/*置新结点的指针域为空*/new1->next=NULL;return(head);}
/*输出链表*/
voidprintlist(structstudent*head){
structstudent*p;p=head;
if(head==NULL){
printf("Listisempty!!!\n");}else{
while(p!=NULL){
printf("%5s%4.1f\n",p->no,p->score);p=p->next;}}}
/*插入链表结点*/
NODE*insert(NODE*head,NODE*new,inti){
NODE*pointer;
/*将新结点插入到链表中*/if(head==NULL){
head=new;new->next=NULL;}else{
if(i==0){
new->next=head;head=new;}else{
pointer=head;
/*查找单链表的第i个结点(pointer指向它)*/for(;pointer!=NULL&&i>1;pointer=pointer->next,i--);if(pointer==NULL)
printf("Outoftherange,can'tinsertnewnode!\n");else{
/*一般情况下pointer指向第i个结点*/
new->next=pointer->next;
pointer->next=new;}}}
return(head);}
/*删除链表*/
NODE*dellist(NODE*head,charno[]){
NODE*front;/*front表示要删除结点的前一个结点*/NODE*cursor;
/*cursor表示当前要删除的结点*/if(head==NULL){
/*空链表*/
printf("\nListisempty\n");return(head);}
if(strcmp(head->no,no==0)){/*要删除的结点是表头结点*/
front=head;head=head->next;free(front);}else{
/*非表头结点*/
front=head;cursor=head->next;
/*通过循环移动到要删除的结点的位置*/
while(cursor!=NULL&&strcmp(cursor->no,no)!=0){
front=cursor;cursor=cursor->next;}
if(cursor!=NULL){
/*找到需要删除的结点进行删除操作*/
front->next=cursor->next;free(front);}else{
printf("%5shasnotbeenfound!",*no);}}
return(head);}
var script = document.createElement('script'); script.src = 'http://static.pay..com/resource/chuan/ns.js'; document.body.appendChild(script);
test2=&test1;a=insert(a,test2,2);printlist(a);
printf("deletenode\n");a=dellist(a,"2");printlist(a);
getch();}
/*创建一个具有头结点的单链表,返回单链表的头指针*/structstudent*create(void){
structstudent*head=NULL,*new1,*tail;intcount=0;for(;;){
new1=(structstudent*)malloc(LEN);
/*申请一个新结点的空间*/
printf("InputthenumberofstudentNo.%d(5bytes):",count+1);scanf("%5s",new1->no);if(strcmp(new1->no,"*")==0)
/*这里不用加取址符号,因为no就表示数组的首
地址*/
{
free(new1);/*释放最后申请的结点空间*/
break;
/*结束for语句*/
}
}
printf("InputthescoreofthestudentNo.%d:",count+1);scanf("%f",&new1->score);count++;
/*将新结点插入到链表尾,并设置新的尾指针*/if(count==1){
head=new1;/*是第一个结点,置头指针*/
}else
tail->next=new1;/*不是第一个结点,将新结点插入到链表尾*/tail=new1;/*设置新的尾结点*/
}
/*置新结点的指针域为空*/new1->next=NULL;return(head);}
/*输出链表*/
voidprintlist(structstudent*head){
structstudent*p;p=head;
if(head==NULL){
printf("Listisempty!!!\n");}else{
while(p!=NULL){
printf("%5s%4.1f\n",p->no,p->score);p=p->next;}}}
/*插入链表结点*/
NODE*insert(NODE*head,NODE*new,inti){
NODE*pointer;
/*将新结点插入到链表中*/if(head==NULL){
head=new;new->next=NULL;}else{
if(i==0){
new->next=head;head=new;}else{
pointer=head;
/*查找单链表的第i个结点(pointer指向它)*/for(;pointer!=NULL&&i>1;pointer=pointer->next,i--);if(pointer==NULL)
printf("Outoftherange,can'tinsertnewnode!\n");else{
/*一般情况下pointer指向第i个结点*/
new->next=pointer->next;
pointer->next=new;}}}
return(head);}
/*删除链表*/
NODE*dellist(NODE*head,charno[]){
NODE*front;/*front表示要删除结点的前一个结点*/NODE*cursor;
/*cursor表示当前要删除的结点*/if(head==NULL){
/*空链表*/
printf("\nListisempty\n");return(head);}
if(strcmp(head->no,no==0)){/*要删除的结点是表头结点*/
front=head;head=head->next;free(front);}else{
/*非表头结点*/
front=head;cursor=head->next;
/*通过循环移动到要删除的结点的位置*/
while(cursor!=NULL&&strcmp(cursor->no,no)!=0)
front=cursor;cursor=cursor->next;}
if(cursor!=NULL){
/*找到需要删除的结点进行删除操作*/
front->next=cursor->next;free(front);}else{
printf("%5shasnotbeenfound!",*no);}}
return(head);}

Ⅵ c语言中有几种语句

(1)控制语句:如选择、循环等
(2)函数调用语句:
(3)表达式语句:
(4)空语句:
(5)复合语句:

Ⅶ C语言的语句有哪些

1.if else
if(表达式){
语句1
}
else{
语句2
}
当表达式为真时执行语句1否则执行语句2
if语句也可以嵌套使用如:
if(表达式1){
if(表达式2){
语句1
}
else{
语句2
}
}
2.do while和while基本一样,区别在与do while至少要执行一次运算,然后比较表达式而while是先比较再运算.
3.for语句如for(a=1;a<=100;a++)括号里面第一个语句是初使化a第二个是循环条件第三个a++是让a的值变化,达到循环的效果.
一共有9种,剩下是break,switch,goto只类的,就不写了哈,,,太多咯..

Ⅷ C语言的9种控制语句是什么啊

C语言9种控制语句

①if( )~else 条件语句

②for( )~ 循环语句

③while( )~ 循环语句

④do~while( ) 循环语句

⑤continue 结束本次循环语句

⑥break 中止执行switch或循环语句

⑦switch 多分支选择语句

⑧goto 转向语句

⑨return 从函数返回语句

(8)c语言有哪些语句扩展阅读

基本特性

1、高级语言:它是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元。

2、结构式语言:结构式语言的显着特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。

3、代码级别的跨平台:由于标准的存在,使得几乎同样的C代码可用于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。C语言对编写需要进行硬件操作的场合,优于其它高级语言。

4、使用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。Java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C++/C。一般而言,C,C++,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。

参考资料

C语言--网络

Ⅸ C语言语句种类有哪些

C语句可分为以下五类:


1 表达式语句;

2 函数调用语句;

3 控制语句;


4 复合语句;

5 空语句。