网友您好, 请在下方输入框内输入要搜索的题目:

题目内容 (请给出正确答案)
阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。【说明】假币问题:有n枚硬币,其中有一枚是假币,已知假币的重量较轻。现只有一个天平,要求用尽量少的比较次数找出这枚假币。【分析问题】将n枚硬币分成相等的两部分:(1)当n为偶数时,将前后两部分,即1…n/2和n/2+1…0,放在天平的两端,较轻的一端里有假币,继续在较轻的这部分硬币中用同样的方法找出假币:(2)当n为奇数时,将前后两部分,即1…(n -1)/2和(n+1)/2+1…0,放在天平的两端,较轻的一端里有假币,继续在较轻的这部分硬币中用同样的方法找出假币;若两端重量相等,则中间的硬币,即第 (n+1)/2枚硬币是假币。【C代码】下面是算法的C语言实现,其中:
coins[]: 硬币数组first,last:当前考虑的硬币数组中的第一个和最后一个下标
#include
int getCounterfeitCoin(int coins[], int first,int last){int firstSum = 0,lastSum = 0;int ì;If(first==last-1){ /*只剩两枚硬币*/if(coins[first] < coins[last])return first;return last;}
if((last - first + 1) % 2 ==0){ /*偶数枚硬币*/for(i = first;i <( 1 );i++){firstSum+= coins[i];}for(i=first + (last-first) / 2 + 1;i < last +1;i++){lastSum += coins[i];}if( 2 ){Return getCounterfeitCoin(coins,first,first+(last-first)/2;)}else{Return getCounterfeitCoin(coins,first+(last-first)/2+1,last;)}}else{ /*奇数枚硬币*/For(i=first;ilastSum){return getCounterfeitCoin(coins,first+(last-first)/2-1,last);}else{Return( 3 )}}}
【问题一】(6分)根据题干说明,填充C代码中的空(1)-(3)【问题二】(4分)根据题干说明和C代码,算法采用了( )设计策略。函数getCounterfeitCoin的时间复杂度为( )(用O表示)。【问题三】(5分)若输入的硬币数为30,则最少的比较次数为( ),最多的比较次数为( )。


参考答案

参考解析
解析:【问题一】答案:(1)first+(last-first)/2 +1或(first+last)/2+1 (2)firstSum
更多 “阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。【说明】假币问题:有n枚硬币,其中有一枚是假币,已知假币的重量较轻。现只有一个天平,要求用尽量少的比较次数找出这枚假币。【分析问题】将n枚硬币分成相等的两部分:(1)当n为偶数时,将前后两部分,即1…n/2和n/2+1…0,放在天平的两端,较轻的一端里有假币,继续在较轻的这部分硬币中用同样的方法找出假币:(2)当n为奇数时,将前后两部分,即1…(n -1)/2和(n+1)/2+1…0,放在天平的两端,较轻的一端里有假币,继续在较轻的这部分硬币中用同样的方法找出假币;若两端重量相等,则中间的硬币,即第 (n+1)/2枚硬币是假币。【C代码】下面是算法的C语言实现,其中: coins[]: 硬币数组first,last:当前考虑的硬币数组中的第一个和最后一个下标 #include int getCounterfeitCoin(int coins[], int first,int last){int firstSum = 0,lastSum = 0;int ì;If(first==last-1){ /*只剩两枚硬币*/if(coins[first] if((last - first + 1) % 2 ==0){ /*偶数枚硬币*/for(i = first;i lastSum){return getCounterfeitCoin(coins,first+(last-first)/2-1,last);}else{Return( 3 )}}} 【问题一】(6分)根据题干说明,填充C代码中的空(1)-(3)【问题二】(4分)根据题干说明和C代码,算法采用了( )设计策略。函数getCounterfeitCoin的时间复杂度为( )(用O表示)。【问题三】(5分)若输入的硬币数为30,则最少的比较次数为( ),最多的比较次数为( )。” 相关考题
考题 试题二(共 15分)阅读以下说明和C函数,将应填入 (n) 处的字句写在答题纸的对应栏内。【说明 1】函数Counter(int n, int w[])的功能是计算整数n的二进制表示形式中1的个数,同时用数组w记录该二进制数中1所在位置的权。例如,十进制数22的二进制表示为10110。对于该二进制数,1的个数为3,在w[0]中存入2(即21)、w[1]中存入4(即22)、w[2]中存入16(即24)。【C函数 1】int Counter(int n, int w[]){ int i = 0, k = 1;while ( (1) ) {if (n % 2) w[i++] = k;n = n / 2; (2) ;}return i;}【说明 2】函数 Smove(int A[], int n)的功能是将数组中所有的奇数都放到所有偶数之前。其过程为:设置数组元素下标索引i(初值为0)和j(初值为n-1),从数组的两端开始检查元素的奇偶性。若 A[i]、A[j]都是奇数,则从前往后找出一个偶数,再与 A[j]进行交换;若 A[i]、A[j]都是偶数,则从后往前找出一个奇数,再与A[i]进行交换;若 A[i]是偶数而A[j]是奇数,则交换两者,直到将所有的奇数都排在所有偶数之前为止。【C函数 2】void Smove(int A[], int n){ int temp, i = 0, j = n-1;if ( n 2 ) return;while ( i j ) {if ( A[i] % 2 == 1 A[j] % 2 == 1 ) { (3) ; }else if ( A[i] % 2 == 0 A[j] % 2 == 0 ) { (4) ; }else {if ( (5) ) {temp = A[i]; A[i] = A[j]; A[j] = temp;}i++, j--;}}}

