数组与过程练习(答案)

合集下载

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

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

第六~第八章基本概念练习题第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]);A) 1 5 9 B) 1 4 7 C) 3 5 7 D) 3 6 9二.分析题。

c语言数组练习题及答案

c语言数组练习题及答案

c语言数组练习题及答案第一题:在数组a中,存放有n个学生的成绩.试编一函数:将低于平均分的学生人数m由函数值返回,将低于平均分的分数由数组b带回. int fun(int a[],int n,int b[]) {int i,m=0,aver=0;for(i=0;i<n;i++) aver+=a[i];aver/=n;for(i=0;i<n;i++)if(a[i]<aver) b[m++]=a[i];return m;}第二题:试编一函数:求出1000之间能被7或11整除,但不能同时被7或11整除的所有整数的个数n由函数值返回,并将符合条件的数放在数组a中带回. int fun(int a[]){int i,n=0;for(i=1;i<1000;i++)if((i%7==0&&i%11!=0)||(i%7!=0&&i%11==0)) a[n++]=i;return n;}第三题:试编一函数:将大于整数m且紧靠m的k个素数存入数组a中. void fun(int m,int k,int a[]) {int i,n,data,flag;data=m+1; n=0;while(n<k){flag=1;for(i=2;i<=data/2;i++)if(data%i==0){flag=0; break;}if(flag) a[n++]=data;data++;}}第四题:试编一函数:在数组a中有n个整数,要求把下标从0到p(p小于等于n-1)的数平移到数组的最后.如:原始内容: 1,2,3,4,5,6,7,8,9,10; 当p=4时:移后内容: 6,7,8,9,10,1,2,3,4,5void fun(int a[],int n,int p) {int i,j,t;for(i=0;i<=p;i++){t=a[0];for(j=1;j<n;j++) a[j-1]=a[j];a[n-1]=t;}}第五题:试编一函数:在具有n个数据的数组a中,求出次最大值的下标并由函数值返回.int fun(int a[],int n){int i,j,max,may;if(a[0]>a[1]){max=0; may=1;}else {max=1; may=0;}for(i=2;i<n;i++)if(a[i]>a[max]){may=max;amx=i;}else if(a[i]>a[may]) may=i;return may;}第六题:在数组a中有n个四位数.试编一函数,要求按每个数的后三位的大小进行升序排列,当后三位等相同时,则对这些数值按原始四位数据进行降序排序.将排序后的前10个数存入数组b中.(提示:可采用选择排序)int fun(int a[],int n,int b[]) {int i,j,k,t,m=10;for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++)if(a[j]%1000<a[k]%1000) k=j;else if(a[j]%1000==a[k]%1000 && a[j]>a[k]) k=j;if(k!=i){t=a[i]; a[i]=a[k]; a[k]=t;}}for(i=0;i<m;i++) b[i]=a[i];return m;}第七题:在三位数(100至999)中寻找符合下面条件的整数.它即是完全平方数,又有两位数字相同.(如:144,676;)并将符合条件数的个数n由函数值返回,符合条件的数存入数组a中返回.int fun(int a[]){int i,j,hun,ten,data,n=0;for(i=10;i<32;i++){j=i*i;if(j>=100&&j<=999){hun=j/100;ten=j%100/10;data=j%10;if(hun==ten||ten==data||data==hun) a[n++]=j;}}return n;}第八题:判断一个长整型数是否为回文数(回文数是指其数字左右对称的整数).当该数是回文数时,函数值返回1,否则返回0.(提示:利用逻辑量flag进行操作). intfun(long m){int i=0,n=0,flag=1,a[20];while(m){a[n]=m%10; m=m/10; n++;}while(i<=n/2 && flag)if(a[i]!=a[--n] flag=0;else i++;return flag;}第九题:在数组a中存有n个数据,试编一函数:依次从数组中取出一个数据,如查该数连续大于该数以后的5个数且该数是奇数,统计出满足此条件数的个数m由函数值返回,并把这些数按从小到大的顺序存入数组b中.int fun(int a[],int n,int b[]) {int i,j,flag,m=0;for(i=0;i<n-5;i++){for(j=i+1;j<=i+5;j++)if(a[i]>a[j]) flag=1;else {flag=0; break;}if(flag==1 && a[i]%2==1) b[m++]=a[i];}for(i=0;i<m-1;i++)for(j=0;j<m-1-i;j++)if(b[j]>b[j+1]){flag=b[j]; b[j]=b[j+1]; b[j+1]=flag;}return m;}第十题:在数组a中有n个四位数,试编一函数:求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数m由函数值返回,再把所有满足此条件的四位数依次存入数组b中,然后对数组b中的四位数按从小到大的顺序排序.int fun(int a[],int n,int b[]) {int i,j,m,thou,hun,ten,data;for(i=0;i<n;i++){thou=a[i]/1000;hun=a[i]%1000/100;ten=a[i]%100/10;data=a[i]%10;if(thou+data==hun+ten) b[m++]=a[i];}for(i=0;i<m-1;i++)for(j=0;j<m-1-i;j++)if(b[j]<b[j+1]){data=b[j]; b[j]=b[j+1]; b[j+1]=data;}}第十一题:在数组a中有n=100个人围坐一圈并按顺时针方向从1到n编号,从第s=1个人开始进行从1到m=10的报数,报数到第m个人,此人出圈,再从他的下一个人重新开始1到m的报数,如此进行下去直到所有的人都出圈为止,现要求将出圈次序重新存入数组a中.void fun(int a[],int n,int s,int m) {int i,j,k,l,x;i=s-1; k=0; l=n;while(l>0){k++;if(k==m){x=a[i];for(j=i+1;j<n;j++) a[j-1]=a[j];a[n-1]=x;k=0; l--;}else i++;if(i==l) i=0;}}。

C++课件第六章数组

C++课件第六章数组

解决方法
在使用数组之前,应该为其所有元素 分配初始值。可以使用循环来遍历数 组并为每个元素赋值。同时,也可以 考虑使用标准库中的容器类,如 std:vector或std:array,它们可以自 动管理元素的初始化和销毁。
数组下标从0开始还是从1开始
总结词
详细描述
在C中,数组的下标从0开始而不是从 1开始。
C++课件第六章 数 组
目录
CONTENTS
• 数组的概述 • 数组的声明与初始化 • 数组的操作 • 数组的应用 • 数组的常见错误与注意事项 • 练习题与答案
01
数组的概述
数组的概述
• 请输入您的内容
02
数组的声明与初始 化
一维数组的声明与初始化
总结词
一维数组是具有线性结构的数组,可以通过指定数组大小来 声明和初始化。
插入排序
将数组分为已排序和未排序两部分,初始时已排序部分包含一个元素,之后从未排序部分 取出元素,并在已排序部分找到合适的插入位置插入,并保持已排序部分一直有序。重复 此过程,直到未排序部分元素为空。
数组在查找算法中的应用
线性查找
从数组的第一个元素开始,逐个比较,直到找到目标元素或遍历完整个数组。
详细描述
在C中,一维数组的声明需要指定数组的大小,例如int array[10]表示一个包含10个整数的数组。可以通过指定初始 值来初始化数组,例如int array[5] = {1, 2, 3, 4, 5}。如果没 有指定初始值,数组将自动被初始化为0或空值。
二维数组的声明与初始化
总结词
二维数组是具有矩阵结构的数组,可以通过指定行数和列数来声明和初始化。
详细描述
在C中,二维数组的声明需要指定行数和列数,例如int array[3][4]表示一个包含3行4列的二维数组。可以通过指 定初始值来初始化二维数组,例如int array[2][3] = {{1, 2, 3}, {4, 5, 6}}。如果没有指定初始值,数组将自动被初 始化为0或空值。

Java数组练习题(带答案)

Java数组练习题(带答案)

Java数组练习题(带答案)一填空题1)数组的元素通过下标来访问,数组Array的长度为Array、length 。

