字符数组作业参考答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

字符数组

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的长度

2、对字符数组str赋初值,str不能作为字符串使用的一个是( )

A) char str[]="shanghai";

B) char str[]={"shanghai"};

C) char str[9]={'s','h','a','n','g','h','a','i',’\0’};

D) char str[8]={ 's','h','a','n','g','h','a','i'};

3、判断两字符串s1,s2是否相等,应使用( ).

A)if(s1==s2) B)if(s1=s2)

C)if(strcpy(s1,s2)) D)if(strcmp(s1,s2)==0)

4、#include

void main()

{

char ch[3][5]={ "AAAA","BBB","CC"};

printf("\"%s\"\n",ch[1]);

}

"BBB"

5、#include

void main()

{

char str[80];

int i=0;

gets(str);

while(str[i]!=0)

{

if(str[i]>='a'&&str[i]<='z')

str[i]-=32;

i++;

}

puts(str);

}

程序运行时如果输入 upcase, 屏幕显示UPCASE

程序运行时如果输入 Aa1Bb2Cc3, 屏幕显示AA1BB2CC3

6、将一个字符数组中的数字字符找出来形成一个新的字符串,并显示新字符串。如

“a123bcd456!ui”,生成新字符串“123456”。

参考答案:

#include

void main()

{

char str[100],news[100];

int i,j;

gets(str);

j=0;

for(i=0;str[i]!='\0';i++)

if(str[i]>='0'&&str[i]<='9')

{ news[j]=str[i];j++;}

news[j]='\0';

puts(news);

}

7、编一程序,将两个字符串连接起来。除gets和puts外,不能使用其他任何字符串函数。参考程序如下: 把第2个字符串连接到第1个串的后面。

#include

void main()

{

char s1[100],s2[30]; //注意s1要够长,来容得下连接后的字符串

int i,j;

gets(s1);

gets(s2);

for(i=0;s1[i]!='\0';i++)

; //空循环,目的是让i指向s1的’\0’的位置

for(j=0;s2[j]!='\0';j++) //把s2中的字符逐一拷贝到s1后面

s1[i+j]=s2[j];

s1[i+j]='\0'; //别忘了在s1后加’\0’

puts(s1);

}

8、找出10个字符串中最长的字符串。

参考答案:

#include

#include

void main()

{

char s[10][30]; //10表示10个字符串,30表示每个字符串最多有29个字符组成,

//30可以根据需要自己确定

int i;

int max;//存最长字符串的长度

int pos;//存最长字符串的行下标

for(i=0;i<10;i++)

gets(s[i]);

max=strlen(s[0]);

pos=0;

for(i=1;i<10;i++)

if(max

{

max=strlen(s[i]);

pos=i;

}

//循环结束后pos中存放的是最长字符串的行下标

printf("the longest strint is %s", s[pos] );

}

9、有 N个国家名,要求按字母先后顺序排列(用起泡排序法)后输出。

#include

#include //注意别丢掉

#define N 10

void main()

{

char names[N][30];//N表示N个国家名字,即N个字符串,30表示每个名字字符串最多有

// 29个字符组成,可以自己确定

char string[30];//交换两个字符串时用

int i,j;

printf("please input %d names\n",N);

for(i=0;i

gets(names[i]);//注意这里的names[i]不是单个字符,而相当于一个字符数组名

for(i=0;i

for(j=0;j

if(strcmp(names[j],names[j+1])>0) //注意这里比较和交换的是字符串,不是单个字符

{

strcpy(string,names[j]);

strcpy(names[j],names[j+1]);

strcpy(names[j+1],string);

相关文档
最新文档