首页 C经典程序-C语言精通120题

C经典程序-C语言精通120题

举报
开通vip

C经典程序-C语言精通120题C经典程序-C语言精通120题 1.输入一小写字母,分别以字符形式与数值形式输出与该小写字母相应的大写字母 #include void main() {char c; scanf("%c",&c); c=c-32; printf("%c,%d",c,c); } 2.输入一个华氏温度,要求输出摄氏温度。公式为c=5/9*(f-32) #inclucde void main() {float c,f; scanf("%f",&f); c=5.0/9*(f-32); printf("%f",...

C经典程序-C语言精通120题
C经典程序-C语言精通120题 1.输入一小写字母,分别以字符形式与数值形式输出与该小写字母相应的大写字母 #include void main() {char c; scanf("%c",&c); c=c-32; printf("%c,%d",c,c); } 2.输入一个华氏温度, 要求 对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗 输出摄氏温度。 公式 小学单位换算公式大全免费下载公式下载行测公式大全下载excel公式下载逻辑回归公式下载 为c=5/9*(f-32) #inclucde void main() {float c,f; scanf("%f",&f); c=5.0/9*(f-32); printf("%f",c); } 3.写一个程序,输入实数X,输出Y,计算Y=3X3+0.4X2-2 X / 3 #include void main() {float x,y; scanf("%f",&x); y=3*x*x*x+0.4*x*x-2*x/3; printf("%f",y); } 4.编写程序:读入三个整数a,b,c,然后交换它们中的数,使a存放b的值,b存放c的值,c存放a的值。 #include void main() {int a,b,c,t; t=a;a=b;b=c;c=t; printf("%d%d%d",a,b,c); } 5.编写程序:输入9时23分并把它化为分钟后输出。(从零点整开始计算)。 #include void main() {int a,b,c; scanf("%d,%d",&a&b); printf("%dh%dmin\n",a,b): c=a*60+b; printf("%dmin\n",c); } 6.要将“Chiina”翻译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。例如,字母“ A”后面的4个字母是“E”,用“E”代替“A”。因此,“Chian”应译成“Glmre”。用赋初值的方法 是c1,c2,c3,c4,c5五个变量的值分别为‘C’、‘h’、‘i’、‘n’、‘a’,经 过运算,使c1、c2、 c3、c4、c5分别为‘G’、‘l’、‘m’、‘r’、‘e’,并输出 #include void main() {char c1='c',c2='h',c3='i',c4='n',c5='a'; c1=c1+4;c2=c2+4;c3=c3+4;c4=c4+4;c5=c5+4; printf("%c%c%c%c%c,c1,c2,c3,c4,c5); } 7.编写程序,用getchar函数读入两个字符c1,c2,然后分别用putchar函数和prinf函数输出这两个字符以 及它们的ASCII值。 #include void main() {char c1,c2; c1=getchar(); c2=getchar(); putchar(c1); putchar(c2); printf(%d,%d",c1,c2); } 8.设圆半径r=1.5,圆柱高h=3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积 #include #define PI=3.14159 void main() {float r=1.5,h=3,c,s1,s2,v1.v2; c=2*PI*r; s1=4*PI*r*r; s2=PI*r*r; v1=4.0/3*PI*r*r*r; v2=s2*h; printf("%7.2f,%7.2f,%7.2f,%7.2f,%7.2f",c,s1,s2,v1,v2); } 9.编写程序,输入两个整数 ,计算并输出它们的和、差、积、除(精确除)、整除及模的结果。 #include #include void main() {int a,b,sum,c,e,f,g; float d; sum=a+b; c=a-b; e=a*b; f=a/b; g=sqrt(a*a+b*b); printf("%d,%d,%f,%d,%d,%d",sum,c,d,e,f,g); } 10.编一程序,对于一个给定的一个百分制成绩,输出相应的五分制成绩。设:90分以上为 ˊAˊ,80,89 分为ˊBˊ,70,79分为ˊCˊ,60,69分为ˊDˊ,60分以下为ˊE ˊ。 #include void main() {float a; scanf("%f",&a; if(a>=90) printf("A\n"); else if(a>=80&&a<=89)printf("B\n"); else if(a>=70&&a<=79)printf("C\n"); else if(a>=60&&a<=69)printf("D\n"); else printf("E\n"); } 11.输入3个整数,要求按由小到大的顺序输出 #include void main() {int a,b,ct; scanf("%d,%d,%d",&a,&b,&c); if(a>b) {t=a;a=b;b=t;} if(a>c) {t=a;a=c;c=t;} if(b>c) {t=b;b=c;c=t;} printf("%d,%d,%d\n",a,b,c); } 12.输入4个数,输出其中的最大数和最小数。 #include void main() {int a,b,c,d,max,min; scanf("%d,%d,%d,%d",&a,&b,&c,&d); max=a; if(b>a) max=b; if(c>max) max=c; if(d>max) max=d; min=a; if(b=10).写一程序,输入x,输出y. #include void main() {int x,y,m,n m=2*x-1; n=3*x-11; scanf("%d",&x); if(x<1) printf("y=%d\n",x); if(x>1&&x<=10) prinft("%y=%d",m); if(x>=10) prinft("y=%d",n); } 14.给定一个不多于5的正整数,要求:(1)求它是几位数;(2)分别打印出每一位数字(3) 按逆序打 印出各位数字. #include void main() {long int num; int indiv,ten,hundred,thousand,ten_thousand,place; sacnf("%ld",&num); if(num>9999) place=5; else if(num>999) place=4; else if(num>99) place=3; else if(num>9) place=2; else place=1; printf("place=%d\n",place); ten_thousand=num/10000; thousand=(int)(num-ten_thousand*10000)/1000; hundred=(int)(num-ten_thousand*10000-thousand*1000)/100; ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10; indiv=(int)(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10); switch(place) {case5:printf("%d,%d,%d,%d,%d",ten_thousand,thousand,hundred,ten,indiv); printf("%d%d%d%d%d\n",indiv,ten,hundred,thousand,ten_thousand); break; case4:printf("%d,%d,%d,%d",thousand,hundred,ten,indiv); printf("%d%d%d%d\n",indiv,ten,hundred,thousand); break; case3:printf("%d,%d,%d",hundred,ten,indiv); printf("%d%d%d\n",indiv,ten,hundred); break; case2:printf("%d,%d",ten,indiv); printf("%d%d\n",indiv,ten); break; case1:print("%d",indiv); printf("%d\n",indiv); break; } } 15.编写程序,要求输入整数a和b.若a2+b2大于100,则输出a2+b2百位以上的数字,否则 输出两数之和。 #include void main() {int a,b,c; scanf("%d%d",&a,&b; c=a*a+b*b; if(c>100); printf("%d\n",c/100); else printf("%d\n",a+b); } 16.根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类 型 #include #include void main() {float a,b,c,t,s,area,m; scanf("%f,%f,%f",&a,&b,&c); if(a+b>c&&b+c>a&&a+c>b); s=(1.0/2)(a*b*c) area=sqrt(s*(s-a)*(s-b)*(s-c)); printf("area=%6.2f",area); if(a0) printf("ruijiao"); else if(m<0) printf("dunjiao"); } 17.判断输入的正整数是否既是5又是7的整倍数。若是,则输出yes,否则输出no #infclude #include void main() {int m; sacnf("%d",&m); if(m%5==0&&m%7==0) printf("yes\n",m); else printf("no\n"); } 18.输入4个整数,求4个数中的偶数之和. #include #include void main() {int s[4],m,i; for(i=0;i<4;i++) scanf("%d,&s[i]); m=0; {if(s[i]%2)==0) m+=s[i]} printf("m=%d",m); } 19.输入4个整数,求4个数中的奇数之和 #include #include void main() {int s[4],n,i; for(i=0;i<4;i++) scanf("%d,&s[i]); n=0; {if(s[i]%2)!=0) n+=s[i]} printf("n=%d",n); } 20.假设奖金税率如下(a代表奖金,r代表税率)a<500 r=0%;500<=a<1000 r=5%;1000<=a<2000 r=8%; 2000<=a<3000 r=10%;3000<=a r=15%编写程序用if语句实现:对输入的一个资金数,求 税率和应交 税款以及实际奖金数(扣除奖金税后)。 #include void mian() {float a,r,t,b; intc; scanf("%f",&a); if(a>=3000) c=6; else c=int(a/500); switch(C) {case0:r=0;break; case1:r=0.05;break; case2: case3:r=0.08;break; case4: case5:r=0.1;break; case6:r=0.15;break;} t=a*r; b=a-t; printf("r=%f,t=%f,b%f",r,t,b); } 21.输入一个字符,如果是大写字母,转换为小写,如果不是不转换。最后输出。 #include void main() {char c; scanf("%c",&c); c=(c>='A'&&c<='Z')?c+32:c; printf("%c",c); } 22.键盘上输入三角形三边a,b,c 的值,计算三角形面积,并输出三角形的三边a,b,c及面积area的值。三 角形面积的公式:s=(a+b+c)/2 area=sqrt[s(s-a)(s-b)(s-c)]. #include void main() {float a,b,c,s,area; sacnf("%f,%f,%f",&a,&b,&c); s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c)); printf("a=%7.2f, b=%7.2f, c=%7.2f, s=%7.2f\n",a,b,c,s); printf("area=%7.2f\n",area); } 23.编写一个程序,根据用户输入的一个字母判定它是星期几。要求用switch语句实现程序控制,当第一 个字母相同时,如:T(t)uesday 和T(t)hursday故需要进一步输入U或u或H或h确认。 #include void main() {char a,b,c; scanf("%c",&a); switch(a) case'M':printf("Monday");break: case'T':scanf("%c",&b); if(b=='U') printf("Tuesday"); else printf("thursday");break; case'W':printf("wednesday");break: case'F':printf("Friday");break: case's':scanf("%c",&c); if(c=='A') printf("Saterday"); else printf("Sunday");break; } 24.编写一个程序:输入某年某月,判断这一月有多少天, #include void main() {int year,month,t=0,leap=0; scanf("%d,%d",&year,&month); if((year%4==0&&year%100!=0||year%400==0) leap=1; t=28+leap; switch(month) case2:printf("%d\n",t);break; case1:printf("31\n");break; case3:printf("31\n");break; case5:printf("31\n");break; case7:printf("31\n");break; case8:printf("31\n");break; case10:printf("31\n");break; case12:printf("31\n");break; case4:printf("30\n");break; case6:printf("30\n");break; case9:printf("30\n");break; case11:printf("30\n");break; } 25.从键盘上输入字母或0~9的数字,编写程序对其进行分类。字母可分为大写字母和小写 字母,数字可分 为奇数和偶数。 #include voia main() {char a[120],i; scanf("%s,a); for(i=0;i<=19;i++) if('0'<=a[i]&&a[i]<='9') if(a[i]/2==0 printf("%d\n",a[i]); else printf("%d\n",a[i]); for(i=0;i<=19;i++) if('a'<=a[i]&&a[i]<='z') printf("%c",a[i]); printf("\n"); for(i=0;i<=19;i++) if('A'<=a[i]&&a[i]<='Z') printf("%c",a[i]); } 26.编写程序:加密数据,方法:对给定数值,每一位数字均加2,且在[0,9]范围内,若加 密后某位数字 大于9,则取其被10除的余数. #include void main() {int i,a[20],m,k; scanf("%d",&m); for(i=0;m>o;i++) {a[i]=m%10; m=m%10; k=i;} k=k+1; for(i=0;i9) a[i]=a[i]%10; for(i=k-1;i>0;i--) printf("%d\n",a[i]); } 27.编写程序:计算从1995年1月1日至2000年12月10日共有多少天。闰年的2月有29天.闰年满足如下条件 :能被400整除或能被4 整除但不能被100整除。 #include void main() {int year,i=0,s; for(year=1995;year<=2000;year++) if((year%4==0&&year%100!=0)||year%400==0) i++; s=365*6+i-21; printf("%d",s); } 28.编程求解一元二次方程 ax2+bx+c=0的根。 #include #include void main() {float a,b,c,disc,x1,x2,realpart,imagpart; scanf("%f,%f,%f",a&,b&,&c); if(fabs(a)<=1e-6) printf("is not a quadratic\n"); else {disc=b*b-4*a*c;if(fabs(disc)<=1e-6 printf("has two equal roots:%8.4f\n",-b/2*a); else if(disc>1e-6) {x1=(-b+sqrt(disc))/(2*a);x2=(-b-sqrt(disc))/(2*a); printf("has distinct rael roots:%8.4fand%8.4f\n",x1,x2); } else {realpart=-b/(2*a);imagpart=sqrt(-disc)/(2*a); printf("has complex roots:\n"); printf("%8.4f+%8.4fi\n",raelpart,imagpart); printf("%8.4f-%8.4fi\n",realpart,imagpart); } } } 29.有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数,都是多少, #include void main() {int i,j,k,n; for(i=1;1<5;i++) for(j=0;j<5;j+=) for(k=0;k<5;k++) if(i!=j&&i!=k&&k!=j) {printf("%d",100*i+10*j+k);n++} printf("%d",n); } 30.求 (1,2!,„,20!). #include void main() {int i,s=0,t=1; for(i=1;i<=20;i++) {t=t*i; s=s+t;} printf("%ld",s); } 31.已知abc+cba=1333,其中a、b、c均为一位数,编写一个程序求出a、b、c分别代表什 么数字。 #include void main() {int a,b,c; for(a=1;a<10:a++) for(b=0;b<10;b++) for(c=1;c<10;c++) if(a*100+b*10+c+c*100+b*10+a==1333) printf("%d,%d,%d,a,b,c); } 32.鸡兔共有30只,脚共有90只,编写一程序计算鸡兔各有多少只。 #include void main() {int i,j; for(i=1;i<30;i++) {j=30-i; if(2*i+4*j==90) printf("%d,%d",i,j); } 33.输入两个正整数m和n,求其最大公约数和最小公倍数. #include void main() {int p,r,n,m,temp; scanf("%d,%d",&n,&m); if(n void main() int i=1,j,sum; for(;i<1000;i++) {for(sum=0,j=1;j void main() {int a[10],i; a[9]=1; for(i=8;i>=0;i--) a[i]=(a[i+1]+1)*2; printf("%d",a[10]); } 37.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和. #include void main() {int a=2,b=1,i,t; float s=0 for(i=0;i<20;i++) {s+=a/b;t=a;a=a+b;b=t;} printf("%f",s); } 38.编写一个程序显示ASCII码65~90(十进制)的字符对照表。并输出6个数换一行。 #include void main() {int i,flag=1;char j; for(i=65;i<=90;i++,flag++) {printf("%4d,%c",i,j); if(flag%6==0) printf("%\n");} } 39.已知xyz+yzz=532,其中x、y、z都是数字,编写一个程序求出x、y、z分别代表什么数 字。 #include void main() {int x,y,z; for(x=1;x<=5;x++) for(y=1;y<=9;y++) for(z=1;z<=6;z++) if(100*x+10*y+z+100*y+11*z==532) printf("x=%d,y=%d,z=%d",x,y,z); } 40.已知四位数a2b3能被23整除,编写一程序求此四位数。 #include void main() {int a,b,s; for(a=1;a<=9;a++) for(b=0;b<=9;b++) {s=1000*a+10*b+203); if(s%23==0) printf("%d2%d3",a,b);} } 41.输入n,计算s=1+1+2+1+2+3+1+2+3+4+...+1+2+3+4+...+n #include void main() {int i,s=0,t=0,n; scanf("%d",&n): for(i=1;i<=n;i++) {t=t+i;s=s+t;} printf("%ld",s); } 42.从两个红球,三个白球,四个黑球中任意取出五个球,且其中必有白球,编写程序输出 所有可能 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 #include void main() {int i,j,k; printf("\n hong bai hei\n"); for(i=0;i<=2;i++); for(j=1;j<=3;j++); {k=5-i-j; if(k>=0&&k<=4) printf("%3d%3d%3d\n",i,j,k);} } 43.花数”是指一个三位数,其各位数字立方和等于该数。 #include void main() {int x,y,z,a[8],m,i=0; for(m=100;m<1000;m++) {x=m/100,y=(m%100)/10;z=m%10; if(x*100+y*10+z=x*x*x+y*y*y+z*z*z) {a[i]=m;i++;} } for(x=0;x void main() {int i,t,s; t=1;s=0; for(i=1;i<=101;i++) {t=t*i;s=s+t;t=-t/i;} printf("%d\n",s); } 45.编写一程序:输入一个正偶数n,将其分解成两个素数之和。 #include #include void main() {int a,b,c,d; scanf("%d",&a); for(b=3;b<=a/2;b+=2) {for(c=2;c<=sqrt(b);c++) if(b%c==0) break; if(c>sqrt(b) d=0-b); else continue; for(c=2;c<=sqrt(d);c++) if(d%c==0) break; if(c>sqrt(d)); printf("%d=%d+%d\n",a,b,d);} } 46.编写程序,从键盘输入6名学生的5门成绩,分别统计出每个学生的平均成绩。 #include void main() {float a[6][5],aver[6],sum; int i,j; for(i=0;i<6;i++) for(j=0;j<5;j++) scanf("%f",&a[i][j]); for(i=0;i<6;i++) {for(j=0;j<5;j++) sum=sum+a[i][j]; aver[i]=sum/5; sum=0; printf("%f",aver[i]); } } 47.编程在屏幕上输出具有7行的正三角形。 #include void main() {int i,j,k; for(i=0;i<7;i++) {for(j=0;j<6-i;j++) printf(" "); for(k=0;k<=2*i;k++) printf("*"); printf("\n"); } } 48.若用0至9之间不同的三个数构成一个三位数,编写一个程序统计出共有多少种方法。 #include void main() {int m,n,t,flag=0; for(m=1;m<10,m++) for(n=0;n<10;n++) for(t=0;t<10;t++) {if(m!=n&&m!=t&&t!=n) flag++;} printf("%d",flag); } 49.编程输出100—200之间第一个能被3整除的之前的所有整数。 #include void main() {int n; for(n=100;n<=200;n++) {if(n%3==0) break; prinft("%d\n",n);} } 50.把100—200之间的不能被3整除的整数输出。 #include void main() {int n; for(n=100;n<=200;n++) {if(n%3==c) continue; printf("%d",n); } 51.求输入的10个整数中正数的个数以及其平均值。 #include void main() {int m[10],i,a=0,s=0,n=0; for(i=0;i<10;i++) {scanf("%d",&m[i]);if(m[i]>0 {n++;s=s+m[i];} } printf("%d",n); a=s/n; printf("%d",a); } 52.求出1000以内的所有素数,要求一行输出30个。 #include #include void main() {int m,k,i,n=c; for(m=1;m<1000;m+2) {k=sqrt(m); for(i=2;u<=k;i++) if(m%i==0) break; if(i>k); {printf("% d",m); n=n+1;} if(n%30==0) printf("\n");} printf("\n"); } 53.有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖 完,。 #include void main() {int day,x1,x2; day=0;x1=1020; while(x1>0) {x2=x1/2-2;x1=x2;day++);} printf("day=%d\n",day); } 54.4位反序数:设N是一个四位数,它的9倍恰好是其反序数,求N. #include void main() {int a,b,c,d,A,B,C,D; for(m=1000;m<10000:m++) {a=(m%10000)/1000;b=(m%1000)/100;c=(m%100)/10;d=m%10; A=((9*m)%10000)/1000;B=((9*m)%1000)/100;C=((9*m)%100)/10;D=(9*m)%10; if(A==d&&B==c&&C==b&&D==a&&(9*m)<10000) printf("% d",m); printf("\n"; } 55.有限5位数:个位数为6且能被3整除的五位数共有多少, #include void main() {long m,t,n=0; for(m=10000.m<100000;m++) {t=m%10; if(t==6&&m%3==0)n++;} printf("%ld",n); } 56.编写一程序计算1到正整数n之间的奇数之和以及偶数之和。 #include void main() {long m,n,t=0; scanf("%ld",&n); for(m=1;m void main() {int a,b,c,m,t=0; for(m=100,m<1000;m++) {a=(m%1000)/100;b=(m%100)/10;c=m%10; if(a+b+c==5) t++;} printf("%d",t); } 58.学校有近千名学生,在操场上排队,5人一行余2人,7人一行余3人,3人一行余1人,编写一程序求该 校的学生人数。 #include void main() {int n,max; for(n=900;n<1000;n++) {if(n%5==2&&n%7==3&&n%3==1) max=n;} printf("%d\n",max); } 59.编写一程序实现从键盘输入10个数,找到第一个能被7整除的数。若,找到,打印此数后退出循环;若 未找到,打印“not exist”。 #include void main() {int s[10],i,t=0; for(i=0;i<10;i++) scanf("%d",&s[i]); for(i=0;i<10;i++) {if(s[i]%7==0) {printf("%d",s[i]);t++;break;} else continue;} if(t==0); printf("not exist"); printf("\n"); } 60.编写一程序:计算用一角、二角和五角凑成一元有多少种组合,并打印输出每种组合。 #include void main() {int i,j,k,flag=0; for(i=0;i<=2;i++) for(j=0;j<=5;j++) k=10-5*i-2*j; if(k>=0&&k<=10); {printf("%d%d%d\n",i,j,k),flag++} printf(%d",flag); }1 数组 61. 在数组a中按照顺序查找值为y的元素。若数组a中不存在该元素,则输出不存在;若存在这样的元素,则显示元素的下标,以及元素的总个数 见实验指导书P60必做题1。 #include #define N 10 void main() { int a[N],y,k,flag; printf("shu ru y zhi: "); scanf("%d",&y); printf("shu ru shu zu: \n"); k=0; do{ scanf("%d",&a[k]); k++; }while(k void main() { int a[10], b[5], i; for(i=0;i<10;i++) scanf(“%d”,&a[i]); for(i=0; i<5; i++) b[i]=a[2*i]; //把数组a中下标为偶数的元素放入数组b中 for(i=0; i<5; i++) printf(“%d”,b[i]); } 63. 数组s中存放有N个同学的某一门功课的成绩。要求编写程序,求出有多少个同学的成 绩高于此门功课的平均分。 #include void main() { float score[10], sum=0, aver; int I, m=0; for(i=0;i<10;i++) scanf(“%f”,&score[i]); for(i=0;i<10;i++) sum+=score[i]; aver=sum/10; for(i=0;i<10;i++) if(score[i]>aver) m++; printf(“The score gaoyu average de students you: %d”, m); } 64. 输入一个3行3列矩阵的所有元素,求该矩阵周边各元素的和。 见实验指导书P65必 做题1。 #include void main ( ) { int a[3][3],sum; int i,j; sum=o; for(i=0;i<3;i++) { for(j=0;j<3;j++) scanf("%d",&a[i][j]; } for(i=0;i<3;i++) sum+=a[i][j]; for(i=0;i<3;i++) sum+=a[i][2-i]; printf("=%d\n,sum); } 65. 判定一个字符串是否是回文串。(所谓回文串是指从开头读和从末尾读均为相同字符的 字符串。例如:abcdcba。 见实验指导书P71必做题1。 #include #define N 50 void main() { char a[N]; int i=0,num=0,flag=0; scanf ("%s,a); do { num++; }while(a[num]!="10"); do { if(a[i]!=a[num-i-1]) { flag=1; break; }; i++; }while(i #include void main() { char s[20], t; int i, j, len; gets(s); len=strlen(s); for(i=1; is[j]) { t=s[j-1]; s[j-1]=s[j]; s[j]=t; } puts(s); } 67( 编程将两个字符串连接起来,不准使用strcat函数。 #include #include void main() { char s1[200], s2[100]; int i=0, j=0; gets(s1); gets(s2); while(s1[i]!=?\0?) i++; //统计s1中字符的个数 while(s2[j]!=?\0?) s1[i++]=s2[j++]; //把s2接在 s1的后面 s1[i]=’\0’; //最后加上字符串结束符号 puts(s1); //把连接后的字符串输出 } 68( 有10个字符串,找出每个字符串中最大字符,并按顺序放入一维数组a[10]中,即 第i个字符串中最大字符放入a[i]中,输出a[i]数组。 #include #include void main() { char s[10][20]; //二维数组,10个字符串,每个字符串最多20个字符 int a[10] ,i, j; for(i=0; i<10; i++) //循环输入10个字符串 gets(s[i]); for(i=0; i<10; i++) { a[i]=s[i][0]; //先将第i个字符串的第一个字符附值给一维数组a的第i个元素 for(j=1; s[i][j]!=?\0?; j++) if(a[i]=0; j--) //输出 printf(“%d”,a[j]); } 70( 设数组a中的元素均为正整数,编程求a数组中偶数的个数和偶数的平均值。 •( #include void main() { int a[10], i, m=0, sum=0, aver; for(i=0; i<10; i++) //输入10个正整数 scanf(“%d”,&a[i]); for(i=0; i<10; i++) if(a[i]%2==0) { sum+=a[i]; m++; } aver=sum/m; printf(“\n Oushu de geshu wei: %d, Oushu de pingjunzhi wei: %d”, m,aver); } 71(数组a包括10个整数,把a中所有的后项除以前项之商取整后存入数组b,并按每行3 个元素的格式输出数组b.试编程。( #include void main() { int a[10], b[9], i; for(i=0; i<10; i++) scanf(“%d”, &a[i]); for(i=0; i<9; i++) b[i]=a[i+1] / a[i]; for(i=0; i<9; i++) { printf(“%d”,b[i]); if((i+1)%3==0) printf(“\n”); //每输出3个元素换行 } } 72( 编程:从键盘输入一个字符串a,并在a串中的最大元素后边插入字符串b #include #include void main() { char a[100], b[50], c[100], maxc; int i, maxi, len1, len2; gets(a); gets(b); len1=strlen(a); len2=strlen(b); maxc=a[0]; for(i=0; a[i]!=’\0’; i++) //求字符串a的最大字符, 保存在maxc中,以及其下标 if( maxc void main() { int a[10], num, i, j; scanf(“%d”,&num); i=0; while(num!=0) //每次分离得到个位数 { a[i]=num%10; num=num/10; i++; } for(j=0; j void main() { int a[2][3]={{1,2,3},{4,5,6}}; int b[3][2],i,j; printf(array a:\n"); for (i=0;i<=1;i+=) { for (j=0;j<=2;j++) { printf("%5d,a[i][j]); b[j][i]=a[i][j]; } printf("\n"); } printf("array b:\n"); for (i=0;i<=2;i++) { for(j=0;j<=1;j++) printf("%5d",b[i][j]); printf("\n"); } } 75(有一个3*4矩阵,求最大元素值及其行、列号。 参见C语言教材P129例7.5。 #include void main() { int i,j,row=0,colum=0,max; int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}}; max=a[0][0]; for(i=0;i<=2;i++) for (j=0;j<=3:j++) if (a[i][j]>max) { max=a[i][j]; row=i; colum=j; } printf("max=%d,row=%d,colum=%d\n",max,row,colum); } 76(有10个字符串,找出每个字符串中最大字符,依次存入一维字符数组a中,即第i个字符串中的最大字符放入a[i]中,输出数组a 同题68 77(设数组a中的元素均为正整数,编程求a数组中偶数的个数和偶数的平均值 同题70 78(编写一个程序,将字符数组s2中的全部字符拷贝到字符数组s1中。不得使用strcpy函数。拷贝时,‘\0‘也要拷贝过去。 #include #include void main() { char s1[100], s2[100]; int i; gets(s2); for(i=0; s2[i]!=?\0?; i++) s1[i]=s2[i]; s1[i]=?\0?; puts(s1); } 79. 将一个字符串中下标值为偶数的元素由小到大排序,其它元素不变。 #include #include void main() { char s[100], s1[50], s2[5], c; int i, j, len; gets(s); for(i=0; s[2*i]!=’\0’; i++) //将字符串中下标为偶数的元素存放在数组s1中 s1[i]=s[2*i]; len=strlen(s1); //对s1中的len个字符进行冒泡排序 for(i=1; i<=len-1; i++ ) for(j=1; j<=len-i; j++) if(s[j-1]>s[j]) { c=s[j-1]; s[j-1]=s[j]; s[j]=c; } for(i=0; s1[i]!=’\0’; i++) //再将排好序的s1中字符依次放入s中偶数下标处 s[2*i]=s1[i]; puts(s); // 输出处理后的字符串s } 80. 思路:(1)各行第一个数都是1 (2)各行最后一个数都是1 (3)从第3行开始,除第一后最后一个数外,其余各数是上一行同列和前一列两个数之和, 即a[i][j]=a[i-1][j]+a[i-1][j-1],i为行数,j为列数 #include void main() { int i, j, a[11][11]; for(i=1; i<11; i++) { a[i][i]=1; //最后一列 a[i][1]=1; //第1列 } for(i=3; i<11; i++) //第3行起 for(j=2; j<=i-1; j++ ) //除第一和最后一个元素外其它元素 a[i][j]=a[i-1][j-1]+a[i-1][j]; for(i=1; i<11; i++) // 输出 { for(j=1; j<=i; j++) printf(“%6d”,a[i][j]); printf(“\n”); } printf(“\n”); } 81(从键盘输入一个二维整型数组,如a[4][4]={ 1,2,3,4,2,2,5,6,3,5,3,7,4,6,7,4},试编程检查一 个二维数组是否对称(即对所有i,j都有a[i][j]=a[j][i])。 #include void main() { int a[4][4], i, j, k=0; for(i=0; i<4; i++) //数组元素的输入 for(j=0; j<4; j++) scanf(“%d”,&a[i][j]); for(i=0; i<4; i++) //比较判断是否对称 for(j=0; j<4; j++) { if(a[i][j]!=a[j][i]) //如果有一个不相等,就输出No,并结束循环 { printf(“No\n”); break; } else k++; //如果相等,则k++ } if(k==16) //如果对称,则循环完4*4次后k的值为16 printf(“yes\n”); } 82(输入5个整数,找出最大数和最小数所在的位置,并把二者对调,然后输出调整后的5 个数. #include void main() { int a[5], max, min, maxi, mini, i; for(i=0; i<5; i++) scanf(“%d”,&a[i]); max=min=a[0]; //求最大和最小元素,最大元素和最小元素下标 for(i=0; i<5; i++) if(maxa[i]) { min=a[i]; mini=i; } a[maxi]=min; //最小元素附值给最大元素下标处 a[mini]=max; //最大元素附值给最小元素下标处 for(i=0;i<5;i++) printf(“%d”, a[i]); } 83(将字符串S中所有下标为奇数的位置上的字母大小写互换。 #include #include void main() { char s[100]; int i; gets(s); for(i=1; s[i]!=?\0?; i=i+2) if( s[i]>=?a? && s[i]<=?z? ) s[i]=s[i]-32; else if( s[i]>=?A && s[i]<=?Z? ) s[i]=s[i]+32; else continue; for(i=0; s[i]!=?\0?; i++) printf(“%c”,s[i]); } 84(求矩阵a和b的和,结果存入矩阵c中并按矩阵形式输出。 #include void main() { int a[3][3], b[3][3], c[3][3], i, j; for(i=0; i<3; i++) for(j=0; j<3; j++) scanf(“%d”,&a[i][j]); for(i=0; i<3; i++) for(j=0; j<3; j++) scanf(“%d”,&b[i][j]); for(i=0; i<3; i++) for(j=0; j<3; j++) c[i][j]=a[i][j]+b[i][j]; for(i=0; i<3; i++) { for(j=0; j<3; j++) printf(“%d”,c[i][j]); printf(“\n”); } } 85(有5个同学,每个同学有4门功课的考试成绩,求每人的平均成绩和每门功课的平均成 绩。要求只用一个2维数组完成; #include void main() { float a[6][5], s; int i, j; for(i=0; i<5; i++) //输入5个同学的成绩 for(j=0; j<4; j++) scanf(“%f”,&a[i][j]); for(i=0; i<5 ;i++) { a[i][4]=0; //每一行的最后一列放每人的平均成绩 for(j=0; j<4; j++) a[i][4]+=a[i][j]; a[i][4]/=4; } for(j=0; j<4; j++) { a[5][j]=0; //每一列的最后一行放每门功课的平均成绩 for( i=0; i<5; i++) a[5][j]+=a[i][j]; a[5][j]/=5; } for(i=0; i<6; i++) { for(j=0; j<5; j++) printf(“%5.2f”, a[i][j]); printf(“\n”); } } 此题目也可以参见实验指导书数组章节实验7选做题2,可以不遵从题目要求:只用一个2 维数组完成。 函数: 86( 编写一程序完成字符串处理函数(strcat字符串连接函数功能,不允许使用strcat函数 实现),即连接两字符串a,b,将字符串b中字符连接到字符串a后成为一个字符串。(要求 两字符串a,b 在主函数中输入,连接部分编写一函数完成,结果由主函数输出完成。) #include void lianjie( char s1[100], char s2[100], char s[200]); void main() { char str1[100], str2[100], str[200]; printf(“\n Input string1:”); scanf(“%s”,str1); printf(“\n Input string2:”); scanf(“%s”,str2); lianjie(str1, str2, str); printf(“\n The lianjie hou de string is : %s”, str); } void lianjie( char s1[100], char s2[100], char s[200]) { int i, j; for( i=0; s1[i]!=?\0?; i++) s[i]=s1[i]; for( j=0; s2[j]!=?\0?; j++) s[i+j]=s2[j]; s[i+j]=?\0?; } 87(编写函数统计字符串中字母、数字、空格和其他字符的个数。(要求在主函数中输入字 符串以及输出上述结果,子函数完成统计功能。) #include int letter, digit, space, others; void main() { void count( char s[100]) char text[100]; scanf(“%s”,text); letter=0; digit=0; space=0; others=0; count(text); printf(“letter: %d, digit: %d, space: %d, others: %d\n”, letter, digit, space, others); } void count(char s[100]) { int i; for(i=0; s[i]!=?\0?; i++) { if((s[i]>=?a? &&s[i]<=?z?) || (s[i]>=?A? &&s[i]<=?Z?)) letter++; else if(s[i]>=?0? &&s[i]<=?9?) digit++; else if( strcmp(s[i],? „)==0) space++; else others++; } } 88(采用函数的方法实现“冒泡法”排序对输入的10个字符按从小到大的顺序进行排列。 (要求在主函数中输入字符并输出排序结果。提示:字符从键盘接收到后放入数组中存放, 数组名作为函数参数。) #include char str[10]; void main() { void sort(char str[]); int i; for(i=0; i<10; i++) scanf(“%c”,&str[i]); sort(str); printf(“\n The sorted string is : ”); for(i=0;i<10;i++) printf(“%c”,str[i]); } void sort(char str[10]) { int i, j; char t; for(i=1; i<10;i++) //对10个字符进行冒泡排序 for(j=1; j<=10-i; j++ ) { if(str[j-1]>str[j]) { t=str[j-1]; str[j-1]=str[j]; str[j]=t; } } } 89(编写一函数将一十进制数转换成2进制数并按顺序输出。(要求在主函数中输入此十进 制数,由子函数进行转换并把结果传递给主函数。) #include void zhuanhuan(int n); void main() { int m; scanf(“%d”,&m); zhuanhuan(m); } void zhuanhuan(int n) { int a[10], i ,j; for(i=0;n; i++) { a[i]=n%2; n=n/2; } for(j=i-1; j>=0; j--) printf(“%d”,a[j]); } 90(编写一程序实现:输入年、月、日,计算出该日是该年的第多少天。(要求在主函数中 输入数据,计算过程由函数完成并将最后结果返回主函数输出。) #include int sum_day(int month, int day); int leap(int year); void main() { int year,month,day,days; printf(“\n Input date(year,month,day):”); scanf(“%d,%d,%d”,&year,&month,&day); days=sum_day(month,day); if(leap(year) && month>=3) days=day+1; printf(“\n is the %d th day in this year.” , days); } int sum_day(int month, int day) { int day_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int i; for(i=1; i void main ( ) { int n; double s; scanf ("n=%d",&n); double factorial (int n); s=factorial (n); printf("the of n is%lf\n",s); } double factorical (int n) { double result=1; while (n>1 && n<170) result*=n--; return (result); } 92(使用函数求两个整数的最大公约数和最小公倍数。(主函数输入两个数,子函数gongyue( )用来求最大公约数,子函数gongbei( )用来求最小公倍数) 见实验指导书P81选做题第1题。 #include void main ( ) { int a,b,c; gongyue (int,int); scanf("a=%d,b=%d",&a,&b); c=gongyue (a,b); printf("a&b gongyue is%d\n",c); } gongyue (int num1,int num2 ) { int temp,a,b;if(num1 #include void main ( ) { long n; long func (long num); printf ("\n Please input a number\n); scanf ("%ld,&n); printf ("\n The product of its digite is %ld\n,func (n) ); } long func (long num) { long func=1; num=fabs (num); do { func=k; k=num/10; num%=10; } while (num); return (func); } 94(使用函数求3名同学5门课的平均成绩。(主函数输入3名同学5门课的成绩,子函数 计算出某名同学5门课的均分并返回给主函数) #include float average( float s[5]); void main() { float score[5], aver[3]; int i; printf(“Input di 1 ge student?s 5 scores: \n”); for(i=0;i<5;i++) scanf(“%d”,&score[i]); aver[0]=average(score); printf(“Input di 2 ge student?s 5 scores: \n”); for(i=0;i<5;i++) scanf(“%d”,&score[i]); aver[1]=average(score); printf(“Input di 3 ge student?s 5 scores: \n”); for(i=0;i<5;i++) scanf(“%d”,&score[i]); aver[2]=average(score); for(i=0; i<3; i++) printf(“\n di %d ge student?s average score is : %f\n”, i+1, aver[i]); } float average(float s[5]) { float sum=0,aver; int i; for(i=0; i<5;i++) sum+=s[i]; aver=sum/5; return aver; } 95(使用函数实现字符串的颠倒存放操作。(主函数中使用字符串处理函数实现字符串的输 入,子函数实现字符串的颠倒操作,使用字符串名作为函数参数。注意:应实现字符串的颠 倒存放,而不是逆序输出) #include #include void invert( char s[100]); void main() { char str[100]; printf(“Input the string :\n”); gets(str); invert(str); printf(“the invert string is : %s”, str); } void invert(char s[100]) { char t; int i, j ,len; len=strlen(s); for( i=0, j=len ; i void deletestr(char s[], int i, int n ); void main() { char str[100]; int i ,n; scanf(“%s”, str); scanf(“%d,%d”,&i,&n); // deletestr(str, i, n); //从字符串str中下标为i的字符开始删除掉n个字符 printf(“\n the deleted string is : %s \n”, str); //输出删除掉n个字符的字符串 } void deletestr(char s[100], int i, int n) { int j, k, len=0; while( s[len]!=’\0’ ) //统计字符串的字符个数 len++; j=i; if(i<=len) { k=i+n; if( (i+n) <=len ) { while(k char getline(char s[] ); void main() { char c, str[100]; int k; scanf(“%s”, str); c=getline(str); printf(“\n The zifu is : %c\n”,c); } char getline(char s[100]) { int i, len; char t; for(i=0; i=len) { t=’N’; //如果字符串中没有字符’s’时返回字符’N’ return t; } else //否则返回字符串的最后一个字符,即s[len-1] return t; } 98(使用函数求解一元二次方程的根,方程的系数由主函数输入得到,并且设a、b均不等 于0。 #include #include void equation(float a, float b, float c); void main() { float a,b,c; scanf(“%f,%f,%f”,&a,&b,&c); printf(“\n The equation is : %5.2f *x*x +%5.2f *x +%5.2f =0\n”,a,b,c); equation(a,b,c); } void equation(float a, float b, float c) { float disc, x1, x2, p, q; disc=b*b-4*a*c; if(disc>le-6) //判别式大于0 { x1=(-b+sqrt(disc))/(2*a); x2=(-b-sqrt(disc))/(2*a); printf(“x1=%5.2f, x2=%5.2f\n”,x1,x2); } else if( fabs(disc)<=le-6) //判别式等于0 { x1=-b/(2*a); printf(“x1=x2=%5.2f\n”,x1); } else //判别式小于0 { p=-b/(2*a); q=sqrt(-disc)/(2*a); printf(“x1=%5.2f+%5.2f i , x2=%5.2f-%5.2f i \n”, p, q, p, q); } } 99(编写一程序完成字符串处理函数(strcpy字符串复制函数功能,不允许使用strcpy函数 实现),即将字符串a的内容完整的复制到字符串b中(连同字符串a中’\0’也要复制)。 (要求字符串a内容在主函数中输入,复制部分编写一函数完成,结果由主函数输出完成。) #include void copystr(char s1[100],s2[100]); void main() { char a[100],b[100]; scanf(“%s”,a); copystr(a,b); printf(“The result is: %s”,b); } void copystr(char s1[100], s2[100]) { int i; for(i=0; s1[i]!=?\0?; i++) s2[i]=s1[i]; s2[i]=?\0?; } 100(编写一程序完成对于一个大于等于3的正整数,判断它是不是一个素数(要求数据由 主函数输入,判断部分编写一函数实现,结果由主函数输出完成。) #include #include int prime(int n); void main() { int m,k; printf(“Input an zhengshu:\n”); scanf(“%d”,&m); k=prime(m); if(k==1) printf(“\n %d is a prime.”, m); else printf(“\n %d is not a prime.”, m); } int prime(int n) //判断是否是素数 { int i, flag; flag=1; for(i=2; im)。(要求数据由主函数输入,复制部分编写一函数实现,复制后结果由主函 数输出完成。) #include #include void copystr( char s1[20],char s2[20], int m, int n); //函数原型说明 void main() { int m, len; char str1[20],str2[20]; gets(str1); scanf("%d",&m); len=strlen(str1); if(len void main ( ) { float ctem,ftem; float trans(float tem); scanf ("%f,&ftem); if (ftem<300) ctem=trans (ftem); else printf ("beyond the scope\n); printf ("celsius is %f\n,ctem); } float trans (float tem) { c=(5.0/9.0)*(f-32); } 103(写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。( #include int length(char s[100]); void main() { int len; char str[100]; gets(str); len=length(str); printf(“The length of the string is: %d”, len); } int length(char s[100]) { int n=0; while(s[n]!=?\0?) { n++; } return n; } 104. 用函数实现一些程序:计算10个学生的1门课程成绩的平均值.. 见实验指导书P85必做题第1题。 #include float average (float array[10]) { int i; float aver,sum=array[0]; for (i=1;i<10;i++) sum+=a[i]; aver=sum/10; return (aver); } void main( ) { float score[10],aver; int i; printf ("\n input 10 score:"); for (i=0;i<10;i++ ) scanf ("%f",%score[i]) ; aver=aver[a]; printf ("\n average score is %5.2f\n",aver0; } 105(有15个数按由大到小顺序存放在一个数组int a={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}中,输入一个数用顺序查找法找出该数是数组中的第几个元素的值(元素下标值),若该数不在数组中则打印“无此数”。 (要求数据由主函数输入,查找部分编写一函数实现,结果由主函数输出完成。) #include int lookfor(int x[15], y); void main() { int a[15]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; int m, i; scanf(“%d”, &m); i=lookfor(a, m); if(i==-1) printf(“no find!\n”); else printf(“the xiaobiao wei : %d”, i); } int lookfor( int x[15], y) { int k=0 ,n; while(k<15) { if(x[k] == y) { n=k; break; } else { k++; n=k; } } if(n>=15) return -1; else return n; } 编译预处理与结构体: 106(定义一个带参数的宏,完成从四个数中找出最大数的操作。 #include #define Max(a,b) ( (a>b) ? a : b ) void main() { int a, b, c ,d; scanf(“%d,%d,%d,%d”, &a,&b,&c,&d); printf(“MAX=%d\n”, Max(Max(Max(a,b),c),d)); } 107(根据已知算法定义一个带参数的宏,用来判别程序中输入的年份是否闰年。 #include #define Ryear(y) (y%4==0) && (y%100!=0) || (y%400==0) void main() { int year; scanf(“%d”,&year); if(Ryear(year)) printf(“%d is run nian\n”,year); else printf(“%d is not run nian\n”,year); } 108(试定义一个带参数的宏swap(x,y),以实现两个整数之间的交换,并利用它将一维数 组a和b的所有元素的值进行交换。 #include #define Swap(x,y) t=x; x=y; y=t void main() { int a[10], b[10], i, t; for(i=0;i<10;i++) scanf(“%d”,&a[i]); for(i=0;i<10;i++) scanf(“%d”,&b[i]); for(i=0;i<10;i++) Swap(a[i], b[i]); for(i=0;i<10;i++) printf(“%d”,a[i]); printf(“\n”); for(i=0;i<10;i++) printf(“%d”, b[i]); } 109(输入两个整数,求它们相除的余数.用带参数的宏来实现,编程序. #include struct student { char num[10]; char name[20]; int score[3]; float aver; }stu[5]; void main() { int i , j, max, maxi, sum; float average; for(i=0; i<5; i++) { printf(“\n Input scores of student %d :\n ”, i+1); printf(“NO.:”); scanf(“%s”,stu[i].num); printf(“name:”); scanf(“%s”,stu[i].name); for(j=0; j<3; j++) { printf(“score %d :”, j+1); scanf(“%d”,&stu[i].score[j]); } } average=0; max=0; maxi=0; for (i=0; i<5; i++) { sum=0; for(j=0; j<3; j++) sum+=stu[i].score[j]; stu[i].aver=sum/3.0 ; average+=stu[i].aver; if(sum>max) { max=sum; maxi=i; } } average/=5; printf(“Average=%6.2f\n”, average); printf(“The highest score student num is: %s, ”, stu[maxi].num); printf(“The highest score student name is: %s, ”, stu[maxi].name); printf(“The highest score student scores is: %4d, %4d, %4d”, stu[maxi].score[0], stu[maxi].score[1], stu[maxi].score[2]); printf(“The highest score student num is: %6.2f”, stu[maxi].aver); } 110. 定义两个带参数的宏,一个用来求S(s=1/2(a+b+c)),另个用来求area(area为三角形的 面积)。写程序,在程序中用带实参的宏名来求面积area。 #include struct { int year; int month; int day; }date; void main() { int days; printf(“Input year, month, day :”); scanf(“%d,%d,%d”,&date.year, &date.month, &date.day); switch(date.month) { case 1: days=date.day ; break; case 2: days+=date.day+31 ; break; case 3: days+=date.day+59; break; case 4: days+=date.day+90; break; case 5: days+=date.day+120; break; case 6: days+=date.day+151; break; case 7: days+=date.day+181; break; case 8: days+=date.day+212; break; case 9: days+=date.day+243; break; case 10: days+=date.day+273; break; case 11: days+=date.day+304; break; case 12: days+=date.day+334; break; } if((date.year%4==0 && date.year%100!=0 || date.year%400==0) && ( date.month>=3)) days+=1; printf(“\n%d / %d is the %d th day in %d.”, date.month, date.day, days,date.year); } 指针: 111(已知字符串S中的内容为“Student~”,请用指针的方法将S中的内容逆序输出,且不能改变串中的内容。 #include #include void main() { char s[100]=”Student!”; char *p; int len; len=strlen(s); p=s; for(i=len;i>=0;i--) printf(“%c”,*(p+i)); printf(“\n”); } 112. 输入一行文字,找出其中大写字母、小写字母、空格、数字以及其他字符个数。(要求用指针实现)。 #include void main() { int upper=0,lower=0,digit=0,space=0,other=0,i=0; char s[100],*p; while((s[i]=getchar())!='\n') i++; //输入字符串 p=&s[0]; while(*p!='\n') { if(('A'<=*P) && (*P<='Z')) upper++; else if(('a'<=*P) && (*P<='z')) lower++; else if(*P==' ') space++; else if(('0'<=*P) && (*P<='9')) digit++; else other++; p++; //使循环趋于改变的语句 } printf("%d,%d,%d,%d,%d",upper,lower,space,digit,other); } 113(通过指针操作,将输入的3个字符串,按由大到小的顺序输出。 #include #include void swap( char *p1, char *p2); void main() { char s1[100],s2[100],s3[100]; gets(s1); gets(s2); gets(s3); if(strcmp(s1,s2)<0) swap(s1,s2); if(strcmp(s2,s3)<0) swap(s2,s3); if(strcmp(s1,s2)<0) swap(s1,s2); puts(s1); puts(s2); puts(s3); } void swap(char *p1, char *p2) { char *p; strcpy(p,p1); strcpy(p1,p2); strcpy(p2,p); } 114(定义整型数组a,有10个元素,用指针实现数组中的全部元素的输出. #include void main() { int a[10], *p,i; for(i=0;i<10;i++) scanf("%d",&a[i]); p=&a[0]; for(i=0;i<10;i++) printf("%d",*(p+i)); } 115(编一程序,将字符串computer赋给一个字符数组,然后从第一个字母开始间隔地输出 该串。请用指针完成。 #include #include void main() { char s[100]=”computer”; char *p; int len; len=strlen(s); p=s; for(i=0;i #include void copystr( char *p1,char *p2, int m); //函数原型说明 void main() { int m,len; char s1[100],s2[100]; scanf("%d",&m); gets(s1); len=strlen(s1); if(len void main() { int a[10], *p,i,j,t; for(i=0;i<10;i++) scanf("%d",&a[i]); p=&a[0]; for(i=1;i<10;i++) for(j=1;j<=10-i;j++) if(*(p+j-1) > *(p+j)) { t=*(p+j-1); *(p+j-1)=*(p+j); *(p+j)=t; } for(i=0;i<10;i++) printf("%d",*(p+i)); } 118(用指针法实现:写一个函数,求一个字符串的长度。在main函数中输入字符串,并输 出其长度值。 #include int length( char *p); //函数原型说明 void main() { int len; char s[100]; scanf("%s",s); gets(s1); len=length(s1); //调用length()函数 printf("the length of the string is %d "r,len); } int length(char *p) { int n; n=0; while(*p!='\0') { n++; p++; } return n; } 119(从键盘输入10个学生的成绩,显示其中的最高分、最低分和平均分。用指针实现。 #include void main() { int a[10],*p,i,max,min,sum; float aver; printf("Enter 10 integers:\n"); for(p=a;p<(a+10);p++) scanf("%d",p); p=&a[0]; max=min=sum=*p; for(i=1;i<10;i++) { sum+=*(p+i); if(max<*(p+i)) max=*(p+i); if(min>*(p+i)) min=*(p+i); } aver=sum/10.0; printf("Maximum value is %d\n",max); printf("Minimum value is %d\n",min); printf("Average is %6.2f\n",aver); } 120,参考数组62
本文档为【C经典程序-C语言精通120题】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_079973
暂无简介~
格式:doc
大小:145KB
软件:Word
页数:0
分类:生活休闲
上传时间:2017-12-24
浏览量:15