PTA 数组(补充)

一、单选题

假设scanf语句执行时输入ABCDE<回车>,能使puts(s)语句正确输出ABCDE字符串的程序段是__。

A.char s[5]={“ABCDE”}; puts(s);
B.char s[5]={‘A’, ‘B’, ‘C’, ‘D’, ‘E’}; puts(s);
C.char *s; scanf("%s", s); puts(s);
D.char *s; s=“ABCDE”; puts(s);

A.不能这样定义,应该是6。

B、puts对应的是字符串的输出,不能使用

C、不懂

D、正确

自己:
1.字符串如何定义
2.字符串与字符数组区别
3.puts如何使用

解答
1.
字符数组
char cArr[] = {‘I’,‘L’,‘O’,‘V’,‘E’,‘C’};

字符串数组
char sArr[] = “ILOVEC”;
char st[]={“C Language”}

记住,这里的 sArr 必须是“char sArr[7]=“ILOVEC””,而不能够是“char sArr[6]=“ILOVEC””。

2.字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的(C语言对字符串常量是按照字符数组来处理的,在内存中开辟了一个字符数组用来存放字符串常量)
字符串

1、char *ps=”C Language”;可以写成char *ps;ps=”C Language”;

字符串数组

数组方式char st[]={”C Language”};不能写成char st[20];St={”C Language”};

字符串(双引号)储存时候,系统会自动在后面加上一个\0,字符数组不用。
用%s时候,引用的是名字而并非字符数组完整名字(printf 与 scanf一样);

注意:要想输入How are you!不能只有一个数组,因为当输入How加空格之后,程序会认为已经结束(\0与空格是一样的)

3.puts(char *p)是专门输出字符串的函数,形参为指针。puts()函数会在你输入的字符串后自动加一个“”作为结束符,所以要考虑越界

**** In the following declarations, the correct assignment expression is __.
int *p[3], a[3];
A.p = a
B.p = &a[0]
C.*p = a
D.p[0] = *a

指针数组:存放元素为指针的数组,所以使每个元素都为地址,而并非让该数组的地址被赋予a的地址。

2-12对于定义 char str[] = “abc\000def\n”(注:其中0为数字零),求字符串str的长度len和数组str的大小size,len和size分别是:

数组大小:sizeof(数组名)/sizeof(数组类型)。

四、函数题

6-4 在数组中查找指定元素 (15分)
自己

int search( int list[], int n, int x )
{
	int i;
	for(i=0;i<n;i++)
	{
		if (list[i]==x)
		{
		return i;break;
		}
		else if(i==n-1&&list[i]!=x)
		return -1;
	}
	
}

正确

int search( int list[], int n, int x ){
	int i;
	for(i=0;i<n;i++){
		if(list[i]==x){
			return i;
		}	
	}	
	return -1;	
}

思想:当有return语句执行时,该函数就已经结束了,不用考虑其他情况。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值