C实验报告答案--2015年.docx
- 文档编号:24451
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:78
- 大小:89.15KB
C实验报告答案--2015年.docx
《C实验报告答案--2015年.docx》由会员分享,可在线阅读,更多相关《C实验报告答案--2015年.docx(78页珍藏版)》请在冰点文库上搜索。
2.1C程序设计初步
一、实验目的
(1)熟悉C语言程序的运行环境(VC++6.0)。
(2)掌握C语言程序的上机步骤,了解运行C程序的方法。
(3)掌握C语言程序的书写格式和C语言程序的结构。
二、实验容(均要求给出运行结果)
1.程序改错题
(1)以下程序实现计算x×y的值并将结果输出。
请改正程序中的错误。
#include"stdio.h"
voidmain()
/**********FOUND**********/
{intx=y=4;
z=x*y;
/**********FOUND**********/
printf("z=%d/n",Z);
}
答案:
=======(答案1)=======
intx=,4,y=4,z;
=======(答案2)=======
printf("z=%d\n", z);
(2)以下程序实现输入圆的半径,求圆的周长。
请改正程序中的错误。
#include "stdio.h"
voidmain()
{intr;
float l;
printf("Enterr:
");
scanf("%d",&r);
/**********FOUND**********/
l=2πr
/**********FOUND**********/
printf("l=%d\n",l);
}
答案:
=======(答案1)=======
l=2*3.14*r;
=======(答案2)=======
printf("l=%f\n", l);
2.程序填空题
(1) 下面程序能对两个整型变量的值进行交换,请填空。
#include "stdio.h"
voidmain()
{inta=3,b=4,t;
t=a;
/***********SPACE***********/
【?
】;
/***********SPACE***********/
【?
】;
printf("a=%d,b=%d\n",a,b);
}
答案:
=======(答案1)=======
a=b
=======(答案2)=======
b=t
(2)下面程序不用第三个变量,实现两个数的对调操作。
#include
voidmain()
{inta,b;
scanf("%d%d",&a,&b);
printf("a=%d,b=%d\n",a,b);
/***********SPACE***********/
a= 【?
】 ;
/***********SPACE***********/
b= 【?
】 ;
/***********SPACE***********/
a= 【?
】 ;
printf("a=%d,b=%d\n",a,b);
}
答案:
=======(答案1)=======
a+b
=======(答案2)=======
a-b
=========或=========
a-b
=======(答案3)=======
a-b
=========或=========
a-b
3.程序设计题
功能:
编程实现从键盘输入任意1个大写字母,转换成小写字母后输出。
答案:
#include
voidmain()
{ charc,d;
scanf("%c",&c);
d=c+32 ;
printf("%c,%c\n",c,d);
}
2.2顺序结构程序设计
一、实验目的
(1)掌握赋值语句的功能和使用方法。
(2)掌握C语言的数据类型,熟悉不同类型变量的定义及赋值的方法。
(3)学会使用C语言的有关算术运算符,以及包含这些运算符的表达式。
(4)掌握简单数据类型的输入输出方法,能正确使用格式控制符。
(5)学习编制简单的C程序。
二、实验容(均要求给出运行结果)
1.程序改错题
(1)以下程序输入一个十进制整数,输出与之对应的八进制数与十六进制数。
例如,输入31,输出37(八进制)和1F(十六进制)。
请改正程序中的错误。
#include
voidmain()
{/**********FOUND**********/
n;
printf("输入一个十进制整数:
");
/**********FOUND**********/
scanf("%d",n);
/**********FOUND**********/
printf("对应的八进制整数是%O\n",n);
printf("对应的十六进制整数是%X\n",n);
}
答案:
=======(答案1)=======
int n;
=======(答案2)=======
scanf("%d",&n);
=======(答案3)=======
printf("对应的八进制整数是%o\n",n);
(2) 下列程序的功能是计算表达式x=1/2+的值,请改正程序中的错误。
#include"stdio.h"
/**********FOUND**********/
voidmain()
{inta,b;
floatx;
scanf("%d,%d",&a,&b);
/**********FOUND**********/
x=1/2+sqrt(a+b);
/**********FOUND**********/
printf("x=%d\n",x);
}
答案:
=======(答案1)=======
#include"math.h”
=======(答案2)=======
x=1./2+sqrt(a+b);
=======(答案3)=======
printf("x=%f\n",x);
2.程序填空题
(1)请填写以下程序,要求输出结果如下:
A,B
65,66
#include
voidmain()
{/***********SPACE***********/
chara,【?
】;
/***********SPACE***********/
a=【?
】;
b='b';
a=a-32;
/***********SPACE***********/
b=b-【?
】;
printf("%c,%c\n%d,%d\n",a,b,a,b);
}
答案:
=======(答案1)=======
b
=======(答案2)=======
'a'
=========或=========
97
=======(答案3)=======
32
(2)下列程序的功能是要求输出如下结果,请填入合适的变量完善程序。
b=-1a=65535
a=65534
a=30b=6c=5
#include
voidmain()
{/***********SPACE***********/
intb=-1,【?
】;
unsignedshortinta;
/***********SPACE***********/
a=【?
】;
printf("b=%da=%u\n",b,a);
/***********SPACE***********/
【?
】+=b;
printf("a=%u\n",a);
/***********SPACE***********/
b=(a=30)/【?
】;
printf("a=%db=%dc=%d\n",a,b,c);
}
答案:
=======(答案1)=======
c
=======(答案2)=======
b
=======(答案3)=======
a
=======(答案4)=======
(c=5)
3.程序设计题
功能:
输入摄氏温度c,求华氏温度f。
转换公式为 f=9/5c+32,输出结果取两位小数。
(说明:
因为关于函数调用的知识在第7章讲解,所以在现阶段本程序的设计可以改用一个主函数来完成。
)
#include
doublefun(doublem)
{/**********Program**********/
/**********End**********/
}
voidmain()
{doublec,f;
printf("请输入一个摄氏温度:
");
scanf("%lf",&c);
f=fun(c);
printf("华氏温度为:
%5.2f\n",f);
}
答案:
floatn;
n=9.0/5.0*m+32;
returnn;
2.3选择结构程序设计
一、实验目的
(1)掌握关系运算符、逻辑运算符、条件运算符的使用方法。
(2)掌握if语句和switch语句的使用方法。
(3)学会调试程序,并掌握一些简单的算法。
(4)掌握选择结构程序的设计技巧。
二、实验容(均要求给出运行结果)
1.程序改错题
(1)以下程序的功能是判断一个5位数是否为回文数,即12321是回文数,个位与万位相同,十位与千位相同。
请改正程序中的错误。
#include
voidmain()
{ /**********FOUND**********/
longge,shi,qian;wan,x;
scanf("%ld",&x);
/**********FOUND**********/
wan=x%10000;
qian=x%10000/1000;
shi=x%100/10;
ge=x%10;
/**********FOUND**********/
if(ge==wan||shi==qian)
printf("thisnumberisahuiwen\n");
else
printf("thisnumberisnotahuiwen\n");
}
答案:
=======(答案1)=======
longge,shi,qian,wan,x;
=======(答案2)=======
wan=x/10000;
=======(答案3)=======
if(ge==wan&&shi==qian)
=========或=========
if(shi==qian&&ge==wan)
(2) 利用条件运算符的嵌套来完成此题:
学习成绩为90分以上(包括90分)的学生用A表示,60~89分的用B表示,60分以下的用C表示。
请改正程序中的错误。
#include
voidmain()
{ intscore;
/**********FOUND**********/
char*grade;
printf("pleaseinputascore\n");
/**********FOUND**********/
scanf("%d",score);
/**********FOUND**********/
grade=score>=90?
'A';(score>=60?
'B':
'C');
printf("%dbelongsto%c\n",score,grade);
}
答案:
=======(答案1)=======
chargrade;
=======(答案2)=======
scanf("%d",&score);
=======(答案3)=======
grade=score>=90?
'A':
(score>=60?
'B':
'C');
2.程序填空题
(1) 以下程序实现输出x、y、z这3个数中的最大者。
#include
voidmain()
{intx=4,y=6,z=7;
/***********SPACE***********/
intu,【?
】;
if(x>y)
/***********SPACE***********/
【?
】;
else
u=y;
if(u>z)
v=u;
else
v=z;
printf("themaxis%d\n",v);
}
答案:
=======(答案1)=======
v
=======(答案2)=======
u=x
(2) 输入某年某月某日,判断这一天是这一年的第几天。
#include
voidmain()
{intday,month,year,sum,leap;
printf("\npleaseinputyear,month,day\n");
scanf("%d,%d,%d",&year,&month,&day);
switch(month)
{case1:
sum=0;break;
case2:
sum=31;break;
case3:
sum=59;break;
/***********SPACE***********/
case4:
【?
】;break;
case5:
sum=120;break;
case6:
sum=151;break;
case7:
sum=181;break;
case8:
sum=212;break;
case9:
sum=243;break;
case10:
sum=273;break;
case11:
sum=304;break;
case12:
sum=334;break;
default:
printf("dataerror");break;
}
/***********SPACE***********/
【?
】;
/***********SPACE***********/
if(year%400==0||【?
】)
leap=1;
else
leap=0;
/***********SPACE***********/
if(【?
】)
sum++;
printf("itisthe%dthday.",sum);
}
答案:
=======(答案1)=======
sum=90
=======(答案2)=======
sum=sum+day
=========或=========
sum=sum+day
=======(答案3)=======
year%4==0&&year%100!
=0
=========或=========
(year%4==0&&year%100!
=0)
=======(答案4)=======
leap==1&&month>2
=========或=========
leap==1&&month>2
=========或=========
leap==1&&2 3.程序设计题 功能: 对某一浮点数保留2位小数,并对第三位小数进行四舍五入。 输出6位小数,后4位均为0。 (说明: 因受所学知识的限制,现阶段可以只用一个主函数来完成。 ) #include #include"conio.h" doublefun(floath) {/**********Program**********/ /**********End**********/ } voidmain() {floatm; printf("Enterm: "); scanf("%f",&m); printf("\nTheresultis%f\n",fun(m)); } 答案: ---------------------- inti; i=(int)(h*1000)%10; if(i>=5) return(int)(h*100+1)/100.0; else return(int)(h*100)/100.0; ---------------------- 2.4单层循环程序设计 一、实验目的 (1)掌握while语句、do-while语句和for语句的基本使用方法。 (2)掌握循环结构程序设计的一些常用算法。 二、实验容(均要求给出运行结果) 1.程序改错题 (1) 以下程序实现求出1×1+2×2+…+n×n≤1000中满足条件的最大的n。 #include voidmain() {intn,s; /**********FOUND**********/ s==n=0; /**********FOUND**********/ while(s>1000) {++n; s+=n*n; } /**********FOUND**********/ printf("n=%d\n",&n-1); } 答案: =======(答案1)======= s=n=0; =======(答案2)======= while(s<=1000) =======(答案3)======= printf("n=%d\n",n-1); (2) 一个球从100m高度自由落下,每次落地后反跳回原高度的一半,再落下,求它在第10次落地时,共经过多少米? 第10次反弹多高? #include voidmain() {/**********FOUND**********/ floatsn=100.0;hn=sn/2; intn; /**********FOUND**********/ for(n=2;n<10;n++) {sn=sn+2*hn; /**********FOUND**********/ hn=hn%2; } printf("thetotalofroadis%f\n",sn); printf("thetenthis%fmeter\n",hn); } 答案: =======(答案1)======= floatsn=100.0,hn=sn/2; =======(答案2)======= for(n=2;n<=10;n++) =========或========= for(n=2;n<11;n++) =======(答案3)======= hn=hn/2; 2.程序填空题 (1)以每行5个数来输出300以能被7或17整除的偶数,并求出其和。 请填空。 #include voidmain() {inti,n,sum; sum=0; /***********SPACE***********/ 【? 】; /***********SPACE***********/ for(i=1; 【? 】 ;i++) /***********SPACE***********/ if(【? 】) if(i%2==0) {sum=sum+i; n++; printf("%6d",i); /***********SPACE***********/ if(【? 】) printf("\n"); } printf("\ntotal=%d\n",sum); } 答案: =======(答案1)======= n=0 =======(答案2)======= i<=300 =========或========= i<300 =========或========= 300>=i =========或========= 300>i =======(答案3)======= i%7==0||i%17==0 =========或========= ! (i%7)||! (i%17) =========或========= ! (i%17)||! (i%7) =========或========= ! (i%7&&i%17) =======(答案4)======= n%5==0 =========或========= ! (n%5) =========或========= n/5*5==n (2) 计算平均成绩并统计90分以上的人数。 请填空。 #include voidmain() {intn,m; floatgrade,average; average=0.0; /***********SPACE***********/ n=m=【? 】; while (1) {/***********SPACE***********/ 【? 】("%f",&grade); if(grade<0) break; n++; average+=grade; /***********SPACE***********/ if(grade<90) 【? 】; m++; } if(n) printf("%.2f\n%d\n",average/n,m); } 答案: =======(答案1)======= 0 =======(答案2)======= scanf =======(答案3)======= continue 3.程序设计题 功能: 求一个四位数的各位数字的立方和。 (说明: 因为关于函数调用的知识在第7章讲解,所以在现阶段本程序的设计可以改用一个主函数来完成。 ) #include intfun(intn) {/**********Program**********/ /**********End**********/ } voidmain() {intk; k=fun(1234); printf("k=%d\n",k); } 答案: ---------------------- intd,s=0; while(n>0) {d=n%10; s+=d*d*d; n/=10; } returns; ---------------------- 2.5嵌套循环程序设计 一、实验目的 (1)掌握循环嵌套的程序设计方法。 (2)掌握break语句和continue语句的使用方法。 (3)掌握结构化程序设计的基本技巧和方法。 二、实验容(均要求给出运行结果) 1.程序改错题 (1)以下程序的功能是循环读取7个整数(1~50),每读取一个整数存入变量a,程序打印出a个*。 #include voidmain() {inti,a,n=1; /**********FOUND**********/ while(n<7) {do {scanf("%d",&a); } /**********FOUND**********/ while(a<1&&a>50); /**********FOUND**********/ for(i=0;i<=a;i++) printf("*"); printf("\n"); n++; } } 答案: =======(答案1)======= while(n<=7) =========或========= while(n<8) =======(答案2)======= while(a<1||a>50); =========或========= while(a>50||a<1); =======(答案3)======
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 报告 答案 2015