2)数组复制时,"="将一个数组的引用传递给另一个数组。

3)JVM将数组存储在栈(堆或栈)中。

4)数组的二分查找法运用的前提条件就是数组已经排序。

5)Java中数组的下标的数据类型就是整型。

6)数组最小的下标就是0 。

7)arraycopy()的最后一个参数指明复制元素的个数。

8)向方法传递数组参数时,传递的就是数组的引用。

9)数组初始化包括数组的申明,创建与初始化。

10)数组下标访问超出索引范围时抛出数组越界异常11)浮点型数组的默认值就是0、0f 。

12)数组创建后其大小不能改变。

二选择题1.下面错误的初始化语句就是_ABD__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]后,下面错误的引用就是_B__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.引用数组元素时,数组下标可以就是_D___A、整型常量B、整型变量C、整型表达式D、以上均可5.定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为____A、24B、25C、18D、176.下列初始化字符数组的语句中,正确的就是__B__A、char str[5]="hello";B、char str[]={'h','e','l','l','o','\0'};C、char str[5]={"hi"};D、char str[100]="";7.数组在Java中储存在 C 中A、栈B、队列C、堆D、链表8.下面程序的运行结果就是____main() {int a[][]={{1,2,3},{4,5,6}};System、out、printf("%d", a[1][1]);}A、3B、4C、5D、69.下面程序的运行结果就是_C___main() {int x=30;int[] numbers=new int[x];x=60;System、out、println(numbers、length); }A、60B、20C、30D、5010.下面程序的运行结果就是__BDF__ main() {char s1[]="ABCDEF"、toCharArray();int i=0;while(s1[i++]!='\0')System、out、println(s1[i++]);}A、ABCDEFB、BDFC、ABCDED、BCDE11.下面不就是创建数组的正确语句CA、float f[][]=new float[6][6];B、float f[]=new float[6];C、float f[][]=new float[][6];D、float [][]f=new float[6][];12.下面不就是数组复制方法的就是(C)A、用循环语句逐个复制数组B、用方法arraycopyC、用"="进行复制D、用clone方法13.数组a的第三个元素表示为DA、a(3)B、a[3]C、a(2)D、a[2]14.当访问无效的数组下标时,会发生BA、中止程序B、抛出异常C、系统崩溃D、直接跳过15.使用arraycopy()方法将数组a复制到b正确的就是AA、arraycopy(a,0,b,0,a、length)B、arraycopy(a,0,b,0,b、length)C、、arraycopy(b,0,a,0,a、length)D、arraycopy(a,1,b,1,a、length)16.关于数组默认值,错误的就是BA、char--'"u0000'B、Boolean--trueC、float--0、0fD、int-- 017.关于数组作为方法的参数时,向方法传递的就是AA、数组的引用B、数组的栈地址C、数组自身D、数组的元素18.关于数组复制,下列说法错误的就是ACA、"="可以实现数组复制B、运用循环语句进行数组复制必须两个数组长度相同C、arraycopy()方法没有给目标数组分配内存空间D、数组复制就是数组引用的传递19.下列语句会造成数组new int[10]越界就是DA、a[0] += 9;B、a[9]=10;C、—a[9]D、for(int i=0;i<=10;i++) a[i]++;20.在JDK环境下编译JAVA源程序使用的命令就是(B )A、javaB、javacC、jvmD、tomcatD、子类不能使用父类的构造方法21.main方法就是java Application 程序执行的入口点。

