第六章数组习题答案
vb6.0第六章 习题解答

习题六一、选择题答案Aadcc dc二、填空题答案1、a(I,j)+b(I,j)2、下标越界3、64、1 2 2 4 3 6第六章选择题部分解析3、sum表示a数组各元素的和X表示a数组元素和的平均值最后打印出a数组中大于平均值的元素Sum=1+2+3+4+5=15,x=3大于3的有4,55、倒着看文本框中显示什么?答:显示的是array1(1,3)+array2(2,3)的和接着往前看程序发现array1(i,j)=i+j所以array1(1,3)=1+3=4Array2(2,3)=2+3=5所以4+5=9二、填空题解析2、x数组最大元素是x(6)退出for循环时,i=7然后print x(i)相当于print x(7)但是没有x(7)这个元素,超出最大下标了。
若把print x(i)改为print x(a)则值是36第六章编程题1、Private Sub Form_Click()Dim a(1 To 20) As Integer, i As IntegerDim j As Integerj = 0 '用来表示小于60的个数Picture1.Print "产生的数组为:"Picture1.PrintPicture2.Print "其中小于60的元素有:"Picture2.PrintFor i = 1 To 20a(i) = Int(Rnd * 100 + 1)Picture1.Print a(i);If i Mod 10 = 0 Then Picture1.PrintIf a(i) < 60 Thenj = j + 1Picture2.Print a(i); " ";If j Mod 10 = 0 Then Picture2.PrintEnd IfNext iEnd SubPrivate Sub Form_Load()RandomizeEnd Sub2、Private Sub Form_Click()Dim a(1 To 10) As IntegerDim max As Integer, min As Integer, i As IntegerFor i = 1 To 10a(i) = Int(Rnd * 90 + 10)Picture1.Print a(i);If i Mod 5 = 0 Then Picture1.PrintNext imax = a(1)min = a(1)For i = 2 To 10If a(i) > max Then max = a(i)If a(i) < min Then min = a(i)Next iLabel1.Caption = "最大数为:" & maxLabel2.Caption = "最小数为:" & minEnd SubPrivate Sub Form_Load()RandomizeEnd Sub3、Dim a(1 To 20) As IntegerPrivate Sub Command1_Click()Dim x As Integer, flag As Integer, i As Integerflag = 0 '标志,表示数组中是否存在xx = InputBox("请输入x的值,为整数", "输入", 1) For i = 1 To 20If x = a(i) Thenflag = 1 'flag改变,说明存在Exit ForEnd IfNext iIf flag = 1 ThenPrint "数组中存在" & xPrint "位置:" & iElsePrint "数组中不存在" & xEnd IfEnd SubPrivate Sub Form_Click()Dim i As IntegerFor i = 1 To 20 '生成数组a(i) = Int(Rnd * 100) '题目没要求,随便的范围Next iFor i = 1 To 19 '冒泡排序For j = 20 To i + 1 Step -1If a(j) > a(j - 1) Thent = a(j)a(j) = a(j - 1)a(j - 1) = tEnd IfNext jNext iFor i = 1 To 20 '打印数组Print a(i);If i Mod 5 = 0 Then PrintNext iEnd SubPrivate Sub Form_Load()RandomizeEnd Sub4、Private Sub Form_Click()Dim a(1 To 15) As SingleDim i As Integer, c1 As Integer, c2 As Integer, c3 As Integer, avg As SingleFor i = 1 To 15a(i) = InputBox("请输入第" & i & "个学生的成绩", "输入成绩", 60)avg = avg + a(i)Next iavg = avg / 15For i = 1 To 15If a(i) > avg Then c1 = c1 + 1If a(i) < 60 Then c2 = c2 + 1If a(i) >= 90 Then c3 = c3 + 1Next iPrint "高于平均分的人数"; c1Print "<60的人数"; c2Print ">=90的人数"; c3End Sub5、Dim a(1 To 4, 1 To 4) As Integer, b(1 To 4, 1 To 4) As Integer, c(1 To 4, 1 To 4) As IntegerPrivate Sub Command1_Click()‘(2)题For i = 1 To 4For j = 1 To it = a(i, j)a(i, j) = a(j, i)a(j, i) = tNext jNext iPicture2.ClsPicture2.Print "a转置后:"Picture2.PrintFor i = 1 To 4For j = 1 To 4Picture2.Print a(i, j); " ";Next jPicture2.PrintNext iEnd SubPrivate Sub Command2_Click()‘(3)题Picture2.ClsMax = c(1, 1)t1 = 1t2 = 1For i = 1 To 4For j = 1 To 4If c(i, j) > Max ThenMax = c(i, j)t1 = it2 = jEnd IfNext jNext iPicture2.Print "max=", MaxPicture2.Print "c("; i; ","; j; ")"End SubPrivate Sub Command3_Click()‘(4)题Picture1.ClsPicture2.ClsFor i = 1 To 4For j = 1 To iPicture1.Print a(i, j); " ";Next jPicture1.PrintNext iFor i = 1 To 4For j = i To 4Picture2.Print Tab(j * 5); b(i, j);Next jPicture2.PrintNext iEnd SubPrivate Sub Command4_Click()‘(5)题Picture1.ClsFor i = 1 To 4t = a(1, i)a(1, i) = a(3, i)a(3, i) = tNext iFor i = 1 To 4For j = 1 To 4Picture1.Print a(i, j); " ";Next jPicture1.PrintNext i End SubPrivate Sub Command5_Click()‘(1)题Picture3.Print "c矩阵:"Picture3.PrintFor i = 1 To 4For j = 1 To 4c(i, j) = a(i, j) + b(i, j)Picture3.Print c(i, j); " ";Next jPicture3.PrintNext iEnd SubPrivate Sub Form_Load()ShowPicture1.Print "a矩阵:"Picture1.PrintPicture2.Print "b矩阵:"Picture2.PrintFor i = 1 To 4For j = 1 To 4a(i, j) = Int(Rnd * 40 + 30)b(i, j) = Int(Rnd * 35 + 101)Picture1.Print a(i, j); " ";Picture2.Print b(i, j); " ";Next jPicture1.PrintPicture2.PrintNext iEnd Sub。
第6章习题答案

