第1讲 指针和数组

第1讲 单元测验

1、单选题:
‌若已定义:  int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;   假设0≤i≤9,则对a数组元素不正确的引用是(    )‎
选项:
A: a[p-a]
B: *(&a[i])
C:  p[i]
D: a[10]
答案: 【 a[10]

2、单选题:
假设有定义 int a=3,b=5,*pa=&a,*pb=&b;则执行如下语句后,a,b的值分别为(      )‌   *pa=a+b;‌   *pb=a+b;‌‍‌
选项:
A: a=13,b=13
B: a=8,b=8
C: a=8,b=13
D: 出错
答案: 【 a=8,b=13

3、单选题:
‍有说明 int a[10]=[1,2,3,4,5,6,7,8,9,10},*p=a;,则数值为9的表达式是(     )。‎
选项:
A: *(p+9)
B: *(p+8)
C: *p+=9
D:  *p+=9
答案: 【 *(p+8)

4、单选题:
​若有说明语句"int  a[10],*p=a;",对数组元素的正确引用是(    )‏
选项:
A: a[p]
B: p[a]
C: *(p+2)
D: p+2
答案: 【 *(p+2)

5、单选题:
‍下列各语句行中,能正确进行赋字符串操作的语句是(     )‎
选项:
A: char  s[5]={"ABCDE"};
B: char  s[5]={'A' ,'B','C','D','E'};
C: char  *s;  s="ABCDE";
D: char  *s;  *s="ABCDE";
答案: 【 char  *s;  s="ABCDE";

6、单选题:
​执行char  a[10]={"abcd"},*p=a;后,*(p+4)的值是(     )​
选项:
A: "abcd"
B: 'd'
C: '' 
D: 不能确定
答案: 【 '' 

7、单选题:
‌若有char *a="ABCD";,则执行cout<<a的结果是(    )‎
选项:
A: A
B: AB
C: ABC
D: ABCD
答案: 【 ABCD

8、判断题:
‍假设有定义int a[10]={1,3,5,7,9}, *p=a+1; 则*(p+2)的值为5。‎
选项:
A: 正确
B: 错误
答案: 【 错误

9、判断题:
‌假设有定义char s[100],*p=s; ,则可以用delete p;来释放p占用的内存空间。 ​
选项:
A: 正确
B: 错误
答案: 【 错误

10、判断题:
‍char *a= "china";      等价于 char *a;  *a= "china";‌
选项:
A: 正确
B: 错误
答案: 【 错误

11、判断题:
‎假设有定义int a[]={10,20,30,40,50,60,70,80,90,100},*p=a;,则表达式*p+9的值为100。​
选项:
A: 正确
B: 错误
答案: 【 错误

12、判断题:
​假设有定义 char s1[20]="1234567" ,s2[20]={"ABCD"};,则执行strcpy(s1,s2)后,s1的内容为“ABCD”‍
选项:
A: 正确
B: 错误
答案: 【 正确

13、填空题:
‎假设有定义float d[10]={1.5, 2.0,2.5,3.0},*p=d;则表达式*++p的值为(     )‏
答案: 【 2.0

14、填空题:
执行该程序段后,a的值为(    )‎  int *p,a=10,b=1;‎  p=&a;  a=*p+b;‎‌‎
答案: 【 11

15、填空题:
‌假设有定义 char s[]="ABCD",*p=s;则执行cout<<p+2的结果为(    )​
答案: 【 CD

第2讲 结构

第2讲单元测验

1、单选题:
‍当说明一个结构体变量时系统分配给它的内存是(    )。‎
选项:
A: 各成员所需内存量的总和
B: 结构中第一个成员所需内存量
C: 成员中占内存量最大者所需的容量
D: 结构中最后一个成员所需内存量
答案: 【 各成员所需内存量的总和

2、单选题:
已知有如下定义:‌struct a‌{char x; ‌double y;}data,*t;‌若有t=&data,则对data中的成员的正确引用是(    )。‌‎‌
选项:
A: (*t).data.x
B: (*t).x  
C: t->data.x 
D: t.data.x
答案: 【 (*t).x  

3、单选题:
假设有定义:‌struct st‌{ int x; int *y;} *p;‌  int dt[4]={ 10,20,30,40};‌  struct st aa[4]={ 50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0]};‌若有 p=aa;,则执行cout<<++(p->x);的结果为(    )。‌‍‌‍‌
选项:
A: 10
B: 11
C: 51
D: 60
答案: 【 51

4、单选题:
已知学生记录描述为:‏struct student‏{  int no;‏char name[20],sex;‏struct‏{ int year,month,day;‏} birth;‏}s;‏设变量s中的“生日”是“1984年11月12日”,对“birth”正确赋值的程序段是(   )。‏‏‏
选项:
A: year=1984;month=11;day=12;
B: s.year=1984;s.month=11;s.day=12;
C: birth.year=1984;birth.month=11;birth.day=12;
D: s.birth.year=1984;s.birth.month=11;s.birth.day=12;
答案: 【 s.birth.year=1984;s.birth.month=11;s.birth.day=12;

5、单选题:
有如下定义‎struct person{char name[9];int age;};‎struct person class[10]={"John",17,"paul",19,"Mary",18,"Adam",16,};‎则能输出字母M的语句是(    )。‎‍‎
选项:
A: cout<<class[3].name; 
B: cout<<class[3].name[1];
C: cout<<class[2].name[1];
D: cout<<class[2].name[0];
答案: 【 cout<<class[2].name[0];

6、单选题:
假设有定义:‎struct abc‎{‎ int a, b, c, s; ‎}s[2]={{1,2,3},{4,5,6}}; ‎则表达式s[0].a+s[1].b的值为(    )。‎‍‎‍‎
选项:
A: 5
B: 6
C: 7
D: 8
答案: 【 6

7、单选题:
‎有以下定义:int i,sum=0;struct STU{    char num[10];   float score[3]; }s[3]={{"20021",90,95,85}, {"20022",95,80,75},{ "20023",100,95,90},},*p=s;则执行以下程序段后,sum的值为(    )。for(i=0;i<3;i++)   sum=sum+p->score[i];‏
选项:
A: 260
B: 270
C: 280
D: 285
答案: 【 270

8、单选题:
假设有定义:‎ struct cou

剩余75%内容付费后可查看

发表评论

电子邮件地址不会被公开。 必填项已用*标注