计算机等级考试二级C语言一维数组与指针.docx
- 文档编号:6699302
- 上传时间:2023-01-09
- 格式:DOCX
- 页数:21
- 大小:21.21KB
计算机等级考试二级C语言一维数组与指针.docx
《计算机等级考试二级C语言一维数组与指针.docx》由会员分享,可在线阅读,更多相关《计算机等级考试二级C语言一维数组与指针.docx(21页珍藏版)》请在冰豆网上搜索。
计算机等级考试二级C语言一维数组与指针
2010年计算机等级考试二级C语言一维数组与指针
一、选择题
(1)有以下程序
以下是引用片段:
main()
{inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;
printf("%d\n",*p+*q);
}
程序运行后的输出结果是
A)16 B)10 C)8 D)6
(2)有以下程序
以下是引用片段:
main()
{inta[]={2,4,6,8,10},y=0,x,*p;
p=&a[1];
for(x=1;x<3;x++)y+=p[x];
printf("%d\n",y);
}
程序运行后的输出结果是
A)10 B)11 C)14 D)15
(3)有以下程序
以下是引用片段:
voidsort(inta[],intn)
{inti,j,t;
for(i=0;i
for(j=i+1;j
if(a[i]
}
main()
{intaa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(aa+2,5);
for(i=0;i<10;i++)printf("%d,",aa[i]);
printf("\n");
}
程序运行后的输出结果是
A)1,2,3,4,5,6,7,8,9,10,B)1,2,7,6,3,4,5,8,9,10,
C)1,2,7,6,5,4,3,8,9,10,D)1,2,9,8,7,6,5,4,3,10,
(4)有以下程序
以下是引用片段:
voidsum(inta[])
{a[0]=a[-1]+a[1];}
main()
{inta[10]={1,2,3,4,5,6,7,8,9,10};
sum(&a[2]);
printf("%d\n",a[2]);
}
程序运行后的输出结果是
A)6 B)7 C)5 D)8
(5)有以下程序
以下是引用片段:
voidswap1(intc0[],intc1[])
{intt;
t=c0[0];c0[0]=c1[0];c1[0]=t;
}
voidswap2(int*c0,int*c1)
{intt;
t=*c0;*c0=*c1;*c1=t;
}
main()
{inta[2]={3,5},b[2]={3,5};
swap1(a,a+1);swap2(&b[0],&b[1]);
printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);
}
程序运行后的输出结果是
A)3553 B)5335 C)3535 D)5353
(6)有以下程序
以下是引用片段:
main()
{
intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;
while(i++<7)if(p[i]%2)j+=p[i];
printf("%d\n",j);
}
程序运行后的输出结果是
A)42 B)45 C)56 D)60
(7)有以下程序
以下是引用片段:
voidf(int*x,int*y)
{intt;
t=*x;*x=*y;*y=t;
}
main()
{inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;
p=a;q=&a[7];
while(p
{
f(p,q);
p++;
q--;
}
for(i=0;i<8;i++)
printf("%d,",a[i]);
}
程序运行后的输出结果是
A)8,2,3,4,5,6,7,1, B)5,6,7,8,1,2,3,4,
C)1,2,3,4,5,6,7,8, D)8,7,6,5,4,3,2,1,
(8)以下叙述中错误的是
A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
B)数组名代表的是数组所占存储区的首地址,其值不可改变
C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
D)可以通过赋初值的方式确定数组元素的个数
(9)有以下程序
以下是引用片段:
#defineN20
fun(inta[],intn,intm)
{inti,j;
for(i=m;i>=n;i--)
a[i+1]=a[i];
}
main()
{
inti,a[N]={1,2,3,4,5,6,7,8,9,10};
fun(a,2,9);
for(i=0;i<5;i++)
printf("%d",a[i]);
}
程序运行后的输出结果是
A)10234 B)12344 C)12334 D)12234
(10)有以下程序
以下是引用片段:
prt(int*m,intn)
{
inti;
for(i=0;i
m[i]++;
}
main()
{
inta[]={1,2,3,4,5},i;
prt(a,5);
for(i=0;i<5;i++)
printf("%d,",a[i]);
}
程序运行后的输出结果是:
A)1,2,3,4,5, B)2,3,4,5,6, C)3,4,5,6,7, D)2,3,4,5,1,
(11)有以下程序
以下是引用片段:
main()
{inta[]={1,2,3,4,5,6,7,8,9,0},*p;
for(p=a;p
printf("%d,",*p);
}
程序运行后的输出结果是
A)1,2,3,4,5,6,7,8,9,0, B)2,3,4,5,6,7,8,9,10,1,
C)0,1,2,3,4,5,6,7,8,9, D)1,1,1,1,1,1,1,1,1,,1,
(12)有以下程序
以下是引用片段:
intf(inta)
{returna%2;}
main()
{ints[8]={1,3,5,2,4,6},i,d=0;
for(i=0;f(s[i]);i++)d+=s[i];
printf("%d\n",d);
}
程序运行后的输出结果是
A)9 B)11 C)19 D)21
(13)设有定义语句
intx[6]={2,4,6,8,5,7},*p=x,i;
要求依次输出x数组6个元素中的值,不能完成此操作的语句是
A)for(i=0;i<6;i++)printf("-",*(p++)); B)for(i=0;i<6;i++)printf("-",*(p+i));
C)for(i=0;i<6;i++)printf("-",*p++);D)for(i=0;i<6;i++)printf("-",(*p)++);
(14)有以下程序
以下是引用片段:
#include
main()
{inta[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL;
*q=*(p+5);
printf("%d%d\n",*p,*q);
}
程序运行后的输出结果是
A)运行后报错 B)66 C)611 D)510
(15)已有定义:
inti,a[10],*p;,则合法的赋值语句是
A)p=100; B)p=a[5]; C)p=a[2]+2; D)p=a+2;
(16)有以下程序
以下是引用片段:
main()
{intx[]={1,3,5,7,2,4,6,0},i,j,k;
for(i=0;i<3;i++)
for(j=2;j>=i;j--)
if(x[j+1]>x[j]){k=x[j];x[j]=x[j+1];x[j+1]=k;}
for(i=0;i<3;i++)
for(j=4;j<7-i;j++)
if(x[j+1]>x[j]){k=x[j];x[j]=x[j+1];x[j+1]=k;}
for(i=0;i<3;i++)
for(j=4;j<7-i;j++)
if(x[j]>x[j+1]){k=x[j];x[j]=x[j+1];x[j+1]=k;}
for(i=0;i<8;i++)printf("%d",x[i]);
printf("\n");
}
程序运行后的输出结果是:
A)75310246 B)01234567 C)76310462 D)13570246
(17)有以下程序段
inta[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
(18)有以下程序
voidswap1(intc[])
{intt;
t=c[0];c[0]=c[1];c[1]=t;
}
voidswap2(intc0,intc1)
{intt;
t=c0;c0=c1;c1=t;
}
main()
{inta[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]);
}
其输出结果是
A)5353 B)5335 C)3535 D)3553
(19)有以下程序
以下是引用片段:
voidsum(int*A)
{a[0]=a[1];}
main()
{intaa[10]={1,2,3,4,5,6,7,8,9,10},i;
for(i=2;i>=0;i--)&nb
sp;sum(&aa[i]);
printf(“%d\n”,aa[0]);
}
执行后的输出结果是
A)4 B)3 C)2 D)1
(20)有以下程序
以下是引用片段:
voidsort(inta[],intn)
{inti,j,t;
for(i=0;i
for(j=i+2;j
if(a[i]
}
main()
{intaa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(aa,10);
for(i=0;i<10;i++)printf(“%d”,aa[i]);
printf(“\n”);
}
其输出结果是
A)1,2,3,4,5,6,7,8,9,10, B)10,9,8,7,6,5,4,3,2,1,
C)9,2,7,4,5,6,3,8,1,10, D)1,10,3,8,5,6,7,4,9,2,
(21)以下能正确定义一维数组的选项是
A)int num[]; B)#define N100
Int num[N];
C)int num[0..100]; D)int N=100;
int num[N];
(22)有以下程序
以下是引用片段:
main()
{intp[7]={11,13,14,15,16,17,18},i=0,k=0;
while(i<7&&p[i]%2){k=k+p[i];i++;}
printf("%d\n",k);
}
执行后输出结果是
A)58 B)56 C)45 D)24
(23)有以下程序
以下是引用片段:
main()
{intx[8]={8,7,6,5,0,0},*s;
s=x+3
printf("%d\n",s[2]);
}
执行后输出结果是
A)随机值 B)0 C)5 D)6
(24)以下函数的功能是:
通过键盘输入数据,为数组中的所有元素赋值。
以下是引用片段:
#defineN10
voidarrin(intx[N])
{inti=0;
while(i
scanf("%d",);
}
在下划线处应填入的是
A)x+i B)&x[i+1] C)x+(i++) D)&x[++i]
(25)以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序
以下是引用片段:
voidsort(inta[],intn)
{inti,j,t;
for(i=0;i
for(j=i+1,j
if(a[i]
}
main()
{intaa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(&aa[3],5);
for(i=o;i<10;i++)print(“%d,”,aa[i]);
printf(‘\n”);
}
程序运行后的输出结果是
A)1,2,3,4,5,6,7,8,9,10 B)10,9,8,7,6,5,4,3,2,1,
C)1,2,3,8,7.6.5.4.9,10 D)1,2,10,9,8,7,6,5,4,3
(26)以下程序中函数reverse的功能是将a所指数组中的内容进行逆置。
以下是引用片段:
voidreverse(inta[],intn)
{inti,t;
for(i=0;i
{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}
}
main()
{intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;
reverse(b,8);
for(i=6;i<10;i++)s+=b[i];
printf(“%d\n”,s);
}
程序运行后的输出结果是
A)22 B)10 C)34 D)30
(27)以下程序调用findmax函数返回数组中的最大值
以下是引用片段:
findmax(int*a,intn)
{int*p,*s;
for(p=a,s=a;p-a
if()s=p;
return(*s);
}
main()
{intx[5]={12,21,13,6,18};
printf("%d\n",findmax(x,5));
}
在下划线处应填入的是
A)p>s B)*p>*s C)a[p]>a[s] D)p-a>p-s
(28)若有定义:
intaa[8];。
则以下表达式中不能代表数组元aa[1]的地址的是
A)&aa[0]+1 B)&aa[1] C)&aa[0]++ D)aa+1
(29)以下程序的输出结果是
以下是引用片段:
f(intb[],intm,intn)
{inti,s=0;
for(i=m;i
returns;
}
main()
{intx,a[]={1,2,3,4,5,6,7,8,9};
x=f(a,3,7);
printf("%d\n",x);
}
A)10 B)18 C)8 D)15
(30)假定int类型变量占用两个字节,其有定义:
intx[10]={0,2,4};,则数组x在内存中所占字节数是
A)3 B)6 C)10 D)20
(31)以下程序的输出结果是
以下是引用片段:
main()
{inti,a[10];
for(i=9;i>=0;i--)a[i]=10-i;
printf(“%d%d%d”,a[2],a[5],a[8]);
}
A)258 B)741 C)852 D)369
(32)下列程序的输出结果是
A)非法 B)a[4]的地址 C)5 D)3
以下是引用片段:
main()
{chara[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;
printf(“%d”,*--p);
}
(33)下面程序的输出结果是
A)0 B)1 C)10 D)9
以下是引用片段:
main()
{inta[]={1,2,3,4,5,6,7,8,9,0,},*p;
p=a;
printf(“%d\n”,*p+9);
}
(34)当调用函数时,实参是一个数组名,则向函数传送的是
A)数组的长度 B)数组的首地址 C)数组每一个元素的地址 D)数组每个元素中的值
(35)以下程序的输出结果是
A)20 B)21 C)22 D)23
以下是引用片段:
main()
{inti,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);
}
(36)以下函数返回a所指数组中最小的值所在的下标值
以下是引用片段:
fun(int*a,intn)
{inti,j=0,p;
p=j;
for(i=j;i
if(a[i]
return(p);
}
在下划线处应填入的是
A)i=p B)a[p]=a[i] C)p=j D)p=i
(37)有如下说明
inta[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
(38)有如下程序
以下是引用片段:
main0
{intn[5]={0,0,0},i,k=2;
for(i=0;i
printf(“%d\n”,n[k]);
}
该程序的输出结果是
A)不确定的值 B)2 C)1 D)0
(39)执行下面的程序段后,变量k中的值为
A)不定值 B)33 C)30 D)10
intk=3,s[2];
s[0]=k;k=s[1]*10;
(40)若已定义:
inta[]={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]
(41)下列程序执行后的输出结果是
A)6 B)7 C)8 D)9
以下是引用片段:
voidfunc(int*a,intb[])
{b[0]=*a+6;}
main()
{inta,b[5];
a=0;b[0]=3;
func(&a,b);printf("%d\n,b[0]);
}
(42)若有以下调用语句,则不正确的fun函数的首部是
A)voidfun(intm,intx[])B)voidfun(ints,inth[41])
C)voidfun(intp,int*s)D)voidfun(intn,inta)
以下是引用片段:
main()
{…
inta[50],n;
…
fun(n,&a[9]);
…
}
(43)以下程序的输出结果是
A)6 B)6789 C)'6' D)789
以下是引用片段:
main()
{chara[10]={'1','2','3','4','5','6','7','8','9',0},*p;
inti;
i=8;
p=a+I;
printf("%s\n",p-3);
}
(44)以下程序的运行结果是
A)运行后报错 B)66 C)612 D)55
以下是引用片段:
#include"stdio.h"
main()
{
inta[]={1,2,3,4,5,6,7,8,9,10,11,12,};
int*p=a+5,*q=NULL;
*q=*(p+5);
printf("%d%d\n",*p,*q);
}
(45)下面程序把数组元素中的最大值放入a[0]中。
则在if语句中的条件表达式应该是
A)p>a B)*p>a[0] C)*p>*a[0] D)*p[0]>*a[0]
以下是引用片段:
main()
{inta[10]={6,7,2,9,1,10,5,8,4,3},*p=a,I;
for(i=o;i<10;i++,p++)
if(________)*a=*p;
printf("%d",*a);
}
(46)以下程序运行后,输出结果是
A)10000 B)10010 C)00110 D)10100
以下是引用片段:
main()
{inty=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");
}
(47)设有如下定义:
intarr[]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机等级考试 二级 语言 数组 指针