数组练习题及答案讲解

合集下载

数组习题及参考答案

数组习题及参考答案

第七章数组一、单项选择题1.若有说明“int a[3][4]={0};”,则下面正确的是_____。

A.只有元素a[0][0]可得到初值0B. 此说明语句不正确C. 数组a各元素都可得到初值,但其值不一定是0D. 数组a中每个元素均可得到初值02.以下不能正确定义二维数组的选项是_____。

A. int a[2][2]={{1},{2}}B. int a[2][2]={{1},2,3}C. int a[2][]={{1,2},{3,4}}D. int a[][2]={1,2,3,4}3.在下列对字符数组进行初始化中正确的是_____。

A.char s1[]=”abcd”B.char s2[3]=”xyz”C.char s3[][]={…a‟,‟x‟,‟y‟}D.char s4[2][3]={“xyz”,”mnp”}二、写出下列程序的运行结果有以下程序:1. #include <iostream.h>int 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];a[j]=t;j--;}}for(i=0;i<5;i++){cout<<a[i]<<‟…;}return 0;}三、编程题1. 任意输入15个正整数,将这15个数排成一圈,编程找出其中的连续4个数,使得它们的和最大(不小于任意其他连续4个数的和)。

2. 设有4行4列队数组b,其元素为b[i][j]=i+j+1(i,j=0,1,2,3)。

编程实现:(1)求第二列元素之和。

(2)求第三列元素的平均值。

(3)求数组b中的最大数,最小数及主对角线元素的平方和。

第七章数组一、单项选择题二、写出下列程序的运行结果1. 4 3 2 1三、编程题1.#include <iostream.h>void main(){const int n=15;int i,a[n];cout<<"Input"<<n<<"positive integers:"<<endl;for(i=0;i<n;i++)cin>>a[i];int max4=0,s4,start,t1,t2,t3,t4;for(i=0;i<n;i++){t1=i%n;t2=(i+1)%n;t3=(i+2)%n;t4=(i+3)%n;s4=a[t1]+a[t2]+a[t3]+a[t4];if(s4>max4){max4=s4;start=i;}}t1=start;t2=(start+1)%n;t3=(start+2)%n;t4=(start+3)%n;cout<<"max4="<<a[t1]<<"+"<<a[t2]<<"+"<<a[t3]<<"+"<<a[t4]<<"最大,这四个数的下标为"<<t1<<','<<t2<<','<<t3<<','<<t4<<endl;}输出结果:Input 15 positive integers:88 99 1 2 3 4 5 6 7 8 9 10 55 66 1max4=66+1+88+99 最大,这四个数的下标为13,14,0,12.#include <iostream.h>void main(){int b[4][4],i,j;/*为数组b各元素赋值*/for(i=0;i<4;i++){for(j=0;j<4;j++){b[i][j]=i+j+1;cout<<" "<<b[i][j];}cout<<endl;}cout<<"--The result--"<<endl;//求第二行元素之和int sum_line2=0;for(j=0;j<4;j++)sum_line2+=b[1][j];cout<<"sum_line2="<<sum_line2<<endl;//求第三行元素之平均值int sum_col3=0;for(i=0;i<4;i++)sum_col3+=b[i][2];cout<<"ave_col3="<<sum_col3/4.0<<endl;//求最大数,最小数及主对角线元素之平方和int max_elem=b[0][0],min_elem=b[0][0],sum_diag=0;for(i=0;i<4;i++){for(j=0;j<4;j++){if(b[i][j]>max_elem)max_elem=b[i][j];if(b[i][j]<min_elem)min_elem=b[i][j];if(i==j)sum_diag+=b[i][j]*b[i][j];}}cout<<"max_elem="<<max_elem<<endl;cout<<"min_elem="<<min_elem<<endl;cout<<"sum_diag="<<sum_diag<<endl;}输出结果:1 2 3 42 3 4 53 4 5 64 5 6 7--the result—sum_line2=14ave_col3=4.5max_elem=7min_elem=1sum_diag=84。

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习题答案解析

习题 4一、单项选择题1. 若有说明int a[3][4];则a数组元素的非法引用是【】A. a[0][2*1]B. a[1][3]C. a[4-2][0]D. a[0][4]【答案】D【解析】数组下标从0开始,a[0][4]的列下标越界。

2. 在C++语言中,引用数组元素时,其数组下标的数据类型允许是【】A. 整型常量B. 整型表达式C. 整型常量或整型表达式D. 任何类型的表达式【答案】C3. 以下不正确的定义语句是【】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′};【答案】B【解析】初始值的个数大于数组的大小,系统会出现编译错误。

4. 对以下说明语句的正确理解是【】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. 因为数组长度与初值的个数不相同,所以此语句不正确【答案】B5. 若有说明:int a[ ][4]={0,0};则下面不正确的叙述是【】A. 数组a的每个元素都可得到初值0B. 二维数组a的第一维大小为1C. 当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小D. 只有元素a[0][0]和a[0][1]可得到初值,其余元素均得不到确定的初值【答案】D【解析】二维数组初始化时,行大小可以省略,被省略的大小根据初值的个数系统来确定,本题中,有2个初值说明是1行4列,所以第一维为1。

