目录
7-91 ZY02-选择结构-字符变换
分数 15
全屏浏览题目
切换布局
作者 周永
单位 西南石油大学
接收用户从键盘输入的单个字符。然后根据字符的类型,对它的ASCII编码做加法,变换指定的字符为其他字符:
如果是数字,加上2;如果是大写字母,加上3;如果是小写字母,加上4。
不是上述的字符范围,不变。
输入格式:
一个字符。
输出格式:
变换或未变换后的字符。
输入样例1:
3
输出样例1:
数字是ASCII编码加上的2。
5
输入样例2:
B
输出样例2:
数字是ASCII编码加上的3。
E
#include <stdio.h>
int main()
{
char a, b;
scanf("%c", &a);
if (a >= '0' && a <= '9')
{
b = a + 2;
}
else if (a >= 'A' && a <= 'Z')
{
b = a + 3;
}
else if (a >= 'a' && a <= 'z')
{
b = a + 4;
}
else
{
b = a;
}
printf("%c", b);
}
7-92 位运算
分数 15
全屏浏览题目
切换布局
作者 张庆
单位 集美大学
给定一个数,将该数的某二进制位上置0、置1或取反。
输入格式:
第1行:输入一个十进制整数。(32位int取值范围,其二进制数补码表示)
第2行后:每行输入一个位操作运算要求。
格式:输入位操作运算类型(1表示置0,
2表示置1
,3表示按位取反
) 位数(从最低位向高位,范围从0~31
)
最终以键盘输入^Z
或 文件结束(EOF标志)。
输出格式:
输出位运算后的整数值。
输入样例:
在这里给出一组输入。例如:
3
1 0
1 1
2 3
3 1
3 2
2 0
输出样例:
在这里给出相应的输出。例如:
15
#include<stdio.h>
#include <ctype.h>
int main()
{
int num=0;
scanf("%d",&num);
int a,b;
while(EOF != scanf("%d %d",&a,&b)){
switch(a){
case 1:
num = num & (~(1<<b));
break;
case 2:
num = num | (1<<b);
break;
case 3:
if((num>>b)&0x1){
num = num & (~(1<<b));
}else{
num = num | (1<<b);
}
break;
}
}
printf("%d\n",num);
return 0;
}