济南大学c语言实验答案(DOC)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验2 顺序结构程序设计
1. 编写程序,从键盘输入一个大写字母,将它转换为对应的小写字母后输出。
参考程序:
#include "stdio.h"
void main()
{
char ch;
printf(“\nPlease input a capital character:”);
scanf(“%c”,&ch);
ch=ch+32;
printf(“\nThe small letter is %c”,ch);
}
2.编写程序,输入圆半径r ,求圆周长、圆面积、圆球体积。
参考程序:
#include <stdio.h>
#include <math.h>
#define PI 3.14
void main()
{
float r,c,area,v;
printf(“\nPlease input the r:”);
scanf(“%f”,&r);
c=2*PI*r;
area=PI*r*r;
v=4.0/3*PI*pow(r,3);
printf(“\nThe circle’s perimeter is %.2f”,c);
printf(“\nT he circle’s area is %.2f”,area;
printf(“\nThe circle’s volume is %.2f”,v);
}
3. 输入一个华氏温度,要求输出摄氏温度。
公式为:
()3295-=F c 输出要有文字说明,取2位小数。
参考程序:
#include <stdio.h>
void main()
{
float f,c;
printf(“\nPlease input a F temperature:”);
scanf(“%f ”,&f);
c=5.0/9*(f-32);
printf(“\nThe temperature is %.2f ”,c);
}
4. 有3个电阻r1、r2、r3并联,编写程序计算并输出并联后的电阻r 。
已知电阻并联公式为:
3
121111r r r r ++=
参考程序:
#include <stdio.h>
void main()
{
float r,r1,r2,r3;
printf(“\nPlease input r1、r2、r3:”);
scanf(“%f%f%f ”,&r1,&r2,&r3);
r=1.0/r1+1.0/r2+1.0/r3;
r=1.0/r;
printf(“\nThe result is %.2f ”,r);
}
5.编写程序,输入三角形的三条边,计算并输出三角形的面积。
(注意输入的三条边必须要能构成一个三角形)
求三角形的面积公式为: ()()()c s b s a s s area ---=
其中s=(a+b+c)/2。
参考程序:
#include <stdio.h>
#include <math.h>
void main()
{
float a,b,c,s,area;
printf(“\nPlease input a,b,c:”);
scanf(“%f%f%f ”,a,b,c);
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf(“\nThe area is %f ”,area);
}
6. 编写程序,输入梯形的上底和下底,计算并输出梯形的面积。
精确到小数点
后2位,输入输出时要有文字说明。
参考程序:
#include <stdio.h>
void main()
{
float x,y,h,area;
printf(“\nPlease input th e x,y,h:”);
scanf(“%f,%f,%f”,&x,&y,&h);
area=(x+y)*h/2;
printf(“The area is %.2f”,area);
}
7. 周期为T 秒的人造卫星离地面的平均高度H 的计算公式为:
R MT H -⨯=-3221141067.6π
其中:M=6×1024kg 是地球质量,R=6.371×106m 是地球半径。
编写程序,输入人造卫星的周期T ,计算并输出人造卫星离地面的高度H 。
参考程序:
#include <stdio.h>
#include <math.h>
#define PI 3.14
#define M (6*pow(10,24))
#define R (6.371*pow(10,6))
void main()
{
double t,h,temp;
printf("\nPlease input the T:");
scanf("%lf",&t);
temp=(6.67*pow(10,-11)*M*t*t)/(4*PI*PI);
h=pow(temp,1.0/3)-R;
printf("\nThe high is %lf",h);
}
实验3 选择结构程序设计
1. 编写程序,输入一个正整数,判断该数是奇数还是偶数,并输出判断结果。
参考程序:
#include "stdio.h"
void main()
{
int m;
printf(“\nPlease input the integer(>0):”);
scanf(“%d”,&m);
printf(“\nThe integer is %d”,m);
if(m%2==0)
printf(“\nThis is a even!”);
else
printf(“\nThis is a odd!”);
}
2.有一函数:
⎪⎪⎩
⎪⎪⎨⎧--+++--=13)12(log 35531121023x x x x x y ()()()()10101111>≤<≤≤--<x x x x 编写一个程序,用scanf 函数输入x 的值,输出y 值。
注意表达式的书写方法。
参考程序:
#include <stdio.h>
#include <math.h>
void main()
{
float x,y;
printf(“\nPlease input the x:”);
scanf(“%f”,&x);
if(x<-1)
y=pow(x,3)-1;
else if(x<=1)
y=-x*x+1;
else if(x<=10)
y=3*x+5;
else
y=5*x+3*log(2*x*x-1)-13;
printf(“\ny=%f”,y);
}
3. 编写程序,输入年号,判断并输出该年是否闰年。
参考程序:
#include <stdio.h>
void main()
{
int year;
printf(“\nPlease input the year:”);
scanf(“%d”,&year);
if(year%4==0&&year%100!=0||year%400==0)
printf(“\n%d is a leap year!”,year);
else
printf(“\n%d is not a leap year!”,year);
}
4. 简单选择界面的编程。
从键盘输入整数,输出不同的字符串:
输入1,输出Good morning;
输入2,输出Good afternoon;
输入3,输出Good evening;
输入4,输出Good night;
输入其他数字,输出Bye bye。
参考程序:
#include <stdio.h>
void main()
{
int n;
printf("\nPlease input a number:");
scanf("%d",&n);
switch(n)
{
case 1:printf("Good morning");break;
case 2:printf("Good afternoon");break;
case 3:printf("Good evening");break;
case 4:printf("Good night");break;
default:printf("Bye bye");
}
}
5.已知从银行贷款月利率为:期限一年,为0.90%;期限2年,为1%;期限3年,为1.11%;三年以上为1.2%。
从键盘输入贷款金额和期限,计算到期后应归还银行本金和利息合计为多少钱。
参考程序:
#include <stdio.h>
#include <math.h>
void main()
{
int year;
float base,rate,sum;
clrscr();
printf("\nEnter the base and the year:");
scanf("%f%d",&base,&year);
switch(year)
{
case 1: rate=0.009;break;
case 2: rate=0.01;break;
case 3: rate=0.0111;break;
default: rate=0.012;
}
sum=base*pow(1+rate, year);
printf("sum is %.2f\n",sum);
}
6. 输入一个不多于5位的正整数,要求:①求出它是几位数;②分别打印出每一位数字;③按逆序打印出各位数字。
要准备以下测试数据:
1位正整数
2位正整数
3位正整数
4位正整数
5位正整数
除此之外,程序还应当对不合法的输入作必要的处理,如负数或超过5位的正整数。
参考程序:
#include <stdio.h>
void main()
{
int a,b,c,d,e,m;
printf(“\nPlease input a integer:”);
scanf(“%d”,&m);
if(m>=0&&m<=99999)
{
a=m/10000;
b=m/1000-a*10;
c=m/100-a*100-b*10;
d=m/10-a*1000-b*100-c*10;
e=m%10000;
if(a!=0)
{
printf(“\nThis is a 5 integer!”);
printf(“\nThe integer is %d %d %d %d %d!”,a,b,c,d,e);
printf(“\nThe inverse is %d %d %d %d %d!”,e,d,c,b,a);
}
else if(b!=0)
{
printf(“\nThis is a 4 integer!”);
printf(“\nThe integer is %d %d %d %d!”, b,c,d,e);
printf(“\nThe inverse is %d %d %d %d!”, e,d,c,b);
}
else if(c!=0)
{
printf(“\nThis is a 3 integer!”);
printf(“\nTh e integer is %d %d %d!”, c,d,e);
printf(“\nThe inverse is %d %d %d!”, e,d,c);
}
else if(b!=0)
{
printf(“\nThis is a 2 integer!”);
printf(“\nThe integer is %d %d!”, d,e);
printf(“\nThe inverse is %d %d!”, e,d);
}
else
{
printf(“\nThi s is a 1 integer!”);
printf(“\nThe integer is %d”,m);
}
}
else
printf(“\nNot the effect integer!”);
}
实验4 循环结构程序设计1. 从键盘输入若干整数,以0结束,判断并输出其中最大的数。
参考程序:
#include "stdio.h"
void main()
{
int n,max;
printf(“Please input some integers(ending in ‘0’):”);
scanf(“%d”,&n);
max=n;
while(n!=0)
{
if(n>=max)
max=n;
scanf(“%d”,&n);
}
printf(“The max integer is %d\n”,max);
}
2.输入一行字符,以回车键作为结束标志,分别统计出大写字母、小写字母、空格、数字和其它字符的个数。
参考程序:
#include “stdio.h”
void main()
{
char ch;
int capital=0,alpha=0,space=0,number=0,other=0;
printf(“Please input some chars(ending in ‘\n’):”);
while(ch=getchar()!=’\n’)
{
if(ch>=’A’&&ch<=’Z’)
capital++;
else if(ch>=’a’&&ch<=’z’)
alpha++;
else if(ch>=’0’&&ch<=’9’)
number++;
else if(ch==‘’)
space++;
else
other++;
}
printf(“\ncapital:%d,alpha:%d,number:%d,space:%d,other:%d”,capital,alpha, number,space,other);
}
3. 计算∑
=
20
1
!
n
n。
(即求1!+2!+3!+…+20!)。
参考程序:
#include <stdio.h> void main()
{
int sum=0,i,m=1; for(i=1;i<=20;i++) {
m=m*i;
sum=sum+m;
}
printf(“1!+2!+3!+…+20!=%d ”,sum);
}
4. 输出所有的水仙花数。
水仙花数是指一个3位数,各位数字立方和等于该数本身。
参考程序:
#include <stdio.h>
void main()
{
int i,j,k,n;
n=100;
printf("The numbers of shui-xian-hua are:");
while(n<1000)
{
i=n/100;
j=n/10-i*10;
k=n%10;
if(n==i*i*i+j*j*j+k*k*k)
printf("%4d",n);
n++;
}
printf("\n");
}
5.有一分数序列:
,1321,813,58,35,23,12 求出这个数列的前20项之和。
参考程序:
#include <stdio.h>
void main()
{
int i,m=2,n=1,t,sum=0;
for(i=1;i<=20;i++)
{
sum=sum+1.0*m/n;
t=m;
m=m+n;
n=t;
}
printf(“\nThe sum is %d ”,sum);
}
6. 求4484476L L a
n n a aa aaa aa a S ++++=的值,其中a 是一个数字,如2+22+222+2222+22222(此时a=2,n=5),a 和n 均由键盘输入。
参考程序:
#include <stdio.h>
void main()
{
int s,sum=0;
int i,n,a;
printf(“Please input the a,n:”);
scanf(“%d%d ”,&a,&n);
s=a;
for(i=1;i<=n;i++)
{
sum=sum+s;
s=s*10+a;
}
printf(“\nThe sum is %d ”,sum);
}
7. 编写函数,求和:n
sum ++++++++++=L L 21132112111 n 在主函数中由键盘输入,被调函数返回sum 的值。
参考程序:
#include <stdio.h>
float fun(int n)
{
int i,s=0;
float sum=0;
for(i=1;i<=n;i++)
{
s=s+i;
sum=sum+1.0/s;
}
return(sum);
}
void main()
{
int n;
float sum;
printf(“\nPlease input n:”);
scanf(“%d ”,&n);
sum=fun(n);
printf(“\nThe sum is %f ”,sum);
}
8.
!20!3!212032x x x x e x ++++=
参考程序:
#include <stdio.h>
#include <math.h>
float f2(int n)
{
int i;
float s=1;
for(i=2;i<=n;i++)
s=s*i;
return(s);
}
float f1(int x, int n)
{
int i;
float s=x;
for(i=2;i<=n;i++)
s=x*s;
return(s);
}
main( )
{
float exp=1.0;
int x,n;
scanf("%d", &x);
exp+=x;
for (n=2; n<20; n++)
exp+=f1(x,n)/f2(n);
printf("\nexp(%d)=%.4f\n", x, exp);
}
9. 从3个红球、5个白球、6个黑球中任意取出8个作为一组,要求在每组中可以没有黑球,但必须有红球和白球。
输出这样的组合数有多少?并且输出每组中的红、白、黑球数。
#include <stdio.h>
int ball(int m,int n,int s)
{
int i,j,k,sum;
printf(“\nred white black:”);
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++)
{
k=s-i-j;
sum++;
printf(“\n%2d%2d%2d”,i,j,k);
}
}
return(sum);
}
void main()
{
int red=3,white=5,black=6,s=8;
int sum;
sum=ball(red,white,s);
printf(“\nThe total is %d”,sum);
}
实验5 函数编程
1. 编写函数,判断指定的字符是否是数字字符,如果是返回1,不是则返回0。
在主函数中输入该字符,调用函数判断该字符并输出是否是数字字符。
参考程序:
#include <stdio.h>
int number(char ch)
{
int n;
if(ch>='0'&&ch<='9')
n=1;
else
n=0;
return(n);
}
void main()
{
char ch;
int n;
printf("\nPlease input a char:");
scanf("%c",&ch);
n=number(ch);
if(n==1)
printf("\nIt is a number!");
else
printf("\nIt is not a number!");
}
2.编写一个函数,求1!+2!+…+n!。
要求:n在主函数中输入,并在主函数中输出计算结果。
参考程序:
#include “stdio.h”
float fun(int n)
{
int i;
float sum=0,s=1;
for(i=1;i<=n;i++)
{
s=s*i;
sum=sum+s;
}
return(sum);
}
void main()
{
int n;
float sum;
printf(“\nInput n:”);
scanf(“%d”,&n);
sum=fun(n);
printf(“\n1!+2!+3!+…+%d!=%f”,n,sum);
}
3. 编写一个函数,计算一个整数m的n次幂,在主函数中输入m和n,并在主函数中输出计算结果。
参考程序:
#include “stdio.h ”
double power(int m,int n)
{
int i;
double result=1;
for(i=0;i<n;i++)
{
result=result*m;
}
return(result);
}
void main()
{
int m,n;
double result;
printf("\nPlease input m,n:");
printf("\nm=");
scanf("%d",&m);
printf("\nn=");
scanf("%d",&n);
result=power(m,n);
printf("\nThe result is %lf",result);
}
4. 编写函数,求和:n
sum ++++++++++=L L 21132112111 n 在主函数中由键盘输入,被调函数返回sum 的值。
参考程序:
#include <stdio.h>
float fun(int n)
{
int i;
float sum=0,s=0;
for(i=1;i<=n;i++)
{
s=s+i;
sum=sum+1.0/s;
}
return(sum);
}
void main()
{
int n;
float sum;
printf(“\nPlease input n:”);
scanf(“%d ”,&n);
sum=fun(n);
printf(“\nThe sum is %f ”,sum);
}
5.!20!3!212032x x x x e x ++++=
参考程序:
#include <stdio.h>
float f2(int n)
{
int i;
float s=1;
for(i=2;i<=n;i++)
s=s*i;
return(s);
}
float f1(int x, int n)
{
int i;
float s=x;
for(i=2;i<=n;i++)
s=x*s;
return(s);
}
void main( )
{
float exp=1.0;
int x,n;
scanf("%d", &x);
exp+=x;
for (n=2; n<20; n++)
exp+=f1(x,n)/f2(n);
printf("\nexp(%d)=%.4f\n", x, exp);
}
6. 从3个红球、5个白球、6个黑球中任意取出8个作为一组,要求在每组中可以没有黑球,但必须有红球和白球。
输出这样的组合数有多少?并且输出每组中的红、白、黑球数。
参考程序:
#include <stdio.h>
int ball(int a,int b,int c,int s)
{
int i,j,k,sum;
printf(“\nred white black:”);
for(i=1;i<=a;i++)
{
for(j=1;j<=b;j++)
{
for(k=1;k<=c;k++)
{
if(i+j+k==s)
{
sum++;
printf(“\n%2d%2d%2d”,i,j,k);
}
}
}
return(sum);
}
void main()
{
int red=3,white=5,black=6,s=8;
int sum;
sum=ball(red,white,black,s);
printf(“\nThe total is %d”,sum);
}
7. 编写一个函数,用指针作为参数,分别得到双精度实型数据的整数部分和小数部分。
参考程序:
#include <stdio.h>
void fun(double x, double *pa, int *pb)
{
*pb=x;
*pa=x-(*pb);
}
void main()
{
double x,a,*pa;
int b,*pb;
printf(“Please input a double number:”);
scanf(“%lf”,&x);
pa=&a;
pb=&b;
fun(x,pa,pb);
printf(“\n%d+%lf=%lf”,b,a,x );
}
8. 编写一个函数,返回三个整数中的最大数。
要求用指针作为函数参数得到最大数,在主函数中输入输出数据。
参考程序:
int max(int *p1,int *p2,int *p3)
{
if(*p1>*p2)
{
if(*p1>*p3)
return(*p1);
else
return(*p3);
}
else
{
if(*p3>*p2)
return(*p3);
else
return(*p2);
}
}
void main()
{
int a,b,c,*p1,*p2,*p3,m;
printf("\nInput three integers:(a,b,c)\n");
scanf("%d,%d,%d",&a,&b,&c);
p1=&a;
p2=&b;
p3=&c;
m=max(p1,p2,p3);
printf("\nThe max is %d",m);
}
9. 编写函数,计算π。
已知:
π/4=1-1/3+1/5-1/7+…
直到最后一项的绝对值小于10-8为止。
要求用指针作为函数参数返回计算结果。
#include <stdio.h>
#include <math.h>
void pai(double *p)
{
int i=1;
double m;
do
{
m=1.0/(2*i-1);
*p=*p+pow(-1,i+1)*m;
}while(m>=pow(10,-8))
*p=(*p)*4.0;
}
void main()
{
double pi=0;
double *p;
p=π
pai(p);
printf("\nPI=%lf",pi);
}
实验6 构造数据类型
1. 某歌手大赛,共有10个评委给歌手打分,分数采用百分制,去掉一个最高分,去掉一个最低分,然后取平均分,得到歌手的成绩。
10个分数由键盘输入,编写程序计算某歌手的成绩。
参考程序:
#include <stdio.h>
float calculates(float s[10])
{
int i;
float max=s[0],min=s[0],sum=0,ave;
for(i=0;i<10;i++)
{
if(s[i]>max) max=s[i];
if(s[i]<min) min=s[i];
sum=sum+s[i];
}
ave=(sum-max-min)/8;
return(ave);
}
{
int i;
float score,s[10];
printf("Please input the 10 scores:\n");
for(i=0;i<10;i++)
scanf("%f",&s[i]);
score=calculates(s);
printf("\nThe singer's score is %f",score);
}
2.有一个一维数组包含10个元素,编写程序将其中的值按逆序重新存放。
即第一个元素和最后一个元素交换位置,第二个元素和倒数第二个元素交换位置,依次类推。
参考程序:
#include “stdio.h”
#define N 10
void main()
{
int i,j,a[N],m,n,temp;
n=N;
printf("Please input %d integer:\n",n);
for(i=0;i<N;i++)
scanf("%d",&a[i]);
m=(N-1)/2;
for(i=0;i<=m;i++)
{
j=N-1-i;
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
printf("\nThe array has been inverted:\n");
for(i=0;i<N;i++)
printf("%d ",a[i]);
}
3. 有n个数,已按由小到大的顺序排好,要求输入一个数,将它插入到数列的合适位置,使数组仍然有序,并输出新数列。
编程时应考虑插入的数的各种可能性(比原所有数都大;比原所有数都小;在最大数和最小数之间)。
参考程序:
#include “stdio.h”
{
static int a[11]={3,8,11,17,20,28,40,58,67,85};
int num,i;
printf("The list is:\n");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\nPlease input the insert number:");
scanf("%d",&num);
i=9;
while(num<a[i]&&i>=0)
{
a[i+1]=a[i];
i--;
}
a[i+1]=num;
printf("\nThe result is:\n");
for(i=0;i<11;i++)
printf("%d ",a[i]);
}
4. 输入一个M行M列的二维数组,分别计算四周元素及两条对角线上的元素之和。
M由下面的符号常量定义:#define M 5
参考程序:
#include <stdio.h>
#define M 5
void main()
{
int a[M][M],i,j,m,n,sum1=0,sum2=0;
m=M;
printf("Please input %d numbers:\n",m*m);
for(i=0;i<M;i++)
for(j=0;j<M;j++)
scanf("%d",&a[i][j]);
printf("\nThe array is:\n");
for(i=0;i<M;i++)
{
for(j=0;j<M;j++)
{
printf("%d ",a[i][j]);
if(i==j||(i+j)==(M-1)) sum2=sum2+a[i][j];
if(i==0||i==(M-1)||j==0||j==(M-1))
sum1=sum1+a[i][j];
}
printf("\n");
}
printf("\nThe round sum is %d",sum1);
printf("\nThe corner sum is %d",sum2);
}
5.有一个班,有4个学生,5门课。
①求各门课的平均分;②找出有两门以上课程不及格的学生,输出它们的学号和全部课程成绩及平均成绩;③找出平均成绩在90分以上或全部课程成绩在85分以上的学生,输出它们的学号和全部课程成绩。
分别编3个函数实现以上3个要求。
参考程序:
#include <stdio.h>
#define M 4
#define N 5
void average(float score[M][N]);
void fail(float score[M][N],int num[M],float totalscore[M]);
void excellence(float score[M][N],int num[M],float totalscore[M]);
void main( )
{
float score[M][N],totalscore[M];
int i,j,num[M];
printf(“Please input the scores: %d students, %d courses”,M,N);
for(i=0;i<M;i++)
for(j=0;j<N;j++)
{
printf(“\nscore: %d student %d course”,i+1,j+1);
scanf(“%f”,&score[i][j]);
}
printf(“\nInput the number of every student!”);
for(i=0;i<M;i++)
{
printf(“\nInput the %d student’s number:”,i+1);
scanf(“%d”,&num[i]);
}
for(i=0;i<M;i++)
{
totalscore[i]=0;
for(j=0;j<N;j++)
totalscore[i]=totalscore[i]+score[i][j];
}
average(score);
fail(score,num,totalscore);
excellence(score,num,totalscore);
}
void average(float score[M][N])
{
int i,j;
float sum,ave;
for(j=0;j<N;j++)
{
sum=0;
for(i=0;i<M;i++)
sum=sum+score[i[[j];
ave=sum/M;
printf(“\nThe %d course’s average is %f”, j+1,ave);
}
}
void fail(float score[M][N],int num[M],float totalscore[M])
{
int i,j,n=0;
printf(“\nThe student(over two courses<60):”);
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
if(score[i][j]<60)
n++;
if(n>=2)
printf(“\nnum:%d,totalscore:%f,average:%f”,num[i],totalscore[i], totalscore[i]/N);
}
}
void excellence(float score[M][N],int num[M],float totalscore[M])
{
int i,j;
float ave;
printf(“\nThe student(average>90 or all scores>85):”);
for(i=0;i<M;i++)
{
ave=totalscore[i]/N;
for(j=0;j<N;j++)
if(score[i][j]<=85)
break;
if (j==N||ave>90)
printf(“\nnum:%d,totalscore:%f”,num[i],totalscore[i]);
}
}
6. 有一段文字,共有5行,分别统计出其中英文大写字母、小写字母、数字、空格以及其它字符的个数。
参考程序:
#include <stdio.h>
#include "string.h"
void main()
{
char a[5][100];
int i,j=0,ualpha=0,lalpha=0,number=0,space=0,other=0;
printf("Input 5 string:\n");
for(i=0;i<5;i++)
gets(a[i]);
for(i=0;i<5;i++)
{
ualpha=0;lalpha=0;number=0;space=0;other=0;
for(j=0;j<100;j++)
{
if(a[i][j]!='\0')
{
if(a[i][j]>=65&&a[i][j]<=90) ualpha++;
else if(a[i][j]>=97&&a[i][j]<=122) lalpha++;
else if(a[i][j]>=48&&a[i][j]<=57) number++;
else if(a[i][j]==32) space++;
else other++;
}
else break;
}
printf("\n%d:ualpha:%d,lalpha:%d,number:%d,space:%d,other:%d",i,ualpha,lal pha,number,space,other);
}
}
7. 从键盘输入一个字符串,分别输出其完全大写和完全小写的形式。
参考程序:
#include <stdio.h>
#include <string.h>
void main()
{
char str[20],low[20],up[20];
int i;
printf("Please input a string:");
gets(str);
printf("\nThe letter list is:\n");
puts(str);
i=0;
do
{
if(str[i]>=65&&str[i]<=90)
{
low[i]=str[i]+32;
up[i]=str[i];
}
else if(str[i]>=97&&str[i]<=122)
{
low[i]=str[i];
up[i]=str[i]-32;
}
else
{
low[i]=str[i];
up[i]=str[i];
}
}while(str[i++]!='\0')
}
printf("\nThe result is:\n");
puts(up);
puts(low);
}
8. 输入6个字符串,输出最大的字符串。
参考程序:
#include <stdio.h>
#include <string.h>
void main()
{
char str[6][30],max[30];
int i;
printf(“Input six strings”);
for(i=0;i<6;i++)
{
printf(“\nInput %d string”,i+1);
gets(str[i]);
}
strcpy(max,str[0]);
for(i=1;i<6;i++)
{
if(strcmp(max,str[i])<0)
strcpy(max,str[i]);
}
printf(“\nThe largest string is”); puts(max);
}。