NEUQ-Cpp-02-编程题

7-1 求整数均值 (5分)

本题要求编写程序,计算4个整数的和与平均值。题目保证输入与输出均在整型范围内。
输入格式:
输入在一行中给出4个整数,其间以空格分隔。
输出格式:
在一行中按照格式“Sum = 和; Average = 平均值”顺序输出和与平均值,其中平均值精确到小数点后一位。
输入样例:
1 2 3 4
输出样例:
Sum = 10; Average = 2.5

include//万能头文件,平常不建议,用常规的有助于理解,人家竞赛才用,我当时不知道

using namespace std;

int main()
{
int a,b,c,d;
float sum ,average ;
cin>>a>>b>>c>>d;
sum=a+b+c+d;
average=sum/4;
cout<<"Sum = "< return 0;
}
7-7 表格输出 (5分)

本题要求编写程序,按照规定格式输出表格。
输入格式:
本题目没有输入。
输出格式:
要求严格按照给出的格式输出下列表格:


Province Area(km2) Pop.(10K)

Anhui 139600.00 6461.00
Beijing 16410.54 1180.70
Chongqing 82400.00 3144.23
Shanghai 6340.50 1360.26
Zhejiang 101800.00 4894.00


include

using namespace std;
int main()

{
cout<<"------------------------------------"< cout<<"Province Area(km2) Pop.(10K)"< cout<<"------------------------------------"< cout<<"Anhui 139600.00 6461.00"< cout<<"Beijing 16410.54 1180.70"< cout<<"Chongqing 82400.00 3144.23"< cout<<"Shanghai 6340.50 1360.26"< cout<<"Zhejiang 101800.00 4894.00"< cout<<"------------------------------------"< return 0;
}
7-8 求三角形面积 (5分)

输入三角形的三边长,求其面积。
输入格式:
在一行中输入能够构成三角形的3个实数,3个数之间用逗号间隔。
输出格式:
对每一组输入,在一行中输出面积值,结果保留两位小数,没有附加字符。
输入样例:
3,3,3
输出样例:
3.90

include

using namespace std;
int main(){

double a,b,c,d;
char j,k;
double s,p;
cin>>a>>j>>b>>k>>c;
 
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
cout<

}
7-9 日期格式化 (5分)

世界上不同国家有不同的写日期的习惯。比如美国人习惯写成“月-日-年”,而中国人习惯写成“年-月-日”。下面请你写个程序,自动把读入的美国格式的日期改写成中国习惯的日期。
输入格式:
输入在一行中按照“mm-dd-yyyy”的格式给出月、日、年。题目保证给出的日期是1900年元旦至今合法的日期。
输出格式:
在一行中按照“yyyy-mm-dd”的格式给出年、月、日。
输入样例:
03-15-2017
输出样例:
2017-03-15

include

using namespace std;
int main()
{
double y,m,d;
char j;
cin>>m>>j>>d>>j>>y;
cout< return 0;
}
7-10 身份证校验 (5分)

中国居民身份证校验码算法如下:
将身份证号码前面的17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。
将这17位数字和系数相乘的结果相加。用加出来和除以11,取余数。
余数只可能有0-1-2-3-4-5-6-7-8-9-10这11个数字, 其分别对应的最后一位身份证的号码为1-0-X-9-8-7-6-5-4-3-2。余数和校验码的对应关系可以用公式:m=(12-n) mod 11计算,其中mod为求余运算,m为校验码,n为之前计算出来的余数。如果之前计算出的余数是3,第18位的校验码就是9。如果余数是2那么对应的校验码就是X,X实际是罗马数字10。
例如:某男性的身份证号码为【53010219200508011x】, 我们看看这个身份证是不是合法的身份证。首先我们得出前17位的乘积和【(57)+(39)+(010)+(15)+(08)+(24)+(12)+(91)+(26)+(03)+(07)+(59)+(010)+(85)+(08)+(14)+(1*2)】是189,然后用189除以11得出的结果是189/11=17----2,也就是说其余数是2。最后通过对应规则就可以知道余数2对应的检验码是X。所以,可以判定这是一个正确的身份证号码。
请编写一个程序,输入身份证前17位后,计算并输出最后的校验码,
输入格式:
前17位的每个数字分别输入,中间用空格间隔
输出格式:
输出校验码,如果校验码是10,不必转成X
输入样例:
5 3 0 1 0 2 1 9 2 0 0 5 0 8 0 1 1

include

using namespace std;
int main()
{
int sum=0,i,c;
int gu[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
int shu;
for(i=0;i<17;i++)
{
cin>>shu;
sum=gu[i]*shu+sum;
}
c=sum%11;
switch(c)
{
case 0: cout<<"1"< case 1: cout<<"0"< case 2: cout<<"10"< case 3: cout<<"9"< case 4: cout<<"8"< case 5: cout<<"7"< case 6: cout<<"6"< case 7: cout<<"5"< case 8: cout<<"4"< case 9: cout<<"3"< case 10:cout<<"2"< }
return 0;
}

你可能感兴趣的:(NEUQ-Cpp-02-编程题)