3字符数组及字符串练习题
- 格式:doc
- 大小:30.50 KB
- 文档页数:2
一、选择题1.下面正确的初始化语句是___A. char str[]="hello";B. char str[100]="hello";C. char str[]={'h','e','l','l','o'};D. char str[]={'hello'};2.定义了一维int型数组a[10]后,下面错误的引用是___A. a[0]=1;B. a[10]=2;C. a[0]=5*2;D. a[1]=a[2]*a[0];3.下面的二维数组初始化语句中,正确的是____A. float b[2][2]={0.1,0.2,0.3,0.4};B. int a[][]={{1,2},{3,4}};C. int a[2][]= {{1,2},{3,4}};D. float a[2][2]={0};4.引用数组元素时,数组下标可以是____A. 整型常量B. 整型变量C. 整型表达式D. 以上均可5.定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为____A. 24B. 25C. 18D. 176.下列初始化字符数组的语句中,正确的是____A. char str[5]="hello";B. char str[]={'h','e','l','l','o','\0'};C. char str[5]={"hi"};D. char str[100]="";7.给出下列代码,则数组初始化中哪项是不正确的?byte[] array1,array2[];byte array3[][];byte [][] array4;A.array2 = array1 B.array2=array3C.array2=array4 D.array3=array48.下面程序的运行结果是____main() {int x=30;int[] numbers=new int[x];x=60;System.out.println(numbers.length);}A. 60B. 20C. 30D. 509.下面不是创建数组的正确语句A.float f[][]=new float[6][6];B.float f[]=new float[6];C.float f[][]=new float[][6];D.float[][]f=new float[6][];10.下列关于Java语言的数组描述中,错误的是()。
1、编写一个程序,处理某班3门课程的成绩,它们是语文、数学和英语。
先输入学生人数(最多为50个人),然后按编号从小到大的顺序依次输入学生成绩,最后统计每门课程全班的总成绩和平均成绩以及每个学生课程的总成绩和平均成绩。
2、编写一个程序,从键盘输入10个学生的成绩,统计最高分、最低分和平均分。
3、编写一个程序,将用户输入的十进制整数转换成任意进制的数。
4、编写一个程序,将一个子字符串s2插入到主字符串s1中,其起始插入位置为n.5、有一行文字,现要求从其中删去某个指定字符(如输入n,表示要从此行文字中删去所有是n 的字符),要求该行文字和待删的字符均由终端输入。
6、编写一个程序,将字符串“computer“赋给一个字符数组,然后从第一个字母开始间隔地输出该字符串。
7、有一个数列,它的第一项为0,第二项为1,以后每一项都是它的前两项之和,试产生出此数列的前20项,并按逆序显示出来。
8、从键盘上输入一个字符串,假定该字符串的长度不超过30,试统计出该串中所有十进制数字字符的个数。
9、首相从键盘输入一个4行4列的一个实数矩阵到一个二维数组中,然后求出主对角线上元素之乘积。
10、已知一个数值矩阵为,求出该矩阵的转置矩阵并输出,其中转置矩阵中的[i][j]位置上的元素等于原矩阵中的[j][i]位置上的元素。
11、已知一个数值矩阵A为,另一个矩阵B为,求出A与B的乘积矩阵c[3][4]并输出,其中c 中的每个元素c[i][j]等于∑A[i][k]*B[k][j]。
12、首先让计算机随机产生出10个两位正整数,然后按照从小到大的次序显示出来。
13、从键盘上输出一个字符串,假定字符串的长度小于80,试分别统计出每一种英文字14、有n个数,已按从小到大的顺序排列好,要求输入一个数,把它插入到原有的数列中,而且仍保持有序,同时输出新数列。
15、将螺旋方阵存放到维数为n的二维数组中,并把它们打印输出。
要求由程序自动生成下图所示的螺旋方阵16、将一个字符数组a中下标为单号的元素赋给另一个字符数组b, 并将其转换成大写字母,然后输出字符数组a和b.17、应用一维数组,实现从键盘输入10个整数,输出其中的最小数。
第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、下面关于串的叙述中,正确的是()。
A.串是一种特殊的线性表B.串中元素只能是字母C.空串就是空白串D.串的长度必须大于零正确答案:A解析:串是一种特殊的线性表,其元素为单个字符,长度可以为0。
2、两个字符串相等的条件是()。
A.串的长度相等B.含有相同的字符集C.都是非空串D.两个串的长度相等且对应位置的字符相同正确答案:D3、若串str=“Software”,其子串的个数是()。
A.8B.9C.36D.37正确答案:D解析:该串中所有字符不相同,长度为0的子串1个,长度为1的子串8个,长度为2的子串7个,…,长度为7的子串2个,长度为8的子串1个,总计子串数=1+8+7+…+2+1=1+8×9/2=37。
4、一个链串的节点类型定义为#define NodeSize 6typedef struct node{ char data[NodeSize];struct node *next;} LinkStrNode;如果每个字符占1个字节,指针占2个字节,该链串的存储密度为()。
A.1/3B.1/2C.2/3D.3/4正确答案:D解析:链串节点大小指每个节点存放的字符个数,本题节点大小为6,存储密度=(6*1)/(6*1+2)=3/4。
5、串采用节点大小为1的链表作为其存储结构,是指()。
A.链表的长度为1B.链表中只存放一个字符C.链表中每个节点的数据域中只存放一个字符D.以上都不对正确答案:C解析: C、链串节点大小指每个节点存放的字符个数。
6、对于一个链串s,查找第一个字符值为x的算法的时间复杂度为()。
A.O(1)B.O(n)C. O(n2)D.以上都不对正确答案:B解析:在链串查找第一个字符值为x的算法的时间复杂度为O(n)。
7、设有两个串p和q,其中q是p的子串,则求q在p中首次出现位置的算法称为()。
A.求子串B.串联接C.模式匹配D.求串长正确答案:C解析:模式匹配算法就是找子串在主串中的位置。
字符串练习题1.字符串常用函数编程实现。
( 1) 求长度:int myStrLen( const char *str )( 2) 字符串拷贝:char *myStrCpy( char *strSource, const char *strTarget){char *p1, *p2;for( p1=strSource, p2=strTarget; *p2 !='\0 '; p1++, p2++){ *p1 = *p2; }*p1= '\0';}P1=strSource; p2=strTarget;While( *p1++ = *p2++ ) ;( 3) 字符串连接:char *myStrCat( char *strSource, const char *strTarget){char *p1, *p2;// 指针要移到字符串strSource 的末尾while( *p1 != ‘\0 ') p1++;//while( *p1++);p2=strTarget;while (*p2!= '\0 '){*p1=*p2; p1++;p2++;}*p1= '\0'; //while(*p1++=*p2++) ;}( 4) 字符串比较:int myStrCmp(const char * str1, const char * str2)2.判断字符串是否回文。
是回文,返回1,不是,则返回0. intisHuiWen(const char * str ){int flag=0;// 先设为不是,返回0char *pstart, *pend;// 指向字符中头、尾的指针pend = str;while ( *pend ) pend++;// 将pend 移到字符串末尾pend--;// 退回到最后一个有效字符处// 开始判断pstart = str;while ( *pstart == *pend && pstart < pend )// 前后端字符相同,且未比较完{pstart++; pend--; }// 移动指针if( pstart < pend ) return0;// 不是回文else return 1;}3.字符串替换函数。
字符数组(字符串)基本练习1、设有数组定义:char array[]="China";则strlen(array)的值为________ 。
A) 4 B) 5C) 6 D) 72、下列程序执行后的输出结果是________。
main(){ char arr[2][4];strcpy(arr[0],"you");strcpy(arr[1],"me");printf("%s\n",arr[0]);}A) you&me B) youC) me D) err3、下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。
划线处应填________。
#include <stdio.h>#include <string.h>main(){ char a[]="clanguage",t;int i,j,k; k=strlen(a);for(i=0;i<=k-2;i+=2)for(j=i+2;j<k;________)if(a[i]>a[j]){t=a[i];a[i]=a[j];a[j]=t;}puts(a);printf("\n");}A) k=k+1 B) k=k+2C) j+=1 D) j+=24、有如下程序main(){ char ch[2][5]={"6937","8254"};int i,j,s=0;for(i=0;i<2;i++)for(j=0;ch[i][j]>'\0';j+=2)s=10*s+ch[i][j]-'0';printf("%d\n",s);}该程序的输出结果是________。
A) 69825 B) 63825C) 6385 D) 6938255、有如下程序main(){ char ch[80];int j;long s=0;printf("Enter a numeral string\n"); gets(ch);for(j=0;ch[j]>'\0';j++)s=10*s+ch[j]-'0';printf("%ld\n",s);}如果运行时,从键盘上输入由数字组成的字符串,该程序的功能是________。
3.3 串和数组自测卷姓名班级一、填空题(每空1分,共20分)1. 称为空串;称为空白串。
2. 设S=“A;/document/Mary.doc”,则strlen(s)= , “/”的字符定位的位置为。
4. 子串的定位运算称为串的模式匹配;称为目标串,称为模式。
5. 设目标T=”abccdcdccbaa”,模式P=“cdcc”,则第次匹配成功。
6. 若n为主串长,m为子串长,则串的古典匹配算法最坏的情况下需要比较字符的总次数为。
7. 假设有二维数组A6×8,每个元素用相邻的6个字节存储,存储器按字节编址。
已知A的起始存储位置(基地址)为1000,则数组A的体积(存储量)为;末尾元素A57的第一个字节地址为;若按行存储时,元素A14的第一个字节地址为;若按列存储时,元素A47的第一个字节地址为。
8. 设数组a[1…60, 1…70]的基地址为2048,每个元素占2个存储单元,若以列序为主序顺序存储,则元素a[32,58]的存储地址为。
9. 三元素组表中的每个结点对应于稀疏矩阵的一个非零元素,它包含有三个数据项,分别表示该元素的、和。
10.求下列广义表操作的结果:(1)GetHead【((a,b),(c,d))】=== ;(2)GetHead【GetTail【((a,b),(c,d))】】=== ;(3)GetHead【GetTail【GetHead【((a,b),(c,d))】】】=== ;(4)GetTail【GetHead【GetTail【((a,b),(c,d))】】】=== ;二、单选题(每小题1分,共15分)()1. 串是一种特殊的线性表,其特殊性体现在:A.可以顺序存储B.数据元素是一个字符C.可以链式存储D.数据元素可以是多个字符()2. 设有两个串p和q,求q在p中首次出现的位置的运算称作:A.连接B.模式匹配C.求子串D.求串长()3. 设串s1=’ABCDEFG’,s2=’PQRST’,函数con(x,y)返回x和y串的连接串,subs(s, i, j)返回串s的从序号i开始的j个字符组成的子串,len(s)返回串s的长度,则con(subs(s1, 2, len(s2)), subs(s1, len(s2), 2))的结果串是:A.BCDEF B.BCDEFG C.BCPQRST D.BCDEFEF( )4. 假设有60行70列的二维数组a[1…60, 1…70]以列序为主序顺序存储,其基地址为10000,每个元素占2个存储单元,那么第32行第58列的元素a[32,58]的存储地址为 。
javascript字符串与数组练习<html><head></head><body><script type="text/javascript">var str="Visit Micro soft!"//document.write(str.replace(/cro/i,"2"))document.write(str.replace(/[/s ]*/g,''));document.write("<br />")console.log(str.indexOf('M'))var str = "L.Rain";str = str.replace(/[R|n]/g , "+"); //返回替换后的内容console.log(str)str = new RegExp("[R|n]","gi")console.log(str)var sToMatch = "fffffffcataaaaaaaaa";alert( /cat/gi.test(sToMatch) ); //查看是否存在返回true OR falsevar sToMatch = "a bat , a Cat , a fAt ,a baT , a faT cat";alert(/at/gi.exec(sToMatch)); //返回匹配到的第⼀个内容或 nullalert(sToMatch.match(/at/gi)); //返回匹配到的所有内容或 nullalert(sToMatch.search(/a3t/gi)) //返回匹配到的第⼀个内容的位置否则 -1//RegExp 对象有 3 个⽅法:test()、exec() 以及 compile()。
1.输入一串字符,个数不超过100个,且以"."结束。
判断它们是否构成回文。
(所谓回文,是指一串字符从左往右与从右往左读,结果是一致的)。
2.随机输入n个国家的英文名称,每个国家的名称单独占一行,按字母顺序排序后输出,输出时仍然要求每个国家的名称单独占一行。
3.随机输入一些国家的英文名字(输入的数据共占一行且不超过255个字符,以一个空格为分隔符),按字母顺序排序后输出。
比较大小(bj.pas)
输入正整数a,b(<=10250),比较a和b的大小。
【输入文件】bj.in。
第一行:a,第二行:b 。
【输出文件】bj.out。
如果a>b,输出1;如果a=b,输出0;如果a<b,输出-1 。
【样例输入】:
123
45
【样例输出】:
1
字符串编辑(edit.pas)
对一个长度<=40个字符的字符串, 进行如下编辑:
①D:删除一个字符,命令的方式为:
D a 其中a为被删除的字符
例如:D s 表示删除字符‘s’,若字符串中有多个‘s’,则删除第一次出现的,如原串:‘This is a book.’,删除的结果为:‘Thi is a book.’
②I:插入一个字符,命令的格式为:
I a1 a2 其中a1表示插入到指定字符前面,a2表示将要插入的字符
例如: I s d 表示在指定字符‘s’的前面插入字符‘d’,若原串中有多个‘s’,则插入在最后一个字符的前面,如原串:‘This is a book.’ 插入后:‘This ids
a book.’
③R:替换一个字符,命令格式为:
R a1 a2 其中a1为被替换的字符,a2为替换的字符,若在原串中有多个a1,则应全部替换,如原串:‘This is a book.’,输入命令: R o e,替换后:‘This is a bee k.’
在编辑过程中,若出现被指定的字符不存在时,则给出提示信息‘no t exist’。
【输入文件】edit.in两行,第一行为字符串,第二行为命令。
【输出文件】edit.out一行,为修改后的字符串。
【样例输入1】:
This is a book.
D s
【样例输出1】:Thi is a book. 【样例输入2】:Happy New Year. R m
【样例输出2】:not exist。