C++字符数组练习题及解答

合集下载

C语言数组答案

C语言数组答案

C第5次上机练习:数组
1、输入n个整数,用一维数组存放,然后将这n个整数逆序存放并输出。

2、将1-200中所有11的倍数存放到一个一维数组中,并输出。

3、有n个已经按由小到大排好序的整数,再输入一个整数,将其插入到这批数据中,要求插入该元素后仍然按由小到大的顺序排列。

4、(二维数组)求一个n*n矩阵对角线元素之和。

5、(一维字符数组)输入两个任意的字符串,编写程序实现两个字符串的链接。

(不能使用strcat()函数)
6、(一维字符数组)从键盘输入一个不超过30个字符的字符串,存储到一个字符数组中。

将下标为奇数位置上的字符按顺序复制到另外一个字符数组中并输出。

如:输入“abcdefg”,则输出”bdf”。

7、(一维字符数组)在一个指定的字符串中删除指定的字符,并输出该字符串。

C语言第六章数组习题答案

C语言第六章数组习题答案

第六章 数组习题答案2、0 43、0 64、&a[i] i%4==0 printf("\n");5、i+j==3_ a[i][j]6、127、a[i][j]+b[i][j] printf(“\n ”)8、按行存放9、( a[i]>a[j])10、将串str2复制到串str1中后再将串str3连接到串str1之后三、阅读题1、如右图所示2、AQM3、AzyD4、91985、如右图所示6、927、1,2,5,7,8、29、v1=5,v2=8,v3=6,v4=110、a*b*c*d*四、编程题1(1)选择法排序#include <stdio.h>void main( ){int i,j,n=10,p,a[10];int temp;for(i=0;i<n;i++) scanf("%d",&a[i]);//输入十个数printf("\n 原始的一维数组是:\n");for(i=0;i<n;i++) printf("%5d",a[i]); /* 输出原始的一维数组序列 */ for(i=0;i<n-1;i++){ p=i; /*假定第i 趟中最小数的位置是i*/for(j=i+1;j<n;j++)if(a[j]<a[p]) p=j;if(i!=p) {temp=a[i];a[i]=a[p];a[p]=temp;}}printf("\n排序后的一维数组:\n");for(i=0;i<n;i++) printf("%5d",a[i]); /* 输出排序后的一维数组序列*/}(2)比较法排序#include<stdio.h>void main( ){int i,j,n=10,p,a[10];int temp;for(i=0;i<n;i++) scanf("%d",&a[i]);//输入十个数printf("\n 原始的一维数组是:\n");for(i=0;i<n;i++) printf("%5d",a[i]); /* 输出原始的一维数组序列*/for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]>a[j]) {temp=a[i];a[i]=a[j];a[j]=temp;}printf("\n排序后的一维数组:\n");for(i=0;i<n;i++) printf("%5d",a[i]); /* 输出排序后的一维数组序列*/}2、以在十个数据(由小到大排列的十个数)中插入一个数为例#include <stdio.h>void main( ){int a[11],i,n=10,k; int point;printf("\n 请输入原始数据:\n");for(i=0;i<n;i++) scanf("%d",&a[i]); /*输入原始数据,输入的数据要从小到大*/ printf("\n 原始数据是:\n");for(i=0;i<n;i++) printf("%5d",a[i]); /* 输出原始的一维数组序列*/printf("\n请输入要插入的数");scanf("%d",&k); /*输入要插入的数据*/for(i=0;i<n;i++)if(a[i]>k) {point=i; break;}if(i!=n){for(i=n;i>point;i--) a[i]=a[i-1];a[point]=k;} /*从后向前方式*/elsea[n]=k;printf("插入后的数是:\n");for(i=0;i<n+1;i++) printf("%4d ",a[i]); /* 输出插入后的一维数组序列*/}3、#include <stdio.h>int main(){int i,j,upp,low,dig,spa,oth;char text[3][80];upp=low=dig=spa=oth=0;for (i=0;i<3;i++){ printf("please input line %d:\n",i+1);gets(text[i]);for (j=0;j<80 && text[i][j]!='\0';j++){if (text[i][j]>='A'&& text[i][j]<='Z')upp++;else if (text[i][j]>='a' && text[i][j]<='z')low++;else if (text[i][j]>='0' && text[i][j]<='9')dig++;else if (text[i][j]==' ')spa++;elseoth++;}}printf("\nupper case: %d\n",upp);printf("lower case: %d\n",low);printf("digit : %d\n",dig);printf("space : %d\n",spa);printf("other : %d\n",oth);return 0;}5、以5个数逆序存放为例,将n值修改,则可实现n个数逆序存放#include <stdio.h>#define n 5 //n为符号常量,值为5void main( ){int i,a[n],t;for(i=0;i<n;i++)scanf("%d",&a[i]);//输入n个数for(i=0;i<n/2;i++)//将a[0]与a[4]交换,a[1]与a[3]交换,a[i]与a[n-1-i]交换{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}for(i=0;i<n;i++)//输出n个数printf("%5d",a[i]);printf("\n");}6、杨辉三角#include <stdio.h>void main( ){int i,j,a[10][10];for(i=0;i<10;i++)for(j=0;j<=i;j++)if(j==0||i==j)a[i][j]=1;else a[i][j]=a[i-1][j]+a[i-1][j-1];for(i=0;i<10;i++){for(j=0;j<=i;j++)printf("%5d",a[i][j]);printf("\n");}}7、提高题:编写程序:#include <stdio.h>#include <string.h>void main (){char s1[80]={0},s2[80]={0};char a;int i,j,k;printf("请输入一段字符s1\n");gets(s1);printf("======================(1)============================\n"); for(i=0;s1[i];i++);printf("%s的长度:%d\n",s1,i);printf("======================(2)============================\n"); for(j=0;s1[j];j++){s2[j]=s1[j];}printf("将一个字符串S1的内容复制给另一个字符串S2:\n");puts(s2);printf("i:%d\n",i);printf("======================(3)============================\n"); for(k=0;k<=j;k++){s1[i]=s2[k];i++;}printf("将两个字符串S1和S2连接起来,结果保存在S1字符串中:\n"); puts(s1);printf("======================(4)============================\n"); printf("请输入要寻找的字母:");scanf("%c",&a);for(i=0;s1[i];i++){if(s1[i]==a)break;}if(!s1[i])printf("\n-1\n");else printf("\n%c在第%d个位置\n",a,i+1);8、与第5题同9、Fibonacci数列前20项数值#include <stdio.h>int main( ){int i; long f[20];f[0]=1;f[1]=1;for(i=2;i<20;i++)f[i]=f[i-1]+f[i-2];for(i=0;i<20;i++){if(i%5==0) printf("\n");//每行五个元素printf("%10ld",f[i]);}}10、输入10个元素,统计奇数的个数#include <stdio.h>void main( ){int i,num[10],count=0;for(i=0;i<10;i++){printf("请输入第%d个数: ",i+1); /*给予输入提示*/scanf("%d",&num[i]);if(num[i]%2!=0) count++;}printf("奇数个数是:%d\n",count );}11、下面程序的功能是从键盘输入一行字符,统计其中有多少单词。

