超适合初学者刷的170道C基础编程题 选自牛客网 个人超详细解析(有彩蛋哟~)
在最開(kāi)始先簡(jiǎn)單說(shuō)下為什么刷題,可能大家在剛開(kāi)始學(xué)的時(shí)候認(rèn)識(shí)不到動(dòng)手或者認(rèn)識(shí)到但并不知道刷題的重要性。簡(jiǎn)單來(lái)說(shuō)即十分鞏固當(dāng)前知識(shí),讓學(xué)到腦子里的知識(shí)學(xué)以致用。其次一點(diǎn)就是在最開(kāi)始不再擔(dān)心寫(xiě)代碼的恐懼,認(rèn)為其反而是一種樂(lè)趣。
鏈接我發(fā)不出來(lái),這里步驟給大家:進(jìn)入牛客網(wǎng)主頁(yè)->登錄之后找到上方題庫(kù)->中間偏上的在線(xiàn)編程->彩色的編程初學(xué)者模塊
寫(xiě)在前面:題解可能就沒(méi)知識(shí)那么有趣了(個(gè)人認(rèn)為),槽點(diǎn)太少哈哈哈哈。
這個(gè)我打算分模塊解,少就全說(shuō),多就經(jīng)典。感謝大家觀看,評(píng)論區(qū)輕噴謝謝。
目錄
簡(jiǎn)單輸出
基本類(lèi)型
輸出格式化
基本運(yùn)算符
運(yùn)算
分支控制
循環(huán)控制
循環(huán)輸出圖形
一維數(shù)組
二維數(shù)組
字符/字符數(shù)組
函數(shù)
遞歸函數(shù)
簡(jiǎn)單輸出
1.輸出"Hello Nowcoder!"。開(kāi)始你的編程之旅吧。
這個(gè)家人們,沒(méi)什么好說(shuō)的昂
#include <stdio.h>
int main()
{
? ? printf("Hello Nowcoder!");
? ? return 0;
}
2.KiKi學(xué)會(huì)了printf在屏幕輸出信息,他想輸出一架小飛機(jī)。請(qǐng)幫他編寫(xiě)程序輸出這架小飛機(jī)。
輸入描述:
無(wú)
輸出描述:
前兩道題就這樣吧,咱要是看不懂也不能挺著,評(píng)論區(qū)直接說(shuō),小白嘛,該問(wèn)問(wèn),但不能做“伸手黨”
#include <stdio.h>int main() {printf(" ** \n");printf(" ** \n");printf("************\n");printf("************\n");printf(" * * \n");printf(" * * \n");return 0; }基本類(lèi)型
前十三道題考驗(yàn)輸入和輸出函數(shù)的掌握程度昂,需要注意的是輸出時(shí),如果需要控制浮點(diǎn)數(shù),也就是小數(shù),在小數(shù)點(diǎn)后面有幾位時(shí),在 f\lf?前面加上位數(shù)。比如我想輸出3.14,就這樣。
%.2lf? ?\? ?%.2f
要是想四舍五入就直接 .0 就好。這里提倡一點(diǎn),最好不要去深究float和double的區(qū)別,不知道用哪個(gè)就double就行,如果鉆牛角尖的話(huà)可能會(huì)打消學(xué)習(xí)積極性(純個(gè)人看法),后期可以了解下,我也會(huì)出相應(yīng)文章供大家觀賞。
整形的輸入和輸出有著屬于他自己特殊的地方,輸入時(shí)在 d 前面加上正整數(shù)表示讀取幾個(gè)數(shù),輸出時(shí)也是在 d 前面加上零和正整數(shù)表示輸出幾個(gè)數(shù),不夠用零補(bǔ)齊,如下
scanf("%4d",&a);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? printf("%06d",a);
還有一個(gè)可以加的地方就是 %d 前面(這里用%d舉例,適用于全部)比如這樣
("體重是:%d",a);
這樣輸出的內(nèi)容就是:體重是:a 了,比較自由,大家自行體會(huì)。
第十四題有一個(gè)點(diǎn)就比較有意思哈哈哈哈,他是一個(gè)數(shù)字交換,就像把一瓶醋和一瓶醬油交換一下里面的液體一樣,但是我當(dāng)初想的是直接 a=b,b=a 不就行了嗎,后來(lái)實(shí)踐才知道,所以實(shí)踐還是很重要的,哈哈哈哈還很單純。
第十五題就要重點(diǎn)講下了
1.題目要求多數(shù)輸入,什么意思呢?就是要一直輸入,出對(duì)應(yīng)結(jié)果,不是輸入一次就完事了。這里一般都是用while循環(huán),如下
//第一種寫(xiě)法
while(~scanf("%d",&a))
//第二種寫(xiě)法
while(scanf("%d",&a) != EOF)
這里解釋下為什么
while這個(gè)函數(shù)是在括號(hào)里的數(shù)非零或者滿(mǎn)足括號(hào)內(nèi)條件時(shí)執(zhí)行,而scanf這個(gè)函數(shù)也是有返回值的,返回值為 0 表示未分配任何字段。對(duì)于錯(cuò)誤,或者在第一次嘗試讀取字符時(shí)遇到文件結(jié)尾字符或字符串結(jié)尾字符,則返回值為 EOF,相信讀到這個(gè),大家已經(jīng)明白了第二個(gè),這里再說(shuō)下第一個(gè),~ 這個(gè)符號(hào):按位補(bǔ)集(或按位補(bǔ)碼)運(yùn)算符生成其操作數(shù)的按位補(bǔ)集。操作數(shù)必須是整數(shù)類(lèi)型。此運(yùn)算符執(zhí)行常規(guī)的算術(shù)轉(zhuǎn)換;結(jié)果具有轉(zhuǎn)換后操作數(shù)的類(lèi)型。咱們想要他停下來(lái),所以必須要輸入,這里告訴大家EOF就是 -1 :
原碼是10000000000000000000000000000001
反碼是11111111111111111111111111111110
補(bǔ)碼是11111111111111111111111111111111
按位取反之后就是全零,全零就是十進(jìn)制零,返回給while就停止了
(vs想要停下來(lái)是輸入一個(gè)ctrl+z換行,持續(xù)三次)
部分節(jié)選自MSDN
2.既然知道,那怎么大小寫(xiě)轉(zhuǎn)換呢,還是需要借助ASCII表(表請(qǐng)大家自行查閱),通過(guò)觀察我們發(fā)現(xiàn),大寫(xiě)字母于小寫(xiě)字母之間相差32,所以直接加上32(大轉(zhuǎn)小)或者減32(小轉(zhuǎn)大)就行,在輸出的時(shí)候。
3.好,我上面的都做到了,怎么還是錯(cuò)啊,輸出的時(shí)候總是帶個(gè) * ???新機(jī)詞挖一此莫禾多此!
那就是我們一直忽略的回車(chē),回車(chē)是 \n 對(duì)應(yīng)ASCII表里26,加上32是58,正好就是 * !那要怎么辦呢,這里介紹一個(gè)新函數(shù):getchar()和putchar() 他們分別對(duì)應(yīng)讀取數(shù)據(jù)和輸出數(shù)據(jù),所以如下,大家自行感悟,歡迎評(píng)論區(qū)討論
#include <stdio.h> int main() {int a = 0;while((a = getchar()) != EOF){getchar();putchar(a+32);printf("\n");}return 0; }輸出格式化
總共五道題。一道一道來(lái)。
第一道:我忘了說(shuō)沒(méi)說(shuō)過(guò)進(jìn)制,這里再說(shuō)下。二進(jìn)制只有數(shù)字0和1,八進(jìn)制用的少,十進(jìn)制是0到9,十六進(jìn)制是0到9再往后是a到f,二進(jìn)制是逢二進(jìn)一,就是一旦有一位超過(guò)二,就往前在加一位,以此類(lèi)推(這里就是通俗說(shuō)下,大概明白就能做這道題,想了解更細(xì)致一點(diǎn)在本網(wǎng)站直接搜“進(jìn)制”就ok了)。他想把十六進(jìn)制整數(shù)ABCDEF轉(zhuǎn)換成十進(jìn)制數(shù),然而十六進(jìn)制數(shù)通常寫(xiě)法是在前面加上0x? 注意看輸出要求,要求15域?qū)?#xff0c;域?qū)捑褪禽敵鰰r(shí)的間隔(為了好看點(diǎn)),控制域?qū)捠窃赿前面加上對(duì)應(yīng)要求,總結(jié)后應(yīng)輸出:
printf("%15d",0xABCDEF);
第二道:大家看到字多的千萬(wàn)不要慌啊,我門(mén)大意都下題之后知道,也是一個(gè)簡(jiǎn)簡(jiǎn)單單的進(jìn)制轉(zhuǎn)換,牛客網(wǎng)也很貼心,備注了想要輸出他想要的應(yīng)該怎么做,所以就簡(jiǎn)潔明了了。
printf("%#o %#X",1234,1234);
第三道:這道題沒(méi)啥難點(diǎn),好好理解過(guò)基礎(chǔ)知識(shí)的應(yīng)該都能做出來(lái)。
第四道:只需要輸出時(shí)注意空格個(gè)數(shù)就好。
第五道:只需要把輸入時(shí)的d改成他備注的x和o就行,加的時(shí)候不要多想,他還是以十進(jìn)制輸出(%d)。
基本運(yùn)算符
敬請(qǐng)期待~
運(yùn)算
敬請(qǐng)期待~
分支控制
敬請(qǐng)期待~
循環(huán)控制
敬請(qǐng)期待~
循環(huán)輸出圖形
敬請(qǐng)期待~
一維數(shù)組
敬請(qǐng)期待~
二維數(shù)組
敬請(qǐng)期待~
字符/字符數(shù)組
敬請(qǐng)期待~
函數(shù)
敬請(qǐng)期待~
遞歸函數(shù)
敬請(qǐng)期待~
總結(jié)
以上是生活随笔為你收集整理的超适合初学者刷的170道C基础编程题 选自牛客网 个人超详细解析(有彩蛋哟~)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 字体测试
- 下一篇: Python 读取 16通道tif并转为