阅读以下说明和C函数,填补函数代码中的空缺,将解答填入答题纸的对应栏内。

题目
阅读以下说明和C函数,填补函数代码中的空缺,将解答填入答题纸的对应栏内。
[说明1]
函数f(double eps)的功能是:利用公式

计算并返回π的近似值。

[C函数1] double f(doubleeps) { double n=1.0, s=1.0, term=1.0, pi=0.0; while ( fabs(term) >=eps ){ pi=pi+term; n= ______; s= ______; term=s/n; } return pi*4; }

[说明2]
函数fun(char *str)的功能是:自左至右顺序取出非空字符串str中的数字字符,形成一个十进制整数(最多8位)。例如,若str中的字符串为"iyt?67kp f3g8d5.j4ia2e3p12",则函数返回值为67385423。

[C函数2] long fun(char*str) { int i=0; long num: 0; char *p = str; while ( i<8 && ______) { if ( *p >= '0' && *p <= '9' ) { num= ______ + *p -'0'; ++i; } ______; } return num; }

参考答案和解析
答案:
解析:
n+2
-s或-1*s
*p!='\0'或等价形式
num*10或等价形式
p++或等价形式

【解析】

本题考查C语言程序设计基本技能。考生需认真阅读题目中的说明,从而确定代码的运算逻辑,在阅读代码时,还需注意各变量的作用。
函数f(double eps)的功能是计算兀的近似值。观察题中给出的计算公式,可知在循环中n每次递增2,因此空(1)处应填入"n+2"。由于公式中的各项是正负交替的,因此结合表达式"term=s/n"可知变量s就是起此作用的。空(2)处应填入"-s"或"-1*s"。
对于函数fun(char *str]),从字符序列中取出数字并组合为一个整数时,对于每个数字,只需将之前获取的部分乘以10再加上该数字的值即可。
以67385423为例。
67385423=(((((((0+6)*10+7)*10+3)*10+8)*10+5)*10+4)*10+2)*10+3
函数中的变量i是用来计算位数的,num用来计算所获得的整数值。显然,最多读取字符序列中的前8个数字,或者到达字符序列的末尾(*p!='\0')时,计算也需结束。因此,空(3)处应填入"*p!:'\0'"。
根据num的作用,空(4)处应填入"num*10"。
根据指针p的作用,空(5)处的代码应使得p指向下一个字符,因此应填入"p++"。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

阅读下面的说明,回答问题1~问题4,将解答填入答题纸对应的解答栏内。

[说明]

阅读以下说明,回答问题1~问题4,将解答填入答题纸对应的解答栏内。

windows Server 2003是一个多任务多用户的操作系统,能够以集中或分布的方式实现各种应用服务器角色,是目前应用比较广的操作系统之一。

Windows内置许多应用服务功能,将下表中(1)~(5)处空缺的服务器名称填写在答题纸对应的解答栏内。

(1)


正确答案:域名(DNS)服务器
域名(DNS)服务器

第2题:

阅读下列说明,回答问题1至问题2,将解答填入答题纸的对应栏内。

[说明]

如图10-4所示是电子商务系统平台结构示意图。

请把空缺的地方填写完整。


正确答案:(1)接口中间层。 (2)Web服务器。 (3)数据库服务器。
(1)接口中间层。 (2)Web服务器。 (3)数据库服务器。

第3题:

●试题四

阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

函数QuickSort是在一维数组A[n]上进行快速排序的递归算法。

【函数】

void QuickSort(int A[],int s,int t)

{int i=s,j=t+1,temp;

int x=A[s];

do{

do i++;while (1) ;

do j--;while(A[j]>x);

if(i<j){temp=A[i]; (2) ; (3) ;}

}while(i<j);

A[a]=A[j];A[j]=x;

if(s<i-1) (4) ;

if(j+1<t) (5) ;

}


正确答案:

●试题四

【答案】(1)Ai<x(2)Ai=Aj(3)Aj=temp(4)QuickSort(Asj-1)

(5)QuickSort(Aj+1t)

【解析】快速排序的思想是:任取待排序序列中的某个元素作为基准(一般取第一个元素),通过一趟排序,将待排元素分为左右两个子序列,左子序列元素的排序码均小于或等于基准元素的排序码,右子序列的排序码则大于基准元素的排序码,然后分别对两个子序列继续进行排序,直至整个序列有序。快速排序是对冒泡排序的一种改进方法,算法中元素的比较和交换是从两端向中间进行的,排序码较大的元素一次就能够交换到后面单元,排序码较小的记录一次就能够交换到前面单元,记录每次移动的距离较远,因而总的比较和移动次数较少。

 

第4题:

阅读以下关于软件测试的说明,回答司题l至问题3,将解答填入答题纸的对应

栏内。

【说明】