4
printf("\n======Transpose Matrix End===========\n"); return 0; } void Transpose (int (*a)[N],int (*T)[M]) { int i,j; for( i = 0; i < N; i++ ) for( j =0; j < M; j++ ) T[i][j] = a[j][i]; } (5) #include <stdio.h> int main() { static char source[81],target[81]; int result; gets(source); gets(target); result = Strcmp(source,target); if (result) { if( result < 0 ) printf("%s < %s\n",source,target); else printf("%s > %s\n",source,target); } else printf("%s = %s\n",source,target); return 0; } int Strcmp(char *s,char *t) { while (*s && *t && (*s == *t)) { s++; t++; } return *s - *t; } (6) #include <stdio.h>
6
1
*ptrb = temp; } if ( *ptra > *ptrc ) { temp = *ptra; *ptra = *ptrc; *ptrc = temp; } if ( *ptrb > *ptrc ) { temp = *ptrb; *ptrb = *ptrc; *ptrc = temp; } printf("a=%d,b=%d,c=%d\n",a,b,c); printf("*ptra=%d,*b=%d,*ptrc=%d\n",*ptra,*ptrb,*ptrc); return 0; } (2) #include <stdio.h> #include <stdlib.h> void inputdata(int a[],int n); void process(int a[],int n); void outputdata(int a[],int n); int main() { int a[10],n=10; inputdata(a,n); outputdata(a,n); process(a,n); outputdata(a,n); system("Pause"); return 0; } void inputdata(int a[],int n) //0~99 之间的数 { int i; for( i = 0; i < n; i++ ) scanf("%d",a+i); } void outputdata(int *ptr,int n) { int i;
第六~八章 概念练习题-附参考答案

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
C语言习题(6)

C语言习题(6)第六章数组一.填空题1.C语言数组的下标总是从开始,不可以为负数;构成数组各个元素具有相同的。
2.在C语言中,二维数组的元素在内存中的存放顺序是。
3.若有定义:double x[3][5],则x数组中行下标的下限为,列下标的上限为。
4.若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]的值为,a[2][1]得到的值为。
5.若有定义int a[][4]={1,2,3,4,5,6,7,8,9},则数组a第一维的大小为。
6.设char str[100]=”Hangzhou”;则数组str所在内存空间应为字节。
7.下列程序的输出结果是。
char str[ ][10]={”abcd”,”1234”,”efgh”,”5678”};int k=1;printf(“%s”,str[k++]);8.欲将字符串S1复制到字符串S2中,其语句是。
9.如果在程序中调用了strcat函数,则需要预处理命令;如果调用了gets函数,则需要预处理命令。
10.字符串是以为结束标志的一维字符数组。
有定义:char a[]=”China”;则a数组的长度是。
11.数组在内存中占用一段连续的存储空间,该存储空间的首地址用表示。
12.调用strlen(“abcd\0ef\0g”)的返回值为。
二.选择题1.在C语言中,引用数组元素时,其数组下标的数据类型允许是。
A)整型常量B)整型表达式C)整型常量或整型表达式C)任何类型的表达式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.若有定义:int a[10],则对数组a元素的正确引用是。
A)a[10] B)a[3.5] C)a(5) D)a[10-10]4.若有定义:int a[3][4],则对数组a元素的正确引用是。
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的初始化,错误的是_。
数据库第六章习题答案

