1. 程式人生 > >[Coursera 計算導論與C語言基礎] 期末程式設計測試

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

程式設計題#1:判斷閏年

來源: POJ (Coursera宣告:在POJ上完成的習題將不會計入Coursera的最後成績。)

注意: 總時間限制: 1000ms 記憶體限制: 65536kB

描述

判斷某年是否是閏年。

輸入

輸入只有一行,包含一個整數a(0 < a < 3000)

輸出

一行,如果公元a年是閏年輸出Y,否則輸出N

提示

公曆紀年法中,能被4整除的大多是閏年,但能被100整除而不能被400整除的年份不是閏年, 能被3200整除的也不是閏年,如1900年是平年,2000年是閏年,3200年不是閏年。

#include<iostream>
using namespace std;

int main() {
	int year = 0;
	cin >> year;
	if (year % 4 == 0) {
		if (year % 100 == 0) {
			if (year % 400 == 0&&year%3200!=0) {
				cout << "Y" << endl;
				

			}
			else {
				cout << "N" << endl;
			}
		}
	
		else { 
			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中為該輸入的除數的數字,數字中間用空格隔開

參考答案

#include<iostream>
using namespace std;

#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>.

提示

注意在內部計算時最好使用double型別,float精準度不能滿足本題測試資料要求。

#include<iostream>
#include <iomanip>
#include <cmath>
using namespace std;

int main() {
	int n,l=0;
	double x[100];
	double y[100];
	double result[100];
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		cin >> x[i] >> y[i];
	}
	for (int i = 0; i < n - 1; i++) {
		for (int j = 0; j < n-1; j++) {
			result[l] = sqrt(pow((x[i] - x[j + 1]), 2) + pow((y[i] - y[j + 1]), 2));
				l++;
		}
	}
	double max = 0;
	for (int i = 0; i < l; i++) {
		if (result[i] > max) {
			max = result[i];
		}
	}
	cout << fixed << setprecision(4) << max << endl;


	return 0;
}

程式設計題#4:簡單計算器

來源: POJ (Coursera宣告:在POJ上完成的習題將不會計入Coursera的最後成績。)

注意: 總時間限制: 1000ms 記憶體限制: 65536kB

描述

一個最簡單的計算器,支援+, -, *, / 四種運算。僅需考慮輸入輸出為整數的情況,資料和運算結果不會超過int表示的範圍。

輸入

輸入只有一行,共有三個引數,其中第1、2個引數為整數,第3個引數為操作符(+,-,*,/)。

輸出

輸出只有一行,一個整數,為運算結果。然而:

1. 如果出現除數為0的情況,則輸出:Divided by zero!

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

提示

可以考慮使用if和switch結構。

#include<iostream>

using namespace std;
int main() {
	int n, m,result;
	char op;
	cin >> n >> m>>op;
	if (op == '+' || op == '-' || op == '*' || op == '/') {
		if (op == '+') {
			result = n + m;
			cout << result << endl;
		}
		if (op == '-') {
			result = n - m;
			cout << result << endl;
		}
		if (op == '*') {
			result = n * m;
			cout << result << endl;
		}
		if (op == '/'&&m != 0) {
			result = n / m;
			cout << result << endl;
		}
		else if (op == '/'&&m == 0) {
			cout << "Divided by zero!" << endl;
		}



	}
	else {
		cout << "Invalid operator!" << endl;
	}
	

	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>。

#include <iostream>  
using namespace std;
#include <cstring>

int main()
{
	char str[11] = { 0 }, substr[4] = { 0 };

	while (cin >> str >> substr) {
		int l = 0;
		int max=0,ith,out;
		int a = strlen(str);
		char insert[10] = { 0 };
		for (int i = 0; i < a; i++) {
			if (str[i] > max) {
				max = str[i];
				ith = i;
			}
		}
		for (int i = ith+1; i < a; i++) {
			
			insert[l] = str[i];
			l++;
		
		}

		int b = strlen(substr);
		int c = strlen(insert);
		for (int j = 0; j < b; j++) {
			str[ith + j + 1] = substr[j];
			out = ith + j + 1;
		}
		for (int i = 0; i < c; i++) {
			str[out + 1 + i] = insert[i];
		}
		cout << str << endl;



			
	}
	system("pause");
	
	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;
}

相關推薦

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

程式設計題#1:判斷閏年來源: POJ (Coursera宣告:在POJ上完成的習題將不會計入Coursera的最後成績。)注意: 總時間限制: 1000ms 記憶體限制: 65536kB描述判斷某年是否是閏年。輸入輸入只有一行,包含一個整數a(0 < a < 3

[Coursera 計算導論C語言基礎] 第十週作業(下)

程式設計題#5:異常細胞檢測 來源: POJ (Coursera宣告:在POJ上完成的習題將不會計入Coursera的最後成績。) 注意: 總時間限制: 1000ms 記憶體限制: 65536kB 描

[Coursera 計算導論C語言基礎]第十週

程式設計題#1:求字母的個數在一個字串中找出母音字母a,e,i,o,u出現的次數。輸入一行字串(字串中可能有空格,請用cin.getline(s,counts)方法把一行字串輸入到字元陣列s中,其中counts是s的最大長度,這道題裡面可以直接寫80。),字串長度小於80個字

北京大學Cousera學習筆記--4-計算導論C語言基礎--計算機的基本原理-程序運行的基本原理

運行程序 控制 部分 byte 輸入 分類 技術 表示 在一起 已知:電路能完成計算 怎麽計算:設計好很多個原子電路,需要的時候就把他們臨時組裝在一起--ENIAC 升級:馮諾依曼-EDVAC(現在的計算機都是)   1、通過某種命令來控制計算機。讓計算機按照這種命令來運行

計算導論C語言基礎week8

抄寫題.列舉法 4名專家對4款賽車進行評論 1)A說:2號賽車是最好的; 2)B說:4號賽車是最好的; 3)C說:3號賽車不是最好的; 4)D說: B說錯了。 事實上只有1款賽車最佳,且只有1名專家說對了,其他3人都說錯了。 請程式設計輸出最佳車的

