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

合集下载

c语言数组练习题及答案

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语言数组1

c语言数组1
1、循环30次
① 输入->x ② s+x->s 2、算平均分ave 3、循环30次
数组
1.能保存所有的数据 2.能用循环结构处理数据
① 输入->x
② 如果x>ave 输出x。
定义 有序数据的集合 特点 所有元素类型相同 要素 数组名 下标
第五章
5.1 5.2 5.3 5.4
数组
一维数组 二维数组 字符型数据 数组常用算法举例
4
5 6
5
4 3
7
8 9
2
1 0
算法: for(i=0;i<n/2;i++) { t=a[i]; a[i]=a[n-1-i]; a[n-1-i]=t; }
例2 产生n个[0,70]之间的随机整数,并 按逆序重放在数组中。(n<50)
#include "stdlib.h" main( ) { int a[50], t, n, i; scanf("%d", &n); randomize(); for(i=0;i<n;i++) { a[i]=random(71); printf("%5d",a[i]); } printf("\n"); for(i=0;i<=n/2-1;i++) { t=a[i]; a[i]=a[n-1-i]; a[n-1-i]=t; } for(i=0;i<n;i++) printf("%5d",a[i]); }
21 0
34 0
55 0
.........
f[2]=f[1]+f[0]; f[3]=f[2]+f[1]; f[i]=f[i-1]+f[i-2];

c语言数组试题及答案

c语言数组试题及答案

c语言数组试题及答案1. 请编写一个程序,要求用户输入10个整数,然后将其存储在一个数组中,并输出这个数组的内容。

答案:```c#include <stdio.h>int main() {int numbers[10];int i;printf("请输入10个整数:\n");for (i = 0; i < 10; i++) {scanf("%d", &numbers[i]);}printf("数组内容为:\n");for (i = 0; i < 10; i++) {printf("%d ", numbers[i]);}return 0;}```2. 请编写一个程序,要求用户输入一个整数n(n>0),然后分别输入n个整数存储在一个数组中,计算并输出这个数组中所有元素的和。

答案:```c#include <stdio.h>int main() {int n;int numbers[100];int sum = 0;int i;printf("请输入整数n:\n");scanf("%d", &n);printf("请输入%d个整数:\n", n);for (i = 0; i < n; i++) {scanf("%d", &numbers[i]);sum += numbers[i];}printf("数组元素之和为:%d\n", sum);return 0;}```3. 请编写一个程序,要求用户输入一个整数n(n>1),然后分别输入n个整数存储在一个数组中,计算并输出这个数组中最大和最小的元素。

答案:```c#include <stdio.h>int main() {int n;int numbers[100];int max, min;int i;printf("请输入整数n:\n");scanf("%d", &n);printf("请输入%d个整数:\n", n);for (i = 0; i < n; i++) {scanf("%d", &numbers[i]);}max = numbers[0];min = numbers[0];for (i = 1; i < n; i++) {if (numbers[i] > max) {max = numbers[i];}if (numbers[i] < min) {min = numbers[i];}}printf("数组中的最大元素为:%d\n", max);printf("数组中的最小元素为:%d\n", min);return 0;}```4. 请编写一个程序,要求用户输入两个整数m和n(1<=m<=n<=100),然后生成并输出m到n之间(包含m和n)的所有整数。

C语言习题集(含答案)

C语言习题集(含答案)

