图解C编程知到智慧树章节测试课后答案2024年秋宁波大学_第1页
图解C编程知到智慧树章节测试课后答案2024年秋宁波大学_第2页
图解C编程知到智慧树章节测试课后答案2024年秋宁波大学_第3页
图解C编程知到智慧树章节测试课后答案2024年秋宁波大学_第4页
图解C编程知到智慧树章节测试课后答案2024年秋宁波大学_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

图解C编程知到智慧树章节测试课后答案2024年秋宁波大学第一章单元测试

计算机的基本功能就是()。

A:程序、数据、存储、输入和输出B:软件、处理、硬件、数据和输出C:输入、存储、处理、控制和输出D:输入、编码、程序、控制、输出

答案:输入、存储、处理、控制和输出以下说法错误的是(

)。

A:算法代表了对问题的解,而程序则是算法在计算机中的特定实现。B:算法中的每个步骤都能在有限时间内完成。C:算法也可以没有输出D:算法的每一个步骤都应当能有效执行。

答案:算法也可以没有输出以下说法错误的是(

)。

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

答案:所有的程序都满足有穷性。以下叙述错误的是(

)。

A:算法和程序原则上没有区别B:计算机程序的执行过程实际上是对程序所表达的数据进行处理的过程C:计算机程序的算法就是解决“做什么”和“怎么做”的问题D:结构化程序设计的基本理念是:将一个较大的问题细分成若干个较小问题的组合

答案:算法和程序原则上没有区别计算机唯一能直接识别的语言是(

)。

A:汇编语言B:编译语言

C:机器语言D:高级语言

答案:机器语言在计算机内一切信息的存取、传输和处理都是以(

)形式进行的。

A:十进制B:ASCII码C:十六进制D:二进制

答案:二进制计算机选择二进制的一个主要原因是(

)。

A:它和十进制转换非常容易B:容易使用物理器件实现C:容易计算和计算速度快D:人不使用二进制

答案:容易使用物理器件实现下列叙述中错误的是(

)。

A:后缀为.obj的文件,经链接后生成的后缀为.exe的文件是一个二进制文件B:C程序被编译后,生成的后缀为.obj的文件是一个二进制文件C:后缀为.obj和.exe的二进制文件都可以直接运行D:计算机不能直接执行用C语言编写的源程序