第六章习题答案一、选择填空1、A2、C3、D4、B5、D6、A7、C8、A9、D 10、A11、C 12、A 13、B 14、C 15、C 16、D 17、B 18、C 19、A 20、D21、C 22、B二、判断下列描述的正确性,对者划√,错者划×。
1、√2、×3、×4、×5、√6、√7、×8、√9、×10、√11、√12、√13、√14、√15、×16、√17、√18、√19、√20、×21、×22、×三、分析下列程序的输出结果。
1、运行该程序输出结果如下所示。
Default constructor calledConstructor calleda=0,b=0a=4,b=82、运行该程序输出结果如下所示。
a=7,b=93、运行该程序输出结果如下所示。
1044、运行该程序输出结果如下所示。
1035,789.5045、运行该程序输出结果如下所示。
1{}{0,1,2,3,4,5,6,7,8}1{11,12,13,14,15,16,17,18,19}{19,18,17,16,15,14,13,12,11}6、运行该程序输出结果如下所示。
Starting1:Default constructor called.Default constructor called.Default constructor called.Eding1:Starting2:Constructor: a=5,b=6Constructor: a=7,b=8Constructor: a=9,b=10Ending2:Destructor called.a=9,b=10Destructor called.a=7,b=8Destructor called.a=5,b=6Destructor called.a=5,b=6Destructor called.a=3,b=4Destructor called.a=1,b=27、运行该程序输出结果如下所示。
C语言程序设计实例教程 第2版 习题答案 作者 李红 第6章 数组

