大学最新C++题库及答案.docx

上传人:b****5 文档编号:6497979 上传时间:2023-01-07 格式:DOCX 页数:159 大小:64.20KB
下载 相关 举报
大学最新C++题库及答案.docx_第1页
第1页 / 共159页
大学最新C++题库及答案.docx_第2页
第2页 / 共159页
大学最新C++题库及答案.docx_第3页
第3页 / 共159页
大学最新C++题库及答案.docx_第4页
第4页 / 共159页
大学最新C++题库及答案.docx_第5页
第5页 / 共159页
点击查看更多>>
下载资源
资源描述

大学最新C++题库及答案.docx

《大学最新C++题库及答案.docx》由会员分享,可在线阅读,更多相关《大学最新C++题库及答案.docx(159页珍藏版)》请在冰豆网上搜索。

大学最新C++题库及答案.docx

大学最新C++题库及答案

Q5.(10分)写一个程序根据从键盘输入的里氏强度显示地震的后果。

根据里氏强度地震的后果如下:

里氏强度后果

小于4很小

4.0到5.0窗户晃动

5.0到6.0墙倒塌;不结实的建筑物被破坏

6.0到7.0烟囱倒塌;普通建筑物被破坏

7.0到8.0地下管线破裂;结实的建筑物也被破坏

超过8.0地面波浪状起伏;大多数建筑物损毁

**输入格式要求:

实数,提示信息:

cout<<"请输入地震的里氏强度:

"<

**输出格式要求:

"本次地震后果:

很小!

"

"本次地震后果:

窗户晃动!

"

"本次地震后果:

墙倒塌;不结实的建筑物被破坏!

"

"本次地震后果:

烟囱倒塌;普通建筑物被破坏!

"

"本次地震后果:

地下管线破裂;结实的建筑物也被破坏!

"

"本次地震后果:

地面波浪状起伏;大多数建筑物损毁!

"

#include

usingnamespacestd;

intmain()

{

    doublemagnitude;

  

    cout<<"请输入地震的里氏强度:

"<

    cin>>magnitude;

  

    if(magnitude<4.0)

    {

        cout<<"本次地震后果:

很小!

"<

    }

    elseif(magnitude<5.0)

    {

        cout<<"本次地震后果:

窗户晃动!

"<

    }

    elseif(magnitude<6.0)

    {

        cout<<"本次地震后果:

墙倒塌;不结实的建筑物被破坏!

"<

    }

    elseif(magnitude<7.0)

    {

        cout<<"本次地震后果:

烟囱倒塌;普通建筑物被破坏!

"<

    }

    elseif(magnitude<8.0)

    {

        cout<<"本次地震后果:

地下管线破裂;结实的建筑物也被破坏!

"<

    }

    else

    {

        cout<<"本次地震后果:

地面波浪状起伏;大多数建筑物损毁!

"<

    }

  

    return0;

}

Q6.(10分)写一个程序从键盘输入1到7中的某个数字,其中1代表星期天,2代表星期一,3代表星期二等。

根据用户输入的数字显示相应的星期几。

如果用户输入的数字超出了1到7的范围,显示输出一个错误提示信息。

**输入格式要求:

整数,提示信息:

cout<<"Pleaseinputasinglenumeral(1-7):

";

**输出格式要求:

"Monday"(星期几的英文单词首字母大写加换行)

提示信息:

"Invalid-pleaseinputasinglenumeral(1-7)."(加换行)

#include

usingnamespacestd;

intmain()

{

    inta;

    cout<<"Pleaseinputasinglenumeral(1-7):

";

    cin>>a;

    if(a<1||a>7)

    {

        cout<<"Invalid-pleaseinputasinglenumeral(1-7)."<

    }

    switch(a)

    {

    case1:

        cout<<"Sunday"<

        break;

    case2:

        cout<<"Monday"<

        break;

    case3:

        cout<<"Tuesday"<

        break;

    case4:

        cout<<"Wednesday"<

        break;

    case5:

        cout<<"Thursday"<

        break;

    case6:

        cout<<"Friday"<

        break;

    case7:

        cout<<"Saturday"<

        break;

    }

    return0;

}

Q7.(10分)有一天,一位百万富翁遇到一个陌生人,陌生人找他谈一个换钱的计划,陌生人对百万富翁说:

“我每天给你10万元,而你第一天只需给我1分钱,第二天我仍给你10万元,你给我2分钱,第三天我仍给你10万元,你给我4分钱……。

你每天给我的钱是前一天的两倍,直到满一个月(30天)为止”,百万富翁很高兴,欣然接受了这个契约。

请编程计算在这一个月中陌生人总计给百万富翁多少钱,百万富翁总计给陌生人多少钱。