第四、五章串、数组和广义表练习题答案

第四、五章串、数组和广义表练习题答案

第四、五章串、数组和广义表练习题答案一.填空题1. 不包含任何字符(长度为0)的串称为空串;由一个或多个空格(仅由空格符)组成的串称为空白串。

2. 设S=“A;/document/Mary.doc”,则strlen(s)= 20 , “/”的字符定位的位置为3。

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

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

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

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

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

(注:数组是从0行0列还是从1行1列计算起呢?由末单元为A57可知,是从0行0列开始!)7. 〖00年计算机系考研题〗设数组a[1…60, 1…70]的基地址为2048,每个元素占2个存储单元,若以列序为主序顺序存储,则元素a[32,58]的存储地址为8950 。

答:不考虑0行0列,利用列优先公式:LOC(a ij)=LOC(a c1,c2)+[(j-c2)*(d1-c1+1)+i-c1)]*L 得:LOC(a32,58)=2048+[(58-1)*(60-1+1)+32-1]]*2=89508. 三元素组表中的每个结点对应于稀疏矩阵的一个非零元素,它包含有三个数据项,分别表示该元素的行下标、列下标和元素值。

9.求下列广义表操作的结果:(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);10.C语言规定,字符串常量按_字符数组_____处理,它的值在程序的执行过程中是不能改变的。

数组练习及答案

数组练习及答案

数组练习及答案数组练习121、合法的数组定义是___ _____.A) int a[6]={"string"};B) int a[5]={0,1,2,3,4,5};C) char a={"string"};D) char a[]={0,1,2,3,4,5};122、要求下⾯的程序运⾏后,显⽰如下结果:2 10 4 61 52 32 4 7 85 1 3 2则程序中的划线处应填⼊___ _____.#include <>void main( ){ int a[4][4]={ ________ };int i,j;for(i=0;i<4;i++){for(j=0;j<4;j++) printf("%4d",a[i][j]);printf("\n"); }}A) {1,5,2,3},{2,4,7,8},{5,1,3,2}B) {2,10,4,6},{1,5,2,3},{2,4,7,8},{5,1,3,2}C) {5,1,3,2},{2,4,7,8},{1,5,2,3}D) {2,1,2,5},{10,5,4,1},{4,2,7,3},{6,3,8,2}123、给出以下定义:char x[ ]="abcdefg";char y[ ]={'a','b','c','d','e','f','g'};则正确的叙述为___ _____.A) 数组x和数组y等价B) 数组x和数组y的长度相同C) 数组x的长度⼤于数组y的长度D) 数组x的长度⼩于数组y的长度124、定义如下变量和数组:int i;int x[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};则下⾯语句的输出结果是___ _____.for(i=0;i<4;i++) printf("%3d",x[i][3-i]);A) 1 5 9 13 B) 1 6 11 16C) 4 7 10 13 D) 4 8 12 16126、若希望下⾯的程序运⾏后输出45,程序空⽩处的正确选择是___ _____.#include <>void main( ){ int i,j=10,a[ ]={1,3,5,7,9,11,13,15};for( ____________ )j+=a[i];printf("%d\n",j);}A) i=5;i>1;i-- B) i=0;i<7;++iC) i=5;i>=1;--i D) i=2;i<6;++i127、若有以下说明:char s1[ ]={"tree"},s2[]={"flower"}; ,则以下对数组元素或数组的输出语句中,正确的是__ ___.A) printf("%s%s",s1[5],s2[7]);B) printf("%c%c",s1,s2);C) puts(s1);puts(s2); D) puts(s1,s2);128、下列⼀维数组初始化语句中,正确且与语句float a[ ]={0,3,8,0,9};等价的是_____ ___.A) float a[6]={0,3,8,0,9};B) float a[4]={0,3,8,0,9};C) float a[7]={0,3,8,0,9};D) float a[5]={0,3,8,0,9};129、运⾏下⾯程序段的输出结果是___ _____.char s1[10]={'S','e','t','\0','u','p','\0'};printf("%s",s1);A) Set B) Setup C) Set up D) 'S''e''t'130、以下程序段的输出结果是____ ____.char s[ ]="an apple";printf("%d\n",strlen(s));A) 7 B) 8 C) 9 D) 10131、若有说明:char c[10]={'E','a','s','t','\0'};,则下述说法中正确的是_____ _____.A) c[7]不可引⽤B) c[6]可引⽤,但值不确定C) c[4]不可引⽤D) c[4]可引⽤,其值为空字符132、下列初始化语句中,正确且与语句char c[ ]="string";等价的是____ ____.A) char c[ ]={'s','t','r','i','n','g'};B) char c[ ]='string';C) char c[7]={'s','t','r','i','n','g','\0'};D) char c[7]={'string'};133、若有说明char c[7]={'s','t','r','i','n','g'};则对元素的⾮法引⽤是____ ____.A) c[0] B) c[9-6] C) c[4*2] D) c[2*3]134、如有说明:char s1[5],s2[7]; ,要给数组s1和s2整体赋值,下列语句中正确的是____ ____.A) s1=getchar(); s2=getchar();B) scanf("%s%s",s1,s2);C) scanf("%c%c",s1,s2);D) gets(s1,s2);135、下列⼀组初始化语句中,正确的是___ _____.A) int a[8]={ }; B) int a[9]={0,7,0,4,8};C) int a[5]={9,5,7,4,0,2}; D) int a[7]=7*6;136、以下程序输出的结果是____ _____.#include <>void main( ){ char str[ ]="1a2b3c"; int i;for(i=0;str[i]!='\0';i++)if(str[i]>='0'&&str[i]<='9') printf("%c",str[i]);printf("\n");}A) 9 B) 1a2b3cC) abc D) 123137、以下程序输出的结果是___ _____.#include <>void main( ){ int a[ ]={5,4,3,2,1},i,j;long s=0;for(i=0;i<5;i++) s=s*10+a[i];printf("s=%ld\n",s);}A) s=12345 B) s=5 4 3 2 1C) s=54321 D) 以上都不对138、以下程序输出的结果是____ ____.#include <>void main( ){ int a[ ]={1,2,3,4,5},i,j,s=0;for(i=0;i<5;i++) s=s*10+a[i];printf("s=%d\n",s);}A) s=12345 B) s=1 2 3 4 5C) s=54321 D) s=5 4 3 2 1139、在定义int a[5][6];后,数组a中的第10个元素是.________(设a[0][0]为第⼀个元素)A) a[2][5] B) a[2][4] C) a[1][3] D) a[1][5]140、当接受⽤户输⼊的含有空格的字符串时,应使⽤____ ____函数.A) gets( ) B) getchar( )C) scanf( ) D) printf( )141、以下程序执⾏时输⼊Language Programming<回车>,输出结果是____ ____.#include <>void main( ){ char str[30];gets(str);printf("str=%s\n",str);}A) Language ProgrammingB) LanguageC) str=LanguageD) str=Language Programming142、以下⼀维数组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];143、以下对⼆维数组a进⾏正确初始化的是__ _____.A) int a[2][3]={ {1,2},{3,4},{5,6} };B) int a[ ][3]={1,2,3,4,5,6 };C) int a[2][ ]={1,2,3,4,5,6}; D) int a[2][ ]={ { 1,2},{3,4}};144、以下关于数组的描述正确的是____ ______.A) 数组的⼤⼩是固定的,但可以有不同类型的数组元素。

