C程式設計高階 期末考試

2021-08-02 17:44:33 字數 3449 閱讀 4766

程式設計題#1:含k個3的數(簡單,但查到了一些東西)

輸入二個正整數m 和 k,其中1 < m < 100000,1 < k <5 ,判斷m 能否被19整除,且恰好含有k個3,如果滿足條件,則輸出yes,否則,輸出no。

例如,輸入:

43833 3

滿足條件,輸出yes

如果輸入

39331 3

儘管有3個3,但不能被19整除,也不滿足條件,應輸出no

輸入m 和 k 的值,空格間隔

輸出滿足條件時輸出 yes,不滿足時輸出 no

#include 

using

namespace

std;

int main() //看每一位有沒有3,這裡本來用的itoa,但poj通不過》。

if (num_3 ==k);

else

flag = 0;

if (flag)cout

<< "yes"

<< endl;

else

cout

<< "no"

<< endl;

return

0;}

1.itoa實現數字到字串格式轉換

#include 

itoa(num,str,10);//str給個指標就行,10是進製數

char*itoa(int

value,char*string,int radix);

intvalue 被轉換的整數,char *string 轉換後儲存的字元陣列,int radix 轉換進製數,如2,8,10,16 進製等

itoa操作使用

itoa操作使用

標頭檔案:

2.另有sprintf也可完成類似功能,沒有試,暫時不管

3.0到9的ascii碼是48+i,本來想用這個轉字串的,後來發現這題不需要轉字串》。

程式設計題#2:字串中次數第2多的字母(不難)

輸入一串長度不超過500個符號的字串,輸出在串中出現第2多的英語字母(大小寫字母認為相同)和次數(如果串中有其它符號,則忽略不考慮)。如果有多個字母的次數都是第2多,則按串中字母出現的順序輸出第1個。

例 ab&dcaab&c9defgb

這裡,a 和 b都出現3次,c和d都出現2次,e、f 和 g 各出現1次,其中的符號&和9均忽略不考慮。因此,出現第2多的應該是 c 和 d,但是 d 開始出現的位置在 c 的前面,因此,輸出為

d+d:2

(假定在字串中,次數第2多的字母總存在)

輸入乙個字串

輸出大寫字母+小寫字母:個數

#include 

#include

using namespace std;

int second(int a)

}for (int i = 0; i < 26; i++)

max = 0;

for (int i = 0; i < 26; i++)

}return max;

}int main() ;//a[0]對應'a'的出現次數,以此類推

for (int i = 0; i < len; i++)

if (str[i] >= 'a'&&str[i] <= 'z')

}int sec_num = second(a);//找到第二多的,sec_num存第二大的出現次數

char b[26] = {};

for (int i = 0,j =0; i< 26; i++)

}//b中存第二多的字母,因為可能不止乙個

int len2 = strlen(b);

char sec=0;

for (int i = 0; i < len; i++)

}if (sec != 0)

break;

}//找到第乙個出現的第二多字母

char upper = sec - 32;

cout << upper << '+'

<< sec << ':'

<< sec_num << endl;

return

0;}

感覺寫的結構不太好。

程式設計題#4:尋找平面上的極大點(不難,但中間出了點小錯找了很久)

在乙個平面上,如果有兩個點(x,y),(a,b),如果說(x,y)支配了(a,b),這是指x>=a,y>=b;

用圖形來看就是(a,b)坐落在以(x,y)為右上角的乙個無限的區域內。

給定n個點的集合,一定存在若干個點,它們不會被集合中的任何一點所支配,這些點叫做極大值點。

程式設計找出所有的極大點,按照x座標由小到大,輸出極大點的座標。

本題規定:n不超過100,並且不考慮點的座標為負數的情況。

輸入輸入包括兩行,第一行是正整數n,表示是點數,第二行包含n個點的座標,座標值都是整數,座標範圍從0到100,輸入資料中不存在座標相同的點。

輸出按x軸座標最小到大的順序輸出所有極大點。

輸出格式為:(x1,y1),(x2,y2),…(xk,yk)

注意:輸出的每個點之間有」,」分隔,最後乙個點之後沒有」,」,少輸出和多輸出都會被判錯

#include 

using

namespace

std;

int main() ;

int flag = 1,k = 0;

int (*p)[2] = b;//本打算用指標,但這行沒有用

for (int i = 0; i < num; i++) //這裡,開始少了j!=i導致一直輸出錯

}//cout << flag << endl;調了很長時間才想起來看下這個flag,以後記得可能有問題的地方直接cout看下變數值

if (flag == 1)

flag = 1;

}//極大點存b裡面

int c[100][2];

int max = a[0][0], maxnum = 0;

for (int i = 0; i < k; i++)

}c[i][0] = b[maxnum][0];

c[i][1] = b[maxnum][1];

max = -1;

b[maxnum][0] = -1;

}//b裡面的座標排序,從大到小排c裡面

for (int i = k - 1; i >= 1; i--)

cout

<< '('

<< c[i][0] << ','

<< c[i][1] << ')'

<< ',';

cout

<< '('

<< c[0][0] << ','

<< c[0][1] << ')'

0;}

最後乙個走迷宮沒寫》。

Coursera C程式設計高階 期末考試

注意 總時間限制 1000ms 記憶體限制 65536kb 輸入二個正整數m 和 k,其中1 m 100000,1 k 5 判斷m 能否被19整除,且恰好含有k個3,如果滿足條件,則輸出yes,否則,輸出no。例如,輸入 43833 3 滿足條件,輸出yes 如果輸入 39331 3 儘管有3個3,...

北航c 期末考試複習

筆者總結了北航計算機系c 考試的一些重點,希望對以後複習的同學能有所幫助 迭代器,工程模式,觀察者模式必考 變數基本資料型別 void bool char intfloat double wchar t short int typedef newtype oritype sizeof 三種用法 si...

C 期末考試複習筆記

c 語言是物件導向的程式語言,字尾名是.cs c 語言沒有指標c 語言完全擁有.net的自動 機制 c 語言不能用於硬體驅動程式的開發 net是乙個用於建立應用程式的平台 源 是乙個用於應用程式的核心,沒有源 則無法編譯乙個應用程式 工具欄是一些工具按鈕的組合 console.readline 的作...