C字符数组练习题及解答

  • 格式:pdf
  • 大小:333.17 KB
  • 文档页数:5

字符数组

- 1 -第1题:

编写程序,比较两个字符串的大小,不允许使用strcmp函数。输入分

2行,每一行均为字符串(不包含空格)。如果第一个字符串大于第二

个字符串,则输出1;如果两个字符串大小相等,则输出0;如果第一

个字符串小于第二个字符串,则输出-1。

样例输入: China

China

样例输出:0

#include

int main()

{char a[100],b[100];int t=0,i;cin>>a;cin>>b;

for(i=0;a[i]!=0||b[i]!=0;i++){if(a[i]>b[i]){t=1;break;}

if(a[i]

cout<

第2题:

编写程序,将一个字符串首尾互换,并与原字符串连接后输出。输入

字符串(不包含空格),输出处理后的结果。

样例输入:china

样例输出:chinaanihc

#include

#include

int main()

{char str1[100],i;int n;

cin>>str1;n=strlen(str1);

for(i=0;i

{str1[n+i]=str1[n-i-1];}

for(i=0;i

return 0;

}第3题:

编写程序,输入由数字字符构成的字符串,分别统计该字符串中数字

字符对应的数字中奇数和偶数的个数。

样例输入:7843028503

样例输出:4 6

#include

#include

int main()

{int a[100],i,n,o,j;char

str[100];

o=0;

j=0;cin>>str;

n=strlen(str);

for(i=0;i

{a[i]=str[i];}

for(i=0;i

{a[i]=a[i]-48;

if(a[i]%2==0){o=o+1;}

else

{j=j+1;}

}

cout<

return 0;字符数组

- 2 -}第4题:

编写程序,输入字符串(不包含空格),删除字符串中ASCII码值能

被3整除的字符,将剩余字符按从小到大排序后输出。

样例输入:Chinancpeu

样例输出:Caehnnp

#include

#include

int main()

{char str[100];int n,i,j,t;

cin>>str;

n=strlen(str);

for(j=0;j

if(str[i]>str[i+1])

{t=str[i];str[i]=str[i+1];str[i+

1]=t;}

}

for(i=0;i

{if(str[i]%3==0)continue;

else

cout<

return 0;

}

第5题:

编写程序,输入字符串(包含多个‘*’),删除所有除前导和尾部以

外的‘*’。

样例输入:*******A*BC*DEF*G****

样例输出:*******ABCDEFG****

#include

#include

int main()

{

char a[50],b[50];

gets(a);

int i,j=0,k=0,l=0,c=0;

for(i=0;;i++)

{

if(a[i]!='\0')

j++;

else

break;

}

for(i=0;i

{

if(a[i]=='*'){

l++;

}

else

break;

}

for(i=j-1;i>=0;i--)

{

if(a[i]=='*')

k++;

else

break;

}

for(c=0;c

b[c]='*';

for(i=l;i

{if(a[i]!='*')

{

b[c]=a[i];

c++;

}

}

for(i=0;i

{

b[c]='*';

c++;

}

for(i=0;i

cout<

return 0;

}字符数组

- 3 -第1题:

编写程序,将一个字符串首尾互换后输出。输入字符串(允许包含空

格),输出处理后的结果。

#include

using namespace std;

int main()

{char a[50],t;

int l,j,i;

gets(a);l=strlen(a);

j=0;i=l-1;

while(j

{t=a[j];

a[j]=a[i];

a[i]=t;j++;

i--;}

puts(a);

return 0;}

样例输入:I am happy!

样例输出:!yppah ma I 第2题:

编写程序,从键盘输入一任意字符串(不包含空格),然后输入所要

查找字符。如果存在则输出它在字符串中第一次出现的位置,否则输

出NO。

样例输入:Hello a

样例输出:NO

样例输入:Hello l

样例输出:2

#include

#include

using namespace std;

int main()

{char a[50],t;int l,i,flag=0;

cin>>a>>t;

l=strlen(a);

for(i=0;i

{if(t==a[i]){flag=1;cout<

break;}}

if(flag==0)

cout<<"NO"<

return 0;}

第3题:

编写程序,将一个字符串首尾互换,并与原字符串连接后输出。输入

字符串(不包含空格),输出处理后的结果。

样例输入:china

样例输出:chinaanihc

#include

#include

using namespace std;

int main()

{char a[50],b[50];

int l,i,j;cin>>a;

l=strlen(a);

j=l-1;

for(i=0;i

{b[i]=a[j];

j--;}b[i]='\0';

strcat(a,b);

cout<

return 0;}

第4题:

编写程序,输入一十六进制的数,如果输入的不是十六进制,则输出字符数组

- 4 -NO,否则输出对应的十进制值。

样例输入:1A2b

样例输出:6699

样例输入:15G9

样例输出:NO

#include

#include

#include

using namespace std;

int main()

{char a[50];

int l,i,flag=0,n=0,j;

cin>>a;l=strlen(a);

for(i=0;i

if(a[i]<'0'||a[i]>'9')

if(a[i]<'a'||a[i]>'f')

if(a[i]<'A'||a[i]>'F')

{cout<<"NO"<

flag=1;

break;}j=l;

if(flag==0)

{for(i=0;i

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

{n=n+(a[i]-'0')*pow(16,j-1);

j--;}

else if(a[i]>='A'&&a[i]<='F')

{n=n+(a[i]-55)*pow(16,j-1);

j--;}

else

{n=n+(a[i]-87)*pow(16,j-1);

j--;}}

cout<

return 0;}

第5题:

编写程序,输入由数字字符构成的字符串,分别统计该字符串中数字

字符对应的数字中奇数和偶数的个数。

样例输入:7843028503

样例输出:4 6

#include

#include

#include

using namespace std;

int main()

{

char a[50];int l,i,j=0,o=0;

cin>>a;

l=strlen(a);

for(i=0;i

{

if(a[i]%2==0)

o++;else

j++;

}

cout<

return 0;}

第6题:

编写程序,输入字符串(不包含空格),删除其中的数字字符后输出。

样例输入:2008China08

样例输出:China

#include

#include

#include

using namespace std;int main()

{char a[50],b[50];

int l,i,j;

cin>>a;l=strlen(a);

j=0;

for(i=0;i

if(a[i]<'0'||a[i]>'9')