c语言指导书(带答案).doc_第1页
c语言指导书(带答案).doc_第2页
c语言指导书(带答案).doc_第3页
c语言指导书(带答案).doc_第4页
c语言指导书(带答案).doc_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

c语言指导书(带答案) C语言实训指导书主编王景胜常州机电职业技术学院二一三年六月-I-内容简介本书针对高职高专院校学生,本着“重在基础、重在应用”的教学理念,采用项目导向、案例驱动的思想来组织。 全书详细介绍了C语言编程知识与技巧,帮助学生掌握利用C语言进行结构化程序设计的技术和方法,指导学生编制典型程序,实现典型算法,循序渐进地引导学生理解程序语法与算法思想,培养学生严谨的程序设计思想、灵活的思维方式及较强的动手能力,使学生逐渐掌握较复杂软件的设计和开发过程。 本书内容丰富、重点突出、设计新颖、讲解详尽,能帮助初学者快速且扎实的掌握C语言知识,不仅可作为高等院校C语言课程的配套教材,也可作为广大计算机应用技术人员与参加全国计算机等级考试(二级C)人员的学习参考书。 -II-前言C语言是功能很强,应用面广,使用灵活的一种语言,在系统级编程、嵌入式开发等应用领域具有不可替代的作用,它不仅可以实现其他高级语言所实现的功能,编写出应用程序,而且还能调用系统的功能,实现对硬件的操作。 本实训通过典型C程序上机训练,使学生具备IT相关职业的程序编制、程序创新设计技能,为今后的工作打下初步基础。 本实训中将C语言的一般应用概括为以下几个问题数学运算处理、数列与级数求和、一维数组运算、二维数组运算、字符串运算、统计与计数、链表操作、文件操作。 由于时间仓促与编者水平有限,不足与欠妥之处在所难免,恳请广大读者不吝指正。 任何批评和建议请发至sywjsfoxmail.。 同时,在实训过程中,培养学生养成良好地编程习惯;培养学生培养严谨务实的分析问题与解决问题能力;培养学生计算机编程语言学习方法以及通过互联网、文献资料巩固和拓展所学知识能力。 1.2实训内容通过查阅相关资料,让学生能设计典型程序的数据结构和算法,训练学生应用VC+集成环境编写、纠错和调试程序,在上机练习过程中,注意学生良好编程习惯的养成,同时,培养学生培养严谨务实的分析问题与解决问题能力。 1.3日程安排教学单元教学内容学习目标参考学时 1、数学运算处理 1、数的按位分离及合并。 2、素数问题。 3、整除及奇偶判断问题。 4、进制转换。 1、能理解相关数据结构与算法。 2、能判断并修正简单的程序语法错误。 3、能参照样例编写C程序,程序代码风格良好。 42、数列与级数求和 1、数列。 2、级数求和。 1、能理解相关数据结构与算法。 2、能判断并修正简单的程序语法错误。 3、能参照样例编写C程序,程序代码风格良好。 43、一维数组运算 1、求数组中元素的和、平均数。 2、最值问题。 3、排序、逆序。 4、查找、删除、移位。 1、能理解相关数据结构与算法。 2、能判断并修正简单的程序语法错误。 3、能参照样例编写C程序,程序代码风格良好。 44、二维数组运算 1、半三角元素运算。 2、求矩阵周边元素的和或平均值。 1、能理解相关数据结构与算法。 2、能判断并修正简单的程序语法错误。 3、能参照样例编写C程序,程序代码风格良4-2-教学单元教学内容学习目标参考学时 3、矩阵行(或列)互换。 4、矩阵转置、加法运算。 好。 5、字符串运算 1、字符ASCII值应用,包括大小写转换,数字字符转换成数字。 2、字符串常用库函数的实现。 3、字符串匹配。 4、字符串处理。 1、能理解相关数据结构与算法。 2、能判断并修正简单的程序语法错误。 3、能参照样例编写C程序,程序代码风格良好。 46、统计与计数 1、计数器的实现 2、统计字符、数字、年龄段 1、能理解相关数据结构与算法。 2、能判断并修正简单的程序语法错误。 3、能参照样例编写C程序,程序代码风格良好。 27、链表 1、链表遍历 2、链表的建立和节点的插入 3、链表的节点删除 4、链表的节点排序、逆序 1、能理解相关数据结构与算法。 2、能判断并修正简单的程序语法错误。 3、能参照样例编写C程序,程序代码风格良好。 48、文件操作 1、文件的打开与关闭 2、文件的读写操作 1、能理解相关数据结构与算法。 2、能判断并修正简单的程序语法错误。 3、能参照样例编写C程序,程序代码风格良好。 21.4注意事项1.编写结构良好的代码2.使用规范良好的标识符3.尽量编写简单的语句行4.使用统一的代码排列5.不省略括号,用括号使代码更清晰6.注意=和=的区别7.关键代码处添加相应的注释8.别忘记初始化变量-3-第第2章章实训准备2.1准备阶段的实训目标掌握VC+集成环境的主要菜单命令、能创建相应的工作区和软件项目,能熟练应用VC+集成环境编写、纠错和调试程序,会使用VC+的各类调试命令和方法,包括常用调试快捷键、如何启动调试模式、设置断点、观察变量、单步跟踪、各种查看工具的使用。 2.2准备阶段的实训内容编程实现1+2+3+99+100的值。 步骤 1、打开VC+6. 02、创建一个工作区,新建一个项目 3、添加C源程序 4、编写C程序,注意编程代码风格 5、完成编译、连接、运行过程 6、启动调试模式,设置断点,单步执行,观察相关变量,练习VC+调试技巧。 -4-第第3章章实训过程3.1一项目一数学运算处理 一、目的和要求开展数学运算处理类的编程训练,掌握“数的按位分离及合并”、“素数问题”、“整除及奇偶判断问题”、“进制转换”等程序的设计方法。 二、编程训练 1、数的按位分离及合并。 ?解决思路对于某个整数的各个位提取,需要用到“/”除法和“%”取余运算。 获取某个整数最后一位,使用%运算符,删除某个整数最后一位,使用/运算符。 ?程序编制 (1)将两个两位数的正整数a、b合并形成一个整数放在c中,合并的方式是将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的个位和百位上。 例如,当a=45,b=12。 调用该函数后,c=4251。 #includevoid fun(int a,int b,long*c)int c1,c2,c3,c4;c1=b%10;c2=a%10;c3=b/10;c4=a/10;*c=c1*1000L+c2*100L+c3*10L+c4*1L;main()int a,b;long c;printf(Input a,b:);scanf(%d%d,&a,&b);fun(a,b,&c);-5-printf(The resultis:%ldn,c); (2)请编写一个函数int fun(int x),它的功能是判断整数x是否是同构数。 若是同构数,函数返回1;否则返回0。 所谓“同构数”是指这样的数,它出现在它的平方数的右边。 例如输入整数5,5的平方数是25,5是25中右侧的数,所以5是同构数。 x的值由主函数从键盘读入,要求不大于100。 #includeint fun(int x)if(x100)printf(data error!n);return (0);y=fun(x);if(y)printf(%d YESn,x);else printf(%d NO!n,x); (3)请编写一个函数fun,它的功能是将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。 例如若输入字符串-1234,则函数把它转换为整数值-1234。 #includelong fun(char*p)long n;int sign;if(p0=-|p0=+)p+;if(p0=-)sign=-1;else sign=1;n=0;for(i=0;pi!=0;i+)n=n*10+(pi-0);return sign*n;-6-main()char s6;long n;printf(Enter astring:n);gets(s);n=fun(s);printf(%ldn,n); (4)请编写一个函数unsigned fun(unsigned w),w是一个大于10的无符号整数,若w是n(n2)位的整数,函数求出w的后n-1位的数作为函数值返回。 #includeunsigned fun(unsigned w)unsigned k;unsigned t=w;k=1;while(w0)k*=10;w/=10;return t%(k/10);main()unsigned x;printf(Enter aunsigned integernumber:);scanf(%u,&x);printf(The originaldata is:%un,x);if(xm-1,2-m/2,2-sqrt(m)范围内是否有该数的一个因子。 伪代码1for(i=2;im-1)m是素数else m不是素数伪代码2for(i=2;i=num-1;i+)if(num%i=0)break;if(i=num-1)m是非素数else m是素数伪代码3for(i=2;im/2)m是素数else m不是素数伪代码4for(i=2;isqrt(m)m是素数else m不是素数伪代码5k=sqrt(m);for(i=2;ik)m是素数else m不是素数伪代码6k=sqrt(m);flag=1;for(i=2;i=k;i+)if(m%i=0)flag=0;break;if(flag)m是素数else m不是素数伪代码7-8-k=sqrt(m);flag=1;for(i=2;i=k&flag;i+)if(m%i=0)flag=0;if(flag)m是素数else m不是素数完整程序代码#include#includemain()int m,i,k;printf(nPlease inputa integer:);scanf(%d,&m);k=sqrt(m);/*可以换成k=m-1,k=m/2*/for(i=2;ik)/*该处的条件刚好和上面的for语句的循环条件相反*/printf(%d isa prime number!n,m);elseprintf(%d isnot aprimenumber!n,m);?程序编制 (1)编写函数int fun(int lim,int aa),该函数的功能是求出小于lim的所有素数并放在aa数组中,该函数返回求出素数的个数。 #includeint fun(int lim,int aa)int i,m,k=0;for(m=2;m (2)请编写函数fun,函数的功能是将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。 例如,若输入17,则应输出9和46891012141516。 #includevoid fun(int m,int*k,int xx)int i,m,n=0;for(num=2;num (3)请编写一个函数void fun(int m,int k,int xx),该函数的功能是将大于整数m且紧靠m的k个素数存入xx所指的数组中。 -10-例如,若输入17,5,则应输出19,23,29,31,37。 #includevoid fun(int m,int k,int xx)int i,m,n=0;for(num=m+1;n 3、整除及奇偶判断问题。 ?解决思路判断某个整数是否可以整除num1%num2=0,判断某个数值是否为偶数num%2=0,判断某个数值是否为奇数num%2=1?程序编制 (1)请编写函数void fun(int x,int pp,int*n),它的功能是求出能整除x且不是偶数的各整数,并放在pp所指的数组中,这些除数的个数通过形参n返回。 例如,若x中的值为30,则有4个数符合要求,它们是13515。 #includevoid fun(int x,int pp,int*n)int i,j=0;for(i=1;i=x;i+)-11-if(x%i=0&x%2!=0)ppj+=i;*n=j;main()int x,aa1000,n,i;printf(nPlease enteran integernumber:n);scanf(%d,&x);fun(x,aa,&n);for(i=0;i (2)请编写函数fun,它的功能是求出1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。 #include#define M200int aa1000;void fun(int*n)int i,j=0;*n=0;for(i=1;i=1000;i+)/*判断i是否能被7或11整除,且又不能同时被7和11整除*/if(i%7=0|i%11=0)&(i%7!=0|i%11!=0)aaj+=i;*n=j;main()int n,k;fun(&n);for(k=0;k 4、进制转换。 ?解决思路参考数的按位分离及合并中第3个程序,将代码中n=n*10+si-0;中的10改成8即可。 ?程序编制-12- (1)将一个由八进制数值字符组成的字符串转换为与其面值相等的十进制整数。 规定输入的字符串最多只能包含5位八进制数字字符。 例如若输入77777,则输出将是32767。 #includevoid fun(char s,long*c)int i,n=0;for(i=0;si;i+)n=n*8+si-0;*c=n;void main()char s=77777;long c;fun(s,&c);printf(%ldn,c);-13-3.2二项目二数列与级数求和 一、目的和要求通过数列与级数类的程序编制,熟悉和掌握C语言处理数列的相关技巧,重点掌握循环结构在此类问题的应用。 二、编程训练 1、数列。 ?解决思路对于数列问题要找到数列的规律,然后利用循环结构进行递进或迭代。 ?程序编制 (1)编写函数fun,它的功能是求Fibonai数列中大于t的最小的一个数,结果由函数返回。 其中Fibonai数列F(n)的定义为F (0)=0,F (1)=1F(n)=F(n-1)+F(n-2)例如当t=1000时,函数值为1597。 #includeint fun(int t)int x1=0,x2=1,temp=0;while(x2 2、级数求和。 ?解决思路-14-此类问题是一个累加的过程,需要掌握数列的规律,同时一般引入一个sum作为和的累积,通过for循环结构解决每项遍历问题,注意边缘临界点的问题。 ?程序编制 (1)编写函数fun,函数的功能是根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。 111S=1+1+21+2+31+2+3+n例如若n的值为11时,则函数值为1.833333#includefloat fun(int n)int i;float sum=0.0,h=0.0;for(i=1;i=n;i+)h+=i;/*h为每一分式的除数,i为前后相邻除数之间的增量*/s+=1.0/h;return(sum)main()int n;float s;system(cls);printf(nPlease enterN:);scanf(%d,&n);s=fun(n);printf(the resultis:%fn,s); (2)编写函数fun,它的功能是根据以下公式计算s,计算结果通过形指针sn传回;s通过形参传入。 1111(-1)nsn=-+-+13572n+1例如若n的值为11时,输出的结果是S=0.764601N=11。 #includevoid fun(float*sn,int n)-15-int i;int sign=1;float sum=0.0;for(i=0;i=n;i+)sum+=sign*(1.0/(2*i+1);/*累加每一分式*/sign=-sign;/*用来控制分式是加还是减*/*sn=sum;main()int n=11;float s;fun(&s,n);printf(S=%f N=%dn,s,n); (3)编写函数fun,它的功能是计算s=(ln (1)+ln (2)+ln (3)+ln(m)0.5,s作为函数值返回。 在C语言中可调用log(n)函数求ln(n)。 log函数的引用说明是double log(doublex)。 例如,若m的值为20,fun函数值为6.506583。 #include#includedouble fun(int m)int i;double sum=0;for(i=1;i=eps)/*通过循环语句判断公式中某项是否在精度范围之内*/pi+=one;n+;up=up*n;down=down*(2*n+1);one=(double)up/(double)down;return pi*2;main()double x;printf(Input eps:);scanf(%lf,&x);printf(neps=%lf,PI=%lfn,x,fun(x);3.3三项目三一维数组运算 一、目的和要求 1、理解数组的遍历数组的遍历按照某种策略访问集合中所有元素,如顺序访问数组中的元素。 2、掌握一维数组作为函数参数的基本用法(本质是指针)下面三句代码等价-17-void fun(int a5,int n);/a的本质是指针,所以sizeof(a)=4void fun(int a,int n);/a的本质是指针,所以sizeof(a)=4void fun(int*a,int n);/a的本质是指针,所以sizeof(a)=4 二、编程训练 1、求数组中元素的和、平均数。 ?解决思路注意要点a.累加和初值为零,补充累乘初值为1。 b.注意存放和或平均数的数据类型。 (1)求数组中元素的平均值代码段1int a10;int sum=0;double avg;for(i=0;i10;i+)sum+=ai;avg=sum/10.0;代码段2double a10;double sum=0.0,avg;for(i=0;i10;i+)sum+=ai;avg=sum/10;注意sum的数据类型。 ?程序编制 (1)请编一个函数fun(int*a,int n,int*odd,int*even),函数的功能是分别求出数组中所有奇数之和以及所有偶数之和。 形参n给出数组中数据的个数;利用指针odd返回奇数之和,利用指针even返回偶数之和。 例如数组中的值依次为1,9,2,3,11,6;则利用指针odd返回奇数之和24;利用指针even返回偶数之和8。 #include#define N20fun(int*a,int n,int*odd,int*even)int i;int sumOdd=0,sumEven=0;-18-for(i=0;i (2)请编写一个函数fun,它的功能是计算n门课程的平均分,计算结果作为函数值返回。 例如若有5门课程的成绩是90.5,72,80,61.5,55,则函数的值为71.80。 #includefloat fun(float*a,int n)int i;float average;double sum=0;for(i=0;i 2、最值问题。 ?解决思路-19-默认第1个值为最值,从第2个值开始,每个数据依次与当前最值比较,如果比最大值还大(比最小值还小),则更像当前最值。 伪代码1.求最值本身int max=a0;for(i=1;imax)max=ai;最大值:max伪代码2.求最值所在下标int k=0;for(i=1;iak)k=i;最大值所在下标:k最大值:ak伪代码3.求结构体数组中学生的最高分struct studentchar num10;int s;typedef structstudent STU;STU a10;int k=0;for(i=1;iak.s)k=i;最高分的学生下标k最高分的学生信息ak最高分的学生分数ak.s程序编制 (1)要求程序的功能是把20个随机数存入一个数组,然后输出该数组中的最小值。 其中确定最小值的下标的操作在fun函数中实现,请给出该函数的定义。 #include#define VSIZE20int vectorVSIZE;int fun(int list,int size)int x,i;-20-x=0;for(i=1;ilisti)x=i;return x;main()int i;for(i=0;i (2)m个人的成绩存放在score数组中,请编写函数fun,它的功能是将低于平均分的人数作为函数值返回。 例如,当score数组中的数据为 10、 20、 30、 40、 50、 60、 70、 80、90时,函数返回的人数应该是4,below中的数据应为10203040。 #includeint fun(int score,int m,int below)int sum=0;double average=0;int i;int j=0;/*用于计算成绩低于平均分的学生的人数*/for(i=0;i (3)已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。 请编写函数fun,函数的功能是找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。 #include#include#define N10typedef structsschar num10;int s;STU;fun(STU a,STU*s)int i,k=0;for(i=1;i 3、逆序。 ?解决思路-22-数组中逆置13579=97531首尾交换,交换N/2次,ai与aN-1-i交换方法1for(i=0;i (1)请编一个函数fun(char*s),函数的功能是把字符串中的内容逆置。 例如字符串中原有的内容为abcdefg,则调用该函数后,串中的内容为gfedcba。 #include#include#define N81fun(char*s)int i,n=strlen(s);for(i=0;i 4、排序?解决思路 (1)选择排序-23-for(i=0;iaj)t=ai;ai=aj;aj=t;/n个元素,处理n-1次/前面一个元素ai,依次与后面所有元素aj进行比较,小的交换到前面,大的交换到后面/一次处理完毕后,最小的一个数,到最上面 (2)冒泡排序for(i=0;iaj+1)t=aj;aj=aj+1;aj+1=t;/n个元素,处理n-1次/从第一个元素开始,依次相邻的两个元素(ajaj+1)进行比较,小的交换到前面,大的交换到后面/一次处理完毕后,最大的一个数,沉底。 (3)改良型的选择排序for(i=0;i /一次处理完毕后,最大的一个数,沉底。 ?程序编制 (1)请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按降序排列。 例如,原来的字符串为CEAedca,排序输出为CedcEAa。 #includeint fun(char*s,int num)/上机编写代码-24-main()char s10;printf(输入7个字符的字符串);gets(s);fun(s,7);printf(n%s,s); 5、删除删除数组中某些元素移位。 ?解决思路 (1)整型数组,删除数组中所有大于10并且小于20的整数void fun(int*a,int*n)/n这个指针指向的变量中存放了数组中的元素个数int i,j=0;for(i=0;i10&ai20)aj+=ai;*n=j;/很多人会忘记更新*n的值 (2)字符数组,删除星号类的题目void fun(char*s)j=0;for(i=0;si!=0;i+)if(!(删除条件)sj+=si;sj=0;/很多人会忘记,新的字符串需要补充一个0程序编制 (1)函数fun的功能是将s所指字符串中下标为奇数、同时ASCII值也为奇数的字符删除,串中剩余的字符形成一个新串放在t所指的数组中。 例如若s所指串中的内容为“ABCDEFG12345”,其中C的ASCII码值虽为奇数,但在数组中的下标为偶数,因此不能删除,而字符1的ASCII码值为奇数,在数组中的下标也为奇数,因此应当删除,其他依次类推。 最后,t所指的数组中的内容是“ABCDEFG24”。 #include#include-25-void fun(char*s,char t)int i,slenth,n=0;slenth=strlen(s);for(i=0;i 6、将数组中元素向左或向右进行平移。 ?解决思路左移两位的代码,右移可以变化成左移for(j=0;j=0;i-)wi+1=wi;/ (3)将临时变量temp中字符放到第1个位置w0=temp;*/main()char aN=ABCDEFGHIJK;int m;printf(The originalstring:n);puts(a);printf(nnEnter m:);scanf(%d,&m);fun(a,m);printf(nThe stringafter moving:n);puts(a);printf(nn);3.4四项目四二维数组运算 一、目的和要求 1、理解二维数组的遍历-27-按照某种策略访问集合中所有元素,如顺序访问数组中的元素。 先行后列int a34;for(i=0;i3;i+)/访问第i行for(j=0;j4;j+)/访问第i行的第j列先列后行int a34;for(j=0;j4;j+)/访问第j列for(i=0;i=j右上半角:i=j如将数组中所有右上半角的元素(包括对角线)乘以mvoid fun(int aN,int m)for(i=0;i (1)程序定义了NN的二维数组,并在主函数中赋值。 请编写函数fun,函数的功能是给数组左下半角元素置0值。 #include#define N5fun(int wN)for(i=0;i=j)aij=0;main()int aNN,i,j;printf(*The array*n);for(i=0;i 2、求矩阵周边元素的和或平均值。 ?解决思路对于int aMN周边元素i=0|i=N-1|j=0|j=N-1周边元素的个数2*M+2*N-4如求周边元素的平均值double fun(int aMN)int i,j;int s=0;for(i=0;i (1)程序定义了NN的二维数组,并在主函数中赋值。 请编写函数fun,函数的功能是给数组周边元素置0值。 #include#define N5fun(int wN)for(i=0;i (2)请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。 二维数组中的值在主函数中赋予。 #include#define M4#define N5int fun(int aMN)int i,j,s=0;for(i=0;i 3、矩阵行(或列)互换。 ?解决思路for(i=0;i (1)程序定义了NN的二维数组,并在主函数中自动赋值。 请编写函数fun(int aN),函数的功能是使数组中第一行元素中的值与倒数第一行元素中的值对调、第二行元素中的值与倒数第二行元素中的值对调、其他依次类推。 #include#define N5void fun(int aN)int i,j,t;for(i=0;i for(j=0;j (2)请编一个函数void fun(int ttMN,int ppN),tt指向一个M行N列的二维数组,-32-求出二维数组每列中最小元素,并依次放入pp所指一维数组中。 二维数组中的数已在主函数中赋予。 #include#define M3#define N4void fun(int ttMN,int ppN)int i,j,max;for(j=0;jmax)max=aij;ppj=max;main()int tMN=22,45,56,30,19,33,45,38,20,22,66,40;int pN,i,j,k;printf(The originaldata is:n);for(i=0;i 4、矩阵转置、加法运算。 ?解决思路此类问题,只需将数组中aij与aji进行交换,但是注意只需要交换一次即可,如果交换两次,相当于回到原始状态。 程序编制-33- (1)编写程序,实现矩阵(3行3列)的转置(即行列互换)。 例如,输入下面的矩阵100xx00400500600700800900程序输出100400700xx00800300600900#includevoid fun(int array33)int i,j,t;for(i=0;i3;i+)for(j=0;jj)t=arrayij;arrayij=arrayji;arrayji=t;main()int i,j;int array33=100,200,300,400,500,600,700,800,900;for(i=0;i3;i+)for(j=0;j3;j+)printf(%7d,arrayij);printf(n);fun(array);printf(Converted array:n);for(i=0;i3;i+)for(j=0;j3;j+)printf(%7d,arrayij);printf(n); (2)请编写函数fun,函数的功能是实现B=A+A,即把矩阵A加上A的转置,存-34-放在矩阵B中。 计算结果在main函数中输出。 例如,输入下面的矩阵其转置矩阵为|123|147|456|258|789|369|程序输出|2610|61014|101418|#includevoid fun(int a33,int b33)int i,j;for(i=0;i3;i+)for(j=0;j3;j+)bij=aij+aji;/*求得矩阵与其转置的和*/main()int a33=1,2,3,4,5,6,7,8,9,t33;int i,j;fun(a,t);for(i=0;i3;i+)for(j=0;j=a&ssi=0&ssi=9)n+;return n;main()char tt81;printf(nPlease enteran string:n);gets(tt);printf(nn:%dn,fun(tt);); 2、字符串常用库函数的实现。 ?解决思路对于字符串拷贝、字符串连接、字符串长度、字符串比较四个函数是C语言函数库中-36-处理字符串最常用函数,实现方法也非常多,需要能够自行完成几种库函数的实现,同时熟悉如何使用字符串指针。 程序编制 (1)字符串拷贝。 void mystrcpy(char*s1,char*s2)while(*s1+=*s2+); (2)字符串连接。 void m

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论