第6章 数组同步练习

合集下载

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

第6章 数组习题参考答案

第6章 数组习题参考答案

第六章数组习题参考答案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。

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六章课后习题

第六章数组1 下面程序的功能是计算1至50中是7的倍数的数值之和,请选择填空在C语言中,引用数组元素时,其数组下标的数据类型允许是C_。

整型常量整型常量或整型表达式整型表达式任何类型的表达式2 以下对一维整型数组a的正确说明是DA inta(10);C int n;scanf(“%d”,&n);int a[n];B intn=10,a[n];D)#define SIZE 10Int a[SIZE];3 若有说明:int a[10];则对a数组元素的正确引用是Da[10」a[3.5]a(5)a[10一10]4 在C语言中,一维数组的定义方式为:类型说明符数组名A_;A)[常量表达式]B)[整型表达式]C)[整型常量]或[整型表达式]D)[整型常量]5 以下能对一维数组a进行正确初始化的语句是CA)int a[10]=(0,0,0,0,0); B)int a[10]={};C)int a[]= {0}; D)int a[10]={10*1};6 以下对二维数组a的正确说明是CA)int a[3][]; B)float a(3,4);C)double a[1][4]; D)float a(3)(4)7若有说明:int a[3][4];则对a 数组元素的正确引用是_CA)a[2][4] B)a[1.3] C)a[1+I][0] D)a(2)(1)8 若有说明:int a [3][4];则对a数组元素的非法引用是D_。

A)a[0][2*1] B)a[1][3]C)[1+1][0]9 以下能对二维数组a进行正确初始化的语句是_B。

int a[2][]={{1,0,1),{5,2,3}};int a[][3]={{1,2,3},{4,5,6}};int a[2][4]={1,2,3},{4,5},{6}};inta[][3]={{1,0,i}{},{1,1}};10 以下不能对二维数组a进行正确初始化的语句是CA)inta[2][3]={0};B)inta[][3]={{1,2},{0}};C)inta[2][3〕={{1,2},{3,4},{5,6}};D)inta[][3]={1,2,3,4,5,6};11 若有说明:int a[3][4}=(0];则下面正确的叙述是D只有元素a[0][0]可得到初值0此说明语句不正确数组中各元素都可得到初值,但其值不一定为0数组中每个元素均可得到初值012 若有说明:int a[][4]={0,0};则下面不正确的叙述是_D。

课后习题 第六章 数组与字符串

课后习题 第六章 数组与字符串
3. 写统计输入的正文中有多少单词的程序,这里的单词指的是用空白符分隔开的字符串。 #include <stdio.h> void main() { int c,n; bool inword; n = 0; inword = false; while((c = getchar()) != EOF) if(c == ' '||c == '\t'||c == '\n') inword = false; else if(inword == false) { inword = true; n ++;
cout பைடு நூலகம்< "输入的矩阵为:" << endl; for(i=0; i<3; i++) {
for (j=0; j<3; j++) cout << data[i][j] << " "; cout << endl;
} move(data); cout << "转置后的矩阵为:" << endl; for(i=0; i<3; i++) {
一:选择题 1. 要声明一个有 10 个 int 型元素的数组,正确的语句是____。 a. int a[10];
b. int a[2,5];
c. int a[]; d. int *a[10]; 2. 合法的数组初始化语句是____。 a. char a = "string";
b. int a[5] = {0,1,2,3,4,5};
5.编程实现对分查找。当数组很大时,循环查找很费时。如果程序已对数组进行升序和降序排序,就可用对分查找。 对分查找是每一次查找操作都把要检查的数值个数对半分。对查找不到的数,输出-1。

第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];

06_JAVA练习题第六章-数组与字符串

06_JAVA练习题第六章-数组与字符串[单选题]1.给出下面程序代码:byte[] a1, a2[];byte a3[][];byte[][] a4;下列数组操作语句中哪一个是不正确的?()A)a2 = a1B)a2 = a3C)a2 = a4D)a3 = a4答案:A解析: 【解析】只有维数相同的数组才能相互赋值。

2.关于数组,下列说法中不正确的是()。

A)数组是最简单的复合数据类型,是一系列数据的集合B)数组元素可以是基本数据类型、对象或其他数组C)定义数组时必须分配内存D)一个数组中所有元素都必须具有相同的数据类型答案:C解析: 【解析】数组元素可以是基本数据类型、对象或其他数组3.设有下列数组定义语句:int a[] = {1, 2, 3};则对此语句的叙述错误的是()。

