文档库 最新最全的文档下载
当前位置:文档库 › 初等C语言实验大全

初等C语言实验大全

初等C语言实验大全
初等C语言实验大全

实验一熟悉C 语言上机环境

一、实验目的

1、了解和使用VC集成开发环境

2、理解简单的C程序结构

3、了解用VC开发Win32控制台程序的过程

二、实验内容和步骤

1、启动Microsoft Visual C++。

2、了解VC界面、菜单、工具栏,了解各个菜单和工具的功能。

3、编写简单的Win32控制台应用程序。

(1)首先创建一个项目(project)。项目中存放所创建应用程序的所有信息:源文件、

资源文件、编译连接设置等。创建项目的步骤为:

从主菜单中选择File|New,将显示出New对话框。

选择Projects标签,并从列表中单击Win32 Console Application。

在“Location”编辑框中输入工作目录名称。

在对话框的右上角的“project name”编辑框内键入项目的名字,系统将自动为项目分配一个默认的目录。

系统将显示一个询问项目类型的程序向导,选择“an empty project”。

单击Finish或OK结束配置,创建应用程序。

在左边的工作区窗口中将出现项目的名字。工作区窗口有FileView标签。

FileView显示构成项目的各个文件,选择某一文件将会在右边的文档显示区显

示文件内容。

(2)编辑一个C程序。用下面的方法在创建的项目中添加一个C文件:

在主菜单上选择File|New。

在New对话框中选择File标签,单击“C++ Source File”。

选中Add to Project复选框。

在右边的File name编辑框中为文件指定一个名字,如Hello.c。注意一定带有扩展名c。

新的空白文件将自动打开,显示在文档显示区。在文件中输入以下内容:

//hello world example

#include

void main()

{

printf(“hello\n”);

}

保存源文件。单击工具栏中的”save”图标,或者选择File|Save保存文件。

(3)编译、连接得到可执行程序

选择主菜单的Build|Build Hello.exe来编译项目(也可以按功能键F7)。如果输入的内容没有错误,那么,在屏幕下方的输出窗口将会显示:

hello.exe –0 error(s), 0 warning(s)

如果在编译时得到错误或警告,再次检查源文件,改正错误。

(4)运行程序。有三种方式:

在开发环境中运行程序。选择Build|Execute hello.exe(或者Ctrl+F5)。程序运行以后将显示一个类似于DOS的窗口,在窗口中输出一行“hello”,紧接着在

下面显示“Press any key to continue”,这句话是系统提示按任意键退出当前运

行的程序,回到开发环境中。按任意键,窗口关闭,退回到VC开发环境。

在DOS环境下运行程序。打开DOS窗口,改变工作路径到项目目录,该目录是创建目录时指定的。可以在工作区窗口中选择项目名称,然后选择菜单

View|Properties,将显示出项目路径。切换到debug子目录下,运行hello.exe,

程序将输出:?hello?。

在Windows环境下运行程序。打开资源管理器,找到程序所在的目录,运行。

4、编写一个求两个数的最大值的C程序,进行编译、链接和执行。

5、输入如下程序:

#include

/*返回n的阶乘*/

int Factorial(int n)

{

int i;

int Result;

Result = n;

for (i == 0; i < n; i++)

Result *= i;

return Result;

}

void main()

{

printf("What value?");

scanf("%d",&n);

printf("%ld",Factorial(n));

}

(1)编译该程序,是否有错误?修改这些错误。

(2)在某一行上设置位置断点,并执行,观察效果。

(3)利用调试工具调试该程序,查看是否有问题?

实验二 C 语言数据类型与数据运算的应用

一、实验目的和要求

1、进一步了解用C语言编写程序的基本过程与方法。

2、掌握C语言基本数据类型、各种类型的运算符及表达式、转义字符等的使用方法。

二、实验内容及其步骤(其步骤参考课后习题答案)

1、验证教材中给出的各例题的结果。

2、输出课后习题3.2中各小程序的结果,验证一下与你想的结果是否一致。

3、完成下列编程:(习题3.3)(任选四题)

(1)定义整型变量a的值为5,请编制程序分别按十进制、八进制和十六进制输出a的值。(2)编制程序实现:从键盘输入一个实数,分别按小数形式(保留2位小数)和指数形式(尾数部分保留2位有效数字)输出该实数的值。