元素a[0][0]和a[0][1]赋初值为0 ,其余元素初值系统默认为0。

6. 以下能对二维数组c进行正确的初始化的语句是【】A. int c[3][]={{3},{3},{4}};B. int c[][3]={{3},{3},{4}};C. int c[3][2]={{3},{3},{4},{5}};D. int c[][3]={{3},{},{3}};【答案】B【解析】二维数组初始化时,行大小可以省略,列大小不可以省略,所以A答案错误。

C#数组练习题及答案解析

C#数组练习题及答案解析

C#数组练习题及答案解析1、根据班级⼈数创建⼀个数组,要求每个⼈的姓名都要放进去Console.Write("请输⼊班级⼈数:");int n = int.Parse(Console.ReadLine());string[] name = new string[n];for (int i = 0; i < n; i++){Console.Write("请输⼊第{0}个⼈的姓名:", i + 1);name[i] = Console.ReadLine();}Console.WriteLine("输⼊完毕,请按回车键查看!");Console.ReadLine();Console.WriteLine();for (int i = 0; i < n; i++){Console.Write(name[i] + "\t");}Console.ReadLine();2、从控制台输⼊班级⼈数将每个⼈的年龄放⼊数组,将所有⼈的年龄求总和求平均年龄求年龄最⼤Console.Write("请输⼊班级⼈数:");int n = int.Parse(Console.ReadLine());int[] age = new int[n];int sum = 0;for (int i = 0; i < n; i++){Console.Write("请输⼊第{0}个⼈的年龄:", i + 1);age[i] = int.Parse(Console.ReadLine());sum += age[i];}Console.WriteLine("年龄总和为:"+sum);Console.WriteLine("平均年龄为:"+(sum / n));Console.ReadLine();int agemax = 0;for (int i = 0; i < n; i++){if (agemax < age[i]){agemax = age[i];}}Console.WriteLine("最⼤年龄是:" + agemax);Console.ReadLine();3、冒泡排序(经典)for (int i = 0; i < n; i++){for (int j = i; j < n - 1; j++){if (age[i] < age[j + 1]){int zhong = age[i];age[i] = age[j + 1];age[j + 1] = zhong;}}}for (int i = 0; i < n; i++){Console.WriteLine(age[i]);}Console.ReadLine();4、输⼊班级⼈数输⼊每个⼈的分数求总分、平均分、两个最⾼分,两个最低分Console.Write("请输⼊班级的⼈数:");int n = int.Parse(Console.ReadLine());double[] b = new double[n];double fen = 0;for (int i = 0; i < n; i++){Console.Write("请输⼊第{0}个学⽣的分数:", i + 1);b[i] = double.Parse(Console.ReadLine());fen += b[i];}Console.WriteLine("总分为:" + fen);Console.WriteLine("平均分为:" + (fen / n));Console.ReadLine();for (int i = 0; i < n; i++){for (int j = i; j < n - 1; j++){if (b[i] < b[j + 1]){double zhong = b[i];b[i] = b[j + 1];b[j + 1] = zhong;}}}Console.WriteLine("两个最⾼分为:" + b[0] + "," + b[1]); Console.ReadLine();Console.WriteLine("两个最低分为:" + b[n - 1] + "," + b[n - 2]); Console.ReadLine();。

数组选择试题及答案解析

数组选择试题及答案解析

数组选择试题及答案解析一、选择题1. 下列关于数组的描述中,错误的是:A. 数组是一种基本的数据结构,可以存储相同类型的多个元素B. 数组在内存中是连续存储的C. 数组的大小在定义后可以改变D. 数组可以通过索引来访问元素2. 假设有一个整型数组 int[] arr = {1, 2, 3, 4, 5}; 以下哪个表达式是正确的:A. arr[0] = 10B. arr[5] = 6C. arr[-1] = 0D. arr[5]3. 在Java中,以下哪个方法可以用来获取数组的长度:A. length()B. size()C. count()D. total()4. 假设有一个数组 int[] numbers = new int[5]; 以下哪个操作是合法的:A. numbers[5] = 10B. numbers[-1] = 0C. numbers[4] = 100D. numbers[0] = 55. 在C语言中,以下哪个数组声明是正确的:A. int arr[] = {1, 2, 3};B. int arr[3] = {1, 2, 3};C. int arr[3] = 1, 2, 3;D. int arr = {1, 2, 3};二、答案解析1. 答案:C解析:数组的大小在定义后是不可变的,这是数组的一个基本特性。

2. 答案:A解析:数组索引从0开始,arr[0]是第一个元素,可以赋值为10。

3. 答案:A解析:在Java中,数组的长度通过length属性获取。

4. 答案:C解析:数组索引从0到数组长度减一,所以索引4是合法的,可以赋值为100。

5. 答案:A解析:在C语言中,数组的声明可以不指定大小,编译器会根据初始化列表的长度自动计算数组的大小。

选项A是正确的声明方式。

数组经典题和解析

数组经典题和解析

