《c程序设计教程与实验课后实验答案》由会员分享,可在线阅读,更多相关《c程序设计教程与实验课后实验答案(10页珍藏版)》请在金锄头文库上搜索。
1、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、
2、sum */ printf(please input a,bn); /* 输出提示信息 */(1计算x*y的值并将结果输出。试纠正程序中存在的错误,以实现 其功能。程序以文件名 sy1_2.c 保存。#include stdio.hmainmain() 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.h1viod main()
3、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”x,)m; aprintf( “ max=%d” ,max); 3程序填空题(1)从键盘输入两个整数,输出这两个整数的和。根据注释信息填写 完整程序,以实现其功能。以文件名 sy1_4.c 保存。#includestdio.h main() /* 定义整型变量 x,y,total*/ printf(please input x,y !
4、);/* 输出提示信息 */*由键盘输入两个数分别赋予 x 和 y*/ total=x+y;/* 赋值语句 */ printf(%d + %d=%dn,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)编
5、程序,运行后输出如下信息: “ 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=
6、%dn,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*
7、3.14159*r2*h;v=1.0/3*3.14159*r*r*h; printf(v=%dn,v)printf(v=%dn,v); (2) 下列程序的功能为:通过键盘输入两个整数分别存放在变量x、y中,不借用第 3 个变量实现变量 x、y 互换值。纠正程序中存在的错 误,以实现其功能。程序以文件名 sy2_2.c 保存。#include stdio.h main() 4int x,y;printf( 请输入两个整数 n);scanf(%d%d,x, y);scanf(%d%d,x, y); printf( 初始状态下的 x : %d y: %dn,x,y );x=x+yx=x+y; y=x
8、-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
9、()int a,b,c,;printf(please input a,b,c: );printf(a=%dnb=%dnc=%dn,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?x3x?4x?102【篇二: c 程序设计教程与实验第 10 章习题参考答案】1 二进制 文本2 rewind()3 字节 流式4”abc.dat
10、” “rb ”5 06 将文件位置指针从文本末尾处向文件头的方向移动10 个字节7 将文件 file1.txt 的内容输出到屏幕8 将 f1 的字符保存到 f2 中9 rfetc(fp)num+10 fopen( “file.dat ” , ” wb”)dt,1,9,fp三、程序分析题1 242 复制 f1 到 f23 1.14 1177995 65a 66b 67c 68d 69e 70f 71g 72h 75k 76l 77m 78n 79o 80p81q 82r 85u 86v 87w 88x 89y 90z四、编程题1.#includestdio.h#includestdlib.hin
11、t main()char file10,file110,ch;file *in,*out;scanf(%s,file);scanf(%s,file1);if(in=fopen(file,r)=null)printf(cant open filen);exit(0);if(out=fopen(file1,w)=null) 73i 74j 83s 84tprintf(cant open file1n);exit(0);while(!feof(in)ch=fgetc(in); fputc(ch,out); putchar(ch);fclose(in);fclose(out);return 0;2.#
12、include stdio.h#includestring.h#include errno.hint main(void)file *fp;char ch;if (null = (fp = fopen(g3, r)printf(fopen g3 error: %sn, strerror(errno); return 0;while (ch = fgetc(fp)!=eof)printf(%c, ch); fclose(fp); printf(n); return 0;3.#includestdio.hvoid main()file *fp; /* 定义一个文件指针 */int i;double
13、 a10; if(fp=fopen(data.txt,wb+)=null)printf(file can not open,press any key to exit!n); getch(); /* 从键盘上任意输入一字符,结束程序 */ exit(1);for(i=0;i10;i+)scanf(%lf,ai);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(%fn,ai);printf(n);fcl
14、ose(fp);4.#includestdio.hvoid main()file *fp;int a80,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,ai);if(fp=eof)break;for(j=0;j=i;j+)if(ai0) a+;if(ai0) b+;if(ai=0) c+;printf(正=%d,负=%d,零=%dn,a,b,c);5.#includestdio.hstruct studentchar num10;char name8;int score2;float ave; stu3;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,stui.num); printf(name:);scanf(%s,stui.name);sum=0; for(j=0;j2;j+) printf(s