2021知到答案 C-C++程序设计 智慧树网课章节测试答案

第一章 章节测试

1、选择题:第一个高级语言Fortran出现在(   )年
选项:
A:1956
B:1950
C:1954
D:1946
答案: 【1954
2、选择题:下列关于计算机语言的叙述中,正确的是(   )
选项:
A:C语言属于高级语言
B:高级语言的源程序可以被计算机直接执行
C:机器语言是与所有机器无关的语言
D:在计算机语言中,只有机器语言属于低级语言
答案: 【C语言属于高级语言
3、选择题:源程序test.c经编译产生的目标文件和连接后产生的可执行文件是(   )
选项:
A:test.bak和test.obj
B:test.obj和test.exe
C:test.bak和test.exe
D:test.exe 和test.c
答案: 【test.obj和test.exe
4、选择题:在算法的流程图表示中,菱形表示( 
选项:
A:算法条件的转移操作
B:算法的输入/输出操作
C:算法的各种处理功能
D:算法的开始与结束
答案: 【算法条件的转移操作
5、选择题:关于结构化程序设计阐述正确的是(   
选项:
A:结构化程序设计方法不一定能提高软件开发效率
B:采用结构化程序设计方法,可以把一个模块的功能逐步分解细化
C:结构化程序设计中使用循环结构,可以无限循环
D:结构化程序设计中使用顺序结构,可以不按各个模块出现的先后顺序进行程序执行
答案: 【采用结构化程序设计方法,可以把一个模块的功能逐步分解细化

第二章 章节测试

1、选择题:以下定义语句中正确的是(    )
选项:
A:float *a,b=&a;
B:float a=b=10.0;
C:char a=’A’ b=’B’;
D:int a=10, *b=&a;
答案: 【int a=10, *b=&a;】[$]
2、选择题:下列选项中,不能用作标识符的是(   
选项:
A:int_2_
 
B:_1_2
 
C:2_int_
 
D:_1234_
 
答案: 【2_int_
 

3、选择题:有以下定义语句double a,b; int w; long c;若各变量已正确赋值,则下列选项中正确的表达式是(  )
选项:
A:
w=a==b;
 
B:a=a+b=b++
 
C:
w%((int)a+b)
 
D:(c+w)%(int)a
 
答案: 【(c+w)%(int)a
 

4、选择题:

有以下程序:

main()

{int m=3,n=4,x;

 x=-m++;

 x=x+8/++n;

 printf{“%d”,x);

}

程序运行后的输出结果是(  )
选项:
A:-2

 
B:-1
 
C:3
 
D:5
 
答案: 【-2
 

5、选择题:表达式3.6-5/2+1.2+5%2的值是(    
选项:
A:3.3
 
B:4.3
 
C:3.8
 
D:4.8
 
答案: 【3.8
 

第三章 章节测试

1、选择题:下列语句中符合C语言语法的赋值语句是(   
选项:
A:a=7+b++=a+7;
 
B:a=7+b+c=a+7;
 
C:a=7+b,b++,a+7
 
D:a=7+b,c=a+7;
 
答案: 【a=7+b,c=a+7;
 

2、选择题:

下面程序的输出是(     

main()

      { int x=10,y=3;

      printf(“%d”,y=x/y);}
选项:
A:

 
B:3
 
C:0
 
D:不确定的值
 
答案: 【3
 

3、选择题:

下面程序的输出是(     

  main()     {       int x=023;21

            printf(%d”,–x);

  }

 
选项:
A:23

 
B:18
 
C:24
 
D:17
 
答案: 【18
 

4、选择题:

设有如下程序段:

int x=2002, y=2003;

printf(“%d”,(x,y));

则以下叙述中正确的是(   
选项:
A:运行时产生出错信息

 
B:输出值为2003
 
C:输出值为2002
 
D:输出语句中格式说明符的个数少于输出项的个数,不能正确输出
 
答案: 【输出值为2003
 

5、选择题:

有定义语句:int x, y;,若要通过scanf(“%d,%d”,&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是(    
选项:
A:11,<空格>12<回车>

 
B:11 12<回车>
 
C:11,<回车>12<回车>
 
D:11,12,<回车>
 
答案: 【11 12<回车>
 

第四章 章节测试

1、选择题:

关于C语言逻辑值的说法错误的是(    )
选项:
A:逻辑值以整型类型保存

 
B:C语言中没有逻辑数据类型
 
C:逻辑值只有两个值,表示为1和0
 
D:C语言中有逻辑数据类型
 
答案: 【C语言中有逻辑数据类型
 

2、选择题:下列运算符中优先级最低的是(     )
选项:
A:||
 
B:<=
 
C:+
 
D:!=
 
答案: 【||
 

3、选择题:算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为(     
选项:
A:算术运算、赋值运算、关系运算
 
B:关系运算、赋值运算、算术运算
 
C:关系运算、算术运算、赋值运算
 
D:算术运算、关系运算、赋值运算
 
答案: 【算术运算、关系运算、赋值运算
 

4、选择题:以下关于if语句的错误描述是(   )
选项:
A:条件表达式的括号不能省
 
B:条件表达式只能是关系表达式或逻辑表达式
 
C:else配对的if语句是其之前最近的未配对的if语句
 
D:条件表达式可以是任意的表达式
 
答案: 【条件表达式只能是关系表达式或逻辑表达式
 

5、选择题:

main()

{ int x=0,a=0,b=0;

switch(x){

case 0:      b++;

case 1:      a++;

case 2:      a++;b++;

}

printf(“a=%d,b=%d”,a,b);}

该程序的输出结果是(      )
选项:
A:a=2,b=2

 
B:a=2,b=1
 
C:a=1,b=1
 
D:a=1,b=0
 
答案: 【a=2,b=2
 

第五章 章节测试

1、选择题:

对于do…while语句,下列说法中正确的是(     ) 
选项:
A:do…while语句可实现分支程序设计

 
B:当循环条件不成立时,至少也要执行一次循环体
 
C:do…while与while结构完全相同
 
D:当循环条件不成立时,一次也不执行循环体
 
答案: 【当循环条件不成立时,至少也要执行一次循环体
 

2、选择题:下列程序段执行时,若从键盘输入23,则输出为(      )

int c,num;

scanf(“%d”,&num);

do

{c=num%10;printf(“%d”,c);

 num=num/10;

}while(num>0);

printf(”
“); 

选项:
A:2, 3

 
B:3
 
C:2
 
D:3,2
答案: 【3,2
3、选择题:

有以下程序

main( )

{    int i,s=0;

     for(i=1;i<10;i++)  s=s+i;

     printf(“%d”,s);

}

程序执行后的输出结果是 (      )
选项:
A:自然数1~9的累加和

 
B:自然数1~10中的偶数之和
 
C:自然数1~9中的奇数之和
 
D:自然数1~10的累加积
 
答案: 【自然数1~9的累加和
 

4、选择题:i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是(       )

for (i=5;i;i–)

for(j=0;j<4;j++){…}
选项:
A:20

 
B:30
 
C:24
 
D:25
 
答案: 【25
 

5、选择题:

有以下程序段

int k = 10 ;

while( k == 0 )  k = k – 1 ;则下面描述中正确的是(     
选项:
A:循环体语句执行一次

 
B:循环体语句一句也不执行
 
C:while循环执行10次
 
D:循环是无限循环
 
答案: 【循环体语句一句也不执行
 

第六章 章节测试

1、选择题:C语言中,下列不合法的字符常量是(   )
选项:
A:‘ÿ’
 
B:‘5’
 
C:‘8’
 
D:‘&’
 
答案: 【‘8’
 

2、选择题:

有以下程序

main()

{  char a,b,c,d;

   scanf{“%c,%c,%d,%d”,&a,&b,&c,&d);

   printf{“%c,%c,%c,%c
“,a,b,c,d);}

若运行时从键盘上输入:6,5,65,66 <回车> 。则输出结果是(     
选项:
A:6,5,6,5

 
B:6,5,A,B
 
C:6,5,65,66
 
D:6,5,6,6
 
答案: 【6,5,A,B
 

3、选择题:

有定义语句: int b;char c[10];, 则正确的输入语句是(     
选项:
A:scanf(“%d%s”,&b,&c);

 
B:scanf(“%d%s”,b,c);
 
C:scanf(“%d%s”,&b,c);
 
D:scanf(“%d%s”,b,&c);
 
答案: 【scanf(“%d%s”,&b,c);
 

4、选择题:

以下程序运行后的输出结果是(     )。

  main()

  { char c1,c2;

    for(c1=’0′,c2=’5′;c1<c2;c1++,c2–) printf(“%c%c”,c1,c2);

    printf(”
“);

  }
选项:
A:012345

 
B:035241
 
C:051423
 
D:543210
 
答案: 【051423
 

5、选择题:

已知字符AASCII代码值为65, 以下程序运行时若从键盘输入: B33<回车>。则输出结果是(    )。

  #include <stdio.h>

  main()

  { char a,b;

    a=getchar();scanf(“%d”,&b);

    a=a-‘A’+’0’; b=b*2;

printf(“%c %c”a,b);  }
选项:
A:1 B

 
B:2 A
 
C:1 A
 
D:2 B
 
答案: 【1 B
 

第七章 章节测试

1、选择题:

#include<stdio.h>

 func(int x)

{   x=10;

    printf(“%d, ”,x); }

 main( )

 {  int x=20;

    func(x);

    printf(“%d”, x); }

运行结果为(     )
选项:
A:10, 20 

 
B:20,10
 
C:10, 10
 
D:20, 20
 
答案: 【10, 20 
 

2、选择题:

有以下程序

int f(int a)

{ return a%2;}

main()

{ int s[8]={1,3,5,2,4,6},i,d=0;

   for(i=0;f(s[i]);i++)d+=s[i];

   printf(“%d”,d);}

程序运行后的输出结果是(     
选项:
A:11
B:19
C:21
D:9
答案: 【9

3、选择题:

#include <stdio.h>

void main()

{   int max(flaot x, float y);

    float a, b;

    int c;

    scanf(“%f,%f”, &a, &b);

    c=max(a, b);

    printf(“Max is %d”, c);}

int max(float x, float y)

{    float z;

     z = x > y ? x : y;

     return z;}

函数max的返回值是什么数据类型(     
选项:
A:int

 
B:void
 
C:无返回值
 
D:float
 
答案: 【int
 

4、选择题:

以下叙述中正确的是(     
选项:
A:任何存储类的变量在未赋初值时,其值都是不确定的

 
B:局部交量说明为static存储类,其生存期将得到延长
 
C:全局变量说明为static存储类,其作用域将被扩大
 
D:形参可以使用的存储类说明符与局部变量完全相同
 
答案: 【局部交量说明为static存储类,其生存期将得到延长
 

5、选择题:

程序中对fun函数有如下说明

void *fun();此说明的含义是(      
选项:
A:fun函数的返回值是无值型的指针类型

 
B:fun函数的返回值可以是任意的数据类型
 
C:指针fun指向一个函数,该函数无返回值
 
D:fun函数无返回值
 
答案: 【fun函数的返回值是无值型的指针类型
 

第八章 章节测试

1、选择题:“&”称为取地址运算符
选项:
A:错
B:对
答案: 【
2、选择题:

以下程序段的输出结果是(       )
int *var,ab;

ab=100; 

          var=&ab;  

          ab=*var+10;

printf(“%d
“,*var);

选项:
A:110

 
B:90
 
C:100
 
D:不确定
 
答案: 【110
 

3、选择题:指针的基类型是指指针的类型
选项:
A:对
B:错
答案: 【
4、选择题:两个指针变量的值相等时,表明两个指针变量是(     
选项:
A:是两个空指针
 
B:指向同一内存章地址或者都为空
 
C:都没有指向
 
D:占据同一内存章
 
答案: 【指向同一内存章地址或者都为空
 

5、选择题:

若有定义:int x,*pb; 则以下正确的赋值表达式是(    )
选项:
A:pb=&x

 
B:*pb=*x
 
C:pb=x
 
D:*pb=&x
 
答案: 【pb=&x
 

第九章 章节测试

1、选择题:数组的下标从1开始
选项:
A:错
B:对
答案: 【
2、选择题:C语言调用函数中,当数组名做实参时,实参和形参之间的传递方式是按地址传递
选项:
A:错
B:对
答案: 【
3、选择题:

若有以下定义:

double  w[10];则w数组元素下标的上限是10
选项:
A:错
B:对
答案: 【

4、选择题:

若有如下定义,则(     )是对数组元素 int  a[10] , *p ;    p=a ;的正确引用
选项:
A:*&a[10]

 
B:a[11]
 
C:*(p+2)
 
D:p
 
答案: 【*(p+2)
 

5、选择题:

若有以下定义和语句,且0<=i<5,则(     )是对数组元素地址的正确表示

 int a[]={1,2,3,4,5},*p,i;   p=a;
选项:
A:&p

 
B:a++
 
C:&p[i]
 
D:&(a+i)
 
答案: 【&(a+i)
 

第十章 章节测试

1、选择题:已有定义: char a[]=”xyz”,b[]={‘x’,’y’,’z’};, 以下叙述中正确的是(      )
选项:
A:a 数组长度大于 b 数组长度
 
B:a数组长度小于 b 数组长度
 
C:数组 a 和 b 的长度相同
 
D:其余说法都不对
 
答案: 【a 数组长度大于 b 数组长度
 

2、选择题:

有以下程序

main()

{ char s[]=”ABCD”,*p;

    for(p=s+1;p<s+4;p++)printf(“%s”,p);}

程序运行后的输出结果是(     
选项:
A:ABCD

BCD

CD

D

 
B:B
C
D
C:BCD

CD

D
D:A

B

C

D

 
答案: 【BCD

CD

D

3、选择题:

有以下程序

  main()

  { char s[]=”159″,*p;

    p=s;

    printf(“%c”,*p++); 

 printf(“%c”,*p++);

  }

程序运行后的输出结果是(     
选项:
A:15

 
B:59
 
C:12
 
D:16
 
答案: 【15
 

4、选择题:

有以下程序

  main()

  { char a[7]=”a0a0″;int i,j;

    i=sizeof(a); j=strlen(a);

    printf(“%d %d
“,i,j);

  }

程序运行后的输出结果是(     
选项:
A:7 6

 
B:2 2
 
C:7 2
 
D:6 2
 
答案: 【7 2
 

5、选择题:

设有以下定义和语句   char str[20]=”Program”,*p;p=str;则以下叙述中正确的是(     
选项:
A:str与p的类型完全相同

 
B:str数组长度和p所指向的字符串长度相等
 
C:*p与str[0]中的值相等
 
D:数组str位中存放的内容和指针变量p中存放的内容相同
 
答案: 【*p与str[0]中的值相等
 

第十一章 章节测试

1、选择题:

已知学生记录描述为:

struct   student

{

int num;  

char name[20];  

struct  

{

int   year;

int   month;

int day;

}birth;

};

struct student s;

下列对生日”的正确赋值方式是(    
选项:
A:year=1980; month=6; day=11;

 
B:s.year=1980; s.month=6; s.day=11;
 
C:s.birth.year=1980; s.birth.month=6; s.birth.day=11;
 
D:birth.year=1980;birth.month=6;birth.day=11;
 
答案: 【s.birth.year=1980; s.birth.month=6; s.birth.day=11;
 

2、选择题:

若有以下说明和定义

typedef   int *INTEGER

INTEGER p,*q;以下叙述正确的是(     
选项:
A:p是基类型为int的指针变量

 
B:p是int型变量
 
C:q是基类型为int的指针变量
 
D:程序中可用INTEGER代替int类型名
 
答案: 【p是基类型为int的指针变量
 

3、选择题:

设有如下定义:

struct  sk

{

int a;

float b;

}data;

int *p;若要使p指向data中的a域,正确的赋值语句是(     
选项:
A:*p=data.a

 
B:p=data.a; 
 
C:p=&a;
 
D:p=&data.a;
 
答案: 【p=&data.a;
 

4、选择题:

有以下程序

struct   STU

{

char num[10];

float score[3];

}

main()

{

struct STU s[3]={

{“20021”,90,95,85},

{“20022”,95,80,75},

{“20023”,100,95,90}

},*p=s;

int i; float sum=0;

for(i=0;i<3;i++)

sum=sum+p->score[i];

printf(“%6.2f
“,sum);

}

程序运行后的输出结果是(      
选项:
A:260.00

 
B:285.00
 
C:280.00
 
D:270.00
 
答案: 【270.00
 

5、选择题:

下面程序的输出结果为(     

  struct   st

  {        int x;

          int *y;

  } *p;

  int  dt[4]={10,20,30,40};

  struct   st  

aa[4]={ 50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3] };

  main()

  {  

     p=aa;

     printf(“%d “, ++p->x );

     printf(“%d “, (++p)->x);

     printf(“%d
“, ++( *p->y));

   }
选项:
A:60  70   31

 
B:51  60   21
 
C:10  20   20
 
D:50  60   21
 
答案: 【51  60   21
 

第十二章 章节测试

1、选择题:

适宜采用inline定义函数情况是(      )
选项:
A:函数体含有递归语句

 
B:函数体含有循环语句
 
C:函数代码少、频繁调用
 
D:函数代码多、不常调用
 
答案: 【函数代码少、频繁调用
 

2、选择题:函数重载是指(    )
选项:
A:两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同
 
B:两个以上的函数取相同的函数名,并且函数的返回类型相同
 
C:两个以上的函数名字不同,但形参的个数或类型相同
 
D:两个或两个以上的函数取相同的函数名,但形参的个数或类型不同
 
答案: 【两个或两个以上的函数取相同的函数名,但形参的个数或类型不同
 

3、选择题:下列(    )的调用方式是引用调用
选项:
A:形参是引用,实参是变量
 
B:形参是指针,实参是地址值
 
C:形参和实参都是变量
 
D:形参是变量,实参是地址值
 
答案: 【形参是引用,实参是变量
 

4、选择题:以下正确的描述是(    
选项:
A:设置参数的默认值只能在定义函数时设置
 
B:设置参数的默认值时,应该全部参数都设置
 
C:设置参数的默认值时,应该设置右边的参数
 
D:不允许设置参数的默认值
 
答案: 【设置参数的默认值时,应该设置右边的参数
 

5、选择题:当执行cin语句时,从键盘上输入每个数据后必须接着输入一个>>,然后才能继续输入下一个数据
选项:
A:对
B:错
答案: 【

第十三章 章节测试

1、选择题:类的实例化是指(     )
选项:
A:创建类的对象
 
B:调用类的成员
 
C:指明具体类
 
D:定义类
 
答案: 【创建类的对象
 

2、选择题:

对于友元描述正确的是(       )
选项:
A:友元不是函数

 
B:友元是本类的成员函数
 
C:友元不是本类的成员函数
 
D:友元不能访问本类私有成员
 
答案: 【友元不是本类的成员函数
 

3、选择题:类中定义的成员默认访问属性为(      )
选项:
A:friend
 
B:private
 
C:protected
 
D:public 
 
答案: 【private
 

4、选择题:

下面说法正确的是(      )
选项:
A:定义类时必须写出该类的构造函数

 
B:主函数中的调用格式决定系统调用哪个构造函数
 
C:生成对象时调用析构函数
 
D:析构函数不可以重载
 
答案: 【主函数中的调用格式决定系统调用哪个构造函数
 

5、选择题:下述静态数据成员的特征中,(    )是错误的
选项:
A:静态数据成员要在类体外进行初始化
 
B:静态数据成员不是所有对象所共用的
 
C:引用静态数据成员时,要在静态数据成员名前加<类名>和作用域运算符
 
D:说明静态数据成员时前边要加修饰符static
 
答案: 【静态数据成员不是所有对象所共用的
 

6、选择题:静态成员函数直接访问类的数据成员(   )
选项:
A:只允许是静态数据成员
 
B:只允许是非静态数据成员
 
C:可允许是静态数据成员或非静态数据成员
 
D:是不允许的
 
答案: 【只允许是静态数据成员
 

第十四章 章节测试

1、选择题:

派生类的对象对它的哪一类基类成员是可以访问的(      
选项:
A:保护继承的基类的公有成员

 
B:公有继承的基类的公有成员
 
C:公有继承的基类的私有成员
 
D:公有继承的基类的保护成员
 
答案: 【公有继承的基类的公有成员
 

2、选择题:下面对派生类的描述中,错误的是(    )
选项:
A:派生类至少有一个基类
 
B:派生类中继承的基类成员的访问权限到派生类中保持不变
 
C:派生类的成员除了它自己的成员外,还包含了它的基类的成员
 
D:一个派生类可以作为另外一个派生类的基类
 
答案: 【派生类中继承的基类成员的访问权限到派生类中保持不变
 

3、选择题:当保护继承时,基类的(    )在派生类中成为保护成员,不能通过派生类的对象直接访问
选项:
A:公有成员和保护成员
 
B:私有成员
 
C:任何成员
 
D:公有成员和私有成员
 
答案: 【公有成员和保护成员
 

4、选择题:设置虚基类的目的是(     
选项:
A:提高运行效率
 
B:减少目标代码
 
C:简化程序
 
D:消除二义性
 
答案: 【消除二义性
 

5、选择题:多继承时,多个基类中的同名的成员在派生类中由于标识符不唯一而出现封装性
选项:
A:错
B:对
答案: 【

第十五章 章节测试

1、选择题:下列关于运算符重载的描述中,(    )是正确的
选项:
A:运算符重载可以改变操作数的个数
 
B:运算符重载可以改变结合性
 
C:运算符重载不可以改变语法结构
 
D:运算符重载可以改变优先级
 
答案: 【运算符重载不可以改变语法结构
 

2、选择题:下列运算符中,(    )运算符在C++中不能重载
选项:
A:
B:?
 
C:<=
 
D:+
 
答案: 【?
 

3、选择题:以下关于C++运算符重载的描述中,正确的是(   
选项:
A:运算符重载可以改变运算符的功能
 
B:运算符重载可创造新的运算符
 
C:任何运算符均可重载

 
D:运算符重载可以改变运算符的优先级

 
答案: 【运算符重载可以改变运算符的功能
 

4、选择题:

运算符重载可以改变运算符的功能
选项:
A:对
B:错
答案: 【

5、选择题:C++中,运算符的重载有两种实现方法,一种是通过成员函数实现,另一种则通过友元函数实现
选项:
A:对
B:错
答案: 【

第十六章 章节测试

1、选择题:

假设声明了以下的函数模板,错误的调用语句是(      )

template  <class  T>

T max(T x,T y){ retum(x>y)?x:y;}

并定义了int i; char c;
选项:
A:max((int)c, i) 

 
B:max(i, i)
 
C:max(i, c)
 
D:max(c,c)
 
答案: 【max(i, c)
 

2、选择题:定义函数模板中使用的参数类型标识符需使用下列哪组符号括起来(    
选项:
A:“” 
 
B:{}
 
C:() 
 
D:<>
 
答案: 【<>
 

3、选择题:下列有关模板和继承的叙述正确的是      
选项:
A:相同类模板的不同实例一般没有联系,而派生类各种类之间有兄弟父子等关系
 
B:模板和继承都可以派生出一个类系
C:从动态性能看,继承类系比模板类系具有更多的动态特性
 
D:从类系的成员看,模板类系的成员比继承类系的成员较为稳定
 
答案: 【相同类模板的不同实例一般没有联系,而派生类各种类之间有兄弟父子等关系
 

4、选择题:下列叙述错误的是(     )
选项:
A:catch(…)语句可以放在catch语句组的中间
 
B:catch(…)语句可捕获所有类型的异常
 
C:程序中try语句与catch语句是一个整体,缺一不可
 
D:一个try语句可以有多个catch语句
 
答案: 【catch(…)语句可以放在catch语句组的中间
 

5、选择题:下列叙述错误的是(    )
选项:
A:catch语句捕获一个异常后,可能不能完全处理异常
B:throw语句抛出的异常可以不被捕获
C:一个程序中可以有try语句而没有throw语句
D:try块中抛出异常后,程序最后回到try块中继续执行后面的语句
答案: 【try块中抛出异常后,程序最后回到try块中继续执行后面的语句】[/$]

《2021知到答案 C-C++程序设计 智慧树网课章节测试答案》由本站整理发布,如若转载,请注明出处:http://www.tiku56.com/zhihuishu/271728.html