第四章 数组作业

合集下载

第四章 数组习题集答案

第四章 数组习题集答案
C)printf("%s",s);
D)puts(s);
34.若有说明double b[7][6];对元素的非法引用是【】。
A)b[3][5]B)b[7][5]C)b[2*3][4]D)b[0][9-6]
35.若已包含标题文件<string.h>,并已有定义char s1[5],s2[]="abcd";int i;现要将字符串”abcd”赋给s1,下述语句中错误的是【】。
4.若定义了数组int k[][4]={{1},{1,2,3},{5,6}};则数组共有【】元素。
A)6B)9C)10D)12
5.要将20,30,40,50存入数组b中,下列正确的程序段是【】。
A)
int i,b[4];
for(i=0; i<4; i++)
b[i]=(i+2)*10;
B)
int b[4];
A)strcpy(s1,"abcd");
B)s1=”abcd”;
C)for(i=0;i<5;i++) s1[i]=s2[i];
D)s[0]=’a’,s[1]=’b’,s[2]=’c’,s[3]=’d’;s[4]=’\0’;
36.运行下面程序段的输出结果是【】。
char s1[6]={'d','o','\0','i','t ','\0'};
A)scanf("%s",&s);
B)gets(s);
C)for(i=0;i<10;i++) scanf("%c",s[i]);

程序设计基础-c语言-第四章数组-教材答案-科学出版社

程序设计基础-c语言-第四章数组-教材答案-科学出版社

程序设计基础-c语言-第四章数组-教材习题及其答案1.0编程将一个一维数组的值按逆序重新存放#include<stdio.h>void main(){int i_data[10];int m,i_temp;printf("给定10个数,用空格分隔:");scanf("%d %d %d %d %d %d %d %d %d %d",&i_da ta[0],&i_data[1],&i_data[2],&i_data[3],&i_data[4],&i_d ata[5],&i_data[6],&i_data[7],&i_data[8],&i_data[9]);for(m=1;m<=10/2;m++) //有意写成10/2 已解决任意一维数组的逆序问题,为什么此处用m=1;m<=10/2,而不能m=0;m<10/2{ i_temp=i_data[m-1]; //下面三条语句是典型的两数交换的方法i_data[m-1]=i_data[10-m];i_data[10-m]=i_temp;}for(m=0;m<10;m++){ printf("%d ",i_data[m]);}printf("\n");}2.0 编程求Fibonacci数列的前二十项。

FIBONACCI数列的定义F0=0,F1=1,Fn=Fn-1+Fn-2#include<stdio.h>void main(){int F[20];int m,n,i_blanknum;for(m=0;m<20;m++){ switch(m){ case 0:F[0]=0;break;case 1:F[1]=1;break;default: F[m]=F[m-1]+F[m-2];}}printf("Fibonacci数列的前20项是:\n"); for(m=0;m<20;m++){ printf("%d ",F[m]);}printf("\n");//下面输出项,这是我加的效果for(m=0;m<20;m++){ printf("%d",m+1); //输出项的编号//计算该项数据占几位i_blanknum=1;//每个数据间占一个空格n=F[m];do{ i_blanknum=i_blanknum+1;n=n/10;}while(n!=0);//减去该项编号数据占的位数n=m+1;do{ i_blanknum=i_blanknum-1;n=n/10;}while(n!=0);//输出空格while(i_blanknum>0){ printf(" ");i_blanknum--;}}printf("\n");}2.0在一个从小到大排列的数组中查找X,若x存在就将其测出,若不存在将其添加。

第4章 java课后作业_数组

第4章 java课后作业_数组

第4张课后作业_数组知识点:一维数组、二维数组一、填空及选择:1.数组元素的小标总是从___0___开始。

2.对于数组int[][]={{1,2,3},{4,5,6}}来说,t.length等于__2____,t[0].length等于___3__。

3.已知数组a的定义为“int a[]={1,2,3,4,5};”,则a[2]=__3__,数组b的定义为“int b[]=newint[5];”,则b[2]=__ 0___,数组c的定义为“Object [] c=new Object[5];”,则c[2]=_____。

4.调用数组元素时,用__数组名__和__元素下标___来唯一确定数组中的元素。