**输入提示信息和数据格式:

**输出提示信息和数据格式:

cout<<"百万富翁给陌生人:

"<

cout<<"陌生人给百万富翁:

"<

#include

usingnamespacestd;

intmain()

{

    intj;

    doubletoStranger=0; /*富翁给陌生人的钱,以'元'为单位*/

    doubletoRichman=0;  /*陌生人给富翁的钱,以'元'为单位*/

    doubleterm=0.01;    /*富翁第一天给陌生人0.01元*/

    for(j=1;j<=30;j++)

    {

        toRichman+=100000;/*陌生人每天给富翁10万元*/

        toStranger+=term;

        term=term*2;     /*富翁每天给陌生人的钱是前一天的两倍*/

    }

    cout<<"百万富翁给陌生人:

"<

 cout<<"陌生人给百万富翁:

"<

    return0;

}

Q8.(10分)编程计算自然数的立方和,直到立方和大于等于1000000时为止。

统计并输出实际累加的项数。

输出格式要求:

cout<<"sum="<

cout<<"count="<

输出结果为:

sum=1071225

count=45

#include

usingnamespacestd;

intmain()

{

    longi,sum=0;

    for(i=1;;i++)

    {

        sum=sum+i*i*i;

        if(sum>=1000000) break;

    }

    cout<<"sum="<

    cout<<"count="<

    return0;

}

Q9.(10分)求多项式1!

+2!

+3!

+……+15!

的值。

输出格式要求:

cout<<"s="<

#include

usingnamespacestd;

intmain()

{

    intn=1,s=0;

    for(inti=1;i<=15;i++)

    {

        n=n*i;

        s+=n;

    }

    cout<<"s="<

    return0;

}                                                                            

Q10.(10分)求1至200之间的所有质数,将质数和存入变量sum中并输出。

质数(素数)的说明:

“质数是只能被1和其本身整除的数”。

输入提示要求:

输出结果格式要求:

质数之间以一个空格隔开

输出所有质数后换行输出:

sum=4227

#include

#include

usingnamespacestd;

intmain()

{

    intN,m,sum=0;

    for(m=2;m<=200;m++)

    {

        inti,tmp=(int)sqrt(m);

        for(i=2;i<=tmp;i++)

            if(m%i==0)

                break;

        if(i>tmp)

        {

            cout<

            sum+=m;

        }

    }

    cout<

    cout<<"sum="<

    return0;

}

Q11.(10分)在一个已知的一维数组中分类统计正数和负数的个数。

正数的个数存入变量C1中,负数个数存入变量C2中.

输出格式要求:

cout<<"c1="<

cout<<"c2="<

#include

usingnamespacestd;

intmain()

{

    inta[10]={1,-2,0,4,-5,0,7,8,-9,10};

    intc1=0,c2=0;

    inti;

    for(i=0;i<10;i++)

        if(a[i]>0)

            c1++;

        elseif(a[i]<0)

            c2++;

    cout<<"c1="<

    cout<<"c2="<

    return0;

}

Q12.(10分)在包含10个数的一维整数数组a中查找最大元素max和最小元素min。

输出格式要求:

cout<<"最大元素:

"<

cout<<"最小元素:

"<

#include

usingnamespacestd;

intmain()

