文档库 最新最全的文档下载
当前位置:文档库 › 数组测试题

数组测试题

数组测试题
数组测试题

数组练习

选择题

1.下列说法正确的是

A. 数组如果没有初始化,也没有被赋值,则每个元素的默认值为0

B. 在给数组初始化时,可以只给其中几个元素赋初值

C. 数值型数组不能使用赋值语句整体赋值,但字符型数组可以使用赋值语句整体赋一个字符串

D. 用一个字符型数组来存放字符串时,可以存放与数组长度祥等数目的有效字符

2.下列说法正确的是

A. 在定义一维数组时,数组长度可以任意整形表达式表示(变量不行)

B. 在定义二维数组时,数组的第一维和第二维长度只能省略其中

一个(行不能省略)

C. 数组元素的下标可以用整型表达式或整型常量表示

D. 数组元素的下标必须为整形常量

3.对两个数组a和b进行如下初始化:

char a*+=”ABCDEF”;

char b*+=,‘A’,’B’,’C’,’D’,’E’,’F’-;

则下面描述正确的是()

A. a 和b数组完全相同

B. a 和b中都存放字符串

C. sizeof(a)比sizeof(b)大

D. sizeof(a)与sizeof(b)相同

4.以下程序的输出结果是()

#include

using namespace std;

int main()

{

char w[4][10]={"ABCD","EFGH","IFKL","M n OP"},k; for(k=1;k<3;k++)

cout<< w[k];

return 0;

}

A. ABCDEFGH

B. EFGHIFKL

C. ABCD EFGH IJKL

D. EFGH IFKL MNOP

5.有以下程序:

main()

{ char a[20]="abcd",b[]="12345";

int m,n;

for(m=strlen(a),n=2;b[n]!='\0';m++,n++) {

a[m]=b[n];

} cout <

}

A. abcd12345,12345

B. abcd,12345

C. abcd12345,abcd

D. abcd345,12345

6.2、有以下程序:

#include

#include

using namespace std;

int main()

{

char arr[2][4];

strcpy(arr*0+,”you”);

strcpy(arr*1+,”me”);

arr*0+*3+ = ‘&’;

cout << arr[0] << endl;

return 0;

}

该程序执行后的输出结果是()

A. you&me

B. you

C. me

D. yo&

7.下列数组定义中,会产生错误的是()

A. int a*+ = ,‘0’,’1’,’2’,’3’,’4’,’5’,’6’-;

B. int a[10] = {1,2,3,4,5,6};

C. char a*5+ = “hello”;

D. char a*5+ = ,‘h’,’e’,’l’,’l’,’o’-;

8.若有以下程序:

#include

using namespace std;

int main()

{

int I;

int a*3+*3+=,‘1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’-;

for(I=0;I<3;I++)

cout<

cout<

return 0;

}

执行后的输出结果是

A. 49 52 55

B. 1 4 7

C. 2 5 8

D. 50 53 56

9.下面程序的运行结果是()#include

void mian ()

{char ch*7+=,“12ab56”-;

int I,s=0;

for(I=0;ch*I+>=’0’&&ch*I+<=’9’;I+=2) s=10*s+ch[I]-‘0’;

cout<< s;

}

A. 1

B. 12a56b

C. 12ab56

D. 1256

10.若有以下程序:

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];

a[j]=t;

j--;

}

}

}

则该程序段的功能是()

A. 对数组a进行插入排序(升序)

B. 对数组a进行插入排序(降序)

C. 对数组a进行选择排序(升序)

D. 对数组a进行选择排序(降序)

11.若有说明“int a[3][4]={0};”,则下面正确的是

A. 只有元素a[0][0]可得到初值0

B. 此说明语句不正确

C. 数组a各元素都可得到初值,但其值不一定是0

D. 数组a中每个元素均可得到初值0

12.以下程序的输出结果是()

#include

int main ()

{

char b*+=”Hello ,you”;

b[5]=0;

cout<< b;

}

A. Hello,you

B. Hello

C. HeloOyou

D. Hell

13.当执行下面的程序时,如果输入ABC,则输出结果是()#include

#include

int main()

{

char ss*10+=”1,2,3,4,5”;

cin >> ss;

strcat(ss,”6789”);

cout<< ss;

}

A. ABC6789

B. ABC67

C. 12345ABC6

D. ABC456789

14.以下程序的输出结果是()

#include

int main ()

{

int b[3][3]={0,1,2,0,1,2,0,1,2},I,j,t=1;

for(I=0;I<3;i++)

for(j=I;j<=I;j++)

t=t+b[I][b[j][j]];

cout<< t;

}

A. 3

B. 4

C. 1

D. 9

15.以下不能正确赋进行字符串赋初值的语句是

A. char str*5+=”good!”;

B. char str*+=”good!”;

C. char *str=”good!”;

D. char str*5+=,‘g’,’o’,’o’,’d’-;

16.以下不能正确定义二维数组的选项是

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};

17.在”int b[][3]={{1},{3,2},{4,5,6},{0}};”,中b[2][2]的值是

A. 0

B. 5

C. 6

D. 2

18.对于”int *pa[5];”的描述,()是正确的

A. pa 是一个指向数组的指针,所指向的数组时5个int 型元素

B. pa 是一个指向某数组第5个元素的指针,该元素是int 型元素