5.下列___C__语句有错误A.int [] a;B.int [] b=new int[10];C. int []c=new int[];D.int d[]=null;6.下列___D__语句有错误A.int a[][]=new int[5][5];B.int [][] b=new int[5][5];C.int []c[]=new int[5][5];D.int [][]d=new int[5,5];7.关于下面的程序,正确的结论是___A__public class Demo1{public static void main(String [] args){int a[]=new int[5];boolean b[]=new boolean[5]; //布尔值自动初始化为falseSystem.out.println(a[1]);System.out.println(b[2]);}}A.运行结果为0 falseB.运行结果为1 trueC.程序无法编译D.可以通过编译但结果不确定二、编程题:1.定义一个整数定义的数组,求奇数个数和偶数个数。

2.用20个整数初始化数组,只是输出前10个数。

用break控制3.计算10~20的整数的平方值,将结果保存在一个数组中。

数据结构习题 4~5串和数组

数据结构习题 4~5串和数组

第4~5章串和数组自测卷答案姓名班级一、填空题(每空1分,共20分)1. 不包含任何字符(长度为0)的串称为空串;由一个或多个空格(仅由空格符)组成的串称为空白串。

(对应严题集4.1①,简答题:简述空串和空格串的区别)2. 设S=“A;/document/Mary.doc”,则strlen(s)= 20 , “/”的字符定位的位置为3。

4. 子串的定位运算称为串的模式匹配;被匹配的主串称为目标串,子串称为模式。

5. 设目标T=”abccdcdccbaa”,模式P=“cdcc”,则第 6 次匹配成功。

6. 若n为主串长,m为子串长,则串的古典(朴素)匹配算法最坏的情况下需要比较字符的总次数为(n-m+1)*m。

7. 假设有二维数组A6×8,每个元素用相邻的6个字节存储,存储器按字节编址。

已知A的起始存储位置(基地址)为1000,则数组A的体积(存储量)为288 B ;末尾元素A57的第一个字节地址为1282 ;若按行存储时,元素A14的第一个字节地址为(8+4)×6+1000=1192 ;若按列存储时,元素A47的第一个字节地址为(6×7+4)×6+1000)=1276 。

8. 〖00年计算机系考研题〗设数组a[1…60, 1…70]的基地址为2048,每个元素占2个存储单元,若以列序为主序顺序存储,则元素a[32,58]的存储地址为9188。

答:考虑0行0列,(58列×61行+32行)×2字节+基址2048=9188??9. 三元素组表中的每个结点对应于稀疏矩阵的一个非零元素,它包含有三个数据项,分别表示该元素的行下标、列下标和元素值。

10.求下列广义表操作的结果:(1)GetHead【((a,b),(c,d))】=== (a, b) ; //头元素不必加括号(2)GetHead【GetTail【((a,b),(c,d))】】=== (c,d) ;(3)GetHead【GetTail【GetHead【((a,b),(c,d))】】】=== b ;(4)GetTail【GetHead【GetTail【((a,b),(c,d))】】】=== (d);二、单选题(每小题1分,共15分)( B )1. 〖李〗串是一种特殊的线性表,其特殊性体现在:A.可以顺序存储B.数据元素是一个字符C.可以链式存储D.数据元素可以是多个字符( B )2. 〖李〗设有两个串p和q,求q在p中首次出现的位置的运算称作:A.连接B.模式匹配C.求子串D.求串长( 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解:con(x,y)返回x 和y 串的连接串,即 con(x,y)=‘ABCDEFGPQRST ’; subs(s, i, j)返回串s 的从序号i 开始的j 个字符组成的子串,则subs(s1, 2, len(s2))=subs(s1, 2, 5)=’ BCDEF’; subs(s1, len(s2), 2)=subs(s1, 5, 2)=’ EF’;所以con(subs(s1, 2, len(s2)), subs(s1, len(s2), 2))=c on(’ BCDEF’, ’ EF’)之连接,即BCDEFEF( A )4. 〖01年计算机系考研题〗假设有60行70列的二维数组a[1…60, 1…70]以列序为主序顺序存储,其基地址为10000,每个元素占2个存储单元,那么第32行第58列的元素a[32,58]的存储地址为 。

C 课后习题答案第四章

C  课后习题答案第四章
case 'b' : cout << '$' ; break ;
case 'c' : cout << '*' ; break ;
case 'd' : continue ;
}
cout << '#' << endl ;
}
}
答案:
$#
*#
*#
%
7.#include <iostream.h>
void main()
#include <iostream.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
int isPrime(int);
void createAry(int[], int);
void outAry(const int[], int);
void main()
cout << f( a, 3, 3 ) << endl ;
}
int f( int a[][3], int row, int col )
{int i, j, t=1 ;
for( i=0; i<row; i ++ )
for( j=0; j<col; j++ )
{a[i][j] ++ ;
if( i == j ) t*= a[i][j] ;
}
void createAry(int a[], int n)
{ srand( time(0) );

C语言第四章编程练习题

C语言第四章编程练习题

第四章课后编程练习题(一)数组一维数组:1、一个由10个元素组成的一维数组,求该数组的最大值、最小值、总和和平均值并输出。

2、一个由10个元素组成的一维数组,编程将逆序数组输出。

Cpp5——4023、已有一个已排好序的数组,现在输入一个数,要求按原来排序的规律将它插入到数组中。

输入输出示例:输入n:5按照由大到小的顺序输入n个数:9 7 5 3 1输入要插入的数:6插入完以后数组变成:9 7 6 5 3 1 cpp5——4034、输入若干个正整数,以0结束,将其中大于平均值且个位为5的数排序后输出(按由大到小的顺序排序)。

测试数据:输入:35 15 3 10 5 25 1 0输出:35 25 15 cpp5——4045、用数组输出Fibonacci数列的前40项二维数组1、读入一个正整数n(1<=n<=6),再读入n阶矩阵,计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和(副对角线为从矩阵的右上角至左下角的连线)。

2、输入一个正整数n,输入n个数,生成一个n*n的矩阵,矩阵中第1行是输入的n个数,以后每一行都是上一行循环左移一个元素。

输入输出示例Input n: 3Input numbers: 2 5 8 4 9The matrix is:2 5 8 4 95 8 4 9 28 4 9 2 54 9 25 89 2 5 8 4 cpp5——4053、输出可大可小的正方形图案,最外层是第一层,要求每层上用的数字与层数相同。

输入输出示例Input n: 3The matrix is:1 1 1 1 11 2 2 2 11 2 3 2 11 2 2 2 11 1 1 1 14、将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。

Cpp5——4065、编程输出杨辉三角(要求输出10行)111 2 11 3 3 11 4 6 4 1。

字符数组1、输入一串字符,将其中ASCII码值为奇数的字符排序后输出(按由小到大的顺序)。

第四章习题答案

第四章习题答案

第4章数组选择题1.以下对一维数组 a 的定义正确的是( C )。

(A)int n = 5, a[n]; (B)int a(5);(C)const int N = 5; int a[N]; (D)int n; cin>>n; int a[n];2.下列数组定义语句中,不合法的是( A )。

(A)int a[3] = { 0, 1, 2, 3 }; (B)int a[] = { 0, 1, 2 };(C)int a[3] = { 0, 1, 2 }; (D)int a[3] = { 0 };3.已知 int a[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, p = a;,不能..表示数组 a 中元素的式子是( C )。

(A) a (B)p (C)a (D)a[ p a ] 4.已知 int a[] = { 0,2,4,6,8,10 }, p = a+1; 其值等于0的表达式是( D )。

(A) (p++) (B)(++p) (C)(p) (D)(p) 5.以下不能对二维数组a进行正确初始化的语句是( C )。

(A)int a[2][3] = { 0 };(B)int a[][3] = { { 0,1 }, { 0 } };(C)int a[2][3] = { { 0, 1 }, { 2, 3 }, { 4, 5 } };(D)int a[][3] = { 0, 1, 2, 3, 4, 5 };6.已知int a[][3] = { { 0, 1 }, { 2, 3, 4 }, { 5, 6 }, { 7 } }; 则 a[2][1]的值是( C )。

(A)0 (B)2 (C)6 (D)77.已知int a[3][3] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; 不能表示数组元素a[2][1]的地址是( B )。

(A)&a[2][1] (B)(a[2]+1) (C)a[2]+1 (D)(a+2)+1 8.已知char a[]={ "fortran", " basic", "pascal", "java", "c++" };,则 cout<<a[3];的显示结果是( C )。

数组练习题

数组练习题

数组练习题1.下面数组声明语句,_________正确。

A)Dim a[2,4] As Integer B)Dim a(2,4)As IntegerC)Dim a(n,n)As Integer D)Dim a(2 4)As Integer2.假定建立了一个名为Command1的命令按钮数组,则以下说法中错误的是________。

