数组习题
C语言习题集合(数组)

C语言习题集合(数组)第四章数组4.1 选择题1. 以下关于数组的描述正确的是( )。
A. 数组的大小是固定的,但可以有不同的类型的数组元素B. 数组的大小是可变的,但所有数组元素的类型必须相同C. 数组的大小是固定的,所有数组元素的类型必须相同D. 数组的大小是可变的,可以有不同的类型的数组元素2. 以下对一维整型数组a的正确说明是( )。
A.int a(10);B. int n=10,a[n];C.int n;D. #define SIZE 10 scanf("%d",&n); int a[SIZE];int a[n];3. 在C语言中,引用数组元素时,其数组下标的数据类型允许是( )。
A. 整型常量B. 整型表达式C. 整型常量或整型表达式D. 任何类型的表达式4. 以下对一维数组m进行正确初始化的是( )。
A. int m[10]=(0,0,0,0) ;B. int m[10]={ };C. int m[ ]={0};D. int m[10]={10*2};5. 若有定义:int bb[ 8];。
则以下表达式中不能代表数组元bb[1]的地址的是( )。
A. &bb[0]+1B. &bb[1]C. &bb[0]++D. bb+16. 假定int类型变量占用两个字节,其有定义:intx[10]={0,2,4};,则数组x在内存中所占字节数是( )。
A. 3B. 6C. 10D.207. 若有以下说明:int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c='a',d,g;则数值为4的表达式是( )A. a[g-c]B. a[4]C. a['d'-'c']D. a['d'-c]8. 以下程序段给数组所有的元素输入数据,请选择正确答案填入( )。
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. 请编写一个程序,创建一个长度为5的整型数组,然后将数组中的元素依次赋值为1、2、3、4、5,并输出数组中的所有元素。
2. 请编写一个程序,创建一个长度为10的字符型数组,然后将数组中的元素依次赋值为'A'、'B'、'C'、'D'、'E'、'F'、'G'、'H'、'I'、'J',并输出数组中的所有元素。
3. 请编写一个程序,创建一个长度为7的浮点型数组,然后使用循环从键盘输入数组中的元素值,并计算数组中所有元素的平均值。
二、查找与排序题4. 请编写一个程序,在一个已知整型数组中查找指定的元素。
如果找到该元素,则输出该元素的下标位置;如果未找到,则输出"未找到该元素"。
5. 请编写一个程序,将一个已知整型数组按照从小到大的顺序进行排序,并输出排序后的结果。
三、统计与分析题6. 请编写一个程序,统计一个整型数组中负数的个数,并输出统计结果。
7. 请编写一个程序,计算一个整型数组中所有元素的和,并输出总和。
8. 请编写一个程序,找出一个整型数组中的最大值和最小值,并输出这两个值。
四、应用题9. 请编写一个程序,统计一个整型数组中奇数和偶数的个数,并输出统计结果。
10. 请编写一个程序,从一个已知整型数组中删除指定的元素,并输出删除后的数组。
11. 请编写一个程序,将一个整型数组中的所有元素向左移动一位,并输出移动后的数组。
12. 请编写一个程序,将一个整型数组中的所有元素向右移动一位,并输出移动后的数组。
总结:通过以上一系列的数组练习题,您可以逐步掌握数组的使用技巧。
C程序设计(数组)习题与答案

