《c语言练习题.pdf》由会员分享,可在线阅读,更多相关《c语言练习题.pdf(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1、10个人的成绩存放在score数组中,编写函数fu n,求出平均分,并作为函数值返回,且输出不及格人数。#includevoid main()(float average(float array10);float score10,aver;int i,n=0;printf(”请输入成绩:n);for(i=0;i10;i+)scanf(n%f,&scorefi);if(scorei60)n+;printf(nH);aver=average(score);printf(平均成绩是=%5.2加”,aver);printf(不及格人数是dn”,n);)float average(noat arra
2、y10)(int i;float aver,sum=array0;for(i=l;i10;i+)sum=sum+arrayi;aver=sum/10;retum(aver);)2、求 出 1 到 100之内能被7 或 者 11整除,但不能同时被7 和 11整除的所有整数,并将他们放在指定的数组a 中。#includevoid main()int a100;int i,n=0;for(i=l;i=100;i+)if(i%7=0)ll(i%ll=0)if(i%77=0)continue;elsean+=i;)for(i=0;in;i+)if(i%7=0)printf(unn);printf(5d”
3、,ai);)3、求方程的解。#include#includevoid main()float a,b,c,disc,x 1 ,x2,realpart,imagpart;printf(请输入方程的3 个系数,a,b,c:”);scanf(%f,%f,%f;&a,&b,&c);printf(该方程 n“);if(fabs(a)=le-6)if(fabs(b)=le-6)if(fabs(c)v=le-6)printf(有无穷多个解 n);else printf(“无解 n”);else printf(有一个根:8.4fn”,-c/b);elsedisc=b*b4*a*c;if(fabs(disc)l
4、e-6)xl=(-b+sqrt(disc)/(2*a);x2=(-b-sqrt(disc)/(2*a);printfC有两个不等的实根:8.4和8.4利”送1 );elserealpart=-b/(2*a);i magpart=sqrt(-di sc)/(2*a);printf(有两个复根An);printf(%8.4f+%8.4finn,realpart,imagpart);printf(H%8.4f-%8.4fin,realpart,imagpart);)4、给出一个百分制成绩,要求输出成绩等级A、B、C、D、E,90分以上为A,8089分为 B,7079分为C,6069分为D,60分以下
5、为E。要求:当输入分数为负值,或大于100时,通知用户“输入数据错误,重新输入”。#includevoid main()float score;char grade;printf(”请输入学生成绩scanf(n%r,&score);while(score100llscore0)printf(“n 输入有误,请重输”);scanf(,&score);s witch(int)(score/10)case 10:case 9:grade=,A,;break;case 8:grade=,B;break;case 7:grade=,C;break;case 6:grade=rD1;break;case
6、5:case 4:case 3:case 2:case 1:case 0:grade=*E;)printf(成绩是 5.lf,相应的等级是%c.n”,score,grade);)5、求数组中最大元素在数组中的下标并存放在指针k 所指的储存单元中o#includeint fun(int*s,int t,int*k)inti;*k=0;for(i=0;it;i+)if(s*ksi)*k=i;return 0;)void main()int a10,i,k;printf(请输入组数:”);for(i=0;i10;i+)scanf(n%dn,&alij);fun(a,10,&k);printf(最大的
7、元素为:dn最大元素的下标是:%dn;ak,k);)6、编写函数fu n,功能是:根据以下攻势计算s,计算结果作为函数值返回;n 通过形参传入。S=l+l/(l+2)+l/(l+2+3)+.+1/(1+2+3+4+.+n)o#includevoid main()(int n;float sum;float fun(int n);printf(请输入 n=u);scanf(d”,&n);sum=fun(n);printf(nS=%5.2fn,sum);)float fun(int n)(int m=0,i;float sum=0;for(i=l;i=n;i+)(m=m+i;sum=sum+1.0
8、/m;)return sum;)7、定义了 7 X 7 的二维数组,并在主函数中自动赋值。编写函数fun(int明7),该函数的功能是:使数组左下半三角元素中的值全部置成0。#includevoid main()(int fun(int a7);int ij,a77;for(i=0;i7;i+)for(j=0;j7;j+)aij=i+j+l;fun(a);for(i=0;i7;i+)for(j=0y7;j+)printf(%5d,ai|j);printf(n);)int fun(int a7)(int i,j;for(i=0;iv7;i+)for(j=0;jj)aiU=0;)8、编写一个函数v
9、oid fun(int ll56,int pp6),tt指向-一个 5 行 6 列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中。二维数组中的数已在主函数中初始化。#includevoid fun(int tt56,int pp6)int i,j,min=100;for(j=0;j6;j+)for(i=0;i5;i+)(if(tti 皿 min)ppj=niin;min=100;)return pp;)main()(int tt56,pp6;int p,j,i;for(j=0;j6;j+)for(i=0;i5;i+)ttij=i+j+l;fun(tt,pp);for
10、(j=0;j6;j+)printf(%5d,ppj);)9、求出4行5列的二维数组周边元素之和。#includevoid main()(int m=0,n=0,i,j;int a45,sum=0;for(i=0;iv4;i+)for(j=0;j5;j+)scanf(%d,&aiJLjJ);for(i=0;i4;i+)for(j=0;jv5;j+)m=m+ai 皿;for(i=l;i3;i+)for(j=l;j4;j+)n=n+aijj;sum=m-n;printf(周边和为d,sum);10、编写程序,把字符串中的内容逆置(不准使用多个字符数组)。#includevoid main()char
11、 c100;int i,temp,n;printf(n 初始字符串:n);gets(c);n=strlen(c);for(i=0;in/2;i+)temp=ci;ci=cn-i-l;cn-i-l=temp;)printf(n交换后的字符串:n);puts(c);)11、编写程序,从字符串中删除指定的字符,同一字母的大、小写按不同字符处理。并把删除好的字符以字符串的形式输出(不准使用多个字符数组)。#includevoid main()(char a80,c;int i,j=O,n;gets(a);printf(”请输入需要删除的字符”);scanf(%c,&c);n=strlen(a);for
12、(i=0;in;i+)if(ai!=c)aj+=ai;aj=O;puts(a);)12、编写程序,对长度为7 个字符的字符串,除首尾字符外,将其余5 个字符按ascii码降序排列。#includevoid main()(int i,j;char a7J,d;printf(请输入字符串)gets(a);for(i=l;i7;i+)for(j=i+1 ;j6;j+)if(aiaj)(d=ai;ai=aj;aj=d;)for(i=0;i7;i+)printf(H%cM,ai);)13、编写函数fu n,它的功能是:比较两个字符串的长度,(不得调用c 语言提供的求字符串长度的函数),函数返回较长的字符
13、串。若两个字符串长度相同,则返回第一个字符串。#include char*fun(char*a,char*b)(int i,m,n;for(i=0;*(a+i);i+)m=i;for(i=0;*(b+i);i+)n=i;if(m=n)return a;elsereturn b;)void main()(char a20,b20,*c;printf(请输入字符串a:n);gets(a);printf(请输入字符串b:n);gets(b);c=fun(a,b);printf(最长的字符串是:n);puts(c);14、给一个不多于5 位的正整数,要求求出它是几位数,打印出每一位数字,并按逆序打印出
14、各位数字。#includevoid main()(long int num;int a,b,c,d,e,place,n;printf(请输入一个整数n:);scanf(%ld,&n);if(n9999)place=5;else if(n999)place=4;else if(n99)place=3;else if(n9)place=2;else place=l;printf(nplace=%dnplace);printf(每位数字为:);a=num/10000;b=(n-a*10000)/1000;c=(n-a*10000-b*1000)/100;d=(n-a*10000-b*1000-c*1
15、00)/10;e=n-a*10000-b*1000-c*100-d*10;switch(place)(case 5:printf(u%d,%d,%d,%d,%d,a,b,c,d,e);printf(nn 反序数字为:);printf(H%d%d%d%d%dn,e,d,c,b,a);break;case 4:printf(,%d,%d,%d,%d,b,c,d,e);printf(n反序数字为:);printf(,%d%d%d%dnM,e,d,c,b);break;case 3:printf(,%d,%d,%dn,c,d,e);printf(n反序数字为printf(M%d%d%dn,d,e,c)
16、;break;case 2:printf(u%d,%dnn,d,e);printf(n反序数字为:);printf(n%d%dn,e,d);break;case l:printf(u%dnH,e);printf(n反序数字为:);printf(,%dn,e);15、编写一个函数fu n,它的功能是:求出一个6 X 8 的整型二维数组中最大元素的值,并将此值返回调用函数。数组在主函数中初始化,并最终输出结果。#includevoid main()(int max(int a68);inta68=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,
17、21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40;printf(nmax is%dn,max(a);)int max(int a68)(int i,j,max;max=aOO;for(i=0;i6;i+)for(j=0;jmax)max=aij;return max;)16、将字符数组s 中的字符串,除了下标为偶数、同时ascii值也为偶数的字符外,其余的全都删除;申中剩余字符所形成的一个新串放在新的字符数组t 中。#includevoid main()(chara40,b40=,J;int j=O,i,n,temp;get
18、s(a);n=strlen(a);for(i=0;in;i+)(if(i%2=0llai%2=0)(bj+=ai;continue;)puts(b);)17、假定输入的字符串中只包含字母和*号。则使字符串中的*号不得多于3 个;若多于3个,则删除多于的*号;若少于或等于3 个,则什么也不做。#includevoid main()(int i,j=0,sum,n,t;char a801,b80,c80;gets(a);n=strlen(a);for(sum=0,i=0;in;i+)sum+;if(sum4)printf(H%s,a);else(for(sum=0,i=0;in;i+)if(ai=
19、,*)sum+;if(sum=3)t=i;for(i=0;i=t;i+)bj+=ai;for(i=t+l;in;i+)if(ai!=*1)bj+=ai;bj=O;printf(H%s,b);I18、编程计算l!+2!+3!+n!的值,其 中,n 值山键盘输入。#includevoid main()int i,n,s=O,t=l;printf(请输入n 的值:);scanf(d”,&n);for(i=l;i=n;i+)t=t*i;s=s+t;)printf(nl!4-2!+.+%d!=%dnH,n,s);)19、编写程序,删除字符串中的所有空格。#includechar*fun(char*a)(
20、int j=0,i;for(i=0;istrlen(a);i+)if(ai!=*)aj+=ai;a|jJ=0;return a;void main()(char a81,*c;printf(请输入字符串a:);gets(a);c=fun(a);puts(c);)20、求出字符数组ss中存储的字符串中指定字符的个数。#includevoid main()(int i,n,sum=0;char ss80,c;gets(ss);printf(”请输入需要统计的字符:);scanf(c”,&c);n=strlen(ss);for(i=0;in;i+)if(ssi=c)sum+;printf(输出数据
21、sum=%dn,sum);)21、输入一行字符,分别统计出其中的大小写字母、空格、数字和其他字符的个数。#include void main()(char c;int letters=0,space=0,digit=0,other=0;printf(请输入一行字符:n”);while(c=getchar()!=)(if(c=,a&cA&c=,0&c=,9,)digit+;elseother+;printf(M大 小 写 字 母 数:%d n 空 格 数:%dn 数 字 数:%d n 其 他 字 符数:%dn,letters,space,digit,other);)22、将5行6列的二维数组中的
22、数据,按列的顺序依次放到一个一维数组中。#includevoid main()(int a56,b30,n=0,i,j;for(i=0;i5;i+)for(j=0;j6;j+)aij=i+j;for(j=0;j6;j+)for(i=0;i5;i+)bn+=aij;for(n=0;n30;n+)printf(%5d,bn);printf(n);)23、求两个2 X 3和3 X 2的矩阵之积,并把结果显示出来。#includevoid main()int a23;intb32;intc22=0,i,j,t;printf(请输入一个2行3列的数组a:);for(i=0;i=l;i+)for(j=0;
23、jv=2;j+)scanf(%d,&ai|j);printf(%6d,alijj);)printf(n);printf(请输入一个3行2列的数组b:);for(i=0;iv=2;i+)for(j=0;j=l;j+)scanf(%d,&bij);printf(%6d,bij);)printf(n);)printf(数组a与数组b乘积的结果为:n);for(i=0;i2;i+)for(j=0;j2;j+)for(t=0;t3;t+)ciJUl+=aiJltJ*bt|jJ;pr i nt f(%6 d ,c i|j );)p r i n t f(n );)2 4、定义了 一 个6X6的二维数组,并进
24、行初始化。将数组右匕半三角元素中的值乘以1 0。#i n c l u d ev oi d m a i n()(i n t i,j,a 6 6 ;for(i=0;i 6;i+)for(j=0;j 6;j+)a i j =i+j+l;for(i=0;i 6;i+)for(j=0;j 6;j 4-+)i f(i j)a i U =a i j *1 0;for(i=0;i 6;i+)for(j=0 J6;j+)p r i n t f(5 d”,a i 皿);p r i n t f(M nH);2 5、编写程序,实现矩阵(5行6列)的转置(即行列互换)。#i n c l u d ev oi d m a
25、i n()i n t a 5 6 ,b 6 5 ,i,j;p r i n t f(原数组为for(i=0;i 5;i+)for(j=0;j 6;j+)s c a n f(u%dH,&a i j );for(i=0;i 5;i+)for(j=0;j 6;j+)p r i n t f(u%5 d ,a i fj );bU J i =a i U J;p r i n t f(M nM);)p r i n t f(转置后的数组为:n)for(i=0;i 6;i+)for(j=0;j 5;j+)p r i n t f(%5 d ,b i j );p r i n t f(n );26、将两个两位数的正整数a
26、,b合并成个整数放在c 中。合并的方式是:将 a 数的十位和个位依次放在c 数的千位和十位上,b 数的十位和个位数依次放在c 数的百位和个位上。#includevoid main()(int a,b,al,a2,bl,b2,c;printf(请分别输入a 和 bn);scanf(%d,%dn,&a,&b);al=a/10;a2=a%10;bl=b/10;b2=b%10;c=al*l000+b1 *100+a2*10+b2;printf(交换后的结果是c=%dn,c);27、编写一个函数fu n,它的功能是:实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到p l 所指
27、的字符串后。主函数中仅仅输入和输出。#includevoid main()(char fun(char a40,char b40);char a40,b40;gets(a);gets(b);fun(a,b);printf(M%sna);)char fun(char a|40,char b40)(int n,m,j=0,i=0;while(ai!=,0,)i+;while(bfj!=W)ai+J=bj4-+J;ai=A0;)28、请编写函数fun,该函数的功能是:实现b=a+aT,即把矩阵a 加 上 a 的转置,存放在矩阵 b 中。计算结果在main函数中输出(a 为一个3 行 3 列的整型数组
28、)。#includeint fun(int a33,int b33)int i,j;for(i=0;i3;i+)for(j=0;j3;j+)bi|j=aiU+aji;)void main()(int a33,ij,b33;for(i=0;i3;i+)for(j=0;j3;j+)fun(a,b);for(i=0;i3;i+)(forG=0;j3;j+)printf(5d”,bijD;printf(n);29、依次输出200以内(包含2 0 0)能被5 整除但不能被15整除的自然数。#includevoid main()(int i;for(i=1;i201 ;i+)if(i%5=0&i%15!=
29、0)printf(M%5d,i);)30、编写函数fu n,该函数的功能是:删去一维数组中所有相同的数,使之只剩个。数组中的数已按山小到大的顺序排列,函数返回删除后数组中数据的个数。#includevoid main()(int fun(int a10);int a10,i;for(i=0;i10;i+)scanf(M%dM,&aiJ);printf(n%dM,fun(a);)int fun(int a10)int i,n=l,j=l,b10;for(i=0;i9;i+)if(ai!=ai+l)bn+=ai;if(a8!=a9)bn=a9;for(i=l;i=n;i+)printf(M%5dM
30、,bi);return n;)31,统计各年龄段的人数。30个年龄通过scanf函数获得,并放在age数组中。要求把0 至 9岁年龄段的人数放在d0中,把 10至 19岁年龄段的人数放在仇1中,把 20至 29岁的人数放在仇2中,其余以此类推,把 100岁(含100以上年龄的人数都放在出10中。#includevoid main()(int a30,bH=0;int i;for(i=0;i30;i+)printf(”请输入第d 个人得年龄:”,i);scanf(H%du,&ai);for(i=0;i30;i+)switch(int)(ai/10)(case 9:b9+;break;case 8
31、:b8+;break;case 7:b7+;break;case 6:b6+;break;case 5:b5+;break;case 4:b4+;break;case 3:b3+;break;case 2:b2+;break;case l:bl+;break;case 0:b0+;break;default:b10+;)for(i=0;i 11;i+)printf(u%5dn,bLi);)32、编写函数fu n,该函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词山小写字母组成,单词之间由若干个空格格开,一行的开始没有空格。#includevoid
32、 main()char a80J;int i,n=0,word=0;char c;gets(a);for(i=0;(c=ai)!=W;i+)if(c=*)word=0;else if(word=0)(word=1;n+;)printf(%d,n);)33、计算并输出给定整数n 的所有因子(不包括1 与自身)之和。规定n 的值不大于1000(n由键盘输入)。#includevoid main()(int i,sum=0,n,j=0;scanf(”d”,&n);if(n=l)printf(”sum=0);else if(n=0)printf(”请重新输入)elsefor(i=2;in;i+)if(
33、n%i=0)sum=sum+i;printf(“输Hi sum=%dn,sum);)34、计算并输出下列级数和:s=l/l*2+l/2*3+-+l/n(n+l)#includevoid main()(int i,n;float sum=0;printf(”请输入 n 值:”);scanf(”d”,&n);for(i=l;in+l;i+)sum=sum+1.0/(i*(i+1);printf(结果 s=%5.2fsum);)35、将字符数组s 中字符串中下标为偶数的字符删除,并用字符串的形式输出结果。#includevoid main()int i,j=O,n;char a40,b40;gets
34、(a);n=strlen(a);for(i=0;in;i+)if(i%2=0)bj+=ai;bj=O;puts(b);36、编程序:通过一个函数判断字符串是否为回文?若是则函数返回1,主函数中输出yes,否则返回0,主函数中输出no。回文是指顺读和倒读都是一样的字符串。#includevoid main()(int fun(char a);char a100;int b;gets(a);b=fun(a);if(b=l)printf(nYES!nu);else printf(uNO!n);)int fun(char a)(int x,y,i,j;x=strlen(a);j=x-l;for(i=0
35、,j=x-l;i=x-l;i+,j-)if(ai!=aj)return 0;return 1;J 加37、编程实现由主函数输入m,n 并输出最终结果,按下述公式计算的值:!(用一)!,其中函数f 的功能是计算阶乘,函数g 的功能是求c:的值。#includevoid main()int f(w);int c,m,n;printf(请输入scanf(d%d”,&m,&n);c=f(n)/(f(m)*f(m-n);printf(nc=%dn,c);)int f(w)(int a=l,i;for(i=l;i=w;i+)a*=i;return a;38、编写一个函数fu n,它的功能是:将字符串a 中
36、所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。主函数只能用来输入输出字符串。#includevoid main()(char c50;char fun(char c50);gets(c);fun(c);puts(c);)char fun(char c50)(int i,n;n=strlen(c);for(i=0;in;i=i+2)(if(ci=a)ci=ci-32;)39、计算并输出给定数组(长度为5)中每相邻两个元素之平均值的平方根之和。#include#includevoid main()(int i;float sum=0,a5=4,4,4,4,4;for(i=0
37、;i4;i+)sum=sum4-sqrt(aij+ai+1)/2);printfCSfsum);)40、用指针方法编写程序,输入3 个整数,将它们按由小到大的顺序排列输出。#includevoid main()(void swap(int*pl,int*p2);int a,b,c;int*pl,*p2,*p3;printf(请输入三个数字:n);scanf(n%d%d%dn,&a,&b,&c);p 1 =&a;p2=&b;p3=&c;if(*p 1 *p2)swap(p 1 ,p2);if(*p l*p3)swap(p 1 ,p3);if(*p2*p3)swap(p2,p3);printf(”
38、请将数字从小到大输出:n);printf(H%dn%dn%dn,a,b,c);)void swap(int*pl,int*p2)(int temp;temp=*pl;*pl=*p2;*p2=temp;)41、计算并输出100(包 括 100)以内能被3 或 4 整除的所有自然数之和。#includevoid main()(int i,n=0,sum=0;for(i=1 ;i=100;i+)if(i%3=0lli%4=0)sum=sum+i;printf(sum=%d,sum);)42、有一函数x(x 1)y=2x-1 (1 x 10)用 scanf函数输入x 的值,求 y 值。#include
39、void main()int x,y;printf(输入 x:);scanf(%dn,&x);if(xl)y=x;printf(ux=%3d,y=x=%dnn,x,y);)else if(x10)y=2*x-l;printf(x=%3d,y=2*x-l=%dn”,x,y);)elsey=3*x-ll;printf(x=%3d,y=3*x 11=%dn”,x,y);)43、输入两个正整数m 和 n,求它们的最大公约数和最小公倍数。#includevoid main()int p,r,n,m,temp;printf(请输入两个正数:);scanf(M%d,%d,&n,&m);if(nm)temp=
40、n;n=m;m=temp;p=n*m;while(m!=0)r=n%m;n=m;m=r;primf(它们的最大公约数为:dn”,n);printf(它们的最小公倍数为:%diT,p/n);)44、求 s=a+aa+aaa+aa a 之值,其中a 是一个数字,n 表示a 的位数。#includevoid main()int a,n,i=l,sn=0,tn=0;printf(na,n=:n);scanf(%d,%dH,&a,&n);while(i=n)tn=tn+a;sn=sn+tn;a=a*1 0;+i;)printf(na+aa4-aaa4-.=%dnu,sn);4 5、输出杨辉三角(要求输出
41、1 0行)。#include#define N 1 1void main()int i,j,aN N;for(i=l;i N;i+)ail=l;aii=l;for(i=3;i N;i+)for(j=2;j=i-l;j+)aiU=ai-lU-l+ai-lJ U;for(i=l;i N;i+)for(j=l;jv=i;j+)printf(%6 d,aij);printf(n);)printf(n);4 6、输出所有的“水仙花数”,所 谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如:1 5 3是一水仙花数,因为1 5 3=1 3+5 3+33。#includevoid main()
42、(ini i,j,k,n;printfL水仙花,数是:n);for(n=1 0 0;n 1 0 0 0;n+)(i=n/1 0 0;j=n/1 0-i*1 0;k=n%1 0;if(i*100+j*10+k=i*i*i+j*j*j+k*k*k)printf(%dn,n);)printf(nnn);47、求一个3 X 3 的整型矩阵主对角线元素之和。#includevoid main()(float a33,sum=0;int ij;printf(请输入矩阵元素:n“);for(i=0;i3;i+)for(j=0;j3;j+)scanf(M%r,&aij);for(i=0;i3;i+)sum=s
43、um4-aii;printf(对角元素之和=%6.2俨配01);)48、有一行电文,按下面规律译成密码。第 i 个字幕变成第(26-i+l)个 字 母(i=l,226)。非字母字符不变。要求原文输出一行,密码输出一行。#includevoid main()int i,n;char a80,b80;printf(请输入字符:);gets(a);printf(密码是%s”,a);i=0;while(ai!=W)if(ai=,A)&(ai=,a,)&(ai=z)bi=219-ai;elsebri=ai;i+;)n=i;printf(nn 原文是:);for(i=0;in;i+)putchar(bi)
44、;49、输 入 个4 位数字,要求输出这4 个数字字符,但每两个数字之间空个空格。比如输入 1990,应 输 出“1 9 9 0”。#includevoid main()(char a40;int n;gets(a);n=strlen(a);while(n0)(a2*n=an;a2*n-l=*;n-;)puts(a);)50、对于给定的一个正整数,判断其是否为素数。#includevoid main()(int n,flag;int fun(n);printf(请输入一个正整数:n)scanf(M%d,&n);flag=fun(n);if(flag=l)printf(M%d 是素数”,n);e
45、lseprintf(M%d 不是素数”,n);)int fun(int n)(int i;for(i=2;in;i+)if(n%i=0)return 0;return 1;)51、将一个数字字符串转化为整数输出(不得调用c 语言提供的将字符串转换为整数的函数)。#includevoid main()(char a40;int b40,i,j=0,n;printf(请输入数字字符串:”);gets(a);n=strlen(a);for(i=0;in;i+)bj+=ai-48;printf(输出数字52、求出一个4 义5 的矩阵中数值最小的元素的行号和列号。#includevoid main()(
46、int i,j,row,colum,min;int a45=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,0;min=a00;for(i=0;i=3;i+)for(j=0;j=4;j+)if(ai 皿 vmin)(min=aijj;row=i;colum=j;)printf(min=%d,row=%d,colum=%dn,min,row,colum);)53、编写函数fu n,它的功能是:实现两个字符串的比较,即实现strcmp的功能(不得调用c 语言提供的求字符串比较的函数),函数返回最终的比较值。主函数里输出哪个字符串大。#includev
47、oid main()(char a50,b501;int fun(char*pl,char*p2);int c;printf(请输入两个字符串:n);printf(字符串 a=);gets(a);printf(字符串 b=);gets(b);c=fun(a,b);printf(两个字符串比较结果为:);if(c=O)printf(两字符串相等n);else if(c0)printf(字符串 1 大 n);elseprintf(字符串 2 大5”);)int fun(char*pl,char*p2)int m,n,flag,i;m=strlen(pl);n=strlen(p2);if(m!=n)
48、(for(i=0;imllin;i+,p 1 +,p2+)(flag=*pl-*p2;if(flag!=O)break;)return flag;)else(for(;p 1 p 1 +m;p 1 +,p2+)(flag=*pl-*p2;if(flag!=O)break;return 0;)return(flag);)54编写一个函数void fun(int tt56,int pp6),tt指向一个5 行 6 列的二维函数组,求出二维函数组每行中最小元素,并依次放入pp所指定一维数组中。二维数组中的数已在主函数中初始化。#includevoid fun(int tt56,int pp5)int
49、 i,j,min=100;for(i=0;i5;i+)for(j=0;j6;j+)(if(ttijmin)ppi=min;min=100;)return pp;)main()(int tt56,pp6;int p,j,i;for(j=0;j6;j+)for(i=0;i5;i+)ttij=i+j+l;fun(tt,pp);for(i=0;i5;i+)printf(%5d,ppi);55、移动字符串中内容,移动的规则如下:把 第1到 第m个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。m由键盘输入。#includevoid main()(charaL100J,bl80J,c80
50、J;int i,j=0,m,n;printf(请输入字符串n);gets(a);printf(请输入 m=);scanf(%d,&m);n=strlen(a);for(i=0;im;i+)bj+=ai;bUl=O;for(i=m,j=0;in;i+)cj+=ai;cj=O;printf(%s,strcat(c,b);56、有一个班,3 个学生,各学4 门功课,计算总平均分数以及第n 个学生的成绩。#includevoid main()(float score34=65,67,70,60,80,87,90,81 J 90,99,100,98);float sum=0,aver;int i,j,n