c语言数组试题及答案

c语言数组试题及答案

c语言数组试题及答案1. 请编写一个程序,要求用户输入10个整数,然后将其存储在一个数组中,并输出这个数组的内容。

答案:```c#include <stdio.h>int main() {int numbers[10];int i;printf("请输入10个整数:\n");for (i = 0; i < 10; i++) {scanf("%d", &numbers[i]);}printf("数组内容为:\n");for (i = 0; i < 10; i++) {printf("%d ", numbers[i]);}return 0;}```2. 请编写一个程序,要求用户输入一个整数n(n>0),然后分别输入n个整数存储在一个数组中,计算并输出这个数组中所有元素的和。

答案:```c#include <stdio.h>int main() {int n;int numbers[100];int sum = 0;int i;printf("请输入整数n:\n");scanf("%d", &n);printf("请输入%d个整数:\n", n);for (i = 0; i < n; i++) {scanf("%d", &numbers[i]);sum += numbers[i];}printf("数组元素之和为:%d\n", sum);return 0;}```3. 请编写一个程序,要求用户输入一个整数n(n>1),然后分别输入n个整数存储在一个数组中,计算并输出这个数组中最大和最小的元素。

答案:```c#include <stdio.h>int main() {int n;int numbers[100];int max, min;int i;printf("请输入整数n:\n");scanf("%d", &n);printf("请输入%d个整数:\n", n);for (i = 0; i < n; i++) {scanf("%d", &numbers[i]);}max = numbers[0];min = numbers[0];for (i = 1; i < n; i++) {if (numbers[i] > max) {max = numbers[i];}if (numbers[i] < min) {min = numbers[i];}}printf("数组中的最大元素为:%d\n", max);printf("数组中的最小元素为:%d\n", min);return 0;}```4. 请编写一个程序,要求用户输入两个整数m和n(1<=m<=n<=100),然后生成并输出m到n之间(包含m和n)的所有整数。