(3)编制程序定义char型变量ch1和ch2值均为’a’,依次按字符、十进制、八进制和十六进制整数的形式输出它们的值,要求每个变量各占一行。

(4)编写程序实现:从键盘输入长方体的长、宽、高,然后求其表面积和体积。

(5)编写程序实现:从键盘输入圆的半径r,计算并输出该圆的面积和周长。

(6)编制程序实现:从键盘输入三个顶点的坐标(x1,y1)、(x2,y2)、(x3,y3),假设它们可以构成三角形,求其面积。

实验三 C 语言标准库函数的应用

一、实验目的和要求

1、进一步掌握用C语言编写程序的基本过程与方法。

2、掌握C语言常用标准库函数的使用方法。

二、实验内容及其步骤

1、执行下列程序,观察输出结果。

#include

main()

{

char c='a';

int a=123,b=-4567;

float x=123.456;

printf("c=%c\n",c);

printf("c=%c,%d,%o,%x\n",c,c,c,c);

c='\105';

printf("%c\n",c);

printf("%3s,%7.2s,%.4s,%-5.3s\n\n","sun", "sun", "sun", "sun");

printf("a=%d,b=%d\n",a,b);

printf("a=%4d a=%04d a=%-4d\n",a,a,a);

printf("a=%2d a=%02d a=%-2d\n",a,a,a);

printf("b=%8d b=%08d b=%-8d\n",b,b,b);

printf("b=%3d b=%03d b=%-3d\n",b,b,b);

printf("a=%8ld,a=%-8ld,b=%8ld,b=%-8ld\n\n",a,a,b,b);

printf("%f,\t%e,\t%g\n",x,x,x);

printf("%5.2f,\t %6.3e,\t%7.4g\n",x,x,x);

printf("%10.3e,\t%010.1e,\t%015.5e\n",x,x,x);

}

2、用输入函数正确输入数据,观察程序执行结果。

#include

main()

{

char s[20];

char c;

int a,b;

float x;

printf("please input a string:");

gets(s);

puts(s);

printf("please input a char:");

c=getchar();

putchar(c);

putchar('\n');

printf("Please input two integers:");

scanf("%d %d",&a,&b);

printf("a=%d,b=%d\n",a,b);

printf("Please input one float data:");

scanf("%f",&x);

printf("%f,%e,%g\n",x,x,x);

}

3、编程,测试C语言常用字符串运算函数。

参考程序:

#include

# include "stdio.h"

main( )

{

char s1[30], s2[15];

printf("please input two string:\n");

gets(s1);

gets(s2);

puts(s1);

puts(s2);

strcat(s1,s2);

puts(s1);

strupr(s2);

puts(s2);

strcpy(s1,s2);

puts(s1);

printf("compare s1 with s2 =%d\n",strcmp(s1,s2));

printf("%d\n",strlen(s1));

}

4、编程,测试C语言常用数学运算函数。

参考程序:

#include

#include

int main(void)

{ int n1 =-123;

float n2 =-321.00;

printf("number1: %d absolute value: %d\n", n1, abs(n1));

printf("number2: %f absolute value: %f\n",n2,fabs(n2));

double result, x1 = 4.0;

result = exp(x1);

printf("(e ^ %lf) = %lf\n", x1, result);

double x2 = 2.0, y = 3.0;

printf("%lf ^ %lf is %lf\n", x2, y, pow(x2, y));

double x3 =9.3721;

result = log(x3);

printf("The natural log of %lf is %lf\n", x3, result);

double x4 = 800.8860;

result = log10(x4);

printf("The common log of %lf is %lf\n", x4, result);

double x=0.5;

result = sin(x);

printf("The sin of %lf is %lf\n", x, result);

result = asin(x);

printf("The arc sin of %lf is %lf\n", x, result);

result = cos(x);

printf("The cos of %lf is %lf\n", x, result);

result = acos(x);

printf("The arc cosine of %lf is %lf\n", x, result);

result = tan(x);

printf("The tan of %lf is %lf\n", x, result);

result = atan(x);

printf("The arc tangent of %lf is %lf\n", x, result);

x = 4.0;

result = sqrt(x);

printf("The square root of %lf is %lf\n", x, result);

double number=100.16;

double down, up;

down = floor(number);

up = ceil(number);

printf("original number %5.2lf\n", number);

printf("number rounded down %5.2lf\n", down);

printf("number rounded up %5.2lf\n", up);

x1 = 5.0, y = 2.0;

result = fmod(x1,y);

printf("The remainder of (%lf / %lf) is \ %lf\n", x1, y, result);

return 0;

}

