1、输入一个字符串和一个正整数x,将该字符串中的后x个字符复制到另一个字符串y中,输出字符串y;再对y串的内容前后倒置后存入数组z中并输出。
//输出字符串 #include<string.h> #include<stdio.h> void main() { int i,n; char a[]="abcABCD"; //定义数组字符 char c1[10],*p,*q; p=a; q=c1; scanf("%d",&n); if(strlen(a)>=n) p+=n-1; for(;*p!='\0';p++,q++) *q=*p; *q='\0'; printf("string a:%s\n",a); printf("string c1:%s\n",c1); }
2、为了防止信息被别人轻易窃取,需要把电码明文通过加密方式变换成为密文。变换规则是:小写字母z变换成为a,其它字符变换成为该字符ASCII码顺序后1位的字符,比如o变换为p。
//密码变换问题 #include<stdio.h> #include<string.h> #define MAXLINE 100 void encrypt(char*); int main(void) { char s[MAXLINE]; printf("Input the string:"); gets(s); encrypt(s); printf("%s%s\n","After being encrypted:",s); return 0; } void encrypt(char*s) { for(;*s!='\0';s++) if(*s=='z') *s='a'; else *s=*s+1; }
3、请编一个程序,可以将英语规则名词由单数变成复数。已知规则如下:(a)以辅音字母y结尾,则将y改成i,再加es;(b)以s、x、ch、sh结尾,则加es;(c)以元音字母o结尾,则加es;(d)其他情况直接加s。要求用键盘输入英语规则名词,屏幕输出该名词的复数形式。
4、有n个人围成一圈,按顺序从1到n编号。从第一个人开始报数,报数3的人退出圈子,下一个人从1开始重新报数,报数3的人退出圈子。如此循环,直到留下最后一个人。
//循环,输出留下来的人的编号 #include<stdio.h> main(void) { int a[30],index; int n,i,j,*p; printf("Input n:"); //输出退圈子报的数字 scanf("%d",&n); //循环开始 for(i=0;i<n;i++)a[i]=i+1; p=a-1;j=n; while(j!=1) { i=1; while(i<=3) { p++; if(p==(a+n))p=a; if(*p==0)continue; else i++; } while(*p==0) { p++; //p所指向的变量发生改变,然后修改指针的值 if(p==(a+n))p=a; } if(*p!=0){printf("%d",*p);*p=0;j--;} } printf("\nLastNo.is:"); //输出最后一个数字 for(i=0;i<n;i++)if(a[i]!=0)printf("%d\n",a[i]);//设计循环 return 0; }