练习题-第六章_数组(有答案)

合集下载

计算机基础与程序设计自考02275第六章数组课后题答案

计算机基础与程序设计自考02275第六章数组课后题答案

计算机基础与程序设计自考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);}。

第六章数组习题答案

第六章数组习题答案
int a,s=0;
for(a=0;ch[a]>=’0’&&ch[a]<=’9’;a++)
s=10*s+ch[a]-‘0’;
printf(“%d\n”,s);
}
10.以下程序的输出结果是。
#include <stdio.h>
main( )
{
char str[ ]={‘A’,’A’,’A’,’A’,’A’,’A’};
}
程序运行后的输出结果是(C)。
A)20 9 B) 9 9 C) 20 11 D) 11 11
9.有以下程序
#include <stdio.h>
#include <string.h>
main( )
{ char p[20]={‘a’,’b’,’c’,’d’},q[ ]=”abc”,r[ ]=”abcde”;
8.有以下程序
#include <stdio.h>
#include <string.h>
main( )
{ char p[20]={‘a’,’b’,’c’,’d’},q[ ]=”abc”,r[ ]=”ab Nhomakorabeade”;
strcpy(p+strlen(q),r);
strcat(p,q);
printf(“%d %d\n”,sizeof(p),strlen(p));
}
6.以下程序的输出结果是1234。
#include <stdio.h>
main( )
{
char str[ ]=””;
str[4]=’\0’;
printf(“%s\n”,str);

第六~八章 概念练习题-附参考答案

第六~八章 概念练习题-附参考答案
A)auto B)static C)extern D)register
11.若有函数定义:
int func()
{
static int m=0;
return m++;
}
以下程序段运行后屏幕输出为()。
int i;
for(i=1;i<=4;i++)
func();
printf("%d",func());
A.0 B.1C.4 D.5
B.函数的定义不可以嵌套,但函数的调用可以嵌套
C.函数的定义和函数的调用均不可以嵌套
D.函数的定义和函数的均可以嵌套
5.以下叙述中正确的是
A)构成C程序的基本单位是函数
B)可以在一个函数中定义另一个函数
C)main()函数必须放在其它函数之前
D)所有被调用的函数一定要在调用之前进行定义
6.用数组名作为函数调用时的实参时,传递给形参的是。
9.下列说法中正确的是:()
A.局部变量在一定范围内有效,且可与该范围外的变量同名。
B如果一个源文件中,全局变量与局部变量同名,则在局部变量范围内,局部变量不起作用。
C.局部变量缺省情况下都是静态变量。
D.函数体内的局部静态变量,在函数体外也有效。
10.未指定存储类别的变量,其隐含的存储类别为()。
main()
{ char s[]=“ABCD”, *P;
for(p=s+1; p<s+4; p++) printf (“%s\n”,p);}
该程序的输出结果是
A) ABCDB) AC) BD)BCD
BCDBCCD
CDCDD
DD

第六章作业及答案

第六章作业及答案

第六章作业一、选择题1.若不考虑结点的数据信息的组合情况,具有3个结点的树共有种()形态,而二叉树共有( )种形态。

A.2 B。

3C。

4 D。

52.对任何一棵二叉树,若n0,n1,n2分别是度为0,1,2的结点的个数,则n0= ()A.n1+1B.n1+n2C.n2+1 D。

2n1+13。

已知某非空二叉树采用顺序存储结构,树中结点的数据信息依次存放在一个一维数组中,即ABC□DFE□□G□□H□□,该二叉树的中序遍历序列为()A。

G,D,B,A,F,H,C,E B。

G,B,D,A,F,H,C,EC。

B,D,G,A,F,H,C,E D.B,G,D,A,F,H,C,E4、具有65个结点的完全二叉树的高度为()。

(根的层次号为1)A.8 B.7 C.6 D.55、在有N个叶子结点的哈夫曼树中,其结点总数为()。

A 不确定B 2NC 2N+1D 2N—16、以二叉链表作为二叉树存储结构,在有N个结点的二叉链表中,值为非空的链域的个数为().A N-1B 2N-1C N+1D 2N+17、树的后根遍历序列等同于该树对应的二叉树的( )。

A. 先序序列B。

中序序列 C. 后序序列8、已知一棵完全二叉树的第6层(设根为第1层)有8个叶结点,则完全二叉树的结点个数最多是()A.39 B.52 C.111 D。

1199、在一棵度为4的树T中,若有20个度为4的结点,10个度为3的结点,1个度为2的结点,10个度为1的结点,则树T的叶节点个数是()A.41 B.82 C。

113 D.122二、填空题。

1、对于一个具有N个结点的二叉树,当它为一颗_____ 二叉树时,具有最小高度。

2、对于一颗具有N个结点的二叉树,当进行链接存储时,其二叉链表中的指针域的总数为_____ 个,其中_____个用于链接孩子结点,_____ 个空闲着。

3、一颗深度为K的满二叉树的结点总数为_____ ,一颗深度为K的完全二叉树的结点总数的最小值为_____ ,最大值为_____ 。

C语言程序设计第六章数组习题及答案

C语言程序设计第六章数组习题及答案

1.以下对一维整型数组a的定义,正确的是_。

(2分)A.int a(10) ;B.int n = 10 , a[n] ;C.int n ;scanf( "%d" , &n ) ;int a[n] ;D.int a[10] ;2.若有定义:int a[10] ;,则对a数组元素的正确引用是_。

