写出以下程序段的运行结果。 char ch; int i; for(i = 1; i <= 6; i ++){ ch = getchar(); if (ch >= 'a' && ch <= 'z'){ ch = (ch + 5 - 'a') % 26 + 'a'; }else if(ch >= '0' && ch <= '9'){ ch = (ch + 2 - '0') % 10 + '0'; } putchar(ch); } 输入82pay!,输出
时间: 2023-10-23 16:11:54 浏览: 753
输入82pay!后,程序段的运行结果应该是“87ufd!”。
程序段的作用是将输入的字符进行加密,具体加密方法如下:
- 如果是小写字母,将其转换为字母表中向后数第5个字母(循环计数);
- 如果是数字,将其转换为0-9中向后数第2个数字(循环计数);
- 其他字符不进行加密,直接输出。
对于输入的“82pay!”,程序段的执行过程如下:
- 第一次循环,读入字符'8',不进行加密,直接输出;
- 第二次循环,读入字符'2',进行加密,得到'4',输出;
- 第三次循环,读入字符'p',进行加密,得到'u',输出;
- 第四次循环,读入字符'a',进行加密,得到'f',输出;
- 第五次循环,读入字符'y',进行加密,得到'd',输出;
- 第六次循环,读入字符'!',不进行加密,直接输出。
因此,程序段的输出结果是“87ufd!”。
相关问题
int main( ) { char ch[2][5]={"6934","8254"},*p[2]; int i,j,s=0; for(i=0;i<2;i + +) p[i]=ch[i]; for(i=0;i<2;i + +) for(j=0;p[i][j]>='0'&&p[i][j]<='9';j+=2) s=10*s+p[i][j]-'0'; printf("%d\n",s); return 0; } 以上程序运行结
' && p[i][j]<='9';j++) s=s*10+p[i][j]-'0'; printf("%d",s); return 0; } 这段代码的输出结果是什么?
输出结果是:69348254
下列程序段执行后,s的值是( )。 char ch[]="012"; int i,s=0; for(i=0;ch[i]>=‘0’&&ch[i]<=‘9’;i++) s=10*s+ch[i]-’0’
此程序段是将字符数组 `ch` 中的数字字符转换成整型数字并累加,最终的结果存储在变量 `s` 中。程序段中使用了字符数组和循环语句,对于循环体内的每个字符,将其转换成数字后累加到变量 `s` 中。由于 `ch` 中的元素都是数字字符,因此循环条件中判断字符是否是数字字符的语句始终为真,循环会一直执行直到字符数组 `ch` 的最后一个元素。因此,程序段执行后,变量 `s` 的值将为 12 (即 0*10+1=1,1*10+2=12)。
阅读全文