1.實驗?zāi)康?/strong>
(1)掌握C語言數(shù)據(jù)類型,了解字符型數(shù)據(jù)和整型數(shù)據(jù)的內(nèi)在關(guān)系。
(2)掌握對各種數(shù)值型數(shù)據(jù)的正確輸入方法。
(3)學(xué)會使用C的有關(guān)算術(shù)運(yùn)算符,以及包含這些運(yùn)算符的表達(dá)式,特別是自加(十十)和自減(—一)運(yùn)算符的使用。
(4)學(xué)會編寫和運(yùn)行簡單的應(yīng)用程序。
(5)進(jìn)一步熟悉C程序的編輯、編譯
2.實驗內(nèi)容和步驟
(1)輸入并運(yùn)行教材第3章第4題給出的程序;
?①運(yùn)行以上的程序,分析為什么會輸出這些信息。
②如果將程序第4,5行改為
C1=197;
C2=198;
運(yùn)行時會輸出什么信息?為什么?
?③如果將程序第3行改為
Int c1,c2;
運(yùn)行時會輸出什么信息?為什么?
?(2)輸入第3章第5題的程序。即:用下面的scanf函數(shù)輸入數(shù)據(jù),使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’.問在鍵盤上如何輸入?
?
?運(yùn)行時分別按下方式輸入數(shù)據(jù),觀察輸出結(jié)果,分析原因。
?
①
?
②
?
③
?
④
?
⑤
?
⑥
?
⑦
?
⑧
?
通過此題,總結(jié)輸入數(shù)據(jù)的規(guī)律和容易出錯的地方。
(3)輸入以下程序:
?
①編譯和運(yùn)行程序,注意i,j,m,n各變量的值。
?
②將第6,7行改為
m=i++;
n=++j;
在編譯和運(yùn)行,分析結(jié)果。
?③程序改為
?
再編譯和運(yùn)行,分析結(jié)果。
④在③的基礎(chǔ)上,將printf語句改為
printf(“%d,%d\n”,++i,++j);
再編譯和運(yùn)行。
?
?
⑤再將printf語句改為
printf(“%d,%d,%d,%d\n”,i,j,i++,j++);
再編譯和運(yùn)行,分析結(jié)果。
?
?
⑥程序改為:
?
再編譯和運(yùn)行,分析結(jié)果。
- 假如我國國民生產(chǎn)總值的年增長率為9%,計算10年后我國國民生產(chǎn)總值與現(xiàn)在相比增長多少百分比。編寫程序。
?
?
①輸入自己編好的程序,編譯并運(yùn)行,分析運(yùn)行結(jié)果。
②年增長率不在程序中指定,改用scanf函數(shù)語句輸入,分別輸入7%,8%,10%。觀察結(jié)果。
?
?
?
?
③在程序中增加printf函數(shù)語句,用來提示輸入什么數(shù)據(jù),說明輸出的是什么數(shù)據(jù)。
3.實驗結(jié)果
運(yùn)行結(jié)果為:如上面的所有所附帶的圖片可得
4.分析討論
(1)①中運(yùn)用了char這個字符型這個數(shù)據(jù)類型,將整數(shù)通過ASCII中的編碼轉(zhuǎn)化成特定的字符。而%c為我新學(xué)到的格式化字符,可以將輸入的數(shù)字按照ASCII碼相應(yīng)的轉(zhuǎn)化為對應(yīng)的字符。這邊其實不難發(fā)現(xiàn),char所定義的變量內(nèi)其實是存貯著整數(shù),然后通過%c,才輸出了相應(yīng)的字符。
?????②中由于ASCII的數(shù)值范圍為-128~127,就拿197舉例,它的值已經(jīng)超過了127,又因為197的原碼為11000101,我們所要輸出的用“%d”來說明了,變成了要強(qiáng)制用int類型來輸出數(shù)據(jù)。又因為Int在內(nèi)存中占用4個字節(jié),而char只占用1個字節(jié),故需要再其前面在補(bǔ)充3個字節(jié),于是其內(nèi)存補(bǔ)碼便變?yōu)榱?1111111 11111111 11111111 11000101,然后又根據(jù)補(bǔ)碼變?yōu)樵a的規(guī)則(一.如果補(bǔ)碼的符號位為“0”,表示是一個正數(shù),所以補(bǔ)碼就是該數(shù)的原碼。二.如果補(bǔ)碼的符號位為“1”,表示是一個負(fù)數(shù),求原碼的操作可以是:符號位為1,除符號外其余各位取反,然后再整個數(shù)加1)于是其原碼便變?yōu)榱?0000000 00000000 00000000 00111011轉(zhuǎn)化成十進(jìn)制變?yōu)?59,所以導(dǎo)致了c1這個變量中存儲了-59這個整數(shù)。而之所以通過“%c”輸出了“牌”這個漢字,是因為漢字是雙字節(jié),運(yùn)用了unsigned char 這個數(shù)值范圍,用兩個單字節(jié)的char所定義的變量所編碼成了一個漢字。
通過這個實驗案例,讓我更深一步的了解了ASCII表以及char,%c的用法與技巧。
(2)中一開始我編寫的程序沒有問題,但在調(diào)用scanf的時候,我輸入數(shù)據(jù)為3 7 8.5 71.82 Aa,打完之后發(fā)現(xiàn)a b 所對應(yīng)的值不是理想中的值,還有c1所對應(yīng)的值變成了“,”,后來經(jīng)過詢問發(fā)現(xiàn)是自己的基礎(chǔ)知識不夠牢固,應(yīng)該把3 7 改為a=3 b=7 ,還有char是字符型的數(shù)據(jù)類型,空格還有回車都有所對應(yīng)的數(shù)據(jù)。做完之后,我為我能發(fā)現(xiàn)自己的遺漏知識點而感到欣慰。文章來源:http://www.zghlxwxcb.cn/news/detail-722864.html
(3)中其實主要來區(qū)別i++,++i的區(qū)別,++ i 是先加后賦值;i ++ 是先賦值后加;++i和i++都是分兩步完成的。因為++i 是后面一步才賦值的,所以它能夠當(dāng)作一個變量進(jìn)行級聯(lián)賦值,++i = a =b,即 ++i 是一個左值;i++ 的后面一步是自增,不是左值。形象的理解可以是i++先做別的事,再自己加1,++i先自己加1,再做別的事情。理解完這個以后,這些代碼的打出以及結(jié)果的理解就十分輕松了。文章來源地址http://www.zghlxwxcb.cn/news/detail-722864.html
到了這里,關(guān)于C程序設(shè)計實驗報告2——數(shù)據(jù)類型、運(yùn)算符和簡單的輸入輸出的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!