一道指针题!
#include <stdio.h>
void fun(char *al,char *a2,int n)
{int k;
for(k=0;k<n;k++)
a2[k]=(a1[k]-'A'-3+26)%26+'A';
a2[n]='\0';}
main()
{char s1[5]="ABCD",s2[5];
fun(s1,s2,4);
puts(s2);}
请问输出结果是什么?
请写出详细的解题思路!!!万分感谢!
参考答案:XYZA
首先说下,第二行al似乎应该是a1,不然无法编译通过
程序把s1,s2,4传入子函数后,进行循环,分别对s1的每个字符的ASC码进行-A的ASC码-3+26后再对26取余运算,最后加上A的ASC码.
当然,字符串最后还要加上NULL(\0)