版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、C的32個(gè)關(guān)鍵字9種控制語句34個(gè)運(yùn)算符2021年12月16日星期四一、32個(gè)關(guān)鍵字(一)分類:32個(gè)關(guān)鍵字每個(gè)都有不同的意義,大體上根據(jù)其意義可以分為以下幾類(下劃線表示不同分類中有交集):非常見:auto、register、volatile、goto存儲相關(guān):const、extern、register、volatile、static、auto、signed、unsigned數(shù)據(jù)類型:char、short、int、long、float、double、struct、union、enum、void邏輯控制:if、else、for、while、do、break、continue、return、de
2、fault、switch、case、goto特殊用途:sizeof、typedef(二)含義:C語言32個(gè)關(guān)鍵字含義分述如下:1、auto :聲明自動(dòng)變量 2、short :聲明短整型變量或函數(shù) 3、int: 聲明整型變量或函數(shù)4、long :聲明長整型變量或函數(shù) 5、float:聲明浮點(diǎn)型變量或函數(shù) 6、double :聲明雙精度變量或函數(shù) 7、char :聲明字符型變量或函數(shù) 8、struct:聲明結(jié)構(gòu)體變量或函數(shù) 9、union:聲明共用體數(shù)據(jù)類型 10、enum :聲明枚舉類型 11、typedef:用以給數(shù)據(jù)類型取別名 12、const :聲明只讀變量/常變量 13、unsigned
3、:聲明無符號類型變量或函數(shù) 14、signed:聲明有符號類型變量或函數(shù) 15、extern:聲明變量是在其他文件中已定義/聲明 16、register:聲明寄存器變量 17、static :聲明靜態(tài)變量 18、volatile:說明變量在程序執(zhí)行中可被隱含地改變。即設(shè)置內(nèi)存變量在CPU訪問時(shí)直接內(nèi)存讀寫方式,即不經(jīng)過CPU中的高速緩沖cache或寄存器。volatile意“易變的”,在程序中,當(dāng)未使用volatile關(guān)鍵字定義的變量,如int x;在本次線程內(nèi), 當(dāng)讀取一個(gè)變量時(shí),為提高存取速度,編譯器優(yōu)化時(shí)有時(shí)會先把變量讀取到一個(gè)寄存器中;以后,再取變量值時(shí),就直接從寄存器中取值;當(dāng)變量值
4、在本線程里改變時(shí),會同時(shí)把變量的新值copy到該寄存器中,以便保持一致。當(dāng)使用volatile關(guān)鍵字定義的變量,如volatile int x;每次讀取x值時(shí)均從內(nèi)存讀取,而不經(jīng)過速度較快的寄存器或cache。即volatile應(yīng)該解釋為“直接存取原始內(nèi)存地址”比較合適。19、void :聲明函數(shù)無返回值或無參數(shù),聲明無類型指針 20、if:條件語句 21、else :條件語句否定分支(與 if 連用) 22、switch :用于開關(guān)語句23、case:開關(guān)語句分支 24、for:一種循環(huán)語句 25、do :循環(huán)語句的循環(huán)體 26、while :循環(huán)語句的循環(huán)條件 27、goto:無條件跳轉(zhuǎn)語
5、句 28、continue:結(jié)束當(dāng)前循環(huán),開始下一輪循環(huán) 29、break:跳出當(dāng)前循環(huán)/當(dāng)前switch結(jié)構(gòu)30、default:開關(guān)語句中的“其他”分支 31、sizeof:計(jì)算數(shù)據(jù)類型長度 32、return :函數(shù)返回語句(可以帶參數(shù),也可不帶參數(shù))二、C語言9種控制語句if( )else 條件語句for( ) 循環(huán)語句while( ) 循環(huán)語句dowhile( )
6、; 循環(huán)語句continue 結(jié)束本次循環(huán)語句break 中止執(zhí)行switch或循環(huán)語句switch 多分支選擇語句goto 無條件轉(zhuǎn)向語句return
7、60; 從函數(shù)返回語句三、34種運(yùn)算符按優(yōu)先級由高向低排序如下: 其中第14至第31種運(yùn)算符均為雙目,按左結(jié)合律。 1、 () 圓括號 2、 下標(biāo) 3、->指針型結(jié)構(gòu)成員 4、.結(jié)構(gòu)成員直接指定 5、!邏輯非 6、按位非 7、+自增 8、-自減 9、-取負(fù) 10、(類型)類型轉(zhuǎn)換 11、*取內(nèi)容/間接訪問12、&取地址 13、sizeof求字節(jié)
8、0; 注:第513均為單目運(yùn)算,且都為右結(jié)合律。14、*乘 15、/除 16、%求余 17、+加 18、-減 19、<<左移 20、>>右移 21、<小于 22、<=小于等于 23、>大于 24、>=大于等于 25、=等于 26、!=不等于 27、&按位與 28、按位異或 29、|按位或 30、&&邏輯與 31、|邏輯或 32、?:條件
9、運(yùn)算 注:第32種運(yùn)算符為三目運(yùn)算,右結(jié)合律。33、=賦值運(yùn)算 注:另有10個(gè)擴(kuò)展符+=,-=,*=,/=,%=,>>=,<<=,&=,=,|= 34、,逗號運(yùn)算。C語言程序設(shè)計(jì)統(tǒng)考試題編程:輸入一不包含空格的字符串,判斷輸入的字符串是否為回文?;匚乃惴ǎ夯匚氖窍鄬χ行淖笥覍ΨQ的字符串。如字符串“abcba”和“abddba”是回文,而字符串“abcAa”不是回文。要求判斷字符串是否為回文的功能用函數(shù)實(shí)現(xiàn)?!發(fā)evel”也是回文字符串。答案1:#include<stdio.h> #include<string.h&
10、gt; void huiwen(char* str,int n); void main() char str10; int len; printf("請輸入字符串:"); scanf("%s",str); len=strlen(str); huiwen(str,len); void huiwen(char* str,int n) int net=0; int i,j; for(i=0,j=n-1;i<n/2;i+,j-) if(stri=strj) net+; if(net=(int)n/2) printf("%s:是回文字符串.n&qu
11、ot;,str);else printf("%s:不是回文字符串.n",str);答案2:#include<stdio.h> #include<string.h> void main() char s255;int i,j,b=1; printf("Input a string:"); scanf("%s",s); i=strlen(s); for(j=1;j<=i/2;j+) b=b&&(sj-1=si-j); printf(b?"Yesn":"Non&qu
12、ot;);回文數(shù)是指正讀和反讀都一樣的正整數(shù)。例如,5775"回文數(shù)"是一種數(shù)字。如:98789, 這個(gè)數(shù)字正讀是98789,倒讀也是98789,正讀倒讀一樣,所以這個(gè)數(shù)字就是回文數(shù)?;厩闆r1千以內(nèi)在自然數(shù)中,最小的回文數(shù)是0,其次是1,2,3,4,5,6,7,8,9,11,22,33,44,55,66,77,88,99,101,111,121,131,141,151,161,171,181,191,202,212,222,232,242,252,262,272,282,292,303,313,323,333,343,353,363,373,383,393,404,414
13、,424,434,444,454,464,474,484,494,505,515,525,535,545,555,565,575,585,595,606,616,626,636,646,656,666,676,686,696,707,717,727,737,747,757,767,777,787,797,808,818,828,838,848,858,868,878,888,898,909,919,929,939,949,959,969,979,989,999.平方回?cái)?shù)定義:一個(gè)回文數(shù),它同時(shí)還是某一個(gè)數(shù)的平方,這樣的數(shù)字叫做平方回?cái)?shù)。例如:121。100以上至1000以內(nèi)的平方回?cái)?shù)只有3個(gè),
14、分別是:121、484、676。其中,121是11的平方。484是22的平方,同時(shí)還是121的4倍。676是26的平方,同時(shí)還是169的4倍。舉例說明任意某一個(gè)數(shù)通過以下方式相加也可得到如:29+92=121 還有 194+491=685,586+685=1271,1271+1721=2992不過很多數(shù)還沒有發(fā)現(xiàn)此類特征(比如196,下面會講到)另外個(gè)別平方數(shù)是回文數(shù)1的平方=111的平方=121111的平方=123211111的平方=1234321依次類推3×51=1536×21=1264307×62=2670349×7×533=33579上
15、面這些算式,等號左邊是兩個(gè)(或三個(gè))因數(shù)相乘,右邊是它們的乘積。如果把每個(gè)算式中的“×”和“=”去掉,那么,它們都變成回文數(shù),所以,我們不妨把這些算式叫做“回文算式”。還有一些回文算式,等號兩邊各有兩個(gè)因數(shù)。請看:12×42=24×2134×86=68×43102×402=204×2011012×4202=2024×2101不知你是否注意到,如果分別把上面的回文算式等號兩邊的因數(shù)交換位置,得到的仍是一個(gè)回文算式,比如:分別把“12×42=24×21”等號兩邊的因數(shù)交換位置,得到算式是:
16、42×12=21×24這仍是一個(gè)回文算式。還有更奇妙的回文算式,請看:12×231=132×21(積是2772)12×4032=2304×21(積是48384)這種回文算式,連乘積都是回文數(shù)。四位的回文數(shù)有一個(gè)特點(diǎn),就是它決不會是一個(gè)質(zhì)數(shù)。設(shè)它為abba,那它等于a*1000+b*100+b*10+a,1001a+110b。能被11整除。六位的也一樣,也能被11整除還有,人們借助電子計(jì)算機(jī)發(fā)現(xiàn),在完全平方數(shù)、完全立方數(shù)中的回文數(shù),其比例要比一般自然數(shù)中回文數(shù)所占的比例大得多。例如112=121,222=484,73=343,113=1
17、331,114=14641都是回文數(shù)。研究現(xiàn)狀人們迄今未能找到自然數(shù)(除0和1)的五次方,以及更高次冪的回文數(shù)。于是數(shù)學(xué)家們猜想:不存在nk(n2,k5;n、k均是自然數(shù))形式的回文數(shù)。在電子計(jì)算器的實(shí)踐中,還發(fā)現(xiàn)了一樁趣事:任何一個(gè)自然數(shù)與它的倒序數(shù)相加,所得的和再與和的倒序數(shù)相加,如此反復(fù)進(jìn)行下去,經(jīng)過有限次步驟后,最后必定能得到一個(gè)回文數(shù)。這也僅僅是個(gè)猜想,因?yàn)橛行?shù)并不“馴服”。比如說196這個(gè)數(shù),按照上述變換規(guī)則重復(fù)了數(shù)十萬次,仍未得到回文數(shù)。但是人們既不能肯定運(yùn)算下去永遠(yuǎn)得不到回文數(shù),也不知道需要再運(yùn)算多少步才能最終得到回文數(shù)。用visual basic6.0for i = 100
18、 to 99999 '這里從100開始 后面可以隨便填,我這里填99999 表示所有3位數(shù)到五位數(shù)之間的回文數(shù)if StrReverse(i)=i then print i '用StrReverse函數(shù) 判斷倒序后的數(shù)和原來數(shù)是否相同,如果相同者表示此數(shù)為回文數(shù)next用C語言編程#include<stdio.h>int x,y;separate(int *data,int n)int i,j;y=0;while(n!=0)*(data+y)=n%10; n=n/10; y+;*(data+y)='0'for(i=0,j=y-1; i<=j;
19、i+,j-)if(*(data+i)=*(data+j)printf("%d 是回文!n",x);break;else printf("%d 不是回文 !n",x);break;void main()int a99;printf("請輸入一個(gè)正整數(shù):");scanf("%d",&x);separate(a,x);另外一種實(shí)現(xiàn)方法(c+)更簡便#include<iostream>using namespace std;bool symm(long m)long temp = m,n=0;while
20、 (temp)n = n*10+temp%10;temp = temp/10;return (m = n);int main(int argc, _TCHAR* argv)long m;cout<<"請輸入一個(gè)整數(shù):"cin>>m;cout<<"輸入了"<<symm(m)<<"個(gè)回文數(shù)!"return 0;回文字符串是具有回文特性的字符串:即該字符串從左向右讀,與 從右向左讀都一樣.如:鳳落梧桐梧落鳳,abcba等。#include <stdio.h>#include <string.h>int main( ) int
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)五年級數(shù)學(xué)整數(shù)小數(shù)四則混合運(yùn)算和應(yīng)用題教案示例
- 《新工傷保險(xiǎn)》課件
- 2025年中考語文文言文總復(fù)習(xí)-教師版-專題02:文言文閱讀之虛詞意義和用法(講義)
- 《放射治療的護(hù)理》課件
- 石油工程師在油田開采中的作用
- 土木工程師工作總結(jié)
- 醫(yī)療行業(yè)技術(shù)工作總結(jié)
- 點(diǎn)心店服務(wù)員工作總結(jié)
- 高一班主任期中工作總結(jié)呵護(hù)成長點(diǎn)滴培育之心
- 嬰幼兒科護(hù)理工作總結(jié)
- 腦出血護(hù)理查房-中醫(yī)院
- 森林生態(tài)系統(tǒng)固碳現(xiàn)狀、速率、機(jī)制和潛力研究實(shí)施方案細(xì)則
- 公眾責(zé)任保險(xiǎn)知識培訓(xùn)教育課件
- 2023年外交學(xué)院招聘筆試備考試題及答案解析
- 深基坑事故案例
- 中國茶文化(中文版)
- 02J401鋼梯安裝圖集
- 川省成都市2022屆高二上學(xué)期期末考試:英語
- 人教版小學(xué)三年級語文上冊第三單元集體備課活動(dòng)記錄
- 消防安全操作規(guī)程
- 水利水電工程危險(xiǎn)源辨識與風(fēng)險(xiǎn)評價(jià)一覽表
評論
0/150
提交評論