C语言单项选择题4

31.以下4个变量定义中,定义p为二级指针的是()。A)int**p;B)int(*p)();C)int*p[10];D)int(*p)[10];32.*若有以下定义和赋... 31.
以下4个变量定义中,定义p为二级指针的是()。
A) int **p;
B) int (*p)( );
C) int *p[10];
D) int (*p)[10];

32.
*若有以下定义和赋值语句, 则与&s[i][j]等价的是()。
int s[2][3]={0}, (*p)[3], i, j;
p=s; i=j=1;

A) *(*(p+i)+j)
B) *(p[i]+j)
C) *(p+i)+j
D) (*(p+i))[j ]

33.
以下4个变量定义中,定义p为指针数组的是()。
A) int *p[10];
B) int (*p)( );
C) int **p;
D) int (*p)[10];

34.
在C语言中,表示结束当前函数的语句是()。
A) return语句
B) break语句
C) continue语句
D) end语句

35.
*若已定义x为int类型变量,下列定义指针变量p的语句正确的是()。
A) int *p=&x;
B) int p=&x;
C) int *p=x;
D) int p=x;

36.
在C语言中,表示循环的一组语句是()。
A) for, while, do-while
B) for, while, do-until
C) for, loop, do-loop
D) for, for each, while

37.
以下选项中,合法的函数说明语句是()。
A) void func( char a[], b[]);
B) void func( *a, char b[]);
C) void func( char a[], char *b);
D) void func( char *a, *b );

38.
*以下定义语句中正确的是()。

A) char a="A", b="B" ;
B) char *p="abcd", *q=p+1;
C) int a=b=0;
D) float *a, b=&a;

39.
*设有以下语句:
struct st
{ int n;
struct st *next;
}a[3]={5, &a[1], 7 , &a[2], 9, '\0'}, *p=a;
则以下表达式的值为6的是()。
A) p++->n
B) p->n++
C) (*p).n++
D) ++p->n

40.
设有以下结构体定义及初始化,则表达式结果为'i'的是()。
struct node
{
int num;
char name[20];
} stu[2]={101, "Wang",102, "Li"},*p=stu;

A) stu[1].name[1]
B) p->name[1]
C) stu[0].name[1]
D) p->name[1]+1
展开
 我来答
jazzit
2012-02-25 · TA获得超过240个赞
知道答主
回答量:106
采纳率:0%
帮助的人:91.1万
展开全部
31.答:A)

32.答:C)

33.答:A)

34. 答:A)

35. 答:A)

36.答:A)

37.答:C)

38.答:B)

39.答:D)

40.答:A)
详解如下:
31.
以下4个变量定义中,定义p为二级指针的是()。
A) int **p;
B) int (*p)( );
C) int *p[10];
D) int (*p)[10];

答:A)
指向指针的指针,称为二级指针

32.
*若有以下定义和赋值语句, 则与&s[i][j]等价的是()。
int s[2][3]={0}, (*p)[3], i, j;
p=s; i=j=1;

A) *(*(p+i)+j)
B) *(p[i]+j)
C) *(p+i)+j
D) (*(p+i))[j ]

答:C)&s[i][j]等价 s[i][j]的地址
(*p)[3]表示指向数组的指针,又称数组指针,
*(p+i)表示指向s的第i行
*(p+i)+j就是第i行第j列的地址

33.
以下4个变量定义中,定义p为指针数组的是()。
A) int *p[10];
B) int (*p)( );
C) int **p;
D) int (*p)[10];

答:A)
指针数组是数组元素为指针的数组

34.
在C语言中,表示结束当前函数的语句是()。
A) return语句
B) break语句
C) continue语句
D) end语句

答:A)

35.
*若已定义x为int类型变量,下列定义指针变量p的语句正确的是()。
A) int *p=&x;
B) int p=&x;
C) int *p=x;
D) int p=x;

答:A)

36.
在C语言中,表示循环的一组语句是()。
A) for, while, do-while
B) for, while, do-until
C) for, loop, do-loop
D) for, for each, while

答:A)

37.
以下选项中,合法的函数说明语句是()。
A) void func( char a[], b[]);
B) void func( *a, char b[]);
C) void func( char a[], char *b);
D) void func( char *a, *b );

答:C)

38.
*以下定义语句中正确的是()。

A) char a="A", b="B" ; //"A"是字符串
B) char *p="abcd", *q=p+1;
C) int a=b=0; //b未定义
D) float *a, b=&a; //a未分配内存

答:B)

39.
*设有以下语句:
struct st
{ int n;
struct st *next;
}a[3]={5, &a[1], 7 , &a[2], 9, '\0'}, *p=a;
则以下表达式的值为6的是()。
A) p++->n
B) p->n++
C) (*p).n++
D) ++p->n

答:D)

p指向链表的第一个点n=5;++5=6 选D
B和C虽然也指向链表的第一个点n=5,但是是后缀++,n=6,表达式还是5

40.
设有以下结构体定义及初始化,则表达式结果为'i'的是()。
struct node
{
int num;
char name[20];
} stu[2]={101, "Wang",102, "Li"},*p=stu;

A) stu[1].name[1]
B) p->name[1]
C) stu[0].name[1]
D) p->name[1]+1

答:A)

辛苦给点分吧,555
undergrowth
2012-02-25 · TA获得超过1513个赞
知道小有建树答主
回答量:879
采纳率:0%
帮助的人:1191万
展开全部
A
32. C B是要取到了s[i][j]的值 C才是取到了&s[i][j]的地址
A
A
A
A
C
38. B C是错误的 不信你可以边个代码测试一下
39. D B是错的 只会输出5 而不是6 同样你可以测试
A
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
william395
2012-02-25
知道答主
回答量:11
采纳率:0%
帮助的人:7.7万
展开全部
31 A;
32 B;
33 A;
34 A;
35 A;
36 A;
37 C;
38 C;
39 B D;(这道题确实是两个答案)
40 A;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lihong_rain
2012-02-25
知道答主
回答量:13
采纳率:0%
帮助的人:4.4万
展开全部
jazzit说得很详细,就是那个答案
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式