高级C语言实验指导书 13级

更新时间:2023-10-26 12:22:01 阅读量: 综合文库 文档下载

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

高级C语言及其应用实验

高级C语言及其应用实验指导书

电信13级使用

李丽 张承云 秦剑 编

机械与电气工程学院

2014-3

1

高级C语言及其应用实验

目 录

实验一 指针的应用(4学时) ......................................................................... 3 实验二 位运算的应用(2学时) ..................................................................... 5 实验三 界面处理的应用(4学时) ................................................................. 6 实验四 外设的应用(2学时) ......................................................................... 8 实验五 模块化的程序设计(4学时) ............................................................. 9

2

高级C语言及其应用实验

实验一 指针的应用(4学时)

一、 实验目的

1.掌握C语言指针变量的定义、声明和赋值 2.学会使用指针变量的程序设计 3.掌握指针作为函数参数的用法

二、实验设备

计算机、VC++6.0

三、实验原理(以下内容需自己写)

1、指针的概念

2、指针变量的定义、引用和赋值方法 3、指针的基本运算(比较、加减) 4、指针与数组的关系 5、指针作为函数参数的方法

(1)基本数据类型指针、数组名作为输入参数 (2)指针作为函数返回值

6、结构体指针的定义与结构体成员引用

四、实验内容

1、已知两个整型变量a和b,它们的值分别为6和9。请定义两个指针变量,通过指针变量访问整型变量a和b,并通过类似printf(“%d,%d\\n”,*pointer_1, *pointer_2)这样的语句打印出a和b的值。

2、有一个数组的值为{1,2,3,4,5,6},希望对这个数组的数据都乘以2。 请用“指针+下标”访问数组的方法来实现。(提示: 用*(pointer + i)这样的方法来访问数组)

3、已知二维数组: int a[3][5] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}, 用指针的方法访问数组,并按以下格式打印数据。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

4、已知下面一些字符串:

char str[20] = \

3

高级C语言及其应用实验

char str1[21] = \char str2[5] = {'C','H','I','N','A'}; char str3[6] = {'C','H','I','N','A'}; char *pstr = \

打印这些字符串并分析输出结果。另外调整pstr的值,只打印university.

5、已知一个数组{1, 3, 5, 7, 9}, 编写一个函数,实现对该数组各个数进行平方运算,要求该函数的输入输出数据参数均用指针(例如: void squareFun( int *in, int *out, int n) )。 将计算结果用printf打印出来。

6、已知两个数组:int x[4] = { 1,1,1,1}; int h[6] = {6,5,4,3,2,1}。 对这两个数组 做以下运算: y[n]?3m?0?x[m]h[n?m], n的取值为0,1,2,??,10。

要求: 编写一个名为conv的函数,计算y[n]的值,并用printf打印出来。 提示:当数组下标值超出数组范围内,令其值为0。例如h[-1]=0, h[8]=0.

五、实验报告要求

1. 按实验报告模版各栏目填写,实验原理部分只需简述。 2.按实验内容附上实验程序,给出运算结果。 3.记录调试运行情况及所遇问题的解决方法。 4. 至少完成4项实验内容

4

高级C语言及其应用实验

实验二 位运算的应用(2学时)

二、 实验目的

1.理解位运算的基本概念 2.掌握位运算的用法

二、实验设备

计算机、VC++6.0

三、实验原理(以下内容需自己写)

1、位运算符及其用法 2、位段

四、实验内容

1、已知二进制数b(10011011),输入整数a。对a、b进行位运算,将a的右边第1、2、4、5、8位保留(右起为第1位),其它位翻转得到c,并以十六进制格式输出。

2、a = 32, 用移位的方法实现b = a ×4, c = a ÷2。

3、输入1000~32767之间的一个短整型数a,保留其高8位,其余位清零,构成新数b。

4、一无符号短整形数i, 用位运算对其实现循环左移4位。(注:循环左移指的是从左边移出去的数据再从右边移回来)