练习三答案(可编辑修改word版)

练习三答案(可编辑修改word版)

练习三答案一、填空题1.编译过程中,每当扫描器识别出一个名字后,编译程序就查阅符号表,看该名字是否在其中。

如果该名字是一个新名字就将它添进符号表。

2.在语义分析阶段,符号表所登记的信息将用于语义检查和产生中间代码;在目标代码生成阶段,符号表是地址分配的依据。

3.过程信息表中必须包括过程名、参数信息和过程入口地址。

4.编译程序使用说明标识符的过程、函数或子程序的静态层次区别标识符的作用域。

5.编译程序在其工作过程中使用最多的数据结构是表。

它记录着源程序中的各种信息,以便查询和修改。

在这些表中,尤以符号表最为重要,它的生存期最长,使用也最频繁。

6.过程与过程引用中信息交换的方法是全局变量和参数传递。

7.PASCAL 语言中局部变量的作用域为说明该变量的过程或函数,除去该过程或函数内部嵌套的含有同名标识符的过程或函数。

8.将过程的每次执行和过程的活动记录相对应就解决了过程递归调用所引起的问题。

9.形式参数和实在参数之间的对应关系通常按它们在源程序中的位置来确定。

10.对于某个压缩了的上下文无关文法,当把每个文法符号联系于一组属性,且让该文法的规则附加以语义规则时,称该文法为属性文法。

11.文法符号的属性有两种,一种称为继承属性,另一种称为综合属性。

12.一个文法符号的继承属性是通过语法树中它的兄弟结点和父结点的相应文法符号的属性来计算的,而综合属性是通过语法树中它的子结点的属性之值来计算的。

13.语法制导的编译程序能同时进行语法分析和语义分析。

14.在PASCAL 中,由于允许用户动态申请与释放内存空间,所以必须采用堆式存储分配技术。

15.静态区的分配对象是全程变量和不改变其值的对象。

静态区分配的特点是其访问地址可采用绝对地址。

二、选择题(单项和多项)1.在编译过程中,符号表的主要作用是 c d 。

a.帮助错误处理b.辅助语法错误的检查c.辅助语义的(即上下文有关的)正确性检查d.辅助代码生成e.辅助对目标代码的优化2.PASCAL 中过程说明的局部量地址分配在 b 。

数据结构练习题第三章栈、队列和数组习题及答案

数据结构练习题第三章栈、队列和数组习题及答案

第三章栈、队列和数组一、名词解释:1.栈、栈顶、栈底、栈顶元素、空栈2.顺序栈3.链栈4.递归5.队列、队尾、队头6.顺序队7.循环队8.队满9.链队10.随机存储结构11.特殊矩阵12.稀疏矩阵13.对称方阵14.上(下)三角矩阵二、填空题:1.栈修改的原则是_________或称________,因此,栈又称为________线性表。