二维数组、字符数组习题

二维数组、字符数组习题

5.选择出正确的输入语句(其中:char s[5],c; int b;) A)scanf(“%s%c”,s,c); D B)scanf(“%%d%c”,&b,&c); C)scanf(“%d%%c”,b,&c); D)scanf(“%s%c”,s,&c);

6.设有定义:char s[12]={“string”};,则 A printf(“%d\n”,strlen(s));的输出是 。 A)6 B)7 C) 11 D) 12
16.设输入的字符串为:The Windows‟95 Operating System则输出的第一行和最 后一行分别是: 和 __ The erating main() { char a[4][10],j,k; for(j=0;j<4;j++) scanf("%s",a[j]); for(j=0;j<4;j++) { k=j; printf("%s\n",a[j++]+k); } }
9.函数调用”strcat(strcpy(str1,str2),str3)”的功能是 C 。 A 将字符串str1复制到字符串str2中后再连接到字符串 str3之后 B 将字符串str1连接到字符串str2之后再复制到字符串 str3之后 C 将字符串str2复制到字符串str1中后再将字符串str3连 接到字符串str1之后 D 将字符串str2连接到字符串str1之后再将字符串str1复 制到字符串str3中 10.定义如下变量的数组: int i; int x[3][3]={1,2,3,4,5,6,7,8,9}; C
10000 02000 00300 00040 00005

c语言字符数组oj例题

c语言字符数组oj例题

(1)从键盘上接收一个字符串,保存到一个字符数组中。

(2)然后从后面往前倒序输出这个字符串。

例如:接收字符串为:“Jone”,则输出结果为“enoJ”。

#include <stdio.h>#include <string.h>#include <stdlib.h>int main() {char a[10];int i;int len = strlen(a);memset(a, '\0', 10);printf("输入的字符串为:\n");//强制刷新fflush(stdout);//从键盘上接收一个字符串gets(a);for (i = len-1; i >= 0; i--) {printf("%c",a[i]);return EXIT_SUCCESS;}2分别使用char数组和string类对象实现下面任务:编写一个程序,首先要求用户输入姓,然后输入名,然后使用一个逗号和空格将姓和名组合在一起,并存储和显示组合好的结果和结果的长度。

下面是程序运行时的情形:Enter your first name: LiEnter your last name: MingThe name is: Li, MingThe length of name: 8#include <stdio.h>#include <string.h>#include <stdlib.h>int main() {//定义数组char first[10];char last[10];//提前输出提示printf("Enter your first name:");//强制刷新fflush(stdout);gets(first);printf("\n");printf("Enter your last name:");//强制刷新fflush(stdout);gets(last);printf("\n");//连接逗号strcat(first, ", ");printf("The name is :%s\n", strcat(first, last));printf("The length of name :%d\n", strlen(first)); //求长度return EXIT_SUCCESS;}3从键盘上接收一个字符串,并统计其中字符的个数。

C语言数组百道练习题含答案

C语言数组百道练习题含答案

