日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

鹏哥手把手带我刷好题 · 编程练习 · I

發(fā)布時間:2024/3/13 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 鹏哥手把手带我刷好题 · 编程练习 · I 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

大家好,我是安然無虞。?

目錄

在線OJ

<1>.什么是在線OJ

<2>.為什么訓(xùn)練在線OJ

1.實(shí)踐出真知

2.我是大V

3.有容乃大

4.縮短二進(jìn)制

5.反向輸出一個四位數(shù)

6.大小寫轉(zhuǎn)換

補(bǔ)充1:getchar()

補(bǔ)充2:輸入緩沖區(qū)

7.小飛機(jī)

8.十六進(jìn)制轉(zhuǎn)十進(jìn)制

9.printf的返回值

10.學(xué)生基本信息輸入輸出

結(jié)語:遇見安然遇見你,不負(fù)代碼不負(fù)卿。


【前言】

其實(shí)這個在大一下學(xué)期的時候就已經(jīng)刷完了,但是最近看鵬哥講解的時候發(fā)現(xiàn)自己很多答案寫的都很繁瑣,再加上有段時間沒寫代碼了,所以趁著假期利用幾天時間二刷調(diào)整一下狀態(tài),再將每一道題整理在博客中,可能前面會很簡單,后面會慢慢提升難度的哦,廢話不多說,直接進(jìn)入主題。

【聲明】

前面題目很簡單,非初學(xué)者勿看。?

在線OJ

<1>.什么是在線OJ

OJ-在線判題系統(tǒng)(英語:online Judge,縮寫OJ)是一種在編程競賽中用來測試競賽程序的在線系統(tǒng),也可以用于平時練習(xí)。

<2>.為什么訓(xùn)練在線OJ

a.有一些比賽,比如:NOI、NOIP、ACM之類的編程競賽都是采用在線OJ的方式進(jìn)行;

b.現(xiàn)在IT大學(xué)生就業(yè)找工作的筆試環(huán)節(jié)也采用在線OJ的方式進(jìn)行(筆試OJ化,這是未來的趨勢)


好了,想必大家或多或少都接觸過一些,在這里就不過多介紹咯,直接進(jìn)入題目啦。

1.實(shí)踐出真知

原題鏈接:實(shí)踐出真知_牛客題霸_牛客網(wǎng)

題目描述:?

代碼執(zhí)行:

//寫主函數(shù) //main函數(shù)是程序的入口 - 代碼是從main函數(shù)的第一行開始執(zhí)行的! //一個工程中有且僅有一個main函數(shù) #include<stdio.h> int main() {printf("Practice makes perfect!\n");return 0; }

2.我是大V

原題鏈接:我是大V_牛客題霸_牛客網(wǎng)?

題目描述:

代碼執(zhí)行:

代碼1:

#include<stdio.h>int main() {printf("v v\n");//'\n'- 換行printf(" v v\n");printf(" v\n");return 0; }

代碼2:

#include<stdio.h>int main() {printf("v v\n v v\n v\n");//'\n'- 換行return 0; }

3.有容乃大

原題鏈接:有容乃大_牛客題霸_牛客網(wǎng)

題目描述:?

代碼執(zhí)行:

#include<stdio.h> int main() {printf("The size of short is %d bytes.\n", sizeof(short));printf("The size of int is %d bytes.\n", sizeof(int));printf("The size of long is %d bytes.\n", sizeof(long));printf("The size of long long is %d bytes.\n", sizeof(long long));return 0; }//sizeof是一個C語言中的操作符,是用來計(jì)算變量或者類型所占空間類型大小的,單位是字節(jié) //C語言標(biāo)準(zhǔn)規(guī)定:sizeof(long long)>=sizeof(long)>=sizeof(int)

4.縮短二進(jìn)制

原題鏈接:縮短二進(jìn)制_牛客題霸_牛客網(wǎng)?

題目描述:

代碼執(zhí)行:

代碼1:

#include<stdio.h> int main() {printf("0%o 0X%X",1234,1234);return 0; }

?注意:

printf可以使用使用格式控制串“%o”、“%X”分別輸出八進(jìn)制整數(shù)和十六進(jìn)制整數(shù),并使用修飾符“#”控制前導(dǎo)顯示