(2分)A.a[10]B.a[3.5]C.a(5)D.a[10-10]3.对定义int a[10] = {6 , 7 , 8 , 9 , 10} ; 的正确理解是_。

(2分)A.将5个初值依次赋给a[1]--a[5]B.将5个初值依次赋给a[0]--a[4]C.将5个初值依次赋给a[6]--a[10]D.因为数组长度与初值个数不相同,所以此语句不正确4..若有定义:int a[3][4]; , 则对a数组元素的正确引用是_。

(2分)A.a[3][4]B.a[1,3]C.a[1+1][0]D.a(2)(1)5.以下对二维数组a初始化正确的语句是_。

(2分)A.int a[2][ ]={{0 , 1 , 2}, {3 , 4 , 5}};B.int a[ ][3]={{0, 1, 2}, {3, 4, 5}};C.int a[2][4]={{0, 1 , 2}, {3 , 4}, {5}};D.int a[ ][3]={{0, 1, 2}, { }, {3, 4}};6.对二维数组a进行如下初始化:int a[ ][3]={0 , 1 , 2 , 3 , 4 , 5};则a[1][1]的值是_。

(2分)A.0B.3C.4D.17.下面程序段的运行结果是_。

(2分)#include<stdio.h>int main( ){int i , x[3][3] = {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9} ;for( i = 0 ; i < 3 ; i++ )printf( "%2d" , x[i][2-i] ) ;return 0 ;}A.1 5 9B.1 4 7C.3 5 7D.3 6 98.以下对数组s的初始化,错误的是_。

第06章 数组补充练习题答案

第06章 数组补充练习题答案
arg1=sun1/4.0;
arg2=sun2/4.0;
cout<<'\t'<<sun0<<'\t'<<setw(8)<<sun1<<'\t'<<setw(6)<<sun2<<'\n';
cout<<'\t'<<arg0<<'\t'<<setw(8)<<arg1<<'\t'<<setw(6)<<arg2<<'\n';
cout<<y[i]<<'\t';
cout<<endl;
reverse(y,sizeof(y)/sizeof(float));
cout<<"输出逆序实型数组:\n";
for( i=0;i<sizeof(y)/sizeof(float);i++)
cout<<y[i]<<'\t';
cout<<endl;
void rotate(Matrix);
void main()
{
Matrix m={11,22,33,44,55,66,77,88,99};
print(m);
rotate(m);
print(m);
}
void print(Matrix a)
for(j=i;y[j];j++)y[j]=y[j+1];

习题答案(第六章)

习题答案(第六章)

1、R n 中分量满足下列条件的全体向量1(,,)n x x 的集合,是否构成R n的子空间?①10n x x ++=;②120n x x x ⋅⋅⋅=;③2211n x x ++=。

解:①是,设(){}111,,|0n n V x x x x =++=,显然V 1≠∅,1,,,a b F V ξη∀∈∀∈,设1212(,,),(,,)x x y y ξη==,则()()()1111,,,,,,n n n n a b a x x b y y ax by ax by ξη+=+=++,而1111()()()()000n n n n ax by ax by a x x b y y a b ++++=+++++=+=所以1a b V ξη+∈,所以V 1是R n 的子空间; ②不是,取(1,0,,0),(0,1,,1)αβ==,则(){}11,,,|0n n V x x x x αβ∈=⋅⋅=,但(1,1,,1)V αβ+=∉,所以V 不是R n 的子空间;③不是,取(1,0,,0),(0,1,0,,0)αβ==,则(){}2211,,,|1n n V x x x x αβ∈=++=,但(1,1,0,,0)V αβ+=∉,所以V 不是R n 的子空间。

2、子集{}1|,,V X AX XB A B n ==为已知的阶矩阵是否是()n M F 的子集?解:是()n M F 的子集;证:显然1V ≠∅,1,,,X Y V a b F ∀∈∈,有()()A aX bY aAX bAY aXB bYB aX bY B +=+=+=+,所以1aX bY V +∈,所以1V 是()n M F 的子集。

3、设12(1,0,1,0),(1,1,2,0)αα==-,求含12,αα的R 4的一组基。

解:因为101010101010112001100010⎛⎫⎛⎫⎛⎫→→⎪ ⎪ ⎪---⎝⎭⎝⎭⎝⎭,取34(0,0,1,0),(0,0,0,1)αα==,所以{}1234,,,αααα为R 4的一组基。

练习题-第六章_数组(有答案)

练习题-第六章_数组(有答案)

一、填空题1.在C语言中,二维数组元素在内存中的存放顺序是。

2.定义了二维数组:int array[4][5],该数组所占的内存空间为______字节。

3.假设有整型数组array[100][100],其中第66行,第66列元素array[66][66]在数组中排列的位置(位置从1开始算起)为6566 。

4.若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[2][1]得到的初值是________。

5.下面的程序段的运行结果是____he_____。

char x[ ]=“the teacher”;int i =0;while(x[++i] != ’\0’)if(x[i-1] = = ‘t’) printf(“%c”,x[i]);二、单项选择题1.下面程序( B )(每行程序前面的数字表示行号)。

1 main( )2 { float a[10]={0.0};3 int i;4 for(i=0;i<3;i++) scanf(“%d”,&a[i]);5 for(i=1;i<10;i++) a[0]=a[0]+a[i];6 printf(“%f\n”,a[0]);7 }A)没有错误B)第2行有错误C)第4行有错误D)第6行有错误2.下面程序中有错误的行是(D)(每行程序前面的数字表示行号)。

