C语言作业题整理Word下载.docx
- 文档编号:6444971
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:41
- 大小:25.26KB
C语言作业题整理Word下载.docx
《C语言作业题整理Word下载.docx》由会员分享,可在线阅读,更多相关《C语言作业题整理Word下载.docx(41页珍藏版)》请在冰点文库上搜索。
”如果输入的整数不正确,则输出“wronginput”
inta,b1,b2;
请输入一个两位正整数:
%d"
a);
if(a<
10||a>
=100)
输入不符合要求"
else
b1=a%10;
b2=a/10;
十位数是:
%c\n个位数是:
%c\n"
b2+'
0'
b1+'
1.4.给定方程ax^2+bx+c=0,试编写程序根据键盘输入实数a、b、c,能输出其根,要求:
如果该方程有两个不同的根,则输出形式为"
theAnswerofax^2+bx+c=0isx1=根1,x2=根2"
如果该方程有两个相同的根,则输出形式为"
theAnswerofax^2+bx+c=0isx1=X2=根"
如果该方程无解,则输出形式为"
theAnswerofax^2+bx+c=0isnone"
,其中a、b、c均为键盘输入,输出结果保留两位小数。
math.h"
main(){
floata,b,c,disc,x1,x2;
%f,%f,%f"
a,&
b,&
c);
disc=b*b-4*a*c;
if(disc==0){
x1=x2=-b/(2*a);
theAnswerofax^2+bx+cisx1=x2=%.2f\n"
x1);
elseif(disc>
0){
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
theAnswerofax^2+bx+cisx1=%.2f,x2=%.2f\n"
x1,x2);
else{printf("
theAnswerofax^2+bx+c=0isnone\n"
2.第二次
2.1.求1/3+3/5+5/7+…前20项之和。
(本题要求分别以goto,for,do...while,while四种循环语句实现)
#include<
stdio.h>
intmain()
inti;
floats=0;
for(i=1;
i<
=20;
i++){
s+=(float)(2*i-1)/(2*i+1);
s=%f\n"
s);
return0;
intp,r,n,m;
n,m:
%d,%d"
n,&
m);
if(p=n*m)
while(m!
=0)
{r=n%m;
n=m;
m=r;
最大公约数是%d\n"
n);
最小公倍数是%d\n"
p/n);
return0;
#include<
voidmain()
ints,i,j;
inta;
请输入一个数:
=a;
i++)
{
s=0;
for(j=1;
j<
i;
j++)
{
if(i%j==0)s=s+j;
}
if(i==s)
printf("
完全数%d="
i);
for(j=1;
if(i%j==0)
printf("
%d+"
j);
printf("
\b\n"
2.2.输入两个正整数,求其最小公倍数。
intmain()
intn;
请输入你的学号:
n);
if(n%2==0)
inti,j,k=3,s=1;
for(i=1;
8;
for(j=0;
k;
j++)printf("
"
s;
*"
if(i<
4)
{k--;
s=s+2;
else
{k++;
s=s-2;
else
intm,a,b;
请输入任意一个正整数:
scanf("
for(a=1;
a<
=m;
a++)
{for(b=1;
b<
b++)
*"
}
2.3.如果一个正整数的所有因子之和等于该正整数,则称这个正整数为完全数。
编写程序读入n,输出不超过n的全部完全数。
如6=1+2+3
28=1+2+4+7+14
2.4.将学号对2取模(即取余),值为0的同学完成编写程序利用星号打印出菱形图案;
否则完成编写程序利用星号打印出正方形图案。
3.第三次
3.1.已知y=2x^3-3x^4+6x^5-4x+50,从x=0到x=2,每隔0.2计算,并输入正整数n,将y的值进行排序后由小到大输出前n项和后n项(如输入5,则输出前5项和后5项,即最小的5个y值及最大的5个y值)。
inti,j,k,h,l,n;
floatx,t,y[11];
i=0;
for(x=0;
x<
2.1;
x=x+0.2)
y[i]=2*x*x*x-3*x*x*x*x+6*x*x*x*x*x-4*x+50;
i=i+1;
请输入一个1--11以内正整数\n"
if(0<
n&
&
n<
12)
for(l=0;
l<
n-1;
l++)
n-l;
{if(y[j-1]>
y[j])
{t=y[j-1];
y[j-1]=y[j];
y[j]=t;
最小的%d个y值是\n\n"
for(k=0;
k<
n;
k++)
%f\n\n"
y[k]);
最大的%d个y值是\n\n"
for(h=11-n;
h<
11;
h++)
y[h]);
elseprintf("
您输入的数字超出规定范围\n"
3.2.输入一个班10个学生的成绩,统计各分数段[0,60),[60,70),[70,80),[80,90),[90-100]的人数。
inti,a=0,b=0,c=0,d=0,e=0;
floatg[10];
请输入10个学生的成绩,输入完成请按回车键\n"
for(i=0;
10;
scanf("
g[i]);
if(0<
=g[i]&
g[i]<
60)a++;
elseif(60<
70)b++;
elseif(70<
80)c++;
elseif(80<
90)d++;
elseif(90<
=100)e++;
elseprintf("
输入的成绩有问题\n"
0-60分人数为%d\n"
a);
60-70分人数为%d\n"
b);
70-80分人数为%d\n"
c);
80-90分人数为%d\n"
d);
90-100分人数为%d\n"
e);
3.3.求任意输入的5个数中的最大值、最小值和平均值,并求出有多少个数超过平均值。
inti,j,k,l,num=0;
floatave,t,g[5];
请输入5个数,输入完成请按回车键\n"
for(i=0;
5;
for(j=0;
for(k=1;
if(g[k-1]>
g[k])
{t=g[k-1];
g[k-1]=g[k];
g[k]=t;
ave=(g[0]+g[1]+g[2]+g[3]+g[4])/5.0;
for(l=0;
{if(g[l]>
ave)num++;
5个数中最大值是%f\n"
g[4]);
5个数中最小值是%f\n"
g[0]);
5个数的平均值是%f\n"
ave);
有%d个数超过平均值\n"
num);
4.第四次
4.1.一个学习小组有5个人,每个人有三门课的考试成绩。
求小组分科的平均成绩和各同学平均成绩;
同时将各位同学的平均成绩按照从高到低的顺序排名后输出其姓名、平均成绩以及排序号。
张
王
李
赵
周
ath
80
61
59
85
76
C
75
65
63
87
77
Eng
92
71
70
90
85
string.h"
charnames[5][5]={{"
张"
},{"
王"
李"
赵"
周"
}};
charitems[3][5];
charname[5];
intgrade[5][3]={{80,75,92},{61,65,71},{59,63,70},{85,87,90},{76,77,85}};
floatavg1[3],avg2[5],temp;
inti,j;
intsum;
strcpy(names[0],"
strcpy(names[1],"
strcpy(names[2],"
strcpy(names[3],"
strcpy(names[4],"
/*for(i=0;
gets(names[i]);
*/
strcpy(items[0],"
Math"
strcpy(items[1],"
C"
strcpy(items[2],"
Eng"
/**/
----以下为分科的平均成绩----\n"
3;
i++){//分科的平均成绩
sum=0;
for(j=0;
sum+=grade[j][i];
avg1[i]=(float)sum/5;
%s的平均成绩为:
items[i],avg1[i]);
\n\n"
----以下为各同学平均成绩----\n"
i++){//各同学平均成绩
sum+=grade[i][j];
avg2[i]=(float)sum/3;
names[i],avg2[i]);
4;
i++){//各同学平均成绩排序
for(j=i+1;
j++){
if(avg2[i]<
avg2[j]){
temp=avg2[i];
avg2[i]=avg2[j];
avg2[j]=temp;
strcpy(name,names[i]);
strcpy(names[i],names[j]);
strcpy(names[j],name);
----以下为各位同学平均成绩从高到低的排名----\n"
%s"
"
序号"
姓名"
%s\n"
平均成绩"
%d"
i+1);
%s"
names[i]);
avg2[i]);
4.2.用所学过的知识,编写一个竞赛评分程序。
(设有3位选手,5位评委)。
输入包括选手的姓名以及5位评委的分数(为0-100的正整数),评分规则为每位选手的成绩为去掉最高分和最低分后再取平均。
要求用二维数组来设计程序。
输出的格式为排序姓名平均分最高分最低分,要求由高到低对平均分排序,平均分保留2位小数。
如下所示:
Noname
avg
max
min
1
c
82.33
99
66
2
b
80.12
70
3
a
80.11
98
60
charname[3][10];
inti,j,max[3],min[3];
intgrade[3][5];
intsum[3];
floatavg[3],float_temp;
charstr_temp[10];
intint_temp;
intflag=1;
pleaseinputinformationofthe3players:
%s%d%d%d%d%d"
name[i],&
grade[i][0],&
grade[i][1],&
grade[i][2],&
grade[i][3],&
grade[i][4]);
if(grade[i][j]>
100||grade[i][j]<
error!
flag=0;
if(flag){
max[i]=grade[i][0];
min[i]=grade[i][0];
if(max[i]<
grade[i][j])
max[i]=grade[i][j];
if(min[i]>
min[i]=grade[i][j];
sum[i]=0;
sum[i]+=grade[i][j];
sum[i]-=(max[i]+min[i]);
avg[i]=sum[i]/3.0;
2;
for(j=i+1;
if(avg[i]<
avg[j]){
float_temp=avg[i];
avg[i]=avg[j];
avg[j]=float_temp;
strcpy(str_temp,name[i]);
strcpy(name[i],name[j]);
strcpy(name[j],str_temp);
int_temp=max[i];
max[i]=max[j];
max[j]=int_temp;
int_temp=min[i];
min[i]=min[j];
min[j]=int_temp;
}
%8s%8s%8s%8s%8s\n"
排序"
平均分"
最高分"
最低分"
%8d"
%8s"
name[i]);
%8.2f"
avg[i]);
max[i]);
%8d\n"
min[i]);
4.3.学号对2取余,为0的完成A题,为1的完成B题
A:
从键盘上输入一个字符串(不能长于30),要求按照字符'
'
分隔将其拆分成数组,并按照字符'
出现的顺序倒序输出每个数组的第一个元素。
示例如输入字符串"
able,deal,123,face,1e"
则每个数组的第一个元素分别为'
d'
1'
f'
倒序则输出字符串"
1f1da"
inti,k,p,j=0;
charstr1[30];
charitems[10][30];
intcount=0;
inputastring:
gets(str1);
/*i=0;
while(str1[i]!
='
\0'
){
if(str1[i]=='
)
count++;
i++;
}*/
k=0;
p=0;
strlen(str1);
if(str1[j]!
items[k][p]=str1[j];
p++;
else{
items[k][p]='
;
k++;
p=0;
items[k][p]='
for(i=count;
i>
=0;
i--)
items[i][0]);
B:
从键盘上输入两个字符串(长度不大于20)和整数n(0<
=20),要求将第二个字符串插在第一个字符串的n位置开始处并输出。
示例如第一个字符串为"
you
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 作业题 整理