代碼2:

#include<stdio.h> int main() {printf("%#o %#X",1234,1234);return 0; }

5.反向輸出一個四位數(shù)

原題鏈接:反向輸出一個四位數(shù)_牛客題霸_牛客網(wǎng)

題目描述:

示例:

輸入:1234 輸出:4321

代碼執(zhí)行:

#include<stdio.h>int main() {int n = 0;//輸入scanf("%d", &n);//1234//輸出//1234%10=4//1234/10=123//123%10=3//123/10=12//12%10=2//12/10=1//1%10=1//1/10=0//從上面步驟可知:重復(fù)模10除10的操作,所以可以寫成循環(huán)的形式while (n){printf("%d", n % 10);n /= 10;}return 0; }

6.大小寫轉(zhuǎn)換

原題鏈接:大小寫轉(zhuǎn)換_牛客題霸_牛客網(wǎng)

在講解本題之前先補(bǔ)充兩個概念:

補(bǔ)充1:getchar()

函數(shù)原型:

int getchar(void)

功能:?

在標(biāo)準(zhǔn)輸入緩沖區(qū)中讀取一個字符,返回讀到的字符的ASCII碼值,如果讀取失敗,則返回EOF(-1)

問:為什么getchar()返回的是字符的ASCII碼值?函數(shù)返回值為什么要放到一個int類型的變量中呢?不是應(yīng)該放在一個char類型的變量中嗎?

如:

int ch = 0; ch = getchar();

答:?

  • getchar()返回了字符的ASCII碼值,ASCII碼值是整數(shù),存放在整型變量中沒有任何問題;
  • 這一點(diǎn)也是最重要的一點(diǎn),getchar()讀取失敗的時候返回EOF,EOF本質(zhì)是-1(#define EOF -1),是一個整型值,在一個char類型中,是存儲不下的;
  • 再結(jié)合getchat()函數(shù)的原型,getchar()的返回類型被定義為int, 那么返回?cái)?shù)據(jù)應(yīng)該被存放在int變量中

getchar(): 獲取/輸入一個字符;

putchar(): 輸出一個字符

注意哦,這兩個函數(shù)一次只能操作一個字符,沒有scanf(),printf()功能齊全?

補(bǔ)充2:輸入緩沖區(qū)

引入:

#include<stdio.h>int main() {char input[20] = { 0 };printf("請輸入密碼:>");scanf("%s", input);//輸入abcdef最后加上一個\nprintf("請確認(rèn)密碼:(Y / N):>");int ch = getchar();if (ch == 'Y'){printf("確認(rèn)成功\n");}else{printf("確認(rèn)失敗\n");}return 0; }

此時輸入緩沖區(qū)中放的是abcdef\n,scanf()函數(shù)將abcdef讀走了,留下了一個\n,所以\n直接被getchar()讀取,所以此時ch里面放的是\n,后面不會等到我們確認(rèn)密碼就直接輸出確認(rèn)失敗了。?

存在的問題:本題輸入abcdef,然后按回車鍵,還沒有等到我們輸入字符(Y/ N)就直接輸出“確認(rèn)失敗”了,那怎么改才能成為我們想要的呢?

在scanf()下面加上一條語句:getchar();目的只有一個,拿走回車鍵('\n')

存在的問題:這樣改只能保證輸入“abcdef”時可以正常執(zhí)行,但如果輸入的是"abcdef hehe"時又會直接輸出“確認(rèn)失敗”了,不信你看...?

我丟,這什么鬼,怎么又錯了!?

注意:

scanf("%s", ...); //scanf()讀取字符串的時候遇到空格時就停下來不再讀取了?

分析上段代碼:

#include<stdio.h>int main() {char input[20] = { 0 };printf("請輸入密碼:>");scanf("%s", input);//scanf()只讀取了"abcdef"getchar();//getchar()讀取了一個空格,所以這里就有問題了,這里的getchar()只能拿走一個字符,我們想要的是它能將緩沖區(qū)//里剩下字符全部拿走,直至拿走'\n'printf("請確認(rèn)密碼:(Y / N):>");int ch = getchar();if (ch == 'Y'){printf("確認(rèn)成功\n");}else{printf("確認(rèn)失敗\n");}return 0; }