考题 现在有16枚外形相同的硬币,其中一枚是假币,且已知假币比真币重量轻。先给定一架没有砝码的天平,问至少需要多少次称量才能找到这枚假币?A.3B.4C.5D.6

考题 现有16枚外形相同的硬币,其中有一枚比真币的重量轻的假币,若采用分治法找出这枚假币,至少比较( )次才能够找出该假币。A.3B.4C.5D.6

考题 阅读以下说明,回答问题,将解答填入对应的解答栏内。[说明] 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。main ( ){int n, i;printf ( "\n please input a number: \n");scanf ( "% d" ,u);printf ( "%d =" ,n);for((1)){while((2)){if((3)){ printf ("%d*",i);(4)}elsebreak;}}printf (“%d”,n);}

考题 阅读以下说明和流程图,回答问题1~2,将解答填入对应的解答栏内。[说明]下面的流程图描述了计算自然数1到N(N≥1)之和的过程。[流程图][问题1] 将流程图中的(1)~(3)处补充完整。[问题2] 为使流程图能计算并输出1*3+2*4+…+N*(N+2)的值,A框内应填写(4);为使流程图能计算并输出不大于N的全体奇数之和,B框内应填写(5)。

考题 阅读下列说明和流程图,将应填入(n)的字句写在对应栏内。【说明】下列流程图(如图4所示)用泰勒(Taylor)展开式sinx=x-x3/3!+x5/5!-x7/7!+…+(-1)n×x2n+1/(2n+1)!+…【流程图】计算并打印sinx的近似值。其中用ε(>0)表示误差要求。