一、单选题:(1)在C语言提供的合法的关键字是( )A)swicth B) cher C)Case D)default(2)在C语言中,合法的字符常量是()A)’\084’ B) ’\x43’C)’ab’D) "\0”(3)若有定义和语句:char s[10]: s="abcd”;printf(”%s\n",s);则结果是(以下u代表空格)()A)输出abcd B)输出aC)输出abcduuuuu D)编译不通过(4) 若有定义和语句:int **pp, *p,a=10, b=20;pp=&p;p=&a; p=&b; printf("%d,%d\n",*p,**pp);则输出结果是:()A)10,20 B)10,10 C)20,10 D)20,20(5)若有以下定义和语句:int u=010,v=0x10,w=10;printf("%d,%d,%d\n”,u, v, w);则输出结果是()A) 8,16,10B)10,10,10 C)8,8,10 D) 8,10,10 (6) 若有以下定义和语句char c1=' b', c2='e’;printf(”%d,%c\n", c2-c1,c2—'a’+”A");则输出结果是( )A)2,M B)3,EC)2,E ?D)输出项与对应的格式控制不一致,输出结果不确定(7)若有以下定义:char s[20]=”programming”,*ps=s;则不能代表字符o的表达式是( )A)ps+2 B) s[2]C) ps[2]D) ps+=2,*ps(8)若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是() for (i=5; i; i—-)for(j=0;j<4; j++){。

}A) 20B) 25 C)24 D) 30(9)若有以下定义和语句:char *s1=”12345",*s2="1234";printf("%d\n",strlen(strcpy(s1,s2)));则输出结果是()A)4B)5 C)9 D)10(10)若有以下定义和语句:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则不能表示a数组元素的表达式是()A) *p B) a[10]C)*a D)a[p-a](11)下面程序的输出是()main(){char *s=”121";int k=0,a=0,b=0;do{k++;if(k%2==0) {a=a+s[k]—’0’;continue;}b=b+s[k]—’0';a=a+s[k]—'0';}while (s[k+1]);printf("k=%d a=%d b=%d\n",k,a,b);A) k=3 a=2 b=3 B) k=3 a=3 b=2C)k=2 a=3 b=2D) k=2 a=2 b=3(12) 下面程序的输出是( )main(){ unsigned a=32768;printf("a=%d\n”,a);}运行结果: —32768A)a=—32768 B)a=32767C)a=-32767 D)a=—1(13) 若有以下定义:float x; int a,b; 则正确的switch 语句是( )A)switch(x) B) switch(x){case1.0:printf("*\n”);{case1, 2:printf(”*\n”);case2。

6.C语言第四章数组(1)

6.C语言第四章数组(1)

4.1.4 一维数组程序举例
【例4-2】 从键盘输入10个整数,求出它们的平均值 及比平均值大的数。 #include<stdio.h> void main( ) { int i , x[10]; float sum=0,aver=0.0; for (i=0;i<10;i++) {scanf("%d",&x[i]); sum=sum+x[i]; } aver=sum/10.0;
4.2.4 二维数组程序举例
#include<stdio.h> printf("\n array b:\n"); void main( ) for(i=0;i<3;i++) { int a[3][4], b[3]; printf("%5d",b[i]); int i,j,max; printf("\n"); for(i=0;i<3;i++) } for(j=0;j<4;j++) 运行结果: scanf("%d",&a[i][j]); 25 88 69 72↙ for(i=0;i<3;i++) 33 29 78 96↙ { b[i]=a[i][0]; 9 54 48 90↙ for(j=1;j<4;j++) array b: if(a[i][j]>b[i]) 88 96 90 b[i]=a[i][j]; }
4.2.1 二维数组的定义
例如,可以把x看作是一个一维数组,它有3 个元素:x[0]、x[1]、x[2];而x[0]、x[1]、x[2] 又可以看作是三个一维数组的名字。其中,x[0] 由x[0][0]、x[0][1]、x[0][2]三个元素组成;x[1] 由x[1][0]、x[1][1]、x[1][2]三个元素组成;x[2] 由x[2][0]、x[2][1]、x[2][2]三个元素组成。即: x[0]: x[0][0] x[0][1] x[0][2] x x[1]: x[1][0] x[1][1] x[1][2] x[2]: x[2][0] x[2][1] x[2][2] 注意,二维数组和一维数组一样,数组元素 的下标从0开始,因此x的下标最大的元素是 x[2][2],而不是x[3][3]。

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语言数组习题集

第7章数组习题A卷1. 单项选择题(1) int a[4]={5,3,8,9};其中a[3]的值为(D )。

D A. 5 B. 3 C. 8 D. 9(2) 以下4 个字符串函数中,( A)所在的头文件与其他3 个不同。

A. getsB. strcpyC. strlenD. strcmp(3) 以下4 个数组定义中,( D)是错误的。

A. int a[7];B. #define N 5 long b[N];C. char c[5];D. int n,d[n];(4) 对字符数组进行初始化,(B )形式是错误。

A. char c1[ ]={'1', '2', '3'};B. char c2[ ]=123;C. char c3[ ]={ '1', '2', '3', '\0'};D. char c4[ ]="123";(5) 在数组中,数组名表示(A )。

A. 数组第1 个元素的首地址B.数组第2 个元素的首地址C. 数组所有元素的首地址D.数组最后1 个元素的首地址(6) 若有以下数组说明,则数值最小的和最大的元素下标分别是(B )int a[12] ={1,2,3,4,5,6,7,8,9,10,11,12};A. 1,12B. 0,11C. 1,11D. 0,12(7) 若有以下说明,则数值为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](8) 设有定义:char s[12] = "string" ;则printf( "%d\n",strlen(s)); 的输出是( A)。

C语言程序设计 练习题参考答案 第四章 (1) 一维数组

C语言程序设计 练习题参考答案 第四章 (1) 一维数组
printf("%4d",a[i]);
printf("\n请输入要插入的整数,输入之后按回车键,如要结束请输入-1\n");
scanf("%d",&x);
}
}
/* 4.15 将十进制数转换成二进制数,并按位存到数组中。(限正整数) */
C语言程序设计 练习题参考答案 第四章 (1) 一维数组
/* 4.11 fibonacci数列,前15项 1,1,2,3,5,。。。。。*/
#include "stdio.h"
void main()
{
int f[15]={1,1}, i;
for(i=2;i<=14;i++) /* 计算 */
f[i]=f[i-2]+f[i-1];
printf("fibonacci数列,前15项\n"); /* 输出 */
for(i=0;i<=14;i++)
{
printf("%5d",f[i]);
if((i+1)%5==0)
for(i=0;i<=9;i++)
printf("%3d",a[i]);
}
/* 4.13 有序数列中插入若干个数,仍然保持有序 */
#include "stdio.h"
void main()
{
int a[100]={1,4,8,10};
int i,k,x,count=4;/* i,k 循环变量, x 输入整数,count 有多少整数*/

C语言题库数组(2021年整理精品文档)

C语言题库数组(2021年整理精品文档)

(完整版)C语言题库数组编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整版)C语言题库数组)的内容能够给您的工作和学习带来便利。

同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整版)C语言题库数组的全部内容。

数组一、选择题1、假定int 类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组X在内存中所占字节数是(B).A 3B 6C 10D 202、执行下面的程序段后,变量k 中的值为(A).int k=3, s[2];s[0]=k; k=s[1]*10;A 不定值B 33C 30D 103、设有数组定义: char array []="China”; 则数组array 所占的空间为(C)。

