C语言程序设计实验讲义(终稿)

更新时间:2023-12-01 06:05:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《C语言程序设计及实验》实验教学大纲

课程编码:406041123 总学时:64学时 实验学时:16学时 适用专业及层次:电子信息工程 专业本科

实验地点:电子与信息工程 实验中心 第二 实验室 系(教研室):信息工程学院 网络工程教研室

执笔人:贾电如 大纲审批人 一、教学目的和基本要求

目的:通过C程序设计实验,培养学生对学习程序设计的兴趣,加深对讲授内容的理解,尤其是通过上机来掌握语法规则,使学生全面了解 C 语言的特点,熟练掌握C 语言程序设计的基本方法和编程技巧。

基本要求:了解和熟悉C语言程序开发的环境;学会上机调试程序,善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行,达到实验知识和理论知识的融会贯通。上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止,上机结束后,应整理出实验报告。 二、实验软硬件环境要求 1、《C程序设计题解与上机指导》谭浩强主编 清华大学出版社 2、微机 ,安装、vc++6.0

三、实验项目与学时分配

编号 实验项目名称 学时分配 实验类型 2 2 2 2 2 2 2 2 设计性 设计性 设计性 设计性 设计性 设计性 设计性 设计性 备注 1 C程序的运行环境和运行一个C程序的方法、数据类型、运算符和表达式 2 顺序结构程序设计 3 选择结构程序设计 4 循环结构程序设计 5 数组 6 函数 7 指针 8 结构体和共用体、链表操作 四、实验项目

实验一 C程序的运行环境和运行一个C程序的方法 一、实验目的

1.了解vc++6.0编译系统的基本操作方法,学会独立使用该系统。 2.了解在该系统上如何编辑、编译、连接和运行一个C程序。 3.通过运行简单的C程序,初步了解C源程序的特点。

4.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符。

5.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。

6.进一步熟悉C程序的编辑、编译、连接和运行的过程。 二、实验内容

1.用编辑程序,输入教材第一章例1.1程序,并进行编译和运行。应了解所用的系统是

1

用什么命令进行编译和连接运行的。编译和连接后所得到的目标程序的后缀是什么形式的?

2.编写一个C程序,输出以下信息: **************************** very good!

****************************

3.输入并运行教材第一章中例1.3,了解如何在运行时向程序变量输入数据。

4.输入并运行以下程序: main( )

{ char c1,c2; c1=97;c2=98;

printf(“%c %c\\n”,c1,c2); printf(“%d %d\\n”,c1,c2); }

在此基础上

①将第三行、第四行改为: c1=321;c2=353;

再使之运行,分析其运行结果。 ②将第二行改为: int c1,c2;

再使之运行,分析其运行结果。。 5、.输入并运行以下程序: main( )

{int i=8,j=10,m,n; m=++i;n=j++;

printf(“%d,%d,%d,%d\\n”,i,j,m,n); }

分别作以下改动并运行: ①程序改为: main( )

{int i=8,j=10;

printf(“%d,%d\\n”,i++,j++); }

②在②的基础上,将printf语句改为: printf(“%d,%d\\n”,++i,++j); ③再将printf语句改为:

printf(“%d,%d,%d,%d\\n”,i,j, i++,j++); ④程序改为: main( )

{int i=8,j=10,m=0,n=0;; m+=i++;n-=--j;

printf(“i=%d,j=%d,m=%d,n=%d\\n”,i,j,m,n); }

6. 请将下列给出的两个程序段分别输入计算机后,分析其运行结果:

2

①main() { int num; num=32767;

printf(“num=%d\\n”,++num); }

② main() { int a=-2;

printf(“%d, %d\\n”,a, a--); }

实验二 最简单的C程序设计 一、实验目的

1.掌握C语言中使用最多的一种语句——赋值语句的使用。 2.掌握数据的输入输出的方法,能正确使用各种格式转换符。 二、实验内容

1.上机输入以下程序: main( )

{int a,b;float c;

scanf(“%d%d%f”,&a,&b,&c);

printf(“a=%-4d,b=M,c=%f,c=%.2f\\n”,a,b,c,c); }

要使a=3,b=4,c=12.3456,在键盘上应如何输入?有几种方式?

2.若将输入函数改为scanf(“%d, %d ,%f”,&a,&b,&c);应该如何输入数据? 3.上机输入以下程序: main( )

{int a; float b; char c;

scanf(“M_<”,&a,&b,&c);

printf(“a=%d,a=%o,a=%x,b=%8.3f,b=%4.0f,c=%c\\n”,a,a,a,b,b,c); }

