C语言程序设计实验-指针(二).docx
实验7:指针(二) 一、实验目的I.学会使用字符串的指针和指向字符串的指针变量;2 .学会使用指向函数的指针变量;3 . 了解指向指针的指针的概念及其使用方法 二、实验内容编写程序,实现如下功能:(要求必须用指针处理)1 .输入一个字符串,找出其中的大写字母、小写字母、数字、空格和其它字符各有多少。2 .输入一个字符串,测出字符串的长度n,并写一个函数,将此字符串从第m个字符(mvn)开始 的全部字符复制成另一个字符串。要求在主函数输入字符串及m值并输出复制结果。3 .利用函数指针的方法,设计求两个数的和、差、乘积和商的4个函数,并在主函数中进行验证。三、实验结果记录 第1题上机调试后的最终代码及上机调试结果(截图):程序代码:Sinclude <stdio.h>define N 100uoid count(char *p);void nain() <char strN;printf请输入一个字符串:n”);gets(str);count(str);uoid count(char «p)< int0tcapitai-0.lowercase0,Figure-O.blank-O.other-O;<lowercase*;else&& »(p*i)<-,2,)capital*;else if(»(p*i)>-'0" && »(p»i)<-,9') f igurer;else- e ,)blank*;else other*;printf ("此字符串史:n");printf (“大宣生母有d 个n”.capital);prints (“侑字母有4n”, lowercase);printf (“数字有”个n”,figure);printf (“空格有blank);printf(" 其他字符有 2d 个n”,other);运行结果|请输入个字符小:1 I Love China! China Number 1 !此字符串中:大写字母有5个小写字母有16个数字彳U个空格仃7个其他字符有6个Press any key to continue第2题上机调试后的最终代码及上机调试结果(截图): 程序代码:Itinclude <stdio .h> include <stdlib.h> define N 100 uoid copy(char *p1vchar »p2,int m); uoid nain() <char str1N,str2N;int n=0,ni;prints”请输入一个字符串:n");gets(strl);while(str1n?-e0') n+;printf (“此字符串的长度为:n-);printf(',%dn"»n);printer 请输入 m 的值,注意:m<=Zdn”,n);scanf ('%(!",&n);if(n>n)printf ("嚅小于2dn",n);exit(-1); >copy(str1,str2,n-1);printf (“原字符串为:n");puts(str1);printF("从原字符串的第初位复制的字符串为:n",n); puts(str2);>uoid copy(char *p1,char »p2,int n)<int i;for(i=n;»(p1+i)?='0*;!)*(p2*)-*(p1*i);*p2=,0,; >运行结果:恒输入一个字符小:I Love China此字符串的长度为:12请输入m的值,注意:m<=128原字符串为:I Love China从原字符串的第8位复制的字符串为: Chinapress any key to continueI Love China此字符串的长度为:12请输入m的值,注意:水二12100m需小于12Press any key to continue第3题上机调试后的最终代码及上机调试结果(截图): 程序代码:ttinclude <stdio.h>a,Float b); a,float b); a .float b); a.float b);a,Float b); a,float b); a .float b); a.float b);float add(float Float sub(Float Float pro(Float Float diu(Float uoid main() <float avb;int i;Float (*func4)(Floatvfloat)saddvsubfprovdiu);printf (请输入你想进行运算的两个数n”);scanFC'W'.&a.&b);printf("说明:序乌 9和,1-差,2积,3商n”);printf(“祢通进行的运算序号宴scanFC'td'.fci);print"”运算结果是 > Float add(Float a,float b) <return a+b;>Float sub(Float a,Float b)<return a-b;>Float pro(Float a .Float b)<return a«b;>Float diu(float a,float b) <return a/b;运行结果:济输入你想进仃运"的两个数560 78说明:序号0和,1 一差,2积,3商 你想进行的运算序号是:0运算结果是:638. 00Press any key to continue99 4说明:序号0和,1 一差,2-积,3商 你想进行的运算序号是:1运算结果是:95. 00Press any key to continue98 13说明:序号0和,1 一差,2积,3商 你想进行的运党序号是:9运算结果是:1274. 00Press any key to continue|请输入你想进行运算的两个数750 150说明:序号0-和,1 一差,2积,3商你想进行的运算序号是:3运算结果是5 00Press any key to continue四、实验小结:通过此次实验,我熟悉和掌握了使用字符串的指针和指向字符串的指针变量,同时也学会了指向函数 的指针变量。程序1中使用了指向字符串的指针变量进行程序编写。程序2中使用了多个指向字符串的指 针变量进行程序编写。程序3中使用了函数指针进行程序编写。编写过程中问题较少,基本无逻辑错误, 但是还是遇到了语法错误,可见不仅要注重逻辑也要注意最基本的语法。总之,此次实验加深了我对指针 的理解,学会了用指针实现不同的功能。