1main( )2{3int a[3]={1};4int i;5scanf(“%d”,&a);6for(i=1;i<3;i++) a[0]=a[0]+a[i];7printf(“a[0]=%d\n”,a[0]);}A. 3B. 6C. 7D. 53.以下不能对二维数组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};4.对两个数组a和b进行初始化char a[ ] =“ABCDEF”;char b[ ] = {‘A’,‘B’,‘C’,‘D’,‘E’,‘F’};则以下叙述正确的是(D )。

c语言练习题6(数组与链表,有答案)

c语言练习题6(数组与链表,有答案)

1、(1)数据结构中,与所使用的计算机无关的是数据的_C_______。

A)存储结构B)物理结构C)逻辑结构D)物理和存储结构评析:数据结构概念一般包括3个方面的内容,数据的逻辑结构、存储结构及数据上的运算集合。

数据的逻辑结构只抽象的反映数据元素之间的逻辑关系,而不管它在计算机中的存储表示形式。

2、栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是____D____。

A)ABCED B)DBCEA C)CDABE D)DCBEA评析:栈操作原则上“后进先出”,栈底至栈顶依次存放元素A、B、c、D,则表明这4个元素中D是最后进栈,B、c处于中间,A最早进栈。

所以出栈时一定是先出D,再出c,最后出A。

3、线性表的顺序存储结构和线性表的链式存储结构分别是____B____。

A)顺序存取的存储结构、随机存取的存储结构B)随机存取的存储结构、顺序存取的存储结构C)随机存取的存储结构、随机存取的存储结构D)任意存取的存储结构、任意存取的存储结构评析:顺序存储结构中,数据元素存放在一组地址连续的存储单元中,每个数据元素地址可通过公式LOC(ai)。

LOC(a1)+(i-1)L计算得到,从而实现了随机存取。

对于链式存储结构,要对某结点进行存取,都得从链的头指针指向的结点开始,这是一种顺序存取的存储结构。

4、在单链表中,增加头结点的目的是____A__。

A)方便运算的实现B)使单链表至少有一个结点C)标识表结点中首结点的位置D)说明单链表是线性表的链式存储实现评析:头结点不仅标识了表中首结点的位置,而且根据单链表(包含头结点)的结构,只要掌握了表头,就能够访问整个链表,因此增加头结点目的是为了便于运算的实现。

5、数据处理的最小单位是___C_____。

A)数据B)数据元素C)数据项D)数据结构评析:数据处理的最小单位是数据项;由若干数据项组成数据元素;而数据是指能够被计算机识别、存储和加工处理的信息载体;数据结构是指数据之间的相互关系和数据运算。

C++中国大学MOOC第6章作业数组答案

C++中国大学MOOC第6章作业数组答案

中国大学慕课spoc第六章C++数组答案1最大值(100分)问题描述先输入一个正整数n(1到20之间),再输入n个整数,计算其中的最大值和相应下标。

输入描述先输入要处理的整数的个数n(1<=n<=20),再输入n个整数,并用空格分开。

输出描述依次输出n个整数中的最大值和相应下标(若多个整数与最大值相同,则从小到大输出相应下标),之间用空格分隔。

输入样例154 6 7 2 5输出样例17 2输入样例254 6 7 2 7输出样例27 2 4#include <bits/stdc++.h>using namespace std;int main(){int n,i,j,a[20],max;cin>>n;for(i=0;i<n;i++){cin>>a[i];}max=a[0];for(i=0;i<n;i++){if(max<a[i])max=a[i];}cout<<max;for(i=0;i<n;i++){if(a[i]==max){cout<<" "<<i;}}}2峰值个数(100分)问题描述先输入一个正整数n(3到20之间),再输入n个整数,计算其中的峰值个数。

峰值是满足大于或小于左右两个元素的元素,例如12,45,32,0,14,25,62,48,51序列中,峰值有45,0,62,48,峰值个数为4。

输入描述先输入要处理的整数的个数n(3<=n<=20),再输入n个整数,并用空格分开。

输出描述一个整数,表示n个整数中有多少个峰值。

输入样例54 6 7 2 5输出样例2#include <bits/stdc++.h>using namespace std;int main(){int n,i,a[20],j=0;cin>>n;for(i=0;i<n;i++){cin>>a[i];}for(i=1;i<n-1;i++){if((a[i]>a[i-1]&&a[i]>a[i+1])||(a[i]<a[i-1]&&a[i]<a[i+1]))j++;}cout<<j;}3互为相反数(100分)问题描述先输入一个正整数n(2到20之间),再输入n个数(可重复,可为浮点数),计算其中有多少对互为相反数(仅有符号不同的两数互为相反数)。

第六~八章 概念练习题-附参考答案

第六~八章 概念练习题-附参考答案

第六~第八章基本概念练习题第6章数组一、选择题。

1. 以下对一维数组a的正确定义是:A)char a(10);B) int a[];C)int k=5,a[k];D)char a[3]={‘a’,’b’,’c’};2.以下能对一维数组a进行初始化的语句是: ( )A. int a[5]=(0,1,2,3,4,)B. int a(5)={}C. int a[3]={0,1,2}D. int a{5}={10*1}3.在C语言中对一维整型数组的正确定义为。

