1、C语言上机实验答案 C语言程序设计 上机实验指导与习题(第二版) 参考答案 (仅供教师内部参考) 华南农业大学 上机实验.1 实验 1 C 语言程序初步.1 一、实验目的.1 二、实验内容.1 实验 2 基本数据类型、运算和表达式.2 一、实验目的.2 二、实验内容.2 实验 3 基本输入与输出.4 一、实验目的.4 二、实验内容.4 实验 4 选择结构程序设计.3 一、实验目的.3 二、实验内容.3 实验 5 循环结构程序设计(一).8 一、实验目的.8 二、实验内容.8 实验 6 循环结构程序设计(二).14 一、实验目的.14 二、实验内容.14 实验 7 数组.17 一、实验目的.17
2、 二、实验内容.17 实验 8 字符数组的应用.21 一、实验目的.21 二、实验内容.21 实验 9 函数的基本应用.24 一、实验目的.24 二、实验内容.24 实验 10 指针与结构体.26 一、实验目的.26 二、实验内容.26 实验 11 链表.29 一、实验目的.29 二、实验内容.29 实验 12 文件.32 一、实验目的.32 二、实验内容.32 1 上机实验 实验 1 C语言程序初步 一、实验目的 (1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。 (2)了解在该系统上如何编辑、编译、连接和运行一个 C程序。 (3)通过运行简单的 C程序,初步了解 C 程序的特点
3、。 (4)在教师的指导下,学会使用 JudgeOnline 实验系统。 二、实验内容 1. 运行第一个 C 程序 略 2. 在 JudgeOnline 系统中提交实现了计算 a+b 功能的程序 略 2 实验 2 基本数据类型、运算和表达式 一、实验目的 (1)掌握 C语言数据类型,熟悉如何定义一个整型和实型的变量,以及对它们赋值的方法。 (2)掌握不同的类型数据之间赋值的规律。 (3)学会使用 C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加(+)和自减(-)运算符的使用。 (4)进一步熟悉 C 程序的编辑、编译、连接和运行的过程。 二、实验内容 题目 1117:变量定义,按要求完
4、成程序 下面给出一个可以运行的程序,但是缺少部分语句,请按右边的提示补充完整缺少的语句。 #include stdio.h main() int a, b; /*定义整型变量 a和 b*/ int i, j; /*定义实型变量 i和 j*/ a=5; b=6; i=3.14; j=i*a*b; printf(a=%d,b=%d,i=%f,j=%fn, a, b, i, j); 具体操作步骤 (1)将代码补充完整; (2)在 TC或 VC+上运行通过; (3)在 JudgeOnline 实验系统上提交; 题目 6568:在显示屏上显示指定字符 要求编写一个程序,在显示屏上显示如下内容(全为半角字
5、符,且不包含空格) : C:ABC.TXT 提示 注意转义字符在程序中的使用。 参考程序: #include stdio.h main() printf(C:ABC.TXT); 3 题目 1118:赋值表达式与赋值语句,写出程序运行结果 阅读下面程序,写出运行结果: #include stdio.h main() float a; int b, c; char d, e; a=3.5; b=a; c=330; d=c; e=141; printf(%f,%d,%d,%c,%c, a,b,c,d,e); 运行结果为: 3.500000,3,330,J,a 提示赋值语句具有类型转换的功能,但可能会
6、改变数据。 题目 1119:基本运算,写出程序运行结果 阅读下面程序,写出运行结果: #include stdio.h main() int a, b, c; float d=15, e, f; a=35%7; b=15/10; c=b+; e=15/10; f=d/10; printf(%d,%d,%d,%f,%f,%f, a,b,c,d,e,f); 运行结果为: 0,2,1,15.000000,1.000000,1.500000 提示除法分整除与普通除法之分。 4 实验 3 基本输入与输出 一、实验目的 (1)熟练掌握 putchar、getchar、printf、scanf函数的使用方法
7、。 (2)掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。 二、实验内容 题目 1126:字符的输入与输出 编程实现由键盘输入一个字符后,在屏幕上输出该字符。 第一组自测数据 键盘输入 a 正确输出 a 第二组自测数据 键盘输入 + 正确输出 +参考程序: #include stdio.h main() char ch; ch = getchar(); putchar(ch); 题目 1127:计算加法 编程实现由键盘输入一个加法式,输出正确的结果。 (两个加数均为整数) 第一组自测数据 键盘输入 10+20 正确输出 30 第二组自测数据 键盘输入 -15+60 正确输出 45
8、参考程序: #include stdio.h main() int a, b; scanf(%d%*c%d, &a,&b); printf(%d, a+b); 题目 1014:求圆面积 由键盘输入圆半径 r,请计算该圆的面积。 (注: 取 3.14159,结果保留两位小数位;另外,程序只要能对 r在 0到 10000 范围的情况输出正确答案即可) 第一组自测数据 键盘输入 2 65.2 正确输出 13355.02 第二组自测数据 键盘输入 11.2 正确输出 394.08 提示结果保留两位小数可采用 printf函数的格式控制字符来实现。 参考程序: #include stdio.h main
9、() float area,r; scanf(%f,&r); area=3.14159*r*r; printf(%0.2f,area); 题目 1015:计算摄氏温度值 从键盘输入一个华氏温度值,要求按格式输出其对应的摄氏温度值,精确到小数点后两位。 数学公式描述为: 5 /9 *(F 32 )= C 第一组自测数据 键盘输入 100 正确输出 37.78 第二组自测数据 键盘输入 100 正确输出 37.78 提示注意公式中的除为普通除法。 参考程序: #include main() float f,c; scanf(%f,&f); c=5.0/9*(f-32); printf(%.2f,c
10、); 3 实验 4 选择结构程序设计 一、实验目的 (1)了解 C语言表示逻辑的方法(以 0 代表“假” ,以非0代表“真” ) 。 (2)学会正确使用逻辑运算符和逻辑表达式。 (3)熟练掌握 if语句和 switch 语句。 (4)结合程序掌握一些简单的算法。 二、实验内容 题目 1120:判断点是否在圆上 由键盘输入一个点的坐标, 要求编程判断这个点是否在单位圆上,点在圆上输出 Y, 不在圆上输出N。使用小数点后 3 位精度进行判断。 第一组自测数据 键盘输入 0.707,0.707 正确输出 Y 第二组自测数据 键盘输入 0.5,0.5 正确输出 N 提示(1)平面上的点与圆的关系分为在
11、圆内、在圆上、在圆外三种,本题要求判断是否在圆上; (2)判断两实数相等采用判断这两实数的差的绝对值小于规定误差精度(本题为 0.001)的方法实现。 参考程序: #include stdio.h #include math.h main() float a,b; scanf(%f,%f,&a,&b); iffabs(a*a+b*b-1)99999999) place=9; else if(n9999999) place=8; else if(n999999) place=7; else if(n99999) place=6; else if(n9999) place=5; else if(n
12、999) place=4; else if(n99) place=3; else if(n9) place=2; else place=1; printf(%ldn,place); 题目 1018:数的排序 由键盘输入三个整数 a、b、c,按从小到大的顺序输出这三个数。 第一组自测数据 键盘输入 65,45,90 正确输出 45,65,90 第二组自测数据 键盘输入 9,6,3 正确输出 3,6,9 参考程序: #include main() int a,b,c,t; scanf(%d,%d,%d,&a,&b,&c); if(ab) t=a;a=b;b=t; if(ac) t=a;a=c;c=t; if(bc) t=b;b=c;c=t; printf(%d,%d,%d,a,b,c); 题目 1016:字