题目如下。结果均通过编译(dev)
1、:(1)分析程序, 写出输出结果?
(2) 分析程序, 写出输出结果?
2、输入一个正整数,输出原数并逆序打印出各位数字。
#include <stdio.h>
#include <string.h>
#define max 100
char* invers_int(char *x)
{
int i = 0;
char change;
int len = strlen(x)-1;
for(i=0; i<len/2; i++)
{
change = x[i];
x[i] = x[len-i];
x[len-i] = change;
}
return x;
}
int main(void)
{
char s[max];
printf("enter a number !\n");
scanf("%s", s);
printf("x = %s.\n", invers_int(s));
return 0;
}
#include <stdio.h>
#include <string.h>
#define max 100
int invers_int(int x)
{
int l = 0, s = 0;
l = x;
while(l)
{
s = s*10 + l%10;
l = l / 10;
}
return s;
}
int main(void)
{
int s;
printf("enter a number !\n");
scanf("%d", &s);
printf("x = %d.\n", invers_int(s));
return 0;
}
3、按以下规律翻译密码:将每一个字母变成它后面的字母,例如,将A变成B,B变成C,…,Z变成A,非字母字符不变,“!”作为电文结束标志。
#include <stdio.h>
#include <string.h>
#define max 100
void change(char *s)
{
int i = 0;
int len = strlen(s) ;
for(i=0; i<len; i++)
{
if((s[i] >= 'a' && s[i] <= 'y' ) || (s[i] >= 'A' && s[i] <= 'Y' ))
s[i] = s[i] + 1;
else if(s[i] == 'z' || s[i] == 'Z')
s[i] = s[i] - 25;
}
}
int main(void)
{
char s[max];
int i = 0;
for(i=0; i<max; i++)
{
scanf("%c", &s[i]);
if(s[i] == '!')
break;
}
s[i] = '\0';
change(s);
printf("s = %s.\n", s);
return 0;
}