未来两周学习内容
- 指针数组
- 指向指针的指针
- 用指针数组处理多个字符串
- 命令行参数
- 指针作为函数的返回值
- 链表
- 链表的概念
- 链表的常用操作
作业要求一 (20分)
完成下列编程题目,每次上完课都会增加2-3道题目,并将编程过程记录在博客里,一次PTA作业任选一道题目给出设计思路、流程图、源代码和错误记录,其他题目可只给出设计思路、源代码和错误记录。另外将每次PTA作业的提交列表贴在博客里,每次5分。
1)C高级第三次PTA作业(1)
6-1 输出月份英文名
实验代码
char *getmonth( int n ) { char *month; char *mon[12] = {"January","February","March","April","May","June","July","August","September","October","November","December" }; month = NULL; if(n <= 0 || n > 12) return month; month = mon[n - 1]; return month; }
设计思路
第一步:将十二个月的名称分别赋值给一维数组指针,定义用于返回的数据类型。第二步:遍历数组,满足若n在(1-12)范围则将month第n-1行的首元素的地址赋给一开始定义的数据。
第三步:返回变量的地址值。
流程图
6-2 查找星期
实验代码
int getindex( char *s ) { int i; char *a[7]= { "Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday" }; for (i = 0; i < 7; i ++) { if (strcmp(s, a[i]) == 0) break; } if (i == 7) i = -1; return i; }
设计思路
第一步:将一个星期每天的英文分别赋值给一维数组指针,定义一个整型变量,赋初值为0。
第二步:遍历一维数组,用strmcp函数比较数组中每行元素与输入的字符串是否相同,若相同,则令此时的行数等于一开始定义的整型变量,且跳出循环。
第三步:返回整型变量值。
6-3 计算最长的字符串长度
实验代码
int max_len( char *s[], int n ) { int a[n],i,k,max = 0; for(i = 0;i < n;i ++) { char *b = s[i]; for(k = 0;;k ++) { if(b[k] == '