数组经典题和解析以下是一些经典的数组题目以及解析:1. 两数之和:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数的索引。

可以假设每个输入只对应一个答案,且同样的元素不能被重复利用。

解析:可以使用哈希表来解决该问题。

遍历数组,将每个元素的值和索引存入哈希表中,然后再次遍历数组,对于每个元素,通过判断目标值减去当前元素的差值是否在哈希表中找到另一个数的索引。

2. 三数之和:给定一个包含n个整数的数组nums,判断nums中是否存在三个元素a,b,c,使得a + b + c = 0?找出所有满足条件且不重复的三元组。

解析:可以使用双指针法来解决该问题。

首先,将数组排序,然后固定一个元素,然后使用左右指针遍历剩余元素,通过判断三个元素的和是否为0,来确定是否满足条件。

为了避免重复的解,可以在遍历过程中跳过相同的元素。

3. 数组中的第K个最大元素:找到数组中第K个最大的元素。

注意,它是排序后的第K个最大元素,而不是第K个不同元素。

解析:可以使用堆来解决该问题。

维护一个大小为K的最小堆,遍历数组,将前K个元素加入堆中。

然后,对于剩余的元素,如果比堆顶元素大,则将堆顶元素弹出,将当前元素加入堆中。

最终,堆顶元素即为第K个最大元素。

4. 最长连续递增序列:给定一个未排序的整数数组,找到最长连续递增序列的长度。

解析:使用一个变量来记录当前连续递增序列的长度,以及一个变量来记录最长连续递增序列的长度。

从数组的第二个元素开始遍历,如果当前元素大于前一个元素,则将当前连续递增序列的长度加1,同时更新最长连续递增序列的长度。

如果当前元素小于等于前一个元素,则重新开始计算连续递增序列的长度。

5. 买卖股票的最佳时机:给定一个数组,它的第i个元素是一支给定股票第i天的价格。

设计一个算法来计算你所能获取的最大利润。

你最多可以完成两笔交易。

解析:使用动态规划来解决该问题。

维护四个变量:buy1表示第一次买入股票时的最大收益,sell1表示第一次卖出股票时的最大收益,buy2表示第二次买入股票时的最大收益,sell2表示第二次卖出股票时的最大收益。

数组c语言试题库及答案

数组c语言试题库及答案

数组c语言试题库及答案1. 请解释C语言中数组的概念。

答:在C语言中,数组是一种数据结构,它允许将多个相同类型的数据项存储在连续的内存位置。

数组可以是一维的,也可以是多维的。

2. 如何声明一个整型数组?答:声明一个整型数组的语法是 `int array_name[size];`,其中`array_name` 是数组的名字,`size` 是数组中元素的数量。

3. 请写出一个程序,用于计算一个整型数组中所有元素的和。

```c#include <stdio.h>int main() {int array[] = {1, 2, 3, 4, 5};int sum = 0;for(int i = 0; i < 5; i++) {sum += array[i];}printf("Sum of array elements: %d\n", sum);return 0;}```4. 如果一个数组的元素数量是动态的,应该如何声明?答:在C语言中,可以使用指针来处理动态数组。

声明方式为`int *array_name;`,然后在程序中使用 `malloc` 或 `calloc` 函数分配内存。

5. 请解释数组的索引。

答:数组的索引是从0开始的,它表示数组中元素的位置。

例如,对于一个名为 `array` 的数组,`array[0]` 是数组的第一个元素。

6. 如何初始化一个整型数组?答:可以使用花括号 `{}` 来初始化数组,例如 `int array[] = {1, 2, 3, 4, 5};`。

7. 请写出一个程序,用于交换数组中的两个元素。

```c#include <stdio.h>int main() {int array[] = {1, 2, 3, 4, 5};int temp;int index1 = 1; // 第二个元素int index2 = 3; // 第四个元素temp = array[index1];array[index1] = array[index2];array[index2] = temp;for(int i = 0; i < 5; i++) {printf("%d ", array[i]);}return 0;}```8. 在C语言中,数组的元素可以是什么数据类型?答:数组的元素可以是任何数据类型,包括整型、浮点型、字符型、结构体等。

数组题参考答案

数组题参考答案

数组题参考答案数组题参考答案在计算机科学中,数组是一种用于存储和管理一组相同类型数据的数据结构。

它是一种非常重要的数据结构,被广泛应用于各种编程语言和算法中。

在编程中,经常会遇到与数组相关的题目,这些题目既有基础的数组操作,也有一些较为复杂的问题。

下面,我将为大家提供一些常见数组题目的参考答案。

1. 数组反转题目描述:给定一个数组,将其反转。

解题思路:可以使用双指针法,一个指针指向数组的起始位置,另一个指针指向数组的末尾位置。

然后交换两个指针所指向的元素,并分别向中间移动,直到两个指针相遇。

```pythondef reverse_array(arr):left = 0right = len(arr) - 1while left < right:arr[left], arr[right] = arr[right], arr[left]left += 1right -= 1return arr```2. 数组去重题目描述:给定一个数组,删除其中重复的元素。

