




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
莁袈螇芁芇袇袀肄薅袆羂艿薁袅膄肂蒇袄袄莇莃袃羆膀蚂袃肈莆薈袂膁膈蒄羁袀莄莀薇羃膇芆薇肅莂蚅薆袅膅薁薅羇蒁蒇薄聿芃莃薃膂肆蚁薂袁节薇蚁羄肄蒃蚁肆芀荿蚀螆肃莅虿羈莈蚄蚈肀膁薀蚇膂莆蒆蚆袂腿莂蚅羄莅芈螅肇膈薆螄螆莃蒂螃衿膆蒈螂肁蒁莄螁膃芄蚃螀袃肇蕿蝿羅节蒅蝿肈肅莁袈螇芁芇袇袀肄薅袆羂艿薁袅膄肂蒇袄袄莇莃袃羆膀蚂袃肈莆薈袂膁膈蒄羁袀莄莀薇羃膇芆薇肅莂蚅薆袅膅薁薅羇蒁蒇薄聿芃莃薃膂肆蚁薂袁节薇蚁羄肄蒃蚁肆芀荿蚀螆肃莅虿羈莈蚄蚈肀膁薀蚇膂莆蒆蚆袂腿莂蚅羄莅芈螅肇膈薆螄螆莃蒂螃衿膆蒈螂肁蒁莄螁膃芄蚃螀袃肇蕿蝿羅节蒅蝿肈肅莁袈螇芁芇袇袀肄薅袆羂艿薁袅膄肂蒇袄袄莇莃袃羆膀蚂袃肈莆薈袂膁膈蒄羁袀莄莀薇羃膇芆薇肅莂蚅薆袅膅薁薅羇蒁蒇薄聿芃莃薃膂肆蚁薂袁节薇蚁羄肄蒃蚁肆芀荿蚀螆肃莅虿羈莈蚄蚈肀膁薀蚇膂莆蒆蚆袂腿莂蚅羄莅芈螅肇膈薆螄螆莃蒂螃衿膆蒈螂肁蒁莄螁膃芄蚃螀袃肇蕿蝿羅节蒅蝿肈肅莁袈螇芁芇袇袀肄薅袆羂艿薁袅膄肂蒇袄袄莇莃袃羆膀蚂袃肈莆薈袂膁膈蒄羁袀 第5章函數與函數庫1. 設計一個函數,可以將一個數的質因數印出來。如12=2*2*3、36=2*2*3*3、47=47等。(提示:假設此數為n,以n為被除數,2n為除數相除之,如果其中有一個數m可以整除n,則表示m是n的質因數,將它印出來。接著將n/=m,繼續從2開始除到n,直到找到可以整除的數為止。如此重複上面的過程,如果除數已經和被除數相等時(m=n),表示已經沒有別的數可以整除它了,就結束程式。)#include void main()int m,n;cout n;cout n = ;for (m=2;m=n;m+)if (n%m=0)cout m;n/=m;if (n!=1) cout * ;m-;2. 設計一個函數,可以將一個十進位的數轉換成二進位的數。(提示:十進位換算為二進位可以用除法來計算,例如19換算為二進位的過程如下:2 19 餘1由下往上取餘數2 9 餘12 4 餘02 2 餘0 1由下往上取餘數,結果:10011)#include void main()int n, f50, i=0;cout n;cout 此數的二進位為:;while (n!=0)fi+=n%2;n/=2;while (i!=0)cout f-i;3. 利用亂數函數產生兩個100以內的數,讓使用者心算並輸入答案,答對的話顯示好棒!答對了!,答錯則顯示錯了喔!,並告知答案。總共出10題,每題10分,當10題都答完後,統計並顯示其得分。(提示:產生100以內的亂數,可以將產生出來的亂數除以100取餘數,如:r=rand()%100)#include #include #include void main()int q1, q2, ans;int i, score=0;srand(unsigned)time(NULL);for (i=0;i10;i+)q1=rand()%100;q2=rand()%100;cout 第 i+1 題: q1 + q2 ans;if(ans=q1+q2)cout 好棒!答對了! endl;score+=10; else cout 錯了喔!答案是: q1+q2 endl;cout n總共答對 score/10 題, ;cout 總分 : score endl;4. 將範例05-03-05的替換字串功能改為替換不同長度的字串,應該如何設計?(提示:宣告另一個新的字元陣列D來儲存替換後的新字串。利用strstr函數找尋A字串中包含B字串的位址,將此位址減去A字串起頭位址(也就是A陣列的起始位址),便可知道前面有幾個字元是不包含B字串的,將它們全部複製到D字串,並將C字串接在後面。例如:#include #include void main()char source50, replaced20, inserted20, destination100;char *start;int p=0,i=0;cout 請輸入一個字串(句子;例如: I am a good man.):;cin.getline(source,50);cout 請輸入欲置換的字串(例如: good):;cin.getline(replaced,20);cout 請輸入欲插入的字串(例如: bad):;cin.getline(inserted,20);if (start = strstr(source, replaced)while (pstart-source)destinationp=sourcep;p+;while (insertedi!=0)destinationp+=insertedi+;i=start-source+strlen(replaced);while (sourcei!=0)destinationp+=sourcei+;destinationp=0;cout 置換後的字串: destination endl; else cout 找不到欲置換的字串!n;5. 設計一個程式可以檢查身分證字號的正確性。檢查號碼的規則如下:A1N1N2N3N4N5N6N7N8N91代表男性2代表女性英文字母檢查號碼(1) 字母1對應到一個兩位數的代號,請查下表:字母ABCDEFGHJKLMNPQRSTUVXYWZ代號101112131415161718192021222324252627282930313233令其代號之十位數為X1,個位數為X2,例如Y的代號31,X1=3,X2=1(2) 計算公式為:Y=X1+9X2+8A1+7A2+6A3+5A4+4A5+3A6+2A7+A8+A9如果Y可以被10整除則此身分證號碼是對的,否則是錯的。(提示:宣告陣列儲存字母代號,依照規則(1)的方式轉換字母為代號及X1和X2(使用轉換函數),再檢查規則(2)。)#include void main()char id11;char no26=10,11,12,13,14,15,16,17,0,18,19,20,21,22,0,23,24,25,26,27,28,29,32,30,31,33;int value11;int y=0;cout id;value0=(noid0-65)/10;value1=(noid0-65)%10;for (int i=1;i=9;i+)valuei+1=idi-48;/calculatingfor (i=1;i10;i+)y += valuei*(10-i);y += (value0+value10);cout y= y endl;if (y%10=0) cout 身分證字號驗證正確!n;else cout 身分證驗證錯誤!n;6. 設計一個可以利用亂數函數產生樂透彩六個號碼的程式。輸入欲產生142之間亂數的個數N,程式則產生這N個數中出現次數最多次的前六個號碼。例如N=10000,則程式產生10000個142之間的亂數,並統計各個號碼出現的次數,最後找出出現最多次的前六個號碼。(提示:宣告一個大小為42的陣列,用來累計42個號碼出現的次數,再利用for迴圈搜尋這個陣列裡前六個最大的數,將記錄該最大數的陣列索引(index)加1後輸出即可。)#include #include #include #include void main()long n6,s,count42;long i=0,j;for (int k=0;k42;k+) countk=0;srand(unsigned) time(NULL);int t=0;cout t;for (int m=0;mt;m+)while(i6)rerand:s=rand()%42+1;for (j=0;ji;j+)if (s=nj) goto rerand;ni=s;i+;for (i=0;i6;i+)countni-1+;ni=0;i=0;for (i=0;i42;i+)cout n= i+1 出現 counti 次t;if (i+1)%3=0) cout n;long max,c;for (i=0;i6;i+)max=0;c=0;for (j=0;jmax) max=countj;c=j;cout 出現第 i+1 高的是 = c+1 endl;countc=0;_getche();7. 利用printf函數列印一張九九乘法表,其對齊格式如下:234567892468101214161836912151821242748121620242832365101520253035404561218243036424854714212835424956638162432404856647291827364554636481(提示:使用一個for巢狀迴圈,外圈是29,內圈也是29。至於對齊的方法可以使用printf函數,並指定列印整數的格式為%3d。)#include void main()int i,j;printf( x |);for (i=2;i=9;i+) printf(%3d,i);printf(n-+-n);for (i=2;i=9;i+)printf(%3d |,i);for (j=2;j=9;j+)printf(%3d,i*j);printf(n);8. 同6.,但改為十六進位的乘法表,橫向和縱向皆從1到F,中間的結果也是用十六進位表示。(提示:寫法同第6題,但外圈是115,內圈也是115。計算結果轉換成十六進位的表示法即可。)#include void main()char a17=0123456789ABCDEF;int i,j;printf( x |);for (i=1;i=15;i+) printf(%3c,ai);printf(n-+-n);for (i=1;i=15;i+)printf(%3c |,ai);for (j=1;j=15;j+)printf(%3x,i*j);printf(n);9. 設計一個程式,將輸入的阿拉伯數字轉換為中文大寫表示法,如:1234轉換為壹仟貳佰參拾肆。(提示:將阿拉伯數字自右而左每四個數字分成一組,將每一組先轉換成?仟?佰?拾?,再將每一組組合起來,除了第一組以外,中間依序插入萬、億、兆。)#include #include #include void main()char num103=零,壹,貳,參,肆,伍,陸,柒,捌,玖;char ch33=仟,佰,拾;char wan33=兆,億,萬;int i, j, len, group, start, digit, c=0, flag=0;char n20;cout 請輸入一個正整數( n;len = strlen(n);if (len16) cout 長度超過16位數, 無法轉換.n;exit(0);group=(len-1)/4+1;cout 轉換後.n;for(i=0;igroup;i+)flag=0;if (i=0) start=(4-len%4)%4;else start=0;for (j=start;j4;j+)digit=nc+-48;if(digit=0) continue;cout numdigit;if(j!=3) cout chj;flag=1;if (group!=1 & i!=group-1 & flag!=0)cout wan4-group+i; 羅肁膈蚃螇羇膇螆肃芅膆蒅袆膁膅薈肁肇膅蚀袄羃芄螂蚇节芃蒂袂膈节薄蚅膄芁螆羁肀芀蒆螃羆芀薈罿芄艿蚁螂膀芈螃羇肆莇蒃螀羂莆薅羅袈莅蚇螈芇莄蒇肄膃莄蕿袇聿莃蚂肂羅莂螄袅芃莁蒄蚈腿蒀薆袃肅葿蚈蚆羁蒈莈袁羇蒈薀蚄芆蒇蚂羀膂蒆螅螂肈蒅蒄羈羄蒄薇螁芃薃虿羆腿薂螁蝿肅薂蒁羅肁膈蚃螇羇膇螆肃芅膆蒅袆膁膅薈肁肇膅蚀袄羃芄螂蚇节芃蒂袂膈节薄蚅膄芁
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 夜场水果供应商合同协议
- 加盟饭店转让合同协议书
- 公寓房产互换协议书范本
- 农村老房子重建合同范本
- 双方店铺合作经营协议书
- dr戒指真爱协议书模板
- 合作合同商铺协议书模板
- 卫浴买卖合同协议书范本
- 商铺转让提前续租协议书
- 住宅无偿提供使用协议书
- 中华人民共和国治安管理处罚法2025修订版测试题及答案
- 新学期教学工作会议上校长讲话:把功夫下在课堂里把心思放在学生上把质量落到细节中
- DB42T 1655-2021 湖北省建设项目文物影响评估报告编制规范
- 湖北群艺积分制管理操作流程
- GB/T 4883-2008数据的统计处理和解释正态样本离群值的判断和处理
- GB/T 4213-2008气动调节阀
- GB/T 30230-2013运动水壶的安全要求
- GB/T 24267-2009建筑用阻燃密封胶
- GB/T 14842-2007铌及铌合金棒材
- 2021年安徽省初中学业水平考试语文试卷及答案
- 目标管理与执行力培训课件
评论
0/150
提交评论