在栈顶进行插入运算,被称为________或________,在栈顶进行删除运算,被称为________或________。

2.栈的基本运算至少应包括________、________、________、________、________五种。

3.对于顺序栈,若栈顶下标值top=0,此时,如果作退栈运算,则产生“________”。

4.对于顺序栈而言,在栈满状态下,如果此时在作进栈运算,则会发生“________”。

5.一般地,栈和线性表类似有两种实现方法,即________实现和________实现。

6.top=0表示________,此时作退栈运算,则产生“________”;top=sqstack_maxsize-1表示________,此时作进栈运算,则产生“________”。

7.以下运算实现在顺序栈上的初始化,请在________处用适当的句子予以填充。

int InitStack(SqStackTp *sq){ ________;return(1);}8.以下运算实现在顺序栈上的进栈,请在________处用适当的语句予以填充。

Int Push(SqStackTp *sq,DataType x){ if(sp->top==sqstack_maxsize-1}{error(“栈满”);return(0);}else{________________:________________=x;return(1);}}9.以下运算实现在顺序栈上的退栈,请在________________用适当句子予以填充。

数组练习题及答案

数组练习题及答案

第五章数组练习题及答案一、选择题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*AD、SW5、下面程序段是输出两个字符串中对应相等的字符。

C程序设计(数组)习题与答案

C程序设计(数组)习题与答案

C程序设计(数组)习题与答案C程序设计(数组)习题与答案数组是C语言中常用的数据结构之一,它可以存储多个相同类型的元素。

掌握数组的使用对于C程序设计至关重要,下面将为大家介绍一些关于C数组的习题及其答案。

1. 习题一:计算数组元素的和题目描述:编写一个程序,计算给定数组中所有元素的和,并输出结果。

解题思路:```c#include <stdio.h>int main() {int arr[5] = {1, 2, 3, 4, 5}; // 定义一个包含5个元素的整型数组int sum = 0; // 用于存储和的变量// 遍历数组,累加每个元素的值for (int i = 0; i < 5; i++) {sum += arr[i];}printf("数组元素的和为:%d\n", sum);return 0;}```2. 习题二:查找数组中的最大值题目描述:编写一个程序,找出给定整型数组中的最大值,并输出结果。

解题思路:```c#include <stdio.h>int main() {int arr[7] = {4, 7, 2, 9, 1, 5, 8}; // 定义一个包含7个元素的整型数组int max = arr[0]; // 假设第一个元素为最大值// 遍历数组,比较每个元素的值与当前最大值的关系for (int i = 1; i < 7; i++) {if (arr[i] > max) {max = arr[i];}}printf("数组中的最大值为:%d\n", max);return 0;}```3. 习题三:查找数组中的特定元素题目描述:编写一个程序,在给定整型数组中查找是否存在指定元素,并输出结果。

解题思路:```c#include <stdio.h>int main() {int arr[6] = {3, 6, 9, 2, 5, 8}; // 定义一个包含6个元素的整型数组 int target = 2; // 指定要查找的元素int found = 0; // 用于标记是否找到目标元素的变量// 遍历数组,比较每个元素的值与目标值的关系for (int i = 0; i < 6; i++) {if (arr[i] == target) {found = 1;break;}}if (found) {printf("数组中存在目标元素:%d\n", target);} else {printf("数组中不存在目标元素:%d\n", target);}return 0;}```4. 习题四:数组元素逆序排列题目描述:编写一个程序,将给定整型数组的元素逆序排列,并输出结果。

C语言数组百道练习题含答案

C语言数组百道练习题含答案

6.5 以下能对一维数组 a 进行正确初始化的语句是 B 。????? A)int a[10]=(0,0,0); B)int a[10]={}; C)int a[]={0}; D)int a[10]={10*1}; 6.6 以下对二维数组 a 的正确说明是 C 。 A)int a[3][]; B)float a(3,4); C)double a[1][4]; D)float a(3)(4); 6.7 若有说明:int a[3][4];则对 a 数组元素的正确引用是 C 。 A)a[2][4] B)a[1,3] C)a[1+1][0] D)a(2)(1) 6.8 若有说明:int a[3][4];则对 a 数组元素的非法引用是 D 。 A)a[0][2*1] B)a[1][3] C)a[4-2][0] D)a[0][4] 6.9 以下能对二维数组 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}}; 6.10 以下不能对二维数组 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}; 6.11 若有说明:int a[3][4]={0};则下面正确的叙述是 D 。 A)只有元素 a[0][0]可以得到初值 0 B)此说明语句不正确 C)数组中各元素都可以得到初值,但其值不一定为 0 D)数组中每个元素均可得到初值 0 6.12 若有说明:int a[][4]={0,0};则下面不正确的叙述是 A)数组 a 的每个元素都可得到初值 0 B)二维数组 a 的第一维大小为 1 C)因为二维数组 a 中第二维大小的值除初值个数的商为 0,故数组 a 的行数为 1 D)只有元素 a[0][0]和 a[0][1]可得到初值 0,其余元素均得不到初值 0 6.13 若有说明:static int a[3][4];则数组中各元素 A)可在程序的运行阶段得到初值 0 B)可在程序的编译阶段得到初值 0 B 。 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)数据结构评析:数据处理的最小单位是数据项;由若干数据项组成数据元素;而数据是指能够被计算机识别、存储和加工处理的信息载体;数据结构是指数据之间的相互关系和数据运算。

数据结构练习题第三章栈、队列和数组习题及答案