实验四控制结构程序设计

一、实验目的

1、熟悉分支、循环结构。

2、熟悉逻辑表达式、条件表达式及其求值。

3、熟练应用C控制结构实现分支、循环程序设计。

4、进一步熟悉VC的调试方法。

二、实验内容和步骤(其步骤参考课后习题答案)

1、从键盘上输入三个数,输出它们的最大值。

2、假设某个国家使用九级超额累计税率计算缴纳个人所得税,具体如下:扣除1600元的费用后,余额:

(1)不超过500元的,按5%计提

(2)超过500到2000部分,按10%计提

(3)超过2000到5000部分,按15%计提

(4)超过5000到20000部分,按20%计提

(5)超过20000到40000部分,按25%计提

(6)超过40000到60000部分,按30%计提

(7)超过60000到80000部分,按35%计提

(8)超过80000到100000部分,按40%计提

(9)超过100000部分,按45%计提。

试设计一个程序,对于用户输入的月收入额度,计算应交税款。

3、下面是一个计算e的近似值(使误差小于给定的δ)的程序。

#include

Void main()

{

double e=1.0,x=1.0,y,detax;

int i=1;

printf(“\n please input enter a error:”);

scanf(“%lf”,&detax);

y=1/x;

while(y>=detax)

{

x=x*I;

y=1/x;

e=e+y;

++i;

}

printf(“%12.10lf”,e);

}

(1)阅读上面的程序,写出程序所依据的计算公式。

(2)当输入的detax各是什么值时,能分别使程序按下面的要求运行:

不进入循环;

只循环一次;

进入死循环(程序将永远循环下去)。

(3)在程序中增加一条语句,以计算循环执行了多少次。

(4)将while语句中的条件y>=detax,分别换成y>detax,y=detax,y

观察程序运行发生的变化。

(5)将上述程序改为do-while格式。

4、编写C程序,输出九九乘法表(按◣◢◤◥四种不同的形状输出)。

5、对于百鸡问题,利用课本上所讲的不同方法进行计算,体会各个方法效率的差异。

实验五数组应用综合实验

一、实验目的

1、掌握一维数组、二维数组的定义、初始化和引用方法;

2、掌握字符数组的定义、初始化和使用方法;

3、熟练与数组有关的常见算法。

二、实验内容与步骤(其步骤参考课后习题答案)

1、分析并测试以下程序片断的输出结果

int a[3]={1,4},b[3];

char str1[]={…A?,…B?,…C?};

char str2[]={…A?,…B?,…\0?,…C?…\0?…\0?};

float aver;

printf(“%d\n”,a[3]);

aver=(a[0]+a[1]+a[2])/3;

printf(“%f\n”,aver);

printf(“%d\n”,b[0]);

scanf(“%d%d”, &b[1] ,&b[2]);

b[3]=b[1]+b[2];

printf(“%d\n”,b[3]);

printf(“str1:\n%s”,str1);

printf(“str2:\n%s”,str2);

2、用改进的冒泡算法对N个数由小到大排序。(习题6.4)

3、用插入法对N个数由小到大排序。(习题6.5)

4、用筛选法求0--100内的素数。(习题6.6)

5、不引入新矩阵,对一个方阵实现其自身的转置。

6、输出杨辉三角形的前10行。(习题6.11)

7、编程实现strcmp函数的功能。(习题6.16)

8、编程实现strcpy函数的功能。(习题6.17)

实验六函数应用综合实验

一、实验目的

1、掌握C语言函数定义及调用的规则。

2、理解参数传递的过程。

3、掌握变量的作用域、生存期。

二、实验内容与步骤(其步骤参考课后习题答案)