A)定义了一个名为a 的一维数组B)a 数组有3 个元素C)a 数组元素的下标为1~3D)数组中每个元素的类型都是整数答案:C解析: 【解析】数组元素的下标是从0 开始的。

4.执行语句: int[] x = new int[20]; 后,下面哪个说法是正确的?()A)x[19] 为空B)x[19] 未定义C)x[19] 为0D)x[0] 为空答案:C解析: 【解析】此语句定义了x 数组后, x[0]~x[19] 的值全部为0。

5.下面代码运行后的输出结果为()。

public class X6_1_5 {public static void main(String[] args){ AB aa = new AB();AB bb;bb = aa;System.out.println(bb.equals(aa));}}class AB{ int x = 100; }A)trueB)falseC)编译错误D)100答案:A解析: 【解析】同一个类的两个对象可以相互赋值,赋值后两个对象具有相同的存储空间,因此是相同的。

6.已知有定义: String s="I love" ,下面哪个表达式正确?()A)s += "you";B)char c = s[1];C)int len = s.length;D)String s = s.toLowerCase();答案:A解析: 【解析】字符串对象可以执行“ +=”运算,但不能用s[1]这种方式取其中的字符,也不能用length 求它的长度,可以用length() 求其长度,因此B、C 不正确,不能再次定义s字符串,因此D 不正确。

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

一、填空题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++中国大学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个数(可重复,可为浮点数),计算其中有多少对互为相反数(仅有符号不同的两数互为相反数)。

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

第6章数组同步练习一、选择题:一维数组:1. 假定int类型的变量占用2个字节,若有定义:int x[10]={0,2,4};则数组x在内存中所占字节数是。

A)3 B)6 C)10 D)202. 以下程序的输出结果是。

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)258 B)741 C)852 D)3693. 以下程序的输出结果是。

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)20 B)21 C)22 D)234.以下程序运行时输入为aaaa bbbb<CR>cccc dddd<CR>,则程序的输出结果是。

include<stdio.h>main(){ char s1[10],s2[10],s3[10],s4[10];scanf("%s%s",s1,s2);gets(s3);gets(s4);puts(s1);puts(s2);puts(s3);puts(s4);}A)aaaa B)aaaa C)aaaa D)aaaa bbbbbbbb bbbb bbbb cccccccc dddd ddddcccc dddd dddd dddd cccc5. 以下程序运行后的输出结果是。

void fun(int a[],int i){ a[i]+=i;}void main(){ int a[]={0,0,0,0},i;for(i=0;i<sizeof(a)/sizeof(int);i++)fun(a,i);printf("%d%d%d%d%d%d",a[0],a[1],a[2],a[3],i);}A)00000 B)01203 C)01234 D)编译报错6. 下列语句正确的是。

A)int a[]={1,2,3,4}; B)int a[4]={1,2,3,4,5}; C)int b=4;a[9]={1,2,3,4}; D)int a[4],b;a=&b;7. 以下程序运行后数组a的值是。

void main(){ int a[]={9,3,0,4,8,1,7,2,5,6},i=0,j=9,t;while(i<j){if(a[i]>a[j]){ t=a[i];a[i]=a[j];a[j]=t;}i++;j--;}}A)9,3,0,4,8,1,7,2,5,6 B)0,1,2,3,4,5,6,7,8,9C)6,3,0,4,1,8,7,2,5,9 D)9,8,7,6,5,4,3,2,1,08.以下程序运行后的输出结果是。

main(){ int a[]={19,43,0,54,98,13,57,24,59,26},t1=5000,t2=50; for(i=0;i<5;i++){ if(a[i*2]>=a[i*2+1]){ t1=t1<a[i*2+1]?t1:a[i*2+1];t2=t2>a[i*2]?t2:a[i*2];}else{ t2=t2>a[i*2+1]?t2:a[i*2+1];t1=t1<a[i*2]?t1:a[i*2];}}printf("%d %d",t1,t2);}A)0 50 B)0 98 C)5000 98 D)5000 509. 以下程序运行后的输出结果是。

