C习题数组部分.docx
- 文档编号:18413886
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:29
- 大小:25.08KB
C习题数组部分.docx
《C习题数组部分.docx》由会员分享,可在线阅读,更多相关《C习题数组部分.docx(29页珍藏版)》请在冰点文库上搜索。
C习题数组部分
数组
一、选择题
1.在C语言中,引用数组元素时,其数组下标的数据类型允许是_________。
A.整型常量B.整型表达式
C.整型常量或整型表达式D.任何类型的表达式
2.假定int类型变量占用两个字节,其有定义:
intx[10]={0,2,4};,则数组x在内存中所占字节数是_________。
A.3B.6C.10D.20
3.若有说明:
inta[10];则对a数组元素的正确引用是_________。
A.a[10]B.a[3.5]C.a(5)D.a[10-10]
4.对于数组定义inta[5],n=2;则对数组a元素的正确引用是_________。
A.a[5]B.a[3.5]C.a(5)D.a[n+1]
5.以下能对一维数组a进行正确初始化的语句是_________。
A.inta[10]=(0,0,0,0,0);B.inta[10]={};
C.inta[10]={10*1};D.inta[]={0};
6.以下程序的输出结果是_________。
main()
{
inti,a[10];
for(i=9;i>=0;i--)a[i]=10-i;
printf(“%d%d%d”,a[3],a[6],a[9]);
}
A.258B.741C.852D.369
7.以下数组定义中不正确的是_________。
A.inta[2][3];B.intb[][3]={0,l,2,3};
C.intc[100][100]={0};D.intd[3][]={{1,2},{l,2,3},{l,2,3,4}};
8.若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为_________。
(假设a[0][0]位于数组的第一个位置上。
)
A.i*m+jB.j*m+iC.i*m+j-1D.i*m+j+1
9.以下程序的输出结果是_________。
main()
{
inta[4][4]={{l,2,3},{4,5,6},{7,8,9}};
printf(”%d%d%d%d\n”,a[0][3],a[1][2],a[2][1],a[3][0]);
}
A.0680B.1590C.3570D.输出值不定
10.以下程序的输出结果是_________。
#include”stdio.h”
main()
{
inta[3][3]={0,1,2,0,1,2,0,1,2},i,k=1;
for(i=0;i<3;i++)
k=t+a[a[i][i]][i];
printf(“%d\n”,k);
}
A.3B.4C.5D.9
11.以下数组定义中不正确的是_________。
A.inta[2][3];B.intb[][3]={0,l,2,3};
C.intc[100][100]={0};D.intd[3][]={{1,2},{l,2,3},{l,2,3,4}};
12.若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为_________。
(假设a[0][0]位于数组的第一个位置上。
)
A.i*m+jB.j*m+iC.i*m+j-1D.i*m+j+1
13.以下程序的输出结果是_________。
main()
{
inta[4][4]={{l,2,3},{4,5,6},{7,8,9}};
printf(”%d%d%d%d\n”,a[0][3],a[1][2],a[2][1],a[3][0]);
}
A.0680B.1590C.3570D.输出值不定
14.以下程序的输出结果是_________。
#include”stdio.h”
main()
{
inta[3][3]={0,1,2,0,1,2,0,1,2},i,k=1;
for(i=0;i<3;i++)
k=t+a[a[i][i]][i];
printf(“%d\n”,k);
}
A.3B.4C.5D.9
15.设有数组定义:
chararray[]=”result0”;则数组array所占的空间为_________。
字节。
A.5个B.6个C.7个D.8个
16.下面是对s的初始化,其中不正确的是_________。
A.chars[5]={"abc"};B.chars[5]={'a','b','c'};
C.chars[5]="";D.chars[5]={"abcdef"};
17.下列描述中不正确的是_________。
A.字符型数组中可以存放字符串
B.可以对字符型数组进行整体输入、输出
C.可以对整数数组进行整体输入、输出
D.不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值
18.若有以下说明:
inta[12]={1,2,3,4,5,6,7,8,9,10,ll,12};
charc=’a’,d,g;
则数值为4的表达式是_________。
A.a[’d’-’c’]B.a[’d’-c]C.a[g-c]D.a[4]
19.执行下列程序时输入:
123456<779>↙,输出结果是_________。
#inlcude“stdio.h”
main()
{
chars[100];intc,i;
scanf(“%c%d%s”,&c,&i,s);
printf(“%c,%d,%s”,c,i,s);
}
A.123,456,789B.1,456,779
C.1,23,456,779D.1,23,456
20.当执行下面程序且输入:
ABC时,输出的结果是_________。
#include“stdio.h”
main()
{
charss[10]=”12345”;
gets(ss);
printf(“%s\n”,ss);}
A.ABCB.ABC45C.12345ABCD.ABC12345
21.下列语句可以判断字符串S1、S2是否相等的是_________。
A.if(s1=s2)B.if(s1==s2)
C.if(strcmp(s1,s2)==0)D.if(strcmp(s1,s2)=0)
22.若有定义:
charst[]=”qq\n\012\\\n”;
则执行语句:
printf(“%d”,strlen(st));后,输出结果是_________。
A.3B.4C.6D.12
23.下列程序执行后的输出结果是_________。
#include
main()
{
chararr[2][4];
strcpy(arr,”boy”);
strcpy(arr[1],”girl”);
arr[0][3]=’!
’;
printf(“%s\n”,arr);
}
A.boy!
girlB.boyC.girlD.arr
24.下面程序的运行结果是_________。
#include
main()
{
charstr[]="tudent",c;
intk;
for(k=1;(c=str[k])!
='\0';k++)
{switch(c)
{case't':
putchar('#');
case'n':
putchar('$');break;
default:
continue;
}
putchar('*');
}
}
A.$*#$*B.$#$C.#$*$*#$*D.#$$#$
二、填空题
1.数组名定义规则和变量名相同,都遵循_____________,定义规则。
标示符
2.在C语言中,引用数组只能通过引用_____________,来实现,而不能通过整体引用_____________,来实现。
元素数组名
3.定义一维数组时,如果对全部元素赋初值,则元素个数_____________,定义二维数组时,如果对全部元素赋初值,则可以省略______________。
可以省略一维下标(行数)
4.数组在内存中占一片连续的存储区,由___________代表它的首地址。
数组名
5.C语言程序在执行过程中,不检查数组下标是否____________。
越界
6.设有定义语句:
inti=3,a[]={1,2,3,4};则数组a的数据类型是___________;该数组的下标最大值是___;数组元素a[i]的值是______________。
int34
7.C语言中,二维数组元素在内存中的存放顺序是_________________。
按行
8.定义一个名为x的整型二维数组,其大小为3*4,要求每行第一个元素为1,其余均是0,则定义语句是_________。
intx[3][4]={{1},{1},{1}};
9.设有定义:
chars[5]={‘a’,’b’};则s[1]中的字符是_________,s[2]中的字符是______________。
‘b‘‘\0’
10.设有定义语句:
chars[]=”abcdef\0”;则数组s的长度是____________;数组元素s[6]中存放的字符是__________。
8‘\0’
11.设有定义语句:
chars[][5]={“abed”};则二维数组s中一共有_______________个数组元素,s[0][0]中存放的字符是____________。
5‘a’
12.设有定义语句:
chars1[]=”study”,s2[10];把s1中的字符串赋值给s2的语句是_________________。
strcpy(s2,s1)
三、程序阅读
1.分析下列程序,写出运行结果________________。
n=3
#include”stdio.h”
main()
{inta[10]={1,3,5,7,9,2,4,6,8,10},i,n=0;
for(i=0;i<10;i++)
if(i%2==1&&a[i]%2==0)n++;}
printf(“n=%d\n”,n);
}
2.分析下列程序,写出运行结果________________。
654321
#include”stdio.h”
main()
{inta[6]={1,2,3,4,5,6},i,j,t;
for(i=0,j=5;i {t=a[i];a[i]=a[j];a[j]=t;} for(i=0;i<6;i++) printf(“%d\n”,a[i]); } 3.分析下列程序,写出运行结果________________。 30,11,88,12 main() {inta[15]={2,19,-25,30,11,-26,88,-8,,0,5,-129,-92,2,4,12},b[15]; inti,j=0,temp; for(i=0;i<15;i++) if(a[i]>=10)b[j++]=a[i]; for(;j<15;j++)b[j]=-1; for(i=0;i<15;i++) if(b[i]>0) printf(“%d”,b[i]); } 4.分析下列程序,写出运行结果________________。 #include”stdio.h” main() {inta[2][3]={1,3,5,2,4,6} inti,j; for(i=0;i<=1;i++) {for(j=0;j<=2;j++) printf(“%3d”,a[i][j]); printf(“\n”); }} 135 246 5.分析下列程序,写出运行结果________________。 #include”stdio.h” main() {inti,j,t,row=0,col=0; ints[4][3]={{8,32,14},{10,12,3},{11,2,33},{6,7,27}}; t=s[0][0]; for(i=0;i<4;i++) for(j=0;j<3;j++) if(s[i][j] {t=s[i][j];row=i;col=j;} printf(“%d,%d,%d\n,”,t,cow,col); } 2,2,1找出最小元素及其下标 6.分析下列程序,写出运行结果________________。 main() {ints[][3]={1,3,5,7,2,4,6,8,9}; inti,j,s1=0,s2=0; for(i=0;i<=2;i++) for(j=0;j<=2;j++) if(i==j)s1=s1+s[i][j]; if(i+j==2)s2=s2+s[i][j];} printf(“%d,%\n”,s1,s2); } 12,13 7.分析下列程序,写出运行结果________________。 #include main() {chara[]=”123456789”; a[4]=’\0’; printf(“%s\n”,a); } 1234 8.分析下列程序,写出运行结果________________。 #include“stdio.h” main() {chars[20]=”abcdefg”; inti; for(i=0;s[i];i++); if(i%2==0)s[i]=’,’ puts(s); } bd,f, 9.分析下列程序,写出运行结果________________。 #include main() {chars1[8],s2[8],s3[8],s4[8]; scanf(“%s%s”,s1,s2) gets(s3); gets(s4); puts(s1); puts(s2); puts(s3); puts(s4);} 运行时输入以下数据: AAABBB<回车> CCCDDD<回车> AAA BBB 10.分析下列程序,写出运行结果________________。 #include main() {charch[]=”632”; inta,s=0; for(a=0;ch[a]>=’0’&&ch[a]<=’9’;a++) s=10*s+ch[a]-‘0’; printf(“%d\n”,s); } 632 CCCDDD 11.分析下列程序,写出运行结果________________。 main() {charx[]={‘A’,’’A’’,’A’,’’A’,’A’}; inti,j,k; for(i=0;i<3;i++) {printf(“\n”); for(j=0;j for(k=0;k<5;k++)printf(“%c”,x[k]); } } AAAAA AAAAA AAAAA 12.运行下列程序,键盘输入TestSystem↙,写出运行结果________________。 #include main() {charstr[20],tstr[80]=””; inti; gets(str); for(i=0;str[i]! =’\0’;i++) if(str[i])>=’a’&&str[i]<=’z’) tstr[i]=str[i]-32; elsetstr[i]=str[i]; tstr[i]=’\0’; puts(tstr);} TESTSYSTEM 13.分析下列程序,写出运行结果________________。 6385 #include“stdio.h” main() {charstr[2][5]={“6934”,”8254”}; inti,j,s=0; for(i=0;i<2;i++) for(j=0;str[i][j]>=’0’&&str[i][j]<=’9’;j+=2); s=10*s+str[i][j]-‘0’; printf(“%d\n”,s); } 14.分析下列程序,写出运行结果________________。 Howareyou! #include“stdio.h” #include“string.h” main() {chars1[10]=”How”,s2[10]=”are”,s3[10]=”you! ”; strcat(s1,strcat(s2,s3)); puts(s1); } 四、程序填空 1.下面程序以每行4个数据的形式输出a数组,请填空。 #defineN20 main() {inta[N],i; for(i=0;i for(i=0i {if(_____________)_____________i%4==0printf(“\n”); printf("%3d",a[i]); } printf("\n"); } 2.下列程序的功能是: 从键盘输入不相同的10个数存入数组a中,求最大数和次最大数,请填空。 #include“stdio.h” main() {inti,max1,max2,a[10]; for(i=0;i<10;i++) scanf(“%d”,&a[i]);; max1=max2=____________; for(i=1;i<10;i++) if(max1 {max2=____________; max1=a[i];}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 习题 数组 部分
![提示](https://static.bingdoc.com/images/bang_tan.gif)