A)int a(10); B)int n=10,a[n];C)int n;a[n]; D)#define N 10int a[N];4. 若二维数组a有m列,则在a[i][j]之前的元素个数为A. j*m+iB. i*m+jC. i*m+j-1D. i*m+j+1实用文档*5. 下列说法中错误的是A 构成数组的所有元素的数据类型必须是相同的B 用指针法引用数组元素允许数组元素的下标越界C 一维数组元素的下标依次是1、2、3……D 定义数组时的长度可以是整型常量表达式6. 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是A) 3 B) 6 C) 10 D) 207.若有说明:int a[][3]={{1,2,3},{4,5},{6,7}}; 则数组a的第一维的大小为: ( )A. 2B. 3C. 4D.无确定值8.以下定义语句中,错误的是( )A) int a[]={1,2}; B) char *a;C) char s[10]=“test”; D) int n=5,a[n];实用文档9.下面程序段的输出结果是: ( )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]);实用文档二.分析题。

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、下面程序的功能是从键盘输入一行字符,统计其中有多少单词。

数组练习题及答案

数组练习题及答案

数组练习题及答案问题1:数组的基本操作题目:编写一个程序,实现以下功能:1. 初始化一个整型数组,大小为10,所有元素初始化为0。

2. 将数组中的元素依次设置为1到10。

3. 输出数组中的所有元素。

答案:```c#include <stdio.h>int main() {int arr[10] = {0};for (int i = 0; i < 10; i++) {arr[i] = i + 1;}for (int i = 0; i < 10; i++) {printf("%d ", arr[i]);}return 0;}```问题2:数组的反转题目:编写一个函数,实现对整数数组的反转。

答案:```cvoid reverseArray(int arr[], int size) {int start = 0;int end = size - 1;while (start < end) {int temp = arr[start];arr[start] = arr[end];arr[end] = temp;start++;end--;}}```问题3:数组的查找题目:编写一个函数,实现在数组中查找特定元素的索引,如果找到返回该元素的索引,如果未找到返回-1。

答案:```cint findElement(int arr[], int size, int element) {for (int i = 0; i < size; i++) {if (arr[i] == element) {return i;}return -1;}```问题4:数组的排序题目:使用冒泡排序算法对整数数组进行排序。

答案:```cvoid bubbleSort(int arr[], int size) {for (int i = 0; i < size - 1; i++) {for (int j = 0; j < size - i - 1; j++) {if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}}```问题5:数组的动态扩展题目:编写一个函数,实现对数组的动态扩展,使其能够存储更多的答案:```cvoid dynamicArrayExpansion(int *arr, int *size, int capacity, int newElement) {if (*size >= capacity) {int newCapacity = capacity * 2;int *newArr = (int *)malloc(newCapacity *sizeof(int));for (int i = 0; i < *size; i++) {newArr[i] = arr[i];}free(arr);arr = newArr;capacity = newCapacity;}arr[(*size)++] = newElement;}```结束语:这些练习题涵盖了数组的基本操作、查找、排序和动态扩展等常见问题,希望能够帮助您更好地理解和掌握数组的使用。

第6章 数组 课后答案【khdaw_lxywyl】

第6章 数组 课后答案【khdaw_lxywyl】

第6章 数组习题参考答案6-1 请同学上机运行代码。

