當前位置:首頁 » 編程語言 » 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 空語句。