C语言编程方法与思想知到智慧树章节测试课后答案2024年秋北京航空航天大学_第1页
C语言编程方法与思想知到智慧树章节测试课后答案2024年秋北京航空航天大学_第2页
C语言编程方法与思想知到智慧树章节测试课后答案2024年秋北京航空航天大学_第3页
C语言编程方法与思想知到智慧树章节测试课后答案2024年秋北京航空航天大学_第4页
免费预览已结束,剩余6页可下载查看

下载本文档

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

文档简介

C语言编程方法与思想知到智慧树章节测试课后答案2024年秋北京航空航天大学第一章单元测试

执行两个数的四则运算,关于语句,scanf("%d%d%c",&a,&b,&op);

正确的输入方式是()。

A:28*B:5,9,+C:46+D:37*

答案:28*;46+关于函数scanf的返回值,正确的说法是什么?()

A:正确读入时返回1B:正确读入的数据的个数C:正确读入时返回0D:正确读入时返回-1

答案:正确读入的数据的个数执行两个数的四则运算(中缀表达式),关于语句,scanf("%d%c%d",&a,&op,&b);

正确的输入方式是()。

A:3*7B:3*7C:3*7D:3*7

答案:3*7;3*7用scanf("%d%c%d",&x,&c,&y)输入三个数据,正确的描述为:()

A:没有正确答案B:输入的三个数据用换行分开C:输入的三个数据用逗号分开D:输入的三个数据用空格分开

