第二次作业
一.学习内容总结
通过这几周对指针的学习,真心觉得指针这一块挺难的...但是指针最为C语言中一个人重要的概念,它不仅能有效地表达复杂的数据结构,也能方便的使用数组,处理单元格的地址等等,指针的概念比较复杂,在老师讲的时候就觉得模模糊糊,自己做题的时候更是比较晕,所以要加强对这一块的复习以及提问。指针是地址,是常量,而指针变量是指取值为地址的变量
二.在课堂或课后编程学习遇到的问题及解决过程
问题一:分不清地址与单元格字节这几个概念,容易混淆
解决方法:看教材以及老师上课时放的PPT,反复记和练习
问题二:打完代码之后编译总是出错
解决方法:发现自己总是头文件或者标点符号等等地方出错,应该练习,才能熟练
问题三:不懂得如何使用老师新讲的这些知识
解决方法:问同学,练习
三.作业
1.PTA代码
#include <stdio.h> #include <string.h> int main() { char ch,a[80]; int i,x=0; gets(a); ch=getchar(); for(i=0; a[i]!='\0'; i++) { if(a[i]==ch) x++; } printf("%d",x); return 0; }
输出截图
2.以二维数组形式对5个字符串进行排序
#include<stdio.h> #include<stdlib.h> #include<string.h> int main() { int n=5,i,j; char **str; char s[100]; str=(char**)malloc(sizeof(char*)*n); for(i=0;i<n;i++) { str[i]=(char*)malloc(sizeof(char)*100); printf("请输入第%d个字符串\n",i+1); gets(str[i]); } puts("排序后的字符串为:"); for(i=0;i<n;i++) { for(j=i;j<n-1;j++) { if(strcmp(str[j+1],str[j])<0) { strcpy(s,str[j+1]); strcpy(str[j+1],str[j]); strcpy(str[j],s); } } } for(i=0;i<n;i++) { puts(str[i]); } for(i=0;i<n;i++) { free(str[i]); str[i]=NULL; } free(str); str=NULL; return 0; }
四.附加内容
注册中国大学Mooc,并参加浙江大学的”程序设计入门-C语言课程“的截图。