大學C 題庫及答案.doc
《大學C 題庫及答案.doc》由會員分享,可在線閱讀,更多相關《大學C 題庫及答案.doc(108頁珍藏版)》請在裝配圖網上搜索。
1、C++題庫答案 Q5.(10分)寫一個程序根據從鍵盤輸入的里氏強度顯示地震的后果。根據里氏強度地震的后果如下: 里氏強度 后果 小于4 很小 4.0到5.0 窗戶晃動 5.0到6.0 墻倒塌;不結實的建筑物被破壞 6.0到7.0 煙囪倒塌;普通建筑物被破壞 7.0到8.0 地下管線破裂;結實的建筑物也被破壞 超過8.0 地面波浪狀起伏;大多數建筑物損毀 **輸入格式要求:實數, 提示信息:cout << "請輸入地震的里氏強度: " << endl; **輸出格式要求: "本次地震后果:很??!" "本次地震后果:窗戶晃動!" "本次
2、地震后果:墻倒塌;不結實的建筑物被破壞!"
"本次地震后果:煙囪倒塌;普通建筑物被破壞!"
"本次地震后果:地下管線破裂;結實的建筑物也被破壞!"
"本次地震后果:地面波浪狀起伏;大多數建筑物損毀!"
#include
3、e if (magnitude < 5.0) { cout << "本次地震后果:窗戶晃動!" << endl; } else if (magnitude < 6.0) { cout << "本次地震后果:墻倒塌;不結實的建筑物被破壞!" << endl; } else if (magnitude < 7.0) { cout << "本次地震后果:煙囪倒塌;普通建筑物被破壞!" << endl; } else if (magnitude < 8.0) { cout << "本次地震后果:地下管線破裂;結實的建筑物也被破壞!" << endl; } else {
4、 cout << "本次地震后果:地面波浪狀起伏;大多數建筑物損毀!" << endl; } return 0; } Q6.(10分)寫一個程序從鍵盤輸入1到7中的某個數字,其中1代表星期天,2代表星期一,3代表星期二等。根據用戶輸入的數字顯示相應的星期幾。如果用戶輸入的數字超出了1到7的范圍,顯示輸出一個錯誤提示信息。 **輸入格式要求:整數, 提示信息:cout << "Please input a single numeral(1-7): "; **輸出格式要求:"Monday" (星期幾的英文單詞首字母大寫加換行) 提示信息:"Invalid - please
5、 input a single numeral(1-7)."(加換行)
#include
6、ndl; break; case 2: cout << "Monday" << endl; break; case 3: cout << "Tuesday" << endl; break; case 4: cout << "Wednesday" << endl; break; case 5: cout << "Thursday" << endl; break; case 6: cout << "Friday" << endl; break; case 7: cout << "Saturday" << endl; break; } return 0;
7、} Q7.(10分)有一天,一位百萬富翁遇到一個陌生人,陌生人找他談一個換錢的計劃,陌生人對百萬富翁說:“我每天給你10萬元,而你第一天只需給我1分錢,第二天我仍給你10萬元,你給我2分錢,第三天我仍給你10萬元,你給我4分錢……。你每天給我的錢是前一天的兩倍,直到滿一個月(30天)為止”,百萬富翁很高興,欣然接受了這個契約。請編程計算在這一個月中陌生人總計給百萬富翁多少錢,百萬富翁總計給陌生人多少錢。 **輸入提示信息和數據格式:無 **輸出提示信息和數據格式:cout << "百萬富翁給陌生人:" << toStranger << "元" << endl;
8、 cout << "陌生人給百萬富翁:" << toRichman << "元" << endl;
#include
9、 += 100000; /* 陌生人每天給富翁10萬元 */
toStranger += term;
term = term * 2; /* 富翁每天給陌生人的錢是前一天的兩倍 */
}
cout << "百萬富翁給陌生人:" << toStranger << "元" << endl;
cout << "陌生人給百萬富翁:" << toRichman << "元" << endl;
return 0;
}
Q8.(10分)編程計算自然數的立方和,直到立方和大于等于1000000時為止。統(tǒng)計并輸出實際累加的項數。
輸出格式要求:cout<<"sum="< 10、;
cout << "count =" << i << endl;
輸出結果為: sum=1071225
count =45
#include 11、ndl;
return 0;
}
Q9.(10分)求多項式 1!+2!+3!+……+15!的值。
輸出格式要求:cout<<"s="< 12、出。
質數(素數)的說明:“質數是只能被1和其本身整除的數”。
輸入提示要求:無
輸出結果格式要求:質數之間以一個空格隔開
輸出所有質數后換行輸出:sum=4227
#include 13、i > tmp)
{
cout << m << " ";
sum += m;
}
}
cout << endl;
cout << "sum=" << sum << endl;
return 0;
}
Q11.(10分)在一個已知的一維數組中分類統(tǒng)計正數和負數的個數。正數的個數存入變量C1中,負數個數存入變量C2中.
輸出格式要求:cout << "c1=" << c1 << endl;
cout << "c2=" << c2 << endl;
#include 14、in()
{
int a[10] = {1, -2, 0, 4, -5, 0, 7, 8, -9, 10};
int c1 = 0, c2 = 0;
int i;
for (i = 0; i < 10; i++)
if (a[i] > 0)
c1++;
else if (a[i] < 0)
c2++;
cout << "c1=" << c1 << endl;
cout << "c2=" << c2 << endl;
return 0;
}
Q12.(10分)在包含10個數的一維整數數組a中查找最大元素max和最小元素min。
輸出格式要求:cout < 15、< "最大元素:" << max << endl;
cout << "最小元素:" << min << endl;
#include 16、(a[i] < min) min = a[i];
}
cout << "最大元素:" << max << endl;
cout << "最小元素:" << min << endl;
return 0;
}
Q13.(10分)用while循環(huán)編程,求自然數1至100之間各奇數平方和sum。
輸出結果格式為:sum=166650
#include 17、ut << "sum=" << sum << endl;
return 0;
}
Q14.(10分)判斷一個數23437是否是素數(要求程序中設置一個參數flag,flag為1代表是素數,為0代表不是)
輸出結果:0
#include 18、 endl;
return 0;
}
Q15.(10分)已知一個數m(=252),用循環(huán)求各位數字之和。
輸出結果格式:s=9
#include 19、=20
#include 20、1
2332
#include 21、& c == b)
{
cout << m[i] << endl;
n++;
}
}
return 0;
}
Q18.(10分)將1-100之間奇數順序累加存入n中,直到其和等于或大于200為止。
輸出結果格式:n=225
#include 22、從鍵盤上輸入三個整數,編寫程序求出三個數中的最大值。
輸入格式要求:cout<<"請輸入三個整數:";
輸出格式要求:cout<<"最大值是:"< 23、 a;
cout << "最大值是:" << max << endl;
return 0;
}
Q20.(10分)輸入年份和月份,編寫程序,判斷這一年該月份的天數。
輸入格式要求: cout << "請輸入年份和月份:";
輸出格式要求:cout << year << "年" << month << "月" << "是" << day << "天。" << endl;
#include 24、 >> year >> month;
switch (month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day = 31;
break;
case 4:
case 6:
case 9:
case 11:
day = 30;
break;
case 2:
if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0)
day = 29;
else
day = 28;
break;
}
cout << year << 25、 "年" << month << "月" << "是" << day << "天。" << endl;
return 0;
}
Q21.(10分)
編寫程序,求解下面的分段函數:
輸入格式要求:cout<<"請輸入x:";
輸出格式要求:cout<<"y="< 26、*x;
cout<<"y="< 27、10分)利用選擇法將下面10個數按降序排列。
有如下定義:int n[10] = {5, 6, 4, 2, 3, 7, 8, 5, 6, 7};
輸入格式要求:無
輸出格式要求:以逗號分隔降序數列
#include 28、
k = j;
t = n[i];
n[i] = n[k];
n[k] = t;
}
for (j = 0; j < 10; j++)
cout << n[j] << ",";
return 0;
}
Q24.(10分)定義數組,輸入不多于20名若干學生成績,統(tǒng)計高于平均分的人數k,用-1做結束標志。
輸入格式要求:無
輸出格式要求:cout << "高于平均分的人數:" << k << endl;
#include 29、;
int n = 0, k = 0, i;
cin >> cj[0];
while (cj[n] >= 0)
{
sum += cj[n];
n++;
cin >> cj[n];
}
aver = sum /( n-1);
for (i = 0; i < n-1; i++)
if (cj[i] > aver) k++;
cout << "高于平均分的人數:" << k << endl;
return 0;
}
Q25.(10分)已知三個數a,b,c,按由小到大的順序存入a,b,c中并輸出.
輸入格式要求:cout << "輸入三個整數:";
輸出格式要求 30、:cout << "由小到大的順序是:" << a << "," << b << ","< 31、ut << "由小到大的順序是:" << a << "," << b << ","< 32、;
}
cout <<"sum= " << sum << endl;
return 0;
}
Q27.(10分)編寫函數,刪除字符串中的指定字符,函數原型為:
void deletechar(char *string, char ch);
設char c[100] = "abcdabcd aabbccdd";
輸出結果:bcdbcd bbccdd
#include 33、 k(0);
while (string[i++] != \0)
if (string[i] != ch)
string[k++] = string[i];
string[k] = \0;
}
int main ()
{
char c[100] = "abcdabcd aabbccdd";
deletechar(c, a);
cout << c << endl;
return 0;
}
Q28.(10分)編寫函數,將一個十進制無符號整數轉換為二進制整數,函數原型為:
void transform(char*p,long i,int base=2);
#includ 34、e 35、 \0;
}
int main()
{
char c[256];
transform(c, 45678, 2);
cout << c << endl;
return 0;
}
Q29.(10分)輸入10個學生的成績,存放在一個一維數組中,求出總分和平均分。
輸入提示信息格式要求: cout << "請輸入學生的分數:";
輸出結果格式要求:cout << "學生的總分是:" << sum << endl;
cout << "學生的平均分是:" << aver << endl;
#include 36、nclude 37、
Q30.(10分)輸入10個學生的成績,存放在一個一維數組中,找出其中的最高分和所對應的學生。
輸入提示信息格式要求:cout << "請輸入學生的分數:";
輸出提示信息格式要求:cout << "第" << n + 1 << "名學生的分數最高,是:" << max << endl;
#include 38、];
for (i = 1; i <= 9; i++)
if (max < a[i])
{
max = a[i];
n = i;
}
cout << "第" << n + 1 << "名學生的分數最高,是:" << max << endl;
return 0;
}
Q31.(10分)求一個33矩陣的對角線元素之和。
輸入提示信息格式要求: cout << "請輸入3行3列矩陣的元素:" << endl;
輸出提示信息格式要求: cout << "請輸出這個3行3列的矩陣:" << endl;
cout << "對角線元素之 39、和為:" << sum << endl;
#include 40、r (j = 0; j < 3; j++)
cout << setw(5) << a[i][j];
cout << endl;
}
for (i = 0; i < 3; i++)
sum += a[i][i];
cout << "對角線元素之和為:" << sum << endl;
return 0;
}
Q32.(10分)用公式 π=4-4/3+4/5-4/7+...)計算π的近似值,直到最后一項絕對值小于1e-5
輸入格式要求:無
輸出結果格式要求: cout << "pi =" << pi << endl;
#include 41、namespace std;
int main()
{
double pi = 0;
double n = 1;
int f = 1;
while (4.0 / n >= 1e-5)
{
pi = pi + f * 4 / n;
n = n + 2;
f = -f;
}
cout << "pi =" << pi << endl;
return 0;
}
Q33.(10分)求一個44矩陣的四周元素之和。
輸入提示信息格式要求:cout << "請輸入4行4列矩陣的元素:" << endl;
輸出提示信息格式要求:cout << "請輸出這個4行4列的矩陣:" < 42、< endl;
cout << "四周元素之和為:" << sum << endl;
#include 43、的矩陣:" << endl;
for (i = 0; i < 4; i++)
{
for (j = 0; j < 4; j++)
cout << setw(5) << a[i][j];
cout << endl;
}
for (i = 0; i < 4; i++)
for (j = 0; j < 4; j++)
if (i == 0 || i == 3 || j == 0 || j == 3)
sum += a[i][i];
cout << "四周元素之和為:" << sum << endl;
return 0;
}
Q34.(10分)4個學生學習5門功課,要求 44、輸入所有學生的各門功課的成績,并分別求出每門功課的平均成績。
輸入提示信息格式要求: cout << "輸入第" << i + 1 << "個學生成績:";
輸出提示信息格式要求: cout << "第" << i + 1 << "個學生平均成績:" << setprecision(3) << sum / 5 << endl;
}
#include 45、i < 4; i++)
{
cout << "輸入第" << i + 1 << "個學生成績:";
for (j = 0; j < 5; j++)
cin >> s[i][j];
}
for (i = 0; i < 4; i++)
{
sum = 0;
n = 0;
for (j = 0; j < 5; j++)
sum += s[i][j];
cout << "第" << i + 1 << "個學生平均成績:" << setprecision(3) << sum / 5 << endl;
}
return 0;
}
Q35.(10分)請輸入10個整數到一個 46、一維數組,并逆序輸出。
輸入提示信息格式要求:無
輸出提示信息格式要求:cout << a[i] << " ";
#include 47、0], i;
for (i = 0; i <= 9; i++)
a[i] = i;
for (i = 9; i >= 0; i--)
cout << a[i] << " ";
return 0;
}
Q36.(10分)在a數組和b數組中放入an+1和bn+1個由小到大的有序數,程序把兩個數組中的數按由小到大的順序歸并在c數組中。
設: int a[10] = {2, 4, 5, 8, 9, 19}, an = 5;
int b[10] = {2, 3, 4, 8, 12, 18}, bn = 5;
輸出格式要求:輸出結果用2個空格隔開
48、 cout << endl;
#include 49、[k] = a[i];
k++;
i++;
}
else
{
c[k] = b[j];
k++;
j++;
}
for (i = 0; i < k; i++)
cout << c[i] << " ";
cout << endl;
return 0;
}
Q37.(10分)請輸出如下方陣:
1 2 2 2 2 2 1
3 1 2 2 2 1 4
3 3 1 2 1 4 4
3 3 3 1 4 4 4
3 3 1 5 1 4 4
3 1 5 5 5 1 4
1 5 5 5 50、 5 5 1
輸出格式要求:數據之間用2個空格隔開。
#include 51、 < j && i + j > 6)
a[i][j] = 4;
else
a[i][j] = 5;
}
for (i = 0; i < 7; i++)
{
for (j = 0; j < 7; j++)
cout << a[i][j] << " ";
cout << endl;
}
return 0;
}
Q38.(10分)輸入20個整數,統(tǒng)計非負數的個數,并計算它們的和,然后將非負數從小到大進行排序并輸出。
輸入信息提示要求:無
輸出提示信息格式要求:cout<<"非負數有:"< 52、數是:"< 53、s = 0, n = 0, i, j, t;
for (i = 0; i <= 19; i++)
cin >> a[i];
for (i = 0; i <= 19; i++)
{
if (a[i] > 0)
{
a[n] = a[i];
n++;
}
}
cout << "非負數有:" << n << "個" << endl;
cout << "非負數是:" << endl;
for (i = 0; i < n; i++)
cout << setw(5) << a[i];
cout << endl;
for (i = 0; i < n; i++)
s = s 54、+ a[i];
cout << "非負數的和是:" << s << endl;
for (i = 0; i <= n - 2; i++)
for (j = i + 1; j <= n - 1; j++)
if (a[i] > a[j])
{
t = a[i];
a[i] = a[j];
a[j] = t;
}
cout << "將非負數從小到大排序輸出:" << endl;
for (i = 0; i < n; i++)
cout << setw(5) << a[i];
cout << endl;
return 0;
}
Q39.(10分)輸入10名學生語文、數 55、學、外語課成績,計算每名學生三門課的平均成績,輸出每人各科成績及平均成績,并分析三門課程的優(yōu)秀率,90分以上為優(yōu)秀。
輸入提示信息格式控制:cout<<"輸入第"<
#include
using namespace std;
int main()
{
int n = 1, s = 0;
for (int i = 1; i <= 15; i++)
{
n = n * i;
s += n;
}
cout << "s=" << s << endl;
return 0;
}
Q10.(10分)求1至200之間的所有質數,將質數和存入變量 sum 中并輸
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。