A)数组中每个命令按钮的名称(名称属性)均为Command1B)数组中每个命令按钮的标题(Caption属性)都一样C)数组中所有命令按钮可以使用同一个事件过程D)用名称Command1(下标)可以访问数组中的每个命令按钮3.数组声明语句Dim a(-2 to2,5)中,数组包含元素个数为________。

A)120 B)30 C )60 D)204.下面程序的输出结果是________。

Dim aa = Array(1,2,3,4,5,6,7)For i = Lbound(a)to Ubound(a)a(i)= a(i)* a(i)Next iPrint a(i)A)36 B)程序出错C)49 D)不确定5.下面程序的输出结果是________。

Option Base 1Private Sub Command1_Click()Dim a%(3, 3)For i = 1 To 3For j = 1To 3If j > 1 And i > 1 Thena(i, j)= a(a(i - 1, j - 1), a(i, j - 1))+ 1Elsea(i, j)= i * jEnd IfPrint a(i, j); "";Next jPrintNext iEnd SubA)1 2 3 B)1 2 3 C )1 2 3 D)1 2 32 3 1 1 2 3 2 4 6 2 2 23 2 3 1 2 3 3 6 9 3 3 36.在设定Option Base 0后,经Dim arr(3,4)As Integer 定义的数组arr含有的元素个数为________。

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

第四章数组4.1 选择题1. 以下关于数组的描述正确的是( )。

A. 数组的大小是固定的,但可以有不同的类型的数组元素B. 数组的大小是可变的,但所有数组元素的类型必须相同C. 数组的大小是固定的,所有数组元素的类型必须相同D. 数组的大小是可变的,可以有不同的类型的数组元素2. 以下对一维整型数组a的正确说明是( )。

A.int a(10);B. int n=10,a[n];C.int n;D. #define SIZE 10scanf("%d",&n); int a[SIZE];int a[n];3. 在C语言中,引用数组元素时,其数组下标的数据类型允许是( )。

A. 整型常量B. 整型表达式C. 整型常量或整型表达式D. 任何类型的表达式4. 以下对一维数组m进行正确初始化的是( )。

A. int m[10]=(0,0,0,0) ;B. int m[10]={ };C. int m[ ]={0};D. int m[10]={10*2};5. 若有定义:int bb[ 8];。

则以下表达式中不能代表数组元bb[1]的地址的是( )。

A. &bb[0]+1B. &bb[1]C. &bb[0]++D. bb+16. 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是( )。

A. 3B. 6C. 10D. 207. 若有以下说明:int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c='a',d,g;则数值为4的表达式是( )A. a[g-c]B. a[4]C. a['d'-'c']D. a['d'-c]8. 以下程序段给数组所有的元素输入数据,请选择正确答案填入( )。

#include<stdio.h>main(){int a[10],i=0;while(i<10) scanf("%d",________ );┇}A. a+(i++)B. &a[i+1]C. a+iD. &a[++i]9. 执行下面的程序段后,变量k中的值为( )。

int k=3, s[2];s[0]=k; k=s[1]*10;A. 不定值B. 33C. 30D. 1010. 以下程序的输出结果是( )main(){int i, a[10];for(i=9;i>=0;i--) a[i]=10-i;printf("%d%d%d",a[2],a[5],a[8]);}A. 258B. 741C. 852D. 36911. 以下程序运行后,输出结果是( )。

main(){int n[5]={0,0,0},i,k=2;for(i=0;i<k;i++) n[i]=n[i]+1;printf("%d\n",n[k]);}A. 不确定的值B. 2C. 1D. 012. 以下程序运行后,输出结果是( )。

main(){int y=18,i=0,j,a[8];do{ a[i]=y%2; i++;y=y/2;} while(y>=1);for(j=i-1;j>=0;j--) printf("%d",a[j]);printf("\n");}A. 10000B. 10010C. 00110D. 1010013. 以下程序运行后,输出结果是( )。

main(){int a[10], a1[ ]={1,3,6,9,10}, a2[ ]={2,4,7,8,15},i=0,j=0,k;for(k=0;k<4;k++)if(a1[i]<a2[j]) a[k]=a1[i++];else a[k]=a2[j++];for(k=0;k<4;k++) printf("%d",a[k]);}A. 1234B. 1324C. 2413D. 432114. 以下程序运行后,输出结果是( )。

