二级C语言173.docx
- 文档编号:30105531
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:17
- 大小:20.40KB
二级C语言173.docx
《二级C语言173.docx》由会员分享,可在线阅读,更多相关《二级C语言173.docx(17页珍藏版)》请在冰豆网上搜索。
二级C语言173
二级C语言-173
(总分:
100.00,做题时间:
90分钟)
一、选择题(总题数:
45,分数:
100.00)
1.以下不正确的定义语句是______。
(分数:
2.00)
A.doublex[5]={1.0,2.0,3.0,4.0,5.0);
B.inty[5]={0,1,2,3,4,5); √
C.charc1[]={"1","2","3","4","5"};
D.charc2[]={"a","b","c");
解析:
2.以下程序的输出结果为______。
#include<stdio.h>
main()
{char*p[]={"abcdefgh","ijkl","mnop","qrst","uvwx"};
inti;
for(i=0;i<3;i++)
puts(p[i]);
}
A.abcdefgh
B.ijkl
C.
D.qrst
(分数:
2.00)
A.
B.
C. √
D.
解析:
3.若有以下定义,则正确引用数组元素的是______。
inta[5],*p=a;
(分数:
2.00)
A.*&a[5]
B.*a+2
C.*(p+5)
D.*(a+2) √
解析:
4.若有说明:
inta[][3]={0,0};,则不正确的叙述是______。
(分数:
2.00)
A.数组a的每个元素的初值都是0
B.数组a的第一维大小为1
C.数组a的行数为1
D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0 √
解析:
5.下列二维数组初始化语句中,不正确的是______。
(分数:
2.00)
A.intb[][2]={1,2,3,4,5,6,7};
B.intb[3][5]={0,0,0};
C.intb[][4]={{1,2},{3,4,5),{6)};
D.intb[3][2]={(1,2),(3,4),(5,6)}; √
解析:
6.若二维数组a有m列,则在a[i][j]前的元素个数为______。
(分数:
2.00)
A.j*m+i
B.i*m+j √
C.j*m+i+1
D.i*m+j+l
解析:
7.有以下程序:
#include<stdio.h>
main()
{intaa[5][5]={{1,2,3,4},{5,6,1,8},{5,9,10,2},{1,2,5,6}};
inti,s=0;
for(i=0;i<4;i++)
s+=aa[i][2];
printf("%d",s);
}
程序运行后的输出结果是______。
(分数:
2.00)
A.26
B.19 √
C.10
D.20
解析:
8.以下程序的输出结果是______。
#include<stdio.h>
main()
{inta[3][3]={0,1,2,0,1,2,0,1,2},i,j,s=1;
for(i=0;i<3;i++)
for(j=i;j<=i;j++)
s+=a[i][a[j][j]];
printf("%d/n",s);
}
(分数:
2.00)
A.3
B.4 √
C.1
D.9
解析:
9.如下程序的输出结果是______。
#include<stdio.h>
main()
{charch[2][5]={"1234","5678"},*p[2];
inti,j,s=0;
for(i=0;i<2;i++)
p[i]=ch[i];
for(i=0;i<2;i++)
for(j=0;p[i][j]>"/0";j+=2)
{s=p[i][j]-"0";
printf("%d",s);}
}
(分数:
2.00)
A.6357
B.6135
C.1357 √
D.691357
解析:
10.以下程序中函数sort()的功能是对数组a中的数据进行由大到小的排序。
#include<stdio.h>
voidsort(inta[],intn)
{inti,j,t;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]<a[j])
{t=a[i];a[i]=a[j];a[j]=t;
}
}
main()
{inta[10]={1,2,3,4,5,6,7,8,9,10),i;
sort(&a[1],7);
for(i=0;i<10;i++)
printf("%d,",a[i]);
}
程序运行后的输出结果是______。
(分数:
2.00)
A.1,2,3,4,5,6,7,8,9,10,
B.10,9,8,7,6,5,4,3,2,1,
C.1,8,7,6,5,4,3,2,9,10, √
D.1,2,10,9,8,7,6,5,4,3,
解析:
11.已知“inta[4][4];”,则不能等价表示数组元素a[3][3]的是______。
(分数:
2.00)
A.*(a[3]+3)
B.*(*(a+3)+3)
C.*&a[3][3]
D.(*(*(a+3))+3) √
解析:
12.以下不能正确定义二维数组的选项是______。
(分数:
2.00)
A.inta[2][2]={{1},{2)};
B.inta[][2]={1,2,3,4};
C.inta[2][2]={{1},2,3}; √
D.inta[2][]={{1,2),{3,4}};
解析:
13.已有声明“inta[5];”,则以下表达式中不能正确取得a[1]地址的是______。
(分数:
2.00)
A.&a[1]
B.++a
C.&a[0]+1 √
D.a+1
解析:
14.若有以下定义,则数值为4的表达式是______。
intw[3][4]={{0,1},{2,4},{5,8}},(*p)[4]=w;
(分数:
2.00)
A.p[1][1] √
B.p++,*(p+1)
C.w[2][2]
D.w[1]+1
解析:
15.下列一维数组中的声明中正确的是______。
(分数:
2.00)
A.inta[];
B.intn=10,a[n];
C.inta[10+1]={0}; √
D.inta[3]={1,2,3,4}
解析:
16.若已有声明“doublea[2][3]={1,2,3,4,5,6);”,则下列表达式中不能正确引用a[1][1]值的是______。
(分数:
2.00)
A.*(a[0]+4)
B.*(a[1]+1)
C.*(*(a+3)+1) √
D.*(*a+4)
解析:
17.已知某程序中有声明“inta[4],j;”及语句“for(j=0;j
(分数:
2.00)
A.intp[4];
B.int*p[4]; √
C.int**p[4];
D.int(*p)[4];
解析:
18.以下程序的输出结果是______。
#include<stdio.h>
main()
{intx[]={10,20,30,40,50,60},*p=x;
*(p+4)+=6;
printf("%d,%d",*p,*(p+4));
}
(分数:
2.00)
A.10,46
B.10,56 √
C.50,46
D.50,56
解析:
19.下面程序的输出结果是______。
#include<stdjo.b>
main()
{intx[]={10,20,30,40,50},*p=x;
printf("%d",*(p+2));
}
(分数:
2.00)
A.10
B.20
C.30 √
D.40
解析:
20.以下不能正确定义二维数组的选项是______。
(分数:
2.00)
A.inta[2][2]={{1),{2}};
B.inta[][2]={1,2,3,4);
C.inta[2][2]={{1),2,3);
D.inta[2][]={{1,2),{3,4)); √
解析:
21.以下能正确定义数组并正确赋初值的语句是______。
(分数:
2.00)
A.intN=5,b[N][N];
B.inta[1][2]={{1),{3}};
C.intc[2][]={{1,2},{3,4}};
D.intd[3][2]={{1,2),{3,4}}; √
解析:
22.若有定义:
int*p[3];,则以下叙述中正确的是______。
(分数:
2.00)
A.定义了一个基类型为int的指针变量p,该变量具有3个指针
B.定义了一个指针数组p,该数组含有3个元素,每个元素都是基类型为int型的指针 √
C.定义了一个名为*p的整型数组,该数组含有3个int类型元素
D.定义了一个可指向一维数组的指针变量p,所指一维数组具有3个int类型元素
解析:
23.设有以下定义:
inta[3][3]={1,2,3,4,5,6,7,8,9};
int(*ptr)[3]=a,*p=a[0];
则下列能够正确表示数组元素a[1][2]的表达式是______。
(分数:
2.00)
A.*((*ptr+1)[2])
B.*(*(p+5))
C.(*ptr+1)+2
D.*(*(a+1)+2) √
解析:
24.设已有声明“intx[]={1,2,3,4,5,6),*p=&x[2];”,则值为3的表达式是______。
(分数:
2.00)
A.*++p
B.*(p++) √
C.++*P
D.(*p)++
解析:
25.下面程序的输出结果是______。
#include<stdio.h>
main()
{inla[]={1,3,5,7,9),y,*p=&a[2];
y=*p--;
printf("%d,%d",y,*p);}
(分数:
2.00)
A.5,5
B.5,4
C.5,3 √
D.4,4
解析:
26.执行下面程序段后m的结果为______。
staticinta[2][3]={1,2,3,4,5,6);intm,*ptr=a;
m=(*ptr)*(*(ptr+2))*(*(ptr+4));
(分数:
2.50)
A.15 √
B.48
C.24
D.60
解析:
27.已知函数fun的定义如下:
voidfun(intx[],inty),
{intk;
for(k=0;k<y;k++)
X[k]+=y;
}
若main函数中有声明“inta[1]={10}:
”及调用fun函数的语句,则正确的fum函数调用形式是______。
(分数:
2.50)
A.fun(a[],a[0]);
B.fun(a[0],a[0]);
C.fun(&a[0],a[0]); √
D.fun(a[0],&a[0]);
解析:
28.动态分配一整型数据长度的空间,使指针P指向该存储空间,则下列空缺处应填入的正确语句是______。
int*p;
P=()malloc(sizeof(int));
(分数:
2.50)
A.int
B.int*
C.(*int)
D.(int*) √
解析:
29.若有下面程序段,则正确的输出是______。
char*p="break",a[10]={"1","2","3","4");
printf("%c,%c",p[2],*(a+1));
(分数:
2.50)
A.e,2 √
B.e,1
C.r,1
D.r,2
解析:
30.下列语句不正确的是______。
(分数:
2.50)
A.intn,a[n]; √
B.char**p;
C.int*ptr;
D.int*p,x=2;p=&x;
解析:
31.已知“intc[3][4];”,则对数组元素引用正确的是______。
(分数:
2.50)
A.c[1][4]
B.c[1.5][0]
C.c[1+0][0] √
D.以上表达都错误
解析:
32.若有说明“inta[3][4];”,则a数组元素的非法引用是______。
(分数:
2.50)
A.a[0][2*1]
B.a[1][3]
C.a[4-2][0]
D.a[0][4] √
解析:
33.在下列叙述中,错误的是______。
(分数:
2.50)
A.C语言中,二维数组或多维数组是按行存放的
B.赋值表达式b[1][2]=a[2][3]是正确的
C.chara[1];a[0]="A"与inta[1];a[0]="A"等价
D.数组名后的方括号内可以为常量表达式,也可以为变量 √
解析:
34.定义结构体数组
structstu
{intnum;
charname[20];
}x[5]={1,"ZHAO",2,"QIAN",3,"SUN",4,"LEE",5,"ZHOU");
for(i=1;i<5;i++)
printf("%d%c",x[i].num,x[i].name[2]);
程序执行后的输出结果是______。
(分数:
2.50)
A.2A3N4E50 √
B.1H213U4E
C.1A2N3E40
D.1A2N3E40
解析:
35.下列二维数组初始化语句中,正确且与语句inta[][3]={1,2,3,4,5}等价的是______。
(分数:
2.50)
A.inta[2][]={{1,2,3},{4,5}};
B.inta[][3]={1,2,3,4,5,0}; √
C.inta[][3]={{1,0},{2,0},{3,0}};
D.inta[2][]={{1,2,3),{4,5,6}};
解析:
36.设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。
下列所示的输入形式中正确的是(注:
口代表空格字符)______。
(分数:
2.50)
A.10□X□20□Y<CR> √
B.10□X20□Y<CR>
C.10□X<CR>20Y<CR>
D.10X<CR>200Y<CR>
解析:
37.以下语句定义正确的是______。
(分数:
2.50)
A.inta[1][4]={1,2,3,4,5};
B.floata[3][]={{1,2},{2,3},{3,1}};
C.longa[2][3]={{1},{1,2},{1,2,3},{0,0}};
D.doublea[][3]={8}; √
解析:
38.若已定义:
inta[]={0,1,2,3,4,5,6,7,8,9),*p=a,i;
其中0≤i≤9,则对a数组元素不正确的引用是______。
(分数:
2.50)
A.a[p-a]
B.*(&a[i])
C.p[i]
D.a[10] √
解析:
39.下列程序的运行结果是______。
#include<stdio.h>
voidsub(int*s,int*y)
{staticintm=4;
*y=s[0];
m++;
}
voidmain()
{inta[]={1,2,3,4,5},k;
intx;
printf("/n");
for(k=0;k<=4;k++)
{sub(a,&x);
printf("%d,",x);
}
}
(分数:
2.50)
A.1,1,1,1,1, √
B.1,2,3,4,5,
C.0,0,0,0,0,
D.4,4,4,4,4,
解析:
40.下面程序的输出结果是______。
main()
{inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
printf("%d/n",*(p+2));
}
(分数:
2.50)
A.3 √
B.4
C.1
D.2
解析:
41.以下程序运行后的输出结果是______。
#include<stdjo.h>
voidreverse(inta[],intn)
{inti,t;
for(i=0;i<n/2;i++)
{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}
}
mam()
{intb[10]={10,9,8,7,6,5,4,3,2,1);inti,s=0;
reverse(b,10);
for(i=0;i<3;i++)
s+=b[i];
printf("%d/n",s);
}
(分数:
2.50)
A.27
B.6 √
C.25
D.30
解析:
42.下述程序的输出结果是______。
#include<stdio.h>
voidmain()
{inta[5]={1,2,3,4,5};
int*p=a,**q=&p;
printf("%d,",*(p++));
printf("%d",**q);}
(分数:
2.50)
A.2,2
B.1,1
C.3,4
D.1,2 √
解析:
43.有以下程序:
#include<stdio.h>
main()
{FILE*fp;inta[10]={1,2,3,0,0},i;
fp=fopen("d2.dat","wb");
fwrite(a,sizeof(int),5,fp);
fwrite(a,sizeof(int),5,fp);
fclose(fp);
fp=fopen("d2.dat","rb");
fread(a,sizeof(int),10,fp);
fclose(fp);
for(i=0;i<10;i++)
printf("%d,",a[i]);
}
程序的运行结果是______。
(分数:
2.50)
A.1,2,3,0,0,0,0,0,0,0,
B.1,2,3,1,2,3,0,0,0,0,
C.123,0,0,0,0,123,0,0,0,0,
D.1,2,3,0,0,1,2,3,0,0, √
解析:
44.若有说明“intm[3][4]={3,9,7,8.5),(*q)[4];”和赋值语句“q=m;”,则对数组元素m[i][j](其中0<=i<3,0<=j<4)值的正确引用为______。
(分数:
2.50)
A.(q+i)[j]
B.*q[i][j]
C.*(*q[i]+j)
D.*(*(q+i)+j) √
解析:
45.以下程序输出的结果是______。
#include<stdio.h>
#include<string.h>
main()
{chara[][7]={"ABCD","EFGH","IJKL","MNOP"),k;
for(k=1;k<3;k++)
printf("%s/n",&a[k][k]);
}
A.
B.
C.
D.
(分数:
2.50)
A.
B.
C.
D. √
解析:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 语言 173
![提示](https://static.bdocx.com/images/bang_tan.gif)