2021知到答案 图解C编程 智慧树网课章节测试答案

第一章 章节测试

1、选择题:计算机唯一能直接识别的语言是(     )。
选项:
A:编译语言
B:汇编语言
C:高级语言
D:机器语言
答案: 【机器语言
2、选择题:下列叙述中错误的是(        )。
选项:
A:计算机不能直接执行用C语言编写的源程序
B:后缀为.obj和.exe的二进制文件都可以直接运行
C:后缀为.obj的文件,经链接后生成的后缀为.exe的文件是一个二进制文件
D:C程序被编译后,生成的后缀为.obj的文件是一个二进制文件
答案: 【后缀为.obj和.exe的二进制文件都可以直接运行
3、选择题:计算机选择二进制的一个主要原因是(  )。
选项:
A:人不使用二进制
B:
容易使用物理器件实现
C:容易计算和计算速度快
D:它和十进制转换非常容易
答案: 【
容易使用物理器件实现

4、选择题:计算机的基本功能就是(  )。
选项:
A:程序、数据、存储、输人和输出
 
B:软件、处理、硬件、数据和输出
C:输入、编码、程序、控制、输出
 
D:
输入、存储、处理、控制和输出
答案: 【
输入、存储、处理、控制和输出

5、选择题:

以下叙述错误的是(    )。
选项:
A:计算机程序的算法就是解决“做什么”和“怎么做”的选择题
B:

算法和程序原则上没有区别
C:结构化程序设计的基本理念是:将一个较大的选择题细分成若干个较小选择题的组合
D:计算机程序的执行过程实际上是对程序所表达的数据进行处理的过程
答案: 【
算法和程序原则上没有区别

6、选择题:在计算机内一切信息的存取、传输和处理都是以(     )形式进行的。
选项:
A:十进制
B:ASCII
 
C:
二进制
D:十六进制
答案: 【
二进制

7、选择题:

C语言程序经过编译以后生成的文件名的后缀为(   )。
选项:
A:.exe
B:.c

 
C:.obj
D:.cpp
答案: 【.obj
8、选择题:

以下说法错误的是(  )。
选项:
A:算法可以表面上没有输入。
B:程序中的指令必须是机器可执行的,而算法中的指令则无此限制。
C:在任何条件下,算法都只有一条执行路径。
D:

所有的程序都满足有穷性
答案: 【
所有的程序都满足有穷性

9、选择题:以下说法错误的是(   )。
选项:
A:算法的每一个步骤都应当能有效执行。
B:
算法也可以没有输出
 
C:算法代表了对选择题的解,而程序则是算法在计算机中的特定实现。
D:算法中的每个步骤都能在有限时间内完成。
答案: 【
算法也可以没有输出
 

10、选择题:

下列关于C语言的描述正确的是(  )
选项:
A:低级语言 面向过程

 
B:
高级语言 面向过程
C:高级语言 面向对象
D:低级语言 面向对象
答案: 【
高级语言 面向过程

第二章 章节测试

1、选择题:C语言规定:在一个源程序中,main函数的位置(     )。
选项:
A:可以放在程序的任何位置,但在执行程序时是从main函数开始执行的
B:可以放在程序的任何位置,但在执行程序时是从程序的开头执行
C:必须放在程序的后面
D:必须放在程序的开头
答案: 【可以放在程序的任何位置,但在执行程序时是从main函数开始执行的】[$]
2、选择题:

以下(      )不是C语言提供的关键字。
选项:
A:scanf

 
B:return
 
C:printf
 
D:mian
 
答案: 【mian
 

