国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

[Coursera 計算導論與C語言基礎] 期末編程測試

2019-11-08 01:41:30
字體:
來源:轉載
供稿:網友

編程題#1:判斷閏年

來源: POJ (Coursera聲明:在POJ上完成的習題將不會計入Coursera的最后成績。)注意: 總時間限制: 1000ms 內存限制: 65536kB描述判斷某年是否是閏年。輸入輸入只有一行,包含一個整數a(0 < a < 3000)輸出一行,如果公元a年是閏年輸出Y,否則輸出N提示公歷紀年法中,能被4整除的大多是閏年,但能被100整除而不能被400整除的年份不是閏年, 能被3200整除的也不是閏年,如1900年是平年,2000年是閏年,3200年不是閏年。
//第12周//編程題#1:判斷閏年//邏輯:閏年:能被4整除,但其中兩種要被剔除:1.能被100整除而不能被400整除。2.能被3200整除#include <iostream>using namespace std;bool judge(int year){	bool flag = false;	if (year % 4 == 0) //能被4整除	{		flag = true;		if (year % 100 == 0 && year % 400 != 0) flag = false;//剔除能被100整除而不能被400整除		if (year % 3200 == 0) flag = false;//剔除能被3200整除	}	return flag;}int main(){	int year;	cin >> year;	bool flag = judge(year);	if (flag) cout << 'Y' << endl;	else cout << 'N' << endl;	return 0;}編程題#2:能被3,5,7整除的數來源: POJ (Coursera聲明:在POJ上完成的習題將不會計入Coursera的最后成績。)注意: 總時間限制: 1000ms 內存限制: 65536kB描述輸入一個整數,判斷它能否被3,5,7整除,并輸出以下信息:1、能同時被3,5,7整除(直接輸出3 5 7,每個數中間一個空格);2、能被其中兩個數整除(輸出兩個數,小的在前,大的在后。例如:3 5或者 3 7或者5 7,中間用空格分隔)3、能被其中一個數整除(輸出這個除數)4、不能被任何數整除;(輸出小寫字符'n',不包括單引號)輸入一個數字輸出一行數字,從小到大排列,包含3,5,7中為該輸入的除數的數字,數字中間用空格隔開
//編程題#2:能被3,5,7整除的數#include <iostream>using namespace std;int main(){	int num;	while (cin>>num)	if (num%3==0&&num%5==0&&num%7==0)	{		cout << "3 5 7"<< endl;	}	else if (num % 3 == 0 && num % 5 == 0 && num % 7 != 0)	{		cout << "3 5" << endl;	}	else if (num % 3 == 0 && num % 5 != 0 && num % 7 == 0)	{		cout << "3 7" << endl;	}	else if (num % 3 != 0 && num % 5 == 0 && num % 7 == 0)	{		cout << "5 7" << endl;		}	else if (num % 3 == 0 && num % 5 != 0 && num % 7 != 0)	{		cout << "3" << endl;	}	else if (num % 3 != 0 && num % 5 == 0 && num % 7 != 0)	{		cout << "5" << endl;	}	else if (num % 3 != 0 && num % 5 != 0 && num % 7 == 0)	{		cout << "7" << endl;	}	else	{		cout << "n" << endl;	}	return 0;}

更簡潔的寫法:

#include <iostream>using namespace std;int main(){    int num = 0;    bool flag = false;    while(cin >> num)    {        if (num%3 == 0)        {            cout << "3 ";            flag = true;        }        if (num%5 == 0)        {            cout << "5 ";            flag = true;        }        if (num%7 == 0)        {            cout << "7";            flag = true;        }        if (flag == false)        {            cout << "n";        }        cout << endl;        flag = false;    }    return 0;}

編程題#3:最遠距離來源: POJ (Coursera聲明:在POJ上完成的習題將不會計入Coursera的最后成績。)注意: 總時間限制: 1000ms 內存限制: 65536kB描述給定一組點(x,y),求距離最遠的兩個點之間的距離。輸入第一行是點數n(n大于等于2)接著每一行代表一個點,由兩個浮點數x y組成。輸出輸出一行是最遠兩點之間的距離。使用cout << fixed << setPRecision(4) << dis << endl;輸出距離值并精確到小數點后4位。fixed和setprecision是在<iomanip>頭文件里定義的格式控制操作符,需要#include <iomanip>.
//編程題#3:最遠距離#include <iostream>using namespace std;#include <cmath>#include <iomanip>int main(){	double point[10][2] = { 0 };   //存儲所有點的坐標(x,y)	double distance[50] = { 0 };  //記錄每兩個點之間的距離	double result_max = 0;	int n = 0;	cin >> n;	for (int i = 0; i < n; i++)	{		cin >> point[i][0] >> point[i][1];	}	int m = 0;	for (int i = 0; i < n - 1; i++)          //對所有point向前兩兩組合,求出距離		for (int j = i + 1; j < n; j++)		{		double result = sqrt((point[i][0] - point[j][0])*(point[i][0] - point[j][0]) + (point[i][1] - point[j][1])*(point[i][1] - point[j][1]));		distance[m] = result;     //將距離記錄在distance數組中		m++;		}	for (int i = 0; i < 50; i++)	{		//cout << "distance:" << distance[i] << endl;  //調試用		if (distance[i] > result_max) result_max = distance[i];	}	cout << fixed << setprecision(4) << result_max << endl;	return 0;}編程題#4:簡單計算器來源: POJ (Coursera聲明:在POJ上完成的習題將不會計入Coursera的最后成績。)注意: 總時間限制: 1000ms 內存限制: 65536kB描述一個最簡單的計算器,支持+, -, *, / 四種運算。僅需考慮輸入輸出為整數的情況,數據和運算結果不會超過int表示的范圍。輸入輸入只有一行,共有三個參數,其中第1、2個參數為整數,第3個參數為操作符(+,-,*,/)。輸出輸出只有一行,一個整數,為運算結果。然而:1. 如果出現除數為0的情況,則輸出:Divided by zero!

2. 如果出現無效的操作符(即不為 +, -, *, / 之一),則輸出:Invalid Operator!

#include <iostream>using namespace std;int main(){    int firstNum = 0, secondNum = 0;    char operate = 0;    cin >> firstNum >> secondNum >> operate;    switch(operate)    {    case '+':cout << firstNum+secondNum << endl;break;    case '-':cout << firstNum-secondNum << endl;break;    case '*':cout << firstNum*secondNum << endl;break;    case '/':if (secondNum == 0)        //除數為0的情況應該單獨放在除法里            {                    cout << "Divided by zero!" << endl;            }             else            {                cout << firstNum/secondNum << endl;            }            break;    default:cout << "Invalid operator!" << endl;break;    }    return 0;}

編程題#5:字符串插入來源: POJ (Coursera聲明:在POJ上完成的習題將不會計入Coursera的最后成績。)注意: 總時間限制: 1000ms 內存限制: 65536kB、描述有兩個字符串str和substr,str的字符個數不超過10,substr的字符個數為3。(字符個數不包括字符串結尾處的'/0'。)將substr插入到str中ASCII碼最大的那個字符后面,若有多個最大則只考慮第一個。輸入輸入包括若干行,每一行為一組測試數據,格式為str substr輸出對于每一組測試數據,輸出插入之后的字符串。提示這題有多組輸入,請參照第二題的提示依次讀入和處理每一組數據。

如果使用了字符串函數,比如strlen,請包含cstring頭文件 #include <cstring>。

這是我寫的,結果是正確的,但是系統不接受。

//編程題#5:字符串插入#include <iostream>using namespace std;#include <cstring>int main(){	char a[10] = { 0 };	char b[4] = { 0 };  //大小定義為4,好讓按ctrl+z終止(cin >> a >> b)時不報錯:數組b越界。	while (cin >> a >> b)	{		char insert[13] = { 0 };		int position = 0;  //記錄ASCII碼字符最大的位置		char max = 0;		//找出ASCII碼字符最大的位置		for (int i = 0; i < 10; i++)		{			if (a[i]>max)			{				max = a[i];				position = i;			}		}		for (int i = 0; i <= position; i++) //將position及之前的字符拷貝進數組insert		{			insert[i] = a[i];		}		for (int i = position + 1; i < strlen(a); i++) //將數組a中position之后的字符,后移三位存入insert數組中		{			insert[i + 3] = a[i];		}		//將數組b拷貝進數組insert中空出的三個位置		insert[position + 1] = b[0];		insert[position + 2] = b[1];		insert[position + 3] = b[2];		cout << insert << endl;  //注意,這里直接cout輸出字符數組。	}	return 0;}這是參考的系統接收的答案,邏輯是一樣的==:

#include <iostream>using namespace std;int main(){    char str[14] = {0}, substr[4] = {0};    while (cin >> str >> substr)    {        int i = 0, posBiggest = 0;        char strBiggest = 0;        while (str[i])        {            if (str[i] > strBiggest)            {                posBiggest = i;                strBiggest = str[i];            }            i++;        }        for (int j = 9; j > posBiggest; j--)        {            str[j+3] = str[j];        }        str[posBiggest+1] = substr[0];        str[posBiggest+2] = substr[1];        str[posBiggest+3] = substr[2];        cout << str << endl;    }    return 0;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 福贡县| 明光市| 拜城县| 三门县| 锡林郭勒盟| 资溪县| 清涧县| 晋宁县| 石林| 兰州市| 汉中市| 六盘水市| 兴安县| 大宁县| 九龙县| 和龙市| 昌图县| 开封县| 宁陕县| 本溪| 昌平区| 四子王旗| 江永县| 公安县| 成武县| 贵州省| 百色市| 仙游县| 秦皇岛市| 故城县| 江门市| 抚宁县| 新和县| 卓资县| 响水县| 惠来县| 惠州市| 南康市| 南京市| 霍州市| 湖南省|