关于数组

1.2 字符串的结束标志是什么,为什么要结束标志?
结束标志:‘\0’
原因:定义字符数组是由于无法直接知道字符串中字符个数,通常会定义一个长度远大于要存入字符串的长度,所以如果没有结束标志,数组将全部遍历完才能停止,这样可能造成运行超时,或者无法预料的错误,所以要在使用的字符范围后加上结束标志。

1.3 字符串输入有哪几种方法?
设ch为字符变量或字符数组的数组名
1.scanf("%c",&ch);输入单个字符
2.ch=getchar();输入单个字符
3.scanf("%s",ch);输入字符串,不用&,直接放数组名,遇到空格停止
4.gets(ch);输入字符串,可以吸收空格

1.4 数字字符怎么转整数,写个伪代码?
单个转换:数字字符-‘0’
多位转换:
假设字符数组中有a[1]=‘1’,a[2]=‘2’,a[3]=‘3’,转换成123
1.定义循环变量i,sum=0
2.i=0
3.如果a[i]!=’\0’,进行以下循环
4.sum=sum*10+(a[i]-‘0’)
5.i++

1.5 16进制、二进制字符串如何转10进制?写伪代码?
假设字符数组a[]中存了该16进制数或二进制数的每一位

16进制
1.定义循环变量i,sum=0
2.i=0
3.如果a[i]!=’\0’进行以下循环
4.如果a[i]是数字字符,则sum=sum16+(a[i]-‘0’)
5.如果a[i]是A-F,则sum=sum16+(a[i]-‘A’+10)
6.如果a[i]是a-f,则sum=sum*16+(a[i]-‘a’+10)
7.i++

二进制
1.定义循环变量i,sum=0
2.i=0
3.如果a[i]!=’\0’,进行以下循环
4.sum=sum*2+(a[i]-‘0’)
5.i++

2.本周的内容,你还不会什么?
虽然会了一点点编程,但是明显感觉自己的代码量明显不够,思路跟不上,同样的题要花比别人长的时间才能写出,而且有些错误要调很久才能完全正确,对于字符数组要用的范围完全不能掌握,提交pta运行时错误只能不断扩大数组范围。

以下为错题:

1.有以下定义:char x[ ]=“abcdefg”; char y[ ]={‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’}; 则正确的叙述为()。
A、数组x和数组y等价
B、数组x和数组y的长度相同
C、数组x的长度大于数组y的长度
D、数组x的长度小于数组y的长度
答案:C,错选B
数组中,字符与字符串存到数组中长度是不同的,字符串存入数组时会自动添加一个结束符号‘\0’,因而字符串会比单个字符输入多一个长度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值