C语言实验八
C语言实验八实验8 指针程序设计一、实验目的1、掌握指针和指针变量、内存单元和地址、变量与地址、数组与地址的关系。2、掌握指针变量的定义和初始化,指针变量的引用方式。3、掌握指向变量的指针变量的使用。4、掌握指向数组的指针变量的使用。5、掌握指向字符数组指针变量的使用。二、实验内容1改错题(1)下列程序的功能为互换给定数组中的最大数和最小数。程序中,最大数与最小数的互换操作通过函数调用来实现,指针max和min分别指向最大数和最小数。纠正程序中存在的错误,以实现其功能。程序以文件名sy8_1.c保存。include void main int i;static int a810,5,4,0,12,18,20,46;void jhmaxmin;printf“Original arrayn”;fori0;iprintf“5d”,ai; /*输出原始数组元素*/printf“n”;jhmaxmina,8;printf“Array after swaping max and minn”;fori0;iprintf“5d”,ai; /*输出交换后的数组元素*/printf“n”;void jhmaxminint p,nint t,*max,*min,*end,*q;endpn;maxminp;forqp1;qif *q*max maxq;if *qtmax;maxmin;mint;(2)下列程序的功能为求出从键盘输入的字符串的实际长度,字符串中可以包含空格键、跳格键等,但回车结束符不计入。例如输入abcd efg后按Enter键,应返回字符串长度8。纠正程序中存在的错误,以实现其功能。程序以文件名sy8_2.c保存。include int lenchar schar *ps;while p0 p;return p-s;mainchar s80;scanf“s”,s;printf“”s” include d characters.n”,s,lens;(3)下列程序的功能为统计一字符串中各个字母出现的次数,该字符串从键盘输入,统计时不区分大小写字母。对数字、空格及其他字符都不予统计。最后在屏幕上显示统计结果。纠正程序中存在的错误,以实现其功能。程序以文件名sy8_3.c保存。include includevoid mainint i,a26;char ch,str80,*pstr;gets /*获取字符串*/fori0;iai0; /*初始化字符个数*/while *pch*p; /*移动指针统计不同字符出现的次数*/chchA iprintf“2c”,ai; /*输出26个字母*/printf“出现的次数为n”;fori0;iprintf“2d”,ai; /*输出各字母出现次数*/printf“n”;2. 程序填空题(1)下列程序的功能是从键盘输入8个整数,使用指针以选择法对其按从小到大进行排序。补充完善程序,以实现其功能。程序以文件名sy8_4.c保存。include mainint a8,*p;int i,j,k,t;_______________________printf“ the numbers”;fori0;iscanf“d”,pi;t*p;fori0;______________;iforji;jifji||*pjt*pj;kj;if kit*pk;________________________fori0;iprintf“5d”,*pi;(2)下列程序的功能是将一个整数字符串转换为一个数,如字符串“5489”转换为数字5489。选择填空,使程序实现其功能。程序以文件名sy8_5.c保存。include includechnumchar *p;void mainchar s6;int n;getss;if *s- n-chnums1;else nchnums;printf“dn”,n;chnumchar *pint num0,k,len,j;lenstrlenp;for;____1_____;pk_____2_____;j--len;while _______3________ kk*10;numnumk;returnnum;1 A. *p0 B. *p0 C. *p0 D. len02 A. *p B. *p0 C. *p-0 D. *p-323 A. --j B. j--0 C. -len D. len--0(3)下列程序的功能为将字符数组a的所有字符传送到字符数组b中,要求每传送3个字符后再存放一个空格,例如字符串a为“abcdef”,则字符串b为“abc def g”。补充完善程序,以实现其功能。程序以文件名sy8_6.c保存。include mainint i,k0;char a80,b80,*p;pa;getsp;while*pfor i1;____________;p,k,iif __________ bk;k;bk*p;bk0;putsb;3编程题(1)输入一个字符串,将其中的数字字符组成一个数字。程序以文件名sy8_7.c保存。(2)利用指针作函数参数,设计一函数对字母进行简单加密,把当前的字母变成后面第3个字母,如最后3个字母x、y、z变成字母a、b、c。再设计一函数把加密字符还原。程序以文件名sy8_8.c保存。(3)设计一个指针函数,实现将字符串b连接到字符串a的后面。程序以文件名sy8_9.c 保存。