04747Java语言程序设计(一)-数组和字符串

04747Java语言程序设计(一)-数组和字符串
04747Java语言程序设计(一)-数组和字符串

java中的数组和字符串

Java中的数组和字符串 一.数组:用一个标识符(变量名)和一组下标来代表一组相同数据类型的数据元素的集合.其中的每个数组元素在数组中的位置是固定的.可以通过叫做下标的编号加以区分,通过标识符和下标来访问每一个数据元素. 数组必须经过声明和初始化后,才可以使用. 1、数组的声明(确定数组名、数组的维数和数组的数据数据类型)但并没有分配存储空间 一维数组的声明格式如下: 类型标识符数组名[]; 或类型标识符[] 数组名; int x[]; //可读性强 int[] x;常用于作为方法的返回值 public int[] fun() { } 二维数组的声明格式如下: 类型标识符数组名[][]; 或类型标识符[][] 数组名; int x[][]; int[][] x; 类型说明符指明数组元素的类型,可以是基本类型、类或接口;方括号表示数组的维数. 注意:对于二维数组,前面的[]表示行,后面的[]表示列. 2、数组的初始化 声明数组并不能够为数组分配存储空间.要想使数组分配存储空间必须指定数组元素的个数. java有两种方式进行初始化: 1)通过指定初值的方式: 例如: int[] a={12,33,77,88}; int[][] a={{1,2,3},{4,5,6},{7,8,9}}; 2)用关键字new初始化数组: 用关键字new初始化数组时候,只为数组分配存储空间而不对数组元素赋初值. 用关键字初始化数组也有两种形式: (1)先声明数组,再初始化数组 一维:类型标识符数组名[]; 数组名=new 类型标识符[数组长度]; 二维:类型标识符数组名[][]; 数组名=new 类型标识符[数组长度][];//必须指定行的长度.跟c语言不同. 注意:对于二维数组来说,可以不指定列,但必须指定行数. 或 数组名=new 类型标识符[数组长度][数组长度];//数组长度是整型但不能是长整型 (2)声明并初始化 一维:类型标识符数组名[]=new 类型标识符[数组长度]; 二维:类型标识符数组名[][]=new 类型标识符[数组长度][];//如果没有给数组赋值的话,系统自动赋予默认值. (也就是说声明和初始化写在同一行) 3、数组的引用 一维数组的引用格式如下: 数组名[数组下标];

字符串可以用字符数组与字符串变量两种方式来存储

字符串可以用字符数组与字符串变量两种方式来存储,效果类似。 一、用字符数组来存储字符串: char st1[100],st2[100] ; //字符数组说明 cin>>st1>>st2; long a,b; 输入:hello, world 则st1={…h?,?e?,?l?,?l?,?o?,?,?,?\0?} st2={…w?,?o?,?r?,?l?,?d?,?\0} 字符?\0?为字符串结束标志 1. 字符数组长度 strlen(st1); //如a=strlen(st1);b=strlen(st2); 则a=6,b=5 2. 字符数组比较 不能直接比较,st1>st2是错误的,要用strcmp()函数 strcmp(st1,st2); //st1=st2相等则输出0,st1st2输出1 strncmp(st1,st2,n); 把st1,st2的前n个进行比较。 3. 连接字符数组 不能直接用st1=st1+st2;用strcat()函数 strcat(st1,st2); //将st1和st2连接后赋给st1,本例连接后st1为”hello,world” strncat(st1,st2,n); n表示连接上st2的前n个给st1,在最后不要加'\0'。 4. 替换 strcpy(st1,st2); //用st2的值替换st1的值,字符数组不能如此赋值st1=st2或st1[]=st2[]都是错误的 本例中st1值被替代为”world” strncpy(st1,st2,n); n表示复制st2的前n个给st1,在最后要加'\0'。 5. 其他函数 strchr(st1,ch) //ch为要找的字符。如strchr(st1,?e?);会截取出st1中以字母?e?开头的字符串,要用string类型的来存储,如string c1; c1=strchr(st1,?e?); 则c1为”ello” strspn(st1,st2); //返回st1起始部分匹配st2中任意字符的字符数。本例 中”hello,”中的第一个字符?h?不能在”world”中找到匹配字符,因此返回值为0。如st1=”rose”;st2=”worse”;则返回值为4,因为rose在worse中都能找到匹配字符。 strrev(); //颠倒字符串 二、用字符串来存储字符串 string str1,str2; cin>>str1>>str2; //如输入“hello, world”则str1=”hello,” str2=”world” 可直接赋值: str1=str2; 1. 字符串长度 len = str1.length(); 2. 字符串比较 可以直接比较,即str1>str2;str1==str2;等 3. 连接 可以直接连接,即str1 += str2;等