6-2Option Explicit Option Base 1Private Sub Command1_Click() Dim i As Integer, t As Integer Dim a(15) As Integer Randomize For i = 1 To 15a(i) = Int(100 * Rnd) Text1 = Text1 & Str(a(i)) Next i For i = 1 To 7 t = a(i)a(i) = a(16 - i) a(16 - i) = t Next i For i = 1 To 15 Text2 = Text2 & Str(a(i)) Next i End SubPrivate Sub Command2_Click() Text1 = "" Text2 = "" End SubPrivate Sub Command3_Click() End End Sub 6-3w w w .k h da w .c o m课后答案网Option ExplicitDim a(20) As IntegerPrivate Sub Command1_Click() Dim i As Integer Randomize For i = 1 To 20 a(i) = Int(90 * Rnd) + 10 Text1 = Text1 & Str(a(i)) Next i End SubPrivate Sub Command2_Click()Dim i As Integer, j As Integer, f As Boolean Dim n As Integer For i = 1 To 20 f = TrueFor j = i + 1 To 20If a(i) = a(j) Then f = False Next j If f = True Then n = n + 1 Next i Text2 = n End SubPrivate Sub Command3_Click() Text1 = "" End SubPrivate Sub Command4_Click() End End Sub 6-4w w w .k h da w .c o m课后答案网Option ExplicitDim a(20) As IntegerPrivate Sub Command1_Click() Dim i As Integer Randomize For i = 1 To 20 a(i) = Int(90 * Rnd) + 10 Text1 = Text1 & Str(a(i)) Next i End SubPrivate Sub Command2_Click()Dim i As Integer, j As Integer, max As Integer Dim n As Integer, w As Integer, p As Integer For i = 1 To 20 n = 0: p = i For j = 1 To 4If i > 20 Then p = p - 20 n = n + a(p) Next jIf n > max Then max = n w = i End If Next i Text2 = maxPicture1.Print w & "--" & w + 4 End SubPrivate Sub Command3_Click() Text1 = "" End SubPrivate Sub Command4_Click() End End Sub 6-5w w w .k h da w .c o m课后答案网Dim a(5, 5) As IntegerPrivate Sub Command1_Click() For i = 1 To 4 For j = 1 To 5a(i, j) = Int(9 * Rnd) + 1 Picture1.Print a(i, j); Next jPicture1.Print Next i End SubPrivate Sub Command2_Click() For j = 1 To 5 s = 0 For i = 1 To 4 s = s + a(i, j) Next i Text1 = Text1 & Str(s) Next j End SubPrivate Sub Command3_Click() For i = 1 To 4 s = 0 For j = 1 To 5 s = s + a(i, j) Next jText2 = Text2 & Str(s) & Chr(13) & Chr(10)w w w .k h da w .c o m课后答案网End SubPrivate Sub Command4_Click() Text1 = "" Text2 = "" Picture1.Cls End SubPrivate Sub Command5_Click() End End Sub 6-6Option ExplicitPrivate Sub Command1_Click()Dim a(5, 5), i As Integer, j As IntegerDim n As Integer, m As Integer, t As Integer Randomize For i = 1 To 5For j = 1 To 5 - 1a(i, j) = Int(40 * Rnd) * 2 + 10 Next j Next i For i = 1 To 5For j = 5 To 6 - i Step -1a(i, j) = Int(40 * Rnd) * 2 + 11 Next j Next i For i = 1 To 5 For j = 1 To 5 Text1 = Text1 & Str(a(i, j)) Next j Text1 = Text1 & vbCrLfw w w .k h da w .c o m课后答案网End Sub6-7 同6-4 6-8Dim a(5, 5) As IntegerPrivate Sub Command1_Click() Randomize For i = 1 To 5 For j = 1 To 5a(i, j) = Int(100 * Rnd) + 1 Picture1.Print Right(" " & a(i, j), 4); Next jPicture1.Print Next i End SubPrivate Sub Command2_Click() For i = 1 To 5 For j = 1 To 5 s = s + a(i, j) Next j Next iText1 = Str(s) End SubPrivate Sub Command3_Click() For i = 1 To 5 For j = 1 To 5If i = 1 Or j = 1 Or i = 5 Or j = 5 Thenw w w .k h da w .c o m课后答案网s = s + a(i, j) End If Next j Next iText2 = Str(s) End SubPrivate Sub Command4_Click() For i = 1 To 5 For j = 1 To 5If i = j Or j = 6 - i Then s = s + a(i, j) End If Next j Next iText3 = Str(s) End Sub 6-9Option ExplicitPrivate Sub Command1_Click()Dim a() As Integer, i As Integer, j As Integer Dim max As Integer, k As Integer, f As Boolean Dim n As Integer, m As Integer, t As Integer n = InputBox("输入矩阵的行数:") m = InputBox("输入矩阵的列数:") ReDim a(n, m) Randomize For i = 1 To nFor j = 1 To ma(i, j) = Int(90 * Rnd) + 10 Text1 = Text1 & Str(a(i, j))w w w .k h da w.c o m课后答案网Next j Text1 = Text1 & vbCrLf Next i For i = 1 To n max = 0For j = 1 To mIf a(i, j) > max Then max = a(i, j) t = j End If Next j For k = 1 To nIf a(k, t) < max Then Exit For Next kIf k > n ThenPicture1.Print "鞍点:"; a(i, t); "第"; i; "行"; t; "列" f = True End If Next iIf f = False Then Picture1.Print "没有鞍点" End SubPrivate Sub Command2_Click() Text1 = "" Picture1.Cls End SubPrivate Sub Command3_Click() End End Sub 6-10Option Explicitw w w .k h da w .c o m课后答案网Private Sub Form_Click()Dim a() As Integer, n As Integer Dim i As Integer, j As Integer n = InputBox("层数") ReDim a(n, n) For i = 1 To n Print Tab(20 - 2 * i); For j = 1 To iIf i = 1 Or i = j Then a(i, j) = 1 Elsea(i, j) = a(i - 1, j - 1) + a(i - 1, j) End IfPrint Left(a(i, j) & " ", 4); Next j PrintNext i End Sub 6-11Option ExplicitPrivate Sub Command1_Click()Dim a(4, 5), i As Integer, j As IntegerDim b(4) As Integer, max As Integer, min As Integer Dim n As Integer, m As Integer, t As Integer Randomizemax = 0: min = 32767 For i = 1 To 4 For j = 1 To 5a(i, j) = Int(90 * Rnd) + 10 Text1 = Text1 & Str(a(i, j)) b(i) = b(i) + a(i, j)w w w .k h da w.c o m课后答案网Text1 = Text1 & vbCrLf If max < b(i) Then max = b(i): m = i ElseIf min > b(i) Then min = b(i): n = i End If Next iLabel1.Caption = "max 行和: " & max & " min 行和 :" & min & vbCrLf & "max 行: " & m & " min 行: " & n & " 交换这两行" For j = 1 To 5 t = a(m, j)a(m, j) = a(n, j) a(n, j) = t Next j For i = 1 To 4 For j = 1 To 5 Text2 = Text2 & Str(a(i, j)) Next j Text2 = Text2 & vbCrLf Next i End Sub 6-12Option ExplicitPrivate Sub Command1_Click()Dim a(), i As Integer, j As IntegerDim b(4) As Integer, max As Integer, min As Integer Dim n As Integer, m As Integer, t As Integer Randomize n = InputBox("矩阵阶数n:") ReDim a(n, n)w w w .k h da w .c om课后答案网For j = 1 To na(i, j) = Int(90 * Rnd) + 10 Text1 = Text1 & Str(a(i, j)) Next j Text1 = Text1 & vbCrLf Next i For i = 1 To n For j = 1 To n Text2 = Text2 & Str(a(j, i)) Next j Text2 = Text2 & vbCrLf Next i End SubPrivate Sub Command2_Click() Text1 = "" Text2 = "" End SubPrivate Sub Command3_Click() End End Sub 6-13Option Explicit Option 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 Integer Dim n As Integer, m As Integer Randomize For i = 1 To 3w w w .k h da w.c o m课后答案网For j = 1 To 3a(i, j) = Int(90 * Rnd) + 10 Text1 = Text1 & Str(a(i, j)) Next j Text1 = Text1 & vbCrLf Next iFor i = 1 To 3 '主对角线方向 m = i k = 1For j = 1 To 3k = k * a(m, j) m = m + 1If m > 3 Then m = 1 Next jIf k > max Then max = k n = i f = 1 End If Next iFor i = 1 To 3 '辅对角线方向 m = i k = 1For j = 1 To 3k = k * a(j, m) m = m - 1If m < 1 Then m = 3 Next jIf k > max Then max = k n = i f = 2 End If Next iPicture1.Print "最大组元素:" If f = 1 ThenFor i = 1 To 2Picture1.Print "a("; n; ","; i; ")="; a(n, i); " "; n = n + 1 If n > 3 Then n = 1 Next iPicture1.Print "a("; n; ","; i; ")="; a(n, i) ElseIf f = 2 Then For i = 1 To 2w w w .k h da w .c o m课后答案网Picture1.Print "a("; i; ","; n; ")="; a(i, n); " "; n = n - 1 If n < 1 Then n = 3 Next iPicture1.Print "a("; i; ","; n; ")="; a(i, n) End IfPicture1.Print "乘积="; max End SubPrivate Sub Command2_Click() Text1 = "" Picture1.Cls End SubPrivate Sub Command3_Click() End End Sub 6-14Option ExplicitPrivate Sub Command1_Click()Dim a(3, 3) As Integer, i As Integer, j As Integer Dim k As Integeri = 3: j = 2: a(i, j) = 1: k = 1 Do Until k > 9 k = k + 1If i + 1 > 3 And j + 1 <= 3 Then i = 1: j = j + 1ElseIf i + 1 <= 3 And j + 1 > 3 Thenw w w .k h da w .c o m课后答案网i = i + 1: j = 1ElseIf i + 1 > 3 And j + 1 > 3 Then i = i - 1ElseIf i + 1 <= 3 And j + 1 <= 3 And a(i + 1, j + 1) <> 0 Then i = i - 1 Elsei = i + 1: j = j + 1 End If a(i, j) = k Loop For i = 1 To 3 For j = 1 To 3Picture1.Print a(i, j); Next jPicture1.Print Next i End SubPrivate Sub Command2_Click()Dim a() As Integer, i As Integer, j As Integer Dim k As Integer Dim n As Integer n = InputBox("幻方阶数:") ReDim a(n, n)i = n: j = (n + 1) / 2: a(i, j) = 1: k = 1 Do Until k > n * n k = k + 1If i + 1 > n And j + 1 <= n Then i = 1: j = j + 1ElseIf i + 1 <= n And j + 1 > n Then i = i + 1: j = 1ElseIf i + 1 > n And j + 1 > n Then i = i - 1ElseIf i + 1 <= n And j + 1 <= n And a(i + 1, j + 1) <> 0 Then i = i - 1 Elsei = i + 1: j = j + 1 End If a(i, j) = k Loop For i = 1 To n For j = 1 To nPicture1.Print Right(" " & a(i, j), 4); Next jPicture1.Printw w w .k h da w .c o m课后答案网Next i End Sub 6-15Option Explicit Option Base 1Private Sub Command1_Click()Dim a() As Integer, i As Integer, j As Integer Dim max As Long, k As Long, f As Integer Dim n As Integer, m As Integer Randomize f = InputBox("输入方阵阶数:") ReDim a(f, f) For i = 1 To f For j = 1 To fa(i, j) = Int(90 * Rnd) + 10 Text1 = Text1 & Str(a(i, j)) Next j Text1 = Text1 & vbCrLf Next iFor i = 1 To f '副对角线方向 m = i k = 0For j = 1 To fk = k + a(j, m) m = m - 1If m < 1 Then m = f Next jIf k > max Then max = k n = iw w w .k h da w .c o m课后答案网End If Next iPicture1.Print "max :"; max For i = 1 To fPicture1.Print "a("; i; ","; n; ")="; a(i, n) n = n - 1If n < 1 Then n = f Next i End SubPrivate Sub Command2_Click() Text1 = "" Picture1.Cls End SubPrivate Sub Command3_Click() End End Subw w w .k h da w .c o m课后答案网。

