- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
上机实验八 指针综合练习 & 函数初步
【实验七参考答案 见后 】
目的和要求:
1)继续熟悉指向字符串的指针;
2)掌握二维数组列指针、行指针的使用要领;
3)了解指针数组的作用;
4)了解自定义子函数的一般应用;
5)掌握值传递的要领,了解地址传递的特点。
实验内容:
一、完善程序题
1.以下程序统计指定句子(即只含有字母、空格、句号的字符串)中的单词个数,并输出每个单词。
【本题的思路是:将每个单词存放到二维数组的每一行,则存放的行数即为单词的个数。 】
#include <string.h>
#include <ctype.h>
main()
{char *text=" I will pass the examination in the summer holiday." ; int n, i, j, word;
char a[20][80];
while(*text==' ' )text++;
/* 去掉前导空格
*/
n=0; j=0;
for(i=0; i<strlen(text); i++)
if(isalpha(*(text+i))) /* isalpha 函数的功能是判断其参数是否为字母,要加
{a[n][j++]= _________ ; word=0;}
else
if(word==0){ word=1; _________; ________; ________; }
"ctype.h"*/
printf("It has %d word.\n\n", n);
for(i=0;i<n;i++)
puts(a[i]);
}
2.用指针完成下列任务:输出如下矩阵:
1 2 3 4
5 6 7 8
9 10 11 12
【法一 :使用列指针完成,双重循环】
#include "stdio.h"
main()
{int a[3][4],i,j,k=1;
int *p;
p=__________;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
*(p+__________)=k++;
for(i=0;i<3;i++)
{for(j=0;j<4;j++) printf("%3d", a[i][j]);
printf("\n");}
}
【法二 :使用列指针完成,单循环】
#include "stdio.h"
main()
{int a[3][4],i,j=1;
int *p;
for(i=0;i<12;i++)
a[__________][ __________]=j++;
p=a[0];
for(i=0;i<3;i++)
{for(j=0;j<4;j++) printf("%3d", *(p+__________));
printf("\n");}
}
【法三 :使用行指针完成】
#include "stdio.h"
main()
{ int a[3][4] ,i, j, k=1;
____________________
q=a;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
*(*(__________) + _________)=k++;
for(i=0;i<3;i++)
{for(j=0;j<4;j++) printf("%3d",____________________);
printf("\n");}
}
3.任意读入 5 个字符串,用选择法降序排列后输出,并将最大串和最小串连接后输出。例如,读入:
I
love
you
very
much
则输出:
you
very
much
love
I
合并后的串: youI
【程序如下,请填空: 】
#include <stdio.h>
#include <string.h>
#define N 5
main()
{char s[N][20]; // 假设每个串的串长都小于 20
char h[40]="";
char *p[N]; //借助指针数组,可以只交换指向串的指针,不交换串本身
int i,j,k;
for(i=0;i<N;i++) //让指针数组 p 的每一个元素依次存放 s 每行的首地址
__________;
for(i=0;i<N;i++) //读入 5 个串,存放到 s 的每一行中
gets(s[i]);
以下用选择法排序
for(i=0;i<=N-2;i++)
{k=i;
for(j=i+1;j<=N-1;j++)
if(____________________)k=j;
if(k!=i)
{char *t;
t=p[i];
__________;
__________;}
}
puts(" 降序排列后: ");
for(i=0;i<N;i++)
puts(__________
1亿VIP精品文档
相关文档
最近下载
- 2023年四年级下语文期中复习·心田花开.pdf VIP
- 2023年全国统一高考英语试卷(全国甲卷)(含答案与解析).pdf
- 【课件】歌唱的情感与表达+当那一天来临+课件高中音乐人音版(2019)+必修2+歌唱.pptx VIP
- 03s702钢筋混凝土化粪池图集(高清).pdf
- 在线网课学习课堂《生命科学基础(北理 )》单元测试考核答案.docx
- 电视画面编辑(本科)王晓红.ppt
- 2021-2022学年威海市乳山市八年级下学期期中数学试卷(含答案解析).docx
- 特种设备生产(含安装、改造、维修)单位质量安全风险管控清单 .docx
- 人工智能导论 人工智能理论基础 人工智能理论基础.pptx
- 搅拌设备设计.ppt
文档评论(0)