解题思路:可以使用一个集合来存储已经出现过的元素,然后遍历数组,将未出现过的元素添加到集合中。

```pythondef remove_duplicates(arr):unique_elements = set()result = []for num in arr:if num not in unique_elements:unique_elements.add(num)result.append(num)return result```3. 数组求和题目描述:给定一个数组,计算其中所有元素的和。

解题思路:可以使用一个变量来记录累加的和,然后遍历数组,将每个元素加到累加和中。

```pythondef array_sum(arr):sum = 0for num in arr:sum += numreturn sum```4. 数组中的最大值和最小值题目描述:给定一个数组,找出其中的最大值和最小值。

C语言练习3(数组)参考答案

C语言练习3(数组)参考答案

C语⾔练习3(数组)参考答案C语⾔(数组)⼀、选择题1. 设有程序:main(){ int i,a[11];printf("给数组赋值:\n");for (i=0;i<=10;i++)scanf("%d",( ));... ...printf("输出数组:\n");for(i=0;i<=10;i++)printf("%d,",( ));}则在程序中的两个园括号中分别应填⼊:CA) &a[i]和&a[i]B) a[i]和&a[i]C) &a[i]和a[i]D) a[i]和a[i]2. 设已定义:int a[15]; 则数组a占⽤的内存单元数是( C ).A) 15 B) 16 C) 30 D) 323. 阅读程序:main(){ int a[2]={0},i,j,k=2;for(i=0;ifor(j=0;jprintf("%d\n",a[k]);}以上程序的输出结果是( D ).A) 1 B) 3 C) 2 D) 不确定的值4. 阅读程序:f(int b[],int n){ int i,r=1;for(i=0;i<=n;i++) r=r*b[i];return r;}main(){ int x,a[]={2,3,4,5,6,7,8,9};x=f(a,3);printf("%d\n",x);}以上程序的输出结果是( D ).A) 720 B) 6 C)24 D) 1205. 以下定义语句中,错误的是( B ).A) int a[ ] = {6,7,8};B) int n=5, a[n];C) char a[ ]= "string";D) char a[5 ]={'0','1','2','3','4'};6. 以下描述中正确的是( D ).A) 数组名后⾯的常量表达式⽤⼀对圆括弧括起来B) 数组下标从1开始C) 数组下标的数据类型可以是整型或实型D) 数组名的规定与变量名相同7. 若定义数组并初始化char a[10]={'0','1 ','2','3','4','5','6','7','8','9'};指出以下错误语句( AB ).A) scanf("%c",a[0]);B) scanf("%s",&a);C) printf("%c",a[3]);D) printf("%s",a);8.若定义数组int a[10] ,其最后⼀个数组元素为( C ).A) a[0]B) a[1]C) a[9]D) a[10]9. 若定义数组并初始化int a[10]={ 1,2,3,4},以下语句哪⼀个不成⽴( B )?A) a[8] 的值为0B) a[1] 的值为1C) a[3] 的值为4D) a[9] 的值为010. 指出以下错误语句( A ).A) int n=10,a[n];B) int n,a[10];C) int a[10]={1,2,3};D) int a[10]={1,2,3,4,5,6,7,8,9,10};11. 请读程序:main(){int n[2],i,j,k;for(i=0;i<2;i++) n[i]=0;k=2;for(i=0;ifor(j=0;jprintf("%d\n",n[k]);}上⾯程序的输出结果是( A ).A)不确定的值 B)3 C)2 D)112. 若有以下的定义和语句:int str[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c='e',则数值为2的表达式是( C ).A)str['g'-c] B)str[2] C)str['d'-'c'] D)str['d'-c]13. 设有数组定义:int a[5];则下列给数组元素赋值错误的是( B ).A) a[3]=93;B) scanf("%c",a[3]);C) a[3]=getchar();D) a[3]='a'+3;14. 以下数组定义中错误的是( D ).A) #define N 30int a[N+30];B) #define N 30int a[N];C) int a[30];D) int a[N];15. 在定义⼀个⼀维数组时,不能⽤来表⽰数组长度的是( D ).A)常量 B)符号常量 C)常量表达式 D) 已被赋值的变量16. 若float型变量占⽤4个字节,有定义float a[20]={,,};则数组a在内存中所占的字节数是( D ).A)12 B)20 C)40 D)8017. 设已定义:int x[2][4]={1,2,3,4,5,6,7,8}; 则元素x[1][1]的正确初值是( A ).A) 6 B) 5 C) 7 D) 118. 设有定义:int a[][3]={{1,2,3},{4,5,6},{7,8,9}}; 则a[1][2]的初值为( C ).A) 2 B) 4 C) 6 D) 819. 设有:int a[4][5]; 则数组a占⽤的内存字节数是( C ).A) 12 B) 24 C) 40 D) 2020. 以下数组定义中,不正确的是( B ).A) int b[3][4];B) int c[3][ ]={{1,2},{1,2,3},{4,5,6,7}};C) int b[200][100]={0};D) int c[ ][3]={{1,2,3},{4,5,6}};21. 定义数组:int x[2][3]; 则数组x 的维数是( 2 ).A) 1 B) 2 C) 3 D) 622. 若定义数组并初始化int b[2][3]= { 1,2,3,4,5,6},以下语句哪⼀个成⽴( C )?A) 表达式b[1][2]的值为1B) 表达式b[1][2]的值为4C) 表达式b[1][2]的值为6D) 表达式b[1][2]的值为223. 若定义数组并初始化int a[2][3]={{1,2,3},{4,5,6}};for(i=0;i<2;i++)for(j=0;j<3;j++)printf("%d",a[i][j]);语句的结果是哪⼀个( C )?A) 1,2,3,4,5,6B) 1 2 3 4 5 6C) 12345624. 若定义数组并初始化int a[2][3]= {{1,2, 3},{4,5,6}};以下语句哪⼀个不成⽴( B )?A) a数组中有6个元素B) a[2][3]是a数组的最后⼀个元素的引⽤C) a数组中每个元素都为整数D) a数组是整型数组25. 定义如下变量和数组:int i;int x[3][3]={1,2,3,4,5,6,7,8,9};则下⾯语句的输出结果是( C ).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 926. 如有以下定义:double s[][5]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14};则数值为2的元素是( C ).A) s[1][3] B) s[0][3] C) s[0][2] D) s[1][2]27. 以下程序的输出结果是( A ).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<=i;j++)s+=a[i][j];printf("%d",s);}A) 18 B) 19 C) 20 D) 2128. 若已有char b[10][50];则该⼆维字符数组在内存所占字节数为( D ).A) 10 B)50 C)60 D)50029. 设有:char a[10]; 下列语句那个是正确的( D )?A) scanf("%s",a[0]);B) scanf("%s",&a);C) printf("%s",a[0])D) printf("%s",a)30. 阅读程序:main(){ char a[10];int i;for(i=1;i<=5;i++)scanf("%c",&a[i]);printf("%c",a[0]);}设从键盘输⼊字符串:abcde,则程序的输出结果是( C ).A) a B)空格 C)不确定D)031. 合法的数组定义是( 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'};32. 设有数组定义:char string[ ]="China";则数组string所占的空间为( B ).A) 5个字节B) 6个字节C) 7个字节D) 10个字节33. 定义字符数组c:char c[ ]={"c language"};数组c在内存中所占字节数是( C ).A) 9 B) 10 C) 11 D) 1234. 指出以下错误语句( C ).A) char a[10]={'0','1','2','3','4','5','6','7','8','9'};B) char a[10]={'0','1 ','2','3'};C) char a[2]= {"1","2"};D) char a[2]= {'a’,'b’};35. 若定义数组并初始化char a[10]={"hello"},该数组的元素个数是( A ).A) 10B) 5C) 6D) 736. 若定义数组并初始化char a[10]={"HELLO"},该数组的元素中 a[2]是( A ).A) 'L'B) 'E'C) 'H'D) 'O'37. 若定义数组并初始化int b[10]={ 1,2,3,4},以下哪⼏个语句成⽴( A C D)?A)b[8]的值为0B)b[1]的值为1C)b[3]的值为整数D)b[10]不是b数组中的元素38. 若定义数组int a[10];指出下列错误语句:ABCDA) a数组共有10个元素,其引⽤⽅法是:a[1],a[2]...a[10];B) a数组是整型数组,其元素⾃动初始化为0;C) a数组最后⼀个元素的引⽤⽅法是a[10];D) a数组第⼀个元素的引⽤⽅法是a[1];⼆、判断题1.数组是数⽬固定的若⼲变量的有序集合,数组中各元素的类型可以不同。