3、选择题:C语言中最简单的数据类型包括 (        )。
选项:
A:整型、字符型、逻辑型
B:整型、浮点型、字符型
C:整型、浮点型、逻辑型、字符型
D:整型、浮点型、逻辑型
答案: 【整型、浮点型、字符型
4、选择题:C语言中,下列标识符合法的是(     )。
选项:
A:test.c
B:f(x)
C:retire_age
D:12-a
答案: 【retire_age
5、选择题:C语言中运算对象必须是整型的运算符是(     )。
选项:
A:%
B:=
C:/
D:+
答案: 【%
6、选择题:下列关于C语言用户标识符的叙述中正确的是(   )。
选项:
A:用户标识符中可以出现下划线和和数字,它们都可以放在用户标识符的开头
B:用户标识符中可以出现下划线,但不可以放在用户标识符的开头
C:用户标识符中可以出现下划线和中划线(减号)
D:用户标识符中不可以出现中划线,但可以出现下划线
答案: 【用户标识符中不可以出现中划线,但可以出现下划线
7、选择题:图片.png
选项:
A:(5*a*b)/(c*d)
B:5*a*b/c*d
C:5*a*b/c/d
D:a*b/c/d*5
答案: 【5*a*b/c*d
8、选择题:在C语言中,函数体是由 (    )括起来
选项:
A:{ }
B:[ ]
C:< >
D:( )
答案: 【{ }
9、选择题:以下哪一个是C语言中的回车换行符 (  )
选项:
A:t
B:b
C:v
D:n
答案: 【n
10、选择题:下面说法中正确的是(  )
选项:
A:C语言程序书写时,每行必须有分号
B:C语言程序书写时,一个语句可分成几行书写
C:C语言程序书写时,不区分大小写字母
D:C语言程序书写时,一行只能写一条语句
答案: 【C语言程序书写时,一个语句可分成几行书写

第三章 章节测试

1、选择题:C语言中,关系表达式和逻辑表达式的值是(    )。
选项:
A:0或1
B:T或F
C:True或false
D:真或假
答案: 【0或1
2、选择题:设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是(    )
选项:
A:!(a<=10)&&!(a>=15)
B:a==11||a==12||a==13||a==14
C:10<a<15
D:a>10&&a<15
答案: 【10<a<15
3、选择题:如果int a=3,b=4;则条件表达式a<b? a:b的值是(    )
选项:
A:0
B:1
C:4
D:3
答案: 【3
4、选择题:逻辑运算符两侧运算对象的数据类型(    )
选项:
A:只能是0或非0正数
B:可以是任何类型的数据
C:只能是0或1
D:只能是整型或字符型数据
答案: 【可以是任何类型的数据
5、选择题:在嵌套使用if语句时,C语言规定else总是(   )
选项:
A:和之前与其最近的且不带else的if配对
B:和之前与其最近的if配对
C:和之前的第1个if配对
D:和之前与其具有相同缩进位置的if配对
答案: 【和之前与其最近的且不带else的if配对
6、选择题:多分支选择语句switch(表达式)中的“表达式”不容许(    )
选项:
A:浮点型变量
B:表达式
C:字符型变量
D:整型变量
答案: 【浮点型变量
7、选择题:C 语言中,逻辑”真”等价于 (  )。
选项:
A:非零的数
B:大于零的整数
C:非零的整数
D:大于零的数
答案: 【非零的数
8、选择题:下列关系表达式中结果为假的是(  )。
选项:
A:3<=7
B:y=2+2
C:(a=2*2)==2
D:0!=1
答案: 【(a=2*2)==2
9、选择题:

以下程序段的运行结果是(    )。

int s=15;

switch(s/4)

{case 1:   printf(“One “);

case 2:   printf(“Two “);

case 3:   printf(“Three “);

default:   printf(“Over “);}
选项:
A:Three Over
B:One Two Three Over
C:Over
D:Three
答案: 【Three Over

10、选择题:在C语言中,紧跟在关键字if后一对圆括号里的表达式(  )
选项:
A:只能用逻辑表达式
B:只能用逻辑表达式或关系表达式
C:可以是任意表达式
D:只能用关系表达式
答案: 【可以是任意表达式

第四章 章节测试

