C/C++知识点之C语言博客作业--字符数组
小标 2018-09-19 来源 : 阅读 1182 评论 0

摘要:本文主要向大家介绍了C/C++知识点之C语言博客作业--字符数组,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

本文主要向大家介绍了C/C++知识点之C语言博客作业--字符数组,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

一、PTA实验作业
题目1:7-3 找最长的字符串
1. 本题PTA提交列表

2. 设计思路

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明。
在输入n之后有个回车,因为是字符型数组,所以回车别数组吸收,要定义一个字符型变量op把回车吸收
题目2:7-4 查验身份证
1. 本题PTA提交列表

2. 设计思路
定义整型变量flag作为是否合格的标志,sum作为z值,count作为合格数,i,j,n表示号码个数
定义 b[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};//权重分配表
输入n
char a[n][18],c,op;//a[n][18]实现多行字符串
op=getchar();//吸收n后的回车
for(i 0 to n-1){
输入a[i]
for(j 0 to 16){
if(a[i][j]不是字符0到9)
flag为1,直接跳出循环
计算num=(a[i][j]-‘0‘)*b[j];//加权求和
      sum+=num;
 }
计算sum=sum%11;//得到z值
switch(sum){
case  0:c=‘1‘;break;
...
对应表
}
if(c不等于a[i][17])//判断是否和最后一位数相等
则flag为1
if(flag为0)
则count加一,sum赋为0
if(flag为1)
则输出该号码,flag赋为0,sum为0
}
if(count为n)//合格数为n
则输出All passed
3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明。
这个题和第三题都存在吸收回车的问题,另外在对应关系时要用switch语句且要定义一个字符型变量
题目3:7-11 藏头诗
1. 本题PTA提交列表

2. 设计思路
定义字符型数组s[4][20]放四句诗,p[9]放每句的第一个字
for(i 0 to 3)
输入s[i]
for(i 0 to 3){
p[2*i]=s[i][0];//汉字占两个字符的位置
p[2*i+1]=s[i][1];
}
p[2*i]放入字符串结束符
输出数组p
3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明。
题目提醒一个汉字占两个字节,在提出第一个汉字的时候要定义一个新的数组。
二、截图本周题目集的PTA最后排名。

三、同学代码结对互评
1.互评同学名称
谢国庆
2.我的代码、互评同学代码截图

国庆的代码

我的代码

3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。
我用的是二维数组来实现输入多行字符串,国庆用的是循环。
他的代码还用到了头文件string.h中的memset函数,我看他的代码之前还不知道这个函数,就查阅了资料,这个函数的功能大致是每次循环后为新申请的内存做初始化工作。
像不知道这个函数功能的人来说,不容易懂这个代码。
但通过这个题我觉得自己的知识还很欠缺,以后要多掌握其他知识,多向能力强的同学请教。
四、本周学习总结
1.你学会了什么?
1.1指针变量如何定义(设计代码可以用markdown代码符号渲染)?
int *p;
char *cp;
float *fp;
double *dp;
1.2 指针加法运算运用在哪种情况,2个指针变量能否相加?
指针+一个整型常量
不能
1.3 指针不赋初值,直接使用,会出现什么情况,请用DEVC验证,并截图展示?

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

void splitfloat(float x,int intpart,float fracpart)
splitfloat(x,intpart,fracpart);
用指针类型形参接受实参的地址,来对实参所指的变量的值进行改变
1.5 请把课本的冒泡排序的函数改成指针变量做形参格式,并把代码写在底下,注意用markdown语法渲染。
#include
void bubble(int *a,int n);
int main(){
int i,n;
scanf("%d",&n);
int a[n];
for(i=0;i<n;i++)
scanf("%d",&a[i]);
bubble(a,n);
for(i=0;i<n;i++)
printf("%d ",a[i]);
return 0;

void bubble(int *a,int n){
int i,j,change;
for(i=0;i<n-1;i++)
 for(j=0;j<n-i-1;j++){
    if(*(a+j)>*(a+j+1)){
    change=*(a+j);
    *(a+j)=*(a+j+1);
    *(a+j+1)=change;}
 }
}
1.6 如何定义一个指针变量指向数组,如何用指针变量表示数组元素?
int a[100],p;
p=a;
a+i=&a[i];
a[i]=(a+i);
1.7 如何定义字符指针指向字符串?指针指向字符串后,初始位置在哪里?
char line[100],s;
s=line;
初始位置在字符串首字符的位置
1.8 利用字符指针操作字符串,如设计函数实现字符串连接,请在此贴图展示代码。说明指针表示字符的方法好处是什么?

用数组表示字符,数组名是一个常量,用指针表示字符,指针是一个变量。
2.本周你不会内容有什么?
2.1 课堂派错题罗列及如何订正。

point表示内容,&point表示地址

再输入之后p=a+6,若要输出从a开始,要重新使p=a,否则会发生越界。
2.2 其他不会的?打算怎么解决
不会的
1.地址与内容的改变对指针的影响
2.基本运算有些迷
3.指针与数组的互换与表示方法
4.字符串处理函数的应用
解决方法
1.弄懂课本的例题,参考后面对例题的解释
2.在dev上验证基本运算
3.在dev上把字符串处理函数多运用
3.数组上机考试小结
3.1 那题错了,请罗列?
编程题的二,三题都没有满分
7-2 jmu-c-十进制转16进制
7-3 jmu-c-输出字符间的字符子串
7-4 数组元素的删除
3.2 错题如何订正,为什么错了?
7-2
考试代码

改正代码

考试的时候对于如何转成十六进制数的方法太麻烦,考完后想想十进制转二进制是除二取余法,所以就用了除十六取余法来算。
7-3
没有考虑到起始字符或终止字符重复出现的情况。

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C/C+频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程