第06章 数组补充练习题
数组练习及答案
数组练习及答案数组练习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) 数组的⼤⼩是固定的,但可以有不同类型的数组元素。
数组练习题大全
数组练习题大全数组是计算机编程中一种重要的数据结构。
掌握数组的基本操作和应用是每个程序员都需要具备的技能之一。
本文将为您提供一系列数组练习题,帮助您熟练掌握数组的使用。
一、基础操作题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. 请编写一个程序,将一个整型数组中的所有元素向右移动一位,并输出移动后的数组。
总结:通过以上一系列的数组练习题,您可以逐步掌握数组的使用技巧。
第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:数组的基本操作题目:编写一个程序,实现以下功能: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语言数组练习题
c语言数组练习题C语言数组练习题在学习C语言的过程中,数组是一个非常重要的概念。
数组可以用来存储一系列相同类型的数据,它能够提供快速访问和处理数据的能力。
为了巩固对数组的理解和运用,我们可以进行一些练习题。
1. 数组的初始化数组的初始化是指在定义数组的同时给数组元素赋初值。
例如,我们可以定义一个长度为5的整型数组,并给它的元素赋初值:```cint arr[5] = {1, 2, 3, 4, 5};```请尝试定义一个长度为10的字符型数组,并给它的元素赋初值。
2. 数组元素的访问数组的元素可以通过下标来进行访问。
数组的下标从0开始,最大下标为数组长度减1。
例如,我们可以通过下标访问数组的元素:```cint num = arr[2]; // 获取arr数组中下标为2的元素```请尝试定义一个长度为6的浮点型数组,并访问其中的第4个元素。
3. 数组的遍历数组的遍历是指依次访问数组中的每个元素。
我们可以使用循环语句来遍历数组。
例如,我们可以使用for循环遍历数组并打印每个元素:```cfor (int i = 0; i < 5; i++) {printf("%d ", arr[i]);}```请尝试定义一个长度为8的整型数组,并使用循环语句遍历数组并打印每个元素。
4. 数组的求和数组的求和是指将数组中的所有元素相加。
我们可以使用循环语句遍历数组,并将每个元素累加到一个变量中。
例如,我们可以计算数组中所有元素的和:```cint sum = 0;for (int i = 0; i < 5; i++) {sum += arr[i];}```请尝试定义一个长度为7的整型数组,并计算数组中所有元素的和。
5. 数组的逆序数组的逆序是指将数组中的元素颠倒顺序。
我们可以使用两个指针分别指向数组的首尾元素,并交换它们的值,然后逐步向中间移动。
例如,我们可以将数组逆序:```cint start = 0;int end = 4;while (start < end) {int temp = arr[start];arr[start] = arr[end];arr[end] = temp;start++;end--;}```请尝试定义一个长度为6的整型数组,并将数组逆序。
数组习题及答案
构造数据对象——数组一、填空题1.数组是一组相同的集合。
2.数组名代表数组的。
3.数组元素在数组中的位置序号称为它是从开始整数。
4.有int a[ ]={4,6,2,12,435,-9,76,0,0};该数组元素值最大的下标为。
5.定义数组tw,其能存储23个长整形数的语句为。
6.有说明语句int a[10]={1,2,3,4,5,6};则元素a[9]的值为。
7.数组char c[ ]=”abcd”中有个元素,最后一个元素是。
8.”a”在内存中占个存储单元。
9.定义一个能存放下字符串Vocation的字符数组enm的语句为。
10.定义一个可保存100个整型数的数组pn,并把每个元素初值设为0的语句是。
11.与puts(ss)等价的printf函数调用是。
二、选择题1.下面关于数组的说法,不正确的是()A.数组总为一个整体,可以参加算术运算B.数组中的数组元素相当于一个简单变量C.数组可以用来保存字符串D.数组是一组连续的,类型相同的数据集合2.下列说法不是数组特性的是()A.数组元素类型相同B.数组长度固定C.数组占用连续的内存空间D.数组可作为一个整体参与运算3.定义一个具有8个元素的整形数组,应使用语句()A.int a[8]; B.int a[2,4];C.int a[ ]; D.int *a[8];4. 以下能正确定义一维数组的选项是()A.int num[ ];B.#define N 100 int num[N];C.int num[0..100];D.int N=100;5.下面对s的初始化,不正确的是()A.char s[5]={“abcd”};B.char s[5]={‘a’,’b’,’c’};C.char s[5]=””;D.char s[5]=”abcd”;6.对以下说明语句正确的理解是()int a[10]={6,7,8,9,10,12};A.将6个初值依次赋值给a[1]至a[5];B.将6个初值依次赋值给a[0]至a[5];C.将6个初值依次赋值给a[5]至a[10];D.因数组长度和初值的个数不同,所以此语句不正确7.用scanf语句为数组a中的第二个数组元素输入数据,格式正确的是()A.scanf(“%d”,a[2]);B.scanf(“%d”,&a[2]);C.scanf(“%d”,&a[1]);D.scanf(“%d”,a(1));三、判断题1.数组在内存中占用的空间是不连续的。
(完整版)数组的概念及基本性质练习题
(完整版)数组的概念及基本性质练习题
1. 数组的概念
数组是一种数据结构,用于存储相同类型的元素。
它是由一组连续的内存区域组成,每个元素可以通过索引访问。
数组可以表示一维、二维或多维结构。
2. 数组的基本性质
a) 数组的长度
数组的长度是指数组中元素的个数。
使用索引从0开始计数,所以数组的长度等于最大索引值加1。
b) 数组的元素类型
数组的元素类型决定了数组中可以存储的值的类型。
数组可以存储整数、浮点数、字符、字符串等各种类型的元素。
c) 数组的访问
数组中的元素可以通过索引访问。
使用方括号和索引值来访问数组元素,例如 `array[0]` 表示访问数组 `array` 的第一个元素。
d) 数组的操作
常见的数组操作包括添加元素、删除元素、修改元素和查找元素等。
可以使用相应的语言特性或方法来进行这些操作。
3. 练题
以下是一些关于数组的练题:
1. 声明一个包含5个整数的数组,并赋予任意初始值。
2. 访问数组中的第3个元素。
3. 修改数组中的第2个元素为新值。
4. 在数组的末尾添加一个新元素。
5. 删除数组中的第4个元素。
6. 查找数组中值为10的元素,并返回其索引值。
请尝试解答以上练题,并根据需要进行其他类似的练,以加强对数组概念和基本性质的理解。
数组上机补充题
实验
实验1-3:数组补充题
题目:特大整数的精确相加.特大整数用长整型 也存不下,如果用双精度实型存储则会造成误 差,可以用字符数组存储所有位,再按十进制 由低到高逐位相加,同时考虑进位. 算法分析: ① 初始化:将两个特大整数输入两个字符数组, 将两个字符数组的各元素右移,使最低位的元 素位置对齐,高位补0,为了存储最高位的进 位,位数多的数最高位前也应补一个0.
C语言程序设计
实验Байду номын сангаас
实验1-3:数组补充题
② 从最低位对应的数组元素开始将数字字符转换 为整型数据相加,因为数字字符'0'对应的 ASCII值是48,则:整型数据1+2, 相当于 ('1'-48)+('2'-48),即'1'+'2'-96. ③ 将和整除以10,余数就是该位的结果,并转换 为字符(整型数据+48)存入该位,商就是进位数 ④ 再对高一位对应的数组元素操作,将该位数字 字符转换为整型相加,并与低位的进位数相加, 将和整除以10,余数就是该位的结果,商就是 本位的进位数. ⑤ 重复④直到最高位.
�
C语言程序设计
实验
实验1-3:数组补充题
⑥ 如果最高位相加时进位数大于0则将此进位数 转换为字符存入最高位上1位. 测试数据1: 123456789<回车> 23456789<回车> 146913578 测试数据2(最高位有进位): 999999999<回车> 999999999<回车> 1999999998
数组练习题(打印版)
数组练习题(打印版)# 数组练习题## 一、基础概念题1. 数组的定义:请简述数组是什么,并说明其基本特性。
2. 数组的存储方式:解释数组在内存中是如何存储的。
3. 数组的索引:说明数组索引的工作原理及其重要性。
## 二、编程实现题1. 数组的初始化:- 编写一个程序,初始化一个具有10个元素的整型数组,并赋予每个元素初始值1。
2. 数组元素的访问:- 编写代码,实现访问数组中第5个元素的值,并打印出来。
3. 数组元素的修改:- 编写代码,将上述数组的第5个元素的值修改为100,并打印修改后的数组。
4. 数组元素的遍历:- 编写一个循环,遍历上述数组的所有元素,并打印每个元素的值。
5. 数组的排序:- 编写一个函数,实现对数组的升序排序。
6. 二维数组的初始化:- 编写代码,初始化一个3x3的二维数组,并赋予每个元素初始值0。
7. 二维数组的遍历:- 编写一个程序,遍历上述3x3的二维数组,并打印出所有元素的值。
8. 查找特定元素:- 编写一个函数,实现在一个已排序的数组中查找特定元素是否存在,并返回其索引。
## 三、算法应用题1. 数组的反转:- 编写一个函数,实现对数组元素的反转。
2. 数组的去重:- 编写一个函数,实现去除数组中的重复元素。
3. 数组的合并:- 编写一个函数,实现两个有序数组的合并。
4. 数组的旋转:- 编写一个函数,实现将数组向右旋转k个位置。
5. 数组的查找:- 编写一个函数,实现在数组中查找第一个不重复的元素。
## 四、高级应用题1. 动态数组:- 描述动态数组的概念,并说明其与静态数组的区别。
2. 数组的内存优化:- 讨论在数组使用过程中如何优化内存使用。
3. 数组的多维应用:- 编写一个程序,实现一个n维数组的初始化和访问。
4. 数组与算法结合:- 选择一个算法(如快速排序、归并排序等),并说明如何使用数组来实现该算法。
5. 数组的异常处理:- 编写代码,实现在数组操作中添加异常处理机制,确保程序的健壮性。
C++数组补充习题
第1题:编写程序,从任意n个数中找出最大数和最小数,并将它们相互交换后输出。
输入分2行:第一行为n的值,第二行为n个数。
样例输入:51 5 32 0样例输出:1 0 3 2 5第2题:编写程序,将任意n个数按从大到小的顺序排序。
输入分2行:第一行为n的值,第二行为n 个数。
样例输入:51 5 32 0样例输出:5 3 2 1 0第3题:编写程序,将一个数组中的数循环左移。
输入分2行:第一行为n的值,第二行为n个数。
样例输入:51 5 32 0样例输出:5 3 2 0 1第4题:编写程序,输入若干学生的成绩,计算平均分,并输出低于平均分的学生成绩。
输入分2行:第一行为n的值,第二行为n个数;输出分2行:第一行为平均分,第二行为低于平均分的成绩。
样例输入:560 70 80 90 100样例输出:8060 70第5题:编写程序,利用顺序查找法从一个数列中查找某数是否存在,如果存在则输出该数的下标,否则输出NO。
输入分3行:第一行为n的值代表数列中数的个数,第二行为n个数,第三行为要查找的数。
样例输入:56 2 3 8 53样例输出:2样例输入:56 2 3 8 54样例输出:NO第6题:编写程序,将一个数组中的数循环右移。
输入分2行:第一行为n的值,第二行为n个数。
样例输入:51 5 32 0样例输出:0 1 5 3 2第7题:编写程序,从任意n个数(允许有重复)中删除某一个数k。
输入分3行:第一行为n的值代表数列中数的个数,第二行为n个数,第三行为要删除的数k。
样例输入:51 1 3 5 21样例输出:3 5 2样例输入:51 1 3 5 24样例输出:1 1 3 5 2第8题:编写程序,从任意n个数(升序排列)中插入某一个数k。
输入分3行:第一行为n的值代表数列中数的个数,第二行为n个数,第三行为要插入的数k。
样例输入:51 2 3 4 6样例输出:0 1 2 3 4 6样例输入:51 2 3 4 65样例输出:1 2 3 4 5 6样例输入:51 2 3 4 68样例输出:1 2 3 4 6 8第9题:从任意一组正整数中找出素数,计算素数之和,并按从大到小顺序排序。
数组练习ppt实用资料
10 12
aver/=m;
11
程序:
#include <stdio.h>
void main()
{ int i,k=0,aver=0,m=9,below[9];
printf("i请n输t入s整c数o,r输e[入9完]请=输{入100结,束2\0n"),;30,40,50,60,70,80,90};
for(j=0;j<4;j++)
9 10 f1o1 r12(i=0;i<m;i++)
13 14 15 16
aver+=score[i]; aver+=score[i];
for(i=0;i<3;i++)
aver/=m; printf("%4d",pp[k]);
if(x[j]>0)
3、以下f不o能r正(i确=进0行;字i<符m串赋;初i+值+的语) 句是( )
for(j=0;j<4;j++) { min=tt[0][j];
for(i=0;i<3;i++) {
if(tt[i][j]<min)
min=tt[i][j]; } pp[j]=min;
} printf("每列中的最小数 是:"); for(k=0;k<4;k++) printf("%4d",pp[k]); printf("\n"); }
1、以下定义语句在中,错误的是( C )。 A) int a[]={1,2}; B) char s[10]="test"; B) C) int x=10,a[x];
第06章 数组补充练习题
第06章数组补充练习题一、选择题1、设有数组定义int a[10];则下列各组赋值语句中,不正确的是。
A、a[10]=0;B、for(int i=0;i<10;i++)a[i]=i;C、a[5]=’a’;D、a={0,1,2,3,4,5,6,7,8,9};2、设有数组定义int a[2][2]={1,2,3,4},则元素a[1][1]的值为。
A、1B、2C、3D、43、下列语句中,不正确的是。
A、int a[2][3]={1,2,3};B、int a[2][3]={{1},{2,3}};C、int a[ ][3]={{1},{2,3}};D、int a[ ][ ]={{1},{2,3}};4、下列语句中,不正确的是。
A、int a[ ]={1,2};B、char a[4]={‘a’,’b’,’c’};C、int a[ ];D、char a[3]={‘a’,’b’,’c’};5、下列语句中,不正确的是。
A、char s1[ ]=”abc”;B、char s1[ ]={”abc”};C、char s1[4]={‘a’,’b’,’c’};D、char s1[3]=”abc”;6、下列数组的定义中,不正确的是。
A、#define N 5B、#define N 3int a[N]; int a[N+2] ;C、int n=5;int a[n];D、int a[‘a’];7、对于数组定义int a[5],n=2;则对数组a元素的正确引用是。
A、a[5]B、a[3.5]C、a(3)D、a[n+1]8、对于以下各组语句:(1)char str1[ ]=”This is a string!”;(2)char str1[12];str1=”This is a string!”;(3)char str1[12];strcpy(str1, ”This is a string!”);(4)char str1[ ]={”This is a string!”};则下列说法正确的是。
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。
数组练习题答案
数组练习题答案一、选择题1. 在数组中,元素的索引从哪个数字开始?A. 0B. 1C. 2D. -1答案:A2. 下列哪个是数组的遍历方法?A. forEachB. forC. whileD. all of the above答案:D3. 如何在JavaScript中创建一个空数组?A. var arr = {};B. var arr = [];C. var arr = "";D. var arr = null;答案:B4. 数组的push()方法用于什么?A. 弹出数组的最后一个元素B. 弹出数组的第一个元素C. 向数组末尾添加一个或多个元素D. 清空数组答案:C5. 数组的shift()方法用于什么?A. 弹出数组的第一个元素B. 弹出数组的最后一个元素C. 向数组末尾添加一个元素D. 向数组开头添加一个元素答案:A二、填空题6. 数组的______方法用于弹出数组的最后一个元素。
答案:pop7. 数组的______方法用于删除数组的第一个元素,并返回该元素。
答案:shift8. 数组的______方法用于在数组的开头添加一个或多个元素。
答案:unshift9. 数组的______属性可以获取数组的长度。
答案:length10. 数组的______方法用于将数组元素按照指定的排序标准进行排序。
答案:sort三、简答题11. 请说明数组的slice()方法和splice()方法的区别。
答案:slice()方法用于提取数组的一部分,并返回一个新数组,而不会改变原数组。
splice()方法用于添加或删除数组中的元素,会改变原数组。
12. 请描述数组的map()方法的用途。
答案:map()方法用于对数组中的每个元素执行一个函数,并返回一个新数组,这个新数组的元素是原数组元素经过函数处理后的结果。
四、编程题13. 编写一个JavaScript函数,该函数接受一个整数数组作为参数,并返回一个新的数组,其中包含原数组中每个元素的平方。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第06章数组补充练习题一、选择题1、设有数组定义int a[10];则下列各组赋值语句中,不正确的是。
A、a[10]=0;B、for(int i=0;i<10;i++)a[i]=i;C、a[5]=’a’;D、a={0,1,2,3,4,5,6,7,8,9};2、设有数组定义int a[2][2]={1,2,3,4},则元素a[1][1]的值为。
A、1B、2C、3D、43、下列语句中,不正确的是。
A、int a[2][3]={1,2,3};B、int a[2][3]={{1},{2,3}};C、int a[ ][3]={{1},{2,3}};D、int a[ ][ ]={{1},{2,3}};4、下列语句中,不正确的是。
A、int a[ ]={1,2};B、char a[4]={‘a’,’b’,’c’};C、int a[ ];D、char a[3]={‘a’,’b’,’c’};5、下列语句中,不正确的是。
A、char s1[ ]=”abc”;B、char s1[ ]={”abc”};C、char s1[4]={‘a’,’b’,’c’};D、char s1[3]=”abc”;6、下列数组的定义中,不正确的是。
A、#define N 5B、#define N 3int a[N]; int a[N+2] ;C、int n=5;int a[n];D、int a[‘a’];7、对于数组定义int a[5],n=2;则对数组a元素的正确引用是。
A、a[5]B、a[3.5]C、a(3)D、a[n+1]8、对于以下各组语句:(1)char str1[ ]=”This is a string!”;(2)char str1[12];str1=”This is a string!”;(3)char str1[12];strcpy(str1, ”This is a string!”);(4)char str1[ ]={”This is a string!”};则下列说法正确的是。
A、只有(1)、(3)、(4)正确B、只有(1)、(3)正确C、只有(3)、(4)正确D、只有(1)、(2)正确9、对于以函数原形为void fun(int a[5],int n)的函数,若有变量说明int b[10];则下列函数调用出现语法错误的是。
A、fun(b,b[0])B、fun(b,5)C、fun(&b[0],10)D、fun(b[0],5)10、下列说法中错误的是。
A、一个数组中只允许存储相同类型的数据;B、数组名其实是数组在内存中的起始地址;C、当数组名作为参数被传递给某个函数时,原数组中的元素的值可能被修改;D、在C++中,编译程序将严格检查程序中数组的下标是否越界。
11、下列定义的各字符串中,的输出可能会出现异常现象。
A、char str1[ ]=”abc’;B、char str2[10]={‘a’,’b’,’c’};C、char str3[3]={‘a’,’b’,’c’};D、char str4[4]={97,98,99,0};12、在C++中,一维数组的定义格式为:类型说明符数组名。
A [常量表达式]B [整型表达式]C [整型常量]或[整型表达式]D [整型常量]13、以下一维数组a定义,正确的为。
A int a(10);B int n=10,a[n];C int n;cin>>n;int a[n];D #define SIZE 10int a[SIZE]14、以下对一维数组a进行初始化,正确的为。
A int a[6]=(0,1,2,3,4,5);B int a[10]={ };C int a[]={0};D int a[5]={0,1,2,3,4,5};15、以下对二维数组a进行初始化,正确的为。
A int a[2][3]={{0,1},{2,3},{4,5}};B int a[][3]={0,1,2,3,4,5};C int a[2][]={0,1,2,3,4,5};D int a[2][]={{0,1,2},{3,4,5}};16、若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小为。
A 2B 3C 4D 无确定值17、设有定义int a[][3]={1,2,3,4,5};下面关于数组a的描述,正确的为。
A a为一维数组,含有5个元素B a为二维数组,含有5个元素C a为2行3列二维数组D 这种定义方式,无法确定行数和列数18、若有说明int a[3][4]={0};则下面叙述正确的为。
A 只有元素a[0][0]可得到初值0;B 此说明语句不正确C 数组a中各元素都可得到初值,但其值不一定为0D 数组a中每个元素均可得到初值019、若把数组a定义为全局变量或静态变量,则数组a中各元素。
A 可在程序运行阶段得到初值0B 可在程序的编译阶段得到初值0C 得不到确定的初值D 可在程序编译或运行阶段得到初值020、设有说明int a[][4]={{1},{3,2},{4,5,6},{0}};则a[3][3]的值为。
A 0B 5C 6D 221、以下对C++字符数组的描述错误的为。
A 字符数组可以存放字符串B 字符数组的字符串可以整体输入和输出C 可以在赋值语句中通过赋值符“=”对字符数组整体赋值D 不可以用关系运算符对字符数组中的字符串进行比较22、以下描述正确的为。
A 两个字符所包含的字符个数相同时,才能比较字符串B 字符个数多的字符串比字符个数少的字符串大C 字符串“STOP ”与“STOP”相等D 字符串“That”小于字符串“THe”23、以下程序段的执行结果为。
char c[]={‘a’,’b’,’\0’,’c’,’\0’};cout<<c<<endl;A ab0c0B abC ab cD abc24、在C++中,以下叙述不正确的为。
A 在输入字符串时,遇到空格字符或换行字符,认为一个字符串结束,接着的非空格字符作为一个新的字符串开始B 一个字符数组中的字符作为字符串输出时,遇到字符’\0’时认为字符串结束C 把一维字符数组作为字符串输入输出,在cin和cout中只需给出数组名D 用cin可以接收输入的任何字符串25、若二维数组a有m列,则计算任一元素a[I][j]在数组中位置的公式为。
(假设a[0][0]位于数组的第一个位置上)A I*m+jB j*m+IC I*m+j-1D I*m+j+126.对以下说明语句的正确理解为。
int a[10]=)6,7,8,9,10};A 将5个初值依次赋给a[1]至a[5]B 将5个初值依次赋给a[0]至a[4]C 将5个初值依次赋给a[6]至a[10]D 因为数组长度与初值的个数不相同,所以此语句不正确27.以下不正确的定义语句为。
A double x[5]={2.0,4.0,6.0,8.0,10.0};B int y[5]={0,1,3,5,7,9};C char c1[]={‘1’,’2’,’3’,’4’,’5’};D char c2[]={‘\x10’,’\xa’,’\x8’}28.若二维数组a有m列,则在a[I][j]前的元素个数为。
A j*m+IB I*m+j-1C I*m+jD I*m+j+129.定义如下变量和数组:int k;int a[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果为。
for(k=0;k<3;k++)cout<<a[k][2-k];A 3 5 7B 3 6 9C 1 5 9D 1 4 730.若有以下程序:#include <iostream.h>void main(){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;}for(i=0;i<5;i++)cout<<a[i]<<'\t';cout<<'\n';}则该程序段的功能为。
A 对数组a进行插入排序(升序)B 对数组a进行插入排序(降序)C 对数组a进行选择排序(升序)D 对数组a进行选择排序(降序)31.下面程序的运行结果为。
#include <iostream.h>void main(){int a[6];for(int i=0;i<6;i++){a[i]=9*(i-2+4*(i>3))%5;cout<<'\n';}A -3-40404B -3-40403C -3-40443D -3-4044032.对两个数组a和b进行如下初始化char a[]=”ABCDEF”;char b[]={‘A’,’B’,’C’,’D’,’E’,’F’};则以下叙述正确的为。
A a和b数组完全相同B a和b长度相同C a和b是都存放字符串D a数组比b数组长度长33.下面程序段的运行结果为。
#include <iostream.h>#include <string.h>void main(){char a[7]="abcdef";char b[4]="ABC";strcpy(a,b);cout<<a[5];cout<<endl;}A __B \0C eD f(其中__表示空格)34.下面程序段的运行结果为。
char c[]=”\t\v\\\0will\n”cout<<strlen(c);A 14B 3C 9D 字符串中有非法字符,输出值不确定35.判断字符串a和b是否相等,应当使用。
A if(a==b)B if(a=b)C if(strcpy(a,b))D if(strcmp(a,b))36.判断字符串s1是否大于字符串s2,应当使用。
A if(strcmp(s1,s2)>0)B if(strcmp(s1,s2)C if(strcmp(s2,s1)>0)D if(s1>s2)37.有已排好序的字符串a,下面的程序是将字符串s中的每个字符按升序的规律插入到a中,请选择填空。
#include <iostream.h>#include <string.h>void main(){char a[20]="cehiknqtw";char s[]="fbla";int i,k,j;for(k=0;s[k]!='\0';k++){j=0;while(s[k]>=a[j]&&a[j]!='\0')j++;for( 【1】 )【2】 ;cout<<a;cout<<endl;}【1】 A I=strlen(a);I>j;I- - B I=strlen(a);I>=j;I- -C I=j;I<=strlen(a)+k;I++D I=j;I<strlen(a);I++【2】 A a[I]=a[I+1] B a[I+1]=a[I]C a[I]=a[I-1]D a[I-1]=a[I]38.下面程序的功能是将已按升序排好的两个字符串a和b中的字符串按升序归并到字符串c中,请选择填空#include <iostream.h>#include <string.h>void main(){char a[]="acegikm";char b[]="bdfghjlnpq";char c[80],*p;int i=0,j=0,k=0;while(a[i]!='\0'&&b[j]!='\0'){if(a[i]<b[j]){【1】 }else{【2】 }k++;}c[k]='\0';if( 【3】 )p=b+j;else p=a+i;strcat(c,p);cout<<c<<endl;}【1】 A c[k]=a[i];i++; B c[k]=a[j];i++;C c[k]=a[i];j++D c[k]=a[j];j++;【2】 A c[k]=b[i];I++; B c[k]=b[j];i++;C c[k]=b[i];j++D c[k]=b[j];j++;【3】 A a[i]= =’\0’ B a[i]!=’\0’C a[i-1]= =’\0’D a[i-1]!=’\0’39.下面程序的功能是将字符串s中所有的字符c删除,请选择填空#include <iostream.h>#include <string.h>void main(){char s[80];int i,j;cin.getline(s,20);for(i=j=0;s[i]!='\0';i++)if(s[i]!='c') 【1】 ;s[j]='\0';cout<<s<<endl;}【1】A s[j++]=s[i] B s[++j]=s[i] C s[j]=s[i];j++; D s[j]=s[i] 40.下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔,请选择填空#include <iostream.h>void main(){char s[80],c1,c2=' ';int i=0,num=0;cin.getline(s,30);while(s[i]!='\0'){c1=s[i];if(i==0)c2=' ';else c2=s[i-1];if( 【1】 )num++;i++;}cout<<"There are "<<num<<" words."<<endl;}【1】A c1= =’’&&c2= =’’ B c1!=’’&&c2= =’’C c1= =’’&&c2! =’’D c1! =’’&&c2! =’’41.口袋中有红、黄、蓝、白、黑色彩球各一个,任意从中取出3个,问:可以有多少种不同(顺序不限)的取法。