1、选择题:C语言中用于结构化程序设计的3种基本结构是(    )
选项:
A:for、while、do…while
B:顺序结构、选择结构、循环结构
C:if、switch、break
D:if、for、continue
答案: 【顺序结构、选择结构、循环结构
2、选择题:循环结构的特点是(    )
选项:
A:以上都对
B:从上至下,逐个执行
C:根据判断条件,执行其中一个分支
D:满足条件时反复执行循环体
答案: 【满足条件时反复执行循环体
3、选择题:以下for语句,书写正确的是(   )。
选项:
A:i=1;for(i<5;i++)
B:for(i=1,i<5,)i++
C:for(i=1,i<5,i++)
D:for(i=1;i<5;i=i+2)
答案: 【for(i=1;i<5;i=i+2)
4、选择题:下列关于for循环的描述,正确的是(  )
选项:
A:在for循环中,不能用break语句跳出循环
B:for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
C:for循环只能用于循环次数已经确定的情况
D:for循环是先执行循环体语句,后判断表达式
答案: 【for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
5、选择题:以下说法正确的是(  )
选项:
A:用do-while语句构成的循环,在while后的表达式为非零时结束循环
B:用do-while语句构成的循环,在while后的表达式为零时结束循环
C:do-while语句构成的循环只能用break语句退出
D:do-while语句构成的循环不能用其他语句构成的循环来代替
答案: 【用do-while语句构成的循环,在while后的表达式为零时结束循环
6、选择题:在循环语句的循环体中,break语句的作用是(  )。
选项:
A:暂停程序的运行
B:提前结束循环,接着执行该循环后续的语句
C:结束本次循环;
D:继续执行break语句之后的循环体各语句;
答案: 【提前结束循环,接着执行该循环后续的语句
7、选择题:以下语句正确的是(     )。
选项:
A:for循环表达式的括号内的3个表达式均不可以省略。
B:用1作while循环的判断条件,则循环一次也不执行
C:程序有死循环的时候,上机编译不能通过
D:所有类型的循环都可以进行嵌套使用
答案: 【所有类型的循环都可以进行嵌套使用
8、选择题:下列叙述中正确的是(     )。
选项:
A:在循环体内使用break语句和continue语句的作用相同
B:continue语句的作用是使程序的执行流程跳出包含它的所有循环
C:break语句只能用在循环体和switch语句内
D:break语句只能用于switch语句中
答案: 【break语句只能用在循环体和switch语句内
9、选择题:

有以下程序段

int  k=0

while(k) k++;

则while循环体执行的次数是(    )。
选项:
A:无限次
B:一次也不执行
C:执行一次
D:有语法错,不能执行
答案: 【一次也不执行

10、选择题:

以下程序段的输出结果是()

int i,s=0;

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

printf(“%dn”,s);
选项:
A:自然数1~10的累加和
B:自然数1~10中的偶数之和
C:自然数1~9中的奇数之和
D:自然数1~9的累加和
答案: 【自然数1~9中的奇数之和

第五章 章节测试

1、选择题:C语言中,以下关于数组的描述正确的是(   )
选项:
A:数组大小固定,所有元素的类型必须相同
B:数组大小可变,可以有不同类型的数组元素
C:数组大小固定,但是可以有不同类型的数组元素
D:数组大小可变,但是所有数组元素的类型必须相同
答案: 【数组大小固定,所有元素的类型必须相同
2、选择题:若有定义int score[10];,则对score数组中的元素的正确引用是(    )
选项:
A:score[0]
B:score[10]
C:score(7)
D:score[6.0]
答案: 【score[0]
3、选择题:以下能正确定义一维数组的选项是(   )
选项:
A:

#define  N 100

int  num [N];

B:int   num [ ];
C:int  N=100,num[N];
D:int  num[0..100];
答案: 【

#define  N 100

int  num [N];


4、选择题:C语言中,下面能正确定义一维数组的选项是(    )
选项:
A:int a[N]={1,2,3} ;
B:int a[5]={0,1,2,3,4,5};
C:int a[5]={3} ;
D:int a[5 ]=5;
答案: 【int a[5]={3} ;
5、选择题:下述对C语言字符数组的描述中错误的是(   )
选项:
A:字符数组可以存放字符串
B:可以在赋值语句中通过赋值运算符”=”对字符数组整体赋值
C:不可以用关系运算符对字符数组中的字符串进行比较
D:字符数组中的字符串可以整体输入、输出
答案: 【可以在赋值语句中通过赋值运算符”=”对字符数组整体赋值
6、选择题:已知int a[3][4];则对数组元素引用正确的是(    )
选项:
A:a[3][3]
B:a[2][4]
C:a[0][4]
D:a[2][0]
答案: 【a[2][0]
7、选择题:

对以下定义语句的正确理解是 (    )

int a[10]={6,7,8,9,10};
选项:
A:将6,7,8,9,10依次赋给a[0]~a[4]
B:因为数组长度与初值的个数不相同,所以此初始化语句不正确
C:将6,7,8,9,10依次赋给a[1]~a[5]
D:将6,7,8,9,10依次赋给a[6]~a[10]
答案: 【将6,7,8,9,10依次赋给a[0]~a[4]