要使a=77,b=4.56,c= ?A?,在键盘上应如何输入?

4.输入两面整型变量a、b的值,输出下列算式以及运算结果。 a+b、a-b、a*b、a/b、(float)a/b、a%b

每个算式占一行。如a等于10,b等于6,a+b应输入为: 10+6=16

5.编写程序,用getchar函数读入两个字符c1、c2,然后分别用putchar函数和printf函数输出这两个字符。上机运行程序,比较用printf和putchar函数输出字符的特点。

实验三 选择结构程序设计 一、实验目的

1.了解C语言表示逻辑量的方法(以0代表“假”,以1代表“真”); 2.学会正确使用逻辑运算符和逻辑表达式; 3.熟练掌握if语句和switch语句。 二、实验内容

先编程序,解以下问题,然后上机调试运行程序。 1.有一个函数

3

用scanf函数输入x的值(分别为x<1、1~10、≥10三种情况),求y值。 2.给出一个百分制成绩,要求输出成绩等级‘A’,‘B’,‘C’,‘D’,‘E’。90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。

3.给一个不多于5位的正整数,要求:

① 求出它是几位数;

② 分别打印出每一位数字;

③ 按逆序打印出各位数字,例如原数为321,应输出123。 实验四 循环控制 一、实验目的

1.熟悉用while语句,do-while语句和for语句实现循环的方法。

2.掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。 二、实验内容

编程序并上机调试运行。

1.输入两个正整数,求其中最大公约数和最小公倍数。

2.输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。

3.用牛顿迭代法求方程2x3-4x2+3x-6=0在1.5附近的根。牛顿迭代法的公式是

x?1?x?y??2x?11?x?10?3x?11x?10?x?x0?f(x)。 'f(x)4.打印出以下图案: * *** ***** ******* ***** *** *

5.编程求1!+2!+3!+……+20!。 实验五 数组 一、实验目的

1.掌握一维数组和二维数组的定义、赋值和输入输出的方法; 2.掌握字符数组和字符串函数的使用。

3.掌握与数组有关的算法(特别是排序算法)。 二、实验内容

编程序并上机调试运行。

1. 编写程序,用scanf函数输入10个整数的数列,先将整数按照从大到小的顺序进行排序,然后输入一个整数插入到数列中,使数列保持从大到小的顺序。

2.有15个数存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值,如果该数不在数组中,则输出“无此数” ,并且可以实现连续查找。15个数用赋初值的方法在程序中给出,要找的数用scanf函数输入。

4

3.将以下二维数组中数按列的顺序存放到一个一维数组中。二维数组的内容是 11 22 33 44 11 22 33 44 11 22 33 44

则一维数组中的内容是11 11 11 22 22 22 33 33 33 44 44 44 4.将两个字符串连接起来,不要用strcat函数。

5.从键盘输入5个字符串,找出最长的字符串和最大的字符串。 实验六 函数 一、实验目的

1.掌握定义函数的方法;

2.掌握函数实参与形参的对应关系,以及“值传递”的方式; 3.掌握函数的嵌套调用和递归调用的方法;

4.掌握全局变量和局部变量,动态变量和静态变量的概念和使用方法。 二、实验内容

编程序并上机调试运行之。

1.写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的信息。

2.两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数在主函数中输入,并传送给函数1,求出的最大公约数返回主函数,然后再与两个整数一起作为实参传递给函数2,以求出最小公倍数,返回到主函数输出最大公约数和最小公倍数。

3.已知二阶Fibonacci数列:

0 若n=0 Fib(n)= 1 若n=1 Fib(n-1)+Fib(n-2) 其他情况 定义递归函数求Fib(n)。

4.写一个函数完成下列任务:输入一个表示正整数的字符串,将字符串转换成对应的数字。例如,输入3个字符组成的字符串“123”,将它转换成整型数123。

5.设计一个含有多个菜单项的菜单演示程序。程序运行后,给出4个菜单项的内容和输入提示:

1.求最大公约数 2.求最小公倍数 3.判断素数 4.退出程序 选择1-4:

使用数字1~4来选择菜单项,其他输入则不起作用。 实验:(选作)预处理命令 一、实验目的

1.掌握宏定义的方法;

2.掌握文件包含处理方法; 3.掌握条件编译的方法。 二、实验内容

编程序并上机调试运行。

1.定义一个带参数的宏,使两个参数的值互换。在主函数中输入两个数作为使用宏的实参,输出已交换后的两个值。

5

本文来源:https://www.bwwdw.com/article/ifft.html

Top