校内选拔(六)

本文包含多个C++编程实例,从打印图形到字符串处理,再到数组操作等,涵盖了基本的编程技巧与方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里写图片描述
打印图形

#include "iostream"
using namespace std;
int main()
{
    int a[7]={5,4,3,4,3,4,5};
    int b[7]={1,3,5,3,5,3,1}              ;
    for(int i=0;i<7;i++)//行数
    {//输出每行的元素
        for (int j=0; j<a[i];j++)
        {
            cout<<"-";
        }
        cout<<"*";
        for (int k=0;k<b[i];k++)
        {
        cout<<"-";
        }
        cout<<"*"<<endl;
    }
    return 0;
}

已经有下列数组,1 3 7 17 41 99…下面的程序可以将该数组的前20项输出出来,

/*已经有下列数组,1  3  7  17  41  99...下面的程序可以将该数组的前20项输出出来*/
#include <iostream>
using namespace std;
int f(int i)
{
    if (i==0) return 1;
    else  if(i==1)  return 3;
    else return(2*f(i-1)+f(i-2));
}
int main()
{
    for (int i=0;i<20;i++)
    {
        cout<<f(i)<<endl;
    }
    return 0;
}

小明上一年级,最近学了声母“bpmfdtnlgkhjqx”。老师要求默写,现在输入小明默写的一个字符串,判断写对了几个。例如“dtnlbpmfgkhjqx”对的个数为14,“btmfjqxdtnlaoe”对的个数为10,“kkkkk”的正确个数为1。
程序说明:
1、strlen()函数:strlen()函数用来计算字符串的长度,其原型为:unsigned int strlen (char *s); s为指定的字符串
2、strchr(s , sm[i] )功能为返回字符sm[i]在字符串s中首次出现的位置,当字符sm[i]在字符串s 找不到返回NULL。

#include<iostream> 
#include<cstring>
using namespace std;
int main()
{   int i=0,count=0;
    char  s[50];
    char*  sm="bpmfdtnlgkhjqx";
    cin>>s;
    while (i<strlen(s))
    {
        if ( strchr(s,sm[i]))
             count++;
            i++;          
    }
    cout<<count<<endl;
}

学生的学号为12位,其组成为:年份(2位)+专业信息(6位)+班级(2位)+班内序号(2位)。例如学号“111909030208”,“11”代表2011年入学,“190903”代表网络工程专业,“02”代表在网络工程专业的02班,“08”为班内序号。已知信息工程系三个专业的代码为“190901”(计算机科学与技术专业)、“190902”(软件工程专业)、“190903”(网络工程专业),输入一个学号,判断是否为信息系学生,如果是信息系学生则输出“专业班”。

#include <iostream.h>
void main()
{
    char b[13];
    cin>>b;
    if(b[2]=='1')
    {
        if(b[3]=='9')
        {
            if(b[4]=='0')
            {
                if(b[5]=='9')
                {
                    if(b[6]=='0')
                    {
                        if(b[7]=='1')
                        {
                            cout<<"计算机科学与技术专业"<<b[8]<<b[9]<<"班"<<endl;
                        }
                        else if(b[7]=='2')

                        {
                            cout<<"网络工程专业"<<b[8]<<b[9]<<"班"<<endl;
                        }
                        else if(b[7]=='3')

                        {
                            cout<<"软件工程专业"<<b[8]<<b[9]<<"班"<<endl;
                        }
                        else
                        {
                            cout<<"是信息系学生"<<endl;
                        }
                    }
                    else 
        cout<<"不是信息系学生"<<endl;
                }
                else 
        cout<<"不是信息系学生"<<endl;
            }
            else 
        cout<<"不是信息系学生"<<endl;
        }
        else 
        cout<<"不是信息系学生"<<endl;
    }
    else 
        cout<<"不是信息系学生"<<endl;
}

网络流行的拼手气红包为每次由发放者设定总金额及红包个数,由群内好友点击抢红包,抢到的数额随机。某日李同学向好朋友群(除李同学外,还有六位同学,分别为好友A,B,C,D,E,F)发放5次拼手气红包,每次红包总金额都为6元,个数都为6个。抢到的综合金额最高的为人气王中王。现在输入每次抢红包的情况,输出谁是人气王中王。说明:样例输入中每行6个数分别为每次A,B,C,D,E,F抢到的金额数。

#include <iostream.h>
void main()
{
    int z[6]={0,0,0,0,0,0};
    int i,j;
    int max;
    int a[6][6];
    for(j=0;j<6;j++)
    {
        a[5][j]=0;
    }
    for( i=0;i<5;i++)
        for(j=0;j<6;j++)
        {
            cin>>a[i][j];
        }
    for(j=0;j<6;j++)
    {
        for(i=0;i<5;i++)
        {
            a[5][j]+=a[i][j];
        }
    }
    max=a[5][0];
    for(j=0;j<6;j++)
    {
        if(a[5][j]>max)
        {
            max=a[5][j];
        }
    }
    for(j=0;j<6;j++)
    {
        if(a[5][j]==max)
        {
            z[j]=1;
        }
    }
    for(i=0;i<6;i++)
    {
        if(z[i]!=0)
        {
        switch(i)
        {
        case 0:
            cout<<"A"<<" ";
            break;
        case 1:
            cout<<"B"<<" ";
            break;
        case 2:
            cout<<"C"<<" ";
            break;
        case 3:
            cout<<"D"<<" ";
            break;
        case 4:
            cout<<"E"<<" ";
            break;
        case 5:
            cout<<"F"<<" ";
            break;
        }
        }
    }
}

在电话或者手机上,一个数字对应几个字母。如2对应着字母ABC,3对应着字母DEF,4对应着字母GHI,5对应着字母JKL,6对应着字母MNO,7对应着PQRS,8对应着字母TUV,9对应着字母WXYZ。当查找“WANGFEI”的电话时,需要按下的数字串为“9264334”,查找“ZHANGLAOSHI”的电话时,需按下的数字串为“94264526744”。编写程序,输入一个拼音字符串,输出对应的数字序列。

#include <iostream>
#include <string>
using namespace std;
void main()
{
    char h[256];
    cout<<"本程序只支持大写"<<endl;
    cin>>h;
    for(int i=0;i<strlen(h);i++)
    {
            switch(h[i])
            {
                            case 'A': case 'B': case 'C':
                                cout<<2;
                break;
                            case 'D': case 'E': case 'F':
                                cout<<3;
                break;
                            case 'G': case 'H': case 'I':
                                cout<<4;
                break;
                            case 'L': case 'K': case 'J':
                                cout<<5;
                break;
                            case 'M': case 'N': case 'O':
                                cout<<6;
                break;
                            case 'P': case 'Q': case 'R': case 'S':
                                cout<<7;
                break;
                            case 'T': case 'U': case 'V':
                                cout<<8;
                break;
                            case 'W': case 'X': case 'Y': case 'Z':
                                cout<<9;
                break;
            }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值