计算机二级c语言第九章 数组和指针习题与答案 下载本文

内容发布更新时间 : 2024/6/26 15:16:58星期一 下面是文章的全部内容请认真阅读。

第九章 数组和指针

1、有以下程序 main()

{ int a[]={2,4,6,8,10}, y=0, x, *p; p=&a[1];

for(x= 1; x< 3; x++) y += p[x]; printf(\ }

程序运行后的输出结果是

A)10 B)11 C)14 D)15 2、有以下程序

void sum(int a[])

{ a[0] = a[-1]+a[1]; } main()

{ int a[10]={1,2,3,4,5,6,7,8,9,10}; sum(&a[2]);

printf(\ }

程序运行后的输出结果是

A)6 B)7 C)5 D)8 3、有以下程序 main() {

int p[8]={11,12,13,14,15,16,17,18},i=0,j=0; while(i++< 7) if(p[i]%2) j+=p[i]; printf(\ }

程序运行后的输出结果是

A)42 B)45 C)56 D)60

4、设有定义语句 int x[6]={2,4,6,8,5,7},*p=x,i;

要求依次输出x数组6个元素中的值,不能完成此操作的语句是 A)for(i=0;i<6;i++) printf(\ B)for(i=0;i<6;i++) printf(\ C)for(i=0;i<6;i++) printf(\ D)for(i=0;i<6;i++) printf(\5、有以下程序

#include < stdio.h > main()

{ int a[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL; *q=*(p+5);

printf(\ 程序运行后的输出结果是

A)运行后报错 B)6 6 C)6 11 D)5 10

6、有以下程序段

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b; b=p[5]; b中的值是

A)5 B)6 C)8 D)9 7、已有定义:int i,a[10],*p;则合法的赋值语句是

A)p=100; B)p=a[5]; C)p=a[2]+2; D)p=a+2; 8、以下能正确定义一维数组的选项是

A)int num []; B)#define N 100 int num [N]; C)int num[0..100]; D)int N=100;

int num[N]; 9、有以下程序 main()

{ int p[7]={11,13,14,15,16,17,18},i=0,k=0; while(i< 7&&p[i]%2) {k=k+p[i];i++;} printf(\ }

执行后输出结果是

A)58 B)56 C)45 D)24 10、有以下程序 main()

{ int x[8]={8,7,6,5,0,0},*s; s=x+3;

printf(\ }

执行后输出结果是

A)随机值 B)0 C)5 D)6 11、若有定义:int aa[8];。则以下表达式中不能代表数组元aa[1]的地址的是

A)&aa[0]+1 B)&aa[1] C)&aa[0]++ D)aa+1 12、以下程序的输出结果是 main()

{ int i, a[10];

for(i=9;i>=0;i--) a[i]=10-i; printf(\ }

A)258 B)741 C)852 D)369 13、有如下说明

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为9的表达式是

A)*p+9 B)*(p+8) C)*p+=9 D)p+8 14、有如下程序

main()

{ int n[5]={0,0,0},i,k=2;

for(i=0;i< k;i++) n[i]=n[i]+1; printf(\ }

该程序的输出结果是

A)不确定的值 B)2 C)1 D)0 15、若已定义:

int a[ ]={0,1,2,3,4,5,6,7,8,9], *p=a,i; 其中 0≤i≤9, 则对a数组元素不正确的引用

A)a[p-a] B)*(&a[i]) C)p[i] D)a[10] 16、以下程序的输出结果是 main()

{ 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(\

A)20 B)21 C)22 D)23 17、以下程序的输出结果是 main()

{ char a[10]={'1','2','3','4','5','6','7','8','9',0},*p; int i; i=8; p=a+i;

printf(\ }

A)6 B)6789 C)'6' D)789 18、执行以下程序后,y的值是 main()

{ int a[]={2,4,6,8,10}; int y=1,x,*p; p=&a[1];

for(x=0;x< 3;x++) y + = * (p + x); printf(\

A)17 B)18 C)19 D)20 19、阅读下列程序: main()

{ int n[3],i,j,k;

for(i=0;i< 3;i++) n[i]=0; k=2;

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