数组习题及答案

数组习题及答案

构造数据对象——数组一、填空题1.数组是一组相同的集合。

2.数组名代表数组的。

3.数组元素在数组中的位置序号称为它是从开始整数。

4.有int a[ ]={4,6,2,12,435,-9,76,0,0};该数组元素值最大的下标为。

5.定义数组tw,其能存储23个长整形数的语句为。

6.有说明语句int a[10]={1,2,3,4,5,6};则元素a[9]的值为。

7.数组char c[ ]=”abcd”中有个元素,最后一个元素是。

8.”a”在内存中占个存储单元。

9.定义一个能存放下字符串Vocation的字符数组enm的语句为。

10.定义一个可保存100个整型数的数组pn,并把每个元素初值设为0的语句是。

11.与puts(ss)等价的printf函数调用是。

二、选择题1.下面关于数组的说法,不正确的是()A.数组总为一个整体,可以参加算术运算B.数组中的数组元素相当于一个简单变量C.数组可以用来保存字符串D.数组是一组连续的,类型相同的数据集合2.下列说法不是数组特性的是()A.数组元素类型相同B.数组长度固定C.数组占用连续的内存空间D.数组可作为一个整体参与运算3.定义一个具有8个元素的整形数组,应使用语句()A.int a[8]; B.int a[2,4];C.int a[ ]; D.int *a[8];4. 以下能正确定义一维数组的选项是()A.int num[ ];B.#define N 100 int num[N];C.int num[0..100];D.int N=100;5.下面对s的初始化,不正确的是()A.char s[5]={“abcd”};B.char s[5]={‘a’,’b’,’c’};C.char s[5]=””;D.char s[5]=”abcd”;6.对以下说明语句正确的理解是()int a[10]={6,7,8,9,10,12};A.将6个初值依次赋值给a[1]至a[5];B.将6个初值依次赋值给a[0]至a[5];C.将6个初值依次赋值给a[5]至a[10];D.因数组长度和初值的个数不同,所以此语句不正确7.用scanf语句为数组a中的第二个数组元素输入数据,格式正确的是()A.scanf(“%d”,a[2]);B.scanf(“%d”,&a[2]);C.scanf(“%d”,&a[1]);D.scanf(“%d”,a(1));三、判断题1.数组在内存中占用的空间是不连续的。

