C语言课后作业答案.docx
- 文档编号:27549794
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:37
- 大小:21.86KB
C语言课后作业答案.docx
《C语言课后作业答案.docx》由会员分享,可在线阅读,更多相关《C语言课后作业答案.docx(37页珍藏版)》请在冰豆网上搜索。
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文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课后 作业 答案