6.5 以下能对一维数组 a 进行正确初始化的语句是 B 。????? A)int a[10]=(0,0,0); B)int a[10]={}; C)int a[]={0}; D)int a[10]={10*1}; 6.6 以下对二维数组 a 的正确说明是 C 。 A)int a[3][]; B)float a(3,4); C)double a[1][4]; D)float a(3)(4); 6.7 若有说明:int a[3][4];则对 a 数组元素的正确引用是 C 。 A)a[2][4] B)a[1,3] C)a[1+1][0] D)a(2)(1) 6.8 若有说明:int a[3][4];则对 a 数组元素的非法引用是 D 。 A)a[0][2*1] B)a[1][3] C)a[4-2][0] D)a[0][4] 6.9 以下能对二维数组 a 进行正确初始化的语句是 B 。 A)int a[2][]={{1,0,1},{5,2,3}}; B)int a[][3]={{1,2,3},{4,5,6}}; C)int a[2][4]={{1,2,3},{4,5},{6}}; D)int a[][3]={{1,0,1}{},{1,1}}; 6.10 以下不能对二维数组 a 进行正确初始化的说明是 C 。 A)int a[2][3]={0}; B)int a[][3]={{1,2},{0}}; C)int a[2][3]={{1,2},{3,4},{5,6}}; D)int a[][3]={1,2,3,4,5,6}; 6.11 若有说明:int a[3][4]={0};则下面正确的叙述是 D 。 A)只有元素 a[0][0]可以得到初值 0 B)此说明语句不正确 C)数组中各元素都可以得到初值,但其值不一定为 0 D)数组中每个元素均可得到初值 0 6.12 若有说明:int a[][4]={0,0};则下面不正确的叙述是 A)数组 a 的每个元素都可得到初值 0 B)二维数组 a 的第一维大小为 1 C)因为二维数组 a 中第二维大小的值除初值个数的商为 0,故数组 a 的行数为 1 D)只有元素 a[0][0]和 a[0][1]可得到初值 0,其余元素均得不到初值 0 6.13 若有说明:static int a[3][4];则数组中各元素 A)可在程序的运行阶段得到初值 0 B)可在程序的编译阶段得到初值 0 B 。 D 。

C语言练习3(数组)=参考解答

C语言练习3(数组)=参考解答