答案:没有正确答案用gets输入多个字符串,循环头语句可以为,while(gets(str)!=______()

输入结束的标记是什么?

A:NULLB:EOFC:1D:-1

答案:B:EOF

第二章单元测试

以下哪个位运算符用于将指定位设置为1?()

A:>>B:|C:&D:^

答案:|如果x的值为6,y的值为3,则x^y的结果是什么?()

A:6B:3C:5D:9

答案:5已知8位二进制反码表示11100111,那么它的十进制值是多少?()

A:103B:-24C:24D:-103

答案:-24(已知,EPS是一个用于控制精度的宏,例如#defineEPS1e-6)

下列说法正确的是?()

A:double型精度更高,不存在浮点数误差B:减小浮点数误差,可以通过使用更高精度的浮点数C:可以使用语句if(a-0.3<=EPS)来判断浮点数a是否为0.3D:可以使用语句if(a-0.3==EPS)来判断浮点数a是否为0.3

答案:减小浮点数误差,可以通过使用更高精度的浮点数可以使用语句if(a-0.3<=EPS)来判断浮点数a是否为0.3()

A:对B:错

答案:错

第三章单元测试

有关if-else选择结构的论述,正确的是______?()

A:多个ifelse嵌套时,else总是和最近的if匹配B:if中的条件表达式必须为逻辑或关系表达式,不能为算术表达式C:if或else部分如果有多条语句,必须用大括号括起来组成复合语句块D:通过条件语句的嵌套结构,可以实现多路选择

答案:多个ifelse嵌套时,else总是和最近的if匹配;if中的条件表达式必须为逻辑或关系表达式,不能为算术表达式;通过条件语句的嵌套结构,可以实现多路选择有关switch语句的论述,正确的是______?()

A:case中的值可以为一个变量,从而根据变量的取值进行选择B:switch中的表达式必须为整数表达式,返回整数或字符类型的值C:default分支一般放在最后,当前面所有的case都不匹配时,跳转到该处执行D:执行完一个case分支后,会继续判断后续case是否满足条件,如果满足则跳转到后续的case中继续执行

答案:switch中的表达式必须为整数表达式,返回整数或字符类型的值;default分支一般放在最后,当前面所有的case都不匹配时,跳转到该处执行有关三种循环结构特点的论述,错误的是______?()

A:while循环体不能为空,否则无法结束while循环B:for循环头中的三个表达式都可以省略,但两个分号不能省略C:有些while循环无法转换为for循环D:do-while循环至少执行一次

答案:for循环头中的三个表达式都可以省略,但两个分号不能省略;有些while循环无法转换为for循环执行完一个case分支后,会继续判断后续case是否满足条件,如果满足则跳转到后续的case中继续执行。()

A:错B:对

答案:错do-while循环至少执行一次。()

A:错B:对

答案:错

第四章单元测试

关于C程序中函数的调用和执行,不正确的是:()

A:当调用(执行)一个函数时,就会开辟一个独立的空间(栈)。B:当函数执行完毕后,会返回到调用函数位置,继续执行。C:一个C程序的执行是从本程序的main函数开始,到本程序文件的最后一个函数结束D:如果函数有返回值,则将返回值赋给接收的变量。

答案:一个C程序的执行是从本程序的main函数开始,到本程序文件的最后一个函数结束现需要编程完成两个分数的求和,并将所求得的和化为最简形式。已知以下代码设计了一个函数gcd(),能够求两个整数的最大公约数,欲调用该函数完成本任务的求解,则______处可填入的语句是:()

intgcd(int,int);

intmain()

{

inta,b,c,d,e,f,g;//(a,b)与(c,d)分别表示两个分数的分子、分母

scanf("%d%d%d%d",&a,&b,&c,&d);

e=a*d+c*b;

f=b*d;

g=______;

e/=g;

f/=g;

printf("%d/%d+%d/%d=%d/%d\n",a,b,c,d,e,f);

}

intgcd(inta,intb)

{

returnb?gcd(b,a%b):a;

}

A:gcd(f,e)B:gcd(a,b)C:gcd(c,d)D:gcd(e,f)

答案:gcd(f,e);gcd(e,f)以下代码用递归函数实现求解两个正整数的最大公约数,______处应填入的语句是:()

#include<stdio.h>

intgcd(int,int);

intmain()

{

inta,b,g;

scanf("%d%d",&a,&b);

g=gcd(a,b);

printf("%d\n",g);

return0;

}

intgcd(inta,intb)

{

if(b==0)

returna;

return___________;

}

A:gcd(b,a%b)B:a%bC:gcd(a%b,b)

答案:gcd(b,a%b)阿克曼函数的定义如下

用递归的方法实现求解阿克曼函数ack(m,n)(0≤m≤3,0≤n≤10),则该递归函数的基本情况应包括:()

intack(intm,intn)

{

————————;

————————;

returnack(m-1,ack(m,n-1));

}

A:if(n==0)return0;B:if(n==0)returnack(m-1,1);C:if(m==0)return-1;D:if(m==0)returnn+1;

答案:if(n==0)returnack(m-1,1);;if(m==0)returnn+1;当调用(执行)一个函数时,就会开辟一个独立的空间(栈)。()

A:对B:错

答案:对

第五章单元测试

经典的冒泡排序算法

for(i=1;i<n;i++)

{

for(j=0;j<n-i;j++)

{

if(a[j]>a[j+1])//比较

{

SWAP(a[j],a[j+1])//交换

}

}

}

比较和交换分别执行了多次?______()

A:O(nlgn)O(n2)B:O(n)O(n)C:O(n2)O(nlgn)D:O(n2)O(n2)

答案:O(n2)O(n2)两个关键字排序,第一个关键字为数组a(降序排列),第二个关键字为数组b(如果第一个关键字相当,则按b降序排列),用经典的冒泡排序算法实现,请填空实现元素的比较部分,()

for(i=1;i<N;i++)

{

for(j=0;j<N-i;j++)

{

if(____________________________)//比较

{

SWAP(a[j],a[j+1])//交换

SWAP(b[j],b[j+1])//交换

}

}

}

A:(a[j]<a[j+1])||((a[j]==a[j+1])&&(b[j]<b[j+1]))B:(a[j]<a[j+1])&&(b[j]>b[j+1])C:(a[j]<a[j+1])||((a[j]==a[j+1])&&(b[j]>b[j+1]))D:(a[j]<a[j+1])&&(b[j]<b[j+1])

答案:(a[j]<a[j+1])||((a[j]==a[j+1])&&(b[j]>b[j+1]))请在一维数组b中查找key的位置,未找到返回-1,填空完成经典的二分搜索算法。()

//low和high表示搜索的起始范围,从b[low]到b[high]

intbin_find(intb[],intkey,intlow,inthigh)

{

intmid;

while(low<=high)

{

mid=low+(high-low)/2;

if(key==b[mid])

returnmid;

elseif(key<b[mid])

____________________________

else

low=mid+1;

}

return-1;

}

A:high=mid+1;B:high=mid-1;C:high=mid;D:high=low;

答案:high=mid-1;二分搜索每次把搜索区域砍掉一半,时间复杂度为O(logn)。(n代表集合中元素的个数)。()

A:错B:对

答案:对字符串输入输出函数的原型在下面哪个标准头文件中定义:()。

A:stdio.hB:math.hC:string.hD:stdlib.h

答案:stdio.hfgets函数读入字符串比gets函数更安全。()

A:错B:对

答案:对

第六章单元测试

假设要对一个N行M列的二维double型数组以行为单位进行排序,在调用通用冒泡排序函数g_bub_sort时,实际参数len和elemSize的值分别是多少。()

A:N和M*sizeof(double)B:N和MC:M和ND:N*M和sizeof(double)

答案:N和M*sizeof(double)假设cmp是一个满足严格有序的比较函数,判断a,b相等的条件是什么?()

A:!cmp(a,b)&&!cmp(b,a)B:!cmp(a,b)||!cmp(b,a)C:cmp(a,b)||cmp(b,a)D:cmp(a,b)&&cmp(b,a)

答案:!cmp(a,b)||!cmp(b,a)使用qsort函数可以排序______数据类型的数组。()

A:字符型B:整型C:浮点型D:结构体型

答案:字符型;整型;浮点型;结构体型qsort排序的平均时间复杂度多少?()

A:O(nlogn)B:O(n3)C:O(n2)D:O(n)

答案:O(nlogn)下面正确定义p为函数指针的是:()。

A:int*p;B:int(*p)(int);C:char(*p)[10];D:int*p(int);

答案:int(*p)(int);*作为单目运算符是解引用运算符,作为双目运算符是乘号,它还可以用来定义指针。()

A:对B:错

答案:对

第七章单元测试

输入字符串时,常用fgets来代替gets,主要是fgets有什么优点______。()

A:fgets能读入字符串行末的\nB:fgets能读入字符串中间的若干个空格C:fgets能指定读入字符串的来源和目标位置D:fgets通过参数设置能保证读入字符串的合法性(达到字符数组长度时在行末添加\0)

答案:fgets通过参数设置能保证读入字符串的合法性(达到字符数组长度时在行末添加\0)在Windows系统上,按正文(文本)方式打开文本文件且用fgets(arr,N,stdin)读入文本文件内容到内存时(N足够大),下述正确的描述是______。()

A:没有正确答案B:每行末尾的\n自动转换为\r\nC:在内存中的格式跟文件中的格式一样D:每行末尾的\r\n自动转换为\n

答案:每行末尾的\r\n自动转换为\n下列说法正确的是______。()

A:Windows和Linux下创建的文本文件,格式完全一样,在两个系统上的使用完全一样B:Windows下创建的文本文件,放到Linux下使用,通常需要处理\rC:Linux下创建的文本文件,放到Windows下使用,通常需要处理\rD:Windows和Linux下创建的二进制文件,格式完全一样,在两个系统上的使用完全一样

答案:Windows下创建的文本文件,放到Linux下使用,通常需要处理\r;Windows和Linux下创建的二进制文件,格式完全一样,在两个系统上的使用完全一样优化代码时,可以采取的措施是______?()

A:减少算法的时间复杂度B:合理利用数据结构C:减少函数

温馨提示

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

评论

0/150

提交评论