江蘇科技大學(xué)計(jì)算機(jī)二級(jí)VC編程題整理_第1頁(yè)
江蘇科技大學(xué)計(jì)算機(jī)二級(jí)VC編程題整理_第2頁(yè)
江蘇科技大學(xué)計(jì)算機(jī)二級(jí)VC編程題整理_第3頁(yè)
江蘇科技大學(xué)計(jì)算機(jī)二級(jí)VC編程題整理_第4頁(yè)
江蘇科技大學(xué)計(jì)算機(jī)二級(jí)VC編程題整理_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、江蘇科技大學(xué)計(jì)算機(jī)二級(jí)經(jīng)典編程題整理1、 設(shè)計(jì)一個(gè)程序,求出5100之間的所有素?cái)?shù),要求每行輸出5個(gè)數(shù)。判斷一個(gè)整數(shù)是否為素?cái)?shù)時(shí)用一個(gè)函數(shù)來(lái)實(shí)現(xiàn)。#includeint f(int n)for(int i=2;in;i+)if(n%i=0)break;if(!(in)return 1;else return 0;void main()int count=0;for(int n=5;n=100;n+)if(f(n)coutnt;if(+count%5=0)coutendl;2、 試編寫(xiě)一個(gè)函數(shù)求n!。#includeint f(int n)if(n=1|n=0)return 1;else ret

2、urn n*f(n-1);void main()int n;cinn;coutf(n)endl; 3、編寫(xiě)一個(gè)程序求分?jǐn)?shù)相加,要求其結(jié)果為最簡(jiǎn)形式,如3/10+1/6=7/15。(此題包含:求最大公約數(shù)(經(jīng)典算法)#includeint f(int m,int n) /求m,n的最大公約數(shù)for(int i=m;i-)if(m%i=0&n%i=0)return i;void main()int fz1,fm1,fz2,fm2,fz,fm;coutfz1fm1;coutfz2fm2;fz=fz1*fm2+fz2*fm1;fm=fm1*fm2;int t=f(fz,fm);fz/=t;fm/=t;

3、cout兩分?jǐn)?shù)之和為:fz/fmendl;4、編程實(shí)現(xiàn)對(duì)序列6,9,5,1,3,4,8,7進(jìn)行升序排列。#includevoid f(int s,int n) /自定義函數(shù)實(shí)現(xiàn)數(shù)組排序,參數(shù)傳遞是雙向的地址傳遞for(int i=0;in;i+)for(int j=i+1;jsj)int t=si;si=sj;sj=t;void main()int s=6,9,5,1,3,4,8,7;f(s,8);for(int i=0;i8;i+)coutsit; 5、設(shè)n是一個(gè)兩位正整數(shù),s1是n的各位數(shù)之和,s2是2*n的各位數(shù)之和。輸出所有滿(mǎn)足條件s1等于s2的n、s1、s2。要求用函數(shù)實(shí)現(xiàn)求各位數(shù)之

4、和。#includeint f(int n) /自定義函數(shù)求n的各位數(shù)之和int sum=0;while(n)sum+=n%10;n/=10;return sum;void main()for(int n=10;n=99;n+)if(f(n)=f(2*n)coutntf(n)tf(2*n)endl;6、【2010秋真題】試定義一個(gè)類(lèi)Array,將4行5列二維數(shù)組的各列前3個(gè)元素依次拼接成一個(gè)整數(shù),再將該整數(shù)賦值給相應(yīng)列的最后一個(gè)元素。例如, (1)私有數(shù)據(jù)成員: int a45; (2)公有成員函數(shù): Array(int b5,int n):構(gòu)造函數(shù),用二維數(shù)組b初始化數(shù)組a,參數(shù)n表示數(shù)組b

5、的行數(shù)。 void val(int j):將成員數(shù)組a第j列的前3個(gè)元素依次拼接成一個(gè)整數(shù)賦值給第4個(gè)元素。 void fun():利用成員函數(shù)vaLl()依次處理數(shù)組a的各列,完成題目的要求。 void print():按矩陣形式打印數(shù)組a (3)在主函數(shù)中完成對(duì)該類(lèi)的測(cè)試。 輸出示例: 原數(shù)組: 1 2 0 4 1 16 11 21 0 2 2 0 3 1 3 0 0 0 0 0 處理后的數(shù)組: l 2 0 4 1 16 11 21 0 2 2 0 3 1 3 1162 2110 213 401 123#includeclass Arrayint a45;public:Array(int

