太原理工大学13级c语言实验指导书参考题答案.docx
- 文档编号:14233147
- 上传时间:2023-06-21
- 格式:DOCX
- 页数:56
- 大小:25.61KB
太原理工大学13级c语言实验指导书参考题答案.docx
《太原理工大学13级c语言实验指导书参考题答案.docx》由会员分享,可在线阅读,更多相关《太原理工大学13级c语言实验指导书参考题答案.docx(56页珍藏版)》请在冰点文库上搜索。
太原理工大学13级c语言实验指导书参考题答案
太原理工大学13级c语言实验指导书参考答案
实验一顺序
1-3.温度*/编写程序,输入华氏温度(F),按下列公式计算并输出对应的摄氏温度(C)。
C=5/9(F–32)
#include
voidmain()
{
floatc,f;
scanf("%f",&f);
c=5.0/9.0*(f-32);
printf("%5.2f\n",c);
}
/*1-4.三角形面积*/编写程序,从键盘输入一个三角形的三条边长a、b、c(要求任何两条边的边长之和均大于第三条边的边长),求该三角形的面积。
求三角形的面积公式是:
其中:
#include"stdio.h"
#include"math.h"
voidmain()
{
floata,b,c,s,area;
scanf("%f,%f,%f",&a,&b,&c);
s=1.0/2.0*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("area=%f\n",area);
}
/*1-5两数合并*/编写程序,将两个两位数的正整数a、b合并形成一个整数放在c中。
合并的方式是:
将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的个位和百位上。
例如,当a=45,b=12,运行结果为:
c=5241。
#include
voidmain()
{
inta,b,c;
printf("Inputa,b:
");
scanf("%d,%d",&a,&b);
c=(b/10*1);
c+=(a/10*10);
c+=(b%10*100);
c+=(a%10*1000);
printf("Theresultis:
%d\n",c);
}
实验二选择
必做题
2.1编一程序,使用单分支的if语句形式,求a,b,c三个整数的中间值。
例如:
a、b、c的值分别为3、4、5,则输出4。
#include
voidmain()
{
inta,b,c,t;
printf("Inputa,b,c:
");
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;}
if(b>c){t=b;b=c;c=t;}
printf("中间数=%d\n",b);
}
2.2有一函数
x (x<1)
y= 2x–1 (1≤x<10)
3x–11 (x≥10)
用 scanf函数输入x的值(分别取x<1、1~10、≥10三种情况),求y值。
#include
voidmain()
{
intx,y;
printf("Inputx:
");
scanf("%d",&x);
if(x<1)y=x;
elseif(x<10)y=2*x-1;
elsey=3*x-11;
printf("x=%d,y=%d\n",x,y);
}
2.3编写程序,输入一位学生的生日(年:
y0、月:
m0、日:
d0)数据,再输入当前的日期(年:
y1、月:
m1、日:
d1)数据,计算并输出该学生的实足年龄。
#include
voidmain()
{
inty0,m0,d0,y1,m1,d1,nl;
printf("Input生日(年,月,日):
");
scanf("%d,%d,%d",&y0,&m0,&d0);
printf("Input当前日期(年,月,日):
");
scanf("%d,%d,%d",&y1,&m1,&d1);
if(m1>m0||m1==m0&&d1>=d0)nl=y1-y0;
elsenl=y1-y0-1;
printf("年龄=%d\n",nl);
}
2.4编写程序,定义四个字符变量c1,c2,c3和c4,分别用getchar()函数任意输入四个字母,分别输出其中的最大值和最小值。
#include
voidmain()
{
charc1,c2,c3,c4,max,min;
printf("Input四个字符:
");
c1=getchar();c2=getchar();c3=getchar();c4=getchar();
max=min=c1;
if(c2>max)max=c2;
if(c3>max)max=c3;
if(c4>max)max=c4;
min=c2 c2: min; min=c3 c3: min; min=c4 c4: min; printf("max=%c,min=%c\n",max,min); } 2.5设整型变量a的值为正数,请将以下C源程序中的if语句形式改写成switch语句形式。 #include main() { inta; printf(”a=”); scanf(”%d”,&a); if(a<30) m=1; elseif(a<40)m=2; elseif(a<50)m=3; elseif(a<60)m=4; elsem=6; printf(”m=%d\n”,m); } #include voidmain() { inta,t,m; printf("Inputa="); scanf("%d",&a); if(a>0) {t=a/10; switch(t) {case0: case1: case2: m=1;break; case3: m=2;break; case4: m=3;break; case5: m=4;break; default: m=6;} printf("m=%d\n",m); } else printf("a为非正数\n"); } 实验三 循环 必做题 3.1编写程序,计算并输出正整数n的所有因子(1和n除外)之和。 #include voidmain() { intn,i,s=0,m=0; printf("Inputn: "); scanf("%d",&n); for(i=2;i {if(n%i==0) {printf("%5d",i);s+=i;m++;} if(m%10==0)printf("\n");} printf("\ns=%d\n",s); } 3.2编写程序,利用以下所示的简单迭代方法求方程: cos(x)-x=0的一个实根。 迭代步骤如下: (1)取x1初值为0.0; (2)x0=x1,把x1的值赋给x0; (3)x1=cos(x0),求出一个新的x1; (4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2); (5)所求x1就是方程cos(x)-x=0的一个实根。 #include #include voidmain() { doublex0,x1=0.0; do {x0=x1; x1=cos(x0); } while(fabs(x1-x0)>=1e-6); printf("\nx1=%.2f\n",x1); } 3.3编写程序,输入一行字符,分别统计出其中的大写字母、小写字母、空格和数字的个数。 提示: 用以下循环格式处理输入的一行字符。 while((c=getchar())! =’\n’) /*若输入的c不是回车符时继续*/ 循环体 或者: c=getchar(); while(c! =’\n’) /*若c不是回车符时继续*/ { 循环体 c=getchar(); } #include #include voidmain() { charc; intn1,n2,n3,n4; n1=n2=n3=n4=0; printf("请输入一行字符,以换行结束: "); while((c=getchar())! ='\n') if(isupper(c))n1++; elseif(islower(c))n2++; elseif(isdigit(c))n3++; elseif(c=='')n4++; printf("\n大写=: %d,小写: %d,数字: %d,空格: %d,\n",n1,n2,n3,n4); } 3.4编写程序,在屏幕上输出杨辉三角形。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 1 … … … … … #include"stdio.h" #defineN20 voidmain() {inti,j,array[N][N]={0},n; printf("请输入n行: \n"); scanf("%d",&n); for(i=0;i {array[i][0]=1;array[i][i]=1;} for(i=2;i for(j=1;j array[i][j]=array[i-1][j-1]+array[i-1][j]; printf("杨辉三角形: \n"); for(i=0;i {for(j=0;j<=i;j++) printf("%4d",array[i][j]); printf("\n");} printf("\n"); } 选做题 3.1 #include #include voidmain() { floatx,,t,sum=1.0,i=1.0,m=1.0; ints=1; printf("请输入x: "); scanf("%f",&x); t=x; while(fabs(t)>1e-6) {sum+=t; s=-s; i++; m*=i; t=s*1.0*pow(x,i)/m; } printf("\nx=%f,f(x)=%f\n",x,sum); } 3.2 #include #include main() { inti,m,n,k=0,j; doubles; printf("请输入正整数m,n(m "); scanf("%d,%d",&m,&n); for(i=m+1;i {s=sqrt(i); for(j=2;j<=s;j++) if(i%j==0)break; if(j>s){printf("%6d",i);k++;} if(k%8==0)printf("\n"); } printf("\n"); } 3.3 #include voidmain() { inti,m=2,j,n; doubles=0.0,k=1.0,t; printf("请输入正整数n: "); scanf("%d",&n); for(i=1;i<=n;i++) {t=m/k; s+=t; j=m; m=m+k; k=j; } printf("\n和为: %lf\n",s); } 3.4 #include"stdio.h" voidmain() {inti; doubleh=100.0,h1,s=100.0; for(i=2;i<=10;i++) {h1=h/2; h=h1; s+=2*h; } printf("s=%lf,h=%lf\n",s,h); } 实验四数组 必做题 4.1编写程序,将3~n之间的所有非素数存入数组array中,然后输出该数组元素。 例如: 若n=20,则输出4,6,8,9,10,12,14,15,16,18,20。 #include #include #defineN20 voidmain() {inti,array[N],j,m,k=0; for(i=3;i<=N;i++) {m=sqrt(i); for(j=2;j<=m;j++) if(i%j==0){array[k++]=i;break;} } for(i=0;i<=k-1;i++) printf("%d",array[i]); printf("\n"); } 4.2编写程序,将字符数组str中的字符串逆置后输出。 例如: 若str字符串为“ThisisaCprograme.”,则输出为“.emargorpCasisihT”。 #include #include #defineN80 voidmain() {inti,k; charstr[N],t; gets(str); k=strlen(str); for(i=0;i {t=str[i];str[i]=str[k-1-i];str[k-1-i]=t;} printf("\n%s\n",str); } 4.3从键盘输入10个整数,选择一种排序算法,将这些数按从大到小的顺序排列输出。 #include #defineN10 voidmain() {inti,j,array[N],m,t; printf("请输入10个整数: "); for(i=0;i scanf("%d",&array[i]); for(i=0;i {m=i; for(j=i+1;j if(array[j]>array[m])m=j; if(m! =i) {t=array[m];array[m]=array[i];array[i]=t;} } for(i=0;i printf("%d",array[i]); printf("\n"); } 4.4计算5×5矩阵的主对角线元素和此对角线元素之和。 若有下列矩阵,则输出的值应该是130。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 #include #defineN5 voidmain() {inti,j,array[N][N],s=0; printf("请输入5×5个整数: "); for(i=0;i for(j=0;j scanf("%d",&array[i][j]); for(i=0;i for(j=0;j {if(i==j||i+j==N-1)s+=array[i][j]; if(i==j&&i+j==N-1)s+=array[i][j];} for(i=0;i {for(j=0;j printf("%4d",array[i][j]); printf("\n");} printf("s=%d\n",s); } 选做题 4.1 #include"stdio.h" #include"string.h" #defineM5 voidmain() {inti,j,a[M],k,x; charstr[M][80],t[M]; printf("请输入5个字符串: "); for(i=0;i {gets(str[i]);a[i]=strlen(str[i]);} for(i=0;i {k=i; for(j=i+1;j if(a[j]>a[k])k=j; if(k! =i){strcpy(t,str[i]);strcpy(str[i],str[k]);strcpy(str[k],t); x=a[k];a[k]=a[i];a[i]=x;} } for(i=0;i puts(str[i]); printf("\n"); } 4.2 #include"stdio.h" #include"string.h" #defineM80 voidmain() {inti,j=0,k=0,a; chars[M],t[M],w[M]; printf("请输入1个字符串: \n"); gets(s);a=strlen(s);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 太原 理工大学 13 语言 实验 指导书 参考 答案