LHL计算机程序设计(C++)
第2周中级练习
加密(10分)
题目内容:
输入4字符的单词(小写),将每个字母转换为其在字母表中的序号(00-25)输出(不够两位的前面补0)。例如,输入atom,输出00191412
输入格式:
连续的四个小写字母,表示一个4字母单词。
输出格式:
8个0-9的数字,中间无空格。
输入样例:
atom
输出样例:
00191412
提示:输出,用 <条件>?<表达式1>:<表达式2>。
LHL的代码
#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main()
{
char a[5];
scanf("%s",a);
int i;
for(i=0;i<4;i++)
{
printf("%02d",a[i]-'a');
}
return 0;
}
解密(10分)
题目内容:
一个8位的整数。它的每两位代表一个字母在字母表中的序号(00-25),编写程序,输入一个8位的整数(不够8位的前面补0),按上述规则将其转换为一个四字母的单词。例如输入01112004,输出blue。
输入格式:
8位整数。
输出格式:
四字母单词。
输入样例:
01112004
输出样例:
blue
LHL的代码
#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main()
{
int i;
char a[5];
for(i=0;i<4;i++)
{
scanf("%c%c",&a[0],&a[1]);
if(a[0]=='0')
printf("%c",'a'+a[1]-'0');
else
printf("%c",'a'+(a[0]-'0')*10+a[1]-'0');
}
return 0;
}
3压缩存储(10分)
题目内容:
使用一个int变量(一般为4字节),保存4个均不超过255的非负整数,输出这个int变量的值。例如输入 1 2 3 4,输出16909060。
输入格式:
4个不超过255的非负整数,中间用空格隔开。
输出格式:
一个整数。四个整数放在一个int变量中,当一个整数看待的值。
输入样例:
1 2 3 4
输出样例:
16909060
技巧提示:使用移位运算。
时间限制:500ms内存限制:32000kb
LHL的代码
#include<iostream>
using namespace std;
int main()
{
int a,b,c,d,s;
cin>>a>>b>>c>>d;
a=a<<24;
b=b<<16;
c=c<<8;
s=a+b+c+d;
cout<<s;
return 0;
}
4石头剪刀布(10分)
题目内容:
石头、剪刀、布分别用1,2,3表示。输入数字,输出相应的词,如果输入的数不是1,2,3,输出“不认识”。
输入格式:
整数
输出格式:
“石头”、“剪刀”、"布"或"不认识"四个词之一。
输入样例:
1
输出样例:
石头
技巧提示:表示文字,使用
char shitou[10]=“石头”;
输出:cout<<shitou;
判断,用 <条件>?<表达式1>:<表达式2>
时间限制:500ms内存限制:32000kb
LHL的代码
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
if(n==1)
cout<<"石头";
else if(n==2)
cout<< "剪刀";
else if(n==3)
cout<<"布";
else
cout<<"不认识";
return 0;
}
5排排坐分果果(10分)
题目内容:
有10个人围坐一桌,10个人的编号为1-10,指定一个人a开始,再指定一个数k,从a为1往下数,每数到k,就给这个人发一个糖果,然后再从下一个人开始从1数到k,再发一个糖果(循环往复)。例如从2号人开始,k为3则4号为分到糖果的人,再往下数7号为分到糖果的人,再往下数10号为分到糖果的人。
编写程序,输入起始人的编号和k,输入前四个分到糖果的人。例如输入2 3,输出4 7 10 3
输入格式:
两个正整数,中间用空格隔开。第1个数的范围为1-10。
输出格式:
输出,4个整数,用一个空隔开,末尾无空格。
输入样例:
2 3
输出样例:
4 7 10 3
提示:考虑%运算符的使用。
LHL的代码
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<iostream>
using namespace std;
int main()
{
int n,i,j,k=0,l,m;
int a[11];
int f=0;
for(i=0;i<11;i++)
a[i]=1;
scanf("%d %d",&n,&m);
for(i=n-1;f<4-1;1)
{
i=(i+m)%10;
if(a[i]!=0)
{
if(i==0)
printf("%d ",10);
else
printf("%d ",i);
a[i]=0;
f++;
}
}
while(1)
{
i=(i+m)%10;
if(a[i]!=0)
{
if(i==0)
printf("%d",10);
else
printf("%d",i);
a[i]=0;
f++;
break;
}
}
return 0;
}