C语言上机实验 答案.docx
《C语言上机实验 答案.docx》由会员分享,可在线阅读,更多相关《C语言上机实验 答案.docx(47页珍藏版)》请在冰豆网上搜索。
![C语言上机实验 答案.docx](https://file1.bdocx.com/fileroot1/2023-2/10/c4552d77-744a-410a-8fb8-7c4acf557634/c4552d77-744a-410a-8fb8-7c4acf5576341.gif)
C语言上机实验答案
实验一上机操作初步(2学时)
一、实验方式:
一人一机
二、实验目的:
1、熟悉VC++语言的上机环境及上机操作过程。
2、了解如何编辑、编译、连接与运行一个C程序、
3、初步了解C程序的特点。
三、实验内容:
讲明:
前三题为必做题目,后两题为选做题目。
1、输出入下信息:
(实验指导书P79)
*************************
Very Good
*************************
2、计算两个整数的与与积、(实验指导书P81)
3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕、(书P3)
4、在屏幕上显示一个文字菜单模样的图案:
=================================
1输入数据2修改数据
3 查询数据4 打印数据
=================================
5、从键盘上输入两个整数,交换这两个整数、
四、实验步骤与过程:
五、实验调试记录:
六、参考答案:
1、#include <stdio、h〉
voidmain()
{ printf(“********************\n”);
printf(“ VeryGood\n");
printf(“********************\n”);
}
2、#include 〈stdio、h〉
void main()
{ inta,b,c,d;
printf(“Pleaseentera,b:
”);
scanf(“%d,%d",&a,&b);
c=a+b;d=a*b;
printf(“%d+%d=%d\n",a,b,c);
printf(“%d*%d=%d\n”,a,b,d);
}
3、#include 〈stdio、h>
#include <math、h>
voidmain()
{ doublex,s;
printf(“Pleaseinputvalueofx:
”);
scanf(“%lf",&x);
s=cos(x);
printf(“cos(%lf)=%lf\n”,x,s);
}
4、#include
voidmain()
{ printf(“==================================\n”);
printf(“ 1输入数据 2 修改数据\n”);
printf(“ 3查询数据 4打印数据\n”);
printf(“===================================\n");
}
5、#include<stdio、h〉
voidmain()
{int x,y,t;
printf(“Pleaseenter x andy:
”);
scanf(“%d%d”,&x,&y);
t=x; x=y;y=t;
printf(“Afters\n”,x,y);
}
实验二 简单的C程序设计(4学时)
一、实验方式:
一人一机
二、实验目的:
1、掌握C语言的数据类型、
2、学会使用C语言的运算符及表达式、
3、掌握不同数据类型的输入输出方法、
三、实验内容:
讲明:
前四题为必做题目,后两题为选做题目、
1、输入r1、r2,求出圆形垫片面积、(实验指导书P84)
2、输入华氏温度h,输出摄氏温度c。
(实验指导书P85)
3、从键盘输入一个3位整数,将输出该数的逆序数。
(实验指导书P89)
4、输入并运行以下程序,分析运行结果、
#include <stdio、h>
voidmain()
{int i,j;
i=8;j=10;
printf(“%d,%d\n”,++i,++j);
i=8;j=10;
printf(“%d,%d\n”,i++,j++);
i=8; j=10;
printf(“%d,%d\n”,++i,i);
i=8;j=10;
printf(“%d,%d\n”,i++,i);
}
5、输入三角形三条边的边长,求三角形的面积。
(书P55)
6、输入3个字符型数据,将其转换成相应的整数后,求它们的平均值并输出。
(书P55)
四、实验步骤与过程:
五、实验调试记录:
六、参考答案:
1、#include<stdio、h〉
#definePI3、14
voidmain( )
{floatr1,r2;
double s1,s2,s;
printf(“Pleaseenter r1,r2:
\n");
scanf(“%f%f”,&r1,&r2);
s2=r2*r2*PI; s1=r1*r1*PI; s=s2-s1;
printf(“s=%lf\n”,s);
}
2、#include
voidmain()
{floath,c;
printf(“请输入华氏温度:
");
scanf(“%f”,&h);
c=5、0/9*(h-32);
printf(“\n摄氏温度:
%f\n",c);
}
3、#include〈stdio、h〉
void main()
{ inta,b,c,x,y;
printf(“请输入一个3位的正整数:
\n");
scanf(“%d”,&x);
a=x/100;/*求x的百位数*/
b=(x—a*100)/10; /*求x的十位数*/
c=x-a*100-b*10; /*求x的个位数*/
y=c*100+b*10+a;
printf(“%d:
%d\n”,x,y);
}
4、运行结果:
9,11
8,10
9,8
8,8
5、#include #include〈math、h>
voidmain()
{ int a,b,c;
doublearea,s;
printf(“Pleaseentera,b,c:
");
scanf(“%d,%d,%d”,&a,&b,&c);
s=(double)(a+b+c)/2;
area=sqrt(s*(s—a)*(s-b)*(s—c));
printf(“area=%、2lf\n",area);
}
6、#include 〈stdio、h>
voidmain()
{chara,b,c;
floatx;
printf(“Please enter:
\n");
a=getchar(); b=getchar();c=getchar();
x=(a+b+c)/3、0;
printf(“(a+b+c)/3=%、2f\n”,x);
}
实验三选择结构程序设计(2学时)
一、实验方式:
一人一机
二、实验目的:
1、熟练掌握if语句与switch语句。
2、练习并掌握多分支选择结构的编程方法。
3、学习调试与修改程序的步骤、
三、实验内容:
讲明:
前三题为必做题目,后两题为选做题目、
1、读入3个分不表示箱子长、宽、高的整数值,判断并输出该箱子是立方体依然长方体。
(实验指导书P104)
2、输入某一年月,输出该月的天数、(实验指导书P105)
3、有一函数:
x (x<1)
y= 2x—1 (1≤x<10)
3x-11(x≥10) 编写程序,输入x值,输出y值、
4、从键盘输入一个字符,假如该字符为小写字母,则转换为大写字母输出;假如该字符为大写字母,则转换为小写字母输出;假如为其她字符,原样输出。
(书P94)
5、输入4个整数,要求按由小到大的顺序输出、
四、实验步骤与过程:
五、实验调试记录:
六、参考答案:
1、#include<stdio、h>
voidmain()
{ intl,w,h;
printf(“请输入箱子的长、宽、高:
\n”);
scanf(“%d%d%d”,&l,&w,&h);
if(l==w&&w==h) /*假如长、宽、高相等,则为立方体*/
printf(“该箱子是立方体、”);
else
printf(“该箱子是长方体。
”);
}
2、#include〈stdio、h〉
voidmain( )
{intyear,month,days;
printf(“Pleaseenter yearandmonth:
\n”);
switch(month)
{ case2:
if(year%4==0&&year%100!
=0||year%400==0)
days=29;
else
days=28;
break;
case 1:
case3:
case5:
case 7:
case8:
case10:
case12:
days=31;break;
case4:
case 6:
case 9:
case 11:
days=30;
}
printf(“%d年%d月有%d天\n”,year,month,days);
}
3、#include<stdio、h>
void main( )
{floatx,y;
printf(“Pleaseinputx:
\n”);
scanf(“%f”,&x);
if(x<1)
y=x;
elseif(x<10)
y=2*x—1;
else
y=3*x-11;
printf(“y=%f\n”,y);
}
4、#include <stdio、h〉
voidmain()
{charx;
printf(“Entera char:
\n");
x=getchar();
if(x>=‘a'&&x<=‘z')
x=x—32;
elseif(x〉=‘A'&&x〈=‘Z')
x=x+32;
putchar(x);
}
5、#include 〈stdio、h>
voidmain()
{ inta,b,c,d,t;
printf(“请输入4个整数:
");
scanf(“%d%d%d%d",&a,&b,&c,&d);
if(a〉b){ t=a;a=b;b=t;}
if(a〉c) {t=a;a=c;c=t;}
if(a>d){t=a; a=d;d=t;}
if(b>c){ t=b;b=c;c=t;}
if(b〉d) { t=b;b=d;d=t;}
if(c〉d) {t=c; c=d;d=t;}
printf(“排序结果如下:
\n");
printf(“%d,%d,%d,%d\n",a,b,c,d);
}
实验四循环结构程序设计(4学时)
一、实验方式:
一人一机
二、实验目的:
1、熟练掌握while语句、do—while语句与for语句。
2、练习并掌握循环结构的嵌套形式。
3、掌握循环结构的程序设计方法。
三、实验内容:
讲明:
前四题为必做题目,后两题为选做题目、
1、从键盘上输入若干个学生的成绩,统计并输出最高成绩与最低成绩,当输入负数时结束输入、(实验指导书P117)
2、求所有的水仙花数。
水仙花数是一个3位数的自然数,该数各位数的立方与等于该数本身、(实验指导书P118)
3、判断输入的某个数是否为素数。
若是,输出YES,否则输出NO。
(书P123)
4、计算π的近似值。
公式如下:
π/4=1—1/3+1/5-1/7+……,直到最后一项的绝对值小于10—6为止。
(书P123)‘
5、计算s=1!
+2!
+……+20!
的值并输出。
6、输入10个整数,统计并输出其中正数、负数与零的个数。
四、实验步骤与过程:
五、实验调试记录:
六、参考答案:
1、#include〈stdio、h>
voidmain()
{ floatx,max,min;
printf(“Pleaseinputscores:
”);
scanf(“%f”,&x);
max=min=x;
while(x〉=0)
{ if(x〉max) max=x;
if(x〈min) min=x;
scanf(“%f”,&x);
}
printf(“\nmax=%f\nmin=%f\n”,max,min);
}
2、#include〈stdio、h〉
voidmain()
{intx,y,z;
int k=100;
while(k〈=999)
{x=k/100;
y=(k—x*100)/10;
z=k—x*100—y*10;
if(k==x*x*x+y*y*y+z*z*z)
printf(“%d\n”,k);
k++;
}
}
3、#include〈stdio、h>
#include<math、h〉
voidmain()
{inti,x,yes,a;
printf(“Enter integer number:
");
scanf(“%d”,&x);
yes=1;
i=2;
a=(int)sqrt((double)x);
while(yes&&i〈=a) { if(x%i==0) yes=0;
i++;
}
printf(“%d",x);
if(yes)
printf(“YES\n”);
else
printf(“NO\n”);
}
4、#include
#include〈math、h>
voidmain( )
{ float pi,t,n;
intsign=1;
pi=0;n=1;t=1;
while(fabs(t)>=1e-6)
{t=sign/n;
pi+=t;
n+=2;
sign=—sign;
}
pi=pi*4;
printf(“pi=%f\n",pi);
}
5、#include〈stdio、h〉
void main()
{floats=0,t=1;
int n;
for(n=1;n<=20;n++)
{ t=t*n;
s=s+t;
}
printf(“1!
+2!
+……+20!
=%f\n",s);
}
6、#include〈stdio、h>
voidmain()
{ intx,i,a1=0,b1=0,c1=0;
for(i=1;i〈=10;i++)
{ printf(“\n请输入第%d个数:
”,i);
scanf(“%d”,&x);
if(x>0) a1++;
else if(x<0)b1++;
else c1++;
}
printf(“整数有%d个,负数有%d个,零有%d个\n”,a1,b1,c1);
}
实验五综合实验1:
结构化程序设计(2学时)
一、实验方式:
一人一机
二、实验目的:
1、进一步掌握选择结构、循环结构的编程特点。
2、掌握C语言的结构化程序设计思想、
3、学习利用循环结构实现的一些常用算法(如穷举、迭代、递推等)、
三、实验内容:
讲明:
前两题为必做题目,后两题为选做题目、
1、编一程序,关于给定的一个百分制成绩,输出对应A,B,C,D,E表示的的等级成绩、设:
90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。
(书P93)
2、百马百担问题、(实验指导书P121)
3、输入一行字符,分不统计出其中英文字母、空格、数字与其她字符的个数。
4、输出如下图案:
*
***
*****
*******
*****
***
*
四、实验步骤与过程:
五、实验调试记录:
六、参考答案:
1、#include<stdio、h>
voidmain( )
{intscore,temp,logic;
char grade;
logic=1;
while(logic)
{ printf(“Inputscore:
”);
scanf(“%d”,&score);
if(score>100||score〈0)
printf(“\nError,Input again!
\n”);
else
logic=0;
printf(“\n");
}
if(score==100)
temp=9;
else
temp=score/10;
switch(temp)
{ case9:
grade=‘A';break;
case8:
grade=‘B’;break;
case7:
grade=‘C’;break;
case6:
grade=‘D’;break;
default:
grade=‘E’;
}
printf(“Scoreis%d,the gradeis%c、\n”,score,grade);
}
2、#include
void main()
{ intm,n,k;
intsum=0;
printf(“各种驮法如下:
\n”);
for(m=1;m<=100;m++)
for(n=1;n<=100-m;n++)
{ k=100—m-n;
if(k%2==0&&m*3+n*2+k/2==100)
{ printf(“大马%3d匹;中马%3d匹;小马%3d匹、\n",m,n,k);
sum++;
}
}
printf(“共有%d种驮法、\n”,sum);
}
3、#include<stdio、h〉
void main( )
{ charc;
int letter=0,space=0,digit=0,other=0;
printf(“请输入一行字符:
\n”);
while((c=getchar( ))!
=‘\n’)
{ if(c>=‘a’&&c〈=‘z’||c〉=‘A’&&c〈=‘Z')
letter++;
elseif(c==‘')
space++;
elseif(c〉=‘0’&&c<=‘9’)
digit++;
else
other++;
}
printf(“字母数=%d,空格数=%d\n”,letter,space);
printf(“数字数=%d,其她字符数=%d\n”,digit,other);
}
4、#include〈stdio、h>
voidmain()
{ int i,j,k;
for(i=0;i<=3;i++)
{for(j=0;j<=2—i;j++) printf(“”);
for(k=0;k<=2*i;k++) printf(“*”);
printf(“\n”);
}
for(i=0;i〈=2;i++)
{for(j=0;j<=i;j++) printf(“”);
for(k=0;k<=4—2*i;k++) printf(“*");
printf(“\n”);
}
}
实验六函数程序设计(4学时)
一、实验方式:
一人一机
二、实验目的:
1、掌握C语言中函数的三要素:
函数定义、函数调用与函数讲明。
2、掌握通过参数在函数间传递数据的方法。
3、掌握全局变量、局部变量、动态变量、静态变量的概念与使用方法、
三、实验内容:
讲明:
前四题为必做题目,后两题为选做题目、
1、从键盘输入三角形的3条边,调用三角形面积函数求出其面积,并输出结果、(实验指导书P130)
2、输入整数n,输出高度为n的等边三角形、当n=5时的等边三角形如下:
(实验指导书P134)
*
***
*****
*******
*********
3、输入并运行以下程序,分析运行结果。
#include 〈stdio、h>
inta=5;
intb=7;
voidmain()
{ inta=4,b=5,c;
c=plus(a,b);
printf(“a+b=%d\n”,c);
}
plus(int x,int y)
{intz;
z=x+y;
return(z);
}
4、求500以内的所有亲密数对