8、选择题:若有初始化语句:int a[3][4]={0];,则下面正确的叙述是(  )
选项:
A:此初始化语句不正确
B:只有元素a[0][0]可得到初值0
C:数组a中各元素都可得到初值,a[0][0]初值0,其他元素初值为随机数
D:数组a中每个元素都可得到初值0
答案: 【数组a中每个元素都可得到初值0
9、选择题:下面是对数组s的初始化,其中错误的语句是(  )
选项:
A:char s[5]=” “;
B:char s[5]=”Frank”;
C:char s[5]={“abc”};
D:char s[5]={‘a’,’b’,’c’};
答案: 【char s[5]=”Frank”;
10、选择题:已有定义:char a[]=”boy”,b[]={‘b’,’o’,’y’};,则以下叙述中正确的是(     )
选项:
A:上述说法都不对
B:a数组长度小于b数组长度
C:数组a和数组b长度相同
D:a数组长度大于b数组长度
答案: 【a数组长度大于b数组长度

第六章 章节测试

1、选择题:C语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式是(    )
选项:
A:由用户指定传递方式
B:由实参传给形参,再由形参反馈给实参
C:单向值传递
D:地址传递
答案: 【单向值传递
2、选择题:关于实参和形参,以下错误的说法是(    )
选项:
A:如果形参和实参的类型不一致,以形参类型为准
B:实参可以是常量,变量或表达式
C:实参可以为任意类型
D:形参可以是常量,变量或表达式
答案: 【实参可以为任意类型
3、选择题:函数在定义时,若省略函数类型说明符,则该函数值的类型为(    )
选项:
A:int
B:void
C:float
D:double
答案: 【int
4、选择题:如果在一个函数中的复合语句中定义了一个变量,则该变量(    )
选项:
A:为非法变量
B:只在该复合语句内有效
C:在本程序范围内有效
D:在该函数中有效
答案: 【只在该复合语句内有效
5、选择题:以下对C语言函数的有关描述中,正确的是(    )
选项:
A:在C中调用函数时,只能把实参的值传给形参,不能把形参的值送给实参
B:C程序中有调用关系的所有函数必须放在同一个源程序文件中
C:函数必须有返回值,否则不能使用函数
D:C函数既可以嵌套定义又可以递归调用
答案: 【在C中调用函数时,只能把实参的值传给形参,不能把形参的值送给实参
6、选择题:若函数调用时的实参为普通变量,下列关于函数形参和实参的叙述中正确的是(    )
选项:
A:函数的实参和其对应的形参共占同一存储章
B:形参只是形式上的存在,不占用具体存储章
C:同名的实参和形参占同一存储章
D:函数的形参和实参分别占用不同的存储章
答案: 【函数的形参和实参分别占用不同的存储章
7、选择题:关于函数相关内容,以下叙述中错误的是(   )
选项:
A:用户定义的函数中可以没有return语句
B:用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值
C:用户定义的函数中若没有return语句,则应当定义函数为void类型
D:函数的return语句中可以没有表达式
答案: 【用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值
8、选择题:以下叙述中正确的是(   )
选项:
A:未在定义语句中赋初值的auto变量和static变量的初值都是随机值
B:函数的形参都属于全局变量
C:静态(static)变量的生存期贯穿于整个程序的运行期间
D:全局变量的作用域一定比局部变量的作用域范围大
答案: 【静态(static)变量的生存期贯穿于整个程序的运行期间
9、选择题:以下说法中正确的是(  )
选项:
A:形式参数是全局变量
B:在函数内部定义的变量只在本函数范围内有效
C:全局变量与局部变量同名时,局部变量不起作用
D:主函数中定义的变量在所有的函数中有效
答案: 【在函数内部定义的变量只在本函数范围内有效
10、选择题:若程序中定义了以下函数,并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是(  )。

double  myadd(double a,double b)

{  return (a+b);  }

选项:
A:double myadd(double a,b);
B:double myadd(double,double);
C:double myadd(double b,double a);
D:double myadd(double x,double y);
答案: 【double myadd(double a,b);

第七章 章节测试

1、选择题:变量的指针,其含义是指该变量的(    )
选项:
A:
B:地址
C:
D:一个标记
答案: 【地址
2、选择题:设已有定义float x;,则以下对指针变量p进行定义其赋初值的语句中正确的是(    )
选项:
A:float *p=&x;
B:float p=&x;
C:int *p=(int)x;
D:float *p=1024;
答案: 【float *p=&x;
3、选择题:若用数组名作为函数调用的实参,传递给形参的是(    )
选项:
A:数组中全部元素的值
B:数组中第一个元素的值
C:数组元素的个数
D:数组的首地址
答案: 【数组的首地址
4、选择题:已有定义:int i,a[10],*p; , 则合法的赋值语句是(    )
选项:
A:p=a+2;
B:p=i;
C:p=a[5];
D:p=a[2]+2;
答案: 【p=a+2;
5、选择题:C语言的以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是(    )
选项:
A:char s[10]= “hello “;
B:char t[]=”hello”,*s=t;
C:char s[10];  strcpy(s, “hello”);
D:char s[10];  s= “hello”;
答案: 【char s[10];  s= “hello”;
6、选择题:

以下程序段执行后输出结果是(    )。

char *p[10]={ “abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”};

printf(“%dn”,strlen(p[4]));
选项:
A:4
B:5
C:3
D:2
答案: 【2

7、选择题:

已定义以下函数,则函数的功能是(    )。

fun(char  *p2,  char  *p1)

{   while((*p2=*p1)!=’′)

{  p1++;  p2++;   } }
选项:
A:将p1 所指字符串的地址赋给指针 p2
B:将p1所指字符串复制到p2所指内存空间
C:检查p1和p2两个指针所指字符串中是否有‘’
D:对p1和p2两个指针所指字符串进行比较
答案: 【将p1所指字符串复制到p2所指内存空间

8、选择题:设有定义int *ptr, x, array[5]={5,4,3,2,1}; ptr=array; 则能使x的值为3的语句(  )
选项:
A:x=array[3];
B:x=*(array+3);
C:x=*(ptr+2)
D:array+=2; x=*array;
答案: 【x=*(ptr+2)
9、选择题:两个指针变量不可以(   )。
选项:
A:相加
B:比较
C:指向同一个地址
D:相减
答案: 【相加
10、选择题:若有定义int (*p)[5];,则下列说法正确的是(  )。
选项:
A:定义了基本类型为int的具有5个元素的指针数组p
B:定义了一个名为*p、具有5个元素的整型数组
C:定义了基本类型为int的5个指针变量。
D:定义了一个名为p的行指针变量,它可以指向每行有5个整数元素的二维数组
答案: 【定义了一个名为p的行指针变量,它可以指向每行有5个整数元素的二维数组

第八章 章节测试

1、选择题:下列关于结构体的阐述错误的是(     )。
选项:
A:结构体数据类型可以直接使用
B:结构体定义可以在函数内部,也可在函数外部
C:结构体成员可以是普通变量,也可以是数组,指针及结构体变量等
D:结构体成员的名字可以同程序中的其他变量名相同
答案: 【结构体数据类型可以直接使用
2、选择题:当说明一个结构体变量时,系统分配给它的内存是(     )。
选项:
A:结构中最后一个成员所需内存量
B:成员中占内存量最大者所需的容量
C:各成员所需内存量的总和
D:结构中第一个成员所需内存量
答案: 【各成员所需内存量的总和
3、选择题:C语言结构体类型变量在程序执行期间(     )
选项:
A:所有成员一直驻留在内存中
B:只有一个成员驻留在内存中
C:没有成员驻留在内存中
D:部分用到的成员驻留在内存中
答案: 【所有成员一直驻留在内存中
4、选择题:

有如下定义

struct  student

{  int num;

float score;

}stu;

则下面叙述中错误的是(     )。
选项:
A:struct是结构体类型的关键字
B:num和score都是结构体成员名
C:stu是用户定义的结构体类型
D:struct student是用户定义的结构体类型
答案: 【stu是用户定义的结构体类型

