c语言课后习题代码.docx
- 文档编号:23147578
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:13
- 大小:17.65KB
c语言课后习题代码.docx
《c语言课后习题代码.docx》由会员分享,可在线阅读,更多相关《c语言课后习题代码.docx(13页珍藏版)》请在冰豆网上搜索。
c语言课后习题代码
1.编程实现:
输入一个字母,若为小写,则把它变成大写输出。
代码如下:
#include<>
main()
{
charc;
printf("Pleaseinputacharacter:
");
scanf("%c",&c);
if(c>='a'&&c<='z')
printf("Theresultis:
%c\n",c-32);
}
2.由键盘输入3个数a、b、c,编程输出其中最小的数。
代码如下:
#include<>
main()
{
inta,b,c,t;
printf("Pleaseinputthreenumbers:
");
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;
}
printf("Theminimumis:
%d\n",a);
}
3.由键盘输入三个数a、b、c,用条件运算符求出最大值和最小值。
代码如下:
#include<>
main()
{
inta,b,c,min,max;
printf("Pleaseinputthreenumbers:
");
scanf("%d%d%d",&a,&b,&c);
max=min=a;f米,第4次反弹的高度为:
%.3f米\n",sum,h1);
}
第六章
1.求二维数组中全部元素的和。
假定二维数组为a[2][3]={1,2,3,4,5,6}
代码如下:
#include<>
main()
{
inta[2][3]={1,2,3,4,5,6},i,j,sum=0;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
sum+=a[i][j];
printf("Thesumis:
%d\n",sum);
}
2.有三个字符串,要求按照字母的顺序输出。
假定为:
America,China,India;
代码如下:
#include<>
main()
{
chara[]="China",b[]="America",c[]="India",t[]={"\0"};
inti,j;
if(strcmp(a,b)>0){strcpy(t,a);strcpy(a,b);strcpy(b,t);}
if(strcmp(a,c)>0){strcpy(t,a);strcpy(a,c);strcpy(c,t);}
if(strcmp(b,c)>0){strcpy(t,b);strcpy(b,c);strcpy(c,t);}
puts(a);puts(b);puts(c);
}
3.求一个3*4矩阵的所有靠外侧的元素值之和。
矩阵如下:
1
2
3
4
5
6
7
8
9
10
11
12
代码如下:
#include<>
main()
{
inta[4][3],i,j,m=1,sum=0;
for(i=0;i<4;i++)
for(j=0;j<3;j++,m++)
a[i][j]=m;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
{
if(i==0||i==3)
sum+=a[i][j];
else
if(j==0||j==2)
sum+=a[i][j];
}
printf("Thesumis:
%d\n",sum);
}
4.将一个数组中的值按逆序重新存放,例如原来的顺序为:
8,6,5,4,1。
要求改为:
1,4,5,6,8。
代码如下:
#include<>
intmain()
{
inta[]={8,6,5,4,1},i,j,t;
for(i=0;i<=2;i++)
{
t=a[i];
a[i]=a[4-i];
a[4-i]=t;
}
for(i=0;i<5;i++)
printf("%d",a[i]);
printf("\n");
}
5.已有一个排序好的数组,输入一个数,要求按原来的顺序将它插入数组中。
假定排序好的数组为:
a[]={1,8,11,14,16,17,21}
代码如下:
#include<>
intmain()
{
inta[]={1,8,11,14,16,17,21},i,j,t,b[8];
printf("Pleaseinputanumber:
");
scanf("%d",&t);
for(i=0;i<7;i++)
{
if(a[i]>t)
{
j=i;
break;
}
}
for(i=0;i<8;i++)
{
if(i elseif(i==j)b[i]=t; elseb[i]=a[i-1]; } for(i=0;i<8;i++) printf("%d",b[i]); printf("\n"); } 6.求一维数组各元素的平均值。 假定数组为: a[]={1,2,3,4,5,6} 代码如下: #include<> main() { inta[6],i,sum=0; for(i=0;i<6;i++) a[i]=i+1; for(i=0;i<6;i++) sum+=a[i]; printf("Thesumis: %d\n",sum); } 7.编写一个程序,将两个字符串连接起来,不要用strcat函数。 代码如下: #include<> intmain() { chara[]="China",b[]="stronger! "; charc[sizeof(a)+sizeof(b)]; inti,j; for(i=0;a[i]! =0;i++) c[i]=a[i]; for(j=0;b[j]! =0;j++) c[i+j]=b[j]; c[i+j]=0; printf("连接后的字符串为: %s\n",c); } 第七章 1.编写一个函数,使输入的一个字符串反序存放,在主函数中输入和输出字符串。 代码如下: #include<> #include<> voidsort(char[]); intmain() { chara[101]; printf("请输入一个字符串(100个字符以内): "); scanf("%s",a); sort(a); printf("%s\n",a); } n",result[0],result[1],result[2]); } int*kind(char**s,int*result) { intdigit=0,ch1=0,ch2=0,space=0,i,j; for(i=0;i<5;i++) { for(j=0;s[i][j]! =0;j++) { if(s[i][j]>='a'&&s[i][j]<='z') ch1++; elseif(s[i][j]>='A'&&s[i][j]<='Z') ch2++; elseif(s[i][j]>='0'&&s[i][j]<='9') digit++; elsespace++; } } result[0]=digit; result[1]=ch1; result[2]=ch2; returnresult; } 1.用指针编写求字符串长度的函数。 函数代码如下: intslength(char*s) { inti,j=0; for(i=0;s[i]! =0;i++) j++; returnj; } 2.编写函数,对传送过来的3个数选出最大数和最小数,并通过形参返回调用函数。 函数代码如下: #include<> intmain() { voidcompare(int,int,int,int&,int&); inta,b,c,max,min; scanf("%d%d%d",&a,&b,&c); max=min=a; compare(a,b,c,max,min); printf("最大值: %d,最小值: %d.\n",max,min); } voidcompare(inta,intb,intc,int&x,int&y) { x=x>c? (x>b? x: b): c; y=y (y y: b): c; } 3.编写程序,将字符串中的第m个字符开始的全部字符复制成另一个字符串。 要求在主函数中输入字符串及m的值并输出复制结果,在被调用函数中完成复制。 代码如下: #include<> intmain() { char*copy(char*,int); chars[101]; char*r; intm; printf("请输入字符串: "); scanf("%s",&s); printf("请输入复制的起始位置: "); scanf("%d",&m); r=copy(s,m); printf("复制后的函数为: %s",r); } char*copy(char*str,intsite) { inti; char*p; p=&str[site-1]; returnp; } 第十章 1.定义一个结构体类型,成员包括职工号、姓名、性别、年龄、工资和地址。 定义结构体指针和数组,数组含4个元素,用初始化方式赋值并输出。 代码如下: #include<> intmain() { structworker { charnumber[5];umber,p[i].name,p[i].sex,p[i].age,p[i].pay,p[i].address); } 2.存储一个班学生姓名,然后输入一个学生的姓名,查找该人是否为该班的学生。 代码如下: #include<> #include<> intmain() { structstudent { charname[20]; }; structstudent*p,stu[5]={"Zhouchang","Zhanglong","Zhaoqing","Huwei","Liujian"}; charn[20]="Zhaoqing"; inti; p=stu; printf("请输入姓名以查找: "); gets(n); for(i=0;i<5;i++) { if(strcmp(p++->name,n)==0) { printf("是该班级学生。 \n"); break; } elseif(i==4) printf("不是该班级学生。 \n"); } } 3.读入班级学生人数,每名学生学号和4门功课成绩,计算全班每名学生4门功课的平均成绩。 代码如下: #include<> #include<> #definelensizeof(structstudent) intmain() { typedefstructstudent { charname[20]; charnumber[10];f\t\t\n",stu->number,stu->name,stu->aver); printf("\n"); free(head);umber); printf("请输入第%d个学生姓名(19字符以内): ",i+1); scanf("%s",s[i].name); printf("请输入第%d个学生成绩: ",i+1); scanf("%f",&s[i].grades); } max=0; for(i=0;i<4;i++) { if(max max=s[i].grades; } printf("拥有最高分的学生信息如下: \n"); printf("学号\t\t姓名\t\t成绩\n"); for(i=0;i<4;i++) { if(max==s[i].grades) printf("%s\t\t%s\t\t%f\n",s[i].number,s[i].name,s[i].grades); } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课后 习题 代码