数组和函数
1、若有以下定义和语句 #include
p=&a; q=&b; w=q; q=NULL;
则以下选项中错误的语句是________。 A、*q=0; B、*p=*w; C、w=p; D、*p=a; 答案a
2、在说明语句:int *f();中,标识符f代表的是________。
A、一个用于指向函数的指针变量 B、一个用于指向整型数据的指针变量 C、一个用于指向一维数组的行指针 D、一个返回值为指针型的函数名 答案d
3、不合法的main函数命令行参数表示形式是________。
A、main(int arc,char **arv) B、main(int argv,char *argc[]) C、main(int argc,char *argv) D、main(int a,char *c[]) 答案c
4、有以下程序
main()
{ char *s[]={\ p=s[1];
printf(\}
执行后输出结果是________。 A、t,one B、o,two C、w,one D、n,two 答案c
5、有以下程序 main()
1
{ int x[8]={8,7,6,5,0,0},*s; s=x+3;
printf(\
}
执行后输出结果是________。 A、5 B、0 C、6 D、随机值 答案b
6、若定义:int a=511,*b=&a;, 则printf(\的输出结果为________。 A、512 B、无确定值 C、a的地址 D、511 答案d
7、若有定义:int *p[3];,则以下叙述中正确的是________。 A、定义了一个名为*p的整型数组,该数组含有三个int类型元素
B、定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针 C、定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素 D、定义了一个基类型为int的指针变量p,该变量具有三个指针 答案b
8、有以下程序 #include
str[][20]={\ printf(\}
程序运行后的输出结果是________。 A、5 B、20 C、7
char
D、0 答案c
9、若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是________。 A、n=*q; B、p=q; C、*p=*q; D、p=n; 答案d
10、有以下程序 #include
main(int argc,char *argv[]) { int i,len=0;
for(i=1;i
len+=strlen(argv[i]); printf(\}
程序编译连接后生成的可执行文件是ex1.exe,
若运行时输入带参数的命令行是: ex1 abcd efg 10<回车>
则运行的结果是________。 A、12 B、22 C、17 D、9 答案d
11、以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是________。 main()
{ int *p,*q,a,b; p=&a;
printf(\ scanf(\ ……
}
A、*p表示的是指针变量p的值
B、*p表示的是变量a的值,而不是变量a的地址
C、*p只能用来说明p是一个指针变量
2
D、*p表示的是指针变量P的地址 答案b
12、已有定义int k=2;int *ptr1,*ptr2;且ptrl和ptr2均已指向变量k,下面不能正确执行的赋值语句是________。 A、ptrl=ptr2; B、ptr2=k;
C、k=*ptr1*(*ptr2); D、k=*ptrl+*ptr2; 答案b
13、变量的指针,其含义是指该变量的________。 A、名 B、地址 C、一个标志 D、值 答案b
14、若有语句int *point,a=4;和point=&a;下面均代表地址的一组选项是________。 A、*&point,*point,&a B、a,point,*&a C、&*a,&a,*point D、&a,&*point,point 答案d
15、下面说明不正确的是________。 A、char *a;a=\ B、char a[]=\ C、char a[10]=\ D、char a[10],*p;p=a=\答案d
16、若有说明语句
char a[]=\char *p=\;
则以下不正确的叙述是________。 A、p变量中存放的地址值可以改变 B、a+1表示的是字符t的地址
C、p指向另外的字符串时,字符串的长度不受限制
D、a中只能存放10个字符
答案d
17、若有以下定义,则对a数组元素的正确引用是________。 int a[5],*p=a; A、*(p+5) B、*&a[5] C、a+2 D、*(a十2) 答案d
18、若有以下定义,则对a数组元素地址的正确引用是________。 int a[5],*p=a; A、&a+1 B、p+5 C、*a+1 D、&a[0] 答案d
19、若有定义:int a[2][3];则对a数组的第i行第j列(假设i,j已正确说明并赋值)元素值的正确引用为________。 A、*(*(a+i)+j) B、*(a+i)+j C、(a十i)[j] D、*(a+i+j) 答案a
20、若有定义:int a[2][3];则对a数组的第i行第j列(假设i,j已正确说明并赋值)元素地址的正确引用为________。 A、*(a+j) B、*(a[i]+j) C、(a+i) D、a[i]+j 答案d
21、若有以下定义和语句,则对a数组元素地址的正确引用为________。 int a[2][3],(*p[3]) p=a; A、p[2] B、(p+1)+2
3
C、p[1]+1 D、*(p+2) 答案c
22、若有以下定义和语句,则对a数组元素的正确引用为________。 int a[3][3],(*p)[3]; p=a
A、*(p+2)+1 B、p[1]+2 C、*(p[2]+1) D、(p+1)[0]
答案c
23、若有定义:int a[5];则a数组中首元素的地址可以表示为________。 A、a+1 B、&a[1] C、a D、&a 答案c
24、若有定义:int (*P)[4];则标识符p________。
A、是一个指针数组名
B、定义不合法
C、是一个指针,它指向一个含有四个整型元素的一维数组
D、是一个指向整型变量的指针 答案c
25、若有以下定义和赋值语句,则对S数组的第i行第j列(假设i,j已正确说明并赋值)元素地址的合法引用为________。 int s[2][3]={0},(*p)[3]; p=s;
A、p[i]+j B、(*(p+i))[j] C、*(p(i)+j) D、(p+i)+j 答案a
26、若有以下定义和赋值语句.,则对b数组的第i行第j列(假设i,j已正确说明并赋值)
元素的非法引用为________。 int b[2][3]={0},(*p)[3]; p=b;
A、*(p[i]+j) B、(*(p+1))[j] C、*(p+i)+j D、*(*(p+i)+j)
答案c
27、以下与int *q[5];等价的定义语句是________。 A、int (*q)[5]; B、int q[5]; C、int *q; D、int (*q[5]); 答案d
28、若有以下定义,则*(p+5)表示________。 int a[10],*p=a;
A、元素a[6]的地址 B、元素a[5]的值 C、元素a[6]的值 D、元素a[5]的地址 答案b
29、若有定义:int *p[4];则标识符p________。 A、是一个指针,它指向一个含有四个整型元素的一维数组
B、是一个指针数组名 C、说明不合法
D、是一个指向整型变量的指针 答案b
30、一以下正确的说明语句是________。 A
、
int
a[]={1,3,5,7,9};
int int
*num[5]={a[0],a[2],a[3],a[4]}; B、
值语句是________。 int b[4][6],*p,*q[4];
A、p=b[i]; B、p=b;
C、q[i]=&b[0][0]; D、q[i]=b[i]; 答案b
32、以下正确的定义语句和赋值语句是________。
A、double b[3][5],s[5][3]},*q;q=b;s=q; B、float b[3][5],*P[3];P[0]=b[0];p[2]=*b+4; C、int b[10],*q; char *s;q=b;s=b; D、int b[3][5],(*P)[3],(*q)[5];P=b;q=b; 答案b
33、若有以下定义,则P十5表示________。 int a[10],*p=a;
A、元素a[5]的地址 B、元素a[6]的值 C、元素a[5]的值 D、元素a[6]的地址 答案a
34、 若有以下定义,且0<=i<6,则正确的赋值语句是________。 int s[4][6],t[6][4],(*p)[6]; A、p=s[i]; B、p=s; C、p=t[i]; D、p=t; 答案b
35、若有定义:int a[4][6];则能正确表示a数组中任一元素a[i][j](此0<=i<4,o<=j<6)地址的表达式是________。 A、&a[0][0]+6*i+j B、&a[0][0]+6*j+1 C、&a[0][0]+4*j+i D、&a[0][0]+4*i+j 答案a
36、以下选项中,对指针变量P的正确操作是________。
a[5],*num[5]={&a[0],&a[1],&a[2],&a[3],&a[4]};
C、int a[3][4],(*num)[4];num[1]=&a[1][3]; D、int *b[]={1,3,5,7,9}; 答案b
31、若有以下定义,且0<=i<4,则不正确的赋
4
A、int a[5]; int *p=a=1000 ; B、int a[5],*p; p=a; C、int a[5]; int *p1,*p2=a; *p1=*p2; D、int a[5],*p; p=&a; 答案b
37、若有以下定义和语句,则能正确表示a数组元素地址的表达式是________。 double a[5],*p1; p1=a; A、a B、&a[5] C、p1+5 D、*p1 答案a
38、若有以下定义,且0<=i<5,则对a数组元素的非法引用是________。 int a[5],*p=a; A、*(p+i) B、a[i] C、*(a+i) D、*(&a+i) 答案d
39、若有以下定义,则数值不为3的表达式是________。
int x[10]={0,1,2,3,4,5,6,7,8,9},*p1; A、p1=x+3,*p1++ B、p1=x+2,*++p1 C、p1=x+2,*(p1++) D、x[3]
答案c
40、若有以下定义,则能正确的程序段是________。 int *p,*s,i,j; char *q,ch; A、main()
5
{p=&i; q=&ch; p=q;
....} B、main() {*p=1.00; ....} C、main() {p=&ch; s=p; .....} D、main() {p=&i; q=&ch; *p=40;*q=*p; ....} 答案d
41、设有以下定义:
char *cc[22]={\则正确的叙述是________。
A、cc数组的两个元素中各自存放字符串\和\的首地址
B、cc数组元素的值分别是\和\C、cc数组的两个元素中分别存放的是含4个字符的一维字符数组的首地址 D、cc是指针变量,它是指向两个数组元素的字符型一维数组 答案a
42、以下正确的叙述是________。
A、C语言允许main函数带形参,形参名只熊是argc和argv
B、若有说明:main (int argc ,char *argv),则形参arc的值必须大于i
C、当main函数带有形参时,传给形参的值只能从命令行中得到
D、C语言允许main函数带形参,且形参个数和形参名均可由用户指定 答案c
43、main函数的正确说明形式是________。 A、main(int argc,char argv) B、main(int abc,char **abv)
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库数组和函数在线全文阅读。
相关推荐: