C++各类题目.docx

上传人:b****8 文档编号:10696134 上传时间:2023-02-22 格式:DOCX 页数:12 大小:16.78KB
下载 相关 举报
C++各类题目.docx_第1页
第1页 / 共12页
C++各类题目.docx_第2页
第2页 / 共12页
C++各类题目.docx_第3页
第3页 / 共12页
C++各类题目.docx_第4页
第4页 / 共12页
C++各类题目.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

C++各类题目.docx

《C++各类题目.docx》由会员分享,可在线阅读,更多相关《C++各类题目.docx(12页珍藏版)》请在冰豆网上搜索。

C++各类题目.docx

C++各类题目

Description

定义一个结构体变量(包括年、月、日)。

编写一个函数days,由主函数将年、月、日传递给函数days,计算出该日在本年中是第几天并将结果传回主函数输出。

Input

年月日

Output

当年第几天

SampleInput

20001231

SampleOutput

366

#include

usingnamespacestd;

  

structy_m_d

{

    intyear;

    intmonth;

    intday;

};

intdays(y_m_ddate)

{intday_sum;

    switch(date.month)

    {

    case1:

day_sum=date.day;break;

    case2:

day_sum=date.day+31;break;

    case3:

day_sum=date.day+59;break;

    case4:

day_sum=date.day+90;break;

    case5:

day_sum=date.day+120;break;

    case6:

day_sum=date.day+151;break;

    case7:

day_sum=date.day+181;break;

    case8:

day_sum=date.day+212;break;

    case9:

day_sum=date.day+243;break;

    case10:

day_sum=date.day+273;break;

    case11:

day_sum=date.day+304;break;

    case12:

day_sum=date.day+334;break;

    }

    if((((date.year%4==0&&date.year%100!

=0)||date.year%4==0))&&date.month>=3)

        day_sum=day_sum+1;

    return(day_sum);

}

intmain()

{

    y_m_ddate;

    intdays(y_m_d);  

    intday_sum;

    cin>>date.year>>date.month>>date.day;

    day_sum=days(date);

    cout<

    return0;

}

Description

编写一个函数print,打印一个学生的成绩数组,该数组中有5个学生的数据,每个学生的数据包括num(学号)、name(姓名)、score[3](3门课的成绩)。

编写一个函数input,用来输入5个学生的数据。

Input

5个学生的学号,姓名,3门课的成绩

Output

5个学生的学号,姓名,3门课的成绩

SampleInput

1001zhangsan1009086

1002lisi902080

1003wangwu909089

1004yanping100100100

1005xiaoxiao606060

SampleOutput

1001zhangsan1009086

1002lisi902080

1003wangwu909089

1004yanping100100100

1005xiaoxiao606060

#include

usingnamespacestd;

  

structstudent

{

    chara[6];//a代表学号

    charb[8];//b代表名字

    intc[4];//c代表成绩

}stu[5];

  

voidinput(studentstu[],intn)

{

    inti,j;

    for(i=0;i

    {cin>>stu[i].a>>stu[i].b;

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

        {cin>>stu[i].c[j];

        }

    }

}

voidprint(studentstu[],intn)

{

    inti,j;

    for(i=0;i

    {cout<

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

        {cout<

        }

        cout<

        cout<<'\n';

    }

}

intmain()

{

    constintn=5;

    studentstu[n];

    voidinput(student[],int);

    voidprint(student[],int);

    input(stu,n);

    print(stu,n);

    return0;

}

Description

(线性表)请写一个算法将顺序存储结构的线性表(a1...an)逆置为(an...a1)。

Input

输入长度n:

5

输入数据:

12345

Output

54 321

SampleInput

5

7891011

SampleOutput

1110987

HINT

逆置是数据结构中的题,类似数组中的逆置,即头尾互换。

这里大家可以先用逆序,即输出时倒序输出,以后再用逆置做。

#include

usingnamespacestd;

intmain()

{

    intn,i,j,a[1000];

    cin>>n;

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

    {

        cin>>a[i];

    }

    for(j=n;j>=1;j--)

    {cout<

    return0;

}

Description

(线性表)设有一个正整数序列组成的有序单链表(按递增次序有序,且允许有相等的整数存在),试编写能实现下列功能的算法:

(要求用最少的时间和最小的空间)

(1)确定在序列中比正整数x大的数有几个(相同的数只计算一次);

(2)在单链表将比正整数x小的数按递减次序排列;

Input

输入长度:

13

输入数据:

457781011151516172020

输入x:

10

Output

5

87754

SampleInput

7

1234566

4

SampleOutput

2

321

#include 

#include 

usingnamespacestd; 

structstudent

    intnum; 

  

    structstudent*next; 

}; 

intn;

student*creatlink(inta) 

    inti; 

    student *head; 

    student*p1,*p2;

    n=0;

    p1=p2=newstudent;

    cin>>p1->num; 

    head=NULL; 

    

    for(i=0;i

    { 

        n=n+1;

        if(n==1) 

            head=p1;

        else

            p2->next=p1; 

        p2=p1;

        if(i==a-1) 

            break; 

        p1=newstudent;

        cin>>p1->num;

    } 

    p2->next=NULL; 

    return(head); 

    

intxunzhao(intx,student*head) 

    student*p1,*p2; 

    ints=0,m=0;

    p1=head; 

    while(p1!

=NULL) 

    { 

        if(p1->num>x)

        { 

            s=1;

            p2=p1;

            while(p1!

=NULL) 

            { 

                if(p1->num!

=p2->num)

                     s++; 

                p2=p1;

                p1=p1->next; 

            } 

        } 

        else

        { 

            if(p1->num!

=x) 

                m++; 

            p1=p1->next; 

        } 

    } 

    cout<

    returnm; 

voidprintlink(structstudent*head,intx,intm)

    student*p; 

    inti,j; 

    p=head;

    for(i=0;i

    { 

        for(j=i;j

        { 

            p=p->next; 

        } 

  

        cout<num<<""; 

        p=head;

    } 

    

  

intmain() 

    

    

    student*creatlink(inta); 

    voidprintlink(student*,int,int); 

    intxunzhao(intx,student*head); 

    student*head; 

    inta,b,c; 

    cin>>a; 

    head=creatlink(a); 

    cin>>b; 

    c=xunzhao(b,head); 

    printlink(head,b,c); 

    return0; 

    

Description

(线性表)已知一单向链表,从第二个结点至表尾递增有序,(设a1

试编写程序,将第一个结点删除并插入表中适当位置,使整个链表递增有序。

Input

输入长度n:

7

输入数据:

4123689

Output

1234689

SampleInput

5

1178910

SampleOutput

7891011

#include

usingnamespacestd;

intmain()

{

    inti,n,j,a[20],t;

    cin>>n;

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

    {

        cin>>a[i];

    }

    for(j=1;j<=n-1;j++)

        for(i=1;i<=n-j;i++)

        if(a[i]>a[i+1])

        {t=a[i];a[i]=a[i+1];a[i+1]=t;}

          

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

    {

        cout<

    }

    return0;

}

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

当前位置:首页 > 求职职场 > 笔试

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

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