资源描述:
《指针经典练习题及答案.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、二、程序题1、计算字符串中子串出现的次数。要求:用一个子函数subString()实现,参数为指向字符串和要查找的子串的指针,返回次数。2、加密程序:由键盘输入明文,通过加密程序转换成密文并输出到屏幕上。算法:明文中的字母转换成其后的第4个字母,例如,A变成E(a变成e),Z变成D,非字母字符不变;同时将密文每两个字符之间插入一个空格。例如,China转换成密文为Glmre。要求:在函数change中完成字母转换,在函数insert中完成增加空格,用指针传递参数。3、字符替换。要求用函数replace
2、将用户输入的字符串中的字符t(T)都替换为e(E),并返回替换字符的个数。4、编写一个程序,输入星期,输出该星期的英文名。用指针数组处理。5、有5个字符串,首先将它们按照字符串中的字符个数由小到大排列,再分别取出每个字符串的第三个字母合并成一个新的字符串输出(若少于三个字符的输出空格)。要求:利用字符串指针和指针数组实现。6、定义一个动态数组,长度为变量n,用随机数给数组各元素赋值,然后对数组各单元排序,定义swap函数交换数据单元,要求参数使用指针传递。7、实现模拟彩票的程序设计:随机产生6个数字,
3、与用户输入的数字进行比较,输它们相同的数字个数(使用动态内存分配)。/*1、计算字符串中子串出现的次数。要求:用一个子函数subString()实现,参数为指向字符串和要查找的子串的指针,返回次数。*/#includeintsubString(char*a,char*b){inti=0;intj=0;intm=0;char*p=b;while(*a){while(*a){if(*a==*b){break;}a++;}while(*b){if(*a!=*b){returnm;}else
4、{m=m;}b++;a++;}//a++;b=p;++m;}returnm;}intmain(){chara[100];charb[100];printf("请输入字符串a:");gets(a);printf("请输入字符串b:");gets(b);printf("%d",subString(a,b));return0;}/*2、加密程序:由键盘输入明文,通过加密程序转换成密文并输出到屏幕上。算法:明文中的字母转换成其后的第4个字母,例如,A变成E(a变成e),Z变成D,非字母字符不变;同时将密文每两
5、个字符之间插入一个空格。例如,China转换成密文为Glmre。要求:在函数change中完成字母转换,在函数insert中完成增加空格,用指针传递参数。*/#include#includevoidchange(char*p){while(*p){*p=*p+4;p++;}}intmain(){chara[2][100]={""};printf("请输入明文:");gets(a[0]);change(a[0]);strcpy(a[1],a[0]);printf("
6、密文为:");printf("%s",a[1]);return0;}/*3、字符替换。要求用函数replace将用户输入的字符串中的字符t(T)都替换为e(E),并返回替换字符的个数。*/#include#includeintMyreplace(char*p){inti=0;while(*p){if(*p=='t'
7、
8、*p=='T'){*p=*p-15;i++;}p++;}returni;}intmain(){intm;chara[100];char*p=a;
9、printf("请输入字符串:");gets(a);m=Myreplace(a);printf("%s",p);printf("%d",m);return0;}/*4、编写一个程序,输入星期,输出该星期的英文名。用指针数组处理。*/#include#includevoidfun(char(*a)[100],char*b,char*c,int*m){inti=0;intj=0;while(c[i]){if(c[i]==*m){strcpy(b,a[i]);b
10、reak;}i++;}}intmain(){chara[][100]={"yi","er","san","si","wu","lui","qi"};charc[100]={1,2,3,4,5,6,7};charb[100]="";//char*p=b;intm;scanf("%d",&m);fun(a,b,c,&m);printf("%s",b);return0;}第二种方法/*4、编写一个程序,输入星期,输出该星期的英文名。用指针数组处理。*/#i