答案:后缀为.obj和.exe的二进制文件都可以直接运行下列关于C语言的描述正确的是(

A:低级语言面向对象B:低级语言面向过程

C:高级语言面向过程D:高级语言面向对象

答案:高级语言面向过程C语言程序经过编译以后生成的文件名的后缀为(

)。

A:.exeB:.cC:.objD:.cpp

答案:.obj

第二章单元测试

C语言规定:在一个源程序中,main函数的位置(

)。

A:必须放在程序的开头B:可以放在程序的任何位置,但在执行程序时是从程序的开头执行C:可以放在程序的任何位置,但在执行程序时是从main函数开始执行的

D:必须放在程序的后面

答案:可以放在程序的任何位置,但在执行程序时是从main函数开始执行的

以下(

)不是C语言提供的保留字或特定标识符。

A:printfB:returnC:mianD:scanf

答案:mianC语言中最简单的数据类型包括(

)。

A:整型、浮点型、逻辑型、字符型B:整型、浮点型、逻辑型C:整型、字符型、逻辑型D:整型、浮点型、字符型

答案:整型、浮点型、字符型C语言中,下列标识符合法的是(

)。

A:f(x)B:12-aC:retire_ageD:test.c

答案:retire_ageC语言中运算对象必须是整型的运算符是(

)。

A:/B:%C:=D:+

答案:%下列关于C语言用户标识符的叙述中正确的是(

)。

A:用户标识符中可以出现下划线和和数字,它们都可以放在用户标识符的开头B:用户标识符中不可以出现中划线,但可以出现下划线C:用户标识符中可以出现下划线和中划线(减号)D:用户标识符中可以出现下划线,但不可以放在用户标识符的开头

答案:用户标识符中不可以出现中划线,但可以出现下划线

A:5*a*b/c/dB:5*a*b/c*dC:(5*a*b)/(c*d)D:a*b/c/d*5

答案:5*a*b/c*d在C语言中,函数体是由

(

)括起来

A:()B:<>C:[]D:{}

答案:{}以下哪一个是C语言中的回车换行符

(

)

A:\bB:\nC:\vD:\t

答案:\n下面说法中正确的是(

A:C语言程序书写时,不区分大小写字母B:C语言程序书写时,一行只能写一条语句C:C语言程序书写时,一个语句可分成几行书写D:C语言程序书写时,每行必须有分号

答案:C语言程序书写时,一个语句可分成几行书写

第三章单元测试

C语言中,关系表达式和逻辑表达式的值是(

)。

A:真或假B:True或falseC:0或1D:T或F

答案:0或1设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是(

A:a==11||a==12||a==13||a==14B:!(a<=10)&&!(a>=15)C:10<a<15D:a>10&&a<15

答案:10<a<15如果inta=3,b=4;则条件表达式a<b?a:b的值是(

)

A:3B:0C:1D:4

答案:3逻辑运算符两侧运算对象的数据类型(

A:只能是整型或字符型数据B:只能是0或1C:只能是0或非0正数D:可以是任何类型的数据

答案:可以是任何类型的数据在嵌套使用if语句时,C语言规定else总是(

A:和之前与其最近的if配对B:和之前的第1个if配对C:和之前与其具有相同缩进位置的if配对D:和之前与其最近的且不带else的if配对

答案:和之前与其最近的且不带else的if配对多分支选择语句switch(表达式)中的“表达式”不容许(

A:表达式B:浮点型变量C:整型变量D:字符型变量

答案:浮点型变量C语言中,逻辑"真"等价于(

)。

A:大于零的整数B:非零的整数C:非零的数D:大于零的数

答案:非零的数下列关系表达式中结果为假的是(

)。

A:y=2+2B:0!=1C:3<=7D:(a=2*2)==2

答案:(a=2*2)==2以下程序段的运行结果是(

)。ints=15;switch(s/4){case1:

printf("One");case2:

printf("Two");case3:

printf("Three");default:

printf("Over");}

A:OneTwoThreeOverB:ThreeOverC:OverD:Three

答案:ThreeOver在C语言中,紧跟在关键字if后一对圆括号里的表达式(

A:可以是任意表达式B:只能用逻辑表达式C:只能用关系表达式D:只能用逻辑表达式或关系表达式

答案:可以是任意表达式

第四章单元测试

有以下程序段

intk=0;

while(k)k++;

则while循环体执行的次数是()。

A:一次也不执行B:无限次C:执行一次D:有语法错,不能执行

答案:一次也不执行下列关于for循环的描述,正确的是(

A:for循环是先执行循环体语句,后判断表达式B:for循环只能用于循环次数已经确定的情况C:在for循环中,不能用break语句跳出循环D:for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来

答案:for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来以下程序段的输出结果是()inti,s=0;for(i=0;i<10;i+=2)

s+=i+1;printf("%d\n",s);

A:自然数1~10中的偶数之和B:自然数1~10的累加和C:自然数1~9中的奇数之和D:自然数1~9的累加和

答案:自然数1~9中的奇数之和循环结构的特点是(

A:其他都对B:满足条件时反复执行循环体C:从上至下,逐个执行D:根据判断条件,执行其中一个分支

答案:满足条件时反复执行循环体以下说法正确的是(

A:用do-while语句构成的循环,在while后的表达式为非零时结束循环B:do-while语句构成的循环不能用其他语句构成的循环来代替C:do-while语句构成的循环只能用break语句退出D:用do-while语句构成的循环,在while后的表达式为零时结束循环

答案:用do-while语句构成的循环,在while后的表达式为零时结束循环以下for语句,书写正确的是(

)。

A:for(i=1;i<5;i=i+2)B:for(i=1,i<5,)i++C:i=1;for(i<5;i++)D:for(i=1,i<5,i++)

答案:for(i=1;i<5;i=i+2)C语言中用于结构化程序设计的3种基本结构是(

A:for、while、do...whileB:顺序结构、选择结构、循环结构C:if、for、continueD:if、switch、break

答案:顺序结构、选择结构、循环结构以下语句正确的是(

)。

A:for循环表达式的括号内的3个表达式均不可以省略。B:所有类型的循环都可以进行嵌套使用C:程序有死循环的时候,上机编译不能通过D:用1作while循环的判断条件,则循环一次也不执行

答案:所有类型的循环都可以进行嵌套使用在循环语句的循环体中,break语句的作用是(

)。

A:提前结束循环,接着执行该循环后续的语句B:暂停程序的运行C:结束本次循环;D:继续执行break语句之后的循环体各语句;

答案:提前结束循环,接着执行该循环后续的语句下列叙述中正确的是(

)。

A:break语句只能用在循环体和switch语句内B:continue语句的作用是使程序的执行流程跳出包含它的所有循环C:break语句只能用于switch语句中D:在循环体内使用break语句和continue语句的作用相同

答案:break语句只能用在循环体和switch语句内

第五章单元测试

C语言中,以下关于数组的描述正确的是(

A:数组大小固定,但是可以有不同类型的数组元素B:数组大小固定,所有元素的类型必须相同C:数组大小可变,但是所有数组元素的类型必须相同D:数组大小可变,可以有不同类型的数组元素

答案:数组大小固定,所有元素的类型必须相同若有定义intscore[10];,则对score数组中的元素的正确引用是(

A:score[10]B:score[6.0]C:score(7)D:score[0]

答案:score[0]以下能正确定义一维数组的选项是(

A:#define

N100int

num[N];

B:int

N=100,num[N];C:int

num[0..100];D:int

num[];

答案:#define

N100int

num[N];

C语言中,下面能正确定义一维数组的选项是(

A:inta[5]={3};B:inta[5]={0,1,2,3,4,5};C:inta[5]=5;D:inta[N]={1,2,3};

答案:inta[5]={3};下述对C语言字符数组的描述中错误的是(

A:字符数组可以存放字符串B:可以在赋值语句中通过赋值运算符"="对字符数组整体赋值C:不可以用关系运算符对字符数组中的字符串进行比较D:字符数组中的字符串可以整体输入、输出

答案:可以在赋值语句中通过赋值运算符"="对字符数组整体赋值已知inta[3][4];则对数组元素引用正确的是(

)

A:a[2][4]B:a[0][4]C:a[2][0]D:a[3][3]

答案:a[2][0]对以下定义语句的正确理解是(

)inta[10]={6,7,8,9,10};

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

答案:将6,7,8,9,10依次赋给a[0]~a[4]若有初始化语句:inta[3][4]={0};,则下面正确的叙述是(

A:数组a中各元素都可得到初值,a[0][0]初值0,其他元素初值为随机数B:只有元素a[0][0]可得到初值0C:数组a中每个元素都可得到初值0D:此初始化语句不正确

答案:数组a中每个元素都可得到初值0下面是对数组s的初始化,其中错误的语句是(

A:chars[5]={'a','b','c'};B:chars[5]={"abc"};C:chars[5]="";D:chars[5]="Frank";

答案:chars[5]="Frank";已有定义:chara[]="boy",b[]={'b','o','y'};,则以下叙述中正确的是(

)

A:其他说法都不对B:数组a和数组b长度相同C:a数组长度小于b数组长度D:a数组长度大于b数组长度

答案:a数组长度大于b数组长度

第六章单元测试

C语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式是(

A:由实参传给形参,再由形参反馈给实参B:由用户指定传递方式C:地址传递D:单向值传递

答案:单向值传递关于实参和形参,以下错误的说法是(

A:如果形参和实参的类型不一致,以形参类型为准B:实参可以是常量,变量或表达式C:形参可以是常量,变量或表达式D:实参可以为任意类型

答案:形参可以是常量,变量或表达式函数在定义时,若省略函数类型说明符,则该函数值的类型为(

A:intB:voidC:floatD:double

答案:int如果在一个函数中的复合语句中定义了一个变量,则该变量(

A:只在该复合语句内有效B:为非法变量C:在该函数中有效D:在本程序范围内有效

答案:只在该复合语句内有效以下对C语言函数的有关描述中,正确的是(

A:函数必须有返回值,否则不能使用函数B:在C中调用函数时,只能把实参的值传给形参,不能把形参的值送给实参C:C函数既可以嵌套定义又可以递归调用D:C程序中有调用关系的所有函数必须放在同一个源程序文件中

答案:在C中调用函数时,只能把实参的值传给形参,不能把形参的值送给实参若函数调用时的实参为普通变量,下列关于函数形参和实参的叙述中正确的是(

A:形参只是形式上的存在,不占用具体存储单元B:函数的形参和实参分别占用不同的存储单元C:函数的实参和其对应的形参共占同一存储单元D:同名的实参和形参占同一存储单元

答案:函数的形参和实参分别占用不同的存储单元关于函数相关内容,以下叙述中错误的是(

A:函数的return语句中可以没有表达式B:用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值C:用户定义的函数中若没有return语句,则应当定义函数为void类型D:用户定义的函数中可以没有return语句

答案:用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值以下叙述中正确的是(

A:静态(static)变量的生存期贯穿于整个程序的运行期间B:全局变量的作用域一定比局部变量的作用域范围大C:未在定义语句中赋初值的auto变量和static变量的初值都是随机值D:函数的形参都属于全局变量

答案:静态(static)变量的生存期贯穿于整个程序的运行期间以下说法中正确的是(

A:在函数内部定义的变量只在本函数范围内有效B:主函数中定义的变量在所有的函数中有效C:形式参数是全局变量D:全局变量与局部变量同名时,局部变量不起作用

答案:在函数内部定义的变量只在本函数范围内有效若程序中定义了以下函数,并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是(

)。double

myadd(doublea,doubleb){

return(a+b);

}

A:doublemyadd(doublea,b);B:doublemyadd(doubleb,doublea);C:doublemyadd(doublex,doubley);D:doublemyadd(double,double);

答案:doublemyadd(doublea,b);

第七章单元测试

变量的指针,其含义是指该变量的(

A:名B:一个标记C:值D:地址

答案:地址设已有定义floatx;,则以下对指针变量p进行定义其赋初值的语句中正确的是(

A:float*p=1024;B:int*p=(int)x;C:float*p=&x;D:floatp=&x;

答案:float*p=&x;若用数组名作为函数调用的实参,传递给形参的是(

A:数组中全部元素的值B:数组中第一个元素的值C:数组元素的个数D:数组的首地址

答案:数组的首地址已有定义:inti,a[10],*p;,则合法的赋值语句是(

A:p=a+2;B:p=a[5];C:p=a[2]+2;D:p=i;

答案:p=a+2;C语言的以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是(

A:chars[10];

strcpy(s,"hello");B:chart[]="hello",*s=t;C:chars[10];

s="hello";D:chars[10]="hello";

答案:chars[10];

s="hello";以下程序段执行后输出结果是(

)。char*p[10]={"abc","aabdfg","dcdbe","abbd","cd"};printf(“%d\n”,strlen(p[4]));

A:2

B:4

C:3

D:5

答案:2

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

)。fun(char

*p2,

char

*p1){

while((*p2=*p1)!='\0'){

p1++;

p2++;

}

}

A:将p1所指字符串复制到p2所指内存空间B:对p1和p2两个指针所指字符串进行比较C:检查p1和p2两个指针所指字符串中是否有‘\0’D:将p1所指字符串的地址赋给指针p2

答案:将p1所指字符串复制到p2所指内存空间设有定义int*ptr,x,array[5]={5,4,3,2,1};ptr=array;则能使x的值为3的语句(

A:x=array[3];B:array+=2;x=*array;C:x=*(ptr+2)D:x=*(array+3);

答案:x=*(ptr+2)两个指针变量不可以(

)。

A:相加B:比较C:相减D:指向同一个地址

答案:相加若有定义int(*p)[5];,则下列说法正确的是(

)。

A:定义了基本类型为int的具有5个元素的指针数组pB:定义了基本类型为int的5个指针变量。C:定义了一个名为*p、具有5个元素的整型数组D:定义了一个名为p的行指针变量,它可以指向每行有5个整数元素的二维数组

答案:定义了一个名为p的行指针变量,它可以指向每行有5个整数元素的二维数组

第八章单元测试

下列关于结构体的阐述错误的是(

)。

A:结构体成员的名字可以同程序中的其他变量名相同B:结构体数据类型可以直接使用C:结构体定义可以在函数内部,也可在函数外部D:结构体成员可以是普通变量,也可以是数组,指针及结构体变量等

答案:结构体数据类型可以直接使用当说明一个结构体变量时,系统分配给它的内存是(

)。

A:结构中第一个成员所需内存量B:各成员所需内存量的总和C:成员中占内存量最大者所需的容量D:结构中最后一个成员所需内存量

答案:各成员所需内存量的总和C语言结构体类型变量在程序执行期间(

A:部分用到的成员驻留在内存中B:只有一个成员驻留在内存中C:没有成员驻留在内存中D:所有成员一直驻留在内存中

答案:所有成员一直驻留在内存中有如下定义struct

student{

intnum;floatscore;}stu;则下面叙述中错误的是(

)。

A:structstudent是用户定义的结构体类型B:struct是结构体类型的关键字C:stu是用户定义的结构体类型D:num和score都是结构体成员名

答案:stu是用户定义的结构体类型下列关于typedef的叙述错误的是(

)。

A:typedef只是将已存在的类型用一个新的名字来代表B:用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名C:用typedef可以增加新类型D:用typedef为类型说明一个新名,通常可以增加程序的可读性

答案:用typedef可以增加新类型在C语法中,下面结构体的定义语句中,错误的是(

)

A:struntpoint{intx;inty;intz;}a;B:struct{intx;inty;intz;}pointa;C:structpoint{intx;inty;intz;};structpointa;D:struct{intx;inty;intz;}a;

答案:struct{intx;inty;intz;}pointa;以下对结构变量stu1中成员age的非法引用是(

)。structstudent{

intage;intnum;}stu1,*p;p=&stu1;

A:student.ageB:stu1.ageC:.(*p).ageD:p->age

答案:student.age若有以下说明语句,则下面的叙述错误的是()。

struct

date

{intyear;

intmonth;

intday;

}brithday;

A:struct是声明结构体类型时用的关键字B:brithday是用户定义的结构体类型名C:structdate是用户定义的结构体类型名D:year,day都是结构体成员名

答案:brithday是用户定义的结构体类型名下面关于结构的说法错误的是()

A:在定义结构时,可以为成员设置默认值B:结构中成员的数据类型可以是另一个已经定义的结构C:结构中可设定若干个不同数据类型的成员D:结构是由用户自定义的一种数据类型

答案:在定义结构时,可以为成员设置默认值当说明一个共用体变量时,系统分配给它的内存是(

A:成员中占内存量最大者所需的容量B:最后一个成员所需内存量C:第一个成员所需内存量D:各成员所需内存量的总和

答案:成员中占内存量最大者所需的容量

第九章单元测试

若执行fopen函数时发生错误,则函数的返回值是(

)。

A:1B:地址值C:EOFD:0

答案:0函数调用语句:fseek(fp,-20L,2)的含义是(

)。

A:将文件位置指针从文件末尾处前移20个字节B:将文件位置指针从当前位置向后移动20个字节C:将文件位置指针移到离当前位置20个字节处D:将文件位置指针移到距离文件头20个字节处

答案:将文件位置指针从文件末尾处前移20个字节以二进制只读方式打开一个已有的文本文件file1,正确调用fopen函数的方式是(

A:fp=fopen("file1","rb");B:fp=fopen("file1","rb+");C:fp=fopen("file1","r");

D:fp=fopen("file1","r+");

答案:fp=fopen("file1","rb");C语言中库函数fgets(str,n,fp)的功能是()。

A:从str读取至多n个字符到文件fp。B:从文件fp中读取n个字符串存入str指向的内存。C:从文件fp中读取长度n的字符串存入str指向的内存。D:从文件fp中读取长度不超过n-1的字符串存入str指向的内存

答案:从文件fp中读取长度不超过n-1的字符串存入str指向的内存于以下一段程序的理解错误的是(

)。

FILE*fp;

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

{

printf("Cannotopenthefile!\n");

exit(0);

}

A:

fopen函数打开文件失败后的返回值为NULLB:FILE*fp;表示定义一个文件指针fpC:if语句表示调用fopen函数以只读的形式打开D盘根目录下的文件test.txtD:通过调用fopen函数,使文件指针fp指向文件test.txt在内存中的缓冲区

答案:if语句表示调用fopen函数以只读的形式打开D盘根目录下的文件test.txt下列关于C语言文件的叙述中正确的是(

)。

A:文件由字符序列组成,其类型只能是文本文件B:文件由数据序列组成,可以构成二进制文件或文本文件C:文件由一系列数据依次排列组成,只能构成二进制文件D:文件由结构序列组成,可以构成二进制文件或文本文件

答案:文件由数据序列组成,可以构成二进制文件或文本文件

第十章单元测试

下面关于void*malloc(unsignedintsize)函数描述错误的(

)。

A:malloc()函数用来动态分配内存,所分配的空间长度为sizeB:若分配不成功则返回NULLC:函数的返回值为指向该区域起始地址的指针D:malloc函数申请的空间若不释放,也有可能被其他程序申请

答案:malloc函数申请的空间若不释放,也有可能被其他程序申请有如下定义:structnode{

intdata;

structnode*next;

}a,b,c;下列哪个答案可以将变量a,b,c在内存中的位置连接起来(

)。

A:a=b=c;B:a.data=&b;b.data=&c;C:a.next=&b;

b.next=&c;D:a.next=b.next=c.next;

答案:a.next=&b;

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

)

。structnode{intdata;structnode*next;}structnodea,b,*p=&a,*q=&b;

A:p.next=&b;B:p->next=b;C:(*p)->next=q;D:a.next=q;

答案:a.next=q;下列关于线性链表的叙述中,正确的是(

A:进行插入和删除时,不需要移动链表中的元素B:其他三种说法都不对C:各数据结点的存储空间必须连续D:各数据结点的存储顺序与逻辑顺序必须要一致

答案:进行插入和删除时,不需要移动链表中的元素

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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论