一、学习内容总结

1.指针是一种数据类型,同样占有空间,其存储的是内存地址;

2.定义指针变量要在变量名之前加“*”字符表示;

3.“&”是取地址运算符,“*”是间接运算符;

(注:声名和使用指针时*的意义不同)

4.指针的数据类型是指它所指向的内存空间的数据类型;

5.指针可以与整数进行加减运算,但只能与指针进行减法运算;

6.可以把指针声明成为指向函数的指针,从而通过函数指针调用函数;

7.数组的数组名(二维数组的列)可以看作一个指针;

8.为了防止野指针,一般将指针定义在其他变量之后或者指向NULL。

二、在课堂或课后编程学习遇到的问题及解决过程

  • 问题1:

课后作业“删除字符串中指定字符”的编程中,自定义函数的函数体内没有与调用时定义的变量保持一致导致编译程错误,即调用的地址变量虽然没有“*”标识,但是函数体内要用地址变量定义。(下为delchar的代码,我认为删除字符不应该是简单的过滤)

 #include<stdio.h>
#include<stdlib.h>
#include<string.h>
void delchar(char *s,char c);
int main()
{
char s[],c;
gets(s);
getchar();
c=getchar();
delchar(s,c);
puts(s);
system("pause");
return ;
}
void delchar(char *s,char c)
{
char *ss=NULL;
while(*s)
{
if(*s==c)
{
ss=s;
while(*s)
{
*s=*(s+);
s++;
}
s=ss-;
}
s++;
}
}

解决方案:如上代码,定义函数“void delchar(char *s,char c)”即可。

  • 问题2:

课后作业“从指定位置复制字符串”的编程中,开始没有考虑到题目输入中的位置其实对应字符串下标减一而导致答案错误。(下为正确代码)

 #include<stdio.h>
#include<stdlib.h>
#include<string.h>
void strmcpy(char *s,char *t,int m);
int main()
{
char t[],s[];
int m;
gets(t);
scanf("%d",&m);
strmcpy(s,t,m);
puts(s);
system("pause");
return ;
}
void strmcpy(char *s,char *t,int m)
{
while(m--)
{
t++;
}
strcpy(s,t-); //本条自定义函数实质为strcpy(s,t+m-1);
}

解决方案:如上代码,在调用strcpy函数时在t后减一即可。

  • 问题3:

课后作业“二维数组冒泡排序”的编程中,直接照搬了从前一维数组冒泡排序的思路,从而忽视了二维数组多出来的一层边界的越界问题而导致一些情况下出现答案错误(如下图)。

解决方案:重新考虑了第二层边界的越界问题并修改了for循环的条件。

三、作业

1.PTA(指针字符串查找字符程序)

 #include<stdio.h>
#include<string.h>
int main()
{
int i,n=,count=;
char a[],x;
while((a[n]=getchar())!='\n')
n++;
x=getchar();
while(n--)
if(x==a[n])
count++;
printf("%d",count);
return ;
}

(输出截图)

2.二维数组冒泡排序

 #include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char a[][];
char temp[];
int i,j;
for(i=;i<;i++)
{
gets(a[i]);
}
printf("二维数组冒泡排序:\n");
for(j=;j<;j++)
{
for(i=;i<-j;i++)
{
if(strcmp(a[i],a[i+])>)
{
strcpy(temp,a[i]);
strcpy(a[i],a[i+]);
strcpy(a[i+],temp);
}
}
}
for(i=;i<;i++)
{
puts(a[i]);
}
system("pause");
return ;
}

(输出截图)

四、中国大学MOOC