6.4 课后习题6.4.1 项目练习一.练习目的1.进一步巩固一维数组的定义与数组元素的引用方法2.进一步巩固二维数组的定义与数组元素的引用方法3.进一步巩固字符数组的定义与引用方法二.练习内容1.用起泡法对10个数由大到小进行排序。
分析:起泡法的算法思想是,n个数排序,将相邻两个数依次进行比较,将大数调在前头,逐次比较,直至将最小的数移至最后,然后再将n-1个数继续比较,重复上面操作,直至比较完毕。
可采用双重循环实现起泡法排序,外循环控制进行比较的次数,内循环实现找出最小的数,并放在最后位置上(即沉底)。
#include "stdio.h"main(){int a[10];int i,j,t;printf("请输入10个整数:\n");for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<9;i++)for(j=0;j<9-i;j++)if(a[j]<a[j+1]){ t=a[j];a[j]=a[j+1];a[j+1]=t;}printf("排序后的数为::\n");for(i=0;i<10;i++)printf("%d ",a[i]);printf("\n");getch();}2.从键盘输入10个整数,检查整数3是否包含在这些数据中,若是的话,它是第几个被输入的。
#include "stdio.h"main(){int i,a[10];printf("请输入这10个整数:");for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++){if(a[i]==3) printf("3包含于数列中,输入顺序号是:%d",i+1);elseprintf("3不包含于此数列中");}getch();}3.编程:一个3*5的数组,要求每行都进行降序排列,并求出每行的平均值。
第06章 数组补充练习题答案

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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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);
}
7.以下程序的输出结果是。
#include <stdio.h>
#include <string.h>
main( )
{
char s1[8],s2[8],s3[8],s4[8];
main( )
{
int a[][3]={1,3,5,7,2,4,6,8,9};
int i,j,s1=0,s2=0;
for(i=0;i<=2;i++)
for(j=0;j<=2;j++)
{if(i==j) s1=s1+a[i][j];
if(i+j==2) s2=s2+a[i][j];
}
printf("%d,%d\n",s1,s2);
7.以下程序统计从终端输入的字符中大写字母的个数,num[0]中统计字母A的个数,num[1]中统计字母B的个数,其它依次类推。用#号结束输入,请填空。
#include <stdio.h>
#include <ctype.h>
main( )
{
int num[26]={0},i;
char c;
while((c=getchar()))!=’#’)
2.输入n个整数,求出其中最大数及其所在的位置,以及此n个数中素数的个数。
3.输入10学生的分数,计算平均分,并打印低于平均分数的成绩。
4.求300以内的所有素数的和。
5.编程求一个4×4矩阵两条对角线上所有元素之和。
6.编程,输入一个3×4整数矩阵并求各行元素之和及各列元素之和。
7.输入一个字符串,将指定位置的字符删除。
printf(“%d\n”,s[0]);
}
程序运行后的输出结果是(D)。
A)输出字符a的ASCII码B)输出字符c的ASCII码
C)输出字符c D)程序出错
二、填空题
1.数组在内存中占一片连续的存储区,由数组名代表它的首地址。
2. C语言程序在执行过程中,不检查数组下标是否越界。
3.若定义char str[20];则表示此数组有20个元素,其下标从0开始,最大为19。
int a[4][3]={{8,22,14},{10,12,3},{11,2,33},{6,7,17}};
t=a[0][0];
for(i=0;i<4;i++)
for(j=0;j<3;j++)
if(a[i][j]<t)
{t=a[i][j];row=i;col=j;}
printf(“%d,%d,%d\n”,t,row,col);
4.设有定义语句:int i=3,a[ ]={1,2,3,4};,则数组a的类型是整型;数组元素a[i]的值是4。
5.设有定义:char s[5]={‘a’,’b’};,则s[1]中的字符是‘b’,s[2]中的字符是‘\0’。
6.定义一个名为x整型二维数组,其大小为3×4,要求每行第一个元素为1,其余均是0,则定义语句是int x[3][4]={{1},{1},{1}};
strcat(p,r);
strcpy(p+strlen(q),q);
printf(“%d\n”, strlen(p));
}
程序运行后的输出结果是(B)。
A)9 B) 6 C) 11 D) 7
10.有以下程序
#include <stdio.h>
main( )
{ char s[ ]=”abcde”;
s+=2;
int i,j,k;
for(i=0;i<3;i++)
{printf(“\n”);
for(j=0;j<i;j++)
printf(““);
for(k=0;k<5;k++)
printf(“%c“,str[k]);
}
}
运行结果:AAAA
AAAA
AAAA
四、编程题
1.将输入的n个整数按从小到大排序输出,并求出其中所有奇数的个数。
scanf(“%s%s”,s1,s2);
gets(s3);
gets(s4);
puts(s1);puts(s2);puts(s3);puts(s4);
}
运行时输入以下数据:
AAA BBB↙
CCC DDD↙
运行结果:AAA
BBB
CCC DDD
8.若输入ABC,以下程序的输出结果是ABC6789。
#include <stdio.h>
}
4.以下程序的输出结果是3 5 7。
#include <stdio.h>
main( )
{
int i,a[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
printf(“%d”,a[i][2-i]);
}
5.以下程序的输出结果是12,13。
#include <stdio.h>
8.输入一个字符串,在指定的位置插入一个字符。
9.输入一个长度不超过80的字符串,编写程序,删除其中所有的数字字符。
10.不用strlen函数,求键盘输入的字符串长度。
11.不用strcat函数,将键盘输入的两个字符串连接起来形成一个新串
for(i=0;i<=1;i++)
{ for(j=0;j<=2;j++)
printf(“%3d”,a[i][j]);
printf(“\n”);
}
}
运行结果:1 3 5
2 4 6
3.以下程序的输出结果是2,2,1。
#include <stdio.h>
main( )
{
int i,j,t,row=0,col=0;
#include <string.h>
main( )
{
char str[10]=”abcde”;
gets(str);strcat(str,”6789”);printf(“%s\n”,str);
}
9.以下程序的输出结果是632。
#include <stdio.h>
main( )
{
char ch[ ]=”632”;
main( )
{
int a[5]={1,1,1,0},i,k=2;
for(i=0;i<=k;i++)
a[i]=a[i]+1;
printf(“%d\n”,a[k]);
}
2.以下程序的输出结果是。
#include <stdio.h>
main( )
{
int a[2][3]={1,3,5,2,4,6};
int i,j;
if(isupper(c) num[c-‘A’]+=1;
for(i=0;i<26;i++)
printf(“%c:%d\n”,i+’A’,num[i];
}
8.以下程序的输出结果是3715。
#include <stdio.h>
main( )
{
int i,n[4]={1};
for(i=1;i<=3;i++)
3.设有数组定义:char str[ ]=”China0”,则数组str所占的空间为(D)字节。
A)4个B) 5个C) 6个D) 7个
4.若有定义语句:char str[ ]=”ab\n\012\\\n”;
则执行语句:printf(“%d”,strlen(str));后,输出结果是(A)。
A)3 B) 4 C) 6 D) 12
5.下列描述中不正确的是(C)。
A)字符型数组中可以存放字符串
B)可以对字符型数组进行整体输入、输出