《C语言程序设计》实验报告(实验111)2013.3
《 C 语言程序设计》 实验报告 2012~ 2013 学年第二学期 班 级 姓 名 学 号 指导教师 - 1 - 实验一 实验项目名称:C 程序的运行环境和运行 C 程序的方法 所使用的工具软件及环境:Visual C++ 6.0 一、实验目的: 1 .了解在 Visual C++ 6.0环境下如何编辑、编译、连接和运行一个 C 程序; 2 .通过运行简单的 C 程序,初步了解 C 源程序的特点。 二、预习内容: 教材《C 语言程序设计教程》第 1 章。 三、实验内容: 1. 在 Visual C++ 6.0环境下输入并运行下面的程序: #include int main( ) { printf("This is a C program.\n"); return 0; } 2. 在 Visual C++ 6.0环境下输入下面的程序( 有语法错误) ,编译、连接、调试该程序,直至程序 无语法错误,然后运行程序,并观察分析运行结果。 #include int main( ) { int a,b,sum a=3; b=4; sun=a+b; print(“%d+%d=%d\n”,a,b,sum); return 0; } 四、实验结果: 1. 运行结果( 或截图) : - 2 - 2. (1) 改正后的源程序: (2) 运行结果( 或截图) : 五、思考题: 1. 一个 C 程序上机的步骤有哪些? 答: 2. 组成 C 程序的基本单位是函数,一个函数包括哪几个部分? 答: 成绩 指导教师签名 - 3 - 实验二 实验项目名称:数据类型、运算符和表达式 所使用的工具软件及环境:Visual C++ 6.0 一、实验目的: 1 .掌握整型、实型与字符型这三种基本类型的概念; 2 .掌握常量及变量的使用方法; 3. 掌握基本算术运算符及其表达式的使用方法; 4. 掌握++、--运算符、赋值运算符及其表达式的使用方法。 二、预习内容: 教材《C 语言程序设计教程》第 2 章。 三、实验内容: 1. 在 Visual C++ 6.0环境下输入下面的程序,编译、连接、调试该程序。 main( ) { char m,n; m=280; n=320; printf(“%d\t%d\n”,m,n); printf(“%c\t%c\n”,m,n); } 2. 在 Visual C++ 6.0环境下输入并运行下面的程序,观察分析运行结果。 #include int main( ) { int a=3,b=4,c=8; float d,e; d=a+b/c; e=a+(float)b/c; printf("d=%f,e=%f\n",d,e); } 3. 在 Visual C++ 6.0环境下输入并运行下面的程序,观察分析运行结果。 #include main( ) { int a,b,c,d,i,j,m,n; a=b=c=d=3; i=a++; j=++b; m=c--; - 4 - n=--d; printf(“a=%d,b=%d,c=%d,d=%d,i=%d,j=%d,m=%d,n=%d\n“,a,b,c,d,i,j,m,n); } 4. 在 Visual C++ 6.0环境下输入并运行下面的程序,观察分析运行结果。 #include main( ) { int a=4; a+=a-=a*a+a; printf(“a=%d\n“,a); } 四、实验结果: 1. 运行结果( 或截图) : 2. 运行结果( 或截图) : 3. 运行结果( 或截图) : 4. 运行结果( 或截图) : 五、思考题: 1. 给变量命名应该注意哪些问题? 答: - 5 - 2. 程序 2 的运行结果中,d 和 e 的值为什么不同? 答: 3. 程序 3 的运行结果中,i 和 j 的值为什么不同?m 和 n 的值为什么不同? 答: 4. 请分析表达式 a+=a-=a*a+a的运算过程( 写出运算步骤) 。 答: 成绩 指导教师签名 - 6 - 实验三 实验项目名称:简单的输入输出及顺序程序设计 所使用的工具软件及环境:Visual C++ 6.0 一、实验目的: 1. 掌握整型、实型与字符型数据的正确输入方法(scanf函数的使用) ; 2. 掌握整型、实型与字符型数据的正确输出方法(printf函数的使用) ; 3. 掌握编写顺序程序的方法。 二、预习内容: 教材《C 语言程序设计教程》第 3 章。 三、实验内容: 1. 编写 C 程序,按下列公式计算并输出 S 的值,其中 a 和 b 的值有键盘输入。 2)( 2 ba ab s main() { int a,b; float s; scanf(“%d,%d”, s=2.0*a*b/(a+b) /(a+b); printf(“s=%f\n”,s); } ①输入并调试。 ②将 scanf函数改为 scanf(“%d%d”, printf(“请输入第一个整数:“); scanf(“%d“, printf(“请输入第二个整数:“); scanf(“%d“, sum=a+b; printf(“%d+%d=%d\n“,a,b,sum); } 3. 设圆半径 r=1.5,编写程序求圆周长、圆面积和圆球的体积。要求用 scanf语句输入半径,输 出时取小数点后两位。 - 7 - 四、实验结果: 1. 输入数据 4 ,5 输入修改后的数据 4 5 4 ↙5 ↙ 运行结果 运行结果 原因 原因 2. 运行结果( 或截图) : 3. (1) 程序中用到的变量( 类型) (2) 算法( 用伪代码描述或自然语言) (3) 源程序清单 - 8 - (4) 运行结果( 或截图) 五、思考题: scanf(“%d,%d”, scanf(“ “, k=2*n-1; ; for(i=1;i=k; ) s+=i; printf(“1+3+„+%ld=%ld\n”,k,s); } 方法 2 :用 while语句实现。 main() {long ,n,i=1; scanf(“%ld”, while( ) {s+=i; ;} printf(“1+3+„+%ld=%ld\n”,2*n-1,s); } 方法 3 :用 do-while语句实现。 main() {long s=0,n,i=1; scanf(“%ld”, do {s+=i; i=i+2;} while( ); printf(“1+3+„+%ld=%ld\n”,2*n-1,s); } 填上所缺的空,运行程序,写出结果。 2.输入两个正整数,求其中最大公约数和最小公倍数。 四、程序中所用的变量( 类型及其初值) : - 14 - 2. 五、算法( 用伪代码描述) : 2. 六、源程序清单: 2. 七、实验结果: 1. 在下表中写出输入的数据及其运行结果: 方法 1 方法 2 方法 3 输入数据 运行结果 2. 运行结果( 或截图) : 成绩