C语言程序设计实验答案数组、指针与字符串

实验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 using namespace std; void move(int matrix[][3]){ int temp; for(int i=0;i<3;i++) for(int j=0;j>mat[i][j]; } cout<<"\n输入的3×3矩阵为:"<

C++中字符数组与string的相互转换及字符串拼接(字符串知识点总结)

【字符数组转化成string类型】 Char ch[]=”ABCDEFG” String str(ch);//也可string str=ch; 或者 Char ch[]=”ABCDEFG” String str; Str=ch;//在原有基础上添加可以用str+=ch; 【string类型转换为字符数组】 Char buf[10] String str(“ABCDEFG”); Length=str.copy(buf,9); Buf[length]=’\0’; 或者 Char buf[10]; String str1(“ABCDEFG”); strcpy(buf,str1.c_str());//strncpy(buf,str1.c_str(),10); 【字符串拼接】 一、string类字符串 重点:函数append的用法: (1)向s1-string的后面加s2-string (1个参数)

s.append(s2); 或s1+=s2; 也可直接将字符串拼接:如 string s=“hello”; s.append(" world");//“hello"后面拼接”world" (2)(2个参数) 1.向s1-string的后面加s2-string的一部分 s1.append(s2,n); // 把字符串s2的前n个字符连接到当前字符串结尾 2.向string后面加多个字符 string s1 = "hello "; s1.append(4,’!’); //在当前字符串结尾添加4个字符! s1 = “hello !!!”; (3).向string的后面加string的一部分(3个参数) 1.string s1 = "hello ", s2 = "beautiful world "; s1.append(s2, 11, 5); //把字符串s2中从11开始的5个字符连接到当前字符串的结尾得s1 = “hello world”; 2.string s1 = "hello ", s2 = “beautiful world”; s1.append(s2.begin()+11, s2.end()); //把s2的迭代器begin()+11和end()之间的部分连接到当前字符串的结尾得“hello world”; 二、char数组类字符串 重点:strcat()函数,该函数接受两个字符串作为参数,该函数把第2个字符串

Java数组与Java基础类实验报告

西安邮电大学 (计算机学院) 课内实验报告 实验名称:数组与Java基础类 专业名称:计算机科学与技术 班级:计科1405班 学生姓名:高宏伟 学号:04141152 指导教师:刘霞林 实验日期:2016.10.27

一、实验目的 掌握Java中的数组定义、引用,掌握String类和StringBuffer类的使用。 二、实验要求 1.编写一个使用Java 数组的的程序。 2.编写一个使用String类的程序。 3.编写一个使用StringBuffer类的程序。 三、实验内容 (一) 使用数组求Fibonacci数列前10项之和 1.编写程序。 public class Fibonacci { public static void main(String args[]){ int i=0,j=1,s=0; for(int n=1;n<=5;n++){ s+=(i+j); i = (int)(i+j); j = (int)(i+j); } System.out.print("前10项之和是:"+s); } } 2.编译并运行程序。 (二)练习String类的常用方法 ?实验要求: 编写一个Java应用程序,判断两个字符串是否相同,判断字符串的前缀、后缀是否和某个字符串相同,按字典顺序比较两个字符串的大小关系,检索字符串,创 建字符串,将数字型字符串转换为数字,将字符串存放到数组中,用字符数组创建 字符串。。 ?程序模板: StringExample.java class StringExample { public static void main(String args[]) { String s1=new String("you are a student"),s2=new String("how are you"); if(【代码1】) // 使用equals方法判断s1与s2是否相同 { System.out.println("s1与s2相同"); }

20-字符数组与字符串类型.

字符数组与字符串类型 字符型变量:VAR CH :CHAR ; 一、字符数组:数组基类型(元素的类型为字符型。 VAR A:ARRAY [ 1. . N ] OF CHAR ; 输入、输出也与普通数组一样,只能用循环结构,逐个元素地给它赋值,即: FOR I:= 1 TO N DO READ(A[ I ] ; 或者: A[I]:=‘ X ’ ; 不能用:A :=‘ IT IS A PEN ’ ; 例一:判断从键盘输入的字符串是否为回文(从左到右和从右到左读一串字符的值是一样的, 如 ABCDCBA , 1234321, 11, 1 ,串长 < 100 ,且以点号‘. ’结束。 2000年竞赛题:判断一个数是否为回文数。 VAR LETTER:ARRAY [ 1. . 100 ] OF CHAR ; I, J :0. . 100 ; CH:CHAR ; BEGIN WRITELN(‘ INPUT A STRING :’ ; I := O ; READ (CH ; WHILE CH < > ‘. ’ DO BEGIN

I:=I+1 ; LETTER[ I ] := CH ; READ (CH ; END ; J :=1 ; { I 指向数组的尾部, J 指向数组的头部 ,逐个比较 } WHILE (J < I AND (LETTER[ J ]= LETTER[ I ] DO BEGIN I:= I – 1 ; J :=J + 1 END ; IF J > = I THEN WRITELN(‘ YES ’ ELSE WRITELN(‘ NO ’ ; END . 二、字符串类型:针对 TURBO PASCAL 1、字符串常量:CONST STR=‘ THIS IS A BOOK。’ ; 我们经常在 WRITE 语句中用到字符串,也可以 WRITE (STR ;语句输出 STR 的值。 2、字符串类型:也是一种构造类型。 定义形式:TYPE 字符串类型名 = STRING[ N ];

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,",( )); } 则在程序中的两个园括号中分别应填入:C A) &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) 32 3. 阅读程序: main() { int a[2]={0},i,j,k=2; for(i=0;i

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) 120 5. 以下定义语句中,错误的是( 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] B) a[1]

字符串和字符数组之间的转换

字符串和字符数组之间的转换 2010-11-02 16:53:00| 分类: |举报|字号订阅 字符串类提供了一个void ToCharArray() 方法,该方法可以实现字符串到字符数组的转换。如下例: private void TestStringChars() { string str = "mytest"; char[] chars = (); = ""; "Length of \"mytest\" is " + + "\n"); "Length of char array is " + + "\n"); "char[2] = " + chars[2] + "\n"); } 例中以对转换转换到的字符数组长度和它的一个元素进行了测试,结果如下: Length of "mytest" is 6 Length of char array is 6 char[2] = t 可以看出,结果完全正确,这说明转换成功。那么反过来,要把字符数组转换成字符串又该如何呢? 我们可以使用类的构造函数来解决这个问题。类有两个构造函数是通过字符数组来构造的,即 String(char[]) 和String[char[], int, int)。后者之所以多两个参数,是因为可以指定用字符数组中的哪一部分来构造字符串。而前者则是用字符数组的全部元素来构造字符串。我们以前者为例, 在 TestStringChars() 函数中输入如下语句: char[] tcs = {'t', 'e', 's', 't', ' ', 'm', 'e'}; string tstr = new String(tcs); "tstr = \"" + tstr + "\"\n"); 运行结果输入 tstr = "test me",测试说明转换成功。 实际上,我们在很多时候需要把字符串转换成字符数组只是为了得到该字符串中的某个字符。如果只是为了这个目的,那大可不必兴师动众的去进行转换,我们

第四讲java数组和字符串

概述 什么是数组?除了基本数据类型,还提供一种导出类型:数组.数组是相同类型地数据按顺序组成地一种复合数据类型,通过数组名和下标,可以使用数组中地数据.下标从开始.数组是所有编程语言中常用地数据结构. 为什么要数组呢?我们来举一个例子.假设我们需要表示一个班个人地数学成绩,要求求出平均成绩.如果没有数组,我们需要用前面学过地声明变量地方法,声明个变量,写次加法运算!数组可以大大地简化类似地问题!我们只要声明一个长度为地整型数组,结合上一讲我们学过地循环语句,就可以很方便地解决这个问题! 在以前地编程语言比如或者中,字符串也使用数组来表示地:字符串是字符数组!所以字符串与数组有着天然地联系.但是在中,提供了一种更方便地表示字符串地方法:用一个类来表示.类是面向对象地语言特有地概念,对于初次接触面向对象技术地人来说,比较难理解.所以,这一讲,我们将学习表示字符串地类,也对类地使用有一个粗略地了解,作为下一讲详细学习类地准备. 需要指出地是,语言里地其他两种导出类型:结构体和共用体,在里已经被取消. 下面,我们来学习数组和字符串. 数组地声明、创建和初始化 数组地声明: 声明数组,包括声明数组地名字、数组包含地元素地数据类型.数组可以一维地,也可以是二维或者多维地.举例来说:一个班有个人,我们用一个长度为地一维数组表示;如果要表示每个同学地五门高考成绩,那我们就需要用一个第一维长度为,第二维长度为地二维数组. 声明一维数组有两种格式: 数组元素类型数组名[ ]; 数组元素类型[ ] 数组名; 比如:[ ]; 或者:[ ] ; 类似地,声明二维数组有两种格式: 数组元素类型数组名[ ][ ]; 数组元素类型[ ][ ] 数组名; 比如:[ ][ ]; 或者:[ ][ ] ; 下面,我们主要以一维数组为例,学习数组地用法. 数组地创建: 声明数组仅仅给出了数组名字和元素地数据类型,想要真正使用数组还必须为数组分配内存空间,也就是创建数组.在为数组分配内存空间时必须指明数组地长度.为数组分配内存空间地格式如下: 数组名数组元素地类型[ 数组地长度] 例如:[]; [] []; 事实上,数组地声明和创建可以一起完成,比如: [ ] []; 一旦数组被创建,数组地大小就不能改变.如果在程序运行期间,需要对数组地大小进行扩展,通常需要使用另一种数据对象:.有关向量和扩展数组,有兴趣地同学可以在帮助中查找地帮助.

第4章 数组练习题答案

第4章数组练习题 一、选择题 1.在c语言中,引用数组元素时,其数组下标的数据类型允许是()。 A)整型常量 B)整型表达式C)整型常量或整型表达式 D)任何类型的表达式 2.要说明一个有10个int元素的数组,应当选择语句()。 A) int a[10]; B) int a(10); C) int a[9] D) int a[11] 3.对以下说明语句的正确理解是()。 int a[10]={6,7,8,9,10}; A)将5个初值依次赋给a[1]至a[5] B)将5个初值依次赋给a[0]至a[4] C)将5个初值依次赋给a[6]至a[10] D)因为数组长度与初值的个数不相同,所以此语句不正确 4.已知:int a[10];则对a数组元素的正确引用是()。 A) a[10] B) a[3.5] C) a(5) D) a[10-10] 5.以下对一维整型数组a的正确说明是()。 A) int a(10); B)int n=10,a[n]; C) int n; D)#define SIZE 10; scanf("%",&n); int a[SIZE]; int a[n]; 6.要定义一个int型一维数组art,并使其各元素具有初值89,-23,0,0,0,不正确的定义 语句是()。 A) int art[5]={89,-23}; B) int art[ ]={89,-23}; C) int art[5]={89,-23,0,0,0}; D) int art[ ]={89,-23,0,0,0}; 7.在C语言中,二维数组元素在内存中的存放顺序是()。 A)按行存放 B)按列存放 C)由用户自己定义 D)由编译器决定 8.以下对二维数组a的正确说明是()。 A)int a[3][] B) float a(3,4) C) double a[1][4] D) float a(3)(4) 9.已知:int a[3][4];则对数组元素引用正确的是()。 A)a[2][4] B)a[1,3] C) a[2][0] D) a(2)(1) 10.已知:int a[3][4]={0};则下面正确的叙述是()。 A)只有元素a[0][0]可得到初值0 B)此说明语句是错误的 C)数组a中的每个元素都可得到初值,但其值不一定为0 D)数组a中的每个元素均可得到初值0 11.以下各组选项中,均能正确说明二维实型数组a的是()。 A) float a[3][4]; B) float a(3,4); float a[][4]; float a[3][4]; float a[3][]={{1},{0}}; float a[][]={{0},{0}}; C) f loat a[3][4]; D) float a[3][4]; float a[][4]={{0},{0}}; float a[3][]; float a[][4]={{0},{0},{0}}; float a[][4]; 12.已知:int a[][3]={1,2,3,4,5,6,7};则数组a的第一维的大小是()。 A)2 B)3 C)4 D)无确定值 13.若二维数组a有m列,则在a[i][j]之前的元素个数为()。 A) j*m+i B) i*m+j C) i*m+j-1 D) i*m+j+1 14.要使字符数组str存放一个字符串"ABCDEFGH",正确的定义语句是()。 A) char str[8]={'A','B','C','D','E','F','G','H'};

