Jeff的错题集(三):刷到怀疑人生!

12 篇文章 0 订阅
12 篇文章 0 订阅

题一、
struct Student
{
int num;
double score;
};
Student stu[3]={{1001,80}, {1002,75}, {1003,91}}, *p=stu;

则下面引用形式错误的是()。
正确答案: B 你的答案: D (错误)
p->num
(p++).num
(p++)->num
(*p).num
解答:运算符-> 相当于运算符 *.
即p->num与(*p).num等价
题三:
有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。则不
能把结点b连接到结点a之后的语句是()。
struct node
{
char data;
struct node *next;
} a,b,*p=&a,*q=&b;

正确答案: B 你的答案: D (错误)
a.next=q;
p.next=&b;
p->next=&b;
(*p).next=q;
解答:
p是一指向结构体类型的指针变量,其初始值是让其指向结构体变量a,要通
过指针变量p来引用结构体变量的成员next,通常可使用两种形式:p->next 或(*p).next,
而p.next是非法的引用。故选择答案是B。

题四:
与声明:char str[10]={‘a’,’b’,’c’,’\0’};相等的声明是
正确答案: D 你的答案: A (错误)
char str[10]=“abc\0”;
char *str=“abc”;
char str[]=“abc”;
char str[10]=“abc”;
解答:
选D。
题干中:在字符数组char str[10]={‘a’,’b’,’c’,’\0’},’\0’是字符结束符,所以是一个包含a、b、c三个元素,数组类型大小为10的数组。
在这里插入图片描述
选项中:
A 包含两个结束符占空间,显示的abc\0占4个空间,隐式\0占1个空间。与题干不符,排除。
B 指针变量类型为8,与题干不符,排除。
C 动态数组类型,由元素个数决定大小,结果为4,与题干不符,排除。
D 包含隐含字符’\0’,结束符,和abc三个元素,共占4个空间,和题干相同。所以D正确。
在这里插入图片描述
题五:
32位系统中,如下程序执行的结果是( )。
#include <stdio.h>
main()
{
char *p=“abcdefgh”,*r;
long *q;
(a) =(long *)p;
q++;
(b) = (char *)q;
printf(“%1s\n”,r);
}
解答:
sizeof(char) 等于 1,sizeof(long) 等于4.
q++; // 指向的地点 加了 4 bytes,也就是 越过了 abcd
r=(char *)q; // 把现在q 指向的地点 给 char r 指针,作为 r 指针的首地址。
printf("%s",r); // 按字符形式 打出: efgh

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值