是呀,這里的getchar()只能拿走一個字符,我們想要的是它能將緩沖區(qū)里剩下的全部拿走,直至拿走'\n',該怎么改?

#include<stdio.h>int main() {char input[20] = { 0 };printf("請輸入密碼:>");scanf("%s", input);//scanf()只讀取了"abcdef"//清理緩沖區(qū)int tmp = 0;while ((tmp = getchar()) != '\n'){;//空語句,什么事都不干,拿字符就行了}printf("請確認(rèn)密碼:(Y / N):>");int ch = getchar();if (ch == 'Y'){printf("確認(rèn)成功\n");}else{printf("確認(rèn)失敗\n");}return 0; }

?

這樣就可以了,注意實(shí)現(xiàn)上面清理緩沖區(qū)的功能哦。?好,那么現(xiàn)在開始講解本題。

題目描述:

示例:

輸入:AB 輸出:ab

代碼執(zhí)行:

#include<stdio.h>int main() {//EOF - end of file - 文件結(jié)束標(biāo)志 - 通常是放在文件的末尾int ch = 0;while((ch=getchar())!=EOF){printf("%c\n", ch+32);//小寫字母的ASCII值比大寫字母的大32getchar();//讀取輸入緩沖區(qū)中的\n}return 0; }

7.小飛機(jī)

原題鏈接:小飛機(jī)_牛客題霸_牛客網(wǎng)

題目描述:

代碼執(zhí)行:

//本題考查的是printf() #include<stdio.h> int main() {printf(" ** \n");printf(" ** \n");printf("************\n");printf("************\n");printf(" * * \n");printf(" * * \n");return 0; }

8.十六進(jìn)制轉(zhuǎn)十進(jìn)制

原題鏈接:十六進(jìn)制轉(zhuǎn)十進(jìn)制_牛客題霸_牛客網(wǎng)

題目描述:

注意:

printf可以使用使用格式控制串“%md”輸出域?qū)挒閙的十進(jìn)制整數(shù)。

代碼執(zhí)行:

#include<stdio.h> int main() {printf("%15d\n",0XABCDEF);return 0; }

9.printf的返回值

原題鏈接:printf的返回值_牛客題霸_牛客網(wǎng)

函數(shù)原型:

int printf( const char *format [, argument]... );

?返回值:

引入一道筆試題:

#include<stdio.h>int main() {printf("%d", printf("%d", printf("%d", 43)));return 0; }

屏幕上打印的是:4321

為什么呢?

因?yàn)閜rintf()函數(shù)的返回值是打印在屏幕上字符的個數(shù)。

好,現(xiàn)在進(jìn)入題目。

題目描述:

代碼執(zhí)行:

代碼1:

#include<stdio.h> int main() {int ret=printf("Hello world!");putchar('\n');printf("%d",ret);return 0; }

其實(shí)一行就解決了:

代碼2:

#include<stdio.h>int main() {printf("\n%d\n", printf("Hello world!"));return 0; }

10.學(xué)生基本信息輸入輸出

原題鏈接:學(xué)生基本信息輸入輸出_牛客題霸_牛客網(wǎng)

題目描述:

示例:

輸入:17140216;80.845,90.55,100.00 輸出:The each subject score of No. 17140216 is 80.85, 90.55, 100.00.

注意:小數(shù)在內(nèi)存中可能不能精確保存,float和double精度不一樣,一旦四舍五入,得到的結(jié)果可能就有差異。?

代碼執(zhí)行:

#include<stdio.h> int main() {int id = 0;//學(xué)號float c_score = 0.0;float math_score = 0.0;float eng_score = 0.0;//輸入scanf("%d;%f,%f,%f", &id,&c_score,&math_score,&eng_score);//輸出printf("The each subject score of No. %d is %.2f, %.2f, %.2f.", id,c_score,math_score,eng_score);return 0; }

結(jié)語:遇見安然遇見你,不負(fù)代碼不負(fù)卿。

求求了,來個三連吧。

總結(jié)

以上是生活随笔為你收集整理的鹏哥手把手带我刷好题 · 编程练习 · I的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。