使用在汽车、飞机中的嵌入式软件, 日于直接影响人的生命及财产安全,测试要求

更为严格。语句覆盖、判定覆盖、条件覆盖和MC/DC覆盖是通常对这类软件的要求。

以下是一段C语言代码,请仔细阅读并回答相关问题:

【问题1】(6分)

请根据测试要求,简要说明语句覆盖、判定覆盖、条件覆盖和MC/DC覆盖的含义。

将答案填写在答题纸的对应栏中。

【问题2】(5分)

画出以上代码的流程图,将答案填写在答题纸的对应栏中。

【问题3】(4分)

请根据【说明】中的C语言代码,计算满足MC/DC覆盖要求的用例数量及条件取

值范围,将答案填写在答题纸的对应栏中.


正确答案:
试题三分析
本题考查嵌入式软件测试的基本知识.
语句覆盖要求设计足够多的测试用例,运行被测程序,使得程序中每条语句至少被
执行一次。定覆盖(分支覆盖)要求设计足够多的测试用例,运行被测程序,使得程序
中的每个判断的“真”和“假”都至少被执行一次。条件覆盖要求设计足够多的测试用
例,运行被测程序,使得判定中的每个条件获得各种可能的结果,即每个条件至少有一
次为真值,有一次为假值。MC/DC覆盖要求每个条件的取值都有覆盖,每个判定值都有
覆盖且每个条件都能独立影响判定结果,各覆盖率的含义如表2.5所示。

【问题2]
本问题考查程序流程图的画法。注意开始、结束的符号。
根据源代码,程序流程图如下。

【问题3]
本问题考查MC/DC覆盖率判定的综合运用。
MC/DC与代码中的逻辑运算有关。本题代码中的逻辑运算为x>0&&y>0。根据
MC/DC的定义,MC/DC覆盖要求每个条件的取值都有覆盖,每个判定值都有覆盖且每
个条件都能独立影响判定结果。对于a&&b这样的逻辑运算,真值表如下。

对测试用例1和测试用例2,条件a不变,因为条件b的不同而导致结果的不同,
因此条件b独立影响判定的结果。对测试用例2和测试用例3,因为条件b不变,条件a
的不同而导致结果的不同,因此条件a独立影响判定的结果。综合以上,对逻辑运算a&&
b应产生三个测试用例,包括:(True,False)、(True,True)、(False,True)。
所以本题用例数量:3个;条件取值范围:(x>0andy<=0)、(x<=0andy>0)及(x>0
andy>0)。
参考答案

【问题2]
【问题3]
用例数量:3个;
条件取值范围:
(x>0andy<=0)、(x<=0andy>0)及(x>0andy>0)

第5题:

阅读以下说明和C函数,填补代码中的空缺(1)~(5),将解答填入答题纸的对应栏内。