int fun(int a,int b){ return(a>b?a:b);}main(){ int a[]={1,3,5,4};printf("%d",fun(fun(a[0],a[3]),fun(a[1],a[2])));}A)1 B)3 C)4 D)510. 以下能正确定义一维数组的语句是。

A)int a[4]=01234; B)char a[]="01234"; C)int a[]=01234; D)char a[4]="01234";11.以下程序运行后的输出结果是。

void fun(int a){ a++;printf("%d",a);}main(){ int a[3]={1,3,5},i;for(i=0;i<3;i++){ fun(a[i]);printf("%d",a[i]);}}A)214365 B)224466 C)113355 D)编译报错二维数组12.以下数组定义中错误的是。

A)int x[2][3]={1,2,3,4,5,6}; B)int x[][3]={1,2,3,4,5,6};C)int x[][3]={1,2,3,4,5,6,7}; D)int x[4][]={1,2,3,4,5,6};13. 以下程序运行后的输出结果是。

main(){ int i,a[3][3]={{9,8,7},{6,5,4},{3,2,1}};for(i=0;i<3;i++)printf("%d ",a[i][i]);}A)9 8 7 B)1 5 9 C)9 5 1 D)7 5 314. 以下程序运行后的输出结果是。

main(){ int x[][3]={1,2,3,4,5,6,7};float t;t=sizeof(x)/sizeof(int)/3;printf("%.2f",t);}A)3.00 B)2.00 C)2.33 D)2.6715.以下数组定义中错误的是。

A)int x[2][3]={{1,2},{3}}; B)int x[][3]={{1},{2,3,4},{5,6,7}};C)int x[][3]={{1,2},{3},{4,5,6,7}}; D)int x[3][3]={1};16. 有定义:int a[]={1,2,3,4,5,6,7},b[][3]={{1,2,3},{4,5,6},{7}};则以下叙述正确的是。

A)数组a与数组b占用的内存空间大小一致B)数组a与数组b中前7个int元素的值相等C)数组a与数组b的首地址,占用内存中同一块空间D)数组a与数组b完全等价17. 有如下定义语句:int a[][3]={{1,2},{1,2,3,4},{1},{2,3,4}};则下面叙述正确的是。

A)数组a中共有10个元素B)数组a为4行3列的二维数组C)数组a初始化后的实际值为{{1,2,1},{2,3,4},{1,0,0},{2,3,4}}D)编译报错字符数组和字符串:18.以下程序运行后的输出结果是。

void main(){ char s[]="abc";printf("%d %d",sizeof(s),strlen(s));}A)4 4 B)3 3 C)4 3 D)3 419.以下程序运行后的输出结果是。

void main(){ char a[12]={"1234\0abc"},b[10]={"ABC"};strcat(a,b);printf("%s",a);}A)1234ABCc B)1234ABCabc C)1234ABC D)123420.下面各语句中,能正确执行字符串赋值操作的语句是。

A)char str[4][5]={"ABCDE"}; B)char s[5]={'A','B','C','D','E'};C)char *s,s="ABCDE"; D)char *s,scanf("%s",s);21.设有定义:char x[]="abcdefg";char y[]={'a','b','c','d','e','f','g'};则以下叙述正确的是。

A)数组x和y等价B)数组x和数组y的长度相同C)数组x的长度大于数组y的长度D)数组x的长度小于数组y的长度22.不能把字符串赋给数组b的语句是。

A)char b[10]={'H','e','l','l','o'}; B)char b[10];b="Hello";C)char b[10];strcpy(b,"Hello"); D)char b[10]="Hello";23.设有定义:char str[]="Beijing";,则执行printf("%d\n",strlen(ctrcpy(str,"China")));后的输出结果是。

A)5 B)7 C)12 D)1424.以下程序的执行结果是。

#include<stdio.h>void main(){ char s[]="monrning",t;int i,j=0;for(i=1;i<7;i++)if(s[j]<s[i])j=i;t=s[j];s[j]=s[7];s[7]=s[3];puts(s);}A)morningr B)mo C)morning D)mornin25. 下列语句中正确的是。

A)char a[3][]={'abc','1'}; B)char a[][3]={'abc','1'};C)char a[3][]={'a',"l"}; D)char a[][3]={"a","1"};26. 程序段char str[3][20]={"word","excel","access"};printf("%s\n",str[2]);的输出结果是。

相关文档
最新文档