C. pa[5] 表示某个数组的第5个元素的值

D. pa 是一个具有5个元素的指针数组,每个元素是一个int型指针

19.在下列对字符数组进行初始化中()是正确的

A. char s1*+=”abcd”;

B. char s2*3+=”xyz”;

C. char s3*+*+=,‘a’,’x’,’y’-;

D. char s4*2+*3+=,“xyz”,”mnp”-;

20.有以下程序:

main()

, char a*10+=”Abcd Efg9”,b*10+;

int j,k=0;

for(j=0,k=0;a*j+!=’\0’;j++)

, if (( a*j+>=’A’ &&a*j+<=’Z’||(a*j+>=’0’ && a*j+<=’9’)) { b[k]=a[j];k++;}

}

b[k]=0;

cout<< b+3;

}

执行结果为()

A. AbcdEfg9

B. bcdfg

C. AE9

D. 以上都不正确

填空题

1. 以下函数的功能是删除字符串s中的所有数字字符。请填空。void dele(char *s)

{

int n = 0;

for(i = 0; s[i] ; i++)

{

if ()

s[n+1] = s[i];

}

s*n+ = ‘\0’;

}

2. 若有0到9之间不同的士个数构成一个三位数,下面程序将统计出其有多少种方法,请填空完成此程序。

#include

using namespace std;

int main()

int i,j,k;

for(i=1;i<=9;i++)

{

for(j=0;j<=9;j++)

{

if()

continue;

else

{

for(k=0;k<=9;k++)

if()

count++;

}

}

}

cout<

return 0;

}

5. 将下面的语句段(a)补充完整,使其和语句段(b)在功能上完

全等价。

(a)

double s=0.0;

;

int k=0;

do{

s+=d;

k++;

d=1.0/(k*k+1);

}while();

(b)

double s=1.0;

for(int k=1;k<=10;k++)

s+=1.0/( k*k+1);

6. 定义如下数组:

int i;

int y[2][3]={2,4,6,8,10,12}; 则下面语句的输出结果是: for(I=0;I<2;i++)

cout<

[答案] 10,12

7. 下面程序的输出结果是

#include

void main()

,char str*+=”SSSWLIA”,c;

int k;

for(k=2;(c=str*k+!=’\0’);k++)

{swith(c)

,case ‘i’; ++k;break;

case ‘1’;conintue;

default :cout<< c;coutinue;}

cout<<’*’

}

}

8. 当运行以下程序时,从键盘输入:AhaMA Aha,然后回车,则下面程序的运行结果是

#include

int mian()

,char s*80+,c=’a’;

int I=0;

cin >>s;

while(s*I+!=’\0’)

{

if(s[I]==c-) a[I]=s[I]-32; elseif(s[I]==c-32) s[I]=s[I]+32; I++;}

Cout<< s;}

C语言程序设计实验报告(数组)

C语言程序设计实验报告(数组) 1实验目的 (1)熟练掌握一维数组,二维数组的定义,初始化和输入、输出方法; (2)熟练掌握字符数组和字符串函数的使用; (3)掌握与数组有关的常用算法(查找、排序等)。 2实验内容 编写函数catStr(char str1[],char str2[])用于进行两个字符串的连接,编写函数lenStr(char str[])用于统计一个字符串的长度,并在主函数中调用。 要求: 1、不允许用strcat()和strlen()字符处理库函数; 2、在主函数以直接初始化的方式输入两个字符串str1和str2.调用函数 strlen()计算并返回两个字符串的长度; 3、调用函数catstr()连接两个字符串(将str2连接在str1后面); 4、调用函数lenstr()计算并返回连接后字符串的长度; 5、在主函数中输入两个原始的字符串及几个字符串的长度,以及处理后字 符串及其长度。

3算法描述流程图

4源程序 #include #include void catStr(char str1[],char str2[]) { int i,j; for (i=0;str1[i]!='\0';i++); for(j=0;str2[j]!='\0';j++) str1[i+j]=str2[j]; str1[i+j]='\0'; } lenStr(char m[] ) {int i;

for (i=0;m[i]!='\0';i++); printf("%d",i); } void main() {char s1[50]="forever",s2[50]="more"; printf("s1=%s,s2=%s",s1,s2); printf("\ns1的长度:"); lenStr(s1); printf("\ns2的长度:"); lenStr(s2); catStr(s1,s2); printf("\n连接后的字符:"); printf("%s\n",s1); printf("连接后字符的长度:"); lenStr(s1); printf("\n"); } 5测试数据 s1=forever, s2=more 6运行结果 7出现问题及解决方法 在输入程序时,少写了半边引号,调试时发现存在错误,找到了错误并加以改正。无论什么事,细心都是必不可少的,认真是解决问题的关键。 8实验心得 通过本次实验,对于函数的定义和声明,数组以及循环语句有了进一步的认识,掌握了字符数组和字符串函数的使用,以及与数组有关的常用算法。此次实验不是调用strlen()和strcat()函数,而是通过自己设计程序来进行字符串的连接以及计量字符串的长度,由此我学会了如何去理清自己的思路来设计程序。

数组测试题

