第6章 数组和字符串 练习题
- 格式:doc
- 大小:20.67 KB
- 文档页数:5
计算机基础与程序设计自考02275课后题答案第六章数组一、改错题正确答案:1、int a[5];2、赋值越界,正确应:ss[3]=5.2;3、定义时不能用变量4、在scanf函数中,用%s格式符时,输入项直接写数组名,无需用&,正确:scanf(“%s”,str);5、赋初值时,一维数组长度可省略,二维数组第一维长度可省略,第二维长度不能省略。
6、在scanf函数中,用%c格式符时,输入项不能直接写数组名,需要加上取地址符号&,正确:scanf(“%c”,&c[k]);二、简答题(1)定义了一个数据类型为整型的二维数组t(2)2行(3)5列(4)10个(5)t[1][0]、t[1][1]、t[1][2]、t[1][3]、t[1][4](6)t[0][2]、t[1][2](7)t[0][1]=0;(8)int t[2][5]={0};(9)for(i=0;i<2;i++)for(j=0;j<5;j++)t[i][j]=0;(10)scanf(“%d”,&t[0][0]);(11)he=t[0][3]+t[1][3];ave=he/2;三、填空题1、02、23、地址4、连续、行5、越界四、补充程序1、①N-1 ②N ③a[i]=a[j] ④a[j]=t2、①D ②A ③D ④D五、编写程序1、任意输入20个整数,计算(1)正数的个数和正数的和;(2)负数的个数和负数的和;(3)零的个数;main(){int a[20],i,m=0,n=0,p=0,max=0,min=0;for(i=0;i<20;i++)scanf("%d",&a[i]);for(i=0;i<20;i++)if(a[i]>0){ m=m+1;max=max+a[i];}else if(a[i]==0)n=n+1;else{ p=p+1; min=min+a[i];}printf("zhong:%d,he:%d,fu:%d,he:%d,ling:%d\n",m,max,p,min,n);}2、对一个任意的4行4列的二维整型数组,编辑实现(1)每一列的最大值;(2)每一行的最小值;(3)所有元素的最大值、最小值及其他们的行下标和列下标main(){int i,j,max,min,a[4][4],m=0,n=0,l=0,h=0;for(i=0;i<4;i++)for(j=0;j<4;j++)scanf("%d",&a[i][j]);max=a[0][0];min=a[0][0];for(i=0;i<4;i++)for(j=0;j<4;j++){ if(a[i][j]>max){max=a[i][j];m=i;n=j;}if(a[i][j]<min){min=a[i][j];l=i;h=j;}}printf("max:%d,hang:%d,lie:%d\n",max,m,n);printf("min:%d,hang:%d,lie:%d\n",min,l,h);}3、把字符数组str2中的全部字符拷贝到字符数组str1中(不要使用strcpy函数)main(){char str1[10],str2[10]={"I am boy"};int i;for(i=0;i<10;i++)str1[i]=str2[i];printf("%s\n",str1);}。
一、选择题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个整数,输出其中的最小数。
第六章数组习题参考答案6-1 请同学上机运行代码。
6-2Option ExplicitOption Base 1Private Sub Command1_Click()Dim i As Integer, t As IntegerDim a(15) As IntegerRandomizeFor i = 1 To 15a(i) = Int(100 * Rnd)Text1 = Text1 & Str(a(i))Next iFor i = 1 To 7t = a(i)a(i) = a(16 - i)a(16 - i) = tNext iFor i = 1 To 15Text2 = Text2 & Str(a(i))Next iEnd SubPrivate Sub Command2_Click()Text1 = ""Text2 = ""End SubPrivate Sub Command3_Click()EndEnd Sub6-3Option ExplicitDim a(20) As IntegerPrivate Sub Command1_Click()Dim i As IntegerRandomizeFor i = 1 To 20a(i) = Int(90 * Rnd) + 10Text1 = Text1 & Str(a(i))Next iEnd SubPrivate Sub Command2_Click()Dim i As Integer, j As Integer, f As BooleanDim n As IntegerFor i = 1 To 20f = TrueFor j = i + 1 To 20If a(i) = a(j) Then f = FalseNext jIf f = True Then n = n + 1Next iText2 = nEnd SubPrivate Sub Command3_Click()Text1 = ""End SubPrivate Sub Command4_Click()EndEnd Sub6-4Option ExplicitDim a(20) As IntegerPrivate Sub Command1_Click()Dim i As IntegerRandomizeFor i = 1 To 20a(i) = Int(90 * Rnd) + 10Text1 = Text1 & Str(a(i))Next iEnd SubPrivate Sub Command2_Click()Dim i As Integer, j As Integer, max As IntegerDim n As Integer, w As Integer, p As IntegerFor i = 1 To 20n = 0: p = iFor j = 1 To 4If i > 20 Then p = p - 20n = n + a(p)Next jIf n > max Thenmax = nw = iEnd IfNext iText2 = maxPicture1.Print w & "--" & w + 4End SubPrivate Sub Command3_Click()Text1 = ""End SubPrivate Sub Command4_Click()EndEnd Sub6-5Dim a(5, 5) As IntegerPrivate Sub Command1_Click()For i = 1 To 4For j = 1 To 5a(i, j) = Int(9 * Rnd) + 1Picture1.Print a(i, j);Next jPicture1.PrintNext iEnd SubPrivate Sub Command2_Click()For j = 1 To 5s = 0For i = 1 To 4s = s + a(i, j)Next iText1 = Text1 & Str(s)Next jEnd SubPrivate Sub Command3_Click()For i = 1 To 4s = 0For j = 1 To 5s = s + a(i, j)Next jText2 = Text2 & Str(s) & Chr(13) & Chr(10)Next iEnd SubPrivate Sub Command4_Click()Text1 = ""Text2 = ""Picture1.ClsEnd SubPrivate Sub Command5_Click()EndEnd Sub6-6Option ExplicitPrivate Sub Command1_Click()Dim a(5, 5), i As Integer, j As IntegerDim n As Integer, m As Integer, t As IntegerRandomizeFor i = 1 To 5For j = 1 To 5 - 1a(i, j) = Int(40 * Rnd) * 2 + 10Next jNext iFor i = 1 To 5For j = 5 To 6 - i Step -1a(i, j) = Int(40 * Rnd) * 2 + 11Next jNext iFor i = 1 To 5For j = 1 To 5Text1 = Text1 & Str(a(i, j))Next jText1 = Text1 & vbCrLfNext iEnd Sub6-7 同6-46-8Dim a(5, 5) As IntegerPrivate Sub Command1_Click()RandomizeFor i = 1 To 5For j = 1 To 5a(i, j) = Int(100 * Rnd) + 1Picture1.Print Right(" " & a(i, j), 4);Next jPicture1.PrintNext iEnd SubPrivate Sub Command2_Click()For i = 1 To 5For j = 1 To 5s = s + a(i, j)Next jNext iText1 = Str(s)End SubPrivate Sub Command3_Click()For i = 1 To 5For j = 1 To 5If i = 1 Or j = 1 Or i = 5 Or j = 5 Thens = s + a(i, j)End IfNext jNext iText2 = Str(s)End SubPrivate Sub Command4_Click()For i = 1 To 5For j = 1 To 5If i = j Or j = 6 - i Thens = s + a(i, j)End IfNext jNext iText3 = Str(s)End Sub6-9Option ExplicitPrivate Sub Command1_Click()Dim a() As Integer, i As Integer, j As IntegerDim max As Integer, k As Integer, f As BooleanDim n As Integer, m As Integer, t As Integern = InputBox("输入矩阵的行数:")m = InputBox("输入矩阵的列数:")ReDim a(n, m)RandomizeFor i = 1 To nFor j = 1 To ma(i, j) = Int(90 * Rnd) + 10Text1 = Text1 & Str(a(i, j))Next jText1 = Text1 & vbCrLfNext iFor i = 1 To nmax = 0For j = 1 To mIf a(i, j) > max Thenmax = a(i, j)t = jEnd IfNext jFor k = 1 To nIf a(k, t) < max Then Exit ForNext kIf k > n ThenPicture1.Print "鞍点:"; a(i, t); "第"; i; "行"; t; "列"f = TrueEnd IfNext iIf f = False Then Picture1.Print "没有鞍点"End SubPrivate Sub Command2_Click()Text1 = ""Picture1.ClsEnd SubPrivate Sub Command3_Click()EndEnd Sub6-10Option ExplicitPrivate Sub Form_Click()Dim a() As Integer, n As IntegerDim i As Integer, j As Integern = InputBox("层数")ReDim a(n, n)For i = 1 To nPrint Tab(20 - 2 * i);For j = 1 To iIf i = 1 Or i = j Thena(i, j) = 1Elsea(i, j) = a(i - 1, j - 1) + a(i - 1, j)End IfPrint Left(a(i, j) & " ", 4);Next jPrintNext iEnd Sub6-11Option ExplicitPrivate Sub Command1_Click()Dim a(4, 5), i As Integer, j As IntegerDim b(4) As Integer, max As Integer, min As IntegerDim n As Integer, m As Integer, t As IntegerRandomizemax = 0: min = 32767For i = 1 To 4For j = 1 To 5a(i, j) = Int(90 * Rnd) + 10Text1 = Text1 & Str(a(i, j))b(i) = b(i) + a(i, j)Next jText1 = Text1 & vbCrLfIf max < b(i) Thenmax = b(i): m = iElseIf min > b(i) Thenmin = b(i): n = iEnd IfNext iLabel1.Caption = "max行和:" & max & " min行和:" & min & vbCrLf & "max 行:" & m & " min行:" & n & " 交换这两行"For j = 1 To 5t = a(m, j)a(m, j) = a(n, j)a(n, j) = tNext jFor i = 1 To 4For j = 1 To 5Text2 = Text2 & Str(a(i, j))Next jText2 = Text2 & vbCrLfNext iEnd Sub6-12Option ExplicitPrivate Sub Command1_Click()Dim a(), i As Integer, j As IntegerDim b(4) As Integer, max As Integer, min As IntegerDim n As Integer, m As Integer, t As IntegerRandomizen = InputBox("矩阵阶数n:")ReDim a(n, n)For i = 1 To nFor j = 1 To na(i, j) = Int(90 * Rnd) + 10Text1 = Text1 & Str(a(i, j))Next jText1 = Text1 & vbCrLfNext iFor i = 1 To nFor j = 1 To nText2 = Text2 & Str(a(j, i))Next jText2 = Text2 & vbCrLfNext iEnd SubPrivate Sub Command2_Click()Text1 = ""Text2 = ""End SubPrivate Sub Command3_Click()EndEnd Sub6-13Option ExplicitOption Base 1Private Sub Command1_Click()Dim a(3, 3) As Integer, i As Integer, j As Integer Dim max As Long, k As Long, f As IntegerDim n As Integer, m As IntegerRandomizeFor i = 1 To 3For j = 1 To 3a(i, j) = Int(90 * Rnd) + 10Text1 = Text1 & Str(a(i, j))Next jText1 = Text1 & vbCrLfNext iFor i = 1 To 3 '主对角线方向m = ik = 1For j = 1 To 3k = k * a(m, j)m = m + 1If m > 3 Then m = 1Next jIf k > max Thenmax = kn = if = 1End IfNext iFor i = 1 To 3 '辅对角线方向m = ik = 1For j = 1 To 3k = k * a(j, m)m = m - 1If m < 1 Then m = 3Next jIf k > max Thenmax = kn = if = 2End IfNext iPicture1.Print "最大组元素:"If f = 1 ThenFor i = 1 To 2Picture1.Print "a("; n; ","; i; ")="; a(n, i); " ";n = n + 1If n > 3 Then n = 1Next iPicture1.Print "a("; n; ","; i; ")="; a(n, i)ElseIf f = 2 ThenFor i = 1 To 2Picture1.Print "a("; i; ","; n; ")="; a(i, n); " ";n = n - 1If n < 1 Then n = 3Next iPicture1.Print "a("; i; ","; n; ")="; a(i, n)End IfPicture1.Print "乘积="; maxEnd SubPrivate Sub Command2_Click()Text1 = ""Picture1.ClsEnd SubPrivate Sub Command3_Click()EndEnd Sub6-14Option ExplicitPrivate Sub Command1_Click()Dim a(3, 3) As Integer, i As Integer, j As IntegerDim k As Integeri = 3: j = 2: a(i, j) = 1: k = 1Do Until k > 9k = k + 1If i + 1 > 3 And j + 1 <= 3 Theni = 1: j = j + 1ElseIf i + 1 <= 3 And j + 1 > 3 Theni = i + 1: j = 1ElseIf i + 1 > 3 And j + 1 > 3 Theni = i - 1ElseIf i + 1 <= 3 And j + 1 <= 3 And a(i + 1, j + 1) <> 0 Theni = i - 1Elsei = i + 1: j = j + 1End Ifa(i, j) = kLoopFor i = 1 To 3For j = 1 To 3Picture1.Print a(i, j);Next jPicture1.PrintNext iEnd SubPrivate Sub Command2_Click()Dim a() As Integer, i As Integer, j As IntegerDim k As IntegerDim n As Integern = InputBox("幻方阶数:")ReDim a(n, n)i = n: j = (n + 1) / 2: a(i, j) = 1: k = 1Do Until k > n * nk = k + 1If i + 1 > n And j + 1 <= n Theni = 1: j = j + 1ElseIf i + 1 <= n And j + 1 > n Theni = i + 1: j = 1ElseIf i + 1 > n And j + 1 > n Theni = i - 1ElseIf i + 1 <= n And j + 1 <= n And a(i + 1, j + 1) <> 0 Theni = i - 1Elsei = i + 1: j = j + 1End Ifa(i, j) = kLoopFor i = 1 To nFor j = 1 To nPicture1.Print Right(" " & a(i, j), 4);Next jPicture1.PrintNext iEnd Sub6-15Option ExplicitOption Base 1Private Sub Command1_Click()Dim a() As Integer, i As Integer, j As IntegerDim max As Long, k As Long, f As IntegerDim n As Integer, m As IntegerRandomizef = InputBox("输入方阵阶数:")ReDim a(f, f)For i = 1 To fFor j = 1 To fa(i, j) = Int(90 * Rnd) + 10Text1 = Text1 & Str(a(i, j))Next jText1 = Text1 & vbCrLfNext iFor i = 1 To f '副对角线方向m = ik = 0For j = 1 To fk = k + a(j, m)m = m - 1If m < 1 Then m = fNext jIf k > max Thenmax = kn = iEnd IfNext iPicture1.Print "max:"; maxFor i = 1 To fPicture1.Print "a("; i; ","; n; ")="; a(i, n)n = n - 1If n < 1 Then n = fNext iEnd SubPrivate Sub Command2_Click()Text1 = ""Picture1.ClsEnd SubPrivate Sub Command3_Click()EndEnd Sub。
实验06 数组、指针与字符串(4学时)(第6章数组、指针与字符串)一、实验目的二、实验任务6_1(习题6-25)编写并测试3×3矩阵转置函数,使用数组保存3×3矩阵。
6_2(习题6-26)使用动态内存分配生成动态数组来重新完成上题(n阶方阵),使用指针实现函数的功能。
6_3 编程实现两字符串的连接。
要求使用字符数组保存字符串,不要使用系统函数。
6_4 使用string类声明字符串对象,重新实现上一小题。
6_5(习题6-27)声明一个Employee类。
其中包括姓名、街道地址、城市和邮编等属性,以及change_name()和display()等函数。
display()显示姓名、街道地址、城市和邮编等属性,change_name()改变对象的姓名属性,实现并测试这个类。
6_6(习题6-27)声明包含5个元素的对象数组,每个元素都是Employee 类型的对象。
6_7 修改实验4中的people(人员)类。
具有的属性如下:姓名char name[11]、编号char number[7]、性别char sex[3]、生日birthday、身份证号char id[16]。
其中“出生日期”声明为一个“日期”类内嵌子对象。
用成员函数实现对人员信息的录入和显示。
要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。
在测试程序中声明people类的对象数组,录入数据并显示。
三、实验步骤1.(编程,习题6-25)编写矩阵转置函数,输入参数为3×3整型数组。
使用循环语句实现矩阵元素的行列对调,注意在循环语句中究竟需要对哪些元素进行操作,编写main()函数实现输入输出。
程序名:lab6_1.cpp。
参考运行结果:★程序及运行结果://lab6_1.cpp#include<iostream>using namespace std;void move(int matrix[][3]){int temp;for(int i=0;i<3;i++)for(int j=0;j<i;j++){temp=matrix[i][j];matrix[i][j]=matrix[j][i];matrix[j][i]=temp;}}void main(){int i,j,mat[3][3];cout<<"输入3×3矩阵"<<endl;for(i=0;i<3;i++){cout<<"第"<<i+1<<"行:";for(j=0;j<3;j++) cin>>mat[i][j];}cout<<"\n输入的3×3矩阵为:"<<endl;for(i=0;i<3;i++){for(j=0;j<3;j++)cout<<mat[i][j]<<" ";cout<<endl;}move(mat);cout<<"转置后的矩阵为:"<<endl;for(i=0;i<3;i++){for(j=0;j<3;j++)cout<<*(*(mat+i)+j)<<" ";//指针形式cout<<endl;}}2.(编程,习题6-26)编写n×n阶矩阵转置函数,参数为整型指针。
精品文档选择题一、___下面正确的初始化语句是1. B. char str[100]=hello;A. char str[]=hello;D. char str[]={'hello'};C. char str[]={'h','e','l','l','o'};___a[10]后,下面错误的引用是int2.定义了一维型数组D. a[1]=a[2]*a[0];C. a[0]=5*2;A. a[0]=1;B. a[10]=2;____下面的二维数组初始化语句中,正确的是3.4}}; A. float b[2][2]={0.1,0.2,0.3,0.4};D. float a[2][2]={0};4}};____引用数组元素时,数组下标可以是4.D. 整型表达式整型变量B. C. A. 整型常量以上均可5.定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为____B. 25 A. 24C. 18D. 17____6.下列初始化字符数组的语句中,正确的是str[]={'h','e','l','l','o','\0'}; char B.A. char str[5]=hello;D. char str[100]=\;C. char str[5]={hi};7.给出下列代码,则数组初始化中哪项是不正确的?; [] array1,array2[]byte; []byte array3[] array4;byte [][]array2=array3 Aarray2 = array1 B..array3=array4 .C.array2=array4 D____8.下面程序的运行结果是main() {int x=30;int[] numbers=new int[x];x=60;System.out.println(numbers.length);}A. 60B. 20C. 30D. 50精品文档9.下面不是创建数组的正确语句A.float f[][]=new float[6][6];B.float f[]=new float[6];D.float [][]f=new float[6][];C.float f[][]=new float[][6];10.下列关于Java语言的数组描述中,错误的是()。
A.数组的长度通常用length表示 B.数组下标从0开始C.数组元素是按顺序存放在内存的 D.数组在赋初值和赋值时都不判界11.数组a的第三个元素表示为()A. a(3) D. a[2]C.a(2) B. a[3]12.当访问无效的数组下标时,会发生系统崩溃 D. 直接跳过 A. 中止程序 B.抛出异常 C.复制到b正确的是13.使用arraycopy()方法将数组a A. arraycopy(a,0,b,0,a.length)B. arraycopy(a,0,b,0,b.length)C.. arraycopy(b,0,a,0,a.length)D. arraycopy(a,1,b,1,a.length)()。
关于数组默认值,错误的是14.>0>0.0f D. int— A. char—>'—>true C. float—)15.执行String[] s=new String[10];语句后,哪些结论是正确的?(9 为未定义 B.s.length .As[0] 为\ null D.s[10] 为C.s[9] 为)(16.关下面的表达式哪些是不正确的?;int i=3; s+=i;瑓楲杮猠尽你好A.;int i=3; if(i==s){ s+=i}; 你好B.瑓楲杮猠尽;int i=3; s=i+s;瑓楲杮猠尽C.你好D. String s=null; int i=(s!=null)&&(s.length()>0)?s.length():0;下列语句会造成数组new int[10]越界是17.a[9] D. for(int i=0;i<=10;i++) a[i]++;— C. A. a[0] += 9; B. a[9]=10;)的值是(以下程序的运行效果。
下面程序段执行完毕后,18.contStringstrings[ ]={string,starting,strong,street,soft};int cont=0;for(int i=0;i<strings.length;i++)if(strings[i].endsWith(g))精品文档.cont++;A. 1B. 2C.3D.419.如定义对象 StringBuffer ch = new StringBuffer(Shanghai) 则ch.length()=( )A. 7 B.8 C.9D.23( )20.执行完代码int[] x=new湩孴??后以下说明正确的 A. x[24]为0为空 D. x[0] B. x[24]未定义C. x[25]为0( ) 关于char类型的数组,说法正确的是21. 'A'B. 可以仅通过数组名来访问数组 A. 其数组的默认值是可以存储整型数值C. 数组不能转换为字符串D.22.对于数组a[10],下列表示错误的是C. a[9] D. a[1] A. a[0] B. a(0)23.下列数组声明,下列表示错误的是D. int[]a[]C. int[][] a A. int[] a B. int a[]24.定义字符串:String str=“abcdefg”;则str.indexOf('d')的结果是()A)'d' B) true C) 3 D) 425.下面程序段输出的结果是()StringBuffer buf1;String str=”北京2008”;buf1=new StringBuffer(str);System.out.println(buf1.charAt(2));A. 2B. 京C. 0D.null26.下面程序段输出的结果是()String s=”ABCD”;s.concat(“E”);s.replace(‘C','F');System.out.println(s);A) ABCDEF B) ABFDE C) ABCDE D) ABCD27.下面语句输出结果是( )。
char charArray[]={‘a','b','c','d','e','f'};StringBuffer buf1;String str=”12345”;精品文档.精品文档buf1=new StringBuffer(str);buf1.insert(4,charArray);System.out.println(buf1.toString());A) ab1234ef B) 1234abcdef5 C) 123456abcd D) abcd1234二、填空题1)数组的元素通过来访问,数组Array的长度为。
2)数组复制时,?将一个数组的传递给另一个数组。
3)矩阵或表格一般用维数组表示。
4)如果把二维数组看成一维数组,那么数组的元素是数组。
5)Java中数组的下标的数据类型是。
6)不用下标变量就可以访问数组的方法是。
7)数组最小的下标是。
8)arraycopy()的最后一个参数指明。
9)向方法传递数组参数时,传递的是数组的。
10)数组初始化包括。
11)浮点型数组的默认值是。
12)对象型数组的默认值是。
13)对象类型的数组虽然被默认初始化,但是并没有构造函数。
14)二维数组的行的长度不同。
15)数组创建后其大小改变。
16)定义数组:char charArray[]={‘a','b','c','d','e','f'};则String.valueOf(charArray,2,3)的结果是。
17)语句String s=new String(“java program!”);System.out.println(s.substring(5,8));的输出结果是。
18)如有以下赋值语句:x=new StringBuffer().append(“a”).append(4). append(“c”).toString;x的类型是;它的值是。
三、简答题1. 如何声明和创建一个一维数组?2. 如何访问数组的元素?3.数组下标的类型是什么?最小的下标是什么?一维数组a的第三个元素如何表示?4.数组越界访问会发生什么错误?怎样避免该错误?5.给方法传递数组参数与传递基本数据类型变量的值有何不同?6.复制数组有哪些方法?7.数组创建后,其元素被赋予的默认值有哪些?精品文档.精品文档8. 如何声明和创建一个二维数组?9.声明数组变量会为数组分配内存空间吗?为什么?10.一个二维数组的行可以有不同的长度吗?如果可以,试创建一个此类型的数组。
11.Java中的数组实际上是一个隐含的“数组类”的对象,而数组名实际上是该对象的一个引用,这种说法对吗?五、编程题1.有一个整数数组,其中存放着序列1,3,5,7,9,11,13,15,17,19。
请将该序列倒序存放并输出。
2.编写一个程序,提示用户输入学生数量姓名和他们的成绩,并按照成绩的降序来打印学生的姓名。
3.编写一个程序,求出整数数组中最小元素的下标。
如果这样的元素个数大于等于1,则返回下标最小的数的下标。
4.现在有如下的一个数组:int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} ;要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为:int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5} ;5. 现在给出两个数组:·数组A:“1,7,9,11,13,15,17,19:;·数组b:“2,4, 6,8,10”两个数组合并为数组c,按升序排列。
really I ,(可以从控制台接收)按单词将该字符串逆序,比如给定给定一个字符串6. love you!you! love really I尠,为了简化问题,字符串中尠,则输出是不包含标点符号。
7. java笔试题:请用JAVA实现字符串压缩算法。