6、b5,int n);void val(int j);void fun();void print();Array:Array(int b5,int n)for(int i=0;in;i+)for(int j=0;j5;j+)aij=bij;void Array:val(int j)for(int i=0;i3;i+) /把a(bǔ)ij連接到a3j中,分兩步實(shí)現(xiàn):一、根據(jù)aij的位 數(shù)計(jì)算a3j*=10;二、然后a3j+=aij; int t=aij; do a3j*=10; t/=10; while(t); a3j+=aij;void Array:fun()for(int i=0;i5;i+)val(

7、i);void Array:print()for(int i=0;i4;i+)for(int j=0;j5;j+)coutaijt;coutendl;/內(nèi)循環(huán)代表某一行中的各列,內(nèi)循環(huán)結(jié)束后輸入換行符號(hào)實(shí)現(xiàn)換行void main()int b45=1,2,0,4,1,16,11,21,0,2,2,0,3,1,3;Array array(b,4);array.fun();array.print(); 7、 請(qǐng)查找字符串we are student,you are student”中的子串student,并在對(duì)應(yīng)位置后面加上字符s。#includevoid main()char s150=we a

8、re student,you are student,*p1=s1;char s2=student,*p2=s2;while(*p1)p2=s2;/新一輪的檢查,字符數(shù)組s2須從頭開(kāi)始while(*p1=*p2)if(*(p2+1)=0)/如果if為真,說(shuō)明找到了子串,此后添加字符char *p3=p1;while(*+p3);while(p3p1)*(p3+1)=*p3; p3-;*(p1+1)=s;p1+,p2+;p1+;cout添加字符s后的字符串為:s1endl; 8、【題目】試定義一個(gè)類(lèi)NUM,實(shí)現(xiàn)求大于整數(shù)m的最小的k個(gè)自反數(shù)。若將某個(gè)整數(shù)各位數(shù)字反序排列后得到的整數(shù)與原數(shù)相等,則

9、稱(chēng)這個(gè)整數(shù)為自反數(shù)。如整數(shù)1234逆序后為4321,兩個(gè)數(shù)不相等,1234不是自反數(shù);整數(shù)2332逆序后為2332,逆序前后的兩個(gè)數(shù)相等,2332是自反數(shù)。具體要求如下: 1.私有數(shù)據(jù)成員 (1)int *p; /p指向用于存儲(chǔ)滿(mǎn)足條件的k個(gè)自反數(shù)的動(dòng)態(tài)數(shù)組。 (2)int m, k; 2.公有成員函數(shù) (1)NUM(int t1,int t2);構(gòu)造函數(shù),用參數(shù)t1,t2分別初始化m、k,并為p分配相應(yīng)的存儲(chǔ)空間。 (2)int isinv(int n);判斷整數(shù)n是否為自反數(shù),如果是,則返回1,否則返回0. (3)void fun();根據(jù)題意將求得的自反數(shù)按從小到大的順序存放到p所指的動(dòng)

10、態(tài)數(shù)組中。要求利用成員函數(shù)isinv()來(lái)判斷某個(gè)整數(shù)是否為自反數(shù)。 (4)void print();按輸出示例格式輸出滿(mǎn)足條件的自反數(shù)。 (5)NUM();析構(gòu)函數(shù),釋放動(dòng)態(tài)內(nèi)存。 3.在主函數(shù)中對(duì)該類(lèi)進(jìn)行測(cè)試。 輸入/輸出示例(帶下劃線(xiàn)部分為鍵盤(pán)輸入): 請(qǐng)輸入m和k:1000 6 大于1000的6個(gè)自反數(shù)為:1001 1111 1221 1331 1441 1551#includeclass NUMint *p;int m,k;public:NUM(int t1,int t2);int isinv(int n);void fun();void print();NUM()if(p)dele

