華南理工2017《高級(jí)語言程序設(shè)計(jì)C++》平時(shí)作業(yè)_第1頁
華南理工2017《高級(jí)語言程序設(shè)計(jì)C++》平時(shí)作業(yè)_第2頁
華南理工2017《高級(jí)語言程序設(shè)計(jì)C++》平時(shí)作業(yè)_第3頁
華南理工2017《高級(jí)語言程序設(shè)計(jì)C++》平時(shí)作業(yè)_第4頁
華南理工2017《高級(jí)語言程序設(shè)計(jì)C++》平時(shí)作業(yè)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、一、分析程序,寫輸出結(jié)果1 #include<iostream.h>201709#include<math.h>void main()int m, k, i ; for( m=1; m<=10; m+=2 ) k = m/3; for( i=2; i<=k; i+ ) if( m%i ) cout << m << " " 解:m 的取值為1,3,5,7,9 對(duì)應(yīng)k的取值為0,1,1,2,3, 第二個(gè)for循環(huán):只有當(dāng)k=2和k=3時(shí)才執(zhí)行, 當(dāng)k=2,i=2,m%i等于1為真,輸出m為7 當(dāng)k=3,i=2,m%i等

2、于1為真,輸出m為9, i=3,m%i等于0為假,無輸出 結(jié)果為: 7 92 #include<iostream.h>void fun();void main()int i; for(i=1;i<5;i+) fun(); cout<<endl;void fun() static int a; int b=2; a += 2 ; cout<< a+b <<'t'解:主函數(shù)循環(huán)4次調(diào)用fun(); fun()函數(shù)內(nèi)定義了靜態(tài)局部變量a,所以a的值會(huì)保持到下一次調(diào)用。 結(jié)果為: 4,6 ,8,10 3 #include<io

3、stream.h>int fun(int n) if(n=0) return 1; return 2*fun(n-1);void main() int a=5; cout<<fun(a)<<endl;解:fun()函數(shù)用遞歸求出2的n次方, 結(jié)果為: 324 #include<iostream.h>void main() char *cp="word" for (int i=0 ; i<4; i+ ) cout<<cp+i << 't' 解:主函數(shù)4次循環(huán)中, 第一次輸出cp+i,此時(shí)c

4、p指向“word”的第一個(gè)字符,所以輸出“word”, 之后cp依次往后移一個(gè)位置,輸出此位置及后面的字符 結(jié)果為: word ord rd d二、根據(jù)程序功能填空。1. 程序把10個(gè)數(shù)存儲(chǔ)到一維數(shù)組a中,并求該數(shù)組中最大值。#include<iostream.h>void main() int max; int a10=76,55,95,87,85,83,65,90,77,85; int *p= a ; max=*p; for( ; p< &a10 ; p+) if( *p>max ) max= *p ; cout<<"max= &quo

5、t;<<max<<endl;2下面程序的功能是輸出1至100之間每位數(shù)字的乘積大于每位數(shù)的和的數(shù)。例如,45兩位數(shù)字的乘積為4×5=20,和為4+5=9。#include<iostream.h>void main() int n, k=1, s=0, m; for(n=1; n<=100; n+) k=1; s=0; m=n ;while( m>0 ) k*=m%10; s+=m%10; m=m/10 ; if(k>s) cout<<n<<'t' 3程序?qū)斎氲膎求s = 1 + 1/23

6、+ 1/33 + + 1/n3 。#include<iostream.h>void main()double s; int i, n; cout<<" n= " cin>>n; s = 0; for (i=1; i<n ; i+) s= s+/(i*i*i) ; cout<<"s="<<s<<endl;4函數(shù)create從鍵盤輸入整數(shù)序列,以輸入0為結(jié)束。按輸入順序建立單向鏈表并返回表頭。struct nodeint data; node * next;node * creat

7、e() node *head, *p, *q; p = new node; head = p; cin>>p->data; while( p ) q = p; p=->data ; q->next = p; cin>>p->data; if (head = p) head = NULL; else p=0 ; ; return head;5以下程序求方程的全部整數(shù)解:3x + 2y - 7z = 5( 0 x, y, z 100 )#include<iostream.h>void main() int x, y, z ; for( x

8、=0; x<=100; x+ ) for( y=0; y<=100; y+ ) if( ( z=3*x+2*y-5 ) % 7 ) continue ; z=z/7 ;/求出z的值 if( z>=0 && z<100 ) /檢查z的范圍 cout << "x=" << x << " y=" << y << " z=" << z << endl ; 三、程序設(shè)計(jì)1. 編寫函數(shù)輸出以下形狀的圖形,其中構(gòu)成圖形的數(shù)字和

9、輸出的行數(shù)通過參數(shù)傳送。12 2 23 3 3 3 34 4 4 4 4 4 4答: void PrintFigure(int num, int row) int i, j, k; num = num - row +1; for(i = 1; i <= row; i+) j = 2*i-1; for(k = 1;k <= j; k+) cout<<num<<" " num+; cout<<endl; 2. 請編程序,輸入兩個(gè)正整數(shù)啊a和b(a<b),輸出a、b之間所有整數(shù)的因數(shù)(除1和本身)。每行輸出數(shù)據(jù)不超過10個(gè)。例