字符串及数组应用程序设计习题

字符串及数组应用程序设计习题 1、 【字符替换问题】 题目描述:在使用Word 进行文档编辑的过程中,我们都有过使用替换操作的经历,现在就请你运用字符串操作函数来实现一个简化的替换操作! 题目要求:用户输入三行字符串:第一行为原始文本串(长度为100以内);第二行为被替换子串;第三行为新的替换子串,注意替换操作可能不止进行一次。 输入数据:What ’s the meaning of this? this that 输出数据:What ’s the meaning of that? 2、 【简单字符串解压(压缩)问题】 题目描述:在计算机世界里,数据量总是庞大无比,因此压缩的概念无处不大:比如,音、视频信息压缩就产生了MP3、MP4等;网络数据包压缩更是减少了网络传输量,加快了数据传输出速度等,今天,我们也来试试一点简单的字符串解压(压缩)操作! 题目要求:键盘输入一段被压缩的字符信息,其中仅含大小写字母、数字、‘-’字符,并假定其中连续的字符(超过2个字符)已压缩为“起始字符-终止字符”的形式,请编程实现解压缩操作(解压后长度不超过200字符)! 输入数据:a-eio1-49X-Z 输出数据:abcdeio12349XYZ 思考:试试编写压缩操作(仅供同学们讨论实现,较难)。 3、 【归并操作问题】 题目描述:在计算机内部排序方案中,有一种重要的排序思想叫归并排序。归并排序的主要操作是递归分解、回归合并。回归合并操作就是将两个原本有序的序列,合并为一个有序序列。例如:A 序列为{12、14、32};B 序列为{13、15、40、99};则新序列C 为{12、13、14、15、32、40、99}。 题目要求:编程实现用户输入的两个有序子序列的合并操作,合并长度不长过100个元素。 输入数据:如上A 、B 子序列;输出结果:如上C 序列。 4、 【矩阵初始化问题】 题目描述:在计算机算法习题设计中,我们常常需要运用矩阵来记录当前问题的子问题的最优解,进而导出当前问题的最优解,并最终得到全局最优解,因此矩阵的下标运算是学习这类问题的重要基础之一。如下图所示方阵中的A 矩阵称为螺旋矩阵、B 矩阵称为蛇形矩阵。 题目要求:用户输入方阵的维大小,编程完成该方阵的这类初始化(分别实现)。 A 4×4 = B 4×4 = 输入数据:4 输出结果:螺旋矩阵如上图中的A 矩阵、蛇形矩阵如上图中的B 矩阵。 5、 【高精度运算问题】 题目描述:计算机软件功能其实就是扩展硬件功能。比如:计算机中硬件所能表示的最大整数long int 型数为-231 到231 ,要想表示更大的整型数据或其运算就只能依赖整型数组来完成! 题目要求:用户输入两个充分大的整数(C++基本类型是装不下了哟!),请输出它们的和。 输入数据( 两行):15464315464465465 482321654151 输出数据: 和为 15464797786119616 思考:求积(仅供同学们讨论实现,较难),上述数据积为 7458774215133872939813395215。 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 10 11 15 16 4 9 12 14 3 5 8 13 1 2 6 7