2012年上期期中考试试题 时量:90分钟班级:计41 姓名: 一、选择题(每题5分,共50分) 1.以下为一维整型数组a的正确说明是_________. a)int a(10); b)int n=10,a[n]; c)int n; d)#define SIZE 10; scanf("%d",&n); int a[SIZE]; int a[n]; 2.以下对二维数组a的正确说明是________. a)int a[3][]; b)float a(3,4); c)double a[1][4] d)float a(3)(4); 3.若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为______. (假设a[0][0]位于数组的第一个位置上。) a)i*m+j b)j*m+I c)i*m+j-1 d)i*m+j+1 4.若二维数组a有m列,则在a[i][j]前的元素个数为________. a)j*m+i b)i*m+j c)i*m+j-1 d)i*m+j+1 5.若有以下程序段: int a[]={4,0,2,3,1},i,j,t; for(i=1;i<5;i++) {t=a[i];j=i-1; while(j>=0&&t>a[j]) {a[j+1]=a[j];j--;} a[j+1]=t;} ... ... 则该程序段的功能是_________. a)对数组a进行插入排序(升序) b)对数组a进行插入排序(降序) c)对数组a进行选择排序(升序) d)对数组a进行选择排序(降序) 6.有两个字符数组a、b,则以下正确的输入语句是_______. a)gets(a,b); b)scanf("%s%s",a,b); c)scanf("%s%s",&a,&b); d)gets("a"),gets("b"); 7.下面程序段的运行结果是_________. char a[7]="abcdef"; char b[4]="ABC"; strcpy(a,b); printf("%c",a[5]); a)空格b)\0 c)e d)f 8.判断字符串s1是否大于字符串s2,应当使用_______.

C语言数组编程题

实验4 数组 一.实验目的: 1.掌握一维数组的定义、赋值和输入输出的方法; 2.掌握字符数组定义、初始化、赋值的方法; 3.了解常见的字符串函数功能及其使用方法; 4.掌握二维数组的定义与引用。 二.实验内容: 1.编写程序,输入10个整数存入一维数组,统计输出其中的正数、负数和零的个数。 2.编写程序,输入10个整数存入一维数组,再按逆序重新存放后再输出。 3.编写程序,输入10个整数存入一维数组,对其进行升序排序后输出。 4.编写程序,求二维数组中元素的最大值和最小值。 5.编写程序,求一个4×4矩阵中所有元素之和。 6.编写程序:从键盘上输入一字符串,统计输出该字符串中的字母字符、数字字符、空格以及其他字符的个数。 7.编写程序:从键盘上输入一字符串,并判断是否形成回文(即正序和逆序一样,如“abcd dcba”)。 8. 产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。 9. 产生一个由10个元素组成的一维数组,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,按原来的规律将其插入并输出。 页脚内容1

10. 产生一个由10个元素组成的一维数组,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,则输出找不到。 11. 找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。 12. 编程输出杨辉三角。(要求输出10行)(杨辉三角:每行端点与结尾的数为1.每个数等于它上方两数之和。每行数字左右对称,由1开始逐渐变大) 13. 输入一行字符,统计大写字母、小写字母、数字、空格以及其它字符个数。 14. 编写程序,将两个字符串连接起来,不用strcat。 15. 编写程序实现strcpy函数功能。 16. 编程实现strlen函数功能。 17. 编程求2-4+6-8…-100+102的值。 18. 假设某人有100,000现金。每经过一次路口需要进行一次交费。交费规则为当他现金大于50,000时每次需要交5%如果现金小于等于50,000时每次交5,000。请写一程序计算此人可以经过多少次这个路口。 19. 输入若干个正整数,以0结束,将其中大于平均值且个位为5的数排序后输出。(按由大到小的顺序排序) 20. 输入一个字符串,将其中ASCII码值为基数的字符排序后输出。(按由小到大的顺序) 21. 输入一个以回车结束的字符串(少于80个字符),滤去所有的非16进制字符后,组成一个新字符串(16进制形式),然后将其转换为10进制数后输出。 22. 读入一个正整数n(1<=n<=6),再读入n阶矩阵,计算该矩阵除副对角线、最后一行、最后一列 页脚内容2

一维数组练习题

