c语言数组例题
C语言专题编程练习——数组
编程练习4 ——数组1. 随机数数组输出。
要求:产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。
输出结果:2. 求数组最大值、最小值、总和、平均数。
要求:产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。
求该数组的最大值、最小值、总和和平均值并输出。
输出结果:3. 冒泡法排序。
要求:产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。
按照升序排列并输出。
输出结果:4. 选择法排序。
输出结果:同上5. 比较法排序。
输出结果:同上6. 数组逆序输出要求:产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。
编程将逆序数组输出。
输出结果:7. 数组插数。
要求:产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。
按照升序排列并输出。
再输入一个数,按照原来的规律将其插入并输出。
输出结果:8. 用数组输出Fibonacci数列的前40项。
要求:每行输出5个元素,每个元素10位。
输出结果:(略)9. 用筛选法求100以内的素数。
输出结果:10. 数组查找。
要求:产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。
按照升序排列并输出。
再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。
11. 二维数组行列互换。
要求:将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。
输出结果:12. 编程输出杨辉三角(要求输出10行)。
输出结果:13. 编程输入5阶魔方阵。
输出结果:14. 找出一个二维数组中的鞍点。
要求:即该位置上的元素在该行最大,在该列最小。
可能没有鞍点。
输出结果:15. 输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。
输出结果:16. 编写程序实现strcat函数功能。
输出结果:17. 编写程序实现strcpy函数功能。
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;i<k;i++)for(j=0;j<k;j++) a[j]=a[i]+1;printf("%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;i<k;i++)for(j=0;j<k;j++) n[j]=n[i]+1;printf("%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]={1.1,2.1,3.1};则数组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.数组是数目固定的若干变量的有序集合,数组中各元素的类型可以不同。
C语言 数组有答案
一、选择题1. 以下对一维整型数组a的正确说明是。
A.int a(10); B.int n=0, a[n];C.int n;scanf(“%d”,&n);int a[n]; D.#define SIZE 10 int a[SIZE]2. 若有说明:int a[10]; ,则对a数组元素的正确引用是。
A.a[10] B.a[3.5] C.a(5) D.a[10-10]3. 以下能对一维数组a进行正确初始化的语句形式是。
A.int a[10]=(0, 0, 0, 0, 0); B.int a[10]={ };C.double a[ ][4]; D.int a[10]={10*1};4. 以下对二维数组a的正确说明是。
A.int a[3][ ]; B.float a(3,4); C.double a[ ][4]; D.float a(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.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,0},{ },{1,1}};7. 下面程序段(每行代码前面的数字表示行号)。
1 int a[3]={3*0};2 int i3 for(i=0; i<3; i++) scanf(“%d”,&a[i]);4 for(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. 若有定义float x[4]={1.3, 2.4, 5.6},y=6; 则错误的语句是。
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语言数组编程题目含详解共5道1. 计算数组元素的和编写一个程序,计算给定数组中所有元素的和。
```c#include <stdio.h>int main() {int arr[] = {1, 2, 3, 4, 5};int n = sizeof(arr) / sizeof(arr[0]);int sum = 0;for (int i = 0; i < n; ++i) {sum += arr[i];}printf("数组元素的和: %d\n", sum);return 0;}```2. 查找数组中的最大值和最小值编写一个程序,查找给定数组中的最大值和最小值。
```c#include <stdio.h>int main() {int arr[] = {5, 2, 8, 1, 4};int n = sizeof(arr) / sizeof(arr[0]);int max = arr[0];int min = arr[0];for (int i = 1; i < n; ++i) {if (arr[i] > max) {max = arr[i];}if (arr[i] < min) {min = arr[i];}}printf("最大值: %d\n", max);printf("最小值: %d\n", min);return 0;}```3. 反转数组元素的顺序编写一个程序,反转给定数组的元素顺序。
```c#include <stdio.h>int main() {int arr[] = {1, 2, 3, 4, 5};int n = sizeof(arr) / sizeof(arr[0]);int temp;for (int i = 0; i < n / 2; ++i) {temp = arr[i];arr[i] = arr[n - i - 1];arr[n - i - 1] = temp;}printf("反转后的数组: ");for (int i = 0; i < n; ++i) {printf("%d ", arr[i]);}return 0;}```4. 删除数组中的指定元素编写一个程序,删除给定数组中的指定元素。
C语言数组典型例题分析与解答
数组练习解答1 定义一个名为a的单精度实型一维数组,长度为4,所有元素的初值均为0的数定义语句是________________【分析】按照一般数据定义语句的格式,可以直接写出方法一(参看答案);考虑到所有元素均赋初值时可以省略数组长度,可以写出方法二(参看答案);考虑到不省略数组长度,给部分元素赋初值时,所有未赋初值的元素均有空值(对数值型数组来说,初值为0),可以写出方法三(参看答案);考虑到选用静态型,不赋初值所有元素也自动赋予。
空值(对数值型数组来说,初值为0),可以写出方法四(参看答案)。
【答案】方法一:float a[4]={0.0,0.0,0.0,0.0};方法二:float a[]={ 0.0,0.0,0.0,0.0};方法三:float a[4]= {0.0};方法四:static float [4];2 下列数组定义语句中,错误的是()①char x[1]='a';②auto char x[1]={0};③static char x[l];④char x[l];【分析】显然答案①中给字符型数组赋初值的格式不对(不能直接赋予字符常量,必须用花括号括住),所以备选答案①是符合题意的答案。
【答案】①3 用"冒泡排序法"对n个数据排序,需要进行n一1 步。
其中第k步的任务是:自下而上,相邻两数比较,小者调上;该操作反复执行n-k次。
现在假设有4个数据:4、l、3、2要排序,假定4为上、2为下,则利用"冒泡排序法"执行第2步后的结果是_________________。
【分析】开始排序前的排列执行第1步后的排列执行第2步后的排列4 1 11 4 23 2 42 3 3【答案】l、2、4、34 用"选择排序法"对n个数据排序,需要进行n-1步。
其中第k步的任务是:在第k个数据到第n个数据中寻找最小数,和第k个数据交换。
c语言二维数组经典例题
c语言二维数组经典例题题目:有一个3×4的二维数组,求该二维数组中的最大元素及其所在的行和列。
#include <stdio.h>int main() {int arr[3][4] = {{1, 5, 3, 4},{9, 2, 7, 8},{6, 3, 5, 2}};int max = arr[0][0];int row = 0, col = 0;// 遍历二维数组for (int i = 0; i < 3; i++) {for (int j = 0; j < 4; j++) {if (arr[i][j] > max) {max = arr[i][j];row = i;col = j;}}}printf("最大元素是 %d,位于第 %d行,第 %d列\n", max, row + 1, col + 1);return 0;}题目解析:1. 初始化二维数组- 首先定义并初始化了一个3×4的二维数组`arr`。
这个二维数组有3行4列,存储了一些整数元素。
2. 寻找最大元素- 先假设二维数组的第一个元素`arr[0][0]`为最大元素,将其赋值给变量`max`,并记录其行索引为0(`row = 0`),列索引为0(`col = 0`)。
- 然后使用嵌套的`for`循环遍历整个二维数组。
外层`for`循环控制行,内层`for`循环控制列。
- 在循环中,对于每个元素`arr[i][j]`,如果它大于当前的最大元素`max`,则更新`max`的值为`arr[i][j]`,同时更新`row`为当前行`i`,`col`为当前列`j`。
3. 输出结果- 根据找到的最大元素`max`以及其所在的行`row`和列`col`,输出结果。
需要注意的是,由于数组索引从0开始,而在实际生活中我们习惯从1开始计数行和列,所以在输出行和列的时候,我们输出`row + 1`和`col + 1`。
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;i<k;i++)for(j=0;j<k;j++) a[j]=a[i]+1;printf("%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]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;i<k;i++)for(j=0;j<k;j++) n[j]=n[i]+1;printf("%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 ).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]={1.1,2.1,3.1};则数组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.数组是数目固定的若干变量的有序集合,数组中各元素的类型可以不同。
c语言经典题目100题
1.寻找数组中的最大值和最小值2.寻找数组中的中位数3.查找数组中给定元素的索引4.反转数组5.合并两个升序数组6.移位数组7.查找两个数组的交集8.查找两个数组的并集9.查找两个数组的差集10.寻找数组中的众数11.寻找数组中的缺失元素12.寻找数组中的重复元素13.计算数组的和14.计算数组的平均值15.计算数组的方差16.计算数组的标准差17.比较两个数组是否相等18.复制数组19.排序数组20.搜索数组(线性搜索)21.搜索数组(二分搜索)22.插入元素到数组23.删除元素到数组24.更新数组中的元素25.创建动态数组26.释放动态数组27.字符串复制28.字符串连接29.字符串比较30.字符串搜索31.字符串替换32.字符串分割33.字符串反转34.字符串大小写转换35.字符串修剪36.计算字符串长度37.字符串格式化38.链表创建39.链表插入40.链表删除41.链表搜索42.链表反转43.链表排序44.链表合并45.链表复制46.链表释放47.树创建48.树插入49.树删除50.树搜索51.树反转52.树排序53.树合并54.树复制55.树释放56.堆创建57.堆插入58.堆删除59.堆搜索60.堆反转61.堆排序62.堆合并63.堆复制64.堆释放65.图创建66.图插入67.图删除68.图搜索69.图反转70.图排序71.图合并72.图复制73.图释放74.队列创建75.队列插入76.队列删除77.队列搜索78.队列反转79.队列排序80.队列合并81.队列复制82.队列释放83.栈创建84.栈插入85.栈删除86.栈搜索87.栈反转88.栈排序89.栈合并90.栈复制91.栈释放92.哈希表创建93.哈希表插入94.哈希表删除95.哈希表搜索96.哈希表反转97.哈希表排序98.哈希表合并99.哈希表复制100.哈希表释放。
C语言习题集合4(数组)
第四部分数组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 10scanf("%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]+1 B。
&bb[1] C. &bb[0]++ D. bb+16。
假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是( ).A。
3 B。
6 C。
10 D. 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。
以下程序段给数组所有的元素输入数据,请选择正确答案填入( )。
#include〈stdio。
h〉main(){int a[10],i=0;while(i〈10) scanf(”%d",________ );┇}A。
C语言(数组)习题与答案
一、单选题1、下列描述中不正确的是()A.字符串的结束符是'\0'。
B.可以对字符型数组进行整体输入、输出。
C.字符型数组中能存放字符串。
D.字符串函数声明在ctype.h中。
正确答案:D2、下面是有关C语言字符数组的描述,其中错误的是()A.不可以用赋值语句给字符数组名赋字符串B.可以用输入语句把字符串整体输入给字符数组C.字符数组只能存放字符串D.字符数组中的内容不一定是字符串正确答案:C3、下面是对数组s的初始化操作,其中不正确的是()A.char s[5]= " ";B.char s[5]={'a'};C.char s[5]={"a"};D.char s[5]= "abcdef";正确答案:D4、下面叙述正确的是()A.字符串"123 "与"123"相等。
B.字符串"123"小于字符串"2"。
C.两个字符串所包含的字符个数不相同时,才能进行大小比较。
D.字符个数多的字符串比字符个数少的字符串大。
正确答案:B5、下面程序段的输出结果是()char a[7]=“123456”;char b[4]=”ABC”;strcpy(a,b);printf(“%c”,a[5]);A.\0B.C.5D.6正确答案:D6、以下对二维数组a的正确说明是__。
A.double a[1][4];B.float a(3)(4);C. floatf a(3,4);D. int a[3][];正确答案:A7、以下能对二维数组a进行正确初始化的语句是__。
A. int a[][3]={{1,2,3},{4,5,6}};B.int a[2][]={{1,0,1},{5,2,3}};C.int a [2][4]={{1,2,3},{4,5},{6}};D. int a[][3={{1,0,1},{},{1,1}};正确答案:A8、若有说明: int a[3][4]={0};则下面正确的叙述是__。
C语言数组百道练习题含答案
C) int a(10);
D)#define SIZE 10
int a[SIZE];
6.3 若有说明:int a[10];则对数组元素的正确引用是 D 。 A)a[10] B)a[3,5] C)a(5) D)a[10-10]
6.4 在 C 语言中,一维数组的定义方式为:类型说明符 数组名 D 。
A)[常量表达式]
6.18 下面程序有错误的行是 D (行前数字表示行号)。
1 main() 2{ 3 int a[3]={0}; 4 int i; 5 for(i=0;i<3;i++) scanf("%d",&a[i]); 6 for(i=1;i<4;i++) a[0]=a[0]+a[i]; 7 printf("%d\n",a[0]); 8}
C)因为二维数组 a 中第二维大小的值除初值个数的商为 0,故数组 a 的行数为 1
D)只有元素 a[0][0]和 a[0][1]可得到初值 0,其余元素均得不到初值 0
6.13 若有说明:static int a[3][4];则数组中各元素 B 。
A)可在程序的运行阶段得到初值 0
B)可在程序的编译阶段得到初值 0
} } A) 1 1 1 1 1
11111 11111 11111 11111
B) 0 0 0 0 1 00010 00100 01000 10000
C) 1 0 0 0 0 01000 00100 00010 00001
D) 1 0 0 0 1 01010 00100 01010 10001
6.28 下面程序的运行结果是 C 。
A。 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
C语言数组练习
C语言数组练习一填空题1.构成数组的各个元素必须具有相同的______。
2.C语言数组的下标总是从开始,不可以为负数。
3.字符串是以为结束标志的一维字符数组。
4.有定义:char a[]=””;则a数组的长度是。
5.若有以下定义:int a[10];,则数组a元素下标的上限为______,下限为______. 6.在C语言中,数组int a[5];的首地址是。
7.数组名定名规则和变量名相同,遵循定名规则。
8.对于一维数组的定义“类型说明符数组名[常量表达式]”,其中常量表达式可以包括和,不能包含。
9.在C语言中,引用数组只能通过来实现,而不能通过整体引用来实现。
如引用数组int a[5];第四个元素为。
10、char str1[15]=“zhongguo”,数组str1所占的内存空间为个字节。
11.构成数组的各个元素必须具有相同的。
12、有数组的定义int str[ ]={0,1,2,3,4};该数组长度为______________。
13.有数组定义float kk[5];则将第一个元素赋值为 5.0的语句为____________;将第二个元素值为12.3的语句为______________,将一、二两个元素的和赋给最后一个元素的语句为_________________________________ 14.一维数组元素的下标最小值从_______________开始,定义一个数组为int x[8];的数组长度为________________.引用最后一个元素的为_____________________。
15、在数组中int score[10]={1、2、3、4、5}中,元素个数有______________个,其中score[8]的值为______________。
二选择题1.对两个数组a和b进行如下初始化char a[]="ABCDEF";char b[]={'A','B','C','D','E','F'};则以下叙述正确的是________。
C语言(数组)习题与答案
一、单选题1、下列描述中不正确的是()A.字符串的结束符是B.可以对字符型数组进行整体输入、输出。
C.字符型数组中能存放字符串。
D.字符串函数声明在ctype.h中。
正确答案:D2、下面是有关C语言字符数组的描述,其中错误的是()A.不可以用赋值语句给字符数组名赋字符串B.可以用输入语句把字符串整体输入给字符数组C.字符数组只能存放字符串D.字符数组中的内容不一定是字符串正确答案:C3、下面是对数组s的初始化操作,其中不正确的是()A.char s[5]="B.char s[5]={'a'};C.char s[5]={"a"};D.char s[5]= "abcdef";正确答案:D4、下面叙述正确的是()A.字符串“123 “与“123”相等。
B.字符串“123”小于字符串C.两个字符串所包含的字符个数不相同时,才能进行大小比较。
正确答案:BD.字符个数多的字符串比字符个数少的字符串大。
5、下面程序段的输出结果是()char a[7]=''123456w;char b[4]=〃ABC〃;strcpy(a z b);printfC'%c w z a[5]);A.\0B.C.5D.6正确答案:D6、以下对二维数组a的正确说明是一。
A.double a[l][4];B.float a(3)(4);C.floatf a(3,4);D.int a[3][];正确答案:A7、以下能对二维数组a进行正确初始化的语句是A. Int a[][3]={{l/2,3},(4,576}};B.int a⑵口={{1,0,1},{5,2,3}};C.int a ⑵[4]={{1,2,3},{4,5},{6}};D. int a[][3={{l/0/l},{},{l,l});正确答案:A8、若有说明:int a[3][4]={0};则下面正确的叙述是A.数组a中各元素都可得到初值,但其值不一定为0。
C语言数组选择题(新)五篇
C语言数组选择题(新)五篇第一篇:C语言数组选择题(新)1、以下定义语句中,错误的是________。
A)int a[]={1,2};B)char a[]={“test”};C)char s[10]={“test”};D)int n=5,a[n];D2、以下对一维数组a进行正确初始化的是__________。
A)int a[10]=(0,0,0,0,0);B)int a[10]={ };C)int a[ ]={0};D)int a[10]={ 10*2};C3、以下对二维数组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}};B4、在定义int a[5][4];之后,对a的引用正确的是________。
A)a[2][4]B)a[1,3] C)a[4][3]D)a[5][0] C5、以下给字符数组str定义和赋值正确的是________。
A)char str[10];str={“China!”};B)char str[ ]={“China!”};C)char str[10];strcpy(str,“abcdefghijkl”);D)charstr[10]={“abcdefghijkl”};B6、以下一维数组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];D7、在执行语句:int a[ ][3]={1,2,3,4,5,6};后,a[1][0]的值是________。
A)4B)1 C)2D)5 A8、当接受用户输入的含有空格的字符串时,应使用________函数。