C语言程序实验报告--谭浩强(8)

2019-02-16 01:16

printf(\printf(\}

运行结果:

指针可以进行:指针变量加减一个整数、指针变量赋值、指针变量相减、指针变量比较。

下面的程序能获得上述结果么? 答:可以! #include main() {

char *s=\ char c;

printf(\ printf(\ c=getchar(); if(c='c') puts(s); else {

s=\ puts(s); } }

(4) 设计一个C语言程序,用以测试下列各表达式的运算顺序。 设计程序如下: #include main() {

int y,*px,*py,*ppx,a,b,c; px=&a; py=&b; ppx=&c; y=*px++;

printf(\ y=*++py; printf(\ y=(*py)++; printf(\

36

y=--*ppx++; printf(\}

运行结果如下:

实验

15

1.实验目的与要求

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

(2)掌握指向结构体变量的指针变量的概念和应用,特别是链表的概念和应用。(3)掌握运算符“,”“->”的应用。 (4)掌握共用体的概念和应用。 2.实验准备

做好下面的实验准备工作。 3.实验内容和步骤 (1)程序功能

输入具体的年月日,输出该日期是这一年的第几天。请将空白处填好。 完整程序如下: #include

static int day_tab[2][13]={0,31,28,31,30,31,30,31,31,30,31,30,31,

0,31,29,31,30,31,30,31,31,30,31,30,31}; struct date {

int day; int month; int year; int yearday;

char month_name[5]; };

day_of_year(struct date * pd) {

int day,i,leap;

leap=((*pd).year@0==0)||((*pd).year%4==0&&(*pd).year0!=0); day=(*pd).day;

for(i=1;i<(*pd).month;i++) day+=day_tab[leap][i]; (*pd).yearday =day; }struct date w;

37

main() {

printf(\

scanf(\ day_of_year(&w);

printf(\ }

(2)调试下列程序,分析数据之间的储存关系。 #include struct sf {

char *s;

struct sf * psf; }

main() {

static struct sf x[]={{\ struct sf *p[]; int i;

for(i=0;i<3;i++) p[i]=x[i].psf ;

printf(\ swap(*p,x);

swap(p[0],p[0]->psf );

printf(\ printf(\}

swap(struct sf *p1,*p2) {

char * temp; temp=p1->s; p1->s =p2->s; p2->s=temp; }

(3)下面的程序旨在建立一条单向链表储存线性表(a1-a2……-an),然后将此线性表;逆置成(an-an-1…a2-a1)。 完整程序如下: #include struct node {

int num;

struct node * next; }* head;

int a[10]={1,2,3,4,5,6,7,8,9,10};

38

main() {

int i ;

struct node *p; if(head!=NULL) {

p=head;

p->num =a[0]; } else {

printf(\ exit(1); }

for(i=2;i<=10;i++) {

p->next =(struct node *)malloc(sizeof(struct node)); if(p->next !=NULL) {

p=p->next;

p->num =a[i-1]; p->next =NULL; }

else break; }

reverse(head); }

reverse(struct node *p) {

struct node *prt1,*prt2; ptr1=p->next ;

while(ptr1->next!=NULL) {

ptr2=ptr1->next; ptr1->next=p; p=ptr1;

ptr1=ptr2; }

ptr1->next=p;

head->next =NULL; head=ptr1;

}

39

实验16

1、实验目的与要求

(1) 掌握文件和文件指针的概念以及文件的定义方法。 (2) 了解文件打开和关闭的概念及方法。 (3) 掌握有关文件的函数。

2、实验准备

做好下面实验的准备工作。

3、实验内容和步骤

(1)下面的程序要实现两个文件之间的比较,具体功能如下。 1)使用命令行参数输入两个文件的文件名。

2)要求给出两 个文件首次出现不同的行和字符时的位置。

调试程序如下: #include

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

FILE*f1,*f2,*fopen(); int line=0,count=0; char c1,c2; if(argc>2){ f1=fopen(argv[1],\ f2=fopen(argv[2],\ if(f1!=NULL && f2!=NULL) while((c1=getc(f1))!=EOF){ c2=getc(f2); if(c1=='\\t'||c1=='\\n') count++; else c2=getc(f1); if( !count ) line++; } else{ printf(\ exit(1); if(c1==EOF) printf(\ else printf(\ fclose(f1);

40


C语言程序实验报告--谭浩强(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016年上半年小学《教育教学知识与能力》真题及答案 - 图文

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

马上注册会员

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