(程序设计关于数组习题.doc
文本预览下载声明
习题三一、单项选择题(下列每小题有4个备选答案,将其中的一个正确答案填到其后的括号内)
1.设有定义:int a[10],*p=a;,对数组元素的正确引用是( )。
① a[p] ② p[a] ③ *(p+2) ④ p+2
2.若有如下定义,则不能表示数组a元素的表达式是( )。
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
① *p ② a[10] ③ *a ④ a[p-a]
3.若有如下定义,则值为3的表达式是( )。
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
① p+=2,*(p++) ② p+=2,*++p ③ p+=3,*p++ ④ p+=2,++*p
4.设有定义:char a[10]=ABCD,*p=a;,则*(p+4)的值是( )。
① ABCD ② ’D’ ③ ’\0’ ④ 不确定
5. 将p定义为指向含4个元素的一维数组的指针变量,正确语句为( )。
① int (*p)[4]; ② int *p[4]; ③ int p[4]; ④ int **p[4];
6.若有定义int a[3][4];,则输入其3行2列元素的正确语句为( )。
① scanf(%d,a[3,2]); ② scanf(%d,*(*(a+2)+1))
③ scanf(%d,*(a+2)+1); ④ scanf(%d,*(a[2]+1));
7.下面对指针变量的叙述,正确的是( )。
① 指针变量可以加上一个指针变量。
② 可以把一个整形数赋给指针变量。
③ 指针变量的值可以赋给指针变量。
④ 指针变量不可以有空值,即该指针变量必须指向某一变量。
8.设有定义:int a[10],*p=a+6,*q=a;,则下列运算哪种是错误的( )。
① p-q ② p+3 ③ p+q ④ pq
9.C语言中,数组名代表( )。
① 数组全部元素的值 ② 数组首地址
③ 数组第一个元素的值 ④ 数组元素的个数
10.若有如下定义,则数值为4的表达式是( )。
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};
char c=’a’,d,g;
① a[g-c] ② a[4] ③ a[’d’-’c’] ④ a[’d’-c]
11.设有定义:char s[12]=string;,则printf(%d,strlen(s));的输出结果是( )。
① 6 ② 7 ③ 11 ④ 12
12.语句printf(%d,strlen(abs\no12\1\\));的输出结果是( )。
① 11 ② 10 ③ 9 ④ 8
13.设有定义:int t[3][2];,能正确表示t数组元素地址的表达式是( )。
① t[3][2] ② t[3] ③ t[1] ④ *t[2]
14.语句strcat(strcpy(str1,str2),str3);的功能是( )。
① 将字符串str1复制到字符串str2中后再连接到字符串str3之后。
② 将字符串str1连接到字符串str2中后再复制到字符串str3之后。
③ 将字符串str2复制到字符串str1中后再将字符串str3连接到字符串str1之后。
④将字符串str2连接到字符串str1中后再将字符串str1复制到字符串str1中。
15.若有如下定义,则正确的叙述为( )。
char x[]=abcdefg;
char y[]={’a’,’b’,’c’,’d’,’e’,’f’,’g’};
① 数组x和数组y等价 ② 数组x和数组y的长度相同
③ 数组x的长度大于数组y的长度 ④ 数组y的长度大于数组x的长度
二、程序分析题1.下列程序的运行结果是
main()
{ int a[3][3]={{1,2},{3,4},{5,6}};
int i,j,s=0;
for(i=0;i3;i++)
for(j=0;j=i;j++)
s+=a[i][j];
prin
显示全部