5、选择题:下列关于typedef的叙述错误的是(     )。
选项:
A:用typedef为类型说明一个新名,通常可以增加程序的可读性
B:typedef只是将已存在的类型用一个新的名字来代表
C:用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名
D:用typedef可以增加新类型
答案: 【用typedef可以增加新类型
6、选择题:在C语法中,下面结构体的定义语句中,错误的是(    )
选项:
A:struct point {int x;int y;int z;};struct point a;
B:struct {int x;int y;int z;} a;
C:strunt point {int x;int y;int z;} a;
D:struct {int x;int y;int z;} point a;
答案: 【struct {int x;int y;int z;} point a;
7、选择题:

以下对结构变量stu1中成员age的非法引用是(    )。

struct student

{    int age

int num

}stu1,*p

p=&stu1
选项:
A:p->age
B:student.age
C:stu1.age
D:.(*p).age
答案: 【student.age

8、选择题:

若有以下说明语句,则下面的叙述错误的是()。

        struct  date

         { int year;

           int month;

           int day;          }brithday;
选项:
A:year,day 都是结构体成员名
B:brithday是用户定义的结构体类型名
C:struct是声明结构体类型时用的关键字
D:struct date 是用户定义的结构体类型名
答案: 【brithday是用户定义的结构体类型名

9、选择题:下面关于结构的说法错误的是()
选项:
A:结构中成员的数据类型可以是另一个已经定义的结构
B:在定义结构时,可以为成员设置默认值
C:结构中可设定若干个不同数据类型的成员
D:结构是由用户自定义的一种数据类型
答案: 【在定义结构时,可以为成员设置默认值
10、选择题:当说明一个共用体变量时,系统分配给它的内存是(  )
选项:
A:各成员所需内存量的总和
B:第一个成员所需内存量
C:最后一个成员所需内存量
D:成员中占内存量最大者所需的容量
答案: 【成员中占内存量最大者所需的容量

第九章 章节测试

1、选择题:若执行fopen函数时发生错误,则函数的返回值是(    )。
选项:
A:EOF
B:1
C:0
D:地址值
答案: 【0
2、选择题:函数调用语句:fseek(fp,-20L,2)的含义是(    )。
选项:
A:将文件位置指针从当前位置向后移动20个字节
B:将文件位置指针移到离当前位置20个字节处
C:将文件位置指针移到距离文件头20个字节处
D:将文件位置指针从文件末尾处前移20个字节
答案: 【将文件位置指针从文件末尾处前移20个字节
3、选择题:以二进制只读方式打开一个已有的文本文件file1,正确调用fopen函数的方式是(    )
选项:
A:fp=fopen(“file1″,”rb+”);
B:fp=fopen(“file1″,”r+”);
C:fp=fopen(“file1″,”r”);
D:fp=fopen(“file1″,”rb”);
答案: 【fp=fopen(“file1″,”rb”);
4、选择题:C语言中库函数fgets(str,n,fp)的功能是()。
选项:
A:从文件fp中读取长度不超过n-1的字符串存入str指向的内存
B:从str读取至多n个字符到文件fp。
C:从文件fp中读取n个字符串存入str指向的内存。
D:从文件fp中读取长度n的字符串存入str指向的内存。
答案: 【从文件fp中读取长度不超过n-1的字符串存入str指向的内存
5、选择题:

于以下一段程序的理解错误的是(   )。

    FILE *fp;

    if((fp=fopen(“D:\test.txt”,”w”))==NULL)

       {    printf(“Can not open the file!n”);

            exit(0);   

}
选项:
A:FILE *fp;表示定义一个文件指针fp
B:if语句表示调用fopen函数以只读的形式打开D盘根目录下的文件test.txt
C: fopen函数打开文件失败后的返回值为NULL

@font-face { font-family: Helvetica;}@font-face { font-family: 宋体;}@font-face { font-family: “Cambria Math”;}@font-face { font-family: Calibri;}@font-face { font-family: “@宋体”;}p.MsoNormal, li.MsoNormal, div.MsoNormal { margin: 0cm 0cm 0.0001pt; text-align: justify; font-size: 10.5pt; font-family: “Calibri”, sans-serif; }.MsoChpDefault { font-family: “Calibri”, sans-serif; }div.WordSection1 { }

D:通过调用fopen函数,使文件指针fp指向文件test.txt在内存中的缓冲区
答案: 【if语句表示调用fopen函数以只读的形式打开D盘根目录下的文件test.txt
6、选择题:下列关于C语言文件的叙述中正确的是(   )。
选项:
A:文件由一系列数据依次排列组成,只能构成二进制文件
B:文件由字符序列组成,其类型只能是文本文件
C:文件由结构序列组成,可以构成二进制文件或文本文件
D:文件由数据序列组成,可以构成二进制文件或文本文件
答案: 【文件由数据序列组成,可以构成二进制文件或文本文件

第十章 章节测试

1、选择题:下面关于void * malloc (unsigned int size)函数描述错误的(   )。
选项:
A:若分配不成功则返回NULL
B:malloc()函数用来动态分配内存,所分配的空间长度为size
C:函数的返回值为指向该区域起始地址的指针
D:malloc函数申请的空间若不释放,也有可能被其他程序申请
答案: 【malloc函数申请的空间若不释放,也有可能被其他程序申请
2、选择题:

有如下定义:

struct node

{  int data;

  struct node *next; 

}a,b,c;

下列哪个答案可以将变量a,b,c在内存中的位置连接起来(    )。
选项:
A:a.next=&b;  b.next=&c;
B:a.data=&b; b.data=&c;
C:a.next=b.next=c.next;
D:a=b=c;
答案: 【a.next=&b;  b.next=&c;

3、选择题:

有以下结构体说明和变量的定义,且指针p指向结点a,指针q指向结点b。则把结点b连接到结点a之后的语句是(   )  。

struct node {

int data;

struct node *next;

}struct node a,b,*p=&a,*q=&b;
选项:
A:a.next=q;
B:p->next=b;
C:p.next=&b;
D:(*p)->next=q;
答案: 【a.next=q;

4、选择题:下列关于线性链表的叙述中,正确的是(  )
选项:
A:进行插入和删除时,不需要移动链表中的元素
B:以上三种说法都不对
C:各数据结点的存储空间必须连续
D:各数据结点的存储顺序与逻辑顺序必须要一致
答案: 【进行插入和删除时,不需要移动链表中的元素
5、选择题:

有以下结构体说明和变量定义:

struct node{

int data;

struct *next;}*p1,*q,*p2;

下面的链表中,在p1p2之间插入一个元素q,正确的操作是(  图片.png
选项:
A:p1->next=q;  q->next=p2;
B:p1->next=q;  q->next=NULL;
C:p1->next=p2;p2->next=q;
D:p2->next=q;  q->next=NULL;
答案: 【p1->next=q;  q->next=p2;

6、选择题:

有以下结构体说明和变量定义:

struct node{

int data;

struct *next;}*p1,*q,*p2;

下面的链表中,在p1p2之间删除一个元素q,正确的操作是(  图片.png
选项:
A:p1->next=q->next;
B:p1->netx=p2->next;
C:p1->next=p2,p2->next=q;
D:p1->next=q;  q->next=p2;
答案: 【p1->next=q->next;

7、选择题:现有以下结构体说明和变量定义,如图所示,指针p、q、r分别指定一个链表中连续的3个结点。struct node  {       double data;       struct node*next;}*p, *q, *r;图片.png
选项:
A:q->next=p;
B:p->next= q->next ;
C:p=r;
D:q->next=r->next;
答案: 【p->next= q->next ;
8、选择题:在单链表指针为p的结点之后插入指针为s的结点,正确的操作是(     )。
选项:
A: s->next=p->next;p->next=s;
B:p->next=s;s->next=p->next; 
C:p->next=s;p->next=s->next;
D:p->next=s->next;p->next=s;
答案: 【 s->next=p->next;p->next=s;
9、选择题:若已建立下面的链表结构,指针p、s分别指向图中所示节点,则不能将s所指的节点插入到链表末尾的语句组是( )。图片.png
选项:
A:p=p->next;  s->next=p;  p->next=s;
B: p=(*p).next;      (*s).next=(*p).next;    (*p).next=s;
C:p=p->next;  s->next=p->next;    p->next=s;
D:s->next=NULL;  p=p->next;  p->next=s;
答案: 【p=p->next;  s->next=p;  p->next=s;
10、选择题:有如下定义:

struct node   {  int data;                  struct node *next;   }a,b,c;图片.png
选项:
A:a.next=&b;  b.next=&c;
B:a.next=b.next;
C:a=c;
D:a.next =c.next;
答案: 【a.next=b.next;】[/$]

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