【说明1】 函数isPrime(int n)的功能是判断n是否为素数。若是,则返回1,否则返回0。素数是只能被1和自己整除的正整数。例如,最小的5个素数是2,3,5,7,11。 【C函数】 int isPrime (int n) { int k, t; if (n==2) return 1; if(n<2|| (1) ) return 0; /* 小于2的数或大于2的偶数不是素数 */ t=(int)sqrt(n)+1; for (k=3; k<t; k+=2) if ( (2) ) return 0; return 1; } 【说明2】 函数int minOne(int arr[], int k)的功能是用递归方法求指定数组中前k个元素中的最小者,并作为函数值返回。 【C函数】 int minOne (int arr[], int k) { int t; assert (k>0) ; if(k==1) return (3) ; t=minOne(arr+1, (4) ; if (arr[0]<t) return arr[0]; return (5) ; }


正确答案:
(1)n%2==0,或!(n%2),或其等价形式
(2)n%k==0,或!(n%k),或其等价形式
(3)arr[0],或*arr,或其等价形式
(4)k-1,或其等价形式
(5)t

第6题:

阅读以下说明和关系表,回答问题1~4,将解答对应的解答栏内。

[说明]

关系变量R{A,B,C,D,E,F}满足如下的函数依赖

AD→E,AEB→D,B→CF,DE→B,DC→E,EC→FA,EF→DB,E→A

求此模型的最小函数依赖集。


正确答案:分解函数依赖的右部: BE→A AEB→D DE→B EC→F EC→A EF→D EF→B B→C B→F E→A 消去冗余属性: ∵E→A ∴BE→A冗余; ∵E→A ∴EC→A冗余; ∵EF→D ∴EF→DE又有DE→B∴EF→B冗余 ∵EF→D ∴AEF→AD ∵B→F ∴AEB→AEF ∴AEB→AD ∴AEB→D冗系 最终的最小依赖集为: DE→B EC→F EF→D E→A B→C B→F
分解函数依赖的右部: BE→A AEB→D DE→B EC→F EC→A EF→D EF→B B→C B→F E→A 消去冗余属性: ∵E→A ∴BE→A冗余; ∵E→A ∴EC→A冗余; ∵EF→D ∴EF→DE,又有DE→B,∴EF→B冗余 ∵EF→D ∴AEF→AD ∵B→F ∴AEB→AEF ∴AEB→AD ∴AEB→D冗系 最终的最小依赖集为: DE→B EC→F EF→D E→A B→C B→F

第7题:

阅读下列说明,回答问题1至问题2,将解答填入答题纸的对应栏内。

[说明]

电子商务系统的外部社会环境如图10-5所示。

请把空缺的地方填写完整。


正确答案:(1)原料供应商。 (2)企业电子商务系统。 (3)消费者。
(1)原料供应商。 (2)企业电子商务系统。 (3)消费者。

第8题:

阅读以下说明,回答问题1~4,将解答填入对应的解答栏内。

[说明] 现有如下关系模式:R(A,B,C,DE),其中,A,B为组合键,R上存在的函数依赖有(A ,B) →E,B→C,C→D

该关系模式满足2NF吗?为什么?


正确答案:该关系模式不满足2NF的要求
该关系模式不满足2NF的要求

第9题:

阅读以下说明和 C 函数,填补函数代码中的空缺,将解答填入答题纸的对应栏内。 【说明 1】 函数 f(double eps) 的功能是:利用公式计算并返回 π 的近似值。【说明 2】 函数fun(char *str)的功能是:自左至右顺序取出非空字符串 str中的数字字符,形成一个十进制整数(最多 8 位)。例如,若 str中的字符串为 "iyt?67kp f3g8d5.j4ia2e3p12", 则函数返回值为 67385423。


正确答案:(1)n+2
(2)-s 或-1*s
(3) *p!= ' \ 0'或等价形式
(4) num*10 或等价形式
(5) p++或等价形式

第10题:

阅读下列说明、c++代码和运行结果,填补代码中的空缺(1)~(6),将解答填入

答题纸的对应栏内。

【说明】

很多依托扑克牌进行的游戏都要先洗牌。下面的c++程序运行时先生成一副扑克牌,

洗牌后再按顺序打印每张牌的点数和花色。

【c++代码】

inciude <iostream>

4Finclude <stdlib. h>

include <ctime>

inciude <aigorithm>

include <string>

Using namespace std

Const string Rank[13]={”A”,”2”,”3”,”4“,“5”,”6,”’“7”8“,9”,”10,”J”,

”Q”,”K”}j//扑克牌点数


正确答案:
分析本题考查c-++语言程序设计能力,涉及类、对象、函数的定义和相关操作。要求考生根据给出的案例和代码说明,认真阅读,理清程序思路,然后完成题目。本题目中涉及到扑克牌、牌桌等类以及洗牌和按点数排序等操作。根据说明进行设计。定义了两个数组,Rank表示扑克牌点数,Suits表示扑克牌花色,定义时进行初始化,而且值不再变化,故用const修饰。Card类有两个属性,rank和suit,在使用构造函数Card(intrankintsuit)新建一个Card的对象时,所传入的参数指定rank和suit这两个属性值。因为参数名称和属性名称相同,所以用this->前缀区分出当前对象。在类Card中包含方法getRank()和getSuit(),分别返回当前对象的rank和suit属性值。printCard()函数打印扑克牌点数和花色。DeckOfCards类包含Card类型元素的数组deck[52],表示牌桌上一副牌(52张)。构造函数中对牌桌进行初始化并进行洗牌。先用Card对象填充牌桌,即创建52个Card对象并加入deck数组。然后洗牌,即将数组中的Card对象根据花色和点数随机排列。printCards0函数将所有Card对象打印出来。主控逻辑代码在main函数中实现。在main()函数中,先初始化DeckOfcards类的对象指针d,即生成一个牌桌:Deckofcards*d=newdeckofcards()并发牌,即调用d的printCards()函数,实现打印一副扑克牌中每张牌的点数和花色。在printCards()函数体内部,为每个数组元素调用当前对象的pnntCard()一张牌。Main()函数中使用完数组对象之后,需要用delete操作进行释放对象,对d对象进行删除,即deleted。因此,空(1)和(2)需要表示当前对象的this->;空(3)需要牌桌上纸牌对象,即数组元素deck[i]:空(4)也需要纸牌对象调用printCard(),即数组元素deck[i].:空(5)处为创建DeckOfCards类的对象指针d的newDeckofcards0;空(6)需要用对象指针d调用打印所有纸牌的pnntCards()函数,即d->printCards0.试题五参考答案(1)this->(2)this->(3)deck[i]或*(deck+i)或等价表示(4)deck[i]或*(deck+i)或等价表示(5)newDeckOfCards()(6)d->printCards0或等价表示

更多相关问题