实验目的:使学生加深对讲授内容的理解,巩固学习内容,熟悉c程序设计思想,熟练掌握在某一软件(如tc,vc等)中编写、编辑、编译和调试程序的基本方法。
实验要求:1. 应做好上机准备。
2.学生应做到独立上机操作。
3.对实验报告的要求:学生应填写实验报告,记录实验经过、实验结果。实验报告的主要内容包括:
1)实验目的和内容;
2)实验的简单过程;
3)实验的结果。
考试(考核)方式:
上机考查——让学生在规定的时间内修改、编译、调试和设计出解决某些问题的程序。根据考查结果,结合平时各个实验成绩,评定出综合实验成绩。实验考核成绩占考试总分的 %。
表1 实验基本情况。
熟悉tc等编程环境,编写具有输入、输出等基本功能、结构简单的程序。
1、 输入并运行一个简单的、正确的程序。
输入如下程序。
#include<>
void main()
printf(“this is a c program.”);
根据本书第二部分介绍的方法对源程序进行编译,观察屏幕上显示的编译信息。如果出现“出错信息”,则应找出原因并改正之,再进行编译,如果无错,则进行连接。
操作步骤:1、打开tc++3.0。(双击。。。如何打开)
2、 新建文件。(如何如何)
3、 对源程序进行编译。(如何如何,菜单项|快捷键,在哪看到编译信息,是怎样的信息。。。
4、 连接程序。(菜单项|快捷键,信息)
如果编译连接无错误,使程序运行,观察分析运行结果。
操作步骤:运行程序。(菜单项|快捷键。。。
运行结果:this is a c program.(nlnl=new line , lf=line feed)
结果分析:该程序的功能是。。。
2、 输入并编辑一个有错误的c程序。
输入以下程序。
#include<>
void main()
int a,b,sum
a=123;b=456;
sum=a+b
print(“sum is %d”,sum);
进行编译,仔细分析编译信息窗口,可能显示多个错误,逐个修改,直到不出现错误。最后请与教材上的程序对照。
分析: a,b,sum 末尾少了分号;
使程序运行,分析运行结果。
运行结果:结果分析:
3、 输入并运行一个需要在运行时输入数据的程序。
#include<>
void main()
int max(int x,int y);
int a,b,c;
printf(“input a & b:”)
scanf(“%d,%d”,&a,&b);
c=max(a,b);
printf(“max=%d”,c);
int max(int x,int y)
int z;
if (x>y) z=x;
else z=y;
return (z);
编译并运行,在运行时从键盘输入整数2和5,然后回车,观察运行结果。
运行结果:input a & b: 2 5 ↙
max=5(nl)
将程序的第3行改为 int a;b;c; 再进行编译,观察其结果。
结果:编译不通过,出错提示是——。
分析:。。为什么出错)
将max函数中的第行两行合并写为一行,即if (x>y) z=x;else z=y;进行编译和运行,分析结果。
编译通过。运行结果:
分析:结果与不分行是一样的。这是因为。。。
4、输入并运行下面的程序:
#include<>
void main()
char c1,c2;
c1=’a’;
c2=’b’;
printf(“%c,%c”,c1,c2);
运行此程序;
在printf语句下面再增加一个printf语句:
printf(“%d %d”,c1,c2);
运行分析结果。
将第3行改为:
int c1,c2;
运行,观察结果。
将第4/5行改为:
c1=a;c2=b;
运行,分析结果。
将第4/5行改为:
c1=”a”;
c2=”b”;
运行,分析结果。
将第4/5行改为:
c1=300;
c2=400;
运行,分析结果。
5、输入教材第2章习题2.6给出的程序。
先人工分析结果,再与上机结果对比。
6、输入并运行下面的程序:
#include<>
void main()
int a,b;
unsigned c,d;
long e,f;
a=100;
b=-100;
e=50000;
f=32767;
c=a;d=b;
printf(“%d,%d”,a,b);
printf(“%u,%u”,a,b);
printf(“%u,%u”,c,d);
c=a=e;
d=b=f;
printf(“%d,%d”,a,b);
printf(“%u,%u”,c,d);
请对照程序和运行结果分析:
将一个负整数赋给一个无符号的变量,会得到什么结果。
将一个大于32767的长整数赋给整型变量(以tc为例),会得到什么结果。
将一个长整数赋给无符号变量,会得到什么结果(分别考虑长整数的值大于或等于65536和小于65536的情况)
改变程序中各变量的值,做比较。
7、输入习题2.9
运行程序,注意i,j,m,n各变量的值。分别做以下改动并运行。
将第6,7行改为:
m=i++;
n=++j;
再运行。程序改为:
#include<>
void main()
int i,j;
i=8;j=10;
printf(“%d,%d”,i++,j++)
在c题的基础上,将printf语句改成:
printf(“%d,%d”,+i,++j);
再将printf语句改成:
printf(“%d,%d,%d,%d”,i,j,i++,j++)
程序改为:#include<>
void main()
int i,j,m=0,n=0;
i=8;j=10;
m+=i++;n-=-j;
printf(“i=%d,j=%d,m=%d,n=%d”,i,j,m,n);
8、按要求编好程序。题目为:从键盘输入7个字母,并将它们译成密码,密码规律是:用原来的字母后面第6个字母代替原来的字母。
a. 输入程序,运行。在运行时输入3组不同的字符,分析结果是否正确。
b.将译码规律改为:将一个字母被它前面的第4个字母代替,修改程序并运行,分析结果。
9、通过下面程序掌握各种格式转换符的正确使用方法。
输入以下程序:
#include<>
void main()
int a,b;
float d,e;
char c1,c2;
double f,g;
long m,n;
unsigned int p,q;
a=61;b=62;
c1=’a’;c2=’b’;
d=3.56; e=-6.87;
f=3157.890121; g=0.123456789;
m=50000; n=-60000;
p=32768; q=40000;
printf(“a=%d,b=%dc1=%c,c2=%cd=%6.2f,e=%6.2f”,a,b,c1,c2,d,e);
printf(“f=%15.6f,g=%15.12m=%ld,n=%ldp=%u,q=%u”,f,q,m,n,p,q);
运行此程序并分析结果。
在此基础上,将程序第9~14行改为:
a=61;b=62;
c1=a;c2=b;
f=3157.890121; g=0.123456789;
d=f; e=g;
p=a=m=50000; q=b=n=-60000;
运行程序,分析结果。
改用scanf函数输入数据而不用赋值语句,scanf函数如下:
scanf(“%d,%d,%c,%c,%f,%f,%lf,%lf,%ld,%ld,%u,%u”,&a,&b,&c1,&c2,&d,&e,&f,&g,&m,&n,&p,&q);
输入的数据如下:
61,62,a,b,3.56,-6.87,3157.890121,0.123456789,50000,-60000,37678,40000 ↙
分析运行结果。
说明:lf和ld格式符分别用于输入double型和long型数据)。
在④的基础上将printf语句改为:
printf(“a=%d,b=%dc1=%c,c2=%cd=%15.6f,e=%15.12f”,a,b,c1,c2,d,e);
printf(“f=%f,g=%fm=%d,n=%dp=%d,q=%d”,f,g,m,n,p,q);
将p,q改用%o格式输出。
将scanf函数中的%lf和%ld改为%f和%d,运行程序并观察分析结果。
10.按要求编写程序,并上机运行。题目为:输入一个摄氏温度,要求输出华氏温度。公式为。
f=9/5c+32
输出要有文字说明,取3位小数。
11.编写程序,用getchar函数读入两个字符给c1和c2,然后分别用putchar函数和scanf 函数输出这两个字符。
上机运行程序,比较用printf和putchar函数输出字符的特点。(选做)
编写使用选择和循环等程序控制语句的程序。
1、 习题4.5(作业)
运行程序,输入x的值(分别为3种情况),检查输出y的值是否正确。
C 实验安排
c 实验1 熟悉c 编程环境vc6.0 1 实验目的。1 了解vc 6.0集成开发环境。2 掌握vc 6.0进行程序设计的基本步骤。3 学会在vc 6.0环境下进行简单c 程序设计。2 基本要求。1 了解vc 6.0的集成开发环境。2 能在vc 6.0进行简单的c 程序设计。3 实验内容。1 输出一...
C 课程实验安排
2011级 面向对象程序设计 课程实验安排。实验内容安排表。实验1 熟悉vc ide环境 一 实验目的。1 熟悉vc 6.0集成开发环境,熟练掌握vc 6.0项目工作区 编辑器 菜单栏和工具栏的使用。2 掌握如何编辑 编译 链接和运行一个c 程序。3 学会使用输入输出标准流对象进行输入 输出。二 实...
C 实验3安排
c 实验3 类和对象 一 1 实验目的 1 基本概念 类 数据成员 成员函数,类内和类外对成员访问的区别。2 理解类的概念 掌握类的定义及对象的创建。3 熟练掌握类的成员函数的定义和调用 是否静态成员函数有区别 2 基本要求。1 理解类和对象的概念,理解面向对象编程的主要特征即数据主动函数被动。2 ...