第3章 数组(习题答案及解析)

第3章 数组(习题答案及解析)

习题3 参考答案一、选择题3.1 C 分析:本题考查程序和数组的基本概念。

3.2 A 分析:字符串比较大小是以第1个不相同字符的大小为标准的,跟长度没有关系,B选项不正确;字符串比较大小除了使用库函数strcn3()以外,就只能靠自己写代码来实现了,而不能通过关系运算符来比较大小。

因为字符串在表达式中相当于const char*,即常字符指针,代表的是字符串的首地址,关系运算符会将两个字符串的首地址值比较大小,这是毫无意义的。

C选项不正确。

C语言中只有字符串常量而没有字符串变量,D选项描述不正确;空串的长度为0,而以空格打头的字符串的长度至少为1,因此A选项是正确。

3.3 A 分析:如果第一维的长度没有指定,则定义的同时需要完成初始化,否则不知道分配多大的内存空间给它,所以选项B、C错误;二维数组a[2][3]中只有两个元素,都是一维数组,一维下标最大只能是a[1],所以选项D错误;若完成初始化的二维数组,第一维的长度没有指定,则第一维的大小按如下规则确定:若初值个数能被第二维大小整除,所得的商就是第一维的大小,若不能整除,则所得的商加1作为第一维的大小,所以选项A相当于:double a[1][3] = {6};其中a[0][0]=6,其他元素赋值0,选项A正确,答案为A。

3.4 D 分析:本题考察的知识点是:字符串常量。

