77范文网 - 专业文章范例文档资料分享平台

《程序设计基础教程 - -C语言版》实验指导手册(3)

来源:网络收集 时间:2018-12-29 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

{

int workover(int i); int reset(int i); int i=HIGH; reset(i/2.5);

printf(\ reset(i=i/3);

printf(\ reset(i/2);

printf(\ workover(i);

printf(\ return 0; }

workover(int i); {

i=(i%i++)*((i*i)/(2*i)+4); printf(\ return (i); }

reset(int i); {

i=i<=CHANGE?LOW:HIGH++; return (i); }

(3) 分析、编辑并执行以下程序,如果有错,请指出其错误原因,同时需要指出各个变量的存储属性。

/*****file1.c*****/ int last(void); int new(int); int reset(void); exter int i; int main(void) {

int i,j; i=reset();

for (j=1;j<=3;j++) {

printf(“i=%d\\tj=%d\\n”,i,j); printf(“next(i)=%d\\t”,next(i)); printf(“last(i)=%d\\n”,last());

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

int next(void) {

return (i++); }

return 0; }

/*****file2.c*****/ static int i=10; fast(void) {

rturn (i-=1_); }

new(int i) {

static int j=-5; return (i=j+=++i); }

/*****file3.c*****/ extern int i; reset() {

return (i); }

3.预编译命令实验。具体实例如下: (1) 一般宏替换实验(教材例7-5);

(2) 带参数的宏替换(教材例7-7~例7-12,习题7-8和习题7-9); (3) 习题7-11和习题7-12;

(4) 文件包含(#include \和#include <>)。 实验准备:

(1) 编写所选实验题目的程序代码和流程图; (2) 检查源程序并给出其可能的运行结果说明。 实验步骤:

(1) 上机验证所选题目,并做相应测试和分析; (2) 进行实验分析;

(3) 总结基于函数、宏等技术的模块化程序设计和实现方法及其经验; (4) 编写实验报告。 实验结果:

(1) 根据测试目标写出测试报告; (2) 测试结果分析说明; (3) 测试程序代码清单。

实验七 数组(6学时)

实验目的:

(1) 掌握C语言环境下数组的声明、定义和使用方法,包含其初始化、赋值、输入、输出和处理方法;

(2) 掌握字符数组和字符串数组的使用方法;

(3) 了解数组作为函数参数或返回值的传递和使用方法。 实验内容:(第1题必做,第2、3、4任选一个)

1.数组的基本使用方法实验。包含数组的声明方法、初始化方法、输入、输出方法、元素的引用方法以及数组作为函数参数的使用方法。

(1) 一维数组的声明、初始化及引用方法; (2) 二维数组的声明、初始化及引用方法;

(3) 字符数组和字符串数组的初始化及引用方法的差异分析; (具体实例参见教材实例)

测试函数声明和定义方法时,可以从以下几个方面进行测试:

1) 用已声明和定义的变量作为数组大小的声明; 2) 用已声明的const变量作为数组变量大小的声明; 3) 用宏名表示声明数组变量的大小; 4) 用表达式计算结果作为数组变量的大小; 5) 用宏的运算结果表示声明数组变量的大小。

(4) 分别按行序和列序顺序返回一个二维数组中各个元素的内存空间地址

值,以观察数组元素在计算机内存中的排列规律。 2.一维数组的应用。具体实例如下:

(1) 有一个数组大小为10,内放10个数,请找出其中对大和最小元素来,并

分别将其与数组第1个元素和最后1个元素交换。

(2) 有17个人围成一圈,其编号分别为1到17,如果从1号开始报数,凡报到7

的倍数的人必须离开该圈子,然后再接着往下数,直到最后只剩一个人为止。请问最后一个人原来的位置序号是多少?(扩展问题:请将每个人按出列顺序重新排列后,其排列的顺序是什么?) 3.二维数组应用。具体实例如下:

(1) 输入一个n*n的矩阵。1) 试求除开对角线上元素之外的元素之和;2) 求

每行中与相应对角线元素不同的元素之和;

(2) 有n个学生,m门功课。要求:1) 找出成绩最好的学生及其对应的课程

号码;2) 求全部同学每门课程的平均成绩; 4.字符数组应用。具体实例:

(1) 有三行文字,请找出其中空格的个数,并统计单词的个数。(注:单词

以一个或多个空格为间隔。如果一个单词刚好在行末结束,则下一行开头应该有空格,包含句号和逗号后面也应该有空格!)

(2) 输入n个国家的名字,要求按照字母的先后顺序排序,并输出排序前后的结果。 实验准备:

(1) 编写所选实验题目的程序代码和流程图; (2) 检查源程序并给出其可能的运行结果说明。 实验步骤:

(1) 上机验证所选题目,并做相应测试和分析; (2) 进行实验分析;

(3) 总结基于数组的程序设计和实现方法及其经验; (4) 编写实验报告。 实验结果:

(1) 根据测试目标写出测试报告; (2) 测试结果分析说明; (3) 测试程序代码清单。

实验八 指针(4学时)

实验目的:

(1) 掌握C语言环境下指针的声明、定义和使用方法; (2) 掌握指针和变量以及指针和数组的关系; (3) 掌握指针、数组之间的关系; (4) 掌握指针、函数之间的关系。 实验内容:

1.熟悉指针的基本使用方法。

(1) 请仔细分析以下程序段,并上机测试运行结果,对测试结果进行分析说明。

1) 程序段一:

int main() {

int i=3,j=6,k=9;

printf(“i=%d j=%d k=%d\\n”,*(&i),j,k); return 0; }

2) 程序段二:

int main(void) {

int nA,*p; float fB,*q; p=&nA; q=&fB;

scanf(“%d,%f”, p, q); *p=nA*(*q);

printf(“nA is %d, p is %d and *p is %d\\n”, nA, p,*p); printf(“fB is %f, q is %d and *q is %d\\n”, nA, q,*q); printf(“p+1=%d q+1=%d\\n”,p+1,q+1); return 0; }

3) 程序段三:

int main(void) {

int nA,*p,**q,***r; p=&nA;q=&p;r=&q;

printf(“Please input nA::\\n”); scanf(“%d”,**r);

printf(The results are :”);

printf(“nA? value is %d,%d,%d,%d\\n”,nA,*p,**q,***r); printf(“nA,p,q,r?s value is %d,%d,%d,%d\\n”,nA,p,q,r); return 0; } (2) 设计一个C语言程序,以测试以下表达式的运算顺序。

2. 想使指针变量pt1指向变量nA和nB中的大者,pt2指向其小者,以下程序能否实现此目的?为什么?如果不行,请给出实现的方法。

void swap(int *pt1,int *pt2) {

int *p;

p=p1;p1=p2;p2=p; }

int main(void) {

int nA,nB; int *pt1,*pt2;

scanf(“%d,%d”,&nA,&nB); pt1=&nA;pt2=&nB;

if (nA

3.请仔细分析教材例9-2、9-3、9-6~9-11,上机调试之。记录并分析程序运行结

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库《程序设计基础教程 - -C语言版》实验指导手册(3)在线全文阅读。

《程序设计基础教程 - -C语言版》实验指导手册(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/397514.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: