C语言第八次博客作业--字符数组
一、PTA实验作业
题目1:查验身份证
1. 本题PTA提交列表
2. 设计思路
定义i,flag=1,z,m[11],a[19]
输入次数n
for i=1 to n+1
gets(a)
加权求和在取余计算z
switch(z)
对应查看a[17]与校验码是否一致
若不一致,flag=0,输出错误身份证
若flag=1,则说明全对
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
- 部分正确 :将x改为大写x
题目2:藏头诗
1. 本题PTA提交列表
2. 设计思路
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
本题题目很好理解,在DEV上写的时候发现了自己两个问题
1.对一个汉字占两个字节没理解。存储一个汉字需要两个字节,而char类型是一个字节,所以一个中文字占用2个字节来存储及输出。
- 调试过程:
本想通过调试看变量,但发现调试看不出毛病在哪里。再浏览了一遍发现自己只在定义时保证了储存空间足够,而在对新诗赋值时却没有意识到要两个字节来表示一个汉字。
pome_[2*i]=pome[i][0];//对新诗赋值
pome_[2*i+1]=pome[i][1];
2.忽略了字符数组结束标志
- 调试过程:
pome_[2*i]='\0';//标志结束
题目2:辅音大写字母
1. 本题PTA提交列表
2. 设计思路
定义i,num=0,a[80]
输入字符串,接收到\n以\0结尾
for i=0 to a[i]='\0'
if a[i]是大写字母
if a[i]不是A,E,I,O,U num++
输出num
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
没什么大问题,题目没看清
二、截图本周题目集的PTA最后排名。
三、同学代码结对互评
1.互评同学名称
王宵莹
2.我的代码、互评同学代码截图
我的代码
宵莹的代码
3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。
这道题麻烦在对多种情况的空格进行判别,我的代码分类很多:开头多个空格,中间多个空格,结尾多个空格。我是把它特殊的都判断出来;而宵莹的代码则是找出了判断单词最关键条件,只要满足一个条件就判断是一个单词。
我更喜欢宵莹的代码,确实会比较难想到,但是含金量很高。
四、本周学习总结
1.你学会了什么?
1.1指针变量如何定义(设计代码可以用markdown代码符号渲染)?
int *p1 *p2;
p1=&a;
p2=p1;
1.2 指针加法运算运用在哪种情况,2个指针变量能否相加?
指针+常数=常数*指针所指类型大小
指针相当于一个地址,两个指针求和无意义。
1.3 指针不赋初值,直接使用,会出现什么情况,请用DEVC验证,并截图展示?
- 指针的初始值必须是一个地址,决不允许赋予任何其他数据,通常是一个数据的地址或地址变量或空指针。未初始化的指针,它指向的内存的值是不可预知的,很多时候程序崩溃都因为指针未被初始化或指向了错误的地方。
1.4 课堂派上关于分离浮点数的整数部分和小数部分那题,请用DEVC验证实现,并在此贴图展示,同时说明哪句是指针变量做函数形参,函数实参应该怎么表示。指针变量做函数形参有什么用处?
#include<Stdio.h>
void splitfloat (float x, int *intpart,float *fracpart);
int main()
{
float x,fracpart;//定义拆分数,小数
int intpart;//定义整数
scanf("%f",&x);//输入拆分数
splitfloat (x,&intpart,&fracpart);//调用函数
printf("该实数的整数部分为:%d\n",intpart);//输出
printf("该实数的小数部分为:%f\n",fracpart);
return 0;
}
void splitfloat (float x, int *intpart,float *fracpart)
{
float k;
k=x-(int)x;
*intpart=(int)x;
*fracpart=k;
}
void splitfloat (float x, int *intpart,float *fracpart)
```这句是指针变量做函数形参,函数实参为地址(指针变量)。
- 用指针变量作函数参数可以将函数外部的地址传递到函数内部,使得在函数内部可以操作函数外部的数据,并且这些数据不会随着函数的结束而被销毁。利用它也可以使函数返回多个值。并且像数组、字符串、动态分配的内存等都是一系列数据的集合,没有办法通过一个参数全部传入函数内部,只能传递它们的指针,在函数内部通过指针来影响这些数据集合。
###1.5 请把课本的冒泡排序的函数改成指针变量做形参格式,并把代码写在底下,注意用markdown语法渲染。
void bubble (int p ,int n)
{
int i,j,t;
for(i=0;i<n;i++)
for(j=0;j<n-i;j++)
{
if(p>(p+1))
{
t=p;
p=(p+1);
(p+1)=t;
}
}
for(i=0;i<n;i++)
printf("%d",(p+i));
}
###1.6 如何定义一个指针变量指向数组,如何用指针变量表示数组元素?
int a[],p;
p=a<=>p=&a[0];//指针变量指向数组第一个元素的地址
a[99]<=>(p+99)<=>p[99]//三者等价
###1.7 如何定义字符指针指向字符串?指针指向字符串后,初始位置在哪里?
char *sp="point";
指针会指向该字符串的首字符
###1.8 利用字符指针操作字符串,如设计函数实现字符串连接,请在此贴图展示代码。说明指针表示字符的方法好处是什么?
void line(char p1, char p2)
{
while(p1)
{
p1++;
}
while(p2)
{
*p1 = *p2;
p1++;
p2++;
}
*p1='\0';
}
- 通过指针能实现所谓的“传引用”而不是“传值”,本质上节约了数据传输性能
##2.本周你不会内容有什么?
###2.1 课堂派错题罗列及如何订正。
![](http://images2017.cnblogs.com/blog/1233559/201712/1233559-20171210112835255-451306603.png)
订正:
这个主要错误是最后指针还要在赋一次值,以免程序崩溃。这个确实像字符串那个'\0'一样很容易被遗漏。
###2.2 其他不会的?打算怎么解决
对于刚学的指针尤其是字符指针还有点模糊,主要是不清楚什么情况下用它比较省事,再加上新学所以不太敢用。打算多练一些指针的经典题目来熟悉它。
##3.数组上机考试小结
![](http://images2017.cnblogs.com/blog/1233559/201712/1233559-20171210112929677-7342713.png)
###3.1 那题错了,请罗列?
前两个函数题没做出来,刚开始看第一题没什么思路,就开始倒着写,等写到倒数第2题那个输出字符间字符子串时,一直卡在那里,后来打算先放下继续做,等做到函数题时时间已经没剩下多少了。
###3.2 错题如何订正,为什么错了
6-1,6-2:还没来得及订正。
7-3:这道题类似于字符数组里那道删除子串,我会把这两题放在一起解决。
C语言第八次博客作业--字符数组的更多相关文章
- C语言博客作业—字符数组
一.PTA实验作业 题目1:字符串转换成十进制整数 1. 本题PTA提交列表 2. 设计思路 (1)定义i为循环变量,number用于存放每一次转化的结果,flag用于判断是否为负数,p用于修改结果的 ...
- C语言博客作业--字符数组
一.PTA实验作业 题目1:统计一行文本的单词个数 1. 本题PTA提交列表 2. 设计思路 Begin 定义字符型变量ch,pre=' ': 定义整型变量count://用来记录单词个数 count ...
- C语言博客作业--字符数组-陈张鑫
一.PTA实验作业(4分) 题目1:7-5 查验身份证 1. 本题PTA提交列表(要提交列表,不是结果) 2. 设计思路(伪代码或流程图) 定义变量身份证个数n,合法个数count=0,flag=0, ...
- C语言博客作业字符数组
一.PTA实验作业 7-12 IP地址转换 本题PTA提交列表 设计思路 3.代码截图 7-7删除字符串中的子串 本题PTA提交列表 设计思路 定义字符型数组s[81]储存主串,sub[81]储存子串 ...
- 第八周博客作业 <西北师范大学| 周安伟>
第八周博客作业 助教博客链接https://home.cnblogs.com/u/zaw-315/ 作业要求博客链接https://www.cnblogs.com/nwnu-daizh/p/10687 ...
- C语言第七次博客作业--一二维数组
一.PTA实验作业 题目1:找鞍点 1. 本题PTA提交列表 2. 设计思路 定义n,i,j,ii,jj,a[7][7],flag,max 输入n for i=0 to i=n for j=0 to ...
- C语言最后一次博客作业
1.当初你是如何做出选择计算机专业的决定的? 一开始选专业的时候,说实话我很纠结也很迷茫,对我来说,中学时代,似乎就只要考好试,做好题就可以了,对于未来想要做啥并没有那么多的规划和想法,偶尔跟基友畅聊 ...
- 第八周博客作业<西北师范大学|李晓婷>
1.助教博客链接:https://home.cnblogs.com/u/lxt-/ 2.作业要求链接:http://www.cnblogs.com/nwnu-daizh/p/10687492.html ...
- C语言博客作业04——数组
1.本章学习总结 1.1思维导图 1.2本章学习体会及代码量 1.2.1学习体会 这几周学习了数组,数组分为三大块:一维数组.二维数组和字符数组.数组相对于之前普通变量的好处就是可以储存数值,方便数据 ...
随机推荐
- mysql的常用引擎
在MySQL数据库中,常用的引擎主要就是2个:Innodb和MyIASM. 首先: 1.简单介绍这两种引擎,以及该如何去选择.2.这两种引擎所使用的数据结构是什么. 1. a.Innodb引擎,Inn ...
- BZOJ 2429: [HAOI2006]聪明的猴子
Description 在一个热带雨林中生存着一群猴子,它们以树上的果子为生.昨天下了一场大雨,现在雨过天晴,但整个雨林的地 表还是被大水淹没着,部分植物的树冠露在水面上.猴子不会游泳,但跳跃能力比较 ...
- ubuntu常用命令操作
建立文件夹软链接 ln -s 源文件 目标文件 当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下 ...
- VC中基于 Windows 的精确定时
在工业生产控制系统中,有许多需要定时完成的操作,如定时显示当前时间,定时刷新屏幕上的进度条,上位 机定时向下位机发送命令和传送数据等.特别是在对控制性能要求较高的实时控制系统和数据采集系统中,就更需要 ...
- windows 下安装或者卸载memcache
1.安装到系统服务中: 在doc中:执行此软件 memcached.exe -d install(如果提示错误,要找到cmd.exe用管理员身份打开) 2.卸载: 在doc中:执行此软件 memcac ...
- R语言 文本挖掘 tm包 使用
#清除内存空间 rm(list=ls()) #导入tm包 library(tm) library(SnowballC) #查看tm包的文档 #vignette("tm") ##1. ...
- Flex中配置FusionCharts
Flex中配置FusionCharts 1.配置前说明 (需要的工具和插件) 1.1 MyEclipse10.0 1.2 Flash Builder4.0 1.3 FusionCharts ...
- No bean named 'sessionFactory' is defined
1.错误描述 严重:Servlet service() for servlet default threw exception . org.springframework.beans.factory. ...
- ASP.NET性能调试
该文转自mx5721的博客:http://blog.csdn.net/mx5721/article/details/9138135 设计考虑 性能和安全的考虑 应用程序逻辑划分的考虑:逻辑分层,然后使 ...
- 利用MD5加密字符串
private static string MD5E(string temp) { MD5 md5 = new MD5CryptoServiceProvider(); byte[] source=Sy ...