一、单选题1、若有定义 char s[10];则在下面表达式中不表示s[1]的地址的是()。
A.s++B.&s[0]+1C.&s[1]D.s+1正确答案:A2、若有定义int a[5],*p=a;则对a数组元素的正确引用是()。
A.a+2B.*(a+2)C.*&a[5]D.*(p+5)正确答案:B3、若有定义int a[5],*p=a;则对a数组元素地址的正确引用是()。
A.p+5B.&a+1C.*a+1D.&a[0]正确答案:D4、若要对a进行合法的自减运算,则之前应有下面()的说明。
A.int b[10];int *a=b+1;B.int k;int *a=&k;C.int p[3];int *a=p;D.char *a[3];正确答案:A5、若有定义int x[10]={0,1,2,3,4,5,6,7,8,9},*p1;则数值不为3的表达式是()。
A.p1=x+3,*p1++B.x[3]C.p1=x+2,*++p1D.p1=x+2,*(p1++)正确答案:D6、设int x[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 0},*p=x,k;且0≤k<10, 则对数组元素x[k]的错误引用是()。
A.x[p-x+k]B.p+kC.*(&x[k])D.*(x+k)正确答案:B7、设double *p[6];则()。
A.p是指针数组,其元素是指向double型变量的指针B.p是指向double型变量的指针C.p是double型数组D.p是数组指针,指向double型数组正确答案:A8、若有定义int x[6]={2,4,6,8,5,7},*p=x,i;要求依次输出x数组6个元素中的值,不能完成此操作的语句是()。
A.for(i=0;i<6;i++) printf("%2d",*p++);B.for(i=0;i<6;i++) printf("%2d",*(p+i));C.for(i=0;i<6;i++) printf("%2d",*(p++));D.for(i=0;i<6;i++) printf("%2d",(*p)++);正确答案:D9、下面程序执行后的输出结果是()。
习题五--数组

习题五--数组⼀、A类程序设计题1、求⼀个4x4矩阵对⾓线元素之和。
2、⽤数组的⽅法求Fibonacci数列的值(要求输出前20个数)。
3、将⼀个3x4矩阵转置(⾏列互换)存放。
4、将⼀个数组中的数按逆序存放,例如原来的顺序为8,7,6,4,2,要求改为2,4,6,7,8。
5、⽤选择法对10个整数进⾏降序排序。
6、⽤冒泡法对10个整数进⾏升序排序。
7、编写⼀个简单程序,要求:(1)从键盘上输⼊8个整数放⼊数组a[8]中(⽤for循环实现);(2)求出数组元素的最⼤值及数组的平均值。
8、求3×4矩阵中每⼀列元素的最⼤值并输出。
9、求4×4矩阵中每⼀⾏元素的最⼩值并输出。
10、某班有30个学⽣,进⾏了数学考试,编写程序将考试成绩输⼊⼀维数组,并求数学的平均成绩及不及格学⽣的⼈数。
11、有⼀个3x4矩阵,求出最⼤元素,以及其所在的⾏号和列号。
12、从键盘上输⼊10个实数,然后按输⼊顺序的逆序输出这10个数。
13、从键盘输⼊10个整数,找出其中最⼤值和最⼩值。
14、输⼊10个学⽣的姓名、学号和成绩,将其中不及格者的姓名、学号和成绩输出。
15、输⼊字符串 s,统计出 s 中共出现了多少个数字字符。
⼆、B类程序设计题1、对⼀个已按由⼩到⼤排好顺序的整型数组,若从键盘输⼊⼀个数x,现要查询该数是否在此整型数组中,若存在则删除该数,否则显⽰“不存在”信息。
2、对⼀个已按由⼩到⼤排好顺序的整型数组,若从键盘输⼊⼀个数x,现要将该数插⼊到该数组中,使其插⼊后整个数组排序规律不变。
3、编写⼀程序,要求从键盘上输⼊10个整数放⼊⼀个数组中(⽤for循环实现),并编写求最⼤值的函数max,在主程序调⽤这个函数实现输出数组中10个整数的最⼤值,要求⽤数组名作为函数参数。
4、输⼊⼀个4⾏4列的⼆维数组,编程实现:(1) 求出其中的最⼤值和最⼩值及其对应的⾏列位置;(2) 求出对⾓线上各元素之和。
5、⽤筛选法求100之内的素数。
数组练习题

数组练习题1.下面数组声明语句,_________正确。
A)Dim a[2,4] As Integer B)Dim a(2,4)As IntegerC)Dim a(n,n)As Integer D)Dim a(2 4)As Integer2.假定建立了一个名为Command1的命令按钮数组,则以下说法中错误的是________。
A)数组中每个命令按钮的名称(名称属性)均为Command1B)数组中每个命令按钮的标题(Caption属性)都一样C)数组中所有命令按钮可以使用同一个事件过程D)用名称Command1(下标)可以访问数组中的每个命令按钮3.数组声明语句Dim a(-2 to2,5)中,数组包含元素个数为________。
A)120 B)30 C )60 D)204.下面程序的输出结果是________。
Dim aa = Array(1,2,3,4,5,6,7)For i = Lbound(a)to Ubound(a)a(i)= a(i)* a(i)Next iPrint a(i)A)36 B)程序出错C)49 D)不确定5.下面程序的输出结果是________。
Option Base 1Private Sub Command1_Click()Dim a%(3, 3)For i = 1 To 3For j = 1To 3If j > 1 And i > 1 Thena(i, j)= a(a(i - 1, j - 1), a(i, j - 1))+ 1Elsea(i, j)= i * jEnd IfPrint a(i, j); "";Next jPrintNext iEnd SubA)1 2 3 B)1 2 3 C )1 2 3 D)1 2 32 3 1 1 2 3 2 4 6 2 2 23 2 3 1 2 3 3 6 9 3 3 36.在设定Option Base 0后,经Dim arr(3,4)As Integer 定义的数组arr含有的元素个数为________。
数据结构第五章数组习题

第五章数组习题1、假设以行序为主序存储二维数组A=array[1..100,1..100],设每个数据元素占2个存储单元,基地址为10,则LOC[5,5]=()。
A、808B、818C、1010D、10202、数组A[0..5,0..6]的每个元素占五个字节,将其按列优先次序存储在起始地址为1000的内存单元中,则元素A[5,5]的地址是( )。
A、1175B、1180C、1205D、12103、若对n阶对称矩阵A以行序为主序方式将其下三角形的元素(包括主对角线上所有元素)依次存放于一维数组B[1..(n(n+1))/2]中,则在B中确定a ij(i<j)的位置k的关系为( )。
A、i*(i-1)/2+jB、j*(j-1)/2+iC、i*(i+1)/2+jD、j*(j+1)/2+i4、对稀疏矩阵进行压缩存储目的是()。
A、便于进行矩阵运算B、便于输入和输出C、节省存储空间D、降低运算的时间复杂度5、已知广义表L=((x,y,z), a, (u,t,w)),从L表中取出原子项t的运算是()。
A、head(tail(tail(L)))B、tail(head(head(tail(L))))C、head(tail(head(tail(L))))D、head(tail(head(tail(tail(L)))))6、已知广义表LS=((a,b,c),(d,e,f)),运用head和tail函数取出LS中原子e的运算是( )。
A、head(tail(LS))B、tail(head(LS))C、head(tail(head(tail(LS)))D、head(tail(tail(head(LS))))7、多维数组之所以有行优先顺序和列优先顺序两种存储方式是因为()。
A、数组的元素处在行和列两个关系中B、数组的元素必须从左到右顺序排列C、数组的元素之间存在次序关系D、数组是多维结构,内存是一维结构8、二维数组M[0..7,0..9]的元素是由4个字符组成的串(每个字符占用1个存储单元),存放M需要存储单元数为()。
C数组习题

一、选择题:1.若有以下数组说明,则数值最小的和最大的元素下标分别是(b )。
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};A.1,12B.0,11C.1,11D.0,122.若有以下数组说明,则i=10;a[a[i]]元素数值是(c)。
int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};A.10B.9C.6D.53.若有以下说明,则数值为4的表达式是( d)。
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c='a’,d,g;A.a[g-c]B.a[4]C.a[‘d’-‘c’]D.a[‘d’-c]4.下列语句中,正确的是(d )。
A.char a[3][]={‘abc’,‘l’};B.char a[][3]={‘abc’,‘l’};C.char a[3][]={‘a’,“l”};D.char a[][3]={“a”,“l”};5.下列定义的字符数组中,“printf(“%s\n”,str[2]);”的是输出是(c )。
static str[3][20]={“basic”,“foxpro”,“windows”};A.basicB.foxproC.windowsD.输出语句出错6.合法的数组定义是(d)。
A.int a[]={“string”};B.int a[5]={0,1,2,3,4,5};C.char a={“string”};D.char a[]={0,1,2,3,4,5};7.语句“printf((“%d\n”,strlen(“ats\no12\1\\”));”的输出结果是(c )。
A.11B.10C.9D.88.设有如下字符数组定义,则合法的函数调用是(a )。
char a[]={“I am a student”},b[]={“techer”};A.strcmp(a,b);B.strcpy(a,b[0]);C.strcpy(a[7],b);D.strcat(a[7],b);9.设有如下定义,则正确的叙述为( c )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数组练习选择题单选题×1.以下程序的输出结果是#include<iostram.h>#include<string.h>int main (){ char st*20+=”hello\0\t”;printf("%d %d",strlen(st),sizeof(st)); }A. 9 9B. 5 20C. 13 20D. 20 20[答案] B×2.有以下程序:#include <string>int main(){ char s[] = "\n123\\";printf("%d,%d",strlen(st),sizeof(st)); }该程序执行后的输出结果是A. 赋初值的字符串有错B. 6,7C. 5,6D. 6,6[答案] C×3.如有以下定义语句:int a[10];float b[2];则sizeof(a) 和sizeof(b) 的值为A. 2 4B. 10 2C. 0 0D. 40 8[答案] D×4.如有数组名作为实参,则传递给形参的是()A. 数组的首地址B. 第一个元素的值C. 数组中全部元素的值D. 数组元素的个数[答案] A×5.有下列程序段:#include<stdio.h>int main(){char b*+=”Hello,you”;b[5]=0;printf(”%s\n”,b);return 0; }执行此程序后,得到的输出结果是A. Hello,youB. HelloyouC. HelloD. 0[答案] C×6.若有说明”int a[][4]={0,0};”则下列正确的叙述是A. 只有元素a[0][0]可得到初值0B. 此说明语句不正确C. 数组a中个元素都可得到初值,但其值不一定为0D. 数组a中每个元素均可到初值0[答案] B×7.以下各组选项中,均能正确定义二维实型数组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];float a[][4]={{0},{0}};float a[][4]={{0},{0},{0}};D. float a[3][4];float a[3][];float a[][4];[答案] C×8.以下程序的输出结果是()#include<stdio.h>void main (){ int I,x[3][3]={1,2,3,4,5,6,7,8,9};for(I=0;I<3;I++)printf(“%d”,x[I][2-i]); }A. 1,5,9B. 1,4,7C. 3,5,7D. 3,6,9[答案] C×9.以下程序的输出结果是()#include<stdio.h>int main(){ int a[3][3]={{1,2},{3,4},{5,6}},I,j,s=0;for(I=1;I<3;I++)for(j=0;j<=1;j++) s+=a[I][j];printf(“%d”,s); }A. 18B. 19C. 20D. 21[答案] A×10.在C++语言中引用数组元素时,其数组下标的数据类型允许的是A. 整型常量B. 整型表达式C. 整型常量或整型表达式D. 任何类型的表达式[答案] C×11.以下选项中,不能正确赋值的是A. char s1*10+;s1=”Ctest”;B. char s2*+=,‘C’,’t’,’e’,’s’,’t’-;C. char s3*20+=”Ctest”;D. char s4=”Ctest\n”;[答案] A×12.以下能正确定义一维数组的选项是A. int num*+;B. int num*0…100+;C. #define n 100 int num[n]D. int n=100 int num[n];[答案] C×13.有如下数组声明”int values[30];”,下标值引用错误的是A. values[30]B. values[20]C. values[10]D. values[0][答案] A×14.有以下程序:main(), char a*+=”ABCDEFG”;int m,n,t;m=0;n=strlen(a)-1;while(m<n){t=a[m];a[m]=a[n];a[n]=t;m++;n--;}printf(“%s”,a); } } 执行结果为()A. ABCDEFGB. ABCGEFDC. GFEDCBAD. 不正确[答案] C×15.以下程序的输出结果是()main (){ int a[8]={1,2,3,4,5,6,7,8},sum,I;for (I=0;I<8;I=I+2){ sum=sum+ a[I];}Printf(“sum=%d”,sum); }A. 输出一个不正确的值B. sum=36C. sum =20D. sum=16[答案] D×16.下列说法正确的是A. 数组如果没有初始化,也没有被赋值,则每个元素的默认值为0B. 在给数组初始化时,可以只给其中几个元素赋初值C. 数值型数组不能使用赋值语句整体赋值,但字符型数组可以使用赋值语句整体赋一个字符串D. 用一个字符型数组来存放字符串时,可以存放与数组长度祥等数目的有效字符[答案] B×17.下列说法正确的是A. 在定义一维数组时,数组长度可以任意整形表达式表示B. 在定义二维数组时,数组的第一维和第一维长度只能省略其中一个C. 数组元素的下标可以用整型表达式或整型常量表示D. 数组元素的下标必须为整形常量[答案] C×18.对两个数组a和b进行如下初始化:char a*+=”ABCDEF”;char b*+=,‘A’,’B’,’C’,’D’,’E’,’F’-;则下面描述正确的是()A. a 和b数组完全相同B. a 和b中都存放字符串C. sizeof(a)比sizeof(b)大D. sizeof(a)与sizeof(b)相同[答案] C×19.以下程序的输出结果是()#include <stdio.h>int main(){ char w[][10]={"ABCD","EFGH","IFKL","MBOP"},k;for(k=1;k<3;k++)printf(“%s”,w[k]);return 0; }A. ABCDEFGHB. EFGHIFKLC. ABCD EFGH IJKLD. EFGH IFKL MNOP[答案] B×20.有以下程序:main(){ char a[20]="abcd",b[]="12345";int m,n;for(m=strlen(a),n=2;b[n]!='\n';m++,n++){a[m]=b[n];a[m]='\0';printf(“%s,%s”,a,b);}A. abcd12345,12345B. abcd,12345C. abcd12345,abcdD. abcd345,12345[答案] D填空题1. 以下函数的功能是删除字符串s中的所有数字字符。
请填空。
void dele(char *s){ int n = 0;for(i = 0; s[i] ; i++) { if ( ) s[n+1] = s[i]; }s*n+ = ‘\0’;}[答案] s[i]<'0'||s[i]>'9'3. 下面程序的功能是:将字符数组a中下标值为公里数的元素从小到大排列,其他元素不变。
请填空完成此程序。
#include <stdio.h>#include <string>int main(){ char a*+=”changuage”,t,m;int i,j,k;k=strlen(a);for(i=0;i<=k;i+=2){ m=I;for(j=i+2;j<=k;)if(a[m]>a[j]) m=j;if( ) {t=a[i];a[I]=a[m];a[m]=t; }}Printf(“%s\n”,a);return 0;}[答案] (1)j+=2 (2)m!=i4. 若二维数组b有m列,则b[i][j]的元素个数为[答案] i*m+j6. 定义如下数组:int i; int y[2][3]={2,4,6,8,10,12};则下面语句的输出结果是:for(I=0;I<2;i++) printf(“%d,”,y[1-i][i+1]);[答案] 10,127. 下面程序的输出结果是[答案] SWL*#include<stdio.h>void main(){ char str*+=”SSSWLIA”,c;int k;for(k=2;(c=str*k+!=’\0’);k++){ swith(c),case ‘i’; ++k;break;ca se ‘1’;conintue;default :printf(“%d”, c);coutinue; }printf(“*”)}}8. 当运行以下程序时,从键盘输入:AhaMA Aha,然后回车,则下面程序的运行结果是[答案] ahAMa#include<stdio.h>int mian(){ char s*80+,c=’a’;int I=0;scanf(“%s”,s);while(s*I+!=’\0’){ if(s[I]==c-) a[I]=s[I]-32;else if(s[I]==c-32) s[I]=s[I]+32;I++;}Printf(“%s”,s);。