C语言课后作业答案.docx

上传人:b****3 文档编号:27549794 上传时间:2023-07-02 格式:DOCX 页数:37 大小:21.86KB
下载 相关 举报
C语言课后作业答案.docx_第1页
第1页 / 共37页
C语言课后作业答案.docx_第2页
第2页 / 共37页
C语言课后作业答案.docx_第3页
第3页 / 共37页
C语言课后作业答案.docx_第4页
第4页 / 共37页
C语言课后作业答案.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

C语言课后作业答案.docx

《C语言课后作业答案.docx》由会员分享,可在线阅读,更多相关《C语言课后作业答案.docx(37页珍藏版)》请在冰豆网上搜索。

C语言课后作业答案.docx

C语言课后作业答案

3-5-1正确

大写字母转化成小写或者小写变大写

#include

voidmain()

{

charch;

printf("请输入一个字符:

");

scanf("%c",&ch);

if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z')

{

if(ch>='A'&&ch<='Z')ch=ch+32;

elsech=ch-32;

}

elsech=ch;

printf("%c\n",ch);

}

3-5-2大写转化成小写或者小写变大写

#include

voidmain()

{

charch;

printf("请输入一个字符:

");

scanf("%c",&ch);

ch=ch;

{

if(ch>='A'&&ch<='Z')ch=ch+32;

elsech=ch-32;

}

printf("%c\n",ch);

}

3-5-3大写转化成小写或者小写变大写

#include

voidmain()

{

charch;

printf("请输入一个字符:

");

scanf("%c",&ch);

if(ch>='a'&&ch<='z')ch=ch-32;

elseif(ch>='A'&&ch<='Z')ch=ch+32;

elsech=ch;

printf("%c\n",ch);

}

3-6-1正确分段函数

#include

voidmain()

{

intx,y;

printf("请输入x:

");

scanf("%d",&x);

if(x<=1)y=x;

else

{

if(1

elsey=3*x-8;

}

printf("x=%d,y=%d\n",x,y);

}

3-6-2正确分段函数

#include

voidmain()

{

intx,y;

printf("请输入x:

");

scanf("%d",&x);

if(x>=10)y=3*x-8;

elseif(x>1)y=2*x+1;

elsey=x;

printf("x=%d,y=%d\n",x,y);

}

3-6-3正确

#include

voidmain()

{

intx,y;

printf("请输入x:

");

scanf("%d",&x);

if(x<=1)y=x;

else

if(1

else

if(x>=10)y=3*x-8;

printf("x=%d,y=%d\n",x,y);

}

计算器正确

#include

voidmain()

{

floatx,y,z;

charch;

printf("请输入操作数运算符操作数:

");

scanf("%f%c%f",&x,&ch,&y);

switch(ch)

{

case'+':

printf("%f+%f=%f\n",x,y,x+y);break;

case'-':

printf("%f-%f=%f\n",x,y,x-y);break;

case'*':

printf("%f*%f=%f\n",x,y,x*y);break;

case'/':

printf("%f/%f=%f\n",x,y,x/y);break;

default:

printf("输入的运算符错误!

\n");

}

}

7—6正确

#include

voidmain()

{

intx;

printf("请输入一个整数:

");

scanf("%d",&x);

if(x%2==0)x=x;

elsex=x+1;

printf("%d\n",x);

}

实验四的补充试验题

计算由键盘输入的N个数的平均值

#include

voidmain()

{

inti=1,n;

floatx,y,s=0;

printf("请输入要计算的数的个数:

");

scanf("%d",&n);

do

{

scanf("%f",&x);

s=s+x;

i=i+1;

}

while(i<=n);

printf("%f\n",y=s/n);

}

4-6计算s=a+aa+aaa+aaaa+…..的值

#include

voidmain()

{

inta,n,i=1;

longintt=0,s=0;

printf("请输入a和n:

");

scanf("%d%d",&a,&n);

while(i<=n)

{

t=t+a;

s=s+t;

a=a*10;

i++;

}

printf("a+aa+aaa+...=%d\n",s);

}

4-5

#include

voidmain()

{

charc;

intnum1=0,num2=0,num3=0,num4=0;

printf("请输入一行字符:

\n");

while((c=getchar())!

='\n')

{

if(c>='a'&&c<='z'||c>='A'&&c<='Z')num1++;

elseif(c=='')num2++;

elseif(c>='0'&&c<='9')num3++;

elsenum4++;

}

printf("字母:

%d,空格:

%d,数字:

%d,其他:

%d\n",num1,num2,num3,num4);

}

4——7输出由*组成的菱形(最左边有空列)

#include

voidmain()

{

inti,a,b;

for(i=1;i<=3;i++)

{

for(a=4-i;a>0;a--)printf("");

for(b=2*i-1;b>0;b--)printf("*");

printf("\n");

}

for(i=1;i<=2;i++)

{

for(a=i+1;a>=1;a--)printf("");

for(b=5-i*2;b>=1;b--)printf("*");

printf("\n");

}

}

副本输出由*组成的菱形(最左边无空列)

#include

voidmain()

{

inti,a,b;

for(i=1;i<=3;i++)

{

for(a=3-i;a>0;a--)printf("");

for(b=2*i-1;b>0;b--)printf("*");

printf("\n");

}

for(i=1;i<=2;i++)

{

for(a=i;a>=1;a--)printf("");

for(b=5-i*2;b>=1;b--)printf("*");

printf("\n");

}

}

鸡兔同笼

#include

voidmain()

{

inta,b;

for(a=0;a<=35;a++)

for(b=0;b<=24;b++)

{

if(a*2+b*4==94&&a+b==35)

printf("a=%d,b=%d\n",a,b);

}

}

水仙花数1

#include

voidmain()

{

intm,i,j,k,n=0;

for(m=100;m<=999;m++)

{

i=m/100;

j=m/10-i*10;

k=m%10;

if(m==i*i*i+j*j*j+k*k*k)n++,

printf("%d\n",m);

}printf("水仙花数的个数=%d\n",n);

}

水仙花数2

#include

voidmain()

{

inta=0,i,j,k,m,n;

for(i=1;i<=9;i++)

for(j=0;j<=9;j++)

for(k=0;k<=9;k++)

{

m=i*100+j*10+k;

n=i*i*i+j*j*j+k*k*k;

if(m==n)a++,

printf("%d\n",m);

}printf("水仙花数的个数=%d\n",a);

}

三—7—16

#include

voidmain()

{

floats=100,h;

intn;

h=s/2;

for(n=2;n<=10;n++)

{

s=s+2*h;

h=h/2;

}

printf("第十次落地共经过的米数:

%f\n",s);

printf("第十次反弹的高度:

%f\n",h);

}

#include

#include

voidmain()

{

inta;

floatb,x,sum;

a=1;

b=1;

x=1;

sum=0;

while((fabs(x))>1e-7)

{

sum=sum+x;

b=b*2;

x=a/b;

}

sum=sum*100+100;

printf("%f\n",sum);

}

课本习题四第四大题第一小题数组的值逆序输出

#include

voidmain()

{

inti,a[5];

for(i=0;i<5;i++)scanf("%d",&a[i]);

for(i=4;i>=0;i--)printf("%3d",a[i]);

}

实验五的补充题5名学生3门课成绩求各科的平均分

#include

voidmain()

{

inti,j,s,v[3],score[5][3];

for(i=0;i<5;i++)

for(j=0;j<3;j++)

scanf("%d",&score[i][j]);

for(i=0;i<3;i++)

{

s=0;

for(j=0;j<5;j++)s=s+score[j][i];

v[i]=s/5;

}

printf("各科平均成绩为:

");

for(i=0;i<3;i++)printf("%4d",v[i]);

}

矩阵相加

正确

#include

voidmain()

{

inti,j;

inta[3][3],b[3][3],c[3][3];

printf("请输入矩阵a[3][3]:

\n");

for(i=0;i<3;i++)

for(j=0;j<3;j++)

scanf("%d",&a[i][j]);

printf("请输入矩阵b[3][3]:

\n");

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];

printf("矩阵相加结果c[3][3]:

\n");

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

printf("%d",c[i][j]);

printf("\n");

}

}

最高最低温度

正确

#include

voidmain()

{

floatmax,min,a[31];

inti;

printf("请输入31天的温度:

");

for(i=0;i<31;i++)

{

scanf("%f",&a[i]);

}

min=max=a[0];

for(i=0;i<31;i++)

{

if(a[i]>max)max=a[i];

if(a[i]

}

printf("最高温度:

%f,最低温度:

%f",max,min);

}

5-6计算字符串长度

用指向字符串指针变量实现

#include

voidmain()

{

intn=0;

char*c="hello,goodmoring.";

while(*(c+n)!

='\0')

n++;

printf("%d\n",n);

}

#include

#include

voidmain()

{

chara[100];

inti=0;

printf("inputstring\n");

gets(a);

while(a[i]!

='\0')i++;

printf("你输入的字符串的长度为%d\n",i);

}

#include

main()

{

chara[100],*p;

intn;

p=a;

scanf("%s",a);

for(n=0;*(p+n)!

='\0';n++);

printf("%d\n",n);

}

输入一个字符串,将其逆序输出

#include

#include

voidmain()

{

charstr[100];

inti;

gets(str);

i=strlen(str)-1;

for(;i>=0;i--)putchar(str[i]);

printf("\n");

}

判断一个字符串是否回文

#include

#include

voidmain()

{

intx,i;

charstr[100]={0};

gets(str);

x=strlen(str)-1;

for(i=0;i<=x/2;i++)///比到一半就不比了,原理已讲

if(str[i]!

=str[x-i])///这就是比较两端的字符

break;//不是回文

if(i>x/2)///没执行break,就是回文

printf("是回文\n");

elseprintf("不是回文\n");

}

#include

#include

#defineN50

voidmain()

{

inti,x=0;

charst1[N+1];

char*pst1,*pst2;

printf("pleaseinputastring:

\n");

scanf("%s",st1);

pst1=st1;

pst2=st1;

while(*pst1!

='\0')pst1++;

i=0;

pst1--;

while(*pst1==*pst2&&*pst1!

='\0')

{

pst1--;

pst2++;

i++;

}

x=strlen(st1);

if(i==x)printf("yes\n");

elseprintf("no\n");

}

支持多个字符串判断是否回文

#include

#include

voidmain()

{

charstr[20][20];

inti,j,k,n,flag;

printf("请输入多行字符串(end结束)\n");

for(k=0;k<=20;k++)

gets(str[k]);

if(str[k]==end)break;

}

printf("判断结果如下:

\n");

{

flag=1;

n=strlen(str[i]);

for(j=0;j

if(str[i][j]!

=str[i][n-j-1])

{

flag=0;

break;

}

if()

printf("%s回文\n",str[i]);

elseprintf("%s不是回文\n",str[i]);

}

6—4输入三个整数,按由小到大的顺序输出,用指针实现

#include

voidmain()

{

inta,b,c,temp,*pa,*pb,*pc;

pa=&a;pb=&b;pc=&c;

scanf("%d,%d,%d",&a,&b,&c);

if(a>b){temp=*pa;*pa=*pb;*pb=temp;}

if(a>c){temp=*pa;*pa=*pc;*pc=temp;}

if(b>c){temp=*pb;*pb=*pc;*pc=temp;}

printf("%d,%d,%d\n",a,b,c);

}

补充2在一组指定数据中删除指定数据

#include

voidmain()

{

char*p="1234555656789",a[100],x;

inti=0;

x='5';

for(;*p!

='\0';p++)

if(*p!

=x)a[i++]=*p;

a[i]='\0';

printf("新的数据是:

%s\n",a);

}

6---5

从键盘输入两个字符串,将其连接起来。

#include

voidmain()

{

chars1[20],s2[10],*pt1=s1,*pt2=s2;

printf("请输入字符串1:

\n");

scanf("%s",s1);

printf("请输入字符串2:

\n");

scanf("%s",s2);

while(*pt1++!

='\0');

*pt1--;

while(*pt1++=*pt2++)

*pt1='\0';

printf("连接后的字符串:

\n");

printf("%s\n",s1);

}

统计字符串1在字符串2中出现的次数

#include

#include

main()

{

chara[100],s[100];

inti,j,flag,sum=0;

printf("请输入主字符串\n");

gets(a);

printf("请输入子字符串\n");

gets(s);

for(i=0;i

{

flag=0;

for(j=0;j

{

if(s[j]==a[i+j])

flag++;

}

if(flag==strlen(s))

sum++;

}

printf("出现的次数:

%d\n",sum);

}

strlen(a)是主串长度,从主串第一个字符开始与子串比较,flag每次进入循环先赋值为0,主串与子串每相同一个字符,flag加1,当退出第二个for循环时若flag等于子串长度,也就是子串在主串中出现1次,num加1

7---4

#include

#defineN2

structstudent

{intnum;

charname[10];

charsex;

union

{charvis;

floathw[2];

}sta;

};

voidmain()

{

structstudentstu[N];

inti;

for(i=0;i

{

printf("请输入第%d个学生信息:

\n",i+1);

scanf("%d",&stu[i].num),getchar();

scanf("%s",stu[i].name),getchar();

scanf("%c",&stu[i].sex),getchar();

if(stu[i].sex=='m')scanf("%c",&stu[i].sta.vis);

else

scanf("%f%f",&stu[i].sta.hw[0],&stu[i].sta.hw[1]);

}

for(i=0;i

if(stu[i].sex=='m')

printf("%d\t%s\t%c\t%c\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].sta.vis);

else

printf("%d\t%s\t%c\t%.2f/%.2f\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].sta.hw[0],stu[i].sta.hw[1]);

}

统计候选人得票数。

设有3个候选人,每次输入一个候选人名,最后输出每个候选人的得票数。

#include

#include

structperson

{charname[20];

intcount;

}leader[3]={"Li",0,"Zhang",0,"Fun",0};

voidmain()

{inti,j;

charleader_name[20];

for(i=1;i<10;i++)

{scanf("%s",leader_name);

for(j=0;j<3;j++)

if(strcmp(leader_name,leader[j].name)==0)

leader[j].count++;

}

printf("\n");

for(j=0;j<3;j++)

printf("%5s:

%d\n",leader[j].name,leader[j].count);

}

有30名学生参加数学、英语、计算机考试,计算每个学生的三门课程的总分、平均分。

若三门课程成绩均在90分以上者,输出“Y”;否则,输出“N”;并输出学生成绩单,格式如下:

NumNamMatEngComSumAve>=90

1Haoli90929527792Y

6Yansu85958126197N

#include

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 自然景观

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1