数据结构练习题第三章栈、队列和数组习题及答案

第三章栈、队列和数组一、名词解释:1.栈、栈顶、栈底、栈顶元素、空栈2.顺序栈3.链栈4.递归5.队列、队尾、队头6.顺序队7.循环队8.队满9.链队10.随机存储结构11.特殊矩阵12.稀疏矩阵13.对称方阵14.上(下)三角矩阵二、填空题:1.栈修改的原则是_________或称________,因此,栈又称为________线性表。

在栈顶进行插入运算,被称为________或________,在栈顶进行删除运算,被称为________或________。

2.栈的基本运算至少应包括________、________、________、________、________五种。

3.对于顺序栈,若栈顶下标值top=0,此时,如果作退栈运算,则产生“________”。

4.对于顺序栈而言,在栈满状态下,如果此时在作进栈运算,则会发生“________”。

5.一般地,栈和线性表类似有两种实现方法,即________实现和________实现。

6.top=0表示________,此时作退栈运算,则产生“________”;top=sqstack_maxsize-1表示________,此时作进栈运算,则产生“________”。

7.以下运算实现在顺序栈上的初始化,请在________处用适当的句子予以填充。

int InitStack(SqStackTp *sq){ ________;return(1);}8.以下运算实现在顺序栈上的进栈,请在________处用适当的语句予以填充。

Int Push(SqStackTp *sq,DataType x){ if(sp->top==sqstack_maxsize-1}{error(“栈满”);return(0);}else{________________:________________=x;return(1);}}9.以下运算实现在顺序栈上的退栈,请在________________用适当句子予以填充。

数组练习题

数组练习题
39.初始化多维数组的语句中,可以缺省的是().
A.最后一个下标界
B.第1个下标界
C.第2个下标界
D.以上都不是
40.数组声明为: char str1[20]="Borland",str2[]="C++5.0";调用函数"strcat(str1,str2);"后,字符串str1的串长是().
A.13
32.在C语言中,引用数组元素时,其数组下标的数据类型允许是().
A.整型常量
B.整型表达式
C.整型常量或整型表达式
D.任何类型的表达式
33.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是().
A.char s[10]="abcdefg";
B.char t[]="abcdefg",*s=t;
B.char str[];
C.int num['10'];
D.int n=5; int a[n][n+2];
3.下列定义数组的语句中不正确的是().
A.int a[2][3]={1,2,3,4,5,6};
B.int a[2][3]={{1},{4,5}};
C.int a[][3]={{1},{4}};
A.14
B.15
C.16
D.17
49.在执行int a[][3]={{1,2},{3,4}};语句后,a[1][2]的值是()
A.int a(10);
B.int n=10,a[n];
C.int n; scanf("%d",&n); int a[n];
D.#define SIZE 10 (换行) int a[SIZE];

vb课后练习答案习题解答 (5).

vb课后练习答案习题解答 (5).

