一维数组试题
C语言程序设计单元测试题三【精品-doc】

C语言程序设计_单元测试题三本单元包含“数组、函数”的内容。
一、选择题1.以下为一维整型数组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];2.以下对二维数组a的正确说明是________.A)int a[3][]; B)float a(3,4);C)double a[1][4] D)float a(3)(4);3.若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为______.(假设a[0][0]位于数组的第一个位置上。
)A)i*m+j B)j*m+i C)i*m+j-1 D)i*m+j+14.若二维数组a有m列,则在a[i][j]前的元素个数为________.A)j*m+i B)i*m+j C)i*m+j-1 D)i*m+j+15.25.若有以下程序段:int a[]={4,0,2,3,1},i,j,t;for(i=1;i<5;i++){t=a[i];j=i-1;while(j>=0&&t>a[j]){a[j+1]=a[j];j--;}a[j+1]=t;}... ...则该程序段的功能是_________.A)对数组a进行插入排序(升序) B)对数组a进行插入排序(降序)C)对数组a进行选择排序(升序) D)对数组a进行选择排序(降序)6.有两个字符数组a、b,则以下正确的输入语句是_______.A)gets(a,B); B)scanf("%s%s",a,B);C)scanf("%s%s",&a,&B); D)gets("a"),gets("b");7.下面程序段的运行结果是_________.char a[7]="abcdef";</P< p>char b[4]="ABC";strcpy(a,B);printf("%c",a[5]);A)空格B)\0 C)e D)f8.判断字符串s1是否大于字符串s2,应当使用_______.A)if(s1>s2) B)if(strcmp(s1,s2))C)if(strcmp(s2,s1)>0) D)if(strcmp(s1,s2)>0)9.下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔,请选择填空。
c语言基础试题及答案

c语言基础试题及答案一、选择题1、在C语言中,引用数组元素时,其数组下标的数据类型允许是。
A、整型常量B、整型表达式C、整形常量或整形表达式D、任何类型的表达式2、以下对一维整型数组a的正确说明是____A、int a(10) ;B、int n=10,a[n];C、int n;scanf(“%d”,&n);int a[n];D、#define SIZE 10int a[SIZE];3、若有定义:int a[10],则对数组a元素的正确引用是A、a[10]B、a[3.5]C、a(5)D、a[10-10]4、以下能对一维数组a进行正确初始化的语句是。
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元素的正确引用是________A、a[2][4]B、a[1,3]C、a(5)D、a[10-10]6、以下能对二维数组a进行正确初始化的语句是_______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、若有说明:int a[3][4]={0};则下面正确的叙述是_______A、只有元素a[0][0]可得到初值0B、此说明语句不正确C、数组a中各元素都可得到初值,但其值不一定为0D、数组a中每个元素均可得到初值08、下面是对s的初始化,其中不正确的`是_____A、char s[5]={“abc”};B、char s[5]={‘a’,’b’,’c’,’d’,’e’,’0’};C、char s[5]=””;D、char s[5]=”abcdef”;二、程序填空1、以下程序把一个由小到大的有序数列放在a[1]到a[n]中,a[0]用作工作单元,程序把读入的x值插入到a数组中,插入后,数组中的数仍然的序。
第一章测试题参考答案

第一章测试试题参考答案一、单选题1.一个数组元素a[i]与____A____的表示等价。
A、*(a+i)B、a+iC、*a+iD、&a+i2.下面程序段的时间复杂度为____C________。
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)3.执行下面程序段时,执行S语句的次数为_____D_____。
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)/24.下面算法的时间复杂度为______B______。
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.当一个形参类型的长度较大时,应最好说明为_指针或引用型____,以节省参数值的传输时间和存储参数的空间。
6.当需要用一个形参访问对应的实参时,则该形参应说明为__指针或引用型___。
7.在函数中对引用形参的修改就是对相应__实参___的修改,对__值型__形参的修改只局限在该函数的内部,不会反映到对应的实参上。
8.一个数组a所占有的存储空间的大小即数组长度为___sizeof(a)____,下标为i的元素a[i]的存储地址为__a+i______,或者为____a+i*sizeof(a[0])___。
数据结构试题(含答案)讲解

数据结构试题一、单选题1、在数据结构的讨论中把数据结构从逻辑上分为(C )A 内部结构与外部结构B 静态结构与动态结构C 线性结构与非线性结构D 紧凑结构与非紧凑结构。
2、采用线性链表表示一个向量时,要求占用的存储空间地址(D )A 必须是连续的B 部分地址必须是连续的C 一定是不连续的D 可连续可不连续3、采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为( D )。
A nB n/2C (n-1)/2D (n+1)/24、在一个单链表中,若q结点是p结点的前驱结点,若在q与p之间插入结点s,则执行( D )。
A s→link = p→link;p→link = s;B p→link = s; s→link = q;C p→link = s→link;s→link = p;D q→link = s;s→link = p;5、如果想在4092个数据中只需要选择其中最小的5个,采用( C )方法最好。
A 起泡排序B 堆排序C 锦标赛排序D 快速排序6、设有两个串t和p,求p在t中首次出现的位置的运算叫做( B )。
A 求子串B 模式匹配C 串替换D 串连接7、在数组A中,每一个数组元素A[i][j]占用3个存储字,行下标i从1到8,列下标j从1到10。
所有数组元素相继存放于一个连续的存储空间中,则存放该数组至少需要的存储字数是( C )。
A 80B 100C 240D 2708、将一个递归算法改为对应的非递归算法时,通常需要使用( A )。
A 栈B 队列C 循环队列D 优先队列9、一个队列的进队列顺序是1, 2, 3, 4,则出队列顺序为( C )。
10、在循环队列中用数组A[0..m-1] 存放队列元素,其队头和队尾指针分别为front和rear,则当前队列中的元素个数是( D )。
A ( front - rear + 1) % mB ( rear - front + 1) % mC ( front - rear + m) % mD ( rear - front + m) % m11、一个数组元素a[i]与( A )的表示等价。
2015山西省数据结构(C++)理论考试试题及答案

C)空表 D)((a,b),(c,d))
38、设有一个栈,元素的进栈次序为A, B, C, D, E,下列是不可能的出栈序列是( C )。
A) A, B, C, D, E
C)查找 D)定位
9、下面程序段的时间复杂度是( A )。
s =0;
for( i =0; i<n; i++)
for(j=0;j<n;j++)
s +=B[i][j];
sum = s ;
A) O(n2) B) O(n)
A)必须是连续的 B)连续不连续都可以
C)部分地址必须是连续 D)必须是不连续的
5、如果结点A有3个兄弟,而且B为A的双亲,则B的度为( B )。
A)3 B)4 C)5 D)1
6、下面关于线性表的叙述中,错误的是哪一个?( D )
C) O(m*n) D)O(1)
10、下列序列中,执行第一趟快速排序后得到的序列是( A )。
A)[d,a,e,d,b]f[h,g] B) [c,e,a,d]f[h,g,b]
C) [g,a,e,c,b]f[d,h] D) [a,b,c,d,]f[e,g,h]
1、用一维数组A进行顺序存储时,若起始地址为loc(A1),元素长度为c,则A的第i个数组单元在存放地址loc(Ai),等于( B )。
A)loc(A1)+i*c B)loc(A1)+(i-1)*c
C)loc(A1)+i*c+1 D)loc(A1)+(i+1)*c
A)9 B)11 C)15 D)不能确定
23、n个顶点的强连通图至少有( A )条边。
大学数据结构期末考试试题(有答案)

“数据结构”期末考试试题一、单选题(每小题2分,共12分)1.在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行( )。
A. HL=ps p一〉next=HLB. p一>next=HL;HL=p3C. p一>next=Hl;p=HL;D. p一〉next=HL一>next;HL一〉next=p;2.n个顶点的强连通图中至少含有( )。
A。
n—l条有向边 B.n条有向边C.n(n-1)/2条有向边 D。
n(n一1)条有向边3.从一棵二叉搜索树中查找一个元素时,其时间复杂度大致为( )。
A。
O(1) B.O(n)C.O(1Ogzn)D.O(n2)4.由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( )。
A.24 B.48C. 72 D. 535.当一个作为实际传递的对象占用的存储空间较大并可能需要修改时,应最好把它说明为( )参数,以节省参数值的传输时间和存储参数的空间。
A。
整形 B。
引用型C。
指针型 D。
常值引用型·6.向一个长度为n的顺序表中插人一个新元素的平均时间复杂度为()。
A.O(n) B.O(1)C.O(n2) D.O(10g2n)二、填空题(每空1分,共28分)1.数据的存储结构被分为——、——、——和-—四种.2.在广义表的存储结构中,单元素结点与表元素结点有一个域对应不同,各自分别为——域和——域。
3.—-中缀表达式 3十x*(2.4/5—6)所对应的后缀表达式为—-——。
4.在一棵高度为h的3叉树中,最多含有—-结点。
5.假定一棵二叉树的结点数为18,则它的最小深度为-—,最大深度为——·6.在一棵二叉搜索树中,每个分支结点的左子树上所有结点的值一定-—该结点的值,右子树上所有结点的值一定-—该结点的值。
7.当向一个小根堆插入一个具有最小值的元素时,该元素需要逐层—-调整,直到被调整到——位置为止。
c语言一维数组上机考试题目

c语言一维数组上机考试题目
以下是一些关于C语言一维数组的常见上机考试题目:
1. 编写一个程序,输入一个整数n,求出1到n之间所有偶数的和。
2. 编写一个程序,输入一个整数n,求出1到n之间所有数字的阶乘之和。
3. 编写一个程序,输入一个整数n,求出1到n之间所有数字的立方之和。
4. 编写一个程序,输入一个整数n,求出1到n之间所有数字的平方之和。
5. 编写一个程序,输入一个整数n,求出1到n之间所有数字的倒数之和。
6. 编写一个程序,输入一个整数n,求出1到n之间所有数字的绝对值之和。
7. 编写一个程序,输入一个整数n,求出1到n之间所有数字的因子之和。
8. 编写一个程序,输入一个整数n,求出1到n之间所有数字的质因子之和。
9. 编写一个程序,输入一个整数n,求出1到n之间所有数字的奇数因子之和。
10. 编写一个程序,输入一个整数n,求出1到n之间所有数字的因子个数之和。
以上题目只是示例,实际上关于C语言一维数组的上机考试题目还有很多其他类型。
考生应该掌握一维数组的基本概念和操作,并且能够灵活运用数组来解决问题。
国家开放大学C语言试题及参考答案

1.C语言中的循环类语句有3条,它们是()。
选择一项:A. for,if,whileB. for,while,doC. while,do,switchD. for,break,do正确答案是:for,while,do2.C语言中的跳转类语句有四条,它们是goto,return和()。
A. break,constB. static,continueC. break,continueD. while,extern正确答案是:break,continue3.当不需要函数返回任何值时,则所使用的返回类型为()。
A. IntB. unionC. voidD. Void 正确答案是:void4.在一个函数定义中,函数头包括的3个部分依次为函数类型、函数名和()。
选择一项:A. 表达式B. 语句C. 函数体D. 参数表正确答案是:参数表5.在一个程序文件的开始,若需要使用一个包含命令包含一个头文件时,则命令标识符为A. #cludeB. #constC. #includeD. #defile正确答案是:#include6.在#include预处理命令中,不可以包含()。
A. 系统头文件B. 程序文件C. 用户头文件D. 目标文件正确答案是:目标文件7.在printf()函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据占用的字符位置个数为()。
选择一项:A. 5B. 6C. 4D. 2正确答案是:68.在printf()函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据中,其小数部分占用的字符位置个数为()。
选择一项:A. 5B. 6C. 4D. 2正确答案是:29.在printf()函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据中,其整数部分占用的字符位置个数为()。
A. 6B. 4C. 3D. 2正确答案是:310.在scanf()函数调用的格式字符串中,若使用格式符为“%f”,则对应输入的数据类型为()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言考试试题[一维数组]
姓名:学号:成绩:
一、填空题:(每题1分,共10分)
1、数组是构成的集合。
2、数组元素被顺序连续地存放在内存中,并通过进行访问。
3、数组元素的下标从开始。
长度为n的数组中,最后一个元素下标为。
4、一维数组是最简单的数组,其定义形式是:。
5、一个C字符串是以结束的字符序列。
6、专门用于字符串的输入和输出的函数是。
7、float fv[]={0,4,5,12,-7,,0};数组fv的长度是_________。
8、存储字符串“\0”占用________字节的存储单元。
9.有定义int a[]={4,6,78,3456,98,2,89};该数组元素最大的下标为___________。
二、单项选择题,请将答案写在下列答题卡中(每题2分,共24分 )。
1、以下正确的概念是()
A、数组名的规定与变量名不相同。
B、数组名后面的常量表达式用一对圆括号括起来。
C、数组下标的数据类型为整型常量或整型表达式。
D、在C语言中,一个数组的数组下标从1开始。
2、对数组初始化正确的方法是:
A、int a(5)={1,2,3,4,5};
B、int a[5]={1,2,3,4,5};
C、int a[5]={1…5};
D、int a[5]={0,1,2,3,4,5};
3、若有以下的数组定义:char x[]=”12345”; char y[]={‘1’,’2’,’3’,’4’,’5’};
则正确的描述是:()
A、x数组和y数组长度相同
B、x数组长度大于y数组长度
C、x数组长度小于y数组长度
D、两个数组中存放相同的内容
4、以下程序运行时,从键盘输入:AhaMA Aha<回车>,则下面程序的
运行结果是()
#include <>
main()
{char s[80],c=’a’;
int m=0; scanf(“%s”,s);
while(s[m]!=’\0’)
{ if(s[m]==c) s[m]=s[m]-32;
else if(s[m]==c-32) s[m]=s[m]+32;
m++;}
puts(s);}
A、ahAMa
B、AhAMa
C、AhAMa ahA
D、ahAMa ahA
5、给出以下定义:char x[]=”abcdefg”; char y[]={‘a’,’b’,’c’,’d’,’e’,’f’,’g’};则正确的叙述为:()A 数组A和数组属于空数组 B 数组X和数组Y的长度相同
C 数组X的长度大于数组Y的长度 D数组X的长度小于数组Y的长度
6、下面程序的运行结果是()
main()
{char a[]=”morn ing”,t;int m,n=0;
for(m=1;m<7;m++)
if(a[n]<a[m]) n=m;
t=a[n];a[n]=a[7];a[7]=a[n];puts(a);}
A、mogninr
B、mo
C、morning
D、mornin
7、字符数组C在内存中所占字节数是:()
char c[]={“language”};
A、9
B、10
C、11
D、12
8、下列程序的输出结果是()
main()
{int n[2],m,k;
for(m=0;m<2;m++) n[m]=m;k=2;
for(m=0;m<3;m++) printf(“%d\n”,n[k]);}
A、不确定的值
B、3
C、2
D、1
9、在C语言中引用数组元素时,其数组下标的数据类型允许是()A.整型常量 B.整型表达式
C.整型常量或整型表达式 D.任何类型表达式
10.定义一个具有8个元素的整型数组,应使用的语句是()
A.int a[8]; a[2,4]; C. int a[]; *a[8];
11.字符串“w\x53\\\np\103q”长度是()
A.7 .9 C
12.已知int cn=20;下列关于数组的定义正确的是()
A.int a[cn]; cmt[];
nm[8]=”2014高考”; x[31];
三、程序分析题,写出下面各程序的输出结果。
(每小题5分,共20分)①、#include “”
main()
{int x,sum=3;
int a[]={2,3,4,5,6,7,8,9};
for(x=1;x<7;x*=2)
sum=sum+a[x];
printf(“sum=%d\n”,sum);
}
程序运行结果:
②、 #include “”
main()
{ int a[8]={1,4,3,56,77,44,66,88};
int x=0,y=0,i;
for (i=0;i<8;i++)
{ if(a[i]%2==0)
x=x+1
else y=y+1; }
printf(“X=%d,Y=%d\n”,x,y);
}程序运行结果:
③、#include <>
main( ) {int m,f[10];
f[0]=f[1]=1;
for(m=2;m<10;m++)
f[m]=f[m-2]+f[m-1];
for(m=0;m<10;m++)
{ printf(“%3d”,f[m]);}
2.连续向数组输入若干成绩,并输出这些成绩。
当输入负数时停止接收数据。
}程序运行结果:
④、main( )
{int a=2,b=3,c=4;
++a;c+=++b;
c=b*3;a+=c; printf(“A:%d,%d,%d\n”,a,b,c);
a+=c; printf(“B:%d,%d,%d\n”,a,b,c);}
printf(“C:%d,%d,%d\n”,a,b,c);}
}程序运行结果:
四、程序填空题:(前两题15分,最后一题16分,共46分)。
1.从键盘输入20个数存入在一个数组中,计算所有元素之和及平均值,并找
出最大值和最小值。
3.从键盘上输入一行字符(不多于40个,以回车行符作为输入结束标记)将其
中的大写字母转换成小写字母,其它字符不变,然后输出。