![北方工大學(xué)程序設(shè)計(jì)專題前三章編程答案_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/30/b568fce7-cc76-41b1-9f16-d1d273814639/b568fce7-cc76-41b1-9f16-d1d2738146391.gif)
![北方工大學(xué)程序設(shè)計(jì)專題前三章編程答案_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/30/b568fce7-cc76-41b1-9f16-d1d273814639/b568fce7-cc76-41b1-9f16-d1d2738146392.gif)
![北方工大學(xué)程序設(shè)計(jì)專題前三章編程答案_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/30/b568fce7-cc76-41b1-9f16-d1d273814639/b568fce7-cc76-41b1-9f16-d1d2738146393.gif)
![北方工大學(xué)程序設(shè)計(jì)專題前三章編程答案_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/30/b568fce7-cc76-41b1-9f16-d1d273814639/b568fce7-cc76-41b1-9f16-d1d2738146394.gif)
![北方工大學(xué)程序設(shè)計(jì)專題前三章編程答案_第5頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/30/b568fce7-cc76-41b1-9f16-d1d273814639/b568fce7-cc76-41b1-9f16-d1d2738146395.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)一 簡(jiǎn)單計(jì)算問(wèn)題1、數(shù)字求和問(wèn)題描述給定一個(gè)正整數(shù)a,以及另外的5個(gè)正整數(shù),問(wèn)題是:這5個(gè)整數(shù)中,小于a的整數(shù)的和是多少?輸入形式輸入一行,只包括6個(gè)小于100的正整數(shù),其中第一個(gè)正整數(shù)就是a。輸出形式輸出一行,給出一個(gè)正整數(shù),是5個(gè)數(shù)中小于a的數(shù)的和。樣例輸入10 1 2 3 4 11樣例輸出10*/#include<stdio.h>int main()int a6;int i;int sum=0;for(i=0;i<6;i+)scanf("%d",&ai);for(i=0;i<6;i+)if(a0>ai)sum=sum+ai;p
2、rintf(" %d ",sum);return 0;/*2、兩倍數(shù)問(wèn)題描述給定2到15個(gè)不同的正整數(shù),你的任務(wù)是計(jì)算這些數(shù)里面有多少個(gè)數(shù)對(duì)滿足:數(shù)對(duì)中一個(gè)數(shù)是另一個(gè)數(shù)的兩倍。 比如給定1 4 3 2 9 7 18 22,得到的答案是3,因?yàn)?是1的兩倍,4是2的兩倍,18是9的兩倍。 輸入形式輸入包括多組測(cè)試數(shù)據(jù)。每組數(shù)據(jù)包括一行,給出2到15個(gè)兩兩不同且小于100的正整數(shù)。每一行最后一個(gè)數(shù)是0,表示這一行的結(jié)束后,這個(gè)數(shù)不屬于那2到15個(gè)給定的正整數(shù)。輸入的最后一行只包括一個(gè)整數(shù)-1,這行表示輸入數(shù)據(jù)的結(jié)束,不用進(jìn)行處理。輸出形式對(duì)每組輸入數(shù)據(jù),輸出一行,給出有多少個(gè)數(shù)
3、對(duì)滿足其中一個(gè)數(shù)是另一個(gè)數(shù)的兩倍。樣例輸入1 4 3 2 9 7 18 22 02 4 8 10 07 5 11 13 1 3 0-1樣例輸出320*/# include<stdio.h>int main(void) int a2015; int i=0,j=0,k,t,w,sum=0; scanf("%d",&t); while(t!=-1) if(t!=0) aij+=t; else aij=t; i+;j=0; scanf("%d",&t);for(k=0,j=0,w=0;k<i;k+) while(akj!=0)
4、 w=0; while(akw!=0) if(float)akj/2=(float)akw) sum+; w+; j+; printf("%dn",sum); sum=0; j=0; return 0;/*3、Number Sequence問(wèn)題描述A number sequence is defined as follows:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2) mod 7.Given A, B, and n, you are to calculate the value of f(n).輸入形式Th
5、e input consists of multiple test cases. Each test case contains 3 integers A, B and n on a single line (1 <= A, B <= 1000, 1 <= n <= 100,000,000). Three zeros signal the end of input and this test case is not to be processed.輸出形式For each test case, print the value of f(n) on a single li
6、ne.樣例輸入1 1 31 2 100 0 0樣例輸出25*/#include<stdio.h>int main() int fun(int x);int a,b,n;int t;scanf("d%d%d%",&a,&b,&n);while(a!=0&&b!=0&&n!=0)fun(n);scanf("%d%d%d",&a,&b,&n);return 0;int fun(int x)if(x=1|x=2)t=1;else t=(fun(x-1)*a+fun(x-2
7、)*b)%7; printf("%dn",t);return (t)4、腫瘤檢測(cè)問(wèn)題描述一張CT掃描的灰度圖像可以用一個(gè)N*N(0<N<100)的矩陣描述,矩陣上的每個(gè)點(diǎn)對(duì)應(yīng)一個(gè)灰度值(整數(shù)),其取值范圍是0255。我們假設(shè)給定的圖像中有且只有一個(gè)腫瘤。在圖上監(jiān)測(cè)腫瘤的方法如下:如果某個(gè)點(diǎn)對(duì)應(yīng)的灰度值小于等于50,則這個(gè)點(diǎn)在腫瘤上,否則不在腫瘤上。我們把在腫瘤上的點(diǎn)的數(shù)目加起來(lái),就得到了腫瘤在圖上的面積。任何在腫瘤上的點(diǎn),如果它是圖像的邊界或者它的上下左右四個(gè)相鄰點(diǎn)中至少有一個(gè)是非腫瘤上的點(diǎn),則該點(diǎn)稱為腫瘤的邊界點(diǎn)。腫瘤的邊界點(diǎn)的個(gè)數(shù)稱為腫瘤的周長(zhǎng)?,F(xiàn)在給定一個(gè)
8、圖像,要求計(jì)算其中的腫瘤的面積和周長(zhǎng)。輸入形式輸入第一行包含一個(gè)正整數(shù)N(0<N<100),表示圖像的大??;接下來(lái)N行,每行包含圖像的一行。圖像的一行用N個(gè)整數(shù)表示(所有整數(shù)大于等于0,小于等于255),兩個(gè)整數(shù)之間用一個(gè)空格隔開(kāi)。輸出形式輸出只有一行,該行包含兩個(gè)正整數(shù),分別為給定圖像中腫瘤的面積和周長(zhǎng),用一個(gè)空格分開(kāi)。樣例輸入699 99 99 99 99 9999 99 99 50 99 9999 99 49 49 50 5199 50 20 25 52 9940 50 99 99 99 9999 99 99 99 99 99樣例輸出9 8測(cè)試數(shù)據(jù)2:樣例輸入799 99 9
9、9 99 99 99 6599 99 99 50 99 99 2599 99 49 49 50 49 3499 50 20 25 52 99 3840 50 99 99 99 99 3599 99 99 99 99 99 5599 99 99 99 99 99 77樣例輸出14 13#include<stdio.h>int main()int a200200;int i,j,size=0,circle=0;int n;scanf("%d",&n); for(i=0;i<n;i+)for(j=0;j<n;j+)scanf("%2d&q
10、uot;,&aij); for(i=0;i<n;i+)for(j=0;j<n;j+)if(aij<=50) size=size+1;if(i=0|i=n-1|j=0|j=n-1) circle+;else if(ai-1j>50|ai+1j>50|aij+1>50|aij-1>50) circle+; printf("%d %d",size,circle);return 0;5、填詞問(wèn)題描述Alex喜歡填詞游戲。填詞是游戲是一個(gè)非常簡(jiǎn)單的游戲。填詞游戲包括一個(gè)N * M大小的矩形方格盤和P個(gè)單詞。玩家需要把每個(gè)方格中填上一個(gè)
11、字母使得每個(gè)單詞都能在方格盤上找到。每個(gè)單詞都能找到要滿足下面的條件: 每個(gè)方格都不能同時(shí)屬于超過(guò)一個(gè)的單詞。一個(gè)長(zhǎng)為k的單詞一定要占據(jù)k個(gè)方格。單詞在方格盤中出現(xiàn)的方向只能是豎直的或者水平的。 你的任務(wù)是首先在方格盤上找到所有的單詞,當(dāng)然在棋盤上可能有些方格沒(méi)有被單詞占據(jù)。然后把這些沒(méi)有用的方格找出來(lái),把這些方格上的字母按照字典序組成一個(gè)“神秘單詞”。 如果你還不了解規(guī)則,我們可以具一個(gè)例子,比如在下圖中尋找單詞BEG和GEE。 輸入形式輸入的第一行包括三個(gè)整數(shù)N,M和P (2 <= M, N <= 10, 0 <= P <=100)。接下來(lái)的N行,每行包括M個(gè)字符,
12、來(lái)表示方格盤。接下來(lái)P行給出需要在方格盤中找到的單詞。 輸入保證填詞游戲至少有一組答案。 輸入中給出的字母都是大寫(xiě)字母。 輸出形式輸出“神秘單詞”,注意“神秘單詞”中的字母要按照字典序給出。樣例輸入3 3 2EBGGEEEGEBEGGEE樣例輸出EEG#include<stdio.h> #include<string.h> int main() int ch26; memset(ch,0,sizeof(ch); int i,n,m,p; char str200; char c; scanf("%d%d%d",&n,&m,&p)
13、; while(n-) scanf("%s",str); for(i=0;stri!='0'i+) chstri-'A'+; while(p-) scanf("%s",str); for(i=0;stri!='0'i+) chstri-'A'-; for(i=0;i<26;i+) if(chi!=0) while(chi-) c='A'+i; printf("%c",c); return 0; 6、垂直直方圖問(wèn)題描述輸入4行全部由大寫(xiě)字母組成的文本,
14、輸出一個(gè)垂直直方圖,給出每個(gè)字符出現(xiàn)的次數(shù)。注意:只用輸出字符的出現(xiàn)次數(shù),不用輸出空白字符,數(shù)字或者標(biāo)點(diǎn)符號(hào)的輸出次數(shù)。輸入形式輸入包括4行由大寫(xiě)字母組成的文本,每行上字符的數(shù)目不超過(guò)80個(gè)。輸出形式輸出包括若干行。其中最后一行給出26個(gè)大寫(xiě)英文字母,這些字母之間用空格隔開(kāi)。前面的幾行包括空格和星號(hào),每個(gè)字母出現(xiàn)幾次,就在這個(gè)字母的上方輸出一個(gè)星號(hào)。注意:輸出的第一行不能是空行。樣例輸入THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG.THIS IS AN EXAMPLE TO TEST FOR YOURHISTOGRAM PROGRAM.HELLO!樣
15、例輸出 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *A B C D E F G H I J K L M N O P Q R S T U V W X Y Z #include<stdio.h> #include<string.h> int main() int ch26; memset(ch,0,siz
16、eof(ch); int i,n,m,p; char str200; char c; scanf("%d%d%d",&n,&m,&p); while(n-) scanf("%s",str); for(i=0;stri!='0'i+) chstri-'A'+; while(p-) scanf("%s",str); for(i=0;stri!='0'i+) chstri-'A'-; for(i=0;i<26;i+) if(chi!=0) whil
17、e(chi-) c='A'+i; printf("%c",c); return 0; 7、誰(shuí)拿了最多獎(jiǎng)學(xué)金問(wèn)題描述某校的慣例是在每學(xué)期的期末考試之后發(fā)放獎(jiǎng)學(xué)金。發(fā)放的獎(jiǎng)學(xué)金共有五種,獲取的條件各自不同: 1) 院士獎(jiǎng)學(xué)金,每人8000元,期末平均成績(jī)高于80分(>80),并且在本學(xué)期內(nèi)發(fā)表1篇或1篇以上論文的學(xué)生均可獲得; 2) 五四獎(jiǎng)學(xué)金,每人4000元,期末平均成績(jī)高于85分(>85),并且班級(jí)評(píng)議成績(jī)高于80分(>80)的學(xué)生均可獲得; 3) 成績(jī)優(yōu)秀獎(jiǎng),每人2000元,期末平均成績(jī)高于90分(>90)的學(xué)生均可獲得; 4) 西
18、部獎(jiǎng)學(xué)金,每人1000元,期末平均成績(jī)高于85分(>85)的西部省份學(xué)生均可獲得; 5) 班級(jí)貢獻(xiàn)獎(jiǎng),每人850元,班級(jí)評(píng)議成績(jī)高于80分(>80)的學(xué)生干部均可獲得; 只要符合條件就可以得獎(jiǎng),每項(xiàng)獎(jiǎng)學(xué)金的獲獎(jiǎng)人數(shù)沒(méi)有限制,每名學(xué)生也可以同時(shí)獲得多項(xiàng)獎(jiǎng)學(xué)金。例如姚林的期末平均成績(jī)是87分,班級(jí)評(píng)議成績(jī)82分,同時(shí)他還是一位學(xué)生干部,那么他可以同時(shí)獲得五四獎(jiǎng)學(xué)金和班級(jí)貢獻(xiàn)獎(jiǎng),獎(jiǎng)金總數(shù)是4850元。 現(xiàn)在給出若干學(xué)生的相關(guān)數(shù)據(jù),請(qǐng)計(jì)算哪些同學(xué)獲得的獎(jiǎng)金總數(shù)最高(假設(shè)總有同學(xué)能滿足獲得獎(jiǎng)學(xué)金的條件)。 輸入形式輸入的第一行是一個(gè)整數(shù)N(1 <= N <= 100),表示學(xué)生的
19、總數(shù)。接下來(lái)的N行每行是一位學(xué)生的數(shù)據(jù),從左向右依次是姓名,期末平均成績(jī),班級(jí)評(píng)議成績(jī),是否是學(xué)生干部,是否是西部省份學(xué)生,以及發(fā)表的論文數(shù)。姓名是由大小寫(xiě)英文字母組成的長(zhǎng)度不超過(guò)20的字符串(不含空格);期末平均成績(jī)和班級(jí)評(píng)議成績(jī)都是0到100之間的整數(shù)(包括0和100);是否是學(xué)生干部和是否是西部省份學(xué)生分別用一個(gè)字符表示,Y表示是,N表示不是;發(fā)表的論文數(shù)是0到10的整數(shù)(包括0和10)。每?jī)蓚€(gè)相鄰數(shù)據(jù)項(xiàng)之間用一個(gè)空格分隔。輸出形式輸出包括三行,第一行是獲得最多獎(jiǎng)金的學(xué)生的姓名,第二行是這名學(xué)生獲得的獎(jiǎng)金總數(shù)。如果有兩位或兩位以上的學(xué)生獲得的獎(jiǎng)金最多,輸出他們之中在輸入文件中出現(xiàn)最早的學(xué)
20、生的姓名。第三行是這N個(gè)學(xué)生獲得的獎(jiǎng)學(xué)金的總數(shù)。樣例輸入4YaoLin 87 82 Y N 0ChenRuiyi 88 78 N Y 1LiXin 92 88 N N 0ZhangQin 83 87 Y N 1樣例輸出ChenRuiyi900028700#include<stdio.h>#include<cstring>#include<ctype.h>#include<stdlib.h>struct studentschar name21;int score1, score2;char c1, c2;int num, money;student
21、100;void judge ( struct students * sb )if ( sb->score1 >80 && sb->num>=1 ) sb->money += 8000;if ( sb->score1 >85 && sb->score2>80 ) sb->money += 4000;if ( sb->score1 >90 ) sb->money += 2000;if ( sb->score1 >85 && sb->c2='Y
22、39; ) sb->money += 1000;if ( sb->score2 >80 && sb->c1='Y' ) sb->money += 850;/*void judge ( struct students sb ) if ( sb.score1 >80 && sb.num>=1 ) sb.money += 8000;if ( sb.score1 >85 && sb.score2>80 ) sb.money += 4000;if ( sb.score1 >90 )
23、 sb.money += 2000;if ( sb.score1 >85 && sb.c2='Y' ) sb.money += 1000;if ( sb.score2 >80 && sb.c1='Y' ) sb.money += 850;*/int main()int n;scanf ( "%d", &n );int i, j, sum = 0;for ( i=0; i<n; i+ )scanf ( "%s", );scanf ( &qu
24、ot;%d%d", &studenti.score1, &studenti.score2 );scanf ( " %c %c", &studenti.c1, &studenti.c2 );scanf ( "%d", &studenti.num );studenti.money = 0;judge( &studenti );/judge( studenti );sum += studenti.money;int max = student0.money;j = 0;for ( i=1; i<n
25、; i+ )if ( studenti.money > max )max = studenti.money ;j = i;printf ( "%sn%dn%dn", , studentj.money, sum );system("pause");return 0;8、簡(jiǎn)單密碼問(wèn)題描述Julius Caesar曾經(jīng)使用過(guò)一種很簡(jiǎn)單的密碼。對(duì)于明文中的每個(gè)字符,將它用它字母表中后5位對(duì)應(yīng)的字符來(lái)代替,這樣就得到了密文。比如字符A用F來(lái)代替。如下是密文和明文中字符的對(duì)應(yīng)關(guān)系。 密文 A B C D E F G H I J K L
26、 M N O P Q R S T U V W X Y Z 明文 V W X Y Z A B C D E F G H I J K L M N O P Q R S T U 你的任務(wù)是對(duì)給定的密文進(jìn)行解密得到明文。 你需要注意的是,密文中出現(xiàn)的字母都是大寫(xiě)字母。密文中也包括非字母的字符,對(duì)這些字符不用進(jìn)行解碼。輸入形式輸入中的測(cè)試數(shù)據(jù)不超過(guò)100組。每組數(shù)據(jù)都有如下的形式,而且各組測(cè)試數(shù)據(jù)之間沒(méi)有空白的行。 一組測(cè)試數(shù)據(jù)包括三部分 起始行:一行,包括字符串 "START" 密文:一行,給出密文,密文不為空,而且其中的字符數(shù)不超過(guò)200 結(jié)束行:一行,包括字符串 "END
27、" 在最后一組測(cè)試數(shù)據(jù)之后有一行,包括字符串 "ENDOFINPUT"。 輸出形式對(duì)每組數(shù)據(jù),都有一行輸出,給出密文對(duì)應(yīng)的明文。樣例輸入STARTNS BFW, JAJSYX TK NRUTWYFSHJ FWJ YMJ WJXZQY TK YWNANFQ HFZXJXENDSTARTN BTZQI WFYMJW GJ KNWXY NS F QNYYQJ NGJWNFS ANQQFLJ YMFS XJHTSI NS WTRJENDSTARTIFSLJW PSTBX KZQQ BJQQ YMFY HFJXFW NX RTWJ IFSLJWTZX YMFS MJENDE
28、NDOFINPUT樣例輸出IN WAR, EVENTS OF IMPORTANCE ARE THE RESULT OF TRIVIAL CAUSESI WOULD RATHER BE FIRST IN A LITTLE IBERIAN VILLAGE THAN SECOND IN ROMEDANGER KNOWS FULL WELL THAT CAESAR IS MORE DANGEROUS THAN HE#include<stdio.h>#include<cstring>#include<ctype.h>#include<stdlib.h>co
29、nst int N = 200;int main()char strN+1;int n;int aN;while ( scanf ( "%d", &n )=1 && n )for ( int i=0; i<n; i+ )scanf ( "%d", &ai );int k;while ( scanf("%d", &k)=1 && k )getchar();fgets( str, N, stdin );int j=0;while ( strj!=10 )j+;strj='
30、;0'if ( (int)strlen(str)<n )j=0;while ( strj!='0' )j+;while( j<n ) strj+ = ' 'char str1N+1='0'for ( int i1=0; i1<k; i1+ )for ( j=0; j<n; j+ )str1aj-1 = strj;memset( str, 0, sizeof(str) );memcpy( str, str1, sizeof(str1) );memset( str1, 0, sizeof(str1) );j = 0;w
31、hile ( strj!='0' ) putchar( strj+ );putchar( 'n' );9、化驗(yàn)診斷問(wèn)題描述下表是進(jìn)行血常規(guī)檢驗(yàn)的正常值參考范圍,及化驗(yàn)值異常的臨床意義: 給定一張化驗(yàn)單,判斷其所有指標(biāo)是否正常,如果不正常,統(tǒng)計(jì)有幾項(xiàng)不正常?;?yàn)單上的值必須嚴(yán)格落在正常參考值范圍內(nèi),才算是正常。正常參考值范圍包括邊界,即落在邊界上也算正常。輸入形式輸出形式對(duì)于每組測(cè)試數(shù)據(jù),輸出一行。如果所有檢驗(yàn)項(xiàng)目正常,則輸出:normal;否則輸出不正常的項(xiàng)的數(shù)目。樣例輸入2female 4.5 4.0 115 37 200male 3.9 3.5 155 36
32、 301樣例輸出normal3#include<stdio.h>#include<cstring>#include<ctype.h>#include<stdlib.h>const int N = 100;int main ()char strN;int c;while ( scanf ("%s", str) )if ( !strcmp(str,"ENDOFINPUT") )return 0;else memset ( str, 0, sizeof(str) );c = getchar();fgets ( s
33、tr, N, stdin );int i = 0;while ( stri != '0' )if ( stri=10 ) putchar (stri); break; elseif ( isupper(stri) )if ( stri>'E' )stri -= 5;else stri += ('V'-'A');putchar (stri);i+;memset ( str, 0, sizeof(str) );scanf ( "%s", str );memset ( str, 0, sizeof(str) )
34、;10、密碼問(wèn)題描述Bob 和 Alice 開(kāi)始使用一種全新的編碼系統(tǒng)。它是一種基于一組私有鑰匙的。他們選擇了n個(gè)不同的數(shù)a1 , . . .,an, 它們都大于0小于等于n。 機(jī)密過(guò)程如下:待加密的信息放置在這組加密鑰匙下,信息中的字符和密鑰中的數(shù)字一一對(duì)應(yīng)起來(lái)。信息中位于i位置的字母將被寫(xiě)到加密信息的第ai個(gè)位置, ai 是位于i位置的密鑰。加密信息如此反復(fù)加密,一共加密 k 次。 信息長(zhǎng)度小于等于n。如果信息比 n 短, 后面的位置用空格填補(bǔ)直到信息長(zhǎng)度為n。 請(qǐng)你幫助 Alice 和 Bob 寫(xiě)一個(gè)程序,讀入密鑰,然后讀入加密次數(shù) k 和要加密的信息,按加密規(guī)則將信息加密。 輸入形式輸
35、入包括幾塊。每塊第一行有一個(gè)數(shù)字n, 0 < n <= 200. 接下來(lái)的行包含n個(gè)不同的數(shù)字。數(shù)字都是大于0小于等于n的。下面每行包含一個(gè)k和一個(gè)信息字符串,它們之間用空格格開(kāi)。每行以換行符結(jié)束,換行符不是要加密的信息。每個(gè)塊的最后一行只有一個(gè)0。 最后一個(gè)塊后有一行,該行只有一個(gè)0。 輸出形式輸出有多個(gè)塊,每個(gè)塊對(duì)應(yīng)一個(gè)輸入塊。每個(gè)塊包含輸入中的信息經(jīng)過(guò)加密后的字符串,順序與輸入順序相同。所有加密后的字符串的長(zhǎng)度都是 n。 每一個(gè)塊后有一個(gè)空行。 樣例輸入104 5 3 7 2 8 1 6 10 91 Hello Bob1995 CERC00樣例輸出BolHeol bC RCE
36、#include<stdio.h>#include<cstring>#include<ctype.h>#include<stdlib.h>const int N = 200;int main()char strN+1;int n;int aN;while ( scanf ( "%d", &n )=1 && n )for ( int i=0; i<n; i+ )scanf ( "%d", &ai );int k;while ( scanf("%d",
37、&k)=1 && k )getchar();fgets( str, N, stdin );int j=0;while ( strj!=10 )j+;strj='0'if ( (int)strlen(str)<n )j=0;while ( strj!='0' )j+;while( j<n ) strj+ = ' 'char str1N+1='0'for ( int i1=0; i1<k; i1+ )for ( j=0; j<n; j+ )str1aj-1 = strj;memset(
38、str, 0, sizeof(str) );memcpy( str, str1, sizeof(str1) );memset( str1, 0, sizeof(str1) );j = 0;while ( strj!='0' ) putchar( strj+ );putchar( 'n' );實(shí)驗(yàn)二 進(jìn)制、日期及轉(zhuǎn)換問(wèn)題1、十進(jìn)制到R進(jìn)制問(wèn)題描述把一個(gè)十進(jìn)制正整數(shù)轉(zhuǎn)化成R進(jìn)制輸入形式輸入只有一行,包含兩個(gè)整數(shù)a,R。a表示十進(jìn)制整數(shù),R表示需要轉(zhuǎn)換的進(jìn)制。1<R<=16。輸出形式輸出包含一行,為轉(zhuǎn)換后的R進(jìn)制整數(shù)。輸出時(shí)字符號(hào)全部用大寫(xiě)表示,即(0 ,
39、1,.,9,A,B,C,D,E,F(xiàn))。樣例輸入12 16樣# include <stdio.h>void ten_to_r ( int a, int r )if ( a>0 )ten_to_r ( a/r, r );int temp = a % r;if ( temp<10 ) printf ( "%d", temp );else printf ( "%c", temp-10+'A' );int main ()int a, r;scanf( "%d%d", &a, &r );te
40、n_to_r ( a, r );printf ( "n" );return 0;輸出C2、R進(jìn)制到十進(jìn)制問(wèn)題描述把一個(gè)R進(jìn)制正整數(shù)轉(zhuǎn)化成十進(jìn)制輸入形式一行,包含一個(gè)R進(jìn)制表示的正整數(shù)a和進(jìn)制數(shù)R,a的十進(jìn)制表示的范圍是(0, 65536),1<R<=9。輸出形式一行,a的十進(jìn)制表示樣例輸入1011 2樣例輸出11# include <stdio.h># include <string.h># include <math.h>void r_to_ten ( int a, int r )char str10000;sprintf
41、( str, "%d", a );int len = strlen(str);int c10000, b=0;for ( int i=0; i<len; i+ )clen-1-i = stri-'0'b += clen-1-i * (int)pow(float)r,(float)(len-1-i);printf ( "%dn", b );int main()int a, r;scanf ( "%d%d", &a, &r );r_to_ten( a, r) ;return 0;3、電話號(hào)碼問(wèn)題描述企
42、業(yè)喜歡用容易被記住的電話號(hào)碼。讓電話號(hào)碼容易被記住的一個(gè)辦法是將它寫(xiě)成一個(gè)容易記住的單詞或者短語(yǔ)。例如,你需要給滑鐵盧大學(xué)打電話時(shí),可以撥打TUT-GLOP。有時(shí),只將電話號(hào)碼中部分?jǐn)?shù)字拼寫(xiě)成單詞。當(dāng)你晚上回到酒店,可以通過(guò)撥打310-GINO來(lái)向Gino's訂一份pizza。讓電話號(hào)碼容易被記住的另一個(gè)辦法是以一種好記的方式對(duì)號(hào)碼的數(shù)字進(jìn)行分組。通過(guò)撥打必勝客的“三個(gè)十”號(hào)碼3-10-10-10,你可以從他們那里訂pizza。 電話號(hào)碼的標(biāo)準(zhǔn)格式是七位十進(jìn)制數(shù),并在第三、第四位數(shù)字之間有一個(gè)連接符。電話撥號(hào)盤提供了從字母到數(shù)字的映射,映射關(guān)系如下: A, B, 和C 映射到 2 D,
43、 E, 和F 映射到 3 G, H, 和I 映射到 4 J, K, 和L 映射到 5 M, N, 和O 映射到 6 P, R, 和S 映射到 7 T, U, 和V 映射到 8 W, X, 和Y 映射到 9 Q和Z沒(méi)有映射到任何數(shù)字,連字符不需要撥號(hào),可以任意添加和刪除。 TUT-GLOP的標(biāo)準(zhǔn)格式是888-4567,310-GINO的標(biāo)準(zhǔn)格式是310-4466,3-10-10-10的標(biāo)準(zhǔn)格式是310-1010。 如果兩個(gè)號(hào)碼有相同的標(biāo)準(zhǔn)格式,那么他們就是等同的(相同的撥號(hào)) 你的公司正在為本地的公司編寫(xiě)一個(gè)電話號(hào)碼薄。作為質(zhì)量控制的一部分,你想要檢查是否有兩個(gè)和多個(gè)公司擁有相同的電話號(hào)碼。 輸
44、入形式輸入的格式是,第一行是一個(gè)正整數(shù),指定電話號(hào)碼薄中號(hào)碼的數(shù)量(最多100000)。余下的每行是一個(gè)電話號(hào)碼。每個(gè)電話號(hào)碼由數(shù)字,大寫(xiě)字母(除了Q和Z)以及連接符組成。每個(gè)電話號(hào)碼中只會(huì)剛好有7個(gè)數(shù)字或者字母。輸出形式對(duì)于每個(gè)出現(xiàn)重復(fù)的號(hào)碼產(chǎn)生一行輸出,輸出是號(hào)碼的標(biāo)準(zhǔn)格式緊跟一個(gè)空格然后是它的重復(fù)次數(shù)。如果存在多個(gè)重復(fù)的號(hào)碼,則按照號(hào)碼的字典升序輸出。如果輸入數(shù)據(jù)中沒(méi)有重復(fù)的號(hào)碼,輸出一行: No duplicates. 樣例輸入124873279ITS-EASY888-45673-10-10-10888-GLOPTUT-GLOP967-11-11310-GINOF101010888-1
45、200-4-8-7-3-2-7-9-487-3279樣例輸出310-1010 2487-3279 4888-4567 3# include <stdio.h># include <string.h># include <math.h># include <ctype.h># include <stdlib.h>const int N = 1000;char strN8;void pick ( char string, int k )int i = 0, j = 0;while ( stringi!='0' &&
46、amp; j!=7 )if ( '0'<=stringi && stringi<='9' ) strkj=stringi; j+; if ( isupper(stringi) ) for ( int i10=0; i10<9; i10+ )if ( i10<5 )if ( 'A'+(i10)*3 <= stringi && stringi <= 'A'+(i10)*3+2) strkj = (i10) + 2 + '0' break; elseif
47、 ( 'P'<=stringi && stringi<='S' && stringi!='Q' ) strkj = '7' break; if ( 'T'<=stringi && stringi<='V' ) strkj = '8' break; if ( 'W'<=stringi && stringi<='Y' ) strkj = '9'
48、; break; j+; i+;void sort ( int k ) int i, j;for ( i=0; i<k; i+ )for ( j=i+1; j<k; j+ )if ( strcmp(stri, strj) > 0 )char temp8;strcpy ( temp, stri );strcpy ( stri, strj );strcpy ( strj, temp );void print ( int k )int i, j, flag = 0;for ( i=0; i<k; )int count = 1;for ( j=i+1; j<k; j+ )
49、if ( !strcmp(stri, strj) ) count+;flag = 1; if ( count>1 ) printf ( "%c%c%c-%c%c%c%c %dn", stri0, stri1, stri2, stri3, stri4, stri5, stri6, count ); i += count; else i+;if (!flag) printf ( "No duplicates.n" );int main ()int k, i;scanf ( "%d", &k );char string20;f
50、or ( i=0; i<k; i+ )scanf ( "%s", string );pick ( string, i );memset ( string, 0, sizeof(string) );stri7 = '0'sort ( k ) ;print ( k );return 0;4、字符串判等問(wèn)題描述判斷兩個(gè)由大小寫(xiě)字母和空格組成的字符串在忽略大小寫(xiě)和壓縮掉空格后是否相等輸入形式第1行是測(cè)試數(shù)據(jù)的組數(shù)n,每組測(cè)試數(shù)據(jù)占2行,第1行是第一個(gè)字符串s1,第2行是第二個(gè)字符串s2。 每組測(cè)試數(shù)據(jù)之間有一個(gè)空行,每行數(shù)據(jù)不超過(guò)100個(gè)字符(注意字符串的長(zhǎng)度
51、可能為0)輸出形式n行,相等則輸出YES,否則輸出NO樣例輸入3a A bb BB ccc CCCAa BBbb CCCccca dfadf fasdfadasddfsfsaf樣例輸出YESYESNO# include <stdio.h># include <string.h>/# include <math.h># include <ctype.h>/# include <stdlib.h>const int N = 100;char str2N = '0'void pick ( char string , int
52、k )char *p = string;int j = 0;while ( (*p)!='0' )if ( isalpha(*p) ) strkj=tolower(*p);j+; if ( *p=10 ) strkj=10;j+; p+;int main()char stringN;int n;int i, j;scanf ("%d",&n);for ( i=0; i<n; i+ )getchar();for ( j=0; j<2; j+ )fgets( string, N-1, stdin );pick ( string, j );in
53、t temp = strcmp( str0,str1 );if ( !temp ) printf ( "YESn" );else printf ( "NOn" );memset ( str, 0, sizeof(str) );return 0;5、All in All問(wèn)題描述You have devised a new encryption technique which encodes a message by inserting between its characters randomly generated strings in a clever way. Because of pending patent issues we will not discuss in detail how the strings are generated and inserted into the original message. To validate your method, however, it is necessary to write a program that checks if the message is really encoded in
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 倉(cāng)儲(chǔ)用房租賃合同細(xì)則
- 商品買賣合同范本版
- 度公共設(shè)施維護(hù)合同協(xié)議
- 租賃合同的出租人:權(quán)利與義務(wù)解析
- 度股東借款合同范本
- 商業(yè)合作裝修合同
- 商業(yè)停車場(chǎng)租賃合同其一
- 城市綠化苗木采購(gòu)合同示例
- 企業(yè)間拆借合同樣本
- 服裝原材料采購(gòu)合同
- 《生命與宗教》課件
- 2024年河南省《輔警招聘考試必刷500題》考試題庫(kù)含答案【綜合卷】
- 2024-2025學(xué)年成都市金牛區(qū)九年級(jí)上期末(一診)英語(yǔ)試題(含答案)
- 2025年高壓電工資格考試國(guó)家總局模擬題庫(kù)及答案(共四套)
- 2024-2025學(xué)年廣東省深圳市南山區(qū)監(jiān)測(cè)數(shù)學(xué)三年級(jí)第一學(xué)期期末學(xué)業(yè)水平測(cè)試試題含解析
- 廣東2024年廣東金融學(xué)院招聘專職輔導(dǎo)員9人筆試歷年典型考點(diǎn)(頻考版試卷)附帶答案詳解
- 2025年研究生考試考研英語(yǔ)(二204)試卷與參考答案
- DB31∕731-2020 船舶修正總噸單位產(chǎn)品能源消耗限額
- 2024-年全國(guó)醫(yī)學(xué)博士外語(yǔ)統(tǒng)一入學(xué)考試英語(yǔ)試題
- 初中物理典型易錯(cuò)習(xí)題(380道)含解析和答案
- 抗滑樁(旋挖樁)專項(xiàng)施工方案
評(píng)論
0/150
提交評(píng)論