实验六 指针实验Word文档格式.docx

上传人:b****2 文档编号:957563 上传时间:2023-04-29 格式:DOCX 页数:14 大小:131.61KB
下载 相关 举报
实验六 指针实验Word文档格式.docx_第1页
第1页 / 共14页
实验六 指针实验Word文档格式.docx_第2页
第2页 / 共14页
实验六 指针实验Word文档格式.docx_第3页
第3页 / 共14页
实验六 指针实验Word文档格式.docx_第4页
第4页 / 共14页
实验六 指针实验Word文档格式.docx_第5页
第5页 / 共14页
实验六 指针实验Word文档格式.docx_第6页
第6页 / 共14页
实验六 指针实验Word文档格式.docx_第7页
第7页 / 共14页
实验六 指针实验Word文档格式.docx_第8页
第8页 / 共14页
实验六 指针实验Word文档格式.docx_第9页
第9页 / 共14页
实验六 指针实验Word文档格式.docx_第10页
第10页 / 共14页
实验六 指针实验Word文档格式.docx_第11页
第11页 / 共14页
实验六 指针实验Word文档格式.docx_第12页
第12页 / 共14页
实验六 指针实验Word文档格式.docx_第13页
第13页 / 共14页
实验六 指针实验Word文档格式.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

实验六 指针实验Word文档格式.docx

《实验六 指针实验Word文档格式.docx》由会员分享,可在线阅读,更多相关《实验六 指针实验Word文档格式.docx(14页珍藏版)》请在冰点文库上搜索。

实验六 指针实验Word文档格式.docx

,p;

printf("

%f\n"

*p;

return0;

}

2.源程序完善、修改、替换题

(1)下面的程序通过函数指针和菜单选择来调用字符串拷贝函数或字符串连接函数,请在下划线处填写合适的表达式、语句、或代码片段来完善该程序。

string.h"

chara[80],b[80],c[160],*result=c;

intchoice,i;

do{

\t\t1copystring.\n"

;

\t\t2connectstring.\n"

\t\t3exit.\n"

\t\tinputanumber(1-3please!

\n"

%d"

&

choice;

}while(choice<

1||choice>

5;

switch(choice{

case1:

p=strcpy;

break;

case2:

p=strcat;

case3:

gotodown;

getchar(;

inputthefirststringplease!

i=0;

inputthesecondstringplease!

result=(a,b;

theresultis%s\n"

result;

down:

(2)为了使程序不受scanf、getchar、gets等函数输入后回车符的影响,请修改第

(1)题程序,按要求输出下面结果:

((输入)表示该数据是键盘输入数据)

1copystring.

2connectstring.

3exit.

inputanumber(1-3please!

2(输入)

themoreyoulearn,(输入)

themoreyouget.(输入)

theresultisthemoreyoulearn,themoreyouget.

3.跟踪调试源程序

char*strcpy(char*,char*;

chara[20],b[60]="

thereisaboatonthelake."

%s\n"

strcpy(a,b;

char*strcpy(char*s,char*t

while(*s++=*t++

return(s;

(1)单步执行。

进入strcpy时watch窗口中s为何值?

返回main时,watch窗口中s为何值?

(2)排除错误,使程序输出结果为:

thereisaboatonthelake.

(3)选做:

由于watch窗口中只显示s所指串的值,不显示s中存储的地址值,怎样才能观察到s值的变化呢?

4.程序设计

(1)一个长整型变量占4个字节,其中每个字节又分成高4位和低4位。

试从该长整型变量的高字节开始,依次取出每个字节的高4位和低4位并以数字字符的形式进行显示。

(2)利用大小为n的指针数组指向用gets函数输入的n行,每行不超过80个字符。

编写一个函数,它将每一行中连续的多个空格字符压缩为一个空格字符。

在调用函数中输出压缩空格后的各行,空行不予输出。

(3)编写一个程序,输入n个整数,排序后输出。

排序的原则由命令行的的可选参数-d定并且有参数-d时按递减顺序排序,否则按递增顺序排序。

要求将排序算法定义成函数,利用指向函数的指针使该函数实现递增或递减排序。

(4)设某个班有N个学生,每个学生修了M门课程(用#define定义N、M)。

输入M门课程的名称,然后依次输入N个学生中每个学生所修的M门课程的成绩并且都存放到相应的数组中。

编写下列函数:

a.计算每个学生各门课程平均成绩;

b.计算全班每门课程的平均成绩;

c.分别统计低于全班各门课程平均成绩的人数;

d.分别统计全班各门课程不及格的人数和90分以上(含90分)的人数。

在调用函数中输出上面各函数的计算结果。

(要求都用指针操作,不得使用下标操作。

二、实验步骤及结果

1,源程序改错

更改之后得到的程序:

#include

floata[10];

p=&

a[0];

return0;

运行结果:

2源程序完善、修改、替换

(1)完善后的代码:

char*(*p(chara[],charb[];

gets(a;

gets(b;

result=p(a,b;

theresultis:

(2)运行结果:

(1)单步调试

进入strcpy窗口中:

返回main时:

(2)程序正确运行结果:

(1)代码如下:

(2)代码如下:

#defineN2

intmain(

char*p[N],buf[82];

inti,j,k;

for(i=0;

i

gets(buf;

p[i]=(char*malloc(sizeof(char*(strlen(buf+2;

strcpy(p[i],buf;

for(j=k=0;

p[i][j];

j++

if(p[i][j]!

='

'

p[i][k]=p[i][j];

k++;

elseif(p[i][j+1]=='

j++;

else

p[i][k]='

\0'

if(strlen(p[i]==0||strcmp(p[i],"

"

==0;

elseputs(p[i];

(3)代码如下:

intmain(intargc,char*argv[]

voiddown_sort(char**p,intm;

voidup_sort(char**q,intk;

intn=0;

while(n

%s"

argv[n];

n++;

if(!

strcmp(argv[1],"

-d"

down_sort(&

argv[2],n-2;

elseup_sort(&

argv[1],n-1;

voiddown_sort(char**p,intm

inti,j;

chart;

i

for(j=0;

j

if(*p[j]<

*p[j+1]

t=*p[j],*p[j]=*p[j+1],*p[j+1]=t;

*p[i]=*p[i]-'

0'

%d"

*p[i];

voidup_sort(char**q,intk

{chart;

if(*q[j]>

*q[j+1]

t=*q[j],*q[j]=*q[j+1],*q[j+1]=t;

*q[i]=*q[i]-'

*q[i];

(4)代码如下:

#defineM3

charsname[M][50];

floata[N+1][M+1];

voidf1(

inti;

for(i=1;

i<

=N;

i++

%g\n"

a[i][0];

voidf2(

=M;

%s%g\n"

sname[i-1],a[0][i];

voidf3(

k=0;

for(j=1;

j<

if(a[j][i]

%s%d\n"

sname[i-1],k;

voidf4(

inti,j,k,h;

k=h=0;

if(a[j][i]<

60k++;

if(a[j][i]>

=90h++;

%s%d%d\n"

sname[i-1],k,h;

%s"

sname[i];

a[i][j];

a[i][0]+=a[i][j];

a[0][j]+=a[i][j];

i++a[i][0]/=N;

j++a[0][j]/=M;

f1(;

f2(;

f3(;

f4(;

三、实验体会

指针的使用给编程效率带来了很大的提高,在本次实验中我体会到了很多指针带给程序设计不一样的体验,总的来说指针的运用比较灵活,对我而言有点难以掌握,但我相信经过一段时间的练习之后,一定会获得很大的收获。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2