题目描述编写基于对象的程序,求长方柱(Bulk)的体积。数据成员包括长(length)、宽(width)、高(heigth)、体积,要求用成员函数实现下面的功能:
(1)由键盘输入长方柱的长、宽、高;
(2)计算长方柱的体积(volume)和表面积(areas);
(3)输出这长方柱的体积和表面积。
输入长方柱的长、宽、高
输出长方柱的体积和表面积
样例输入12 3 4
样例输出122452
提示12345678910111213141516171819202122#include<iostream>using namespace std;class Bulk{ double length,width,heigth; public: void input(){ cin>>length>>width>>heigth; } double volume(){ return length*width*heigth; ...
题目描述一个合法的身份证号码由 17 位地区、日期编号和顺序编号加 1 位校验码组成。校验码的计算规则如下:
首先对前 17 位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对 11 取模得到值 Z;最后按照以下关系对应 Z 值与校验码 M 的值:
1234Z:0 1 2 3 4 5 6 7 8 9 10M:1 0 X 9 8 7 6 5 4 3 2
现在给定一些身份证号码,请你验证校验码的有效性,并输出有问题的号码。
输入输入第一行给出正整数 N(≤100)是输入的身份证号码的个数。随后 N 行,每行给出 1 个 18 位身份证号码。
输出按照输入的顺序每行输出 1 个有问题的身份证号码。这里并不检验前 17 位是否合理,只检查前 17 位是否全为数字且最后 1 位校验码计算准确。如果所有号码都正常,则输出 All passed。
样例输入12345432012419880824005612010X19890101123411010819671130186637070419881216001X
样例输出1231 ...
题目描述输入一个正整数 n,定义一个包含 n 个元素的动态一维数组(double 型),输入 n 个元素,对这 n 个元素按照从小到大顺序排序,输出排序以后的各个元素。
输入输入:元素个数 n 以及这 n 个元素
输出输出:这 n 个元素按照从小到大顺序排序以后的结果(各元素之间有一个空格)
样例输入1253.2 1.4 8.5 4.6 2.2
样例输出11.4 2.2 3.2 4.6 8.5
提示123456789101112131415161718192021#include<iostream>using namespace std;int main() { int n; cin>>n; double arr[n]; for(int i=0; i<n; i++) cin>>arr[i]; for(int i=0; i<n-1; i++) { for(int j=0; j<n-i-1; j++) { if(arr[j]>arr[j+1]) { double tmp = ...
题目描述写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。
输入只有一行,表示输入的字符串。请注意输入的字符串可能有空格。保证字符串的长度不超过 100。
输出将读入的字符串反序后的字符串。请注意行尾输出换行。
样例输入1This is a program.
样例输出1.margorp a si sihT
提示123456789101112131415161718#include<iostream>#include<cstring>using namespace std;void reverse(char a[]){ char b[101]; for(int i=0,j=strlen(a);j>0;i++,j--) b[j-1]=a[i]; for(int i=0;i<strlen(a);i++) a[i]=b[i];}int main(){ char a[101]; gets(a); reverse(a); puts(a); cout<<endl; return 0;} ...
题目描述读入两个字符串,并将其连接起来的新字符串输出。要求不要使用 strcat 函数。
输入两行不包含空格的字符串。保证每个字符串的长度不超过 100。
输出将第 2 行的字符串连接在第 1 行字符串之后的新字符串。请注意行尾输出换行。
样例输入12I am a program.This is a program.
样例输出1I am a program.This is a program.
提示12345678#include<iostream>using namespace std;int main() { string str1,str2; getline(cin, str1); getline(cin, str2); cout<<str1+str2<<endl;}
题目描述给定一个一维数组,包含 10 个学生的成绩,求出平均分、最高分和最低分。要求使用将数组传至函数进行操作的方法。
输入只有一行,包含 10 个用空格隔开的实数,表示 10 个学生的成绩。保证所有成绩不小于 0,不大于 100。
输出输出平均分、最高分和最低分,用空格隔开,小数点后保留 2 位小数。请注意行尾输出换行。
样例输入1100 56 78 98.5 76 87 99 67.5 75 97
样例输出183.40 100.00 56.00
提示123456789101112131415161718192021#include<iostream>using namespace std;void calc(float a[10]){ cout.precision(2); float average=0,sum=0,max=0,min=100; for(int i=0;i<10;i++){ sum+=a[i]; average=sum/10; if(a[i]>max) ...
题目描述用递归的方法求出 n!的值。
输入一个正整数 n,保证 n 不超过 10。
输出n!的值。请注意行尾输出换行。
样例输入15
样例输出1120
提示1234567891011#include<iostream>using namespace std;int fac(int x){ if(x==1) return 1; else return x*fac(x-1);}int main(){ int n; cin>>n; cout<<fac(n)<<endl;}
题目描述定义包含 10 个整型数的一维数组,从键盘输入 10 个整数,然后再输入一个待查找的整数 x,判断如果能在数组中找到 x,则输出 x“ is found at ”、下标,否则输出 x“ is not found”。
说明:如果数组中找到多个与 x 相同的数,则只输出找到的首个元素。
输入输入:第 1 行输入 10 个整数
第 2 行输入 1 个待查找的整数
输出输出:x “ is found at”、下标(数据之间空 1 格)
或者:输出 x“ is not found”
样例输入1223 14 45 26 90 85 67 48 62 6585
样例输出185 is found at 5
提示1234567891011121314151617#include<iostream>using namespace std;int main() { int arr[10],x,isFound=0; for(int i=0; i<10; i++) cin>>arr[i]; cin>>x; for(int i=0; i<10 ...
题目描述读入两个字符串 s1 和 s2,比较这两个字符串。若 s1>s2,输出一个正数;若 s1=s2,输出 0;若 s1<s2,输出一个负数。输出的非零值应该是相比较的两个字符串第一个不相同位置的字符 ASCII 差值,例如”And”和”Aid”比较,根据第 2 个字符的比较结果,应输出 5。要求不要使用 strcpy 和 strcmp 函数。
输入两行字符串。保证每个字符串的长度不超过 100。
输出两个字符串的比较结果。请注意行尾输出换行。
样例输入12I am a program.I am not a program.
样例输出1-13
提示123456789101112131415161718#include<iostream>using namespace std;int main() { int d=0,i; char s1[100]; char s2[100]; cin.getline(s1,sizeof(s1)); cin.getline(s2,sizeof(s2)); for(i=0; d==0||i<100; ...
题目描述求 N 以内(包括 N)的素数。(N<=100000)
输入N
输出N 以内的所有素数,一个素数占一行。
样例输入1100
样例输出123456789101112131415161718192021222324252357111317192329313741434753596167717379838997
提示123456789101112131415161718#include<iostream>#include<cmath>using namespace std;void outPrime(int a){ int i,j; for(i=2;i<=a;i++){ for(j=2;j<=sqrt(i);j++) if(i%j==0) break; if(j>sqrt(i)) cout<<i<<endl; }}int main(){ int n; cin>>n; outPrime(n); return 0;}