在C语言中,字符串常量是以双引号括起来的字符序列。

因此B选项和C选项不正确。

字符序列中可包含一些转义字符,转义字符都是以"\"开头的。

A选项中包含了三个"\",前两个(\\)代表了一个"\"字符,后面一个和"""一起(\")被看作一个""",所以该字符串缺少一个结束的""",因此不正确。

D选项的两个"""之间没有任何字符,代表的是一个空串,是合法的字符串常量,因此D选项正确。

数组练习题及答案

数组练习题及答案

数组练习题及答案问题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语言知识学习数组理解练习及答案解析

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

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

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

则以下表达式中不能代表数组元bb[1]的地址的是(c )。

A. &bb[0]+1B. &bb[1]C. &bb[0]++D. bb+16. 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是(d )。

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 )。

#include<stdio.h>main(){int a[10],i=0;while(i<10) scanf("%d",________ );┇}A. a+(i++)B. &a[i+1]C. a+iD. &a[++i]9. 执行下面的程序段后,变量k中的值为(a )。

数组c习题答案解析

数组c习题答案解析

数组c习题答案解析 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】习题 4一、单项选择题1. 若有说明 int a[3][4];则a数组元素的非法引用是【】A. a[0][2*1]B. a[1][3]C. a[4-2][0]D. a[0][4]【答案】 D【解析】数组下标从0开始,a[0][4]的列下标越界。

2. 在C++语言中,引用数组元素时,其数组下标的数据类型允许是【】A. 整型常量B. 整型表达式C. 整型常量或整型表达式D. 任何类型的表达式【答案】 C3. 以下不正确的定义语句是【】A. double x[5]={,,,,};B. int y[5]={0,1,3,5,7,9};C. char c1[]={′1′,′2′,′3′,′4′,′5′};D. char c2[]={′\x10′,′\xa′,′\x8′};【答案】 B【解析】初始值的个数大于数组的大小,系统会出现编译错误。

4. 对以下说明语句的正确理解是【】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. 因为数组长度与初值的个数不相同,所以此语句不正确【答案】 B5. 若有说明:int a[ ][4]={0,0};则下面不正确的叙述是【】A. 数组a的每个元素都可得到初值0B. 二维数组a的第一维大小为1C. 当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小D. 只有元素a[0][0]和a[0][1]可得到初值,其余元素均得不到确定的初值【答案】 D【解析】二维数组初始化时,行大小可以省略,被省略的大小根据初值的个数系统来确定,本题中,有2个初值说明是1行4列,所以第一维为1。

元素a[0][0]和a[0][1]赋初值为0 ,其余元素初值系统默认为0。

Java数组练习题(带答案)培训讲学

Java数组练习题(带答案)培训讲学

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

2025届信息技术一轮复习练习:专题11 数组(含答案)

2025届信息技术一轮复习练习:专题11 数组(含答案)

专题11数组知识点一一维数组1.有如下Python程序段:a=[12,8,9,18,2,19,28,6]for i in range(len(a)-1):if a[i]<a[i+1]:a[i],a[i+1]=a[i+1],a[i]p=len(a)-1for i in range(len(a)-2,0,-1):if a[i]>a[p]:p=itmp=a[p];a[p]=a[0];a[0]=tmp执行该程序段后,a列表的值为()A.[28,9,18,8,19,12,6,2]B.[12,9,18,8,19,28,6,2]C.[28,9,18,19,8,12,6,2]D.[2,9,12,8,18,19,6,28]2.去除数组a中重复数据,部分程序代码如下a=[5,6,4,7,5,7,6,5,7,2]i=0;n=len(a)-1while i<n :while j<=n:if a[i]==a[j]:if a[i]==a[n]:②________else:③________n-=1j+=1i+=1print(a[:n+1])则划线处应填空的内容是()A.①j=i+1②a[j]=a[n]③j-=1B.①j=i②j-=1③a[j]=a[n]C.①j=i+1②j-=1③a[j]=a[n]D.①j=i+1②i-=1③a[j]=a[n]3.以下Python程序段用以实现在列表a下标为K的位置处插入元素X,而不会导致原有数据的丢失。

x=int(input(″请输入插入的数据:″))k=int(input(″请输入插入位置:″))a=[10,20,30,40,50,60,70]a.append(0)#在最后添加一个0,用以插入新数据。

for i in range(len(a)-2,k-1,-1):a[k]=x则划线处填入的代码为()A.a[i+1]=a[i]B.a[i]=a[i+1]C.a[i]=a[i-1]D.a[i-1]=a[i]4.有如下Python程序段:a=[1,0,0,0,1,0,1]for i in range(100,0,-1):flag=Truem=ifor j in range(len(a)-1,-1,-1):if m % 2!=a[j]:flag=Falsem//=2if flag:ans=ibreakprint(ans)程序运行后,变量ans的值是()A.46B.58C.69D.815.有如下的Python程序段:a=[3,5,7,9,11,13,15]p=2则与方框中程序段功能相同的语句是(注:pop()删除列表最后一个元素,del()删除列表指定范围元素)()A.a=a[:p]+a[p+1:]B.a=a[:p]+a[p:]C.a.pop()D.del a[p:]6.将一组数保存在列表a中,若a[0]=0,则在列表a中从左到右找到第一个大于零的元素,并与a[0]交换。

