yob。

C语言博客作业--字符数组

一、PTA实验作业

题目1:7-5 统计大写辅音字母

1. 本题PTA提交列表

2. 设计思路(用代码表示扣分)

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明。

  • 最开始没有看清楚题意,题目要求的是输出大写辅音字母,没有没弄清条件导致错误
  • 设计思路问题,在统计大写字母总个数时,我最开始用了i来直接统计,没有另外设置一个变量,但是i的值已经不是从0开始了,导致错误,后查错改正

题目2:字符串转换成十进制整数

1. 本题PTA提交列表

2. 设计思路(用代码表示扣分)

- 定义i作循环变量,index存放负号所在的下标,数组a[100],number用来存放最后结果
- 输入字符串
- for  i=0  to   a[i]!='#'
- 如果字符在数字0到9之间, number=number*16+a[i]-'0';
- 如果在a到f之间 number=number*16+a[i]-'a'+10;
- 如果在A到Z之间number=number*16+a[i]-'A'+10;
- i值自增1
- for  i=0  to   a[i]!='#'
- 如果a【i】中的元素在0到9;a到f;A到Z
- index=i;记录这个元素下标,并结束循环
- for i=0  to  i<index 
- if(a[i]=='-'){ number=-number并结束循环
- 输出number

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明。

  • 最开始用了两个数组,另一个数组用来存放删掉非十六进制字符的字符们,这样做因为一些下标问题导致错误,后来放弃了它,为什么错怎么改正解决中
  • 在判断负号问题的时候,最开始我把负号放在最前面判断,但它的保留又是个问题,参考了一下同学的方法改进

题目3:IP地址转换

1. 本题PTA提交列表

2. 设计思路(用代码表示扣分)

- 定义长度为32的数组a,循环变量i,j,num
- for i=0 to 32
- 不断输入字符存进数组a
- for i=0 to 32 每循环一次i值自增8
- 赋num=0
- for(j=i;j<i+8;j++)
- 如果字符==1;num=num+(int)pow(2,8-j+i-1)
- 输出num
- j!=32,每结束一次上述循环输出一个点

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明。

  • 小数点的位置的添加错误,在内循环每结束一次就应该加小数点

二、截图本周题目集的PTA最后排名。

三、同学代码结对互评

1.互评同学名称

  • 李琴同学

2.我的代码、互评同学代码截图

  • 上图为同学的,下图为我的

3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?

  • 我和同学的代码的主要不同在于分支结构部分,我用的是switch语句来选择元音字母的个数,然后再统计总体大写字母的个数再减去元音字母的个数; 同学则直接用if选择大写字母进入嵌套分支,如果是大写字母而且它不为元音字母,则负责统计的变量值加一;
  • 同学的优势在于更加简便,直接就可以统计出辅音字母的数目;我的方法还得再进行算术操作,更喜欢同学的一点

四、本周学习总结

1.你学会了什么?

1.1指针变量如何定义(设计代码可以用markdown代码符号渲染)?

  • 一般形式:类型名 *指针变量名
  • int *p,a=3; p=&a;

1.2 指针加法运算运用在哪种情况,2个指针变量能否相加?

  • 指针p所指向的变量值加一:p=p+1、++p、(p)++;p++==(p++),是将*p的值作为表达式的值,再将指针p加一,运算后p不再指向原来所指的变量
  • 两个指针变量不能相加

1.3 指针不赋初值,直接使用,会出现什么情况,请用DEVC验证,并截图展示?


  • 指针不赋初值便使用会导致系统奔溃,见图二

1.4 课堂派上关于分离浮点数的整数部分和小数部分那题,请用DEVC验证实现,并在此贴图展示,同时说明哪句是指针变量做函数形参,函数实参应该怎么表示。指针变量做函数形参有什么用处?


  • 分别为指针变量做形参和函数做实参
  • 指针变量做形参可以在调用函数中改变主函数的值

1.5 请把课本的冒泡排序的函数改成指针变量做形参格式,并把代码写在底下,注意用markdown语法渲染。

void bubble(int *p,int n)
 {
int i,j,t;
for(i=1;i<n;i++)
   for(j=0;j<n-i;j++)
   if(*(p+j)>*(p+j+1)){
t=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=t;}
}

1.6 如何定义一个指针变量指向数组,如何用指针变量表示数组元素?

  • 先定义好数组,p=a即表示指针变量p首指的地址为数组元素a[0]的地址
  • p=a+1等同于p=&a[1]

1.7 如何定义字符指针指向字符串?指针指向字符串后,初始位置在哪里?

  • 类型名 *指针变量名=“字符串”
  • 初始位置是存放字符串常量首字符的储存单元的地址

1.8 利用字符指针操作字符串,如设计函数实现字符串连接,请在此贴图展示代码。说明指针表示字符的方法好处是什么?

char str1[80] =''hello'',t[80]=''world'';
strcat(str1,t);
stract(str1,''!'');
最后输出结果:hello world!

2.本周你不会内容有什么?

2.1 课堂派错题罗列及如何订正。


这种类型的题我写了前两步或者写到第三步就不知道要写什么了,答案已经给出,只要再其实在题目中也有,需要认真阅读和发现

2.2 其他不会的?打算怎么解决

  • 对于指针变量作为参数的应用和写法不是很熟悉,多分析课本例题和敲一些代码。

3.数组上机考试小结

3.1 那题错了,请罗列?

  • jmu-c-二维数组转置并按列排序
  • 数组元素的删除

  • 二维数组的题对数组有些不会运用,下标也经常搞混,数组的转置出现问题,到排序的时候不知道怎么按行和列排
  • 数组元素的删除时,删除了一个元素导致数组发生变化再次删除时不是按旧的数组来,,,导致错误

posted on 2017-12-10 22:56  emmmm。。。  阅读(271)  评论(2编辑  收藏  举报

导航