C语言程序设计实验报告
专业 计算机科学与技术 班级 卓越工程师班 日期20xx年11月25日 成绩实验组别 第一组第二次实验 表达式和标准输入与输出实验 指导教师 李开 学生姓名 邱金源 学号 U201114493 实验名称表达式和标准输入与输出实验
(一) 实验目的
(1) 熟练掌握各种运算符的运算功能,操作数的类型,运算结果的类型及运算过程中的
类型转换,重点是C语言特有的运算符,例如位运算符,问号运算符等;熟记运算符的优先级和结合性。
(2) 掌握getchar , putchar , scanf和printf函数的用法。
(3) 掌握简单C程序(顺序结构程序)的编写方法。
(二) 实验内容及要求
1. 源程序改错
下面给出了一个简单C语言程序例程,用来完成以下工作:
(1) 输入华氏温度f,将它转换成摄氏温度C后输出;
(2) 输入圆的半径值r,计算并输出圆的面积s;
(3) 输入短整数k、p,将k的高字节作为结果的低字节,p的高字节作为结果的高字节,
拼成一个新的整数,然后输出
对下面的程序进行调试修改,使之能够正确完成指定任务。
程序代码
#include<stdio.h>
#deefine PI 3.14159;
void main(void)
{
int f;
shortp,k;
double c, r, s;
/*for task 1*/
printf ("Input Fahrenheit:");
scanf ("%d", f);
c = 5/9 * (f - 32);
printf ("\n%d(F) = %.2f(C)\n\n", f, C);
/*for task 2*/
printf ("input the radius r:");
scanf ("%f", &r);
s = PI * r * r;
printf ("\nThe acreage is %.2f\n\n", &s);
/*for task 3*/
printf("input hex intk,p:");
scanf ("%x%x", &k, &p);
newint = (p & 0xff00)|(k & 0ff00)<<8;
1/ 7
printf ("new int = %x\n\n", newint);
}
2.源程序修改替换
下面的程序利用常用的中间变量法实现两数交换,请改用不使用第三个变量的方法实现。 #include<stdio.h>
void main()
{
int a, b, t;
printf("Input two integers:");
scanf("%d %d", &a, &b); printf("\na = %d, b = %d", a, b);
}
3. 程序设计
编写并上机调试运行能实现以下功能的程序。
(1) 编写一个程序,输入字符c,如果c是大写字母,则将c转化为对应的小写,否则c
的值不变,最后输出c。
(2) 编写一个程序,输入无符号短整数x,m,n(0<=m<=15,1<=n<=16-m),取出x从第m位开
始向左的n位(m从右至左编号为0~15),并使其向左端(第15位)靠齐。
(3) IP地址通常是4个用句点分隔的小整数(即点分十进制)。这些地址在机器中用无符
号长整形表示。编写一个程序,以机器存储的形式读入一个互联网IP地址,对其译码,然后用常见的句点分隔的4部分的形式输出。
(三) 实验步骤及结果
1. 源程序改错实验步骤及要求
(1)创建一个工程
建立名为prj1的工程。
(2)编辑源文件和保存
用1中的程序代码替换prj1工程中的main.c的源代码,编辑完毕后保存。
(3)编辑和运行程序
运行结果如图
2/ 7
结果显然错误,下面进行调试。
(4) 调试程序
(A)启动调试器
用单步执行进行调试
执行到第十一行时发现C = 0。(图1)分析:f是Int型,所以进行的是整数除,而C是double型,故输出结果为0。因此应在等号后加“(double)”。
执行到第17行使时,s= 78.53(图2),正确。可输出结果为0.00(图3)。
改错:应将源程序中“&s”改为“s”。
(B)终止调试器
程序结果为:
3/ 7
观察:运行过程中输入Fahrenheit=50,r=5,k=100,p=200,观察输结果。 结果如图:
正确!
2. 源程序修改替换实验步骤及要求
(1)创建一个工程
建立名为prj2的工程。
(2)编辑源文件和保存
用2中的程序代码替换prj2工程中的main.c的源代码,编辑完毕后保存。
(3)对源程序进行修改
将int语句中的t删除,并将划线语句改为“a = a + b; b = a - b; a = a - b;”(如图)
4/ 7
(5) 运行程序
输入a = 1,b = 3,观察结果。(如图)
结果正确!
3. 程序设计实验步骤及要求
(1)程序1
(A)创建一个工程
建立名为prj3的工程。
(B)编写并运行程序
程序和运行结果如图。
结果符合要求!
(2)程序2
(A)创建一个工程
5/ 7
建立名为prj4的工程。
(B)编写并调试程序
(C)运行程序
输入x = 300 m = 5 n = 5观察程序运行结果
正确!
(4) 程序3
(A)创建一个工程
建立名为prj5的工程。
(B)编写并运行程序
(C)运行程序
输入676879571观察程序运行结果
6/ 7
结果正确!
(四) 实验体会
学习C语言要熟练掌握各种运算符的运算功能,操作数的类型,运算结果的类型以及运算过程中的类型转换。还要熟记运算符的优先级和结合性。稍有一点错误就会对程序的结果造成影响,导致结果的不准确。所以在这方面一定要严谨。虽然在编写程序时难免犯错,但我们要通过不断的练习来提高正确性!
要熟练掌握getchar, putchar, scanf和printf这些基本函数的用法,是编写过程更为流畅。 每个C程序都要包含顺序结构程序,所以掌握顺序结构程序的编写方法对于程序的编写尤为重要。编写程序时要仔细认真,尽量减少犯错,节省调试时间,做到高效准确!
7/ 7
第二篇:C语言程序设计实验报告(二)
C语言程序设计实验报告