数组习题及答案

数组习题及答案

构造数据对象——数组一、填空题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. 数组的存储方式:解释数组在内存中是如何存储的。

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. 数组的异常处理:- 编写代码,实现在数组操作中添加异常处理机制,确保程序的健壮性。

java数组选择题附加答案解析

java数组选择题附加答案解析

Java数组选择题附加答案解析1. 下列哪个选项正确描述了Java数组?A. 数组可以包含不同类型的元素。

B. 数组的大小可以在运行时改变。

C. 数组的元素必须是相同类型的数据。

D. 数组的索引可以是负数。

答案: C。

解析:在Java中,数组的元素必须是相同类型的数据。

2. 给定以下Java数组的声明和初始化:javaint[] arr = {1, 2, 3};下列哪个选项初始化了一个与’arr’相同的数组?A. ‘int[] newArr = new int[3];’B. ‘int[] newArr = {1, 2, 3};’C. ‘int[] newArr = arr;’D. ‘int[] newArr = new int[]{1, 2, 3};’答案: D。

解析:选项D 初始化了一个与‘arr’相同的数组,并且也使用了初始化数组的方式。

3. 给定以下Java代码片段:javaint[] arr = {5, 3, 9, 1, 7};表达式’arr.length’的值是:A. 5B. 4C. 6D. 10答案: A。

解析:’arr.length’表示数组’arr’的长度,即数组中元素的个数,这里是5。

4. 给定以下Java数组的声明和初始化:javaint[] arr = new int[4];arr[0] = 1;arr[1] = 3;arr[2] = 5;arr[3] = 7;表达式’arr[2]’的值是:A. 1B. 3C. 5D. 7答案: C。

解析:’arr[2]’表示数组’arr’中索引为2的元素,即第三个元素,其值为5。

5. 给定以下Java数组的声明和初始化:javaint[] arr = {2, 4, 6, 8};下列哪个选项正确实现了对数组’arr’的遍历?A.javafor (int i = 0; i <= arr.length; i++) {System.out.println(arr[i]);}B.javafor (int i = 0; i < arr.length; i++) {System.out.println(arr[i]);}C.javafor (int i = 1; i <= arr.length; i++) {System.out.println(arr[i]);}D.javafor (int i = 0; i < arr.length - 1; i++) {System.out.println(arr[i]);}答案: B。

c语言数组考试题及答案

c语言数组考试题及答案

c语言数组考试题及答案一、选择题1. 在C语言中,数组的下标从哪个数字开始?A. 0B. 1C. 2D. 3答案:A2. 下列哪个选项是正确的数组声明?A. int arr[] = {1, 2, 3};B. int arr[5] = {1, 2, 3};C. int arr[5] = {1, 2};D. int arr[] = {1, 2, 3, 4, 5};答案:B3. 若有数组声明 int arr[5] = {1, 2, 3, 4, 5}; 则arr[2]的值是多少?A. 1B. 2C. 3D. 4答案:C二、填空题1. 假设有一个数组声明为 int arr[10] = {0}; 则arr[0]的值是______。

答案:02. 如果声明了一个数组 int arr[5] = {1, 2, 3, 4, 5}; 那么arr 数组的元素个数是______。

答案:5三、简答题1. 请简述C语言中数组的初始化方式有哪些?答案:C语言中数组的初始化方式包括:- 静态初始化:在声明数组时直接指定数组的元素值。

- 动态初始化:在声明数组后,通过循环或逐个赋值的方式初始化数组。

2. 在C语言中,如何访问数组的最后一个元素?答案:可以通过数组的长度减去1来访问数组的最后一个元素,例如对于数组arr,访问最后一个元素的方式是arr[arr.length - 1]。

四、编程题1. 编写一个C语言程序,实现将一个整数数组按照从大到小的顺序排序。

