本题要求编写程序,将英文字母替换加密。为了防止信息被别人轻易窃取,需要把电码明文通过加密方式变换成为密文。变换规则是:将明文中的所有英文字母替换为字母表中的后一个字母,同时将小写字母转换为大写字母,大写字母转换为小写字母。例如,字母a->B、b->C、…、z->A、A->b、B->c、…、Z->a。输入一行字符,将其中的英文字母按照以上规则转换后输出,其他字符按原样输出。
输入一行字符,以回车符 '\n’作为 结束符。
将输入的一行字符中的所有英文字母替换为字母表中的后一个字母,同时将小写字母转换为大写字母,大写字母转换为小写字母后输出,其他字符按原样输出。
Reold Z123?
sFPME a123?
#include
#include
int main(int argc, char *argv[])
{
char ch;
do
{
ch = getchar();
if (ch >= 'a' && ch <= 'z')
{
ch -= 31;
printf("%c", ch);
}
else if (ch >= 'A' && ch <= 'Y')
{
ch += 33;
printf("%c", ch);
}
else if (ch == 'Z')
{
ch += 7;
printf("%c", ch);
}
else
{
printf("%c", ch);
}
}
while (ch != '\n');
return 0;
}
本题要求编写程序,根据下式求π的近似值,直到最后一项小于给定精度eps。
π/2=1+1/3+2!/(35)+3!/(357)+4!/(3579)+…
输入在一行中给出精度eps,可以使用以下语句来读输入:
scanf(“%le”, &eps);
在一行内,按照以下格式输出π的近似值(保留小数点后5位):
PI = 近似值
1E-5
PI = 3.14158
#include
#include
int main(int argc, char *argv[])
{
double eps, sum, n, k;
scanf("%le", &eps);
n = 1.0;
k = 0.0;
sum = 0.0;
do
{
sum += n;
k++;
n *= k / (2 * k + 1);
}
while (n >= eps);
sum += n;
printf("PI = %.5f", sum * 2);
return 0;
}
模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算。
输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号”=”说明输入结束。
在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息“ERROR”。
1+2*10-10/2=
10
#include
#include
int main(int argc, char *argv[])
{
int sum, n;
char op;
scanf("%d", &sum);
op = getchar();
while (op != '=')
{
scanf("%d", &n);
switch (op)
{
case '+':
sum += n;
break;
case '-':
sum -= n;
break;
case '*':
sum *= n;
break;
case '/':
if (n != 0)
{
sum /= n;
}
else
{
printf("ERROR\n");
return 0;
}
break;
default:
printf("ERROR\n");
return 0;
}
op = getchar();
}
printf("%d", sum);
return 0;
}
本题目要求编写程序,输入一行字符,将每个单词的首字母改为大写后输出。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
输入给出一行字符。
在一行中输出已输入的字符,其中所有单词的首字母已改为大写。
#include
#include
int main(int argc, char *argv[])
{
int f;
char ch, x;
x = 'A';
f = 0;
ch = getchar();
do
{
if (f == 0)
{
if (ch >= 'A' && ch <= 'Z')
{
printf("%c", ch);
}
else
{
printf("%c", ch - 32);
}
f = 1;
}
else
{
if (ch == ' ')
{
printf("%c", ch);
x = ch;
}
else if (ch != ' ' && x == ' ')
{
printf("%c", ch - 32);
x = ch;
}
else
{
printf("%c", ch);
x = ch;
}
}
ch = getchar();
}
while ((ch >= 'A' && ch <= 'z') || (ch == ' '));
printf("%c", ch);
return 0;
}
本题目要求编写程序,输入一行字符,统计每个单词的长度。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
输入给出一行字符。
在一行中输出每个单词的长度。每个数字后有一个空格。
3 3 4
0
注意全空格
#include
#include
int main(int argc, char *argv[])
{
int count;
char ch;
ch = getchar();
count = 0;
if (ch == ' ')
{
printf("0 ");
}
else
{
do
{
count++;
if (ch == ' ')
{
if ((count - 1) != 0)
{
printf("%d ", count - 1);
count = 0;
}
count = 0;
}
ch = getchar();
}
while (ch != '\n');
if (count != 0)
{
printf("%d ", count);
}
}
return 0;
}