C语言博客作业--字符数组
2017-12-10 17:16
387 查看
一、PTA实验作业
题目一:7-2 统计一行文本的单词个数
1. 本题PTA提交列表
![](https://images2017.cnblogs.com/blog/1232142/201712/1232142-20171210092852966-4902317.png)
2.设计思路
定义number表示单词个数,m代表字符串长度,i控制循环变量 char=str[1000],m=字符串长度 如果str[0]==' ' number=0 否则number=1 for I=0 to I<m-1 str[i]为空格&&str[I+1]不为空格 number++ 输出number
3.代码截图
![](https://images2017.cnblogs.com/blog/1232142/201712/1232142-20171210093904466-870820596.png)
4.本题调试过程碰到问题及PTA提交列表情况说明。
![](https://images2017.cnblogs.com/blog/1232142/201712/1232142-20171210094142451-673221980.png)
![](https://images2017.cnblogs.com/blog/1232142/201712/1232142-20171210094556529-841350353.png)
每次输出都比输入的词个数少一个,调试之后发现第一个单词未统计进去,最后添加了一个条件,若str[0]不为空格number便加一,就可以了
题目二:7-3 找最长的字符串
1. 本题PTA提交列表
![](https://images2017.cnblogs.com/blog/1232142/201712/1232142-20171210103116997-1194586284.png)
2.设计思路
定义N代表输入个数,i控制循环,t表示最长的字符串的下标 输入N char str [80]; for I to N 输入str[i]; 定义一个int a ; for i=0 to N a[i]=strlen(str[i]); int max=0 for I=N-1 to I>=0 比教a[i]和max的大小 找出最长字符串的下标t 输出str[t]
3.代码截图
![](https://images2017.cnblogs.com/blog/1232142/201712/1232142-20171210104056482-755917679.png)
4.本题调试过程碰到问题及PTA提交列表情况说明。
![](https://images2017.cnblogs.com/blog/1232142/201712/1232142-20171210105132560-1035326768.png)
这道题可以先输出输入的字符串,和每个字符串的长度,看是否正确再进行比较字符串长度,找出最长字符串的下标。一步一步进行可以减少错误
题目三:7-5 统计大写辅音字母
1. 本题PTA提交列表
![](https://images2017.cnblogs.com/blog/1232142/201712/1232142-20171210105752544-1636936944.png)
2.设计思路
![](https://images2017.cnblogs.com/blog/1232142/201712/1232142-20171210170429958-1397809586.png)
3.代码截图
![](https://images2017.cnblogs.com/blog/1232142/201712/1232142-20171210112222536-598144850.png)
4.本题调试过程碰到问题及PTA提交列表情况说明。
这道题没有遇到问题,出现的错误是因为粗心问题二、截图本周题目集的PTA最后排名。
![](https://images2017.cnblogs.com/blog/1232142/201712/1232142-20171210113146005-15044102.png)
三、同学代码结对互评
1.互评同学名称:刘博涵
2.我的代码、互评同学代码截图
![](https://images2017.cnblogs.com/blog/1232142/201712/1232142-20171210114717568-532876148.png)
![](https://images2017.cnblogs.com/blog/1232142/201712/1232142-20171210114727646-2036318750.png)
3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。
博涵同学的代码是通过遇到字符给flag赋值,遇到空格时结束的循环语句判断,然后计算个数。而我的是先计算数组第一个元素是否为空格,然后通过(str[i]==' '&&str[i+1]!=' ')计算个数我更喜欢我的代码 看起来简洁一点
博涵同学的代码一开始数组定义为str[200],导致运行时错误,后来给数组定义为str[1000]就可以了
![](https://images2017.cnblogs.com/blog/1232142/201712/1232142-20171210120008708-1868145145.png)
四、本周学习总结
1.你学会了什么?
1.1指针变量如何定义(设计代码可以用markdown代码符号渲染)?
指针声明符*在定义指针变量时被使用,说明被定义的那个变量是指针 比如 int *p; char *cp; flag *fp; double *dp1,*dp2;
1.2 指针加法运算运用在哪种情况,2个指针变量能否相加?
可以运用在数组运算中 例如 int a[10]; int *p=a; 则*p=a[0]; *p++=a[1] 两个指针能相减,但不能相加
1.3 指针不赋初值,直接使用,会出现什么情况,请用DEVC验证,并截图展示?
运行不来,停止工作。指针变量被定义后,必须将指针变量和一个特定的变量进行关联后才可以使用它。
![](https://images2017.cnblogs.com/blog/1232142/201712/1232142-20171210150533755-1722934442.png)
1.4 课堂派上关于分离浮点数的整数部分和小数部分那题,请用DEVC验证实现,并在此贴图展示,同时说明哪句是指针变量做函数形参,函数实参应该怎么表示。指针变量做函数形参有什么用处?
![](https://images2017.cnblogs.com/blog/1232142/201712/1232142-20171210152744865-1662739176.png)
形参void splitfloat(float x,int intpart,float fracpart);
实参splitfloat(number,&intpart,&fracpart);
指针变量时,不影响指针本身,但通过指针可影响其指向的变量的值
1.5 请把课本的冒泡排序的函数改成指针变量做形参格式,并把代码写在底下,注意用markdown语法渲染。
void bubble(int *a,int n) { int i,j,t; for(i=1;i<n;i++) for(j=0;j<n-1;j++) if(*(a+j)>*(a+j+1)){//*a代表a[0] *(a+j+1)==a[j+1]; t=*(a+j); *(a+j)=*(a+j+1); *(a+j+1)=t; } }
1.6 如何定义一个指针变量指向数组,如何用指针变量表示数组元素?
int a[80];int *p; p=a;//则*p=a[0]; //p为a数组的指针,*(p+i) (i=0,1,2......9)可表示数组元素。
1.7 如何定义字符指针指向字符串?指针指向字符串后,初始位置在哪里?
char *p; char str={happy}; p=str; 初始位置为字符串首元素的地址
1.8 利用字符指针操作字符串,如设计函数实现字符串连接,请在此贴图展示代码。说明指针表示字符的方法好处是什么?
![](https://images2017.cnblogs.com/blog/1232142/201712/1232142-20171210163451427-352570071.png)
2.本周你不会内容有什么?
2.1 课堂派错题罗列及如何订正
![](https://images2017.cnblogs.com/blog/1232142/201712/1232142-20171210164012271-202244782.png)
A应该改为char str[10];str[10]=“string”;
D中是通过地址来存入字符串,是正确的
2.2 其他不会的?打算怎么解决
指针运用于函数还比较乱,打算通过写pta和巩固一些概念还没掌握好,要多看书本巩固一下
3.数组上机考试小结
3.1 那题错了,请罗列
![](https://images2017.cnblogs.com/blog/1232142/201712/1232142-20171210164531521-111174799.png)
![](https://images2017.cnblogs.com/blog/1232142/201712/1232142-20171210164603505-1089481551.png)
3.2 错题如何订正,为什么错了
上面截图这两题完全没有思路7-3 jmu-c-输出字符间的字符子串没全对
7-4 数组元素的删除看错题目了,回来改了下对了
不会写主要是没有思路,不知道如何下手。第二题函数写了很久没对,十六进制那道不知道怎么下手,直接跳过了。