校内一(1)

一、下列程序的功能是:输入一个英文字母,输出该字母在26个英文字母中的序号。例如,输入‘A’或者‘a’时,输出都是1,输入‘Z’或者‘z’时,输出都是26。已知‘A’的ASCII码值为65,‘a’的ASCII码值为97。

#include<iostream.h>
void main()
{
    char ch;
    cin>>ch;
    if(ch>='A'&&ch<='Z')
        ch=ch+32;
    cout<<ch-96<<endl;
}

或者

#include<iostream.h>
void main()
{
    char ch;
    cin>>ch;
    if(ch>='a'&&ch<='z')
        ch=ch-32;
    cout<<ch-64<<endl;
}

二、下列程序的功能是:输入一个三位的八进制整数(100-777之间的数),将其对应的二进制串输出。例如,输入“720”,输出为“111010000”。

#include<iostream.h>
#include<string.h>
void main()
{
    int num8;
    char str2[8][4]={"000","001","010","011","100","101","110","111"};
    cin>>num8;
    cout<<str2[num8/100];
    cout<<str2[num8%100/10];
    cout<<str2[num8%10]<<endl;
}

拓展为四位十六进制

#include<iostream.h>
#include<string.h>
void main()
{
    int i;
    char str[16][5]={"0000","0001","0010","0011","0100","0101","0110","0111","1000","1001","1010","1011","1100","1101","1110","1111"};
    cin>>i;
    cout<<str[i/1000];
    cout<<str[i%1000/100];
    cout<<str[i/100/10];
    cout<<str[i%10]<<endl;
}

三、下列程序的功能是:读入一个长度在100以内的字符串,求该字符串中各字符的ASCII码之和。例如“ABC”ASCII码之和为198。

#include<iostream.h>
void main()
{
    int sum;
    char str[100];
    cin>>str;
         sum=0 ;
    for(int i=0;str[i];i++)
        sum+=str[i];
    cout<<sum<<endl;
}

四、神秘的五位数。有这样一个五位的十进制整数,组成它的5个数字阶乘之和等于他本身。即abcde=a!+b!+c!+d!+e!请写程序搜索这样的5位数,输出找到得所有神秘五位数并统计这样的数共有多少个。

#include<stdio.h>
 int main()
 {
     int JC[] = {1,1,2,6,24,120,720,5040,40320,362880};
     int i;
     for(i=10000;i<100000;i++)
     {
      int sum=0;
      int x=i;
      while(x>0)
      {
       sum+=JC[x%10];
       x /= 10;
      }
      if(i==sum) printf("%d\n", i);
     }
     return 0;
 }

五、判断一个数是否为素数。

#include<stdio.h>
 int main()
 {
    int i;
    int x;
    int isprime=1;
    scanf("%d",&x);
    for(i=2;i<x;i++)
    {
        if(x%i==0)
        {
            isprime=0;
            break;
        }
    }
    if(isprime==1)
    {
        printf("%d是素数",x);

    }
    else
    {
        printf("%d不是素数",x);
    }
     return 0;
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值