一维数组练习题 1、以下对一维数组a进行正确初始化的是__________。 A) int a[10]=(0,0,0,0,0); B) int a[10]={ }; C) int a[ ]={0}; D) int a[10]={ 10*2}; 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、执行下面的程序段后,变量k中的值为__________。 int k=3,s[2]; s[0]=k; k=s[1]*10; A) 不定值B) 33 C) 30 D) 10 4、下列程序执行后的输出结果是__________。 main() {int a,b[5]; a=0; b[0]=3; printf("%d,%d\n",b[0],b[1]); } A) 3,0 B) 3 0 C) 0,3 D) 3,不定值 5、已知数组a的赋值情况如下所示,则执行语句a[2]++;后a[1]和a[2]的值 分别是________。 a[0] a[1] a[2] a[3] a[4] ┌──┬──┬──┬──┬──┐ │ 10 │ 20 │ 30 │ 40 │ 50 │ └──┴──┴──┴──┴──┘ A) 20和30 B) 20和31 C) 21和30 D) 21和31 6、以下程序输出a数组中的最小值及其下标,在划线处应填入的是________。main( ) { int i,p=0,a[10]; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=1;i<10;i++) if(a[i]

c语言数组典型试题设计含答案

一.选择题(2*20) 【题1】在C 语言中,引用数组元素时,其数组下标的数据类型允许是。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】若有说明:int a[10];则对a 数组元素的正确引用是。 A)a[10] B)a[3.5] C)a(5) D)a[10-10] 【题4】在C 语言中,一维数组的定义方式为:类型说明符数组名; A)[整型常量表达式] B)[整型表达式] C)[整型常量] 或[整型表达式] D)[常量] 【题5】以下能对一维数组a 进行正确初始化的语句是。 A)int a[10]=(0,0,0,0,0); B)int a[10]={}; C)int a[]={0}; D)int a[10]=”10*1”; 【题6】以下对二维数组a 的正确说明是。 A)int a[3][]; B)float a(3,4); C)double a[1][4]; D)float a(3)(4); 【题7】若有说明:int a[3][4];则对a 数组元素的正确引用是。 A)a[2][4] B)a[1,3] C)a[1+1][0] D)a(2)(1) 【题8】若有说明:int a[3][4];则对a 数组元素的非法引用是。 A)a[0][2*1] B)a[1][3] C)a[4-2][0] D)a[0][4] 【题9】以下能对二维数组a 进行正确初始化的语句是。 A)int a[2][]={{1,0,1},{5,2,3}}; B)int a[][3]={{1,2,3},{4,5,6}}; C)int a[2][4]={{1,2,3},{4,5},{6}}; D)int a[][3]={{1,0,1},{},{1,1}}; 【题10】以下不能对二维数组a 进行正确初始化的语句是。 A)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};

数组练习题

1.下面数组声明语句,_________正确。 A)Dim a[2,4] As Integer B)Dim a(2,4)As Integer C)Dim a(n,n)As Integer D)Dim a(2 4)As Integer 2.假定建立了一个名为Command1的命令按钮数组,则以下说法中错误的是________。 A)数组中每个命令按钮的名称(名称属性)均为Command1 B)数组中每个命令按钮的标题(Caption属性)都一样 C)数组中所有命令按钮可以使用同一个事件过程 D)用名称Command1(下标)可以访问数组中的每个命令按钮 3.数组声明语句Dim a(-2 to2,5)中,数组包含元素个数为________。 A)120 B)30 C )60 D)20 4.下面程序的输出结果是________。 Dim a a = Array(1,2,3,4,5,6,7) For i = Lbound(a)to Ubound(a) a(i)= a(i)* a(i) Next i Print a(i) A)36 B)程序出错C)49 D)不确定 5.下面程序的输出结果是________。 Option Base 1 Private Sub Command1_Click() Dim a%(3, 3) For i = 1 To 3 For j = 1To 3 If j > 1 And i > 1 Then a(i, j)= a(a(i - 1, j - 1), a(i, j - 1))+ 1 Else a(i, j)= i * j End If Print a(i, j); ""; Next j Print Next i End Sub A)1 2 3 B)1 2 3 C )1 2 3 D)1 2 3 2 3 1 1 2 3 2 4 6 2 2 2 3 2 3 1 2 3 3 6 9 3 3 3 6.在设定Option Base 0后,经Dim arr(3,4)As Integer 定义的数组arr含有的元素个数为________。 A)12 B)20 C )16 D)9 7.用Dim A (-3 To 5)As Integer语句定义的数组的元素个数是________。 A)6 B)7 C )8 D)9 8.有如下程序代码,输出结果是________。 Dim a()

c语言数组练习题大全

231页; 本节设计程序完成一个简单的学籍; 3管理系统的案例,学生的基本信息:学号,姓名,年龄,c 语言成绩。假设班级有10名学生,能实现以下功能: (1)输入10名学生的基本信息。 (2)输出10名学生的基本信息。 (3)输入学号、姓名,输出该学生的基本信息。 (4)按学号年龄对学生进行排序(升序),按c 语言成绩降序排序。 (5)统计优 良 不及格。 1.数据结构分析 此案例是一位数组,二维数组的综合运用。10名学生的学号,年龄,c 语言成绩可分别用长度为10的一位数组sno (long ),sage (int 型),cs (float 型)存储;10名学生的姓名可用元素长度为20个字符的一位数组,既字符型二维数组sname 存储。 2算法分析 使用模块化设计思想,进入系统主界面时有六个主要模块,输入学生的基本信息,输出学生的信息,查找学生 的基本信息,排序,统计,退出。学籍管理系统的机构功能框架,如图 5-28 所示。 图 5-28 学生管理系统的结构功能框架 5.5.2 奇数阶魔方矩阵 本节将实现技术矩魔方矩阵。 项目任务:用数组实现N 阶魔方矩阵(N 为奇数)。所谓的N 阶魔方矩阵是指把1~N*N 自然数按一定的方法排列成N*N 的矩阵,使得:任意行、任意列以及两个对角线上的数之和都为65。 5阶魔方如下: 17 24 1 8 15 输 入 学 生 的 基 本 信 息 输 出 学 生 的 信 息 查 找 学 生 的 基 本 信 息 排 序 统 计 退 出 学籍管理系统

