freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c程序設(shè)計(jì)語言習(xí)題答案(編輯修改稿)

2024-07-22 15:46 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 in(){ string ss。 cout 輸入一字符串: endl。 cin ss。 int i = ()。 ff(ss, i)。 cout endl。 system(pause)。 return 0。}3. 編寫一個(gè)與C標(biāo)準(zhǔn)庫printf函數(shù)功能相同的自己的My_printf函數(shù)。include iostreaminclude cstdlibinclude cstdarginclude cstringinclude using namespace std。int My_printf(const char* format,...) { if(format == NULL) return 1。 int n = 0。 va_list marker。 va_start(marker, format)。 for(int i = 0。 。 i++) { char c = format[i]。 if(c == 39。\039。) goto end。 else if(c == 39。%39。) { i++。 c = format[i]。 int d,m。 char* pc。 switch(c){ case 39。s39。 : pc = va_arg(marker, char*)。 if(pc != NULL){ for(int j = 0。 。 j++){ c = pc[j]。 if(c == 39。\039。) break。 putch(c)。 n++。 } } else {//如果對(duì)于%s的實(shí)參是空串,將打印輸出(null) cout(null)endl。 n += 6。 } break。 case 39。c39。 : c = va_arg(marker, char)。 putch(c)。 n++。 break。 case 39。d39。 : d = va_arg(marker, int)。 char buf[32]。 buf[31] = 39。\039。 itoa(d, buf, 10)。 m = (int)strlen(buf)。 for(int j = 0。 j m。 j++) putch(buf[j])。 n += m。 break。 default : putch(39。%39。)。 putch(c)。 c += 2。 break。 } } else { putch(c)。 n++。 } }end: va_end(marker)。 return n。}int main(){ int n。 n = My_printf (test)。 cout\tnendl。 n = My_printf (Strin%c, 39。g39。)。 cout\tnendl。 n = My_printf (S%s, tudent)。 cout\tnendl。 n = My_printf (%d%c%c%d%s, 2, 39。039。,39。139。, 2 , year)。 cout\tnendl。 system(pause)。 return 0。}4. 采用函數(shù)過載機(jī)制,編寫能進(jìn)行兩個(gè)整數(shù)、浮點(diǎn)數(shù)的相加及兩個(gè)字符串連接的一組過載函數(shù)。include iostreaminclude string using namespace std。void sum( string ss1, string ss2){ string ss3 = ss1 + ss2。 cout 字符串 ss1 和 ss2 相加得 ss3。 cout endl。}void sum( float ff1, float ff2){ float ff3 = ff1 + ff2。 cout 浮點(diǎn)數(shù) ff1 和 ff2 相加得 ff3。 cout endl。}void sum( int ii1, int ii2){ int ii3 = ii1 + ii2。 cout 整數(shù) ii1 和 ii2 相加得 ii3。 cout endl。}int main(){ string ss1, ss2。 cout 輸入兩個(gè)字符串 endl。 cin ss1 ss2。 int ii1, ii2。 cout 輸入兩個(gè)整數(shù): endl。 cin ii1 ii2。 float ff1, ff2。 cout 輸入兩個(gè)浮點(diǎn)數(shù): endl。 cin ff1 ff2。 sum(ss1, ss2)。 sum(ff1, ff2)。 sum(ii1, ii2)。 system(pause)。 return 0。}5. 采用函數(shù)參數(shù)缺省值機(jī)制,編寫能分別打印輸出十進(jìn)制((默認(rèn))、八進(jìn)制和十六進(jìn)制數(shù)的函數(shù)。include iostreamusing namespace std。void output( int value, int base = 10 ){ switch( base ){ case 10: cout value 十進(jìn)制是: value endl。 break。 case 8: cout value 八進(jìn)制是: oct value endl。 break。 case 16: cout value 十六進(jìn)制是: hex value endl。 break。 default: cout 輸入錯(cuò)誤 endl。 }}int main(){ int ii。 cout 輸入您想打印的數(shù): endl。 cin ii。 cout 您是否采用默認(rèn)進(jìn)制(10)?Y / N endl。 char j。 cin j。 int jz。 if( j == 39。N39。 || j == 39。n39。 ){ cout 輸入您的進(jìn)制,10 或者16 : endl。 cin jz。 output( ii, jz )。 } else { output( ii )。 } system(pause)。 return 0。}第七章 練習(xí)題:1. 簡(jiǎn)述Using聲明與Using指令的區(qū)別。答:Using 聲明是將某一名字空間中的名字引入(Introduce)到一個(gè)局部范圍內(nèi),使其名字在該范圍內(nèi)無需名字空間的約束便可見、可用。而Using指令是將特定名字空間中的所有名字引入到一作用域內(nèi)。2. 采用模塊化及結(jié)構(gòu)化異常處理機(jī)制進(jìn)行小型桌面計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)。include iostreaminclude stringinclude mapinclude cctypeusing namespace std。mapstring,double table。 //符號(hào)表namespace Lexer { //詞法分析模塊 enum Token_value { NAME,NUMBER,END,PLUS=39。+39。,MINUS=39。39。,MUL=39。*39。,DIV=39。/39。, PRINT=39。39。,ASSIGN=39。=39。,LP=39。(39。,RP=39。)39。 }。 //枚舉類型,枚舉語言中的終結(jié)符 Token_value curr_tok=PRINT。 double number_value。 string string_value。 Token_value get_token()。}namespace Error { //錯(cuò)誤處理模塊 struct Zero_divide{ }。 struct Syntax_error{ const char* p。 Syntax_error(const char* q) {p=q。}}。}namespace Parser{ //語法分析模塊 double expr(bool get)。 double term(bool get)。 double prim(bool get)。 using namespace Lexer。 using namespace Error。}namespace Driver{ //驅(qū)動(dòng)模塊 int no_of_errors。 std::istream* input。 void skip()。}Lexer::Token_value Lexer::get_token() { //Lexer模塊的get_token實(shí)現(xiàn) char ch。 cinch。 switch(ch){ case 39。39。: return curr_tok=END。 case 39。39。: case 39。*39。: case 39。/39。: case 39。+39。: case 39。39。: case 39。(39。: case 39。)39。: case 39。=39。: return curr_tok=Token_value(ch)。 case 39。039。: case 39。139。: case 39。239。: case 39。339。: case 39。439。: case 39。539。: case 39。639。: case 39。739。: case 39。839。: case 39。939。: case 39。.39。: (ch)。 cinnumber_value。 return curr_tok=NUMBER。 default: if(isalpha(ch)){ (ch)。 cinstring_value。 return curr_tok=NAME。 } throw Error::Syntax_error(bad token)。 return curr_tok=PRINT。 }}double Parser::expr(bool get){ //Parser模塊的expr實(shí)現(xiàn) using namespace Lexer。 double left=term(get)。 for(。) switch(curr_tok) { case PLUS: left+=term(true)。 break。 case MINUS: left=term(true)。 break。 default: return left。 }}double Parser::term(bool get){ //Parser模塊的term實(shí)現(xiàn) using namespace Lexer。 double left=prim(get)。 for(。) switch(curr_tok){ case MUL: left*=prim(true)。 break。 case DIV: if(double d=prim(true)){ left/=d。 break。 } throw Error::Zero_divide()。 default : return left。 }}double Parser::prim(bool get){ //Parser模塊的prim實(shí)現(xiàn) using namespace Lexer。 if(get) get_token()。 switch(curr_tok) { case NUMBER: { double v=number_value。 get_token()。 return v。 } case NAME: { doubleamp。 v=table[string_value]。 if(get_token()==ASSIGN) v=expr(true)。 return v。 } case MINUS: return prim(true)。 case LP: { doub
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1