A 4 个字节B 5 个字节C 6 个字节有0/的结束标志D 7 个字节4、下列描述中不正确的是 CA 字符型数组中可以存放字符串B 可以对字符型数组进行整体输入、输出C 可以对整型数组进行整体输入、输出D 不能在赋值语句中通过赋值运算符”=”对字符型数组进行整体赋值5、给出以下定义char x[]=”abcdefg”;char y[ ]={’a’,'b’,’c','d’,'e','f’,’g'};则正确的叙述为 CA 数组X 和数组Y 等价B 数组x 和数组Y 的长度相同C 数组X 的长度大于数组Y 的长度D 数组X 的长度小于数组Y 的长度6、下述对C 语言字符数组的描术中错误的是 CA 字符数组可以存放字符串B 字符数组中的字符串可以整体输入、输出C 可以在赋值语句中通过赋值运算符”=”对字符数组整体赋值D 不可以用关系运算符对字符数组中的字符串进行比较7、定义如下变量和数组int i;int x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是 Cfor(i=0;i<3;i++) printf(”%d",x[i][2—i]);A 1 5 9B 1 4 7C 3 5 7D 3 6 98、以下一维数组a 的正确定义是(D)A int a(10);B float n=10,a[n];C int n;scanf(”%d”,&n);float a[n];D #define size 10; long a[size];9、合法的数组定义是 DA int a[]="string";B int a[5]={0,1,2,3,4,5};C vhst s="string";D char a[]={0,1,2,3,4,5};10、以下关于数组的描述正确的是CA 数组的大小是固定的,但可以有不同的类型的数组元素;B 数组的大小是可变的,但所有数组元素的类型必须相同;C 数组的大小是固定的,但所有数组元素的类型必须相同;D 数组的大小是可变的,但可以有不同的类型的数组元素;11、在定义int a[10];之后,对a 的引用正确的是 AA a[9]B a[6.3]C a(6)D a[10]12、以下对一维数组a 进行不正确初始化的是 AA int a[10]=(0,0,0,0);B int a[10]={};C int a[]={0};D int a[10]={10*2};13、以下对二维数组a 进行正确初始化的是 BA 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}};14、以下对字符数组进行不正确初始化的是 AA static char word[]=’cool\0’;B static char word[]={‘c’,’o’,’o’,’l’};C static char word[]={“cool\0”};D static char word[]="cool\0”;15、在定义int a[5][4];之后,对数组元素的引用正确的是 CA a[2][4]B a[5][0]C a[0][0]D a[0,0]16、下列选项中,能正确定义数组的语句是 DA int num[0。

数组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语言中,数组的元素可以是什么数据类型?答:数组的元素可以是任何数据类型,包括整型、浮点型、字符型、结构体等。

C语言(数组)习题与答案

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语言.实验7 数组(1)

c语言.实验7 数组(1)

实验7 数组(1)截止时间:5.8 23:59填空题1.程序的功能是:从键盘输入一个十进制正整数n,将n转换成二进制数并输出,填空以实现功能要求。

例如:若输入十进制数8,则输出其对应的二进制数1000;若输入十进制数25,则输出其对应的二进制数11001。

输入、输出示例:#include <stdio.h>int main(){int n,i=0,a[30];scanf("%d",&n);while(n!=0 ){a[i]=; //1n=n/2;; //2}for(i=;i>=0;i--) //3printf("%d",a[i]);return 0}2. 以下程序的功能是:从键盘任意输入一个整数x ,在数组a 中顺序查找,如果找到,则给出该数所在的下标值,如果没找到,则输出no 。

例如:若输入5,则输出其对应数组元素的下标4,若输入25,则输出no 。

输入输出示例:#include <stdio.h>int main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},i,x; scanf("%d",&x);; //1while(&& i<10 ) //2 i++;if() //3printf("pos:%d",i);elseprintf("no!");return 0; }编程题在下面编程题1.【问题描述】输入10个整数,求大于平均值的偶数和奇数各有多少个?【输入形式】输入10个整数【输出形式】输出大于平均值的偶数和奇数的个数。

【样例输入】2.【问题描述】教材P176:第7章课后习题题三(1)-选择法排序(输出数据之间用一个空格间隔)。

【输入形式】输入数据的个数【输出形式】【样例输入】【样例输出】。

c语言数组考试题及答案

c语言数组考试题及答案

c语言数组考试题及答案C语言数组考试题及答案一、选择题1. 以下哪个选项是正确的数组声明方式?A. int a[5] = {1, 2, 3, 4, 5};B. int a = [5] = {1, 2, 3, 4, 5};C. int a[5] = {1, 2, 3};D. int a = {1, 2, 3, 4, 5};答案:A2. 对于数组int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; 以下哪个表达式是合法的?A. a[10]B. a[-1]C. a[3.5]答案:D3. 假设有数组int a[5] = {1, 2, 3, 4, 5}; 以下哪个表达式可以得到数组a的元素个数?A. sizeof(a) / sizeof(int)B. sizeof(a) / sizeof(char)C. sizeof(a) / sizeof(float)D. sizeof(a) / sizeof(double)答案:A4. 以下哪个选项是正确的二维数组声明方式?A. int a[3][2] = {{1, 2}, {3, 4}, {5, 6}};B. int a[3][2] = {1, 2, 3, 4, 5, 6};C. int a[3][2] = {{1, 2}, {3, 4, 5}, {6, 7}};D. int a[3][2] = {1, 2, 3, 4, 5, 6, 7, 8};5. 对于二维数组int a[3][2] = {{1, 2}, {3, 4}, {5, 6}}; 以下哪个表达式可以得到元素a[1][1]的值?A. a[1][1]B. a[1] + 1C. *(a[1] + 1)D. a[1] * 1答案:A二、填空题1. 假设有数组int a[5] = {10, 20, 30, 40, 50}; 则a[0]的值是______。

答案:102. 对于数组int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; 则a[9]的值是______。

c语言数组练习题

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的整型数组,并将数组逆序。

C语言(数组)习题与答案

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.在C语言中,引用数组元素时,其数组下标的数据类型允许是c 。

A)整型常量B)整型表达式C)整型常量或整型表达式C)任何类型的表达式2.以下对一维整型数组a的正确说明是DA)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.若有定义:int a[10],则对数组a元素的正确引用是 D 。