23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 本章习题: 1.设数组int a【N】的元素全部不相等,求a中最大元素和次大元素。 2.求有10个整数的数组a中奇数的个数和平均值,以及偶数个数和平均值。 3.统计输入的一串字符(“假设以‘\n’结束”)中,大写字母A,B...Z各出现的次数。 4.数组a:“1,7,9,11,13,15,17,19”;数组b:“2,4,6,8,10”两个数组合并为数组c;按升序排列。 5.输入10个数,将10个整数按升序排列输出,并且奇数在前,偶数在后。如果输入的10个数是:10 9 8 7 6 5 4 3 2 1,则输出:1 3 5 7 8 2 4 6 8 10 (编程提示、;可利用两个数组变量,一个用来存放输入的整数,输入后,对该数组进行排序,然后将数据复制到另一个数组中,先复制奇数再复制偶数)。 6.定义一个有10个元素的一位数组count ,从键盘上输入8个整数,将其按从大到小的顺序排列,并将排列后的数组输出。 7.求数组int a【M】【N】每行元素的平均值和平均最大的行号。 8.求A【M】【N】与B【M】【N】两矩阵的和矩阵C【M】【N】和差矩阵D【M】【N】(矩阵的值由键盘输入)。 9.有n个学生,每人考m门课。 (1)找出成绩最高的学生的学号和课程号 (2)找出有不及格课程的学生的学号及其各门课的全部成绩。 (3)求全部学生全部课程的平均分。

数组练习题及答案

第五章数组练习题及答案 一、选择题 1、判断字符串a和b是否相等,应当使用() A、if(a==b) B、if(a=b) C、if(strcpy(a,b)) D、if(strcmp(a,b)) 2、以下正确的定义语句是() A、int a[1][4]={1,2,3,4,5}; B、float x[3][]={{1},{2},{3}}; C、long b[2][3]={{1},{1,2},{1,2,3}}; D、double y[][3]={0}; 3、以下各组选项中,均能正确定义二维实型数组a的选项是() A、float a[3][4]; float a[ ][4]; float a[3][ ]={{1},{0}}; B、float a(3,4); float a[3][4]; float a[ ][ ]={{0},{0}}; 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 #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; } putchar('*'); } } A、SSW* B、SW* C、SW*A D、SW 5、下面程序段是输出两个字符串中对应相等的字符。横线处应填入() char x[]="programming"; char y[]="Fortran"; int i=0; while(x[i]!='\0'&&y[i]!='\0')

一维数组练习题