{

    inta[10]={32,43,65,23,432,543,543,54,542,87};

    inti;

    intmax,min;

    max=a[0],min=a[0];

    for(i=1;i<10;i++)

    {

        if(a[i]>max)max=a[i];

        if(a[i]

    }

    cout<<"最大元素:

"<

    cout<<"最小元素:

"<

    return0;

}

Q13.(10分)用while循环编程,求自然数1至100之间各奇数平方和sum。

输出结果格式为:

sum=166650

#include

usingnamespacestd;

intmain()

{

    inti=1,sum=0;

    while(i<=100)

    {

        sum+=i*i;

        i+=2;

    }

    cout<<"sum="<

    return0;

}

Q14.(10分)判断一个数23437是否是素数(要求程序中设置一个参数flag,flag为1代表是素数,为0代表不是)

输出结果:

0

#include

#include

usingnamespacestd;

intmain()

{

    intm,n,flag=1;

    m=23437;

    for(n=2;n<=m/2&&flag;n++)

        if(m%n==0)flag=0;

    cout<

    return0;

}

Q15.(10分)已知一个数m(=252),用循环求各位数字之和。

输出结果格式:

s=9

#include

usingnamespacestd;

intmain()

{

    intm=252,a,b,c,s;

    a=m/100;

    b=m/10%10;

    c=m%10;

    s=a+b+c;

    cout<<"s="<

    return0;

}

Q16.(10分)已知一个数m(=252),用循环求各位数字之积。

输出结果格式:

f=20

#include

usingnamespacestd;

intmain()

{

   intm,f=1,n;

   m=252;

   while(m!

=0)

    {

       n=m%10;

       f*=n;

       m=m/10;

    }

    cout<<"f="<

    return0;

}

Q17.(10分)已知10个四位数输出所有对称数及个数n。

例如1221,2332都是对称数。

设:

intm[10]={1221,2243,2332,1435,1236,5623,4321,4356,6754,3234};

输出结果:

1221

2332

#include

usingnamespacestd;

intmain()

{

    inti,n=0,m[10]={1221,2243,2332,1435,1236,5623,4321,4356,6754,3234};

    for(i=0;i<10;i++)

    {

        inta,b,c,d;

        a=m[i]/1000;

        b=m[i]%1000/100;

        c=m[i]%100/10;

        d=m[i]%10;

        if(a==d&&c==b)

        {

            cout<

            n++;

        }

    }

    return0;

}

Q18.(10分)将1-100之间奇数顺序累加存入n中,直到其和等于或大于200为止。

输出结果格式:

n=225

#include

usingnamespacestd;

intmain()

{

    intn=0,i=1;

    while(n<200)

    {

        n=n+i;

        i++;

        i++;

    }

    cout<<"n="<

    return0;

}

Q19.(10分)从键盘上输入三个整数,编写程序求出三个数中的最大值。

输入格式要求:

cout<<"请输入三个整数:

";

输出格式要求:

cout<<"最大值是:

"<

#include

usingnamespacestd;

intmain()

{

    inta,b,c,t,max;

    cout<<"请输入三个整数:

";

    cin>>a>>b>>c;

    if(a

    {

        t=a;

        a=b;

        b=t;

    }

    if(a

    {

        t=a;

        a=c;

        c=t;

    }

    max=a;

    cout<<"最大值是:

"<

    return0;

}

Q20.(10分)输入年份和月份,编写程序,判断这一年该月份的天数。

输入格式要求:

cout<<"请输入年份和月份:

";

输出格式要求:

cout<

"<

#include

usingnamespacestd;

intmain()

{

    intyear,month,day;

    cout<<"请输入年份和月份:

";

    cin>>year>>month;

    switch(month)

    {

    case1:

    case3:

    case5:

    case7:

    case8:

    case10:

    case12:

        day=31;

        break;

    case4:

    case6:

    case9:

    case11:

        day=30;

        break;

    case2:

        if(year%400==0||year%4==0&&year%100!

=0)

            day=29;

        else

            day=28;

        break;

    }

    cout<

"<

    return0;

}

Q21.(10分)

编写程序,求解下面的分段函数:

输入格式要求:

 cout << "请输入x:

";

输出格式要求:

 cout << "y="<< y << endl;

#include

usingnamespacestd;

intmain()

{

    doublex,y;

    cout<<"请输入x:

";

    cin>>x;

    if(x>-10&&x<0)y=x-8;

    if(x==0)  y=x;

    if(x>0&&x<10)y=x*x;

    cout<<"y="<

    return0;

}

Q22.(10分)用“辗转相除方法”计算两个数x,y的最大公约数。

输入格式要求:

无,直接输入

输出格式要求:

无,直接输出结果

#include

usingnamespacestd;

intmain()

{

    intx,y,n;

    cin>>x>>y;

    n=x%y;

    while(n!

=0)

    {

        x=y;

        y=n;

        n=x%y;

    }

    cout<

    return0;

}

Q23.(10分)利用选择法将下面10个数按降序排列。

有如下定义:

intn[10]={5,6,4,2,3,7,8,5,6,7};

输入格式要求:

输出格式要求:

以逗号分隔降序数列

#include

usingnamespacestd;

intmain()

{

    intn[10]={5,6,4,2,3,7,8,5,6,7},i,j,k,t;

    for(i=0;i<9;i++)

    {

        k=i;

        for(j=i+1;j<10;j++)

            if(n[k]

                k=j;

        t=n[i];

        n[i]=n[k];

        n[k]=t;

    }

    for(j=0;j<10;j++)

        cout<

    return0;

}

Q24.(10分)定义数组,输入不多于20名若干学生成绩,统计高于平均分的人数k,用-1做结束标志。

输入格式要求:

输出格式要求:

cout<<"高于平均分的人数:

"<

#include

usingnamespacestd;

intmain()

{

    doublecj[20],aver,sum=0;

    intn=0,k=0,i;

    cin>>cj[0];

    while(cj[n]>=0)

    {

        sum+=cj[n];

  

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1