青岛科技大学C语言上机实验参考答案Word下载.docx
《青岛科技大学C语言上机实验参考答案Word下载.docx》由会员分享,可在线阅读,更多相关《青岛科技大学C语言上机实验参考答案Word下载.docx(39页珍藏版)》请在冰豆网上搜索。
{doublex,s;
printf(“Pleaseinputvalueofx:
scanf(“%lf”,&
x);
s=cos(x);
printf(“cos(%lf)=%lf\n”,x,s);
4、#include<
{printf(“==================================\n”);
printf(“1输入数据2修改数据\n”);
printf(“3查询数据4打印数据\n”);
printf(“===================================\n”);
5、#include<
{intx,y,t;
printf(“Pleaseenterxandy:
scanf(“%d%d”,&
x,&
y);
t=x;
x=y;
y=t;
printf(“Afterswap:
x=%d,y=%d\n”,x,y);
实验二简单的C程序设计(4学时)
1、掌握C语言的数据类型。
2、学会使用C语言的运算符及表达式。
3、掌握不同数据类型的输入输出方法。
前四题为必做题目,后两题为选做题目。
1、输入r1、r2,求出圆形垫片面积。
(实验指导书P84)
2、输入华氏温度h,输出摄氏温度c。
(实验指导书P85)
3、从键盘输入一个3位整数,将输出该数的逆序数。
(实验指导书P89)
4、输入并运行以下程序,分析运行结果。
{inti,j;
i=8;
j=10;
printf(“%d,%d\n”,++i,++j);
printf(“%d,%d\n”,i++,j++);
printf(“%d,%d\n”,++i,i);
printf(“%d,%d\n”,i++,i);
5、输入三角形三条边的边长,求三角形的面积。
(书P55)
6、输入3个字符型数据,将其转换成相应的整数后,求它们的平均值并输出。
#definePI3.14
{floatr1,r2;
doubles1,s2,s;
printf(“Pleaseenterr1,r2:
\n”);
scanf(“%f%f”,&
r1,&
r2);
s2=r2*r2*PI;
s1=r1*r1*PI;
s=s2-s1;
printf(“s=%lf\n”,s);
{floath,c;
printf(“请输入华氏温度:
scanf(“%f”,&
h);
c=5.0/9*(h-32);
printf(“\n摄氏温度:
%f\n”,c);
{inta,b,c,x,y;
printf(“请输入一个3位的正整数:
scanf(“%d”,&
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
{inta,b,c;
doublearea,s;
printf(“Pleaseentera,b,c:
scanf(“%d,%d,%d”,&
b,&
c);
s=(double)(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf(“area=%.2lf\n”,area);
6、#include<
{chara,b,c;
floatx;
printf(“Pleaseenter:
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个整数,要求按由小到大的顺序输出。
{intl,w,h;
printf(“请输入箱子的长、宽、高:
scanf(“%d%d%d”,&
l,&
w,&
if(l==w&
&
w==h)/*如果长、宽、高相等,则为立方体*/
printf(“该箱子是立方体。
else
printf(“该箱子是长方体。
{intyear,month,days;
printf(“Pleaseenteryearandmonth:
switch(month)
{case2:
if(year%4==0&
year%100!
=0||year%400==0)
days=29;
days=28;
break;
case1:
case3:
case5:
case7:
case8:
case10:
case12:
days=31;
case4:
case6:
case9:
case11:
days=30;
printf(“%d年%d月有%d天\n”,year,month,days);
{floatx,y;
printf(“Pleaseinputx:
if(x<
y=x;
elseif(x<
y=2*x-1;
y=3*x-11;
printf(“y=%f\n”,y);
{charx;
printf(“Enterachar:
x=getchar();
if(x>
=‘a’&
x<
=‘z’)
x=x-32;
elseif(x>
=‘A’&
=‘Z’)
x=x+32;
putchar(x);
{inta,b,c,d,t;
printf(“请输入4个整数:
scanf(“%d%d%d%d”,&
c,&
d);
if(a>
b){t=a;
a=b;
b=t;
c){t=a;
a=c;
c=t;
d){t=a;
a=d;
d=t;
if(b>
c){t=b;
b=c;
d){t=b;
b=d;
if(c>
d){t=c;
c=d;
printf(“排序结果如下:
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为止。
5、计算s=1!
+2!
+……+20!
的值并输出。
6、输入10个整数,统计并输出其中正数、负数和零的个数。
{floatx,max,min;
printf(“Pleaseinputscores:
max=min=x;
while(x>
=0)
{if(x>
max)max=x;
min)min=x;
printf(“\nmax=%f\nmin=%f\n”,max,min);
{intx,y,z;
intk=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++;
{inti,x,yes,a;
printf(“Enterintegernumber:
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”);
{floatpi,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);
{floats=0,t=1;
intn;
for(n=1;
n<
=20;
n++)
{t=t*n;
s=s+t;
printf(“1!
=%f\n”,s);
{intx,i,a1=0,b1=0,c1=0;
for(i=1;
=10;
i++)
{printf(“\n请输入第%d个数:
”,i);
scanf(“%d”,&
0)a1++;
elseif(x<
0)b1++;
elsec1++;
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、输出如下图案:
*
***
*****
*******
{intscore,temp,logic;
chargrade;
logic=1;
while(logic)
{printf(“Inputscore:
score);
if(score>
100||score<
0)
printf(“\nError,Inputagain!
logic=0;
printf(“\n”);
if(score==100)
temp=9;
temp=score/10;
switch(temp)
{case9:
grade=‘A’;
break;
case8:
grade=‘B’;
grade=‘C’;
case6:
grade=‘D’;
default:
grade=‘E’;
printf(“Scoreis%d,thegradeis%c.\n”,score,grade);
{intm,n,k;
intsum=0;
printf(“各种驮法如下:
for(m=1;
m<
=100;
m++)
=100-m;
{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);
{charc;
intletter=0,space=0,digit=0,other=0;
printf(“请输入一行字符:
while((c=getchar())!
=‘\n’)
{if(c>
c<
=‘z’||c>
letter++;
elseif(c==‘’)
space++;
elseif(c>
=‘0’&
=‘9’)
digit++;
other++;
printf(“字母数=%d,空格数=%d\n”,letter,space);
printf(“数字数=%d,其他字符数=%d\n”,digit,other);
{inti,j,k;
for(i=0;
=3;
{for(j=0;
j<
=2-i;
j++)printf(“”);
for(k=0;
k<
=2*i;
k++)printf(“*”);
printf(“\n”);
=2;
=i;
j++)printf(“”);
=4-2*i;
实验六函数程序设计(4学时)
1、掌握C语言中函数的三要素:
函数定义、函数调用和函数说明。
2、掌握通过参数在函数间传递数据的方法。
3、掌握全局变量、局部变量、动态变量、静态变量的概念和使用方法。
1、从键盘输入三角形的3条边,调用三角形面积函数求出其面积,并输出结果。
(实验指导书P130)
2、输入整数n,输出高度为n的等边三角形。
当n=5时的等边三角形如下:
(实验指导书P134)
*********
3、输入并运行以下程序,分析运行结果。
inta=5;
intb=7;
{inta=4,b=5,c;
c=plus(a,b);
printf(“a+b=%d\n”,c);
plus(intx,inty)
{intz;
z=x+y;
return(z);
4、求500以内的所有亲密数对。
若正整数A的所有因子(包括1但不包括自身,下同)之和为B,而B的因子之和为A,则称A和B为一对亲密数对。
(实验指导书P136)
5、输入并运行以下程序,分析运行结果。
intd=1;
fun(intp)
{staticintd=5;
d+=p;
printf(“%d”,d);
return(d);
{inta=3;
printf(“%d”,fun(a+fun(d)));
6、设计一个函数,输出整数n的所有素数因子。
(书P157)
floatarea(floata,floatb,floatc)
{floats,p,area;
s=(a+b+c)/2;
p=s*(s-a)*(s-b)*(s-c);
area=sqrt(p);
return(area);
{floatx,y,z,ts;
scanf(“%f%f%f”,&
y,&
z);
if(x>
0&
y>
z>
x+y>
z&
y+z>
x&
x+z>
y)
{ts=area(x,y,z);
printf(“area=%f\n”,ts);
printf(“dataerror!
voidtrangle(intn)
for(i=0;
n;
{for(j=0;
=n-j;
j++)putchar(‘’);
/*打印每一行的空格*/
for(j=0;
j++)putchar(‘*’);
/*打印每一行的*号*/
putchar(‘\n’);
{intn;
printf(“Pleaseentern:
n);
trangle(n);
3、a+b=9
intfacsum(intm)
{intsum=1,f=2;
while(f<
=m/2)
{if(m%f==0)sum=sum+f;
f++;
returnsum;
{intm=3,n,k;
while(m<
=500)
{n=facsum(m);
k=fa