函数+数组+指针+结构体答案.docx
《函数+数组+指针+结构体答案.docx》由会员分享,可在线阅读,更多相关《函数+数组+指针+结构体答案.docx(18页珍藏版)》请在冰豆网上搜索。
![函数+数组+指针+结构体答案.docx](https://file1.bdocx.com/fileroot1/2022-11/16/9d6b9f57-bc76-4ccd-8fdd-72eea3cf1aad/9d6b9f57-bc76-4ccd-8fdd-72eea3cf1aad1.gif)
函数+数组+指针+结构体答案
控制结构程序设计
1.求数列2/1,3/2,5/3,8/5,13/8,21/13……的前20项的和。
#include
main()
{doubles=0.0,a,b,c;
inti;
a=2,b=1;
for(i=1;i<=20;i++)
{s=s+a/b;
c=a+b;
b=a;
a=c;
}
printf("Thesumis%e\n",s);//e为用科学计算法进行输出
}
2.简单的计算器:
用switch语句编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式:
操作数1运算符op操作数2
计算表达式的值,指定的算术运算符为加(+)、减(-)、乘(*)、除(/)。
可以连续做多次算术运算,每次运算结束后,程序都给出提示:
Doyouwanttocontinue(Y/Nory/n)?
用户输入Y或y时,程序继续进行其他算术运算;否则程序退出运行状态。
#include
main()
{doublea,b,c;
charch,p;
do{
printf("请输入要计算的表达式:
");
scanf("%lf%c%lf",&a,&ch,&b);
getchar();
switch(ch)
{case'+':
c=a+b;break;
case'-':
c=a-b;break;
case'*':
c=a*b;break;
case'/':
c=a/b;break;
default:
printf("表达式不正确");}
printf("\n%.2f%c%.2f=%.2f\n",a,ch,b,c);
printf("Doyouwanttocontinue(Y/Nory/n):
");
p=getchar();
}while(p=='Y'||p=='y');
}
3.给小学生出加法考试题:
编写一个程序,通过输入两个加数给学生出一道加法运算题,然后判断学生输入的答案对错与否,如果输入答案正确,则显示“Right!
”,否则提示重做,显示“Notcorrect!
Tryagain!
”,最多给三次机会,如果三次仍未做对,则显示“Notcorrect!
Youhavetriedthreetimes!
Testover!
”,程序结束。
#include
main()
{doublea,b,c;
inti=0;
printf("请输入要计算的数:
");
scanf("%lf%lf",&a,&b);
for(i=1;i<=3;i++)
{printf("请输入计算的答案:
");
scanf("%lf",&c);
if(c==(a+b))
{printf("right\n");
break;}
else
if(i==3)
printf("Notcorrect!
Youhavetriedthreetimes!
Testover\n");
else
printf("Notcorrect!
Tryagain!
\n");
}
}
4.身高预测:
每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后的身高的因素包括遗传、饮食习惯与体育锻炼等。
小孩成人后的身高与其父母的身高和自身的性别密切相关。
设faHeight为其父身高,moHeight为其母身高,身高预测公式为
男性成人时身高=(faHeight+moHeight)×0.54cm
女性成人时身高=(faHeight×0.923+moHeight)/2cm
此外,如果喜爱体育锻炼,那么可增加身高2%;如果有良好的卫生饮食习惯,那么可增加身高1.5%。
编程从键盘输入用户的性别(用字符型变量sex存储,输入字符F表示女性,输入字符M表示男性)、父母身高(用实型变量存储,faHeight为其父身高,moHeight为其母身高)、是否喜爱体育锻炼(用字符型变量sports存储,输入字符Y表示喜爱,输入字符N表示不喜爱)、是否有良好的饮食习惯等条件(用字符型变量diet存储,输入字符Y表示良好,输入字符N表示不好)。
(1)定义函数能利用给定公式和身高预测方法对身高进行预测。
(2)编写主函数调用该函数对身高进行预测。
输入输出示例:
Areyouaboy(M)oragirl(F)?
F
Pleaseinputyourfather'sheight(cm):
1.78
Pleaseinputyourmother'sheight(cm):
1.65
Doyoulikesports(Y/N)?
Y
Doyouhaveagoodhabitofdiet(Y/N)?
Y
Yourfutureheightwillbe1.70(cm)
#include
main()
{charsex,sp,di;
floatfsg,msg,sg;
printf("\nAreyouaboy(M)oragirl(F)?
");
scanf("%c",&sex);
getchar();
printf("Pleaseinputyourfather'sheight(CM):
");
scanf("%f",&fsg);
getchar();
printf("Pleaseinputyourmother'sheight(CM):
");
scanf("%f",&msg);
getchar();
printf("Doyoulikesports(Y/N):
");
scanf("%c",&sp);
getchar();
printf("Doyouhaveagoodhabitofdiet(Y/N):
");
scanf("%c",&di);
if(sex=='M'||sex=='m')
sg=(fsg+msg)*0.54;
elsesg=(fsg*0.923+msg)/2;
if(sp=='Y'||sp=='y')
sg=sg*1.02;
if(di=='Y'||di=='y')
sg=sg*1.015;
printf("Youfutureheightwillbe%.2f.\n",sg);
}
数组
1.请输入以下程序,并运行,写出程序运行的结果。
程序功能为:
输入一个正整数n(0源程序
#include
intmain()
{inti,j,n,x,a[10];
printf(“输入数据的个数n:
”);
scanf(“%d”,&n);
printf(“shuru%d个整数 :
»,n) ;
for(i=0 ;iscanf(“%d”,&a[i]) ;
printf(“输入要插入的整数:
”);
scanf(“ %d ”,&x) ;
for(i=0 ;iif(x>a[i])continue;
j=n-1;
while(j>=i){
a[j]=a[j+1];
j--;
}
a[i]=x;
break;
}
if(i==n)a[n]=x;
for(i=0;iprintf(“%d”,a[i]);
putchar(‘\n’);
return0;
}
输入数据的个数n:
5
输入5个整数:
12457
输入要插入的整数:
3
程序的结果为:
123457
程序提示:
先找到插入点,从插入点开始,所有的数据顺序后移,然后插入数据;如果插入点在最后,则直接插入(说明插入的数排在该组数据中的最后)。
2.输入一个正整数n(1输入输出示例:
Inputn:
4
Input4integer:
10812
Afterreversed:
21810
#include
main()
{intn,i,j;
inta[10];
printf("Inputn(1");
scanf("%d",&n);
printf("Input%dinteger:
",n);
for(i=0;iscanf("%d",&a[i]);
printf("Afterreversed:
");
for(i=n-1;i>=0;i--)
printf("%d",a[i]);
printf("\n");
return0;
}
3.输入一个正整数n(1输入输出示例:
Inputn:
5
Input5integers:
12540
max=5,index=2(说明:
最大值5的下标是2)
#include
main()
{intn,i,max,index;
inta[10];
printf("Inputn(1");
scanf("%d",&n);
printf("Input%dinteger:
",n);
for(i=0;iscanf("%d",&a[i]);
max=a[0];index=0;
for(i=1;iif(a[i]>max){max=a[i];index=i;}
printf("max=%d,index=%d",max,index);
return0;
}
4.输入一个正整数n(1输入输出示例:
Inputn:
4
Input4integers:
5176
Aftersorted:
7651
#include
main()
{intn,i,j,temp,t;
inta[10];
printf("Inputn:
(1");
scanf("%d",&n);
printf("Input%dintegers:
",n);
for(i=0;iscanf("%d",&a[i]);
for(j=0;j{t=j;
for(i=j+1;iif(a[i]temp=a[t];
a[t]=a[j];
a[j]=temp;}
printf("Aftersorted:
");
for(i=0;iprintf("%2d",a[i]);
printf("\n");
return0;
}
5.设有下列矩阵:
A=
编写程序,用二维数组存储矩阵元素,从键盘输入数据,将矩阵转置后按行输出。
#include
main()
{inti,j;
inta[4][4],b[4][4];
printf("\n请输入4阶方阵的数据:
");
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{printf("a[%d][%d]=",i,j);
scanf("%d",&a[i][j]);