C语言(数组)一、选择题1. 设有程序:main(){ int i,a[11];printf("给数组赋值:\n");for (i=0;i<=10;i++)scanf("%d",( ));... ...printf("输出数组:\n");for(i=0;i<=10;i++)printf("%d,",( ));}则在程序中的两个园括号中分别应填入:CA) &a[i]和&a[i]B) a[i]和&a[i]C) &a[i]和a[i]D) a[i]和a[i]2. 设已定义:int a[15]; 则数组a占用的内存单元数是( C ).A) 15 B) 16 C) 30 D) 323. 阅读程序:main(){ int a[2]={0},i,j,k=2;for(i=0;i<k;i++)for(j=0;j<k;j++) a[j]=a[i]+1;printf("%d\n",a[k]);}以上程序的输出结果是( D ).A) 1 B) 3 C) 2 D) 不确定的值4. 阅读程序:f(int b[],int n){ int i,r=1;for(i=0;i<=n;i++) r=r*b[i];return r;}main(){ int x,a[]={2,3,4,5,6,7,8,9};x=f(a,3);printf("%d\n",x);}以上程序的输出结果是( D ).A) 720 B) 6 C)24 D) 1205. 以下定义语句中,错误的是( B ).A) int a[ ] = {6,7,8};B) int n=5, a[n];C) char a[ ]= "string";D) char a[5 ]={'0','1','2','3','4'};6. 以下描述中正确的是( D ).A) 数组名后面的常量表达式用一对圆括弧括起来B) 数组下标从1开始C) 数组下标的数据类型可以是整型或实型D) 数组名的规定与变量名相同7. 若定义数组并初始化char a[10]={'0','1 ','2','3','4','5','6','7','8','9'};指出以下错误语句( AB ).A) scanf("%c",a[0]);B) scanf("%s",&a);C) printf("%c",a[3]);D) printf("%s",a);8.若定义数组int a[10] ,其最后一个数组元素为( C ).A) a[0]C) a[9]D) a[10]9. 若定义数组并初始化int a[10]={ 1,2,3,4},以下语句哪一个不成立( B )?A) a[8] 的值为0B) a[1] 的值为1C) a[3] 的值为4D) a[9] 的值为010. 指出以下错误语句( A ).A) int n=10,a[n];B) int n,a[10];C) int a[10]={1,2,3};D) int a[10]={1,2,3,4,5,6,7,8,9,10};11. 请读程序:main(){int n[2],i,j,k;for(i=0;i<2;i++) n[i]=0;k=2;for(i=0;i<k;i++)for(j=0;j<k;j++) n[j]=n[i]+1;printf("%d\n",n[k]);}上面程序的输出结果是( A ).A)不确定的值 B)3 C)2 D)112. 若有以下的定义和语句:int str[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c='e',则数值为2的表达式是( C ).A)str['g'-c] B)str[2] C)str['d'-'c'] D)str['d'-c]13. 设有数组定义:int a[5];则下列给数组元素赋值错误的是( B ).B) scanf("%c",a[3]);C) a[3]=getchar();D) a[3]='a'+3;14. 以下数组定义中错误的是( D ).A) #define N 30int a[N+30];B) #define N 30int a[N];C) int a[30];D) int a[N];15. 在定义一个一维数组时,不能用来表示数组长度的是( D ).A)常量 B)符号常量 C)常量表达式 D) 已被赋值的变量16. 若float型变量占用4个字节,有定义float a[20]={1.1,2.1,3.1};则数组a在内存中所占的字节数是( D ).A)12 B)20 C)40 D)8017. 设已定义:int x[2][4]={1,2,3,4,5,6,7,8}; 则元素x[1][1]的正确初值是( A ).A) 6 B) 5 C) 7 D) 118. 设有定义:int a[][3]={{1,2,3},{4,5,6},{7,8,9}}; 则a[1][2]的初值为( C ).A) 2 B) 4 C) 6 D) 819. 设有:int a[4][5]; 则数组a占用的内存字节数是( C ).A) 12 B) 24 C) 40 D) 2020. 以下数组定义中,不正确的是( B ).A) int b[3][4];B) int c[3][ ]={{1,2},{1,2,3},{4,5,6,7}};C) int b[200][100]={0};D) int c[ ][3]={{1,2,3},{4,5,6}};21. 定义数组:int x[2][3]; 则数组x 的维数是( 2 ).A) 1 B) 2 C) 3 D) 622. 若定义数组并初始化int b[2][3]= { 1,2,3,4,5,6},以下语句哪一个成立( C )?A) 表达式b[1][2]的值为1B) 表达式b[1][2]的值为4C) 表达式b[1][2]的值为6D) 表达式b[1][2]的值为223. 若定义数组并初始化int a[2][3]={{1,2,3},{4,5,6}};for(i=0;i<2;i++)for(j=0;j<3;j++)printf("%d",a[i][j]);语句的结果是哪一个( C )?A) 1,2,3,4,5,6B) 1 2 3 4 5 6C) 12345624. 若定义数组并初始化int a[2][3]= {{1,2, 3},{4,5,6}};以下语句哪一个不成立( B )?A) a数组中有6个元素B) a[2][3]是a数组的最后一个元素的引用C) a数组中每个元素都为整数D) a数组是整型数组25. 定义如下变量和数组:int i;int x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是( C ).for(i=0;i<3;i++) printf("%d",x[i][2-i]);A) 1 5 9 B) 1 4 7 C) 3 5 7 D) 3 6 926. 如有以下定义:double s[][5]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14};则数值为2的元素是( C ).A) s[1][3] B) s[0][3] C) s[0][2] D) s[1][2]27. 以下程序的输出结果是( A ).main(){int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d",s);}A) 18 B) 19 C) 20 D) 2128. 若已有char b[10][50];则该二维字符数组在内存所占字节数为( D ).A) 10 B)50 C)60 D)50029. 设有:char a[10]; 下列语句那个是正确的( D )?A) scanf("%s",a[0]);B) scanf("%s",&a);C) printf("%s",a[0])D) printf("%s",a)30. 阅读程序:main(){ char a[10];int i;for(i=1;i<=5;i++)scanf("%c",&a[i]);printf("%c",a[0]);}设从键盘输入字符串:abcde,则程序的输出结果是( C ).A) a B)空格 C)不确定D)031. 合法的数组定义是( D ).A) int a[ ] = "string";B) int a[5]={0,1,2,3,4,5};C) char a= "string";D) char a[ ]={'0','1','2','3'};32. 设有数组定义:char string[ ]="China";则数组string所占的空间为( B ).A) 5个字节B) 6个字节C) 7个字节D) 10个字节33. 定义字符数组c:char c[ ]={"c language"};数组c在内存中所占字节数是( C ).A) 9 B) 10 C) 11 D) 1234. 指出以下错误语句( C ).A) char a[10]={'0','1','2','3','4','5','6','7','8','9'};B) char a[10]={'0','1 ','2','3'};C) char a[2]= {"1","2"};D) char a[2]= {'a’,'b’};35. 若定义数组并初始化char a[10]={"hello"},该数组的元素个数是( A ).A) 10B) 5C) 6D) 736. 若定义数组并初始化char a[10]={"HELLO"},该数组的元素中 a[2]是( A ).A) 'L'B) 'E'C) 'H'D) 'O'37. 若定义数组并初始化int b[10]={ 1,2,3,4},以下哪几个语句成立( A C D)?A)b[8]的值为0B)b[1]的值为1C)b[3]的值为整数D)b[10]不是b数组中的元素38. 若定义数组int a[10];指出下列错误语句:ABCDA) a数组共有10个元素,其引用方法是:a[1],a[2]...a[10];B) a数组是整型数组,其元素自动初始化为0;C) a数组最后一个元素的引用方法是a[10];D) a数组第一个元素的引用方法是a[1];二、判断题1.数组是数目固定的若干变量的有序集合,数组中各元素的类型可以不同。

