程序设计课程实验指导书(4)

2018-12-19 23:17

printf(―which style you want to \\n‖); printf(―capital (c) or uncapital(u);‖); c=getchar(); if(c=’c’) put(s); else {

s=‖computer‖; puts(s); } }

分析出错原因。

4.设计一个C程序,用以测试下列各表达式的运算。 (1) y=*px++ (2) y=*++py (3) y=(*py)++ (4) y=--*ppx++

4、想使指针变量pt1指向a 和b 中的大者,pt2指向小者,以下程序能否实现此目的?

swap(int *p1,int *p2) {

int *p;

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

main() {

int a,b;

scanf(―%d,%d‖,&a,&b); pt1=&a;pt2=&b; if(a

printf(―%d,%d\\n‖,*pt1,*pt2); }

上机调试此程序。如果不能实现题目要求,指出原因,并修改之。 5、 下面的程序。注意其中的复杂声明语句;

int (*function[4])();和各标记符的含义,并记录执行结果。 main() {

int fun1(); int fun2(); int fun3(); int fun4();

int (*function[4])(); int a=10,b=5,i; function[0]=fun1; function[1]=fun2;

function[2]=fun3; function[3]=fun4; for(i=0;i<4;i++)

printf(―fun no.%d->%d\\n‖,i+1,execute(a,b,function[i])); }

execute(int x,int y,int *fun()) {

return(*fun)(x,y); }

fun1(int x, int y) {

return(x+y); }

fun2(int x,int y) {

return(x-y); }

fun3(int x,int y) {

return(x*y); }

fun4(int x,int y) {

return(x/y); }

6、程序

main(int argc,char *argv[]) {

while(argc-->1)

printf(―%s\\n‖,*++argv);

的文件名为echo.h,编译后可执行程序名为echo.exe(用DOS时),运行时输入下面命令行:echo BASIC FORTRAN COBOL PASCL 分析输出结果。

7、从1984年起,在每年举行的USENIX大会上,都有一项AWARD FOR BEST ONE –LINER奖获奖的情况程序都是极精巧的C语言程序,但有些精巧得过分,使人难以懂。如果你有兴致,请先读一下下面的C 程序,它是1987年获奖者ONLINE COMP0UTER SYSTEM公司的SEINCER HINES 写的,被公认为是历史上风格最差的C 语言程序,程序清单如下: #include char *malloc();

main(otgo.toog) int togo; char *toog[]; {

char *ogto;

tgoop[80];FILE*ogot;int oogt=0;ootg,otog=79, ottg=1;if(tog0==ottg)goto gogo;goto goog;ggot; if(fgets(tgoo,otog,ogot)) goto gtgo;goto gott;

gtot:exit();ogtg;++oogt;goto ogoo;togg:if(oogt>0) goto oggt;goto ggot;if(!ogot)goto gogo; goto ggto;gtto:printf(―%dgoto\\s\\n‖,oogt);

goto gtot;oggt:if(!memcmp(ogto,‖goto‖,4))goto otgg; goto gooo;gogo:exit(ogtt);gtto:ootg=strlen(tgoo); goto gtog;oogo:--oogt;goto togg;

goot—ogto;goto oogo;gott:fclose(ogot); got gtto;otgg:ogto=ogto+3;

goto ogtg;tgog:ootg-=4;goto togg;gtgo:ogto=tgoo; got o tggo;ogoo:ootg-=3;goto gooo;goog:ogot =fopen(toog[ottg],‖r‖);goto ogog;ggto;ggto:ogto=tgoo;goto ggto:}

如果你上机还有时间,请运行一下上面的程序,看你能否运行出结果,并分析出程序的功能。

三、分析讨论

1、指针的使用方法和特点。 2、数组与指针的联系。

实验六 链表

一、目的和要求

1、掌握结构体类型方法以及结构体变量的定义和引用。

2、掌握指向结构体变量的指针变量的应用,特别是链表的应用。 3、掌握运算符‖.‖和‖->‖的应用。 4、共用体的概念和应用。 5、链表的操作 二、实验内容和步骤

1、有4名学生,每个学生的数据包括学号、姓名、成绩,要求找出成绩最高者的姓名和成绩,上机运行程序。

2、建立一个链表每个结点包括的成员为:职工号、工资。用malloc打印出来。用一个creat 来建立链表,用list来输出数据。5个职工号为101,103,105,107,109。

3、在上题基础上,新增加一个职工的数据,按职工号的顺序插入链表,新插入的职工号为106。写一函数insert来插入新结点。

4、在上面的基础上,写一函数delete,用来删除一个结点。要求删除职工号为103的结点。打印出删除后的链表.

5、你有无办法测试构造链表时,内存空间的动态分配情形? 三、分析讨论

1、结构体的方式。 2、链表的操作。

实验七 文件

一、目的和要求

1、掌握文件指针的概念。

2、掌握文件打开、关闭、读、写等文件操作函数。 3、用缓冲文件系统对文件进行简单的操作定义和引用。 二、实验内容和步骤

1、有5名学生,每个学生的数据包括学号、姓名、成绩(三门课成绩),从键盘输入学生的成绩,要求计算平均成绩、将原有的数据和平均成绩存放在磁盘file中。

2、将上题“file‖文件中的学生数据,按平均分进行排序,要求将排序的学生术数据存放在文件“file1”中。

3、在上题基础上,插入一个学生的3门成绩,要求程序先计算新插入学生的平均成绩,然后将它按成绩的高低顺序插入,插入后建立一个新文件“file2”。

4、在上面的基础上,写一函数delete,用来删除一个学生的数据,再存回原文件。 三、分析讨论

1、文件种类。

2、文件的读写方式。


程序设计课程实验指导书(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:山东省广饶县广饶街道颜徐学校中考化学专题复习第2单元物质的化

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: