C语言入门学习C上机实验八要求.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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(__________

文档评论(0)

187****5086 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档