第 6 章 数组补充练习

第 6 章 数组补充练习

第六章数组资料来源:/一、选择题:1. 在c语言中,一维数组的定义方式为:类型说明符数组名()。

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. 若有说明:int a[10];则对a数组元素的正确引用是。

A. a[10]B. a[3.5]C. a(5)D. a[10-10]5. 以下能对一维数组a进行不正确初始化的语句是()A.int a[]={0};B.int a[10]={0,0,0,0};C.int a[10]={};D.int a[10]={10*1};6. 对以下说明语句的正确理解是。

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. 因为数组长度与初值的个数不相同,所以此语句不正确7. 下面程序(每行程序前面的数字表示行号)。

1 main()2 {3 float a[10]={0.0};4 int i;5 for(i=0;i<3;i++) scanf(“%d”,&a[i]);6 for(i=1;i<10;i++) a[0]=a[0]+a[i];7 printf(“%f\n”,a[0]);8 }A. 没有错误B. 第3行有错误C. 第5行有错误D. 第7行有错误8. 下面程序中有错误的行是(每行程序前面的数字表示行号)。

1 main()2 {3 float a[3]={1};4 int i;5 scanf(“%d”,&a) ;6 for(i=1;i<3;i++) a[0]=a[0]+a[i];7 printf(“a[0]=%d\n”,a[0]);8 }A. 3B. 6C. 7D. 59. 定义如下变量和数组:int k;int a[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是。

C语言习题六(数组部分)习题及答案

C语言习题六(数组部分)习题及答案

C语言习题六(数组部分)习题及答案习题六一.选择题1.在C语言中,引用数组元素时,其数组下标的数据类型允许是c 。

A)整型常量B)整型表达式C)整型常量或整型表达式C)任何类型的表达式2.以下对一维整型数组a的正确说明是DA)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.若有定义:int a[10],则对数组a元素的正确引用是 D 。

A)a[10] B)a[3.5] C)a(5) D)a[10-10]4.以下不能对一维数组a进行正确初始化的语句是B 。

A)int a[10]={0,0,0,0,0}; B)int a[10]={} ;C)int a[ ] = {0} ; D)int a[10]={10*1} ;5.若有定义:int a[3][4],则对数组a元素的正确引用是。

AA)a[2][3] B)a[1,3] C)a(5) D)a[10-10]6.以下能对二维数组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}} ;7.以下不能对二维数组a进行正确初始化的语句是。

CA)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} ;8.若有说明:int a[3][4]={0};则下面正确的叙述是D。

A)只有元素a[0][0]可得到初值0B)此说明语句不正确C)数组a中各元素都可得到初值,但其值不一定为0D)数组a中每个元素均可得到初值09.若有说明:int a[][4]={0,0};则下面不正确的叙述是D。

河南理工大学C语言课后习题答案精解第六章

河南理工大学C语言课后习题答案精解第六章

a[1][1] a[1][2] a[1][3] 1 0 -1
a[2][1] a[2][2] a[2][3] 2 1 0
a[3][1] a[3][2] a[3][3]
0 1 2
0 1
0
第六章 数组
2. 写出程序的运行结果
(4) 程序四:
#include <stdio.h> main( ) { int i, s; i的ASCII码为105 char s1[100], s2[100]; printf(“input string1:\n”); n的ASCII码为110 gets(s1); printf(“input string2:\n”); gets(s2); s=-5 i=0; while((s1[i]==s2[i]) && (s1[i]!=„\0‟)) i++; if((s1[i] ==„\0‟) && (s2[i]==„\0‟)) s=0; 输入数据: aid else s=s1[i]-s2[i]; printf(“%d\n”,s); and }
B.a[a[4]]
C. a[a[3]]
D. a[a[5]]
第六章 数组
1. 选择题 (6) 要求定义包含8个int类型元素的一维数组,以下错误的定义 语句是 A A. int N=8; B. #define N 3 int a[N]; int a[2*N+2]; C. int a[ ]={0,1,2,3,4,5,6,7} D. int a[1+7]={0}
第六章 数组
3. 程序填空 (3)把一个整数转换成 #include <stdio.h> #define M 80 void main() { long int n=1234567; char s[M]; int j=0; while ( n!=0 ) { s[j]= n%10+’0’; n/=10; j++; } s[j]='\0' ; printf("\n%s",s); }

第6章-数组和字符串-练习题

第6章-数组和字符串-练习题

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

一、填空题
1.在C语言中,二维数组元素在内存中的存放顺序是。

2.定义了二维数组:int array[4][5],该数组所占的内存空间为______字节。

3.假设有整型数组array[100][100],其中第66行,第66列元素array[66][66]在数
组中排列的位置(位置从1开始算起)为6566 。

4.若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[2][1]得到的初值是
________。

5.下面的程序段的运行结果是____he_____。

char x[ ]=“the teacher”;
int i =0;
while(x[++i] != ’\0’)
if(x[i-1] = = ‘t’) printf(“%c”,x[i]);
二、单项选择题
1.下面程序( B )(每行程序前面的数字表示行号)。

1 main( )
2 { float a[10]={0.0};
3 int i;
4 for(i=0;i<3;i++) scanf(“%d”,&a[i]);
5 for(i=1;i<10;i++) a[0]=a[0]+a[i];
6 printf(“%f\n”,a[0]);
7 }
A)没有错误B)第2行有错误
C)第4行有错误D)第6行有错误
2.下面程序中有错误的行是(D)(每行程序前面的数字表示行号)。

1main( )
2{
3int a[3]={1};
4int i;
5scanf(“%d”,&a);
6for(i=1;i<3;i++) a[0]=a[0]+a[i];
7printf(“a[0]=%d\n”,a[0]);
}
A. 3
B. 6
C. 7
D. 5
3.以下不能对二维数组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};
4.对两个数组a和b进行初始化
char a[ ] =“ABCDEF”;
char b[ ] = {‘A’,‘B’,‘C’,‘D’,‘E’,‘F’};
则以下叙述正确的是(D )。

A. a与b数组完全相同
B. a与b长度相同
C. a和b中都存放字符串
D. a数组比b数组长度长
5.判断字符串s1是否大于字符串s2,应当使用( D )。

A. if ( s1 > s2 )
B. if (strcmp (s1 , s2 ))
C. if ( strcmp (s2 , s1 ) > 0 )
D. if (strcmp (s1 , s2 ) > 0 )
6.当运行以下程序时,从键盘输入:AhaMA□Aha ↙(□代表空格,↙代表回车),
则下面程序的运行结果是( )。

#include “stdio.h”
main( )
{ char s[80], c = ‟a‟;
int i = 0;
scanf(“%s”,s);
while(s[i] != ‟\0‟)
{ if(s[i] = = c ) s[i] = s[i] - 32;
else if (s[i] = = c-32) s[i] = s[i] + 32;
i++;
}
puts(s);
}
A. ahAMa
B. AhAMa
C. AhAMa□ahA
D. ahAMa□ahA
7.下面程序段是输出两个字符串中对应相等的字符。

请选择填空。

char x[]=“programming”;
char y[]=“Fortran”;
int i=0;
while(x[i]!= …\0‟&&y[i]!= …\0‟)
if(x[i]==y[i]) printf(“%c”, ( A ) );
else i++;
A. x[i++]
B. y[++i]
C. x[i]
D. y[i]
三、判断题
1.有二维数组int a[100][100],数组元素a[100][100]的存储位置为10001。

( F )
2.为了增加程序的通用性,定义数组时,最好用变量说明其长度。

如:int n; int arr[n];
( F )
3.字符个数多的字符串一定比字符个数少的字符串大。

(F)
4.下面程序运行的结果为“OK!”。

( F )
char s1[100] = {“abcde”}; char s2[100] = { “abcde” };
if(s1= = s2) printf( “ OK! ”) else printf(“No! ”);
四、填程序
1.设数组a包括10个整型元素。

下面程序的功能是求出a中各相邻两个元素的和,并将
这些和存在数组b中,按每行3个元素的形式输出。

请填空。

main( )
{ int a[10],b[10],i;
for(i=0;i<10;i++)
scanf(“%d”,&a[i]);
for( i=1 ;i<10;i++)
a[i]=a[i-1]+a[i];
for(i=1;i<10;i++)
{ printf(“%3d”,b[i]);
if(i%3 == 0) printf(“\n”);
}
}
2.下面程序的功能是求出矩阵x的右上三角元素之积。

其中矩阵x的行、列数和元素值均
由键盘输入。

请填空。

#define M 10
main( )
{ int x[M][M];
int n,i,j;
long s=1;
printf(“Enter a integer(<=10):\n”);
scanf(“%d”,&n);
printf(“Enter %d data on each line for the array x\n”,n);
for( i=0;i<n;i++ )
for(j=0;j<n;j++)
scanf(“%d”,&x[i][j]);
for(i=0;i<n;i++)
for( j=i ;j<n;j++)
s*=x[i][j];
printf(“\n%ld\n”,s);
}
五、编程题:
1.利用顺序查找法从数组a的10个元素中对关键字m进行查找。

要求从键盘输入数组元
素以及要查找的数据值。

(顺序查找法的思路是:从第一个元素开始,从前向后依次与关键字比较,直到找到此元素或查找到数组尾部时结束。

若找到,则查找成功;若直至最后一个元素都不相等,则查找失败。


2.从键盘输入两个字符串a和b,要求不用库函数strcat把串b的前五个字符连接到串a
中;如果b的长度小于5,则把b的所有元素都连接到a中。

试编程。

相关文档
最新文档