C字符数组练习题及解答

C字符数组练习题及解答

字符数组第1题:编写程序,比较两个字符串的大小,不允许使用strcmp函数。

输入分2行,每一行均为字符串(不包含空格)。

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

样例输入:ChinaChina样例输出:0#include<iostream.h> 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]<b[i]){t=-1;break;}}cout<<t;return 0;}第2题:编写程序,将一个字符串首尾互换,并与原字符串连接后输出。

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

样例输入:china样例输出:chinaanihc#include<iostream.h> #include<string.h> int main(){char str1[100],i;int n; cin>>str1;n=strlen(str1);for(i=0;i<n;i++){str1[n+i]=str1[n-i-1];}for(i=0;i<n*2;i++)cout<<str1[i];return 0;}第3题:编写程序,输入由数字字符构成的字符串,分别统计该字符串中数字字符对应的数字中奇数和偶数的个数。

样例输入:7843028503样例输出:4 6#include <string.h>#include <iostream.h> 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<n;i++){a[i]=str[i];}for(i=0;i<n;i++){a[i]=a[i]-48;if(a[i]%2==0){o=o+1;}else{j=j+1;}}cout<<j<<" "<<o;return 0;字符数组}第4题:编写程序,输入字符串(不包含空格),删除字符串中ASCII码值能被3整除的字符,将剩余字符按从小到大排序后输出。

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

第1题:编写程序,比较两个字符串的大小,不允许使用strcmp函数。

输入分2行,每一行均为字符串(不包含空格)。

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

样例输入:ChinaChina样例输出:0#include<iostream.h>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]<b[i]){t=-1;break;}}cout<<t;return 0;}第2题:编写程序,将一个字符串首尾互换,并与原字符串连接后输出。

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

样例输入:china样例输出:chinaanihc#include<iostream.h>#include<string.h>int main(){char str1[100],i;int n;cin>>str1;n=strlen(str1);for(i=0;i<n;i++){str1[n+i]=str1[n-i-1];}for(i=0;i<n*2;i++)cout<<str1[i];return 0;}第3题:编写程序,输入由数字字符构成的字符串,分别统计该字符串中数字字符对应的数字中奇数和偶数的个数。