A)a[10] B)a[3.5] C)a(5) D)a[10-10]4.以下不能对一维数组a进行正确初始化的语句是B 。

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元素的正确引用是。

AA)a[2][3] B)a[1,3] C)a(5) D)a[10-10]6.以下能对二维数组a进行正确初始化的语句是B。

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.以下不能对二维数组a进行正确初始化的语句是。

CA)int a[2][3]={0} ;B)int a[][3]={{1,2},{0}} ;C)int a[2][3]={{1,2},{3,4},{5,6}} ;D)int a[][3]={1,2,3,4,5,6} ;8.若有说明:int a[3][4]={0};则下面正确的叙述是D。

A)只有元素a[0][0]可得到初值0B)此说明语句不正确C)数组a中各元素都可得到初值,但其值不一定为0D)数组a中每个元素均可得到初值09.若有说明:int a[][4]={0,0};则下面不正确的叙述是D。

C语言数组1

C语言数组1

初始化的方法:
(1)在定义数组时,对全部数组元素指定初始值。 int a[10]={1,2,3,4,5,6,7,8,9,10}; 赋值结果:
a[0] a[1] a[2] a[3] a[4] a[5] a[6 a[7] a[8] a[9]
1
2
3
4
5
6
7
8
9
10
a[0]=1;a[1]=2;a[2]=3;….; a[9]=10;
数组元素在内存中的存放 数组元素被存放在 内存中一段连续的
内存单元中
2000 a[0]
2004
2008 2012 2016
a[1]
a[2] a[3] a[4]
例如:float a[5];
数组名代表数组的首
地址,即a的值与a[0] 的地址值相同。 数组名是一个常量, 不能被赋值。
数组的初始化
数组元素在使用前, 必须进行初始化:
63.8 83.2 81.2 72.2
88.8 89.0
88.8 89.0
92.5 不交换
92.5 二趟完
0 7 88.8 6 76.0 5 63.8 4 3 2 1 63.8
1 76.0 63.8 76.0 76.0
2 63.8 83.2 81.2 72.2
3 83.2 81.2 72.2 81.2
1
2
3
4
5
6
7
8
9
10
a[0]=1;a[1]=2;a[2]=3;….; a[9]=10;
数组的初始化
注意:若数组长度与提供的初值个数不相 同,则数组长度不能省略,必须写成:
int a[10]={1,2,3,4,5};

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

第四章数组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. 以下程序段给数组所有的元素输入数据,请选择正确答案填入( )。

#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中的值为( )。

int k=3, s[2];s[0]=k; k=s[1]*10;A. 不定值B. 33C. 30D. 1010. 以下程序的输出结果是( )main(){int i, a[10];for(i=9;i>=0;i--) a[i]=10-i;printf("%d%d%d",a[2],a[5],a[8]);}A. 258B. 741C. 852D. 36911. 以下程序运行后,输出结果是( )。

{int n[5]={0,0,0},i,k=2;for(i=0;i<k;i++) n[i]=n[i]+1;printf("%d\n",n[k]);}A. 不确定的值B. 2C. 1D. 012. 以下程序运行后,输出结果是( )。

main(){int y=18,i=0,j,a[8];do{ a[i]=y%2; i++;y=y/2;} while(y>=1);for(j=i-1;j>=0;j--) printf("%d",a[j]);printf("\n");}A. 10000B. 10010C. 00110D. 1010013. 以下程序运行后,输出结果是( )。

main(){int a[10], a1[ ]={1,3,6,9,10},a2[ ]={2,4,7,8,15},i=0,j=0,k;for(k=0;k<4;k++)if(a1[i]<a2[j]) a[k]=a1[i++];else a[k]=a2[j++];for(k=0;k<4;k++) printf("%d",a[k]);}A. 1234B. 1324C. 2413D. 432114. 以下程序运行后,输出结果是( )。

{int i,k,a[10],p[3];k=5;for (i=0;i<10;i++) a[i]=i;for (i=0;i<3;i++) p[i]=a[i*(i+1)];for (i=0;i<3;i++) k+=p[i]*2;printf("%d\n",k);}A. 20B. 21C. 22D. 2315. 以下程序运行后输出结果是( )。

main( ){int n[3],i,j,k;for(i=0;i<3;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[1]); }A. 2B. 1C. 0D. 316. 下列程序的主要功能是输入10个整数存入数组a,再输入一个整数x,在数组a中查找x。

找到则输出x在10个整数中的序号(从1开始);找不到则输出0。

程序缺少的是 ( )。

main(){int i,a[10],x,flag=0;for(i=0;i<10;i++)scanf("%d",&a[i]);scanf("%d",&x);for(i=0;i<10;i++) if _______ {flag=i+1;break;}printf("%d\n", flag);}A. x!=a[i]B. !(x-a[i])C. x-a[i]D. !x-a[i]17. 若说明:int a[2][3]; 则对a数组元素的正确引用是( ) 。

A. a(1,2)B. a[1,3]C. a[1>2][!1]D. a[2][0]18. 若有定义:int b[3][4]={0};则下述正确的是( ) 。

A. 此定义语句不正确B. 没有元素可得初值0C. 数组b中各元素均为0D. 数组b中各元素可得初值但值不一定为019. 若有以下数组定义,其中不正确的是( ) 。

A. int a[2][3];B int b[][3]={0,1,2,3};C. int c[100][100]={0};D. int d[3][]={{1,2},{1,2,3},{1,2,3,4}};20. 若有以下的定义:int t[5][4];能正确引用t数组的表达式是( )。

A. t[2][4]B. t[5][0]C. t[0][0]D.t[0,0]21. 在定义int m[ ][3]={1,2,3,4,5,6};后,m[1][0]的值是( )。

A. 4B. 1C. 2D.522. 在定义int n[5][6]后第10个元素是( )。

A. n[2][5]B. n[2][4]C. n[1][3]D.n[1][4]23. 若二维数组c有m列,则计算任一元素c[i][j]在数组中的位置的公式为( )。

(假设c[0][0]位于数组的第一个位置)A. i*m+jB. j*m+iC. i*m+j-1D.i*m+j+124. 若有以下定义语句,则表达式“x[1][1]*x[2][2]”的值是( )。

float x[3][3]={{1.0,2.0,3.0},{4.0,5.0,6.0}};A. 0.0B. 4.0C. 5.0D.6.025. 以下程序运行后,输出结果是 ( )。

main(){int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);}A. 0650B. 1470C. 5430D. 输出值不定26. 以下程序运行后,输出结果是( )。

main(){intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};int i,s=0;for(i=0;i<4;i++) s+=aa[i][1];printf(“%d\n”,s);}A. 11B. 19C. 13D. 2027. 有以下程序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\n",s);}该程序的输出结果是( )。

A. 18B. 19C. 20D. 2128. 若定义如下变量和数组:int i;int 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 929. 下述对C语言字符数组的描述中错误的是( )。

A. 字符数组可以存放字符串B. 字符数组中的字符串可以整体输入、输出C. 可以在赋值语句中通过赋值运算符"="对字符数组整体赋值D. 不可以用关系运算符对字符数组中的字符串进行比较30. 下述对C语言字符数组的描述中正确的是 ( )。

A. 任何一维数组的名称都是该数组存储单元的开始地址,且其每个元素按照顺序连续占存储空间B. 一维数组的元素在引用时其下标大小没有限制C. 任何一个一维数组的元素,可以根据内存的情况按照其先后顺序以连续或非连续的方式占用存储空间D. 一维数组的第一个元素是其下标为1的元素31. 不能把字符串:Hello!赋给数组b的语句是( )。

A. char str[10]= {'H', 'e', 'l', 'l', 'o', '! '};B. char str[10];str="Hello!";C. char str[10];strcpy(str,"Hello!");D. char str[10]="Hello!";32. 合法的数组定义是( )。

A. int a[]="string";B. int a[5]={0,1,2,3,4,5};C. int s="string";D. char a[]={0,1,2,3,4,5};33. 下列语句中,不正确的是( )。

相关文档
最新文档