维数组练习题1 、以下对一维数组 a 进行正确初始化的是 ____________ A) int a[10]=(0,0,0,0,0); C) int a[ ]={0}; B) int a[10]={ }; D) int a[10]={ 10*2}; 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 、执行下面的程序段后 , 变量 k 中的值为 __________ 。 int k=3,s[2]; s[0]=k; k=s[1]*10; A) 不定值B) 33 C) 30 D) 10 4 、下列程序执行后的输出结果是 main() {int a,b[5]; a=0; b[0]=3; printf("%d,%d\n",b[0],b[1] ); A) 3,0 C) 0,3 } B) 3 0 D) 3, 不定值 5、已知数组a的赋值情况如下所示,则执行语句a[2]++; 后a[1]和a[2]的值分别是_______________ 。 a[0] a[1] a[2] a[3] a[4] 10 | 20 | 30 | 40 | 50 | A) 20 和 30 C) 21 和 30 B) 20 和 31 D) 21 和 31 6、以下程序输出 a 数组中的最小值及其下标,在划线处应填入的是 _____________ main( ) { int i,p=0,a[10]; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=1;i<10;i++) if(a[i]

Java数组练习题(带答案)

一填空题 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__ A. a[0]=1; B. a[10]=2; C. a[0]=5*2; D. a[1]=a[2]*a[0]; 3.下面的二维数组初始化语句中,正确的是____ A. float b[2][2]={0.1,0.2,0.3,0.4}; B. int a[][]={{1,2},{3,4}}; C. int a[2][]= {{1,2},{3,4}}; D. float a[2][2]={0}; 4.引用数组元素时,数组下标可以是_D___ A. 整型常量 B. 整型变量 C. 整型表达式 D. 以上均可 5.定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为____ A. 24 B. 25 C. 18 D. 17 6.下列初始化字符数组的语句中,正确的是__B__ A. char str[5]="hello"; B. char str[]={'h','e','l','l','o','\0'}; C. char str[5]={"hi"}; D. char str[100]=""; 7.数组在Java中储存在 C 中 A. 栈 B. 队列 C. 堆 D. 链表 8.下面程序的运行结果是____ main() { int a[][]={{1,2,3},{4,5,6}}; System.out.printf("%d", a[1][1]); } A. 3 B. 4 C. 5 D. 6 9.下面程序的运行结果是_C___ main() {

C语言必背的典型程序设计题目-数组函数答案

数组部分必须会编写的程序(参考答案)1、使用选择法、冒泡法对10个数进行排序,并输出排序前后的数列。 //选择法 #include void main() { int a[10]={12,45,7,8,96,4,10,48,2,46},n=10,i,j,t,temp; printf("Before sort:"); for(i=0;i<10;i++) { printf("%4d",a[i]); } printf("\n"); //排序 for(i=0;i<9;i++) { t=i; for(j=i+1;j<10;j++) { if(a[t]>a[j]) { t=j; } } if(t!=i) { temp=a[i]; a[i]=a[t];a[t]=temp; } } printf("Aftere sorted:"); for(i=0;i<10;i++) { printf("%4d",a[i]); } printf("\n"); } //冒泡法 #include void main() { int a[10]={12,45,7,8,96,4,10,48,2,46},n=10,I,j,t; printf(“Before sort:”); for(i=0;i<10;i++) { printf("%4d",a[i]); } prtintf(“\n”); //排序 for(i=0;i<=n-1;i++) { for(j=0;ja[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;} } printf(“Aftere sorted:”); for(i=0;i<10;i++)

C语言程序设计数组(说课稿)

C语言程序设计——数组(说课稿) 南京浦口中等专业学校—陈松一、课程目标 《C语言程序设计》是中职对口单招计算机专业理论考试和技能考试中一门重要的课程。要求学生掌握计算机编程语言的基本知识,初步掌握程序设计的基本思想,具有基本的C程序设计能力,能比较熟练地阅读、理解和编制简单的C程序。 二、学情分析 本课程是针对综合高中对口单招班高二年级计算机专业的学生,学生已学习了计算机基础和计算机原理课程,对专业知识有了一定的了解。但班级学生参差不齐,不少学生学习习惯较差,基础较薄弱。教师必须首先弄清学生对专业课学习的障碍及原因,再根据教学原理制定出相应的对策,培养学生学习的积极,提高解决实际问题的能力。 三、教材与参考书 本课程使用的教材是《C语言编程基础》(第2版)电子工业出版社。此教材分为两部分,第一部分是基础知识模块,第二部分是选用模块。对口单招学生只学习第一部分内容,第二部分内容单招计算机专业的考纲中是不要求的。 辅导练习: 1、C语言阶段综合测试卷集。 2、自己编写的每次课的学生工作页。

四、教材分析 1、单元内容 数组单元是C语言的一个重要章节,本单元教学内容有: (1)一维数组的定义、引用和初始化、一维数组应用。 (2)二维数组的定义、引用和初始化、二维数组应用。 (3)字符串与字符数组、字符串的输入输出、字符串处理函数、字符数组应用。 2、单元设计 (1)本单元每次课都编写了学生工作页,让学生根据任务去学习本单元内容。 (2)本单元加强了上机实习的课时数,着重培养学生上机实践能力,提高他们的程序设计能力。

3、教学目标 ?知识目标: (1)了解一维数组、二维数值型数组的定义和使用方法。 (2)掌握对数组的初始化。 (3)掌握字符串的输入、输出和处理。 (4)熟练掌握使用数组进行程序设计的方法。 (5)理解程序设计中的几种常见算法的基本思路。 ?技能目标: (1)学生能正确的定义数组;能正确的引用数组和初始化数组;能使用数组进行程序设计。 (2)培养学生的分析、思考能力,提高解决问题的能力。 ?情感目标: (1)通过上机实习调试程序,在学习中培养学生理论联系实际,使学生对编程更加感兴趣。 (2)培养学生认真学习的态度,激发学生学习C语言的兴趣。 4、单元重、难点 ?重点: 数组的定义、引用和初始化。 ?难点: 数组的应用及常见算法的基本思路。

C语言程序设计实验报告-数组

一、实验项目名称 数组 二、实验目的 1.掌握数组的基本概念,包括:数组的定义、数组的类型、数组的初始化、数组的赋值、数组元素下标的范围、数组元素的正确以及引用数组元素的输入/输出。 2.掌握字符数组与字符串的使用方法。理解字符数组与其它数组的区别、理解字符串及其特点。掌握常用的字符串处理库函数的用法并清楚对字符串的简单处理。 3.掌握与数组相关的算法,包括排序算法和查找算法等。 三、实验内容 进行有关数组的程序设计。 具体内容: 1.编程实现:对任意一个一维数组,从中找出数组元素的最大值和最小值。 要求: (1)数组为整型数组(10个元素)。 (2)使用scanf函数实现数组元素的输入。在输入前给出必要的提示。 (3)输出时给出必要的说明,首先输出原始的10个元素,换行后输出最大值以及最大值在数组中的位置、最小值以及最小值在数组中的位置。 (4)如果现改为20个元素的数组,怎样修改程序?修改程序后,运行程序进行检查。如果需要数组元素不断改变,应怎样修改程序? 2.编程实现:在给定的字符串中查找满足条件的第一个字符。 要求: (1)字符串采用初始化的方式处理。 (2)通过scanf函数读入一个任意字符。 (3)在字符串中查找该字符,如果存在该字符,输出该字符在字符串中的位置以及相应的说明。如果不存在该字符,则要给出相应的信息。 3.编程实现:首先任意输入一个大于2且小于10的整数n,再输入一个由n决定的二维整型数组(n ?n),形成n ?n阶矩阵,将矩阵中最大元素所在的行和最小元素所在的行对调后,再输出该矩阵(注意:数组不允许动态定义)。 例如:原始数据:n=4 结果数据: 1 2 3 4 8 11 14 16 3 5 9 10 3 5 9 10 8 11 14 16 1 2 3 4 15 2 7 6 15 2 7 6 要求: (1)本题中所涉及到的循环都采用for语句。 (2)在输入/输出时进行必要的说明。

C语言实验五、数组程序设计解答

C语言实验五、数组程序设计解答 实验五数组应用,二, 一、实验目的 1(掌握二维数组的定义和初始化。 2(掌握二维数组元素的引用及其应用。 3(掌握字符数组的定义和初始化。 4(掌握字符数组元素的引用及其应用。二、实验内容 1([目的]掌握二维数组的输出方法。 [题目内容]已知有二维数组a的定义:int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};编程序~以三行四列的形式输 出a数组。 [输入]无 [输出] 1 2 3 4 5 6 7 8 9 10 11 12 [提示] 利用二重for循环结构与printf()。 #include void main() { int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; int i,j; printf("二维数组:\n"); for(i=0;i<3;i++) { for(j=0;j<4;j++)

printf("%6d",a[i][j]); printf("\n"); } } 2([目的]掌握二维数组的输入、输出方法。 [题目内容]已知有一个3行2列的二维数组: 89 76 67 98 54 78 编程序~从键盘输入数据存储在二维数组中~并以3行2列的形式输出。 [输入]89~76~67~98~54~78 [输出] 89 76 67 98 54 78 [提示] 利用二重for循环结构与scanf()、printf()及%4d格式输出。 #include void main() { int a[3][2]; int i,j; printf("请输入3行2列二维数组:\n"); for(i=0;i<3;i++) for(j=0;j<2;j++) scanf("%d",&a[i][j]);

数组练习题

第五章数组 一、教学的目的与要求 掌握一维数组、二维数组、字符数组以及二维的字符数组的定义和使用,数组中元素的引用,数组的初始化,字符串的输入与输出,字符串运算函数的使用。 二、重点与难点 数组的应用 三、教学内容 第一节一维数组 数组是指一组同类型数据组成的序列,用一个统一的数组名标识这一组数据,用下标来指示数组中元素的序号,同一数组中的所有元素必须属于同一数据类型。 1、一维数组的定义 一维数据的定义方式为:类型说明符数组名[常量表达式];例如:int a[10];说明: ①数组名定名规则和变量名相同,遵循标识符定名规则。 ②数组名后是用方括号括起来的常量表达式,不能用圆括号。 ③常量表达式表示元素的个数,即数组长度。 ④常量表达式中可以包括常量或符号常量,不能包含变量。 例1:以下对一维数组a的正确说明是()。 A)int a(10); B)int n=10,a[n]; C)int n;scanf(“%d”,&n); D)#define SIZE 10 int a[n]; int a[SIZE]; 答案:D 2、一维数组的初始化 ①可对全部元素赋初值:例如:int a[5]={1,3,5,7,9}; ②可给部分赋值:例:int a[5]={1,3,5}; ③如果想使全部元素为1: 例 int a[5]={1,1,1,1,1};(注:不能省略) ④在对全部元素赋值时,可不指定数组长度。 例 int a[ ]={1,2,3,4,5,6}; ⑤如对一个静态或外部的数组不进行初始化,隐含的初值为0。如不对动态数组初始化,则其初始值为一些不可预料的数。 例2:以下能对一维数组a进行正确初始化的语句是()。 A)int a[10]=(0,0,0,0,0); B)int a[10]={}; C)int a[]={0}; D)int a[10]={10*1}; 答案:C 例3:以下不正确的定义语句是()。 A)double x[5]={1.0,2.0,3.0,4,0,5.0}; B)int y[5]={1,2,3,4,5,6}; C)char c1[]={‘1’,’2’,’3’,’4’,’5’}; D)char c2[]={‘\x10’,’\xa’}; 3、一维数组元素的引用 数组元素的表示形式为:数组名[下标] 例4:数组元素引用实例 main( )

数组练习题

一维数组 1.从键盘上输入20个元素的值存入一维数组m中,然后将下标为(0. 2. 4. 6. 8. 10……18)的元素值赋值给数组n,最后输出数组n的内容。 2.从键盘上输入20个元素的值存入一维数组m中,然后将下标为(1. 3. 5. 7. 9……19)的元素值赋值给数组n,最后输出数组n的内容。 3.已知一个数列从第1项开始的前三项分别为0. 0. 1,以后的各项都是其相邻的前三项的和。求该数列的前n项的平方根之和 4.产生25个[50,90]上的随机整数放入数组中,求出其中能被5整除的所有数的和。 5.输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。 6.从键盘输入十个学生的成绩,统计最高分,最低分和平均分。max代表最高分,min代表最低分,avg代表平均分。 7.将一个数组中的元素按逆序存放。 8.在一个一维整型数组中找出其中最大的数及其下标。 9.有一数组内存放10个整数,要求找出最大数和它的下标,然后把它和数组中最前面的元素即第一个数对换位置。 10.为一维数组输入10个整数;将其中最小的数与第一个数对换,将最大的数与最后一个数对换;输出数组元素。 11.产生15个[20,80]上的随机整数,用顺序法(比较法)按从小到大排序后输出。 12.产生10个[30,90]区间上的随机整数,然后对其用选择法进行由小到大的排序。 13.在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列 二维数组: 1.编程产生并输出如下形式的方阵。 1 2 2 2 2 2 1 3 1 2 2 2 1 4 3 3 1 2 1 4 4 3 3 3 1 4 4 4 3 3 1 5 1 4 4 3 1 5 5 5 1 4 1 5 5 5 5 5 1

C语言数组试题

第4章 数组 4.1内容概述 本章主要介绍了数值数组和字符数组的定义、初始化、元素引用和数组数据的输入与输出,字符数组实现字符串、字符串函数的实现与调用。指针数组与数组指针定义、元素引用。利用一维数组实现如挑数、排序、求和等实际应用问题。利用二维数组实现矩阵的应用问题。利用字符数组实现字符串的各种操作。本章知识结构如图4.1所示。 图4.1 第4章知识结构图 考核要求:掌握一维数组、二维数组、字符数组和指针数组的定义和初始化;掌握数组元素存储地址计算;掌握数组元素的下标法、指针法引用;掌握字符数组与字符串的区别与联系;掌握有关字符串处理函数的使用方法;能利用一维数组、二维数组解决向量、矩阵等实际应用问题。 重点难点:本章的重点是一维数组、二维数组和字符数组的定义、初始化、元素引用,字符串处理函数的使用。本章的难点是字符串与字符数组的区别,指针数组和数组元素的指针法引用。 核心考点:数组的定义、初始化和数组元素的引用方法,一维数组、二维数组和字符数组的实际应用,字符串的处理方法。 4.2 典型题解析 【例4.1】以下对一维数组a 的定义中正确的是( )。 A. char a(10); B. int a[0..100]; C. int a[5]; D. int k=10;int a[k]; 解析:一维数组定义的一般形式为: 类型标识符 数组名[常量表达式] 其中,常量表达式可以是任意类型,一般为算术表达式,其值表示数组元素的个数,即数组长度。 答案:C 【例4.2】以下对一维数组的定义中不正确的是( )。 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 ch1[ ]={'1', '2', '3', '4', '5'}; D. char ch2[ ]={'\x10', '\xa', '\x8'}; 解析:可以对一维数组的全部元素或部分元素赋初值。在对全部数组元素初始化时,数组长度可以省略。若数组长度没有省略,则初始化列表中值的个数不能超过数组的长度。 答案:B 【例4.3】以下对二维数组的定义中正确的是( )。 A .int a[4][]={1,2,3,4,5,6}; B. int a[][3]; C .int a[][3]= {1,2,3,4,5,6}; D. int a[][]={{1,2,3},{4,5,6}}; 解析:定义二维数组时,若按一维格式初始化,则第一维的长度可以省略,此时,系统可根据初始化列表中值的个数及第二维的长度计算出省略的第一维长度,但无论如何,第二维的长度不能省略。没有初始化时,每一维的长度都不能省略。 数组 数值数组 定义 初始化 元素引用 数组元素输入和输出 指针数组 定义 初始化 应用 字符数组 定义 初始化 元素引用 数组元素输入和输出

c语言程序设计数组

实验九数组 实验目的 ●掌握一维数组和二维数组的定义、初始化赋值、元素引用的方法。 ●掌握与数组有关的算法(特别是排序和查找算法)。 实验内容 请注意,在实验过程中请将所有程序中的“丁家雄”改成丁家雄!!! 1.调试下列错误程序,使之具有如下功能: 输入12个100以内的整数,按每行3个数输出这些整数,每个整数占4列且左对齐,最后一行输出12个整数的平均值(结果只显示2位小数)。 程序: #include //下一句是声明宏定义N,是没错的,以后会讲, //这里我们理解为下面程序中的所有N都会被自动修改成12 //使用这种形式的目的是使程序中的数组的大小的维护更容易 #define N 12

int main() { int i, a[N], av=0; printf("*** 这是丁家雄_9_1的运行结果:***\n"); printf("请输入%d个数,用空格分隔:\n",N); //逐个输入N个整数,依次存入数组a for (i = 0; i #define N 12 int main() { int i, a[N]; double av=0; printf("*** 这是丁家雄_9_1的运行结果:***\n"); printf("请输入%d个数,用空格分隔:\n",N); //逐个输入N个整数,依次存入数组a for (i = 0; i

c语言编程有关数组的几道例题

实验四一维数组、二维数组 一、实验目的与要求 1、熟练掌握一维数组、二维数组的定义、赋值和输入输出的方法。 2、掌握与数组有关的算法。 二、实验内容 1、(1)输入N个整数,使用冒泡排序,将数据由大到小输出。 #include "" #include<> void swap2(int*,int*); void bubble(int a[],int n); int main(void) { int n,a[8]; int i; printf("Enter n(n<=8):"); scanf("%d",&n); printf("Enter a[%d]:", n); for(i=0;i

printf("After sorted,a[%d]=", n); for(i=0;ia[j+1]) swap2(&a[j],&a[j+1]); /*交换*/ } void swap2(int *px,int *py) { int t; t=*px; *px=*py; *py=t; }

单向冒泡排序法: //输入10个整数,按从大到小输出// #include<> void main() { int i,j,t,a[10]; printf("请输入10个整数\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); for(j=1;j<10;j++) //10个数要来回做(10-1)趟次// for(i=1;i<11-j;i++) //第j趟要做(10-j)次比较// if(a[i]>a[i-1]) //每做完一趟,就会将数组中较小的一个数沉淀下来,较大的数不断往上冒// {t=a[i];a[i]=a[i-1];a[i-1]=t;} printf("按从大到小排序输出结果是:\n"); for(i=0;i<10;i++) printf("%-3d",a[i]); printf("\n"); } 双向冒泡排序法: //输入10个整数,按从大到小输出// #include<>

相关文档