




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第九部分:二维数组与指针 一、选择题 (1)有以下程序 main() int a33,*p,i; p=&a00; for(i=0;i9;i+) pi=i; for(i=0;i3;i+) printf(%d ,a1i); 程序运行后的输出结果是 A)0 1 2 B)1 2 3 C)2 3 4 D)3 4 5 (2)有以下程序 main() int a32=0,(*ptr)2,i,j; for(i=0;i2;i+) ptr=a+i; scanf(%d,ptr); ptr+; for(i=0;i3;i+) for(j=0;j2;j+) printf(%2d,aij); printf(n); 若运行时输入:1 2 3,则输出结果为 A)产生错误信息 B)1 0 2 0 0 0 C)1 2 3 0 0 0 D)1 0 2 0 3 0 (3)有以下程序 main() int num44=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,i,j; for(i=0;i4;i+) for(j=1;j=i;j+) printf(%c, ); for(j= j4;j+) printf(%4d,numij); printf(n); 若要按以下形式输出数组右上半三角 1 2 3 4 6 7 8 11 12 16 则在程序下划线处应填入的是 A) i-1 B) i C) i+1 D) 4-i (4) 以下能正确定义二维数组的是 A) int a3; B) int a3= 2*3; C) int a3=; D) int a23=1,2,3,4; (5) 若有以下说明和语句,int c45,(*p)5;p=c;能正确引用c数组元素的是 A) p+1 B) *(p+3) C) *(p+1)+3 D) *(p0+2) (6) 有以下定义和语句 int a32=1,2,3,4,5,6,*p3; p0=a1; 则*p0+1)所代表的数组元素是 A) a01 B) a10 C) a11 D) a12 (7) 有以下程序 int f(int b4) int i,j,s=0; for(j=0;j2) i=3-j; s+=bij; return s; main( ) int a44=1,2,3,4,0,2,4,5,3,6,9,12,3,2,1,0; printf(“%dn”,f(A) ); 执行后的输出结果是 A) 12 B) 11 C) 18 D) 16 (8) 以下不能正确定义二维数组的选项是 A) int a22=1,2; B) int a2=1,2,3,4; C) int a22=1,2,3; D) int a2=1,2,3,4; (9) 若有定义:int *p3;, 则以下叙述中正确的是 A) 定义了一个基类型为int的指针变量p,该变量具有三个指针 B) 定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针 C) 定义了一个名为*p的整型数组,该数组含有三个int类型元素 D) 定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素 (10) 有以下程序 main() int a33, *p, i; p=&a 00 ; for ( i=0 ; i9 ; i+) pi=i+1; printf(%dn,a12); 程序运行后的输出结果是 A) 3 B) 6 C) 9 D) 2 (11) 以下能正确定义数组并正确赋初值的语句是 A) int N=5,bNN; B) int a12=1,3; C) int c2=1,2,3,4; D) int d32=1,2,34; (12) 有以下程序 main() int m3=1,4,7,2,5,8,3,6,9; int i,j,k=2; for(i=0;i3;i+) printf(%d,mki); 执行后输出结果是 A) 4 5 6 B) 2 5 8 C) 3 6 9 D) 7 8 9 (13) 有以下程序 main() int a3=1,2,3,4,5,0,(*pa)3,i; pa=a; for(i=0;i3;i+) if(i2) pa1i=pa1i-1; else pa1i=1; printf(%dn,a01+a11+a12); 执行后输出结果是 A) 7 B) 6 C) 8 D) 无确定值 (14) 有以下程序 main() int aa44=1,2,3,4,5,6,7,8,3,9,10,2,4,2,9,6; int i,s=0 for(i=0;i4;i+) s+=aai1; printf(“%dn”,s); 程序运行后的输出结果是 A) 11 B) 19 C) 13 D) 20 (15) 若有以下定义和语句: int s45,(*ps)5; ps=s; 则对s数组元素的正确引用形式是 A) ps+1 B) *(ps+3) C) ps02 D) *(ps+1)+3 (16) 以下程序的输出结果是 main() int b33=0,1,2,0,1,2,0,1,2,i,j,t=1; for(i=0;i3;i+) for(j=i;j=i;j+) t=t+bibjj; printf(%dn,t); A) 3 B) 4 C) 1 D) 9 (17) 以下数组定义中不正确的是 A) int a23; B) int b3=0,1,2,3; C) int c100100=0; D) int d3=1,2,1,2,3,1,2,3,4; (18) 以下程序的输出结果是 main() int a44=1,3,5,2,4,6,3,5,7; printf(“%d%d%d%dn”,a03,a12,a21,a30); A) 0650 B) 1470 C) 5430 D) 输出值不定 (19) 以下程序的输出结果是 A) 1,5,9 B) 1,4,7 C) 3,5,7 D)3,6,9 main() int i, x33=1,2,3,4,5,6,7,8,9; for(i=0;i3;i+) printf(“%d,”,xi2-i); (20) 以下程序的输出结果是 A) 18 B) 19 C) 20 D)21 main() int a33= 1,2,3,4,5,6 ,i,j,s=0; for(i=1;i3;i+) for(j=0;j=i;j+)s+=aij; printf(“%dn”,s); (21) 若有以下的定义:int t32;能正确表示t数组元素地址的表达式是 A) &t32 B) t3 C) t1 D) t2 (22) 有如下程序 main0 int a33=1,2,3,4,5,6,i,j,s=0; for(i=1;i3;i+) for(j=0;ji;j+) s+=aij printf(“%dn”,s); 该程序的输出结果是 A) 18 B) 19 C) 20 D) 21 (23) 下列程序执行后的输出结果是 A) 3 B) 6 C) 9 D) 随机数 main() int a33, *p,i; p=&a00; for(i=p; i9; i+) pi=i+1; printf(%d n,a12); (24) 以下程序的输出结果是 A) 5 2 B) 5 1 C) 5 3 D) 9 7 main( ) int i,x33=9,8,7,6,5,4,3,2,1,*p=&x11; for(i=0;i4;i+=2)printf(%d ,pi); (25) 若有以下的说明和语句,则在执行for语句后,*(*(pt+l)+2)表示的数组元素是 A) t20 B) t22 C) tl2 D) t2l int t33, *pt(3, k; for (k=0;k3;k+) ptk=&tk0; (26) 以下程序的输出结果是 A)14 B)0 C)6 D)值不确定 main() int n33 , i, j; for ( i=0; i3; i+ ) for ( j=0; j3; j+ ) nij=i+j; for ( i=0; i2; i+ ) for ( j=0; j2; j+ ) ni+1j+1+= nij; printf(“%dn”,nij); (27) 执行以下程序段后,m的值为 int a23= 1,2,3,4,5,6 ; int m,*p; p=&a00; m=(*p)*(*(p+2)*(*(p+4); A) 15 B) 14 C) 13 D) 12 (28) 若有以下定义和语句: int w23,(*pw)3; pw=w; 则对w数组元素非法引用是 A)*(w0+2) B)*(pw+1)2 C)pw00 D)*(pw1+2) (29) 若有以下说明: int w34o=0,1,2,4,5,8; int(*p)4=w; 则数值为4的表达式是 A) *w1+1 B) p+,*(p+1) C) w22 D) p11 (30) 若有以下的说明和语句: main() int t32, *pt3,k; fpr(k=o; k3;k+)ptk=tk; 则以一选项中能正确表示t数组元素地址的表达式是 A) &t32 B) *pt0 C) *(pt+1) D) &pt2 (31) 定义如下变题和数组: int i; int x33=1,2,3,4,5,6,7,8,9; 则下面语句的输出结果是 for(i=0;i3;i+) printf(%d,xi2-1); A) 1 5 9 B) 1 4 7 C) 3 5 7 D) 3 6 9 (32) 设有以下定义: int a43=1,2,3,4,5,6,7,8,9,10,11,12; int (*prt)3=a,*p=a0; 则下列能够正确表示数组元素a12的表达式是 A) *(*prt+1) 2) B) *(*(p+5) C) (*prt+1)+2 D) *(*(a+1)+2) (33) 下面程序的输出是 A) 23 B) 26 C) 33 D) 36 int aa33=2,4,6; main() int i, * p=&aa00; for(i=0; i2;i+) if(i=0) aaii+1=*p+1; else +p; printf(%d,*p); (34) 下面程序的输出是 A) 60 B) 68 C) 99 D) 108 main() int a34= 1,3,5,7,9,11,13,15,17,19,21,23; int ( *p)4=a,i,j,k=0; for(i=0; i3; i+) for(j=0; j2; j+) k=k+*( *(p+i)+j); printf(%dn,k); (35) 若有以下说明和语句,请选出哪个是对c数组元素的正确引用 int c45, (*cp)5; cp=c; A) cp+1 B) *(cp+3) C) *(cp+1)+3 D) *(*cp+2) (36) 设有说明int(*ptr)m;其中的标识符ptr是 【36】 。 A)M个指向整型变量的指针 B)指向M个整型变量的函数指针 C)一个指向具有M个整型元素的一维数组的指针 D)具有M个指针元素的一维指针数组,每个元素都只能指向整型量 二、填空题: (1)以下函数rotate的功能是:将a所指N行N列的二维数组中的最后一行放到b所指二维数组的第0列中,把a所指二维数组中的第0行放到b所指二维数组的最后一列中,b所指二维数组中其他数据不变。 # define N 4 void rotate(int aN, int bN) int i, j; for (i=0; iN; i+) biN-1 = 【1】 ; 【2】 = aN-1i; (2)以下程序中,fun函数的功能是求3行4列二维数组每行元素中的最大值.请填空. void fun(int, int, int (*)4,int *) main() int a34=12,41,36,28,19,33,15,27,3,27,19,1,b3,i; fun(3,4,a,b); for(i=0;i3;i+) printf(%4d,bi); printf(n); void fun(int m,int n,int ar4,int *br) int i,j,x; for(i=0;im;i+) x=ari0; for(j=0;jn;j+) if(xarij) x=arij; 【3】 =x; (3) 以下程序中,函数 sumColumM的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。 #define M 2 #define N 4 void SumColumMin(int aMN,int *sum) int i,j,k,s=0; for(i=0;iN;i+) k=0; for(j=1;jaji)k=j; s+= 【4】 ; 【5】 =s; main() int xMN=3,2,5,1,4,1,8,3,s; SumColumMin( 【6】 ); printf(%dn,s); (4) 下面rotate函数的功能是:将n行n列的矩阵A转置为A,例如: 1 2 3 4 1 5 9 13 5 6 7 8 2 6 10 14 当 A 9 10 11 12 则 A=3 7 11 15 13 14 15 16 4 8 12 16 请填空 #define N 4 void rotate(int aN) int i,j,t; for(i=0;iN;i+) for(j=0;【7】;j+) t=aij; 【8】 ; aji=t; (5) 以下程序运行后的输出结果是 【9】 main() int i,j,a3=1,2,3,4,5,6,7,8,9; for(i=0;i3;i+) for(j=i+1;j3;j+) aji=0; for(i=0;i3;i+) for(j=0;j3;j+) printf(&d , aij); printf(n); (6) 若有以下程序 main() int a44=1,2,-3,-4,0,-12,-13,14,-21,23,0,-24,-31,32,-33,0; int i,j,s=0; for(i=0;i4;i+) for(j=0;j4;j+) if(aij0)continue; if(aij=0)break; s+=aij; printf(%dn,s); 执行后输出的结果是【10】。 (7) 函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 其构成规律是: 第0列元素和主对角线无素均为1 其余元素为其左上方和正上方元素之和 数据的个数每行递增1 请将程序补充完整。 #defint N 6 void YangHui(int *NN) int i,j; x00=1 for(i=1;iN;i+) xi0= 【11】 =1; for(j=1;ji;j+) xij= 【12】 ; (8) fun函数的功能是:首先对a所指的N行N列的矩阵,找出各行中的最大的数,再求这N个最大值中的最小的那个数作为函数值返回。请填空。 #include #define N 100 int fun(int(*a)N) int row,col,max,min; for(row=0;rowN;row+) for(max=arow0,col=1;colN;col+) if( 13 )max=arowcol; if( row=0)min=max; else if( 14 )min=max; return min; (9) 以下程序中,select 函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标。请填空。 #define N 3 #define M 3 select(int aNM,int *n) int i,j,row=1,colum=1; for(i=0;iN;i+) for(j=0;jarowcolum)row=i;colum=j; *n= 【15】; return 【16】; main() int aNM=9,11,23,6,1,15,9,17,20,max,n; max=select(a,&n); printf(max=%d,line=%dn,max,n); (10) 以下程序中,主函数调用了LineMax函数,实现在N行M列的二维数组中,找出每一行上的最大值。请填空。 #define N 3 #define M 4 void LineMax(int xNM) int i,j,p; for(i=0; iN;i+) p=0; for(j=1; jM;j+) if(xipxij) 【17】 ; printf(“The max value in line %d is %dn”, i, 【18】 ); main() int xNM=1,5,7,4,2,6,4,3,8,2,3,1; 【19】 (11) 设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部20 。要求形参名为b。 main() double s1022; int n; fun(s); (12) 设有以下定义的语句: int a32=10,20,30
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 酒厂月工作汇报
- 汽车4S店销售经理年终总结
- 行业调研方案汇报总结
- 生产部工作总结和工作计划
- 《老人与海》课件
- 房产工程师工作总结
- 《美猴王》课件教学课件
- 质检月度工作总结
- 移动公司班组长年终总结
- 颅内出血患儿护理措施
- 2025党风廉政建设知识题库(含参考答案)
- 第五课 网络的搭建说课稿-2025-2026学年初中信息技术(信息科技)初中二年级(上册)教科版(云南)
- 东岸文化传媒劳务合同4篇
- 2025年建筑工程类注册安全工程师安全生产专业实务(金属非金属矿山安全)-安全生产专业实务(金属非金属矿山安全)参考题库含答案解析(5卷)
- 2025年全国高考(新课标)政治真题卷含答案解析
- 2025年度情侣分手预防协议书下载中心
- 2025年高考数学试题分类汇编:立体几何试卷+解析
- 室内X射线探伤机应用项目环境影响报告表
- 新闻发布知识培训课件
- GB/T 18277-2025收费公路收费制式和收费方式
- 高一语文学法指导(绝对经典)
评论
0/150
提交评论