2018C语言第二次作业的更多相关文章

  1. C语言--第二周作业

    ****学习内容总结**** 1.Git和编辑器截图 2.MOOC截图 3.阅读<提问的智慧>感想 读完<提问的智慧>之后,我认为在提问时,要根据以下步骤: 谨慎明确的描述症状 ...

  2. C语言——第二次作业(2)

    作业要求一 PTA作业的提交列表 作业要求二 题目1.删除字符串中数字字符(函数题) 1.设计思路 - (1)算法 第一步:调用定义的函数. 第二步:定义i=0.j=0,i为原字符数组角标,j为删除后 ...

  3. C语言第二次作业 ,

    一:修改错题 1输出带框文字:在屏幕上输出以下3行信息. 将源代码输入编译器 运行程序发现错误 错误信息1: 错误原因:将stido.h拼写错误 改正方法:将stido.h改为stdio.h 错误信息 ...

  4. c++语言第二次作业

    一题目7-1统计学生成绩 1实验代码 #include<stdio.h> int main(void) { int i,n,grade,A,B,C,D,E; A=B=C=D=E=; sca ...

  5. C语言--第二周作业评分和总结(5班)

    作业链接:https://edu.cnblogs.com/campus/hljkj/CS2017-5/homework/1026 一.评分要求 要求1 阅读指定博客+阅读收获+例子.(5分) 要求2 ...

  6. C语言第二次作业-----顺序结构

    一:改错题 (1)输出指定信息: 将给定源代码输入编译器: 执行编译命令,发现编译器报错,错误信息如下: 经检查,发现源程序将"stdio.h"误拼为"stido.h&q ...

  7. c语言第二次作业2

    ---恢复内容开始--- (一)改错题 1.输出带框文字:在屏幕上输出以下3行信息. 源程序 对源程序进行编译 错误信息1: 错误原因:stdio.h输入错误 改正方法:i和d互换位置 错误信息2: ...

  8. 网络1712--c语言第二次作业总结

    1.作业亮点 1.1在调试问题方面有明显进步,变量声明方面有所改变,没有发现大面积抄袭现象. 1.2 以下几位同学博文写的较为优秀,可作为范例供大家参考 田亚琴--代码格式良好,思路清晰,调试部分图文 ...

  9. C语言第二次作业

    一.PTA实验作业 题目1:7-1 计算分段函数[2] 1.实验代码 double x,y; scanf("%lf",&x); if (x>=0) { y=sqrt( ...

随机推荐

  1. SQL优化|Java面试题

    转载:https://www.cnblogs.com/Jacck/p/8030455.html 数据库的优化问题 一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂 ...

  2. c# 通过.net自带的chart控件绘制饼图pie chart

    c# 通过.net自带的chart控件绘制饼图pie chart   需要实现的目标是: 1.将数据绑定到pie的后台数据中,自动生成饼图. 2.生成的饼图有详细文字的说明. 具体的实现步骤: > ...

  3. linq to xml 增删查改

    一.XML基本概述 XML文件是一种常用的文件格式,例如WinForm里面的app.config以及Web程序中的web.config文件,还有许多重要的场所都有它的身影.Xml是Internet环境 ...

  4. LeetCode[Array]----3Sum

    3Sum Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find a ...

  5. mongodb安装使用笔记

    mongodb安装使用 安装后配置环境变量 创建数据库文件夹并连接数据库,并执行mongod --dbpath c:\workname 打开新的cmd,执行mongo命令,管理数据库 show dbs ...

  6. ios开发之--打印bool值

    eg:NSLog(@"Hello,objective-c!");   @表示应该当作NSString字符串来处理. NSLog相当于C语言中的printf,常用于文字输出 NSLo ...

  7. LR 测试http协议xml格式数据接口

    Action() { lr_start_transaction("T1"); web_custom_request("xxxxHTTPRequest", &qu ...

  8. 虚拟机中多个Linux系统之间配置免秘钥访问

    1.三个节点cdh1,cdh2,cdh3 2.在每个机器上分别生产公钥对 ssh-keygen -t rsa 3.复制公钥 cd .ssh cat  id_rsa.pub  >> auth ...

  9. 使用 urllib 处理 Cookies 信息

    如何获取 Cookies : import urllib.request import http.cookiejar cookies = http.cookiejar.CookieJar() # 先声 ...

  10. 来数一数XML解析成为Dataset数据

    最近在看一些接口,所以目标就是写接口啦,但是我想说的是公司的业务还不曾了解,所以自己先来做一个小小的demo练习吧,主要知道需要和xml有关系的,但是之前从来没有接触过解析xml文件的,在玩撒谎能够搜 ...