1、上机调试下面的程序,记录系统给出的出错信息,并指出出错原因。#include

void main()

{

int,y;

printf(“%d\n”,sum(x+y));

}

int sum(a,b)

{

int a,b;

return(a+b);

}

2、输入课本例7.5,利用单步跟踪方式进行调试,观察程序执行过程。

3、分析程序运行结果。输入下列程序运行,分析得到的结果。

#include

int n = 0;

int func(int x = 10);

void main()

{

int a,b;

a = 5;

b = func(a);

printf("\nlocal a=%d, local b=%d, global n=%d.\n",a,b,n);

a++;

b = func(a);

printf("\nlocal a=%d, local b=%d, global n=%d.\n",a,b,n);

func();

}

int func(int x )

{

int a=1;

static int b=10;

a++;

b++;

x++;

n++;

printf("\nlocal a=%d, local b=%d, parameter x=%d.\n",a,b,x);

return a+b;

}

实验七指针应用综合实验

一、实验目的

1、掌握指针的概念、定义、引用和初始化方法。

2、掌握各种类型的指针变量的定义并掌握其相关操作。

3、掌握运用指针操作数组和字符串的方法与技巧。

4、了解指向指针的指针,灵活运用指针作函数参数和返回值。

二、实验内容与步骤(其步骤参考课后习题答案)

1. 完成课后习题9.1,9.2,9.4的验证。

2. 编写一个函数int strreverse(char *str1, char *str2),对输入的字符串str2,将其逆序放入

字符串str1中,其返回值为str1的长度。(习题9.2)

3. 编写一个函数int strcatch(char *str1, char *str2),将字符串str2连接到str1的尾部,其返回

值为连接后str1的长度。(习题9.3)

1.假设有三门课程四个学生,要求编程求各门课程的平均分,并查找各门课程不及格的学

生及其成绩。(习题9.7)

2.使用字符指针编写一个函数以实现库函数中的strcmp(str1,str2)函数之功能。

(习题9.11.1)

6.定义一个返回一维数组中最大值的指针函数,并在主函数中调用之,然后输出结果。

(习题9.12)

实验八结构体应用综合实验

一、实验目的

1、掌握结构体类型与结构体变量的定义、引用和初始化方法。

2、掌握链表的概念和相关操作。

3、了解共用体和枚举类型的概念及它们的使用方法。

二、实验内容与步骤(其步骤参考课后习题答案)

1、分析并测试以下两个程序的输出结果。

程序1(习题10.10)

#include

void main()

{

union

{

int a;

int b;

}s[3],*p;

int n=1,k;

for(k=0;k<3;k++)

{

s[k].a=n;

s[k].b=s[k].a*2;

n+=2;

}

p=s;

printf("%d,%d\n",p->a,++p->a);

}

程序2(习题10.12)

#include

void main()

{

enum workday

{

mon,tue,wed,thr,fri

};

enum workday d=thr;

printf("%d\n",d);

printf("%c\n",d);

printf("%s\n",d);

}

2、结构体变量的成员包括年、月、日,输入日期并计算该日是当年中第几天。(习题10.1)

3、使用指针变量输入学生姓名、学号及三门课的成绩,计算各自的平均成绩。(习题10.2)

4、编写函数统计链表中结点的个数。(习题10.5)

5、编写函数查找指定学号的结点在链表中第一次出现的位置,未找到则返回0。(习题10.6)

6、编写函数删除链表中指定位置的结点。(习题10.7)

实验九文件操作综合实验

一、实验目的

1、掌握文件打开的fopen函数和文件关闭的fclose函数的使用方法。

2、掌握以二进制方式和以文本方式读写文件的区别。

3、掌握按字符读写文件操作的fgetc函数和fputc函数的使用方法。

4、熟悉按字符串读写文件操作的fgets函数和fputs函数的使用方法。

5、掌握按块读写文件操作的fread函数和fwrite函数的使用方法。

6、熟悉格式化读写文件操作的fprintf函数和fscanf函数的使用方法。

二、实验内容和步骤(其步骤参考课后习题答案)

1、上机调试课后练习题1。

2、上机调试课后练习题5。

3、上机调试课后练习题2或课后练习题3(任选一题)。

相关文档