《《C++数组》习题》由会员分享,可在线阅读,更多相关《《C++数组》习题(4页珍藏版)》请在金锄头文库上搜索。
1、1C+数组习题学号 姓名 一、 选择题1、下列对字符数组进行初始化的语句正确的是 A.char a= Hello;B.char a= H,e,l,l,o;C.char a5=Hello;D.char a25= Hello,World;2、以下一维数组a的正确定义是 Aint a(10) ; Bint n=10,an;Cint n; D#define size 10 cinn; int asize; int an;3、以下对二维数组a进行不正确初始化的是 Aint a23=0;Bint a3=1,2,0;Cint a23=1,2,3,4,5,6;Dint a3=1,2,3,4,5,6);4、执行
2、以下程序后,s的值为 int a=5,3,7,2,1,5,4,lO);int s=0,k;for(k=0;k8;k+=2) s+=*(a+k);A17 B27 C13 D无定值5、为了判断两个字符串sl和s2是否相等,应当使用 Aif (s1=s2)Bif (s1=s2)Cif(strcpy(S1,s2)Dif(strcmp(s1,s2)=O)6、有定义int a25;,若a01的地址为x,则a0O、a13地址分别为(假设一个整型数据占用两个字节的内存空间): Ax-2,x+14 Bx-1,x+7Cx+1,x+7 Dx-1,x+147、若有定义float amn;,且a11的地址为x,每个fl
3、oat元素占用4个字节,则ailj的地址为 Ax+4*(i-1)*n+4*(j-1) Bx+(i-1)*n+(j-1)Cx+4*(i-1)*j+(j-1)Dx+4*i*j+4*j二、 填空题1、char st20 = SEU0t;coutsizeof(st)strlen(st)endl;则输出的内容是 ,如将st数组定义中的20去掉,则输出的内容是 。三、 程序阅读题1、 写出如下程序的运行结果。int main() int i,j; int a10=1,1,1,1,1,1,1,1,1,1; for(i=0; i10;i+) for(j=0;ji; j+) ai=ai+aj; for(i=0;
4、 i10; i+) coutait; coutn;return 0;2、 写出如下程序的运行结果。int main()int a33 = 1,0,2,2,2,0,0,1,0;int i,j;for(i=0; i3; i+)for(j=0; j3; j+)aij=aaijaji;coutaijt;return 0;四、 程序填空题1、定义函数,在一维数组中找出最大值和最小值,主函数中调用该函数并输出数组的最大最小元素。void cal(int a,int n, ) max=a0; ; for(int i=1;imax) ; if(aimin) min=ai;int main()int a10;c
5、out输入10个整数:endl;for(int i=0;iai; ; cal( ,max,min);for(i=0;i10;i+) coutai ;coutendl;coutmax=max,min=minendl;return 0;2、下列函数inverse的功能是使一个字符串按逆序存放,请填空。void inverse(char str)char m;int i,j; for(i=0,j=strlen(str); ;i+, ) m=stri; stri= ; ; 3、 下列程序用于判断字符串S是否对称,对称时返回1,否则返回0。如f(”abba”)返回1,而f(abab)返回0。请填空。in
6、t f( ) int i=0,j=0; while(sj!=0) ; for(j-;ij&si=sj;i+,j-); return( );4、下面函数是寻找二维数组中每一行的最大值,请填空。#define N 5#define M 5void max(int aNM) int i,j,p;for(i=0;iN;i+) ; for(j=1;jM;j+) if(aipaij) ; couti:aipendl; 5、下面的程序是把十进制数转换为某个指定的进制,请填空。int main()int num65,i=0,base; long n; coutn; coutbase; do ; i+; n=n/base; while( ); for( ;i=0;i-)coutnumi;return 0;1