高级C语言实验指导书13级
高级C语言及其应用实验指导书
电信13级使用
李丽 张承云 秦剑 编
机械与电气工程学院
2014-3
目 录
实验一 指针的应用(4学时)3
实验二 位运算的应用(2学时)5
实验三 界面处理的应用(4学时)6
实验四 外设的应用(2学时)8
实验五 模块化的程序设计(4学时)9
实验一 指针的应用(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] = "Guangzhou university";
char str1[21] = "Guangzhou university";
char str2[5] = {'C','H','I','N','A'};
char str3[6] = {'C','H','I','N','A'};
char *pstr = "Guangzhou university";
打印这些字符串并分析输出结果。另外调整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}。 对这两个数组
做以下运算:
, n的取值为0,1,2,……,10。
要求: 编写一个名为conv的函数,计算y[n]的值,并用printf打印出来。
提示:当数组下标值超出数组范围内,令其值为0。例如h[-1]=0, h[8]=0.
五、实验报告要求
1. 按实验报告模版各栏目填写,实验原理部分只需简述。
2.按实验内容附上实验程序,给出运算结果。
3.记录调试运行情况及所遇问题的解决方法。
4. 至少完成4项实验内容
实验二 位运算的应用(2学时)
实验目的
1.理解位运算的基本概念
2.掌握位运算的用法
二、实验设备
计算机、VC++6.0
三、实验原理(以下内容需自己写)
1、位运算符及其用法
2、位段
四、实验内容
1、已知二进制数b,输入整数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. 按实验报告模版各栏目填写,实验原理部分只需简述