实验三.数组与字符串

1.实验三数组与字符串 一、实验目的: 1.熟悉Java的数组的使用,编程练习数组声明、定义、遍历和排 序等操作。 2.熟悉Java的字符串相关类的使用,通过编程实现针对字符串的 一般操作。 二、实验内容: 1.定义一个有10个元素的整型数组,找出最大最小值; 2.定义一个有10个元素的整型数组,用选择法实现由小到大排序; 3.定义一个能实现冒泡法排序的方法bSort(int[] arr),然后定义并 初始化一4*5的二维数组,用bSort(int[] arr)将该二维数组的每 行元素进行升序排序; 4.编程求解一个3*3矩阵每一行的元素之和,每一列元素之和,对 角线元素之和,并输出。 5.接收键盘输入的字符串,使用String类的方法indexOf()来统 计该字符串中各个字符出现的次数。 6.设定并初始化一个字符串数组,并将数组中那些以字母b开头的 元素打印出来。 7.接收键盘输入的字符串,分别按顺序输出该字符串中的大写字符 和小写字符。 8.接收键盘输入的英文字符串(单词之间用空格隔开),将字符串 中出现的单词首字母改成大写后输出。 三、实验要求: 1.通过实验掌握数组的定义和初始化; 2.掌握数组最值求解算法; 3.掌握数组的基本排序算法; 4.掌握遍历数组的算法; 5.通过实验掌握String类的使用; 6.通过实验掌握String类常用方法的使用;