答案:```c#include <stdio.h>void sortDescending(int arr[], int n) {for (int i = 0; i < n - 1; i++) {for (int j = 0; j < n - i - 1; j++) {if (arr[j] < arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}}int main() {int arr[] = {4, 2, 3, 1, 5};int n = sizeof(arr) / sizeof(arr[0]);sortDescending(arr, n);for (int i = 0; i < n; i++) {printf("%d ", arr[i]);}return 0;}```该程序首先定义了一个排序函数sortDescending,它使用冒泡排序算法将数组从大到小排序。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
A、5 3 5 3B、5 3 3 5C、3 5 3 5D、3 5 5 3
28、以下程序执行后的输出结果是()
int f(int b[][4])
{ int i,j,s=0;
for(j=0;j<4;j++)
{ i=j;
if(i>2) i=3-j;
s+=b[i][j];
}
return s;
}
main( )
t=c[0];c[0]=c[1];c[1]=t;
}
void swap2(int c0,int c1)
{ int t;
t=c0;c0=c1;c1=t;
}
main( )
{ int a[2]={3,5},b[2]={3,5};
swap1(a); swap2(b[0],b[1]);
printf(“%d %d %d %d\n”,a[0],a[1],b[0],b[1]);
6
8、定义如下变量和数组:则下面语句的输出结果是()
int k;
int a[3][3]={1,2,3,4,5,6,7,8,9,};
for(k=0;k<3;k++)
printf("%d",a[k][2-k]);
A、3 5 7 B、3 6 9 C、1 5 9 D、1 4 7
9、下面程序段的运行结果是()
main()
{ int a[6],i;
for(i=1;i<6;i++)
{ a[i]=9*(i-2+4*(i>3))%5;
printf("%2d",a[i]);
}
}
A、-4 0 4 0 4 B、-4 0 4 0 3 C、-4 0 4 4 3 D、-4 0 4 4 0
12、下面程序的运行结果是()
main()
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
A、double x[5]={2.0,4.0,6.0,8.0,1.0}; B、int y[5]=}{0,1,2,3,4,5,6}
C、char c1[]={'1','2','3','4','5'}; D、char c2[]={'\x10','\xa','\x8'};
21、调用函数时,若实参是一个数组名,则向函数对应的形参传送的是()
#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;
C、字符串“STOP”与“STOP”相等。
D、字符串“That”小于字符串“The”
19、有两个字符数组a、b,则以下正确的输入语句是()
A、gets(a,b); B、scanf("%s%s",a,b); C、scanf("%s%s",&a,&b); D、gets("a"),gets("b");
20、以下不正确的定义语句是()
15、下面程序(每行程序前面的数字表示行号):()
1 main()
2 {
3 int a[3]={3*0};
4 int i;
5 for(i=0;i<3;i++)scanf("%d",&a[i]);
6 for(i=1;i<3;i++)a[0]=a[0]+a[i];
7 printf("%d\n",a[0]);
int k,j,b,u=0,m=4,w;
w=m-1;
while(u<=w)
{j=num_list[u];
k=2;b=1;
while(k<=j/2&&b) b=j%++k;
if(b) printf("%d",num_list[u++]);
else{num_list[u]=num_list[w];num_list[w--]=j; }
{int [4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}}; printf(“%d\n”,f(a));}}
A、12B、11C、18D、16
29、执行下列程序后输出的结果是()
int a[3][3]={{1},{2},{3}};
int b[3][3]={1,2,3};
A、数组的长度B、数组的首地址
C、数组第一个元素的值D、整个数组元素的值
22、下面程序段的运行结果是()
char s[6]; s=”abcd”; printf(“\”%s\”\n”,s);
A、“abcd”B、”abcd “C、\”abcd\”\nD、编译出错
23、(多项选择)以下不能对二维数组a进行正确初始化的语句是( )
8 }
A、第3行有错误B、第7行有错误C、第5行有错误D、没有错误
16、下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔。横线处应填入()
main()
{char s[80],c1,c2=' ';
int i=0,num=0;
gets(s);
while(s[i]!='\0')
char c[5]={'a','b','\0','c','\0'};
printf("%s",c);
A、'a''b' B、ab C、ab c D、abc
10、若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是()
A、2 B、3 C、4 D、无确定值
11、下面程序的运行结果是()
printf(“%d”,a[j]);printf(“\n”);}
A、1000B、10010C、00110D、10100
二、填空题
1、设数组a中的元素均为正整数,以下程序是求a中偶数的个数和偶数的平均值。请填空。(填空时数组元素请用数组表示方法)
main()
{int a[10]={1,2,3,4,5,6,7,8,9,10};
17、有字符数组a[80]和b[80],则正确的输出语句是()
A、puts(a,b); B、printf("%s,%s",a[],b[]); C、putchar(a,b); D、puts(a),puts(b);
18ห้องสมุดไป่ตู้下面描述正确的是()
A、两个字符串所包含的字符个数相同时,才能比较字符串。
B、字符个数多的字符串比字符个数少的字符串大.
main()
{printf(″﹪d \ n″,a[1][0] + b[0][0]);}
A、0B、1C、2D、3
30、以下程序运行后,输出结果是()
main()
{ int y=18,i=O,j,a[8];
do { a[i]=y%2;i++;y=y/2;}
while(y>=1);for(j=i-1;j>=0;j--)
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}};
24、(多项选择)若有说明:int a[3][4];则对a数组元素不能正确引用是( )
{c1=s[i];
if(i==0) c2=' ';
else c2=s[i-1];
if(《1》) num++;
i++;
}
printf("%d",num);
}
A、c1==' '&&c2==' ' B、c1!=' '&&c2==' ' C、c1==' '&&c2!=' ' D、c1!=' '&&c2!=' '
26、以下对一维整型数组的正确说明是()
A、int a(1);B、int n=10,a[n];
C、int n;scanf(“%d”,&n);int a[n];D、#define SIZE 10int a[SIZE];
27、有以下程序,其输出结果是()
void swap1(int c[])
{ int t;
1 1 1 1 10 0 0 1 00 1 0 0 00 1 0 1 0
相关文档
最新文档