計算導論C語言基礎week6

程式設計題#1:蘋果和蟲子 你買了一箱n個蘋果,很不幸的是買完時箱子裡混進了一條蟲子。蟲子每x小時能吃掉一個蘋果,假設蟲子在吃完一個蘋果之前不會吃另一個,那麼經過y小時你還有多少個完整的蘋果? #i

計算機導論C語言基礎 Coursera 第一週

計算機導論與C語言基礎 第一週 1.1 數學危機 1.2 圖靈機 1.3 計算機為什麼能計算? 第一週 1.1 數學危機 第一次,第三次危機是因為不完備。 第一次危機是因為系統不封閉,加減開根號數值不在有

菜鳥之路【計算導論C基礎】練習2:計算概論第六週 B-05作業

2016年1月6日 在做題前先感謝各位大神的解法以及思路 程式設計題#1:數字求和 描述 給定一個正整數a,以及另外的5個正整數,問題是:這5個整數中,小於a的整數的和是多少? 輸入 輸入一行,只包括6個小於100的正整數,其中第一個正整數就是a。 輸出 輸出一行,給出一個

20165336 學習基礎C語言基礎調查

代碼行數 內容 編程 c代碼 低耦合 維數 學習 閉操作 服務 20165336 技能學習心得與c語言學習 一、心得體會 做教練 從老師的健身教練健身學員的學習關系中我懂得了學生應該有自主的學習意識,要有計劃地去訓練、去流汗,並且要以100分的要求嚴於律己,老師是指導我們

黑馬程式設計師——C語言基礎——指標程式設計練習題

------Java培訓、Android培訓、iOS培訓、.Net培訓、期待與您交流! ------- 今天覆習了一下指標的相關知識,並且在網上搜了一道小的程式設計練習題,大概題意如下: 有n個整數,使其前面各數順序向後移m個位置,最後m個數變成最前面的m個數。 大概的

關於matlabC語言的混合程式設計

摘要:本文著重描述了運用MATLAB命令將M檔案翻譯為C語言程式,並修改為可直接呼叫的C語言函式的方法,使用該方法所需要注意的方法侷限性和MATLAB版本差異的影響。運用該方法將能夠使C語言能直接使用MATLAB當中已經完成的數學計算功能,大大擴充了C語言的數學計算功能和開

C語言基礎-第四課-數組字符串

cat ant 隨機數 打印 第一個 長度 stdin 有效 borde 1 數組 1.1 一維數組定義與使用 int array[10];//定義一個一維數組,名字叫array,一共有10個元素,每個元素都是int類型的 array[0]

C語言基礎--決策判斷

出現 program 程序 c語言基礎 res else if express 基礎 裏的 需要掌握的內容: 一. 1.if語句 C語言提供一種稱為if語句的語法格式,通用的形式是: if(express) { programming statements; }

Objective-C語言基礎總結

什麼是Objective-C Objective-C是C語言的一個超集,具有面向物件的特性,並具備了強大的執行時動態語言特性。 Objective-C的優缺點 優點: 作為C語言的超級,在C語言的基礎上衍生了很多新的語言特徵,封裝的很完善且使用方便,大大降低了程式設

C語言基礎知識(期末嘍)

演算法結構:一、順序結構、選擇結構、迴圈結構;二、迴圈結構又分為while型、until型、for迴圈結構;程式流程圖; 結構化程式設計方法:(1)自頂向下;(2)逐步細化;(3)模組化設計;(4)結構化編碼。 資料型別: 常量:常量包括字面常量、直接常量和符號常量; 變數:C語言規定標誌符只能由字母

嵌入式c語言基礎 --陣列指標

嵌入式c語言基礎 1.指標與陣列 指標是一種變數的型別,存放某一元素的地址 指標獲取陣列中的值 #include <stdio.h> int main(void) { int a = 10; int *p = &a;

C語言基礎知識筆記:day4字串字元陣列

注:本筆記為直接上傳,因各個markdown筆記語法的差異性,在顯示上略有區別。 如需原版請聯絡:[email protected]。(郵件主題為:學習筆記,正文需要的筆記名,可以直接複製該筆記的網址)。同時歡迎各位一起學習交流。 day4字串與字元陣

C語言基礎 指標變數的定義使用

---------------start reading--------------- 前言: 指標變數是C語言基礎中的重要模組,但指標的定義與使用卻常常混淆,分不清,今天,我們就來梳理一下指標的定義和使用方法 (1)(2):定義變數並將其賦值 (3):定義一

C語言基礎教程 printf( )函式中的回車‘\r’回車換行'\n'

今天完成了初級階段的學習,其實以前在開發微控制器的時候用過C語言,但是沒有系統的學過,所以再次學習感覺能夠查缺補漏。 C語言中的printf( )函式是一個很重要的函式。printf( )中的字元包含了三種: (1)以%開頭的格式控制字元 (2)以 \ 開頭的轉義字元 (3)普通字元 在printf

C#.NET3.0高階程式設計》摘要-----第三章 C#語言基礎

第三章 C#語言基礎 3.1、剖析一個簡單的C#程式 1.簡單示例     C#要求所有的程式邏輯都包含在一個型別定義中。     using System;     class HelloClass     {         public static int Main(string[] ar