7.从JDK文档中查阅String类的以下方法(与本实验内容相关): split(),startWith(),toUpperCase(),indexOf(),charAt(),并说明 它们的用法; 8.写出实验报告。 四、实验学时:3学时 五、实验步骤: 1.进入Java编程环境; 2.新建一个Java文件,编写main()方法实现一维数组求最值的算 法; 3.新建一个Java文件,编写main()方法实现一维数组选择法排序 算法; 4.新建一个Java类,定义bSort(int[] arr)方法(冒泡法)实现数组 升序排序,然后在main方法里实现对一4*5二维数组每行元素 的升序排序; 5.新建一个Java文件,编写main()方法声明并初始化一两维3*3 数组,设计算法实现行、列和对角线元素的求和操作; 6.编写主方法main(),其中实现接收键盘输入功能、文件操作功能 和文件内容输出功能; 7.调用相应构造方法创建String对象; 8.查阅JDK文档,找出可以实现实验内容的String方法,设计算 法,编写程序; 9.调试运行程序,观察输出结果。

第七章字符数组与指针练习题参考答案

第七章字符数组与字符串 【题7.29】下面是对s的初始化,其中不正确的是。 A)char s[5]={“abc”};B)char s[5]={‘a’,‘b’,‘c’}; C)char s[5]=“”;D)char s[5]=“abcdef”; 【题7.30】下面程序段的运行结果是。 char c[5]={‘a’,‘b’,‘\0’,‘c’,‘\0’}; printf(“%s”,c); A)‘a’‘b’ B)ab C)ab c 【题7.31】对两个数组a和b进行如下初始化 char a[]=“ABCDEF”; char b[]={‘A’, ‘B’,‘C’,‘D’,‘E’,‘F’}; 则以下叙述正确的是。 A)a与b数组完全相同B)a与b长度相同 C)a和b中都存放字符串D)a数组比b数组长度长 提示:‘\0’是字符串结束的标志 【题7.32】有两个字符数组a、b,则以下正确的输入格式是。 A)gets(a,b); B)scanf(“%s %s”,a,b); C)scanf(“%s %s”,&a,&b);D)gets(“a”),get(“b”); 【题7.33】有字符数组a[80]和b[80],则正确的输出形式是。 A)puts(a,b); B)printf(“%s %s”,a[],b[]); C)putchar(a,b); D)puts(a),puts(b); 【题7.34】下面程序段的运行结果是。 char a[7]=“abcdef”; char b[4]=“ABC”; strcpy(a,b); printf(“%c”,a[5]); A)空格B)\0 C)e D)f 提示:复制后a[0]=‘A’,a[1]=‘B’,a[2]=‘C’,a[3]=‘\0’, a[4]=‘e’,a[5]=‘f’, a[6]=‘\0’,