main(){int i,k,a[10],p[3];k=5;for (i=0;i<10;i++) a[i]=i;for (i=0;i<3;i++) p[i]=a[i*(i+1)];for (i=0;i<3;i++) k+=p[i]*2;printf("%d\n",k);}A. 20B. 21C. 22D. 2315. 以下程序运行后输出结果是( )。

main( ){int n[3],i,j,k;for(i=0;i<3;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[1]); }A. 2B. 1C. 0D. 316. 下列程序的主要功能是输入10个整数存入数组a,再输入一个整数x,在数组a中查找x。

找到则输出x在10个整数中的序号(从1开始);找不到则输出0。

程序缺少的是 ( )。

main(){int i,a[10],x,flag=0;for(i=0;i<10;i++)scanf("%d",&a[i]);scanf("%d",&x);for(i=0;i<10;i++) if _______ {flag=i+1; break;}printf("%d\n", flag);}A. x!=a[i]B. !(x-a[i])C. x-a[i]D. !x-a[i]17. 若说明:int a[2][3]; 则对a数组元素的正确引用是( ) 。

A. a(1,2)B. a[1,3]C. a[1>2][!1]D. a[2][0]18. 若有定义:int b[3][4]={0};则下述正确的是( ) 。

A. 此定义语句不正确B. 没有元素可得初值0C. 数组b中各元素均为0D. 数组b中各元素可得初值但值不一定为019. 若有以下数组定义,其中不正确的是( ) 。

A. int a[2][3];B int b[][3]={0,1,2,3};C. int c[100][100]={0};D. int d[3][]={{1,2},{1,2,3},{1,2,3,4}};20. 若有以下的定义:int t[5][4];能正确引用t数组的表达式是( )。

A. t[2][4]B. t[5][0]C. t[0][0]D. t[0,0]21. 在定义int m[ ][3]={1,2,3,4,5,6};后,m[1][0]的值是( )。

A. 4B. 1C. 2D. 522. 在定义int n[5][6]后第10个元素是( )。

A. n[2][5]B. n[2][4]C. n[1][3]D. n[1][4]23. 若二维数组c有m列,则计算任一元素c[i][j]在数组中的位置的公式为( )。

(假设c[0][0]位于数组的第一个位置)A. i*m+jB. j*m+iC. i*m+j-1D. i*m+j+124. 若有以下定义语句,则表达式“x[1][1]*x[2][2]”的值是( )。

float x[3][3]={{1.0,2.0,3.0},{4.0,5.0,6.0}};A. 0.0B. 4.0C. 5.0D. 6.025. 以下程序运行后,输出结果是 ( )。

main(){int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);}A. 0650B. 1470C. 5430D. 输出值不定26. 以下程序运行后,输出结果是( )。

main(){int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};int i,s=0;for(i=0;i<4;i++) s+=aa[i][1];printf(“%d\n”,s);}A. 11B. 19C. 13D. 2027. 有以下程序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\n",s);}该程序的输出结果是( )。

A. 18B. 19C. 20D. 2128. 若定义如下变量和数组:int i;int x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是( )。

for(i=0;i<3;i++) printf("%d",x[i][2-i]);A. 1 5 9B. 1 4 7C. 3 5 7D. 3 6 929. 下述对C语言字符数组的描述中错误的是( )。

A. 字符数组可以存放字符串B. 字符数组中的字符串可以整体输入、输出C. 可以在赋值语句中通过赋值运算符"="对字符数组整体赋值D. 不可以用关系运算符对字符数组中的字符串进行比较30. 下述对C语言字符数组的描述中正确的是 ( )。

A. 任何一维数组的名称都是该数组存储单元的开始地址,且其每个元素按照顺序连续占存储空间B. 一维数组的元素在引用时其下标大小没有限制C. 任何一个一维数组的元素,可以根据内存的情况按照其先后顺序以连续或非连续的方式占用存储空间D. 一维数组的第一个元素是其下标为1的元素31. 不能把字符串:Hello!赋给数组b的语句是( )。

A. char str[10]= {'H', 'e', 'l', 'l', 'o', '! '};B. char str[10];str="Hello!";C. char str[10];strcpy(str,"Hello!");D. char str[10]="Hello!";32. 合法的数组定义是( )。

A. int a[]="string";B. int a[5]={0,1,2,3,4,5};C. int s="string";D. char a[]={0,1,2,3,4,5};33. 下列语句中,不正确的是( )。

相关文档
最新文档