11、te p;NUM:NUM(int t1,int t2)m=t1;k=t2;p=new intk;int NUM:isinv(int n)/驗(yàn)證n是否是自反數(shù)有很多種方法,其中之一就是求出其反序的整數(shù),比較兩者是否相等int t=n,s=0;while(t)/求出n的反序整數(shù)ss*=10;s+=t%10;t/=10;if(s=n)return 1;return 0;void NUM:fun()for(int i=m+1,count=0;countk;i+)if(isinv(i)pcount+=i;void NUM:print()cout大于m的k個(gè)自反數(shù)為:;for(int i=0;ik;i+)

12、coutpit;void main()int m,k;coutmk;NUM num(m,k);num.fun();num.print();9、【題目】試定義一個(gè)類(lèi)STR,實(shí)現(xiàn)求兩個(gè)字符串的交集。兩個(gè)字符串的交集是指同時(shí)屬于兩個(gè)字符串的字符的集合,且該集合中的字符各不相同。具體要求如下: (1)私有數(shù)據(jù)成員: char s150,s250,s050;字符串s0用于存放字符串s1和字符串s2的交集。 (2)公有成員函數(shù): STR(char *p1,char *p2);構(gòu)造函數(shù),分別用參數(shù)p1和p2初始化成員數(shù)組s1和s2。 int isin(char *p,char c);判斷字符c是否出現(xiàn)在字符

13、串p中,如果是,則返回值為1,否則返回0。 void fun();求成員數(shù)組s1和s2的交集,并將結(jié)果存放在成員數(shù)組s0中。提示:利用函數(shù)isin(char *,char)依次判斷一個(gè)字符串中的每個(gè)字符是否包含于另一個(gè)字符串中,如果包含,且該字符不包含于成員數(shù)組s0中,則將該字符加入到成員數(shù)組s0中。 void print();按輸出示例的格式輸出所有數(shù)據(jù)成員。 (3)在主函數(shù)中對(duì)該類(lèi)進(jìn)行測(cè)試。 輸出示例: 字符串1:abcdef123abc12 字符串2:acef123ace124 兩個(gè)字符串的交集:acef123#include#includeclass STRchar s150,s250

14、,s050;public:STR(char *p1,char *p2);int isin(char *p,char c);void fun();void print();STR:STR(char *p1,char *p2)strcpy(s1,p1);strcpy(s2,p2);for(int i=0;i50;i+)s0i=0;int STR:isin(char *p,char c)while(*p) if(*p+=c)return 1;return 0;void STR:fun()/求成員數(shù)組s1和s2的交集,并將結(jié)果存放在成員數(shù)組s0中。char *p1=s1,*p2=s2,*p3=s0;w

15、hile(*p1)/檢驗(yàn)s1中的每一個(gè)字符是否在s2中if(isin(s2,*p1)&!isin(s0,*p1)*p3+=*p1;/isin(s2,*p1) 就說(shuō)滿(mǎn)了*p1就是交集;/!isin(s0,*p1)這個(gè)交集是不曾出現(xiàn)過(guò)的p1+;void STR:print()cout字符串1:s1endl;cout字符串2:s2endl;cout字符串的交集:s0endl;void main()char p1=abcdef123abc12,p2=acef123ace124;STR str(p1,p2);str.fun();str.print();/*主函數(shù)功能:測(cè)試類(lèi)(把類(lèi)的成員函數(shù)都調(diào)用一遍,通

16、過(guò)對(duì)象)1、生成對(duì)象(會(huì)自動(dòng)調(diào)用構(gòu)造函數(shù),須檢查構(gòu)造函數(shù)是否需要實(shí)參)2、通過(guò)對(duì)象挨個(gè)調(diào)用成員函數(shù) 10、 【題目】試定義一個(gè)類(lèi)STR,將一個(gè)字符串中指定位置的連續(xù)字符拼接到另一個(gè)字符串尾部。具體要求如下:(1)私有數(shù)據(jù)成員:char *p;存放一個(gè)字符串。(2)公有成員函數(shù):STR(char *s);構(gòu)造函數(shù)。為數(shù)據(jù)成員p動(dòng)態(tài)分配內(nèi)存,并利用參數(shù)s初始化數(shù)據(jù)成員p。 void fun(char *s,int n1,int n2),將字符串s從第n1個(gè)字符(從0開(kāi)始計(jì)數(shù))開(kāi)始的連續(xù)n2個(gè)字符拼接到數(shù)據(jù)成員p所指向的字符串之后,形成一個(gè)新的字符串。注意:必須要為p重新分配內(nèi)存空間。 void p

17、rint();按輸出示例格式輸出數(shù)據(jù)成員p。 STR();析構(gòu)函數(shù),釋放動(dòng)態(tài)內(nèi)存。(3)在主函數(shù)中完成對(duì)該類(lèi)的測(cè)試。輸入/輸出示例(帶下劃線(xiàn)部分為鍵盤(pán)輸入):字符串1:abcdefg字符串2:12345678輸入起始位置和字符個(gè)數(shù): 2 5處理后的字符串1為:abcdefg34567#include#includeclass STRchar *p;public:STR(char *s);void fun(char *s,int n1,int n2);void print();STR();STR:STR(char *s)p=new charstrlen(s)+1;strcpy(p,s);void

18、 STR:fun(char *s,int n1,int n2)char s3100;strcpy(s3,p);p=new charstrlen(s3)+n2+1;strcpy(p,s3);char *q1=p;while(*+q1);for(int i=0;in2;i+)/起始地址 s+n1*(q1+)=*(s+n1+i);*q1=0;void STR:print()coutpendl;STR:STR()if(p)delete p;void main()char s1100,s2100;couts1;couts2;int n1,n2;coutn1n2;STR str(s1);str.fun(s

19、2,n1,n2);str.print();11、【題目】試定義一個(gè)類(lèi)Array,實(shí)現(xiàn)由一個(gè)數(shù)組派生出另一個(gè)數(shù)組。派生規(guī)則如下:新數(shù)組的元素取值為原數(shù)組中相同位置元素的左、右兩個(gè)相鄰元素前后拼接后形成的整數(shù)(左鄰元素在前,右鄰元素在后)。規(guī)定最左(右)列元素的左(右)鄰元素為該元素所在行的最右(左)側(cè)的元素。具體要求如下:(1)私有數(shù)據(jù)成員: int a 34; 原數(shù)組。 int b 34; 派生數(shù)組。(2) 公有成員函數(shù) Array(int t4,int n);構(gòu)造函數(shù),利用參數(shù)t的前n行元素初始化數(shù)據(jù)成員a。 int nn(int t1,int t2);返回t1,t2拼接后形成的整數(shù)(t1在

20、前,t2在后)。 void fun();按題意生成新數(shù)組,并將結(jié)果存放到數(shù)據(jù)成員b中。 void print();按矩陣形式輸出成員數(shù)組。(3)在主函數(shù)中對(duì)該類(lèi)進(jìn)行測(cè)試。輸出示例:原數(shù)組:41 67 34 069 24 78 5862 64 5 45派生數(shù)組:67 4134 670 34415824 6978 2458 78694564 625 6445 562*/#include#includeclass Arrayint a34,b34;public:Array(int t4,int n);int nn(int t1,int t2);void fun();void print();Arra

21、y:Array(int t4,int n)for(int i=0;in;i+)for(int j=0;j4;j+)aij=tij;int Array:nn(int t1,int t2)int t=t2;dot1*=10;while(t/=10);return t1+t2; void Array:fun()int i,j;for(i=0;i3;i+)for(j=0;j4;j+)if(j=0) bij=nn(ai3,ai1);if(j=1|j=2)bij=nn(aij-1,aij+1);if(j=3)bij=nn(ai2,ai0);void Array:print()int i,j;cout原數(shù)組

22、:endl;for(i=0;i3;i+)for(j=0;j4;j+)coutaijt;coutendl;cout派生數(shù)組:endl;for(i=0;i3;i+)for(j=0;j4;j+)coutbijt;couts1;couts2;int n1,n2;coutn1n2;STR str(s1);str.fun(s2,n1,n2);str.print(); 12、 【題目】試定義一個(gè)數(shù)組類(lèi)ARRAY,實(shí)現(xiàn)對(duì)數(shù)組a中的n(0n100)個(gè)整數(shù)從小到大進(jìn)行編號(hào),要求不改變數(shù)組a中元素的順序,且相等的整數(shù)具有相同的編號(hào),編號(hào)的結(jié)果存放在另一個(gè)數(shù)組b中。例如:當(dāng)a=5,3,4,7,3,5,6時(shí),a的第2和第5個(gè)元素值都為3,均是最小元素,因此其編號(hào)都為1,即b的第2和第5個(gè)元素均為1;a的第3個(gè)元素為4,為a的次小元素,編號(hào)為2,因此b的第3個(gè)元素值為2;依此類(lèi)推,得到b=3,1,2,5,1,3,4。具體要求如下:(1)私有成員: int *a; 原數(shù)組。 int *b; 存放數(shù)組a的元素的編號(hào)。 int len

溫馨提示

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

評(píng)論

0/150

提交評(píng)論