c程序设计教程与实验课后实验答案.docx
- 文档编号:6906725
- 上传时间:2023-01-12
- 格式:DOCX
- 页数:12
- 大小:19.19KB
c程序设计教程与实验课后实验答案.docx
《c程序设计教程与实验课后实验答案.docx》由会员分享,可在线阅读,更多相关《c程序设计教程与实验课后实验答案.docx(12页珍藏版)》请在冰豆网上搜索。
c程序设计教程与实验课后实验答案
c程序设计教程与实验课后实验答案
【篇一:
c程序设计教程与实验__吉顺如__实验一到七】
>一、实验目的
1.掌握在visualc++6.0环境下c程序的建立、编辑、编译和执行过程。
2.掌握c程序的最基本框架结构,完成简单程序的编制与运行和调试。
3.掌握发现语法错误、逻辑错误的方法以及排除简单错误的操作技能。
二、实验内容
1.从键盘输入两个数a和b,求它们的平方和,并在屏幕上输出。
输入该c程序,编译并运行之,记下屏幕的输出结果,以文件名sy1_1.c保存。
#includestdio.hmain(){
inta,b,sum;/*定义整型变量a、b、sum*/printf(pleaseinputa,b
\n);/*输出提示信息*/
(1计算x*y的值并将结果输出。
试纠正程序中存在的错误,以实现其功能。
程序以文件名sy1_2.c保存。
#includestdio.h
mainmain()
{intx=2;y=3;aintx=2,y=3,a;a=x*ya=x*y;
print(a=%d,a);printf(a=%d,a);printf(\n);
}
(2)下程序的功能为:
求两数中的较大数据并输出。
纠正程序中存在的错误,以实现其功能。
程序以文件名sy1_3.c保存。
#includestdio.h
1
viodmain()voidmain(){
inta,b,max;
scanf(“%d,%d”,a,b);scanf(“%d,%d”,a,b);max=a;max=a;
if(maxb)max=b;if(maxb)max=b;printf(“max=%d”x,)m;a
printf(“max=%d”,max);}
3.程序填空题
(
1)从键盘输入两个整数,输出这两个整数的和。
根据注释信息填写完整程序,以实现其功能。
以文件名sy1_4.c保存。
#includestdio.hmain(){
/*定义整型变量x,y,total*/printf(pleaseinputx,y!
);/*输出提示信
息*/
/*由键盘输入两个数分别赋予x和y*/total=x+y;/*赋值语句*/printf(%d+%d=%d\n,x,y,total);/*输出两个整数的和*/}
(2)从键盘输入两个整数,输出这两个整数的差。
根据注释信息填写完整程序,以实现其功能。
程序以文件名sy1_5.c保存。
#includestdio.hmain(){
inta,b,m;printf(inputa,bplease!
);scanf(%d%d,a,b);
/*赋值语句,将a和b的差值赋给m*/
/*输出a和b差的结果值后换行*/}
4.编程题
2
(1)编程序,运行后输出如下信息:
“bettercity,betterlife!
。
程
序以文件名sy1_6.c保存。
#includestdio.hmain(){printf(bettercity,betterlife!
\n);}
(2)编程序,从键盘输入3个整数,输出它们的平方和。
程序以文件名sy1_7.c保存。
#includestdio.hmain(){
inta,b,c,sum;printf(pleaseinputa,b,c\n);
scanf(%d,%d,%d,a,b,c);sum=a*a+b*b+c*c;printf(%d*%d+%d*%d+%d*%d=%d\n,a,a,b,b,c,c,sum);}
3
实验2数据类型、运算符和表达式
一、实验目的
1.理解C语言中各种数据类型的意义,掌握各种数据类型的定义方
法。
2.掌握c语言常量、变量的定义与使用。
3.掌握c语言数据类型及运算符的使用规则。
二、实验内容
1.改错题
(1)下列程序的功能为:
已知圆锥半径r和高h,计算圆锥体积v。
纠
正程序中存在的错误,以实现其功能。
程序以文件名sy2_1.c保存。
计算圆锥体积的公式为:
#includestdio.h#includestdio.hmain();main()
{floatr=10,h=5;floatr=10,h=5,v;v=1/3*3.14159*r^2*h;v=1.0/3*3.14159*r*r*h;printf(v=%d\n,v)printf(v=%d\n,v);}
(2)下列程序的功能为:
通过键盘输入两个整数分别存放在变量x、y
中,不借用第3个变量实现变量x、y互换值。
纠正程序中存在的错误,以实现其功能。
程序以文件名sy2_2.c保存。
#includestdio.hmain(){}
4
intx,y;
printf(请输入两个整数\n);
scanf(%d%d,x,y);scanf(%d%d,x,y);printf(初始状态下的x:
%dy:
%d\n,x,y);x=x+yx=x+y;y=x-y;x=x-y;
printf(最终状态下的x
:
%dy:
%d/n,x,y);
2.程序填空题
(1)计算当x=4时,公式y序以文件名sy2_3.c保存。
#includestdio.hmain(){
floatx=4.0,y;
printf(%f,y);}
(2)下列程序的功能为:
从键盘输入3个整数分别存入变量a、b、c,然后,将变量a的值存入变量b,将变量b的值存入变量c,将变量c的值存入变量a,输出经过转存后变量a、b、c的值。
(提示:
使用中间变量)补充完善程序,以实现其功能。
程序以文件名sy2_4.c保存。
#includestdio.hmain()
{
inta,b,c,;
printf(pleaseinputa,b,c:
);
printf(a=%d\nb=%d\nc=%d\n,a,b,c);}
3.编程题
(1)从键盘输入3个大写英文字母,把它们转换成小写字母后输出。
程序以文件名sy2_5.c保存。
#includestdio.hmain(){
charc1,c2,c3;
scanf(%c%c%c,c1,c2,c3);c1=c1+32;c2=c2+32;c3=c3+32;
5
?
1?
x3
x?
4x?
10
2
【篇二:
c程序设计教程与实验第10章习题参考答案】
1.二进制文本
2.rewind()
3.字节流式
4.”abc.dat”“rb”
5.0
6.将文件位置指针从文本末尾处向文件头的方向移动10个字节
7.将文件file1.txt的内容输出到屏幕
8.将f1的字符保存到f2中
9.r
fetc(fp)
num++
10.fopen(“file.dat”,”wb”)
dt,1,9,fp
三、程序分析题
1.24
2.复制f1到f2
3.1.1
4.117799
5.65a66b67c68d69e70f71g72h75k76l77m78n79o80p
81q82r85u86v87w88x89y90z
四、编程题
1.
#includestdio.h
#includestdlib.h
intmain()
{
charfile[10],file1[10],ch;
file*in,*out;
scanf(%s,file);
scanf(%s,file1);
if((in=fopen(file,r))==null)
{
printf(cantopenfile\n);
exit(0);
}
if((out=fopen(file1,w))==null)73i74j83s84t
{
printf(cantopenfile1\n);
exit(0);
}
while(!
feof(in))
{
ch=fgetc(in);fputc(ch,out);putchar(ch);
}
fclose(in);
fclose(out);
return0;
}
2.
#includestdio.h
#includestring.h
#includeerrno.h
intmain(void)
{file*fp;
charch;
if(null==(fp=fopen(g3,r)))
{printf(fopeng3error:
%s\n,strerror(errno));return0;
}
while((ch=fgetc(fp))!
=eof)
{printf(%c,ch);}
fclose(fp);printf(\n);return0;
}
3.
#includestdio.h
voidmain()
{
file*fp;/*定义一个文件指针*/
inti;
doublea[10];if((fp=fopen(data.txt,wb+))==null)
{
printf(filecannotopen,pressanykeytoexit!
\n);getch();/*从键盘上任意输入一字符,结束程序*/exit
(1);
}
for(i=0;i10;i++)
scanf(%lf,a[i]);
for(i=0;i10;i++)fwrite(a+i,sizeof(double),1,fp);printf(\n);
rewind(fp);
fread(a,sizeof(double),10,fp);
for(i=0;i10;i++)
printf(%f\n,a[i]);
printf(\n);
fclose(fp);
}
4.
#includestdio.h
voidmain()
{
file*fp;inta[80],i,j;
inta,b,c;a=b=c=0;
if(fp=fopen(g4.dat,r))==null)
printf(读取失败\n);
for(i=0;i80;i++)
{
fscanf(fp,%d,a[i]);
if(fp==eof)
break;
}
for(j=0;j=i;j++)
{
if(a[i]0)a++;
if(a[i]0)b++;
if(a[i]==0)c++;
}
printf(正=%d,负=%d,零=%d\n,a,b,c);
}
5.
#includestdio.h
structstudent
{
charnum[10];
charname[8];
intscore[2];
floatave;
}stu[3];
voidmain()
{
inti,j,sum;
file*fp;for(i=0;i3;i++)
{
printf(\ninputscoreofstudent%d:
\n,i+1);printf(no.:
);
scanf(%s,stu[i].num);printf(name:
);
scanf(%s,stu[i].name);
sum=0;for(j=0;j2;j++)
{printf(score%d:
j+1);scanf(%d,stu[i].score[j]);sum+=stu[i].score[j];
}stu[i].ave=sum/2.0;
}fp=fopen(stud,w);
for(i=0;i3;i++)if(fwrite(stu[i],sizeof(structstudent),1,fp)!
=1)printf(filewriteerror\n);
fclose(fp);fp=fopen(stud,r);
for(i=0;i3;i++){
fread(stu[i],sizeof(structstudent),1,fp);
printf(\n%s,%s,%d,%d,%d,%6.2f\n,stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].ave);
}
}
篇三:
c语言程序设计实验指导书课后答案】
求37+29的值,实习vc环境。
#includestdio.hvoidmain()
{
inta,b,sum;
a=37;
b=29;sum=a+b;printf(sum=%d,sum);
}
(2)从键盘输入三个整数,求出最大数并输出。
#includestdio.hvoidmain()
{
inta,b,c,y;
intmax(intx,inty);printf(inputa,b,andc:
);scanf(%d,%d,%d,a,b,c);y=max(a,b);y=max(y,c);printf(\nmax=%d\n,y);
}intmax(intx,inty)
{
intz;if(xy)z=x;elsez=y;return(z);
}
(3)通过上机实践,运行下列程序并分析输出结果。
a程序代码
#includestdio.hvoidmain(){charch=a;
printf(%c对应的ascii码是:
%d\n,ch,ch);}
程序输出结果:
a对应的asc||码是:
97
b程序代码
#includestdio.hvoidmain()
{inta=168;
floatb=123.456;
floatx=35.567,y;printf(a=%5d\n,a);printf(a=%-5d\n,a);printf(b=%6.2f\n,b);printf(b=%e\n,b);
y=(int)(x*100+0.5)/100.0;printf(x=f,y=%f\n,x,y);
}程序输出结果:
a=168a=168
b=123.46b=1.234560e+002x=f,y=35.567001c程序代码
#includestdio.hvoidmain()
{
inta=168;
printf(十进制数%d对应的八进制数是%o\n,a,a);printf(十进制数%d对应的十六进制数是%x\n,a,a);
}程序输出结果:
十进制数168对应的八进制数是250十进制数168对应的十六进制数是a8实验二
2.1顺序结构
2.1.1已知a=1.5,b=5.3,c=2.9,计算s=?
?
2-4ac的结果并输出#includestdio.hvoidmain()
{
floata,b,c,s;a=1.5;
b=5.3;
c=2.9;s=b*b-4*a*c;printf(s的值是%f\n,s);
}
2.1.2输入某学生的三个科目的期末考试成绩,计算出该学生的成绩总分和平均分。
#includestdio.hvoidmain()
{
intmath,english,c_program;
floatsum,average;printf(inputmath,english,c_program:
);scanf(%d,%d,%d,math,english,c_program);sum=math+english+c_program;
average=sum/3;printf(sum=%.0f,average=%.5f,sum,average);
}
2.1.3输入圆的半径,计算圆的面积,设圆周率为3.1416.#includestdio.h
intmain()
{
floatr,s;
printf(请输入半径:
);
scanf(%f,r);
s=3.1416*r*r;
printf(圆的面积为%.6f,s);
}
2.1.4输入一个两位数,将其个位数和十位数互换后变成一个新的数,输出这个数。
#includestdio.h
intmain(void)
{
intn,a,b;printf(inputn:
);scanf(%d,n);b=n%10;
a=n/10;n=b*10+a;printf(%d\n,n);
return0;
}
2.1.5输入两个数a和b,将两数的值互换后输出新值。
#includestdio.hvoidmain()
{
intx,y,t;
scanf(%d%d,x,y);
t=x;
x=y;
y=t;
printf(x=%d,y=%d\n,x,y);
}
2.2简单分支结构
2.2.1输入两个整数,求出其中的较小值输出。
#includestdio.hintmain()
{
inta,b,min;
printf(请输入a,b:
\n);
scanf(%d,%d,a,b);
if(ab)
min=a;
else
min=b;
printf(最小值是%d\n,min);
return0;
}
2.2.2输入x的值并计算分段函数y的值。
?
?
2+2xx2#includestdio.hintmain(void)
{
doublex,y;
scanf(%lf,x);
if(x2)y=x*x+2*x;
else
y=2*x-1;
printf(%.6f,y);
return0;
}
2.2.3输入两个整数并判断两数是否相等,输出相应结论。
#includestdio.h
intmain()
{
inta,b;
printf(请输入两个整数:
\n);
scanf(%d,%d,a,b);
if(a==b)
printf(a等于b);
else
printf(a不等于b);
return0;
}
2.2.4输入一个整数,若为负数,求出它的平方;若为正数,求出它的立方,并
输出结果。
#includestdio.h
voidmain()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 教程 实验 课后 答案