样例输入:7843028503样例输出:4 6#include <string.h>#include <iostream.h>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<n;i++){a[i]=str[i];}for(i=0;i<n;i++){a[i]=a[i]-48;if(a[i]%2==0){o=o+1;}else{j=j+1;}}cout<<j<<" "<<o;return 0;}第4题:编写程序,输入字符串(不包含空格),删除字符串中ASCII码值能被3整除的字符,将剩余字符按从小到大排序后输出。

样例输入:Chinancpeu样例输出:Caehnnp#include<iostream.h>#include<string.h>int main(){char str[100];int n,i,j,t;cin>>str;n=strlen(str);for(j=0;j<n;j++){for(i=0;i<n-1-j;i++)if(str[i]>str[i+1]){t=str[i];str[i]=str[i+1];str[i+1]=t;}}for(i=0;i<n;i++){if(str[i]%3==0)continue;elsecout<<str[i];}return 0;}第5题:编写程序,输入字符串(包含多个‘*’),删除所有除前导和尾部以外的‘*’。

样例输入:*******A*BC*DEF*G****样例输出:*******ABCDEFG****#include <iostream.h> #include <stdio.h> 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++;elsebreak;}for(i=0;i<j;i++) {if(a[i]=='*'){l++;}elsebreak;}for(i=j-1;i>=0;i--) {if(a[i]=='*')k++;elsebreak;}for(c=0;c<l;c++)b[c]='*';for(i=l;i<j-k;i++) {if(a[i]!='*'){b[c]=a[i];c++;}}for(i=0;i<k;i++) {b[c]='*';c++;}for(i=0;i<c;i++)cout<<b[i];return 0; }第1题:编写程序,将一个字符串首尾互换后输出。

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

#include<iostream>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<i){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<iostream>#include<string.h>using namespace std;int main(){char a[50],t;int l,i,flag=0;cin>>a>>t;l=strlen(a);for(i=0;i<l;i++){if(t==a[i]){flag=1;cout<<i;break;}}if(flag==0)cout<<"NO"<<endl;return 0;}第3题:编写程序,将一个字符串首尾互换,并与原字符串连接后输出。

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

样例输入:china样例输出:chinaanihc#include<iostream>#include<string.h>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<l;i++){b[i]=a[j];j--;}b[i]='\0';strcat(a,b);cout<<a<<endl;return 0;}第4题:编写程序,输入一十六进制的数,如果输入的不是十六进制,则输出NO,否则输出对应的十进制值。

样例输入:1A2b样例输出:6699样例输入:15G9样例输出:NO#include<iostream>#include<string.h>#include<math.h>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<l;i++)if(a[i]<'0'||a[i]>'9')if(a[i]<'a'||a[i]>'f')if(a[i]<'A'||a[i]>'F'){cout<<"NO"<<endl;flag=1;break;}j=l;if(flag==0){for(i=0;i<l;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<<n<<endl;}return 0;}第5题:编写程序,输入由数字字符构成的字符串,分别统计该字符串中数字字符对应的数字中奇数和偶数的个数。

样例输入:7843028503样例输出:4 6#include<iostream>#include<string.h>#include<math.h>using namespace std;int main(){char a[50];int l,i,j=0,o=0;cin>>a;l=strlen(a);for(i=0;i<l;i++){if(a[i]%2==0)o++;elsej++;}cout<<j<<" "<<o<<endl;return 0;}第6题:编写程序,输入字符串(不包含空格),删除其中的数字字符后输出。

样例输入:2008China08样例输出:China#include<iostream>#include<string.h>#include<math.h>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<l;i++)if(a[i]<'0'||a[i]>'9'){b[j]=a[i];j++;}b[j]='\0';cout<<b<<endl;return 0;}第7题:编写程序,输入字符串(包含空格),统计其中单词的个数,单词之间以一个或多个空格分隔。

样例输入:How are you样例输出:3#include<iostream>using namespace std;int main(){ char str[30];int i,flag,m=0;gets(str);if(str[0]==' ')flag=0;elseflag=1;for(i=0;str[i]!=0;i++)if(flag==1 && str[i]==' '){m++;flag=0;}elseif(flag==0 && str[i]!=' ')flag=1;m++;cout<<m;return 0;}第8题:编写程序,输入字符串(不包含空格)和子串,统计该字符串中指定子串的个数。

相关文档
最新文档