MOOC 程序设计与算法语言II(东南大学)1450818208 最新慕课完整章节测试答案
第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