文档库 最新最全的文档下载
当前位置:文档库 › c程序设计教程与实验课后实验答案

c程序设计教程与实验课后实验答案

c程序设计教程与实验课后实验答案

【篇一:c程序设计教程与实验__吉顺如__实验一到七】> 一、实验目的

1.掌握在visual c++6.0环境下c程序的建立、编辑、编译和执行

过程。 2.掌握c程序的最基本框架结构,完成简单程序的编制与运

行和调试。 3.掌握发现语法错误、逻辑错误的方法以及排除简单错

误的操作技能。二、实验内容

1.从键盘输入两个数a和b,求它们的平方和,并在屏幕上输出。

输入该c程序,编译并运行之,记下屏幕的输出结果,以文件名

sy1_1.c保存。

#include stdio.h main() {

int a,b,sum; /*定义整型变量a、b、sum */ printf(please input a,b \n); /*输出提示信息*/

(1计算x*y的值并将结果输出。试纠正程序中存在的错误,以实现

其功能。程序以文件名sy1_2.c保存。

#include stdio.h

mainmain()

{ int x=2;y=3;a int x=2,y=3,a; a=x*ya=x*y;

print (a=%d,a);printf (a=%d,a); printf(\n);

}

(2)下程序的功能为:求两数中的较大数据并输出。纠正程序中

存在的错误,以实现其功能。程序以

文件名sy1_3.c保存。

#include stdio.h

1

viod main()voidmain() {

int a ,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”,ma x);

printf(“max=%d”,max); }

3.程序填空题

1)从键盘输入两个整数,输出这两个整数的和。根据注释信息填写

完整程序,以实现其功能。以文件名sy1_4.c保存。

#includestdio.h main() {

/* 定义整型变量x,y,total*/ printf(please input x,y !);/*输出提示信

息 */

/*由键盘输入两个数分别赋予x和y*/ total=x+y;/*赋值语句 */

printf(%d + %d=%d\n,x,y,total);/* 输出两个整数的和 */ }

(2)从键盘输入两个整数,输出这两个整数的差。根据注释信息填

写完整程序,以实现其功能。程序以文件名sy1_5.c保存。

#includestdio.h main() {

int a,b,m;printf(input a,b please !);scanf(%d%d,a,b);

/*赋值语句,将a和b的差值赋给m */

/* 输出a 和b差的结果值后换行 */ }

4.编程题

2

(1)编程序,运行后输出如下信息:“better city,better life!”。程

序以文件名sy1_6.c保存。 #include stdio.h main() {

printf(better city,better life!\n);}

(2)编程序,从键盘输入3个整数,输出它们的平方和。程序以文件名sy1_7.c保存。 #include stdio.h main() {

int a,b,c,sum; printf(please input a,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保存。计算圆锥体积的公式为:

#include stdio.h#includestdio.h main();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保存。

#include stdio.h main() { }

4

int x,y;

printf(请输入两个整数\n);

scanf(%d%d,x, y);scanf(%d%d,x, y); printf(初始状态下的x:%d y: %d\n,x,y );x=x+yx=x+y; y=x-y; x=x-y;

printf(最终状态下的x

:%d y: %d/n,x,y);

2.程序填空题

(1)计算当x=4时,公式y序以文件名sy2_3.c保存。

#include stdio.h main() {

float x=4.0,y;

printf(%f,y); }

(2) 下列程序的功能为:从键盘输入3个整数分别存入变量a、b、c,然后,将变量a的值存入变量b,将变量b的值存入变量c,将

变量c的值存入变量a,输出经过转存后变量a、b、c的值。(提示:使用中间变量)补充完善程序,以实现其功能。程序以文件名

sy2_4.c保存。

#include stdio.h main()

{

int a,b,c,;

printf(please input a,b,c: );

printf(a=%d\nb=%d\nc=%d\n,a,b,c); }

3.编程题

(1)从键盘输入3个大写英文字母,把它们转换成小写字母后输出。程序以文件名sy2_5.c保存。

#include stdio.h main() {

char c1,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. 65a 66b 67c 68d 69e 70f 71g 72h 75k 76l 77m 78n 79o 80p 81q 82r 85u 86v 87w 88x 89y 90z

四、编程题

1.

#includestdio.h

#includestdlib.h

int main()

{

char file[10],file1[10],ch;

file *in,*out;

scanf(%s,file);

scanf(%s,file1);

if((in=fopen(file,r))==null)

{

printf(cant open file\n);

exit(0);

}

if((out=fopen(file1,w))==null) 73i 74j 83s 84t

{

printf(cant open file1\n);

}

while(!feof(in))

{

ch=fgetc(in);

fputc(ch,out);

putchar(ch);

}

fclose(in);

fclose(out);

return 0;

}

2.

#include stdio.h

#includestring.h

#include errno.h

int main(void)

{file *fp;

char ch;

if (null == (fp = fopen(g3, r)))

{printf(fopen g3 error: %s\n, strerror(errno));

return 0;

}

while ((ch = fgetc(fp))!=eof)

{printf(%c, ch); }

fclose(fp);

printf(\n);

return 0;

}

3.

#includestdio.h

void main()

{

file *fp; /*定义一个文件指针*/

int i;

double a[10];

if((fp=fopen(data.txt,wb+))==null)

{

printf(file can not open,press any key to exit!\n); getch(); /*从键盘上任意输入一字符,结束程序*/

}

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

void main()

{

file *fp;int a[80],i,j;

int a,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

struct student

{

char num[10];

char name[8];

int score[2];

float ave;

} stu[3];

void main()

{

int i,j,sum;

file *fp;

for(i=0;i3;i++)

{

printf(\ninput score of student %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(struct student),1,fp)!=1)

printf(file write error\n);

fclose(fp);

fp=fopen(stud,r);

for(i=0;i3;i++)

{

fread(stu[i],sizeof(struct student),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.h

void main()

{

int a,b,sum;

a=37;

b=29;

sum=a+b;

printf(sum=%d,sum);

}

(2)从键盘输入三个整数,求出最大数并输出。

#includestdio.h

void main()

{

int a,b,c,y;

int max(int x,int y);

printf(input a,b,and c:);

scanf(%d,%d,%d,a,b,c);

y=max(a,b);

y=max(y,c);

printf(\nmax=%d\n,y);

}

int max(int x,int y)

{

int z;

if(xy) z=x;

else z=y;

return(z);

}

(3)通过上机实践,运行下列程序并分析输出结果。

a 程序代码

#includestdio.h

void main()

{

char ch=a;

printf(%c对应的ascii码是:%d\n,ch,ch);

}

程序输出结果:a对应的asc||码是:97

b 程序代码

#includestdio.h

void main()

{

int a=168;

float b=123.456;

float x=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=168

a=168

b=123.46b=1.234560e+002

x=f,y=35.567001

c程序代码

#includestdio.h

void main()

{

int a=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.h

void main()

{

float a,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输入某学生的三个科目的期末考试成绩,计算出该学生的成

绩总分和平均分。

#include stdio.h

void main()

{

int math,english,c_program;

float sum ,average;

printf(input math,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

int main()

{

float r,s;

printf(请输入半径:);

scanf(%f,r);

s=3.1416*r*r;

printf(圆的面积为%.6f,s);

}

2.1.4输入一个两位数,将其个位数和十位数互换后变成一个新的数,输出这个数。

#include stdio.h

int main(void)

{

int n,a,b;

printf(input n:);

scanf(%d,n);

b=n%10;

a=n/10;

n=b*10+a;

printf(%d\n,n);

}

2.1.5输入两个数a和b,将两数的值互换后输出新值。 #include stdio.h

void main()

{

int x,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.h

int main()

{

int a,b,min;

printf(请输入 a,b:\n);

scanf(%d,%d,a,b);

if (ab)

min=a;

else

min=b;

printf(最小值是 %d\n,min);

return 0;

}

2.2.2 输入x的值并计算分段函数y的值。 ??2+2x x2 #include stdio.h

int main(void)

{

double x,y;

scanf(%lf,x);

if(x2)

y=x*x+2*x;

else

y=2*x-1;

printf(%.6f,y);

}

2.2.3 输入两个整数并判断两数是否相等,输出相应结论。

#includestdio.h

int main()

{

int a,b;

printf(请输入两个整数:\n);

scanf(%d,%d,a,b);

if(a==b)

printf(a等于b);

else

printf(a不等于b);

return 0;

}

2.2.4 输入一个整数,若为负数,求出它的平方;若为正数,求出它的立方,并

输出结果。

#includestdio.h

void main()

相关文档
相关文档 最新文档