考题 阅读以下说明和Java代码,回答问题1和问题2,将解答填写在对应栏内。【Java代码】class usethread implements (1) {int numusethread(int n){num=n;}public void (2) {for(int i=0;i<3;i++)System.out.println("running:"+num);System.out.println("finished:"+num);}public class multhread{public static void main(String args[]) (3) InterruptedException{Thread m1=new Thread(new usethread(1));Thread m2=new Thread(new usethread(2));m1.start();m2.start();m1.join();m2.join();}}【问题1】补充完整上面Java代码中(n)处。【问题2】写出上面Java代码运行的结果。

考题 阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。[说明]编写一个函数,输入为偶数时,调用函数求1/2+?/+…+1/n,当输入n为奇数时,调用函数1/1+1/3+…+1/n (利用指针函数)。[函数]include "stdio. h",main(){float peven (),podd (),dcall ();float sum;int n;while (1){scanf("%d",n);if (n>1)break;}if(n%2==0){printf("Even="):(1);}else{pfinff("Odd=");(2);}printf("%f",sum);}float peven (int n){float s;int is=1;for(i=2;i<=n;i+=2)(3);return (s);}float podd (n)int n;{float s;int i;s=0;for(i=1 i<=n;i+=2)(4);return (s);}float dcall(fp,n)float (*fp) ();int n;{float s;(5);returu (s);}

考题 将一枚硬币反复向上抛n次,以x和y分别表示正面朝上和反面朝上的次数,则x和y之间的相关系数是()。 A. -1B.0C.1/2D.1

考题 阅读下列说明,回答问题1至问题3,将解答填入的对应栏内。[说明]逻辑覆盖是通过对程序逻辑结构的遍历实现程序的覆盖,是设计白盒测试用例的主要方法之。以下代码由C浯言书写,请按要求回答问题。void cal (int n){int g, s, b, q;if( (n>1000) (n<2000) ){g=n % 10;s=n % 100 / 10;b=n / 100 % 10;q= n / 1000;if( (q+g) =={ s + b ) ){printf("%-5d",n);}}printf("\n");return;}请找出程序中所有的逻辑判断语句。请分析并给出分别满足100%DC(判定覆盖)和100%CC(条件覆盖)时所需的逻辑条件。假设n的取值范围是0<n<3000,请用逻辑覆盖法为n的取值设计测试用例,使用例集满足基本路径覆盖标准。请帮忙给出每个问题的正确答案和分析,谢谢!

考题 阅读以下说明和流程图,回答问题1-2,将解答填入对应的解答栏内。[说明]下面的流程图采用欧几里得算法,实现了计算两正整数最大公约数的功能。给定正整数m和 n,假定m大于等于n,算法的主要步骤为:(1)以n除m并令r为所得的余数;(2)若r等于0,算法结束;n即为所求;(3)将n和r分别赋给m和n,返回步骤(1)。[流程图][问题1] 将流程图中的(1)~(4)处补充完整。[问题2] 若输入的m和n分别为27和21,则A中循环体被执行的次数是(5)。

考题 阅读下列说明和C代码,回答问题 1 至问题 3,将解答写在答题纸的对应栏内。 【说明】 假币问题:有n枚硬币,其中有一枚是假币,己知假币的重量较轻。现只有一个天平,要求用尽量少的比较次数找出这枚假币。 【分析问题】 将n枚硬币分成相等的两部分: (1)当n为偶数时,将前后两部分,即 1...n/2和n/2+1...0,放在天平的两端,较轻的一端里有假币,继续在较轻的这部分硬币中用同样的方法找出假币: (2)当n为奇数时,将前后两部分,即1..(n -1)/2和(n+1)/2+1...0,放在天平的两端,较轻的一端里有假币,继续在较轻的这部分硬币中用同样的方法找出假币;若两端重量相等,则中间的硬币,即第 (n+1)/2枚硬币是假币。 【C代码】 下面是算法的C语言实现,其中: coins[]: 硬币数组 first,last:当前考虑的硬币数组中的第一个和最后一个下标 include stdio.h int getCounterfeitCoin(int coins[], int first,int last) { int firstSum = 0,lastSum = 0; int ; If(first==last-1){ /*只剩两枚硬币*/ if(coins[first] coins[last]) return first; return last; } if((last - first + 1) % 2 ==0){ /*偶数枚硬币*/ for(i = first;i ( 1 );i++){ firstSum+= coins[i]; } for(i=first + (last-first) / 2 + 1;i last +1;i++){ lastSum += coins[i]; } if( 2 ){ Return getCounterfeitCoin(coins,first,first+(last-first)/2;) }else{ Return getCounterfeitCoin(coins,first+(last-first)/2+1,last;) } } else{ /*奇数枚硬币*/ For(i=first;ifirst+(last-first)/2;i++){ firstSum+=coins[i]; } For(i=first+(last-first)/2+1;ilast+1;i++){ lastSum+=coins[i]; } If(firstSumlastSum){ return getCounterfeitCoin(coins,first,first+(last-first)/2-1); }else if(firstSumlastSum){ return getCounterfeitCoin(coins,first+(last-first)/2-1,last); }else{ Return( 3 ) } } }【问题一】 根据题干说明,填充C代码中的空(1)-(3) 【问题二】 根据题干说明和C代码,算法采用了( )设计策略。 函数getCounterfeitCoin的时间复杂度为( )(用O表示)。 【问题三】 若输入的硬币数为30,则最少的比较次数为( ),最多的比较次数为( )。

考题 阅读以下代码,回答问题:1至问题3 ,将解答填入答题纸的对应栏内。 【代码1】 includestdio.h void swap(int x, int y) { int tmp =x; x= y; y= tmp; } int maim() { int a= 3, b= 7; printf(a1= %d b1=%d\n,a,b); Swap( a, b); Printf(a2 = %d b2=%d\n,a,b); return 0; } 【代码2】 includestdio.h define SPACE //空格字符 Int main() { char str[128] = Nothing is impossible! ; int i,num =0,wordMark=0; for(i=0;str[i];i++) If(str[i]==SPACE) WordMark=0; else If(wordMark=0){ wordMark=1; num++; } Printf(%d/n,num) return 0; } 【代码3】 includestdio.h define SPACE //空格字符 int countStrs(char *); int main() { char str[128] = Nothing is impossible! ; Printf(%d/n,(1)(str)) return 0; } int countStrs(char *p) { int num=0, wordMark= 0; for(;(2); p++) { If((3)==SPACE) wordMark= 0; else if( !wordMark ) { wordMark = 1; ++num } } return (4) ; }【问题1】(4分) 写出代码1运行后的输出结果。 【问题2】(3分) 写出代码2运行后的输出结果。 【问题3】(8分) 代码3的功能与代码2完全相同,请补充3中的空缺,将解答写入答题纸的对应栏内。

考题 8个一元真币和1个一元假币混在一起,假币与真币外观相同,但比真币略重。问用一台天平最少称几次就一定可以从这9个硬币中找出假币?A.2次B.3次C.4次D.5次

考题 ●试题一阅读下列说明和流程图,将应填入(n)的字句写在答题纸的对应栏内。【说明】下列流程图(如图4所示)用泰勒(Taylor)展开式sinx=x-x3/3!+x5/5!-x7/7!+…+(-1)n×x 2n+1/(2n+1)!+…【流程图】图4计算并打印sinx的近似值。其中用ε(0)表示误差要求。

考题 阅读以下C代码,回答问题1至问题3,将解答填入答题纸的对应栏内。【C代码1】 float adjustSalary(int service_year,int age,float salary) { if( service_year 30 ) salary *= 1.2; } else salary *= 2.0; return salary;} 【C代码2】 void foo(int coin) { switch (coin) { case 1: printf("Cent\n"); case 5: printf("Nicke1\n");break; case 10: printf("Dime\n"); case 25: printf("Quarter\n"); }} 【C代码3】 int getSum(int n){ int t, i = 0, sum = 0; while ( i

考题 阅读以下代码,回答问题:1 至问题 3 ,将解答填入答题纸的对应栏内。【代码 1】#include void swap(int x, int y){int tmp =x; x= y; y= tmp;}int maim(){int a= 3, b= 7;printf("al= %d b1=%d\n",a,b); Swap( a, b);Printf("a2 = %d b2=%d\n”,a,b); return 0;} 【代码 2】#include#define SPACE ¨ //空格字符 Int main(){char str[128] =”Nothing is impossible! “; int i,num =0,wordMark=0; for(i=0;str[i];i++) If(str[i]=SPACE)WordMark=0;elseIf(wordMark=0){ wordMark=1;Mun++;} Printf(“%d/n”,num) retun 0; } 【代码 3】#include#define SPACE “//空格字符 int countStrs(char *); int main(){char str[128] = " Nothing is impossible! "; Printf(‘%d/n,(1)(str))retum 0; } int countStrs(char *p){int num=0, wordMark= 0; for(;(2);p++) {If((3)=SPACE)wordMark= 0;elseif( !wordMark ) { wordMark = 1;++mun}}retum (4) ;}【问题 1】(4 分)写出代码 1 运行后的输出结果。【问题 2】(3 分)写出代码 2 运行后的输出结果。【问题 3】(8 分)代码 3 的功能与代码 2 完全相同,请补充 3 中的空缺,将解答写入答题纸的对应栏内。

考题 阅读下列说明,回答问题1和问题2,将解答写在答题纸的对应栏内。 【说明】 Windows 系统的用户管理配置中,有多项安全设置,如图2-1 所示。

考题 阅读下列程序,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C 语言编写的程序,按要求回答问题。 main( ){int i,n; //1for(i=1;i

考题 阅读下列说明和C代码,回答问题?1?至问题?3,将解答写在答题纸的对应栏内。 【说明】 假币问题:有n枚硬币,其中有一枚是假币,己知假币的重量较轻。现只有一个天平,要求用尽量少的比较次数找出这枚假币。 【分析问题】 将n枚硬币分成相等的两部分: (1)当n为偶数时,将前后两部分,即?1...n/2和n/2+1...0,放在天平的两端,较轻的一端里有假币,继续在较轻的这部分硬币中用同样的方法找出假币: (2)当n为奇数时,将前后两部分,即1..(n -1)/2和(n+1)/2+1...0,放在天平的两端,较轻的一端里有假币,继续在较轻的这部分硬币中用同样的方法找出假币;若两端重量相等,则中间的硬币,即第?(n+1)/2枚硬币是假币。 【问题一】(6分) 根据题干说明,填充C代码中的空(1)-(3) 【问题二】(4分) 根据题干说明和C代码,算法采用了( ??)设计策略。 【问题三】(4分) 若输入的硬币数为30,则最少的比较次数为( ?),最多的比较次数为( ??)。

考题 阅读下列说明和 C 代码,回答问题 1 至 3,将解答写在答题纸的对应栏内 【说明】 n 皇后问题描述为:在一个 nXn 的棋盘上摆放 n 个皇后,要求任意两个皇后不能冲突, 即 任意两个皇后不在同一行、同一列或者同一斜线上。算法的基本思想如下: 将第 i 个皇后摆放在第 i 行,i 从 1 开始,每个皇后都从第 1 列开始尝试。尝试时判断 在 该列摆放皇后是否与前面的皇后有冲突,如果没有冲突,则在该列摆放皇后,并考虑摆 放 下一个皇后;如果有冲突,则考虑下一列。如果该行没有合适的位置,回溯到上一个皇后 考虑在原来位置的下一个位置上继续尝试摆放皇后,……,直到找到所有合理摆放方案。 【C 代码】 下面是算法的 C 语言实现。 (1)常量和变量说明 【问题 1】(8 分) 根据题干说明,填充 C 代码中的空(1)?(4)。 【问题 2】(3 分) 根据题干说明和 C 代码,算法采用的设计策略为 【问题 3】(4 分) 当 n=4 时,有 (6) 种摆放方式,分别为 (7) 。有2种摆法

考题 阅读下列说明,回答问题1至问题3,将解答填入的对应栏内。[说明]逻辑覆盖是通过对程序逻辑结构的遍历实现程序的覆盖,是设计白盒测试用例的主要方法之。以下代码由C浯言书写,请按要求回答问题。voidcal(intn){intg,s,b,q;if((n>1000)&&(n<2000)){g=n % 10;s=n % 100/ 10;b=n / 100 % 10;q= n / 1000;if((q+g) =={s+b ) ){printf("%-5d",n);}}printf("\n");return;}13、 [问题1](3分)请找出程序中所有的逻辑判断语句。14、 [问题2](6分)请分析并给出分别满足100%DC(判定覆盖)和100%CC(条件覆盖)时所需的逻辑条件。15、 [问题3](6分)假设n的取值范围是0<n<3000,请用逻辑覆盖法为n的取值设计测试用例,使用例集满足基本路径覆盖标准。

考题 现有80枚硬币,其中有一枚是假币,其重量稍轻,所有真币的重量都相同,如果使用不带砝码的天平称重,最少需要称几次,就可以找出假币?

考题 下列在柜员没收假币时处理错误的有()。A、发现假币时,谁发现谁没收,无需经他人复核B、对假人民币纸币,应当客户面加盖“假币”字样戳记C、假人民币硬币和外币硬币,用统一格式的专用袋加封,在封口处加盖“假币”字样戳记D、若客户对假币有异议的,可将盖有“假币”字样戳记的货币交客户验证后收回

考题 单选题将一枚硬币重复掷n次,以X和Y表示正面朝上和反面朝上的次数,则X、Y的相关系数等于(  )。A 1B -1C 0D 1/2

考题 问答题现有80枚硬币,其中有一枚是假币,其重量稍轻,所有真币的重量都相同,如果使用不带砝码的天平称重,最少需要称几次,就可以找出假币?

考题 多选题下列在柜员没收假币时处理错误的有()。A发现假币时,谁发现谁没收,无需经他人复核B对假人民币纸币,应当客户面加盖“假币”字样戳记C假人民币硬币和外币硬币,用统一格式的专用袋加封,在封口处加盖“假币”字样戳记D若客户对假币有异议的,可将盖有“假币”字样戳记的货币交客户验证后收回