第5章数组与记录5.1 填空题1.若要定义一个包含10个字符串元素,且下界为1的一维数组s,则数组说明语句为(。

答案:Dim s(1 To 10 As String2.若要定义一个元素为整型数据的二维数组a,且第一维的下标从0到5,第二维下标从-3到6,则数组说明语句为(。

答案:Dim a(0 To 5,-3 To 6 As Integer3.如果数组元素的下标值为实数,则VB系统会按(进行处理。

答案:四舍五入原则4.数组元素个数可以改变的数组称为(;数组元素可以存放不同类型数据的数组称为(。

答案:可调数组、可变类型数组5.数组刷新语句用于(。

若被刷新的数组是数值数组,则把所有元素置(;若被刷新的数组为字符串数组,则把所有元素置(。

答案:清除指定数组内容、0、空字符串10.控件数组是由一组类型和(相同的控件组成,共享(。

答案:名字、同一个事件过程11.控件数组中的每一个控件都有唯一的下标,下标值由(属性指定。

答案:Index12.建立控件数组有两种方法:(和(。

答案:在设计阶段通过相同Name属性值来建立、在程序代码中使用Load方法5.2 选择题1.下列一维数组说明语句错误的是(。

a Dim b(100 AS Doubleb Dim b(-5 To 0 AS Bytec Dim b(-10 To –20 AS Integerd Dim b(5 To 5 AS String答案:c2.若有数组说明语句为:Dim a(-3 To 8,则数组a包含元素的个数是(。

a 5b 8c 11d 12答案:d3.设有数组说明语句:Dim c(1 To 10,则下面表示数组c的元素选项中(是错误的。

a c(i-1b c(5+0.5c c(0d c(10答案:c4.下列数组说明语句中正确的是(。

a Dim a(-1 To 5,8AS Stringb Dim a(n,nAS Integerc Dim a(0 To 8,5 To –1AS Singled Dim a(10,-10AS Double答案:a5.设有数组说明语句:Dim b(-1To2,-2To2,则数组b中元素的个数是(。

C语言数组练习及标准答案.doc

C语言数组练习及标准答案.doc

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

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

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

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

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

则以下表达式中不能代表数组元A. &bb[0]+1B. &bb[1]C. &bb[0]++D. bb+1bb[1] 的地址的是(c ) 。

6. 假定 int 所占字节数是类型变量占用两个字节,其有定义:(d )。

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 的表达式是 (d )A. a[g-c]B. a[4]C. a['d'-'c']D. a['d'-c]8.以下程序段给数组所有的元素输入数据,请选择正确答案填入 (a ) 。

数组练习题及答案

数组练习题及答案

数组练习题及答案问题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;}```结束语:这些练习题涵盖了数组的基本操作、查找、排序和动态扩展等常见问题,希望能够帮助您更好地理解和掌握数组的使用。

广技师C语言复习题5.-练习(数组)(有标准答案)

广技师C语言复习题5.-练习(数组)(有标准答案)

一、选择题1. 以下对一维整型数组a的正确说明是。

A.int a(10);B.intn=10, a[n];C.int n;scanf(“%d",&n);int a[n];D.#defineSIZE10int a[SIZE]2. 若有说明:int a[10];,则对a数组元素的正确引用是. A.a[10] B.a[3。

5] C.a(5) D.a[10-10]4. 以下对二维数组a的正确说明是。

A.int a[3][]; B.float a(3,4);C.double a[][4];D.floata(3)(4);5.若有说明:int a[3][4];则对a数组元素的正确引用是。

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

A.inta[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,0},{ },{1,1}};7. 下面程序段(每行代码前面的数字表示行号)。

1 inta[3]={3*0};2int i3 for(i=0;i〈3; i++) scanf(“%d”,&a[i]);4for(i=1;i〈3;i++) a[0]=a[0]+a[i];5 printf(“%d\n”,a[0]);A.第1行有错误 B.第5行有错误C.第3行有错误D.没有错误8.若有定义floatx[4]={1.3, 2.4,5。

6},y=6;则错误的语句是。

A.y=x[3]; B.y=x+1; C.y=x[2]+1D.x[0]=y; 9。

定义如下变量和数组:int k;int a[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是。

(完整版)数据结构练习题及参考答案

(完整版)数据结构练习题及参考答案

数据结构练习题第一部分绪论一、单选题1. 一个数组元素a[i]与________的表示等价。

A、 *(a+i)B、 a+iC、 *a+iD、 &a+i2. 对于两个函数,若函数名相同,但只是____________不同则不是重载函数。

A、参数类型B、参数个数C、函数类型3. 若需要利用形参直接访问实参,则应把形参变量说明为________参数A、指针B、引用C、值4. 下面程序段的时间复杂度为____________。

for(int i=0; i<m; i++)for(int j=0; j<n; j++)a[i][j]=i*j;A、 O(m2)B、 O(n2)C、 O(m*n)D、 O(m+n)5. 执行下面程序段时,执行S语句的次数为____________。

for(int i=1; i<=n; i++)for(int j=1; j<=i; j++)S;A、 n2B、 n2/2C、 n(n+1)D、 n(n+1)/26. 下面算法的时间复杂度为____________。

int f( unsigned int n ) {if ( n==0 || n==1 ) return 1; else return n*f(n-1);}A、 O(1)B、 O(n)C、 O(n2)D、 O(n!)二、填空题1. 数据的逻辑结构被分为__________、_________、__________和__________四种。

2. 数据的存储结构被分为__________、_________、__________和__________四种。

3. 在线性结构、树形结构和图形结构中,前驱和后继结点之间分别存在着________、________和________的联系。

4. 一种抽象数据类型包括__________和__________两个部分。

5. 当一个形参类型的长度较大时,应最好说明为_________,以节省参数值的传输时间和存储参数的空间。

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

命令按钮。要求程序运行后,用户向文本框中输入字母,单击 Command1 按钮则文本框中 字母全部转换为大写;然后单击 Command2 按钮则文本框中字母全部转换为小写。请将下 列程序补充完整。 Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer) Text1.tag = Text1.Text End Sub Private Sub Command1_Click() Text1.Text = Ucase(Text1.Text) End Sub Private Sub Command2_click( ) Text1.Text = Lcase(Text1.Tag) End Sub
x=4 y = 12 Call a(x, y) Print x+y End Sub A.8 B.16√
C.12.4
5.2
第二卷 主观题 填空题(共 30 分,每项 2 分。注意:填两个空的题的时候,要按照从上至下,从左至右的 顺序添入答题卡! ) 1. 函数 odd 用于判断一个数是否是奇数。当单击命令按钮时,产生[1,9]之间的随机数,调 用 odd 过程,判断该数是否为奇数。如果是则显示“奇数” ,否则显示“偶数” 。14 Private Sub odd(n As Integer) Print n; If n/2<>n\2 Then Print "奇数" Else Print “偶数” End If End Sub Private Sub Command1_Click() Dim x As Integer Randomize x =Int(Rnd*9+1) odd x End Sub 2. 编写一个求最大公约数的函数,并调用该函数,程序如下:16 Function gcd(ByVal a As Integer,ByVal b As Integer) As Integer Dim re as integer Do While b<>0 re=a mod b a=b b=re Loop gcd=a End Function Sub Command1_Click() Dim x As Integer,y As Integer, z As integer X=96 Y=64 Z = gcd(x,y) Print “结果=”;z End Sub 3. 在窗体中添加一个名称为 Text1 的文本框,两个名称分别为 Command1 和 Command2 的
Loop f=m End Function Private Sub Command1_Click() print f(24, 18) End Sub A.6√ B.8 C.10 D.12 3. 单击命令按钮之后,下列程序代码的执行结果为。12 Private Function p(n As Integer) For I = 1 To n Sum = Sum + I Next I p = Sum End Function Private Sub Command1_Click() s = p(1) + p(2) + p(3) + p(4) Print s; End Sub A.10 B.20√ C.24 D.28 4. 写出如下程序运行结果。3 Function f(m As Integer) As Integer b=1 Static c As Integer b=b+1 c=c+1 f=m*b*c End Function Private Sub Command1_Click() Dim a As Integer a=2 sum=0 For I = 1 To 3 sum=sum+ f(a) Next I print sum End Sub A.12 B.16 C.20 D.24√ 5. 写出下面过程运行后显示的结果。3 Public Sub a(n As Integer, ByVal m As Integer) x = x Mod 10 y = y \ 10 End Sub Private Sub Command1_Click() Dim x As Integer, y As Integer
arr1 = Array(12, 435, 76, 24, 78, 54, 866, 43) Max = arr1(1) For I = 1 To 8 If arr1(I) > Max Then Max = arr1(I) Next I Print "最大值是: "; Max End Sub 2. 请用正确的内容填空。下面程序用“选择”法将数组 a 中的 10 个整数按升序排列。13 Option Base 1 Private Sub Form_Click() Dim a a = Array(678, 45, 324, 528, 439, 387, 87, 875, 273, 823) For I=1 To 9 For j= I+1 To 10 If a(I) > a(j) Then t=a(I): a(I)=a(j): a(j)=t End If Next j Next I For I=1 To 10 Print a(I); Next I End Sub 3. 请用正确的内容填空。以下程序用随机函数模拟掷骰子,统计掷 50 次骰子出现各点的次 数。4 Private Sub Form_Click() Dim d(6) For I=1 To 50 n=Int (Rnd * 6 +1) d(n)=d(n)+1 Next I For I= 1 To 6 Print I;"点出现";d(I);"次" Next I End Sub
第六章 过程
第一题:是非题(共 10 分,每项 1 分) 1. 通用过程可以放在标准模块中,也可以放在窗体模块中。8 A.对√ B.错 2. 函数调用时,实际参数与形式参数在数量必须完全一致。9 A.对 B.错√ 3. 数组作为过程参数时,使用的是地址传送方式。4
A.对√ B.错 4. 函数过程和子过程的区别是子过程结束将返回值过程值, 函数过程结束不必返回函数值。 A.对 B.错√ 第二题、 单选题(共 45 分,每项 1.5 分) 1. 下列说法错误的是______。7 A.在同一模块不同过程中的变量可以同名。 B.不同模块中定义的全局变量不可以同名。 C.引用另一模块中的全局变量时,必须在变量名前加模块名。√ D.同一模块中不同级的变量可以同名。 2. Sub 和 Function 的最大差别在于______。5 A.Function 有返回值,而 Sub 没有√ B.Function 需要输入参数,而 Sub 不用 C.Sub 可以用 Call 语句调用,而 Function 不行 D.两者并无不同 3. 全局变量必须在______中定义 9 A.标准模块√ B.任意模块 C.窗体模块 D.类模块 4. 要想在过程调用后返回两个结果,下面的过程定义语句合法的是______。11 A.Sub Proc1(ByVal n,Byval m) B.Sub Proc1(ByVal n, m) C.Sub Proc1(n,Byval m) D.Sub Proc1(n, m) √ 5. 使用 Public x 声明一个全局的变量时,该语句应放在______。9 A.过程中 B.窗体模块的通用声明段 C.标准模块的通用声明段√ D.窗体模块或标准模块的通用声明段 第三题、 简单程序(共 15 分,每项 1.5 分) 1. 以下程序的输出结果是______。2 Option Base 0 Private Sub Command1_Click() Dim a a=Array(1,2,3,4) j=1 For I=3 To 0 Step -1 s=s+a(I)*j j=j*10 Next I Print s End Sub A.4321 B.12 C.34 D.1234√ 2. 写出下列程序的运行结果,并说明函数的功能。4 Public Function f(m%, n%) Do While m <> n Do While m > n m=m–n Loop Do While n > m n=n–m Loop
第五章 数组
第二题、 单选题(共 45 分,每项 1.5 分) 1. 语句 Dim a(3,-3 to 0,3 to 6)声明的数组 a 有______元素。3 A.12 B.27 C.64√ D.80 2. 用语句 Dim a(-3 to 5) As Integer 定义的数组的元素个数是______。6 A.7 B.8 C.9√ D.10 第三题、 简单程序(共 15 分,每项 1.5 分) 1. 以下程序的输出结果是______。12 Option Base 1 Private Sub Command1_Click() Dim a(10),p(3) As Integer k=5 For I=1 To 10 a(I)=I Next I For I=1 To 3 p(I)=a(I*I) Next I For I=1 To 3 k=k+p(I)*2 Next I Print k End Sub A.33√ B.28 C.35 D.37 2. 运行下面程序后,在弹出的消息窗口中显示的是______。 Private Sub Form_Click() Dim Week,Day Week=Array("Mon","Tue","Wed","Thu","Fri","Sat","Sun") Day=Week(2) Day=Week(4) MsgBox Day End Sub A.Fir√ B.Tue C.Wed D.Thu 第二卷 主观题 填空题(共 30 分,每项 2 分。注意:填两个空的题的时候,要按照从上至下,从左至右的 顺序添入答题卡! ) 1. 以下程序的功能是:用 Array 函数建立一个含有 8 个元素的数组,然后查找并输出该数 组中元素的最大值。请填空。8 Option Base 1 Private Sub Command1_Click() Dim arr1, Max as Integer
相关文档
最新文档