10、如,若輸入a為6,b為8,則輸出格式要求如下:the factors of 6 :2 3the factors of 7 :no factorthe factors of 8 :2 4答: #include<iostream.h> #include<math.h> void out(int a, int b) int i, j, count; for(i = a; i <= b; i+) count = 0; printf("nthe factor of %dn", i); for(j = 2; j < i; j+) if(i % j =

11、 0) printf("%s%d", (count = 0 ? "":","), j); count+; if(count = 0)printf("no factor"); 3請編程序,找出1至99之間的全部同構(gòu)數(shù)。同構(gòu)數(shù)是這樣一組數(shù):它出現(xiàn)在平方數(shù)的右邊。例如:5是25右邊的數(shù),25是625右邊的數(shù),所以5和25都是同構(gòu)數(shù)。答: #include<iostream> using namespace std; void main() int i, j, k; k = 10; for(i = 1; i &

12、lt;= 99; i+) if(i = k) k *= 10; j = i * i; if(j % k = i) cout<< i << " " cout<<endl; 4. 編寫一個(gè)程序,實(shí)現(xiàn)如下功能: (1)從鍵盤輸入a op b。其中a, b為數(shù)值;op為字符,限制為+、-、*、/ 。 (2)調(diào)用函數(shù)count(op,a,b),計(jì)算表達(dá)式a op b的值。由主函數(shù)輸出結(jié)果。答:#include "stdafx.h" #include <iostream> using namespace std; cl

13、ass cal public: int add(int x,int y) /加法定義函數(shù) return x+y; int sub(int x,int y) /減法定義函數(shù) return x-y; int mul(int x,int y) /乘法定義函數(shù) return x*y; int div(int x,int y) /除法定義函數(shù) if(y=0) cout<<"0不能作除數(shù)"<<endl; else return x/y; ; int main() cal c; /定義對(duì)象 int x,y; char ID; cout<<"請

14、輸入要計(jì)算的兩個(gè)數(shù)及運(yùn)算符,中間用空格隔開比如2 3 +"<<endl; cin>>x>>y>>ID; switch (ID) case '+': cout<<c.add(x,y)<<endl; break; case '-': cout<<c.sub(x,y)<<endl; break; case '*': cout<<c.mul(x,y)<<endl; break; case '/': cout&l

15、t;<c.div(x,y)<<endl; ; return 0; 5. 編寫一個(gè)程序,實(shí)現(xiàn)如下功能:(1)輸入k(<100)個(gè)整數(shù)到數(shù)組x100中;(2)計(jì)算k個(gè)數(shù)的平均值及大于平均值的元素個(gè)數(shù)。答: #include<iostream.h> voidmain() Int x100,k,i,n; Double sum=0.0,ave; cout<<"HowmanyData?n" cin>>k; for(i=0;i<k;i+) cin>>xi;sum+=xi; ave=sum/k; n=0; for

16、(i=0;i<k;i+)/求大于平均值的元素個(gè)數(shù) if(xi>ave)n+; cout<<"average="<<ave<<"n" cout<<"Thereare"<<n<<"elementslargethanaverage.n" 6. 定義函數(shù)void reversion(int ary,int size);逆置數(shù)組ary的元素。例如實(shí)參數(shù)組原來為 1,5,3,2,6,8,9,4 ,調(diào)用函數(shù)reversion后變成為 4,9,8,

17、6,2,3,5,1 。答: void reversion(int ary,int size) int temp;for(int i = 0; i < size/2; i+) temp = aryi; aryi = arysize -1 -i; arysize -1 -i = temp; 7. 數(shù)組a包含50個(gè)整數(shù),把a(bǔ)中所有的后項(xiàng)除以前項(xiàng)之商取整后存入數(shù)組b(即bi=ai/ai-1,并且b0=a0/a49),最后按每行5個(gè)元素的格式輸出數(shù)組b。答: # include <stdio,h> void main() int a50,b5,i,j; printf ("請輸

18、入50個(gè)數(shù)"); for (i=0;i<50;i+); scanf("%d",&ai); for (i=9;i>0;i-2) for (j=0;j<5;j+) bj=ai%ai-1; for(j=0;j<5;j+) for (i=1;i<5;i+) printf("%d",bi; printf("n"); 8. 編程輸出所有不超過100 的其平方具有對(duì)稱性質(zhì)的正整數(shù)(也稱回文數(shù))。輸出格式如下:number square1 12 43 911 12122 48426 676答:#include<stdio.h> Int main<void> Int j=0; For (i=0;j<100;j+) If (mj!=mi) Break; If (j>=i) Printf(n,n*n); Return o; 9. 編寫程序,打印如下楊輝三角。11 1 1 2 11 3 3 11 4 6 4 1答: #include<iostream> #include<iomanip> using namespace std;v

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論