JAVA实验五 字符串和数组

实验五字符串和数组 【实验目的】 1.掌握数组的声明、分配空间及初始化 2.理解多维数组(重点掌握二维) 3.掌握String类的特点及常用方法的使用 4.掌握StringBuffer类的特点及常用方法的使用 5.掌握String类和StringBuffer类的区别 6.掌握equal方法与==的区别 【预习内容】 1.复习课件中理论知识 2.练习课堂所讲的例子 【实验内容及步骤】 1、请输入10个整数进行排序。 package com.shiyan5; import java.util.Scanner; public class ShiYan1 { /** * 1、请输入10个整数进行排序。 */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner s= new Scanner(System.in); int[] a=new int[10]; System.out.println("请输入10个整数"); for(int i=0;i<10;i++){ a[i]=s.nextInt(); } System.out.print("输入原序列为:"); for(int i=0;i<10;i++){ System.out.print(a[i]+" "); } for(int i=0;i<10;i++){ for(int j=i+1;j<10;j++){ if(a[i]>a[j]){ int t=a[i]; a[i]=a[j];

a[j]=t; } } } System.out.print("\n排序后:"); for(int i=0;i<10;i++){ System.out.print(a[i]+" "); } } } 2、定义一个10个元素组成的一维数组,输出该数组中的最大值、最小值、所有元素总和,以及最大值和最小值在该数组中的位置。 package com.shiyan5; import java.util.Scanner; public class ShiYan2 { /** * 定义一个10个元素组成的一维数组,输出该数组中的最大值、最小值、所有元素总和 * ,以及最大值和最小值在该数组中的位置。 */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner s=new Scanner(System.in); int[] a=new int[10]; System.out.println("请输入10个整数"); for(int i=0;i<10;i++){ a[i]=s.nextInt(); } int max=a[0]; int min=a[0]; int maxwz=0; int minwz=0; int sum=0; for(int j=0;jmax){ max=a[j]; maxwz=j+1; } if(a[j]

C语言中字符变量字符串和字符数组应用

C语言中字符变量字符串和字符数组应用 字符变量(type`char`?字符串(string)和字符数组(type`char`arrary)是C语言中非常重要的结构成分,也是应用编程中常发生混淆?导致错误发生的成分?一?注意区别字符数组中的字符和字符串C语言中无字符串变量,但提供了字符数组character arrary) 用于存储字符串,例如: char str[]="Hello"; 同时,字符数组亦用于存储字符或字符变量,例如: /*存放字符例*/ char Chars[]={`H``e`,`1``1`,`o`}; /*存放字符变量例*/ char ch=getch(); char CharVar[]=ch; str和Chars的内容尽管由相同字母构成,但前者是字符串(str)后者为一列字符(Chars)?两者在内存中的结构不同,即字符串结尾有NULL 0(字符串终止符)?在应用编程实践中,常常需要从键盘获取字符,依次存入字符数组中,再以字符串输出函数输出到屏幕等,譬如,在中文环境?图形模式下中文字符的键盘输入和屏幕显示?如混淆字符数组中字符组与字符串的差别,则可能得到奇怪的结果?如例: CharStr() { int i,CharNum=5; unsigned char str[80]; for(i=0;i

数组复习题.doc

数组复习题 1. 单项选择题 (1) int a[4]={5,3,8,9};其中a[3]的值为( D )。 A. 5 B. 3 C. 8 D. 9 (2) 以下4 个字符串函数中,( A )所在的头文件与其他3 个不同。 A. gets B. strcpy C. strlen D. strcmp (3) 以下4 个数组定义中,( D )是错误的。 A. int a[7]; B. #define N 5 long b[N]; C. char c[5]; D. int n,d[n]; (4) 对字符数组进行初始化,( B )形式是错误。 A. char c1[ ]={'1', '2', '3'}; B. char c2[ ]=123; C. char c3[ ]={ '1', '2', '3', '\0'}; D. char c4[ ]="123"; (5) 在数组中,数组名表示( C )。 A. 数组第1 个元素的首地址 B.数组第2 个元素的首地址 C. 数组所有元素的首地址 D.数组最后1 个元素的首地址 (6) 若有以下数组说明,则数值最小的和最大的元素下标分别是(B )。 int a[12] ={1,2,3,4,5,6,7,8,9,10,11,12}; A. 1,12 B. 0,11 C. 1,11 D. 0,12 (7) 若有以下说明,则数值为4 的表达式是(D )。 int a[12] ={1,2,3,4,5,6,7,8,9,10,11,12}; char c=’a’, d, g ; A. a[g-c] B. a[4] C. a['d'-'c'] D. a['d'-c] (8) 设有定义:char s[12]="string";则printf( "%d\n",strlen(s)); 的输出是 (A ) A. 6 B. 7 C. 11 D. 12 (9) 设有定义:char s[12] = "string"; 则printf("%d\n ", sizeof(s)); 的输出是( D )说明:sizeof是一个运算符,求变量或类型的长度 A. 6 B. 7 C. 11 D. 12 (10) 合法的数组定义是( A )。 A. char a[ ]= "string " ; B. int a[5] ={0,1,2,3,4,5}; C. char a= "string " ; D. char a[ ]={0,1,2,3,4,5}

数组练习题及答案

第五章数组练习题及答案 一、选择题 1、判断字符串a和b是否相等,应当使用() A、if(a==b) B、if(a=b) C、if(strcpy(a,b)) D、if(strcmp(a,b)) 2、以下正确的定义语句是() A、int a[1][4]={1,2,3,4,5}; B、float x[3][]={{1},{2},{3}}; C、long b[2][3]={{1},{1,2},{1,2,3}}; D、double y[][3]={0}; 3、以下各组选项中,均能正确定义二维实型数组a的选项是() A、float a[3][4]; float a[ ][4]; float a[3][ ]={{1},{0}}; B、float a(3,4); float a[3][4]; float a[ ][ ]={{0},{0}}; C、float a[3][4]; static float a[ ][4]={{0},{0}}; auto float a[ ][4]={{0},{0},{0}}; D、float a[3][4]; float a[3][ ]; float a[ ][4]; 4、下面程序的运行结果是() 1—5 DDCBA 6—10 BDABB 11—15 CCCBC 16—20 DDCBB 21—25 BBAAA 26—30 DBDDB #include "stdio.h" main() { char str[]="SSSWLIA",c; int k; for(k=2;((c=str[k])!='\0');k++) { switch(c) {case 'I':++k;break; case 'L':continue; default:putchar(c);continue; } putchar('*'); } } A、SSW* B、SW* C、SW*A D、SW 5、下面程序段是输出两个字符串中对应相等的字符。横线处应填入() char x[]="programming"; char y[]="Fortran"; int i=0; while(x[i]!='\0'&&y[i]!='\0')

相关文档
最新文档