5、已知变量a的变化范围为0~7之间的整数,变量b的变化范围为0~31之间的整数,变量c的变化范围为0~255之间的整数,请用位段来表示这3个变量,并用printf输出位段内容。

五、实验报告要求

1. 按实验报告模版各栏目填写,实验原理部分只需简述。 2.按实验内容附上实验程序,给出运算结果。 3.记录调试运行情况及所遇问题的解决方法。

5

高级C语言及其应用实验

实验三 界面处理的应用(4学时)

三、 实验目的

1. 了解VC界面编程的的基本概念 2. 掌握常用控件的编程方法

二、实验设备

计算机、VC++6.0

三、实验原理(以下内容需自己写)

1、基于MFC对话框程序的生成 2、控件的基本概念 3、变量和函数的添加

四、实验内容

1、实现一个静态文本框,显示内容自定。 2、实现一个Group Box,显示内容自定。

3、在一个界面上设计两个文本框,在其中一个文本框中输入内容,在此内容基础上加上 .txt 后在另一个文本框中显示。

4、实现图4-1界面,点击“测试进度条”后,增加10%,如图4-2所示。

图4-1

图4-2

6

高级C语言及其应用实验

5、实现图5-1列表框:

按“>”或“<”,只移动选定的一行内容; 按“>>”或“<<”,移动所有内容;

图5-1

6、实现图6-1所示文件列表,可选内容自定。

图6-1

7、用VC实现一个界面,实现以下功能: (1)打开一个WAV文件;

(2)设置对此文件进行处理的参数: 音量控制条、单/双声道选择、卷积脉冲选择(比如脉冲1、脉冲2、脉冲3、脉冲4、脉冲5)、输出文件名; (3)显示处理进度。

五、实验报告要求

1. 按实验报告模版各栏目填写,实验原理部分只需简述。 2.按实验内容附上实验程序,给出运算结果。 3.记录调试运行情况及所遇问题的解决方法。 4.实验内容5~7为选做内容。

7

高级C语言及其应用实验

实验四 外设的应用(2学时)

一、实验目的

1. 掌握键盘的基本编程方法 2. 掌握鼠标的基本编程方法

二、实验设备

计算机、VC++6.0

三、实验原理(以下内容需自己写)

1、键盘编码 2、键盘操作函数 3、鼠标信息的发送和接收 4、鼠标操作函数

三、实验内容

1、接收键盘的按键值, 并打印出来; 若按下的是“Esc”键则退出。

提示:可以用while( kbhit()== 0)检测键盘是否有击键,用getch()函数读取键盘值。查出Esc的ASCII码值。 2、用鼠标画一条线。

五、实验报告要求

1. 按实验报告模版各栏目填写。

2.按实验内容附上实验程序,给出运算结果。 3.记录调试运行情况及所遇问题的解决方法。

4.感兴趣的同学可以试试用VC++6.0实现串口通信,参考资料:http://www.gjwtech.com/index.htm

8

高级C语言及其应用实验

实验五 模块化的程序设计(4学时)

一、实验目的

1. 掌握C语言模块化编程方法 2. C语言知识点综合应用

二、实验设备

计算机、VC++6.0

三、实验原理(以下内容需自己写)

模块化程序设计的基本原理和方法

四、实验内容

1、实现数制转换,通过键盘输入一个十进制数,然后将其转换为二进制、八进制、十六进 制。要求十进制转转换为二进制、八进制、十六进制分别用不同的模块来实现。 2、打开一个WAV文件,每次读10个数据,然后进行处理,公式为: y[n] = ( x[n] + x[n-1] + x[n-2] + x[n-3] + x[n-4] )/5;

每读入10个数据,按上面公式处理得到10个输出数据。对输出数据进行以下两项操作: (1)保存为另一个WAV文件;

(2)输出到一个TXT文件,每10个数据换行。示例:

要求: 读数据、处理数据、保存WAV文件、写TXT文件分别用不同模块实现。

五、实验报告要求

1. 按实验报告模版各栏目填写。

2.按实验内容附上实验程序,给出运算结果。 3.记录调试运行情况及所遇问题的解决方法。

9

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

Top