对于如下这段函数,描述正确的是: int isLeap (int year ) { int result = 0; if((year%4 == 0 year%100 != 0 ) || (year%400 == 0 ) ) result = 1; return result; }A.如果要满足语句覆盖,至少需要设计2个测试用例#B.至少需要设计2个测试用例,才能满足判定覆盖#C.假设满足语句覆盖指标的测试用例集合为T,如果将函数中的条件判断改为if…else…的形式,则不修改测试用例集合T,就能使之满足修改后代码的语句覆盖指标#D.由测试用例year=2016和year=2018构成的集合可同时满足判定覆盖和条件覆盖指标

对于如下这段函数,描述正确的是: int isLeap (int year ) { int result = 0; if((year%4 == 0 && year%100 != 0 ) || (year%400 == 0 ) ) result = 1; return result; }

A.如果要满足语句覆盖,至少需要设计2个测试用例#B.至少需要设计2个测试用例,才能满足判定覆盖#C.假设满足语句覆盖指标的测试用例集合为T,如果将函数中的条件判断改为if…else…的形式,则不修改测试用例集合T,就能使之满足修改后代码的语句覆盖指标#D.由测试用例year=2016和year=2018构成的集合可同时满足判定覆盖和条件覆盖指标
参考答案和解析
main函数可以调用别的函数,但不能被别的函数调用;main函数是C语言程序的入口函数

相关考题:

有以下程序:class Date{public:Date(int y,int m,int d);{year=y;month=mday=d;}Date(int y=2000){year=y;month=10;day=1;}Date(Date d){year=d.year;month=d.month;day=d.day;}void print( ){cout<<year<<"."<<month<<"."<<day<<endl;}private:int year,month,day;};Date fun(Date d){Date temp;temp=d;return temp;}int main( ){Date datel(2000,1,1),date2(0,0,0);Date date3(datel);date2=fun(date3);return 0;}程序执行时,Date类的拷贝构造函数被调用的次数是A.2B.3C.4D.5

请补充fun函数,该函数的功能是:判断一个年份是否为闰年。例如,1900年不是闰年,2004是闰年。[注意] 部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。[试题源程序]include<stdio.h>include<conio.h>int fun(int n){int fiag=0;if(n%4==0){if( (1) )fiag=1;}if( (2) )flag=1;return (3) ;}void main(){int year;clrscr();printf("Input the year:");scanf("%d", &year);if(fun(year))printf("%d is a leap year.\n", year);elseprintf("%d is not a leap year.\n", year);}

阅读以下说明和C语言函数,填补空缺。[说明]已知1900年1月1日是星期一,下面的函数count_5_13(int year)用于计算给定的年份year中有几个“黑色星期五”。“黑色星期五”指既是13日又是星期五的日期。函数count_5_13(int year)首先算出年份year的1月13日是星期几,然后依次计算每个月的13日是星期几,若是星期五,则计数。程序中使用了函数isLeapYear(int year),其功能是判断给定年份是否为闰年,返回值为1(或0)分别表示year是(或不是)闰年。[C语言函数]int Count_5_13(int year){int date; /*date为0表示星期日,为1~6分别表示星期一至星期六*/long days=0; /*days记录天数*/int m, y, c=0; /*c用于表示黑色星期五的个数*/if(year<1900) return-1;/*计算从1900年1月1日起,至给定年份year的1月13日间隔的天数*/days=12;for(y=1900; y<year; y++) {days +=365;if (iSLeapYear(Y)) ________ ;}date=((days%7)+1)%7;/*算出给定年份year的1月13日是星期几+/c=( ________ )?1:0;for(m=1; ________ ; m++) {switch(m) {case 1: case 3: case 5: case 7: case 8: case 10: case 12:days=31; break;case 4: case 6: case 9: case 11:days=30; break;case 2: days=28;if( ________ )days=29;break;}/*end of switch*/date=((days%7)+ ________ )%7;if (date==5) c++;} /*end of for*/return c;}

阅读下列说明,回答问题1至问题3。【说明】以下代码由C语言书写,能根据指定的年、月计算当月所含天数。int GetMaxDay( int year, int month ){int maxday = 0;if ( month >= 1 month <= 12 ){if ( month == 2 ){if ( year % 4 == 0 ){if ( year % 100 == 0 ){if ( year % 400 == 0 )maxday = 29;elsemaxday = 28;}elsemaxday = 29;}elsemaxday = 28;}else{if ( month == 4 || month == 6 || month == 9 || month == || )maxday = 30;elsemaxday = 31;}}return maxday; }请画出以上代码的控制流图。请计算上述控制流图的环路复杂度V(G)。假设year的取值范围是1000<year<2001,请使用基本路径测试法为变量year、 month设计测试用例(写出year取值、month取值、maxday预期结果),使之满足基本路径覆盖要求。请帮忙给出每个问题的正确答案和分析,谢谢!

阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。【说明】设计一个日期类Date包括年、月、日等私有数据成员。要求实现日期的基本运算,如某日期加上天数、某日期减去天数、两日期相差的天数等。在Date类中设计如下重载运算符函数:Date operator + (int days) : 返回某日期加上天数得到的日期。Date operator - (int days) : 返回某日期减去天数得到的日期。int operator - (Dateb): 返回两日期相差的天数。【程序】include<iostream.h>int day tab[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};//day_tab二维数组存放各月天数,第一行对应非闰年,第二行对应闰年class Date{int year, month, day //年,月,日int leap(int); //判断是否闰年int dton(Date)Date ntod(int)public:Date() { }Date (int y, int mint d) I year = y; month = m; day = d;}void setday(intd){day = d;}void setmonth(int m) {month = m;}void setyear(int y) {year =y;}int getday() {return day;}int getmonth() {return month:}int getyear() {return yea;}Date operator + (int days) //+运算符重载函数{static Date date;int number =(1)date = ntod(number)return date}Date operator - (int days) //-运算符重载函数{staffs Date date;int number=(2);number - = days;date = ntod(number)return date;}int operator - (Date b) //-运算符重载函数{int days=(3);return days;}void disp(){cout<<year<<"."<<month<<". "<<day<<endl;}};int Date: :leap( int year)if((4)) //是闰年return 1; //不是闰年elsereturn0:}int Date:: dton( Date d) //求从公元0年0月0日到d日期的天数{inty,m,days =0;for(y=1;y<=d. year;y++)if((5))days+ =366; //闰年时加366天else days + = 365; //非闰年时加365天for(m =0;m<d. month-1;m++)if((6))days += day_tab[1] [m];elsedays +=day_tab[0] [m];days + = d. day;return days;}Date Date::ntod(intn) //将从元0年0月0日的天数转换成日期{int y=1,m = 1,d,rest = n,lp;while(1){ if(leap(y))if(rest<= 366) break;else rest - = 366;else //非闰年if(rest = 365 ) break;else rest-=365;

从下列的3道式题(试题五至试题七)中任选1道解答。如果解答的试题数超过1道,则题号小的1道解答有效。阅读以下说明和C++码,将应填入(n)处的字名写在的对应栏内。[说明] 利用c++的各种控制语句编写一个万年历程序,要求:显示任何年份的日历,日历以月份顺序排列,每月以星期顺序排列,类似于一般挂历上的格式。本程序包含如下两个函数:Leap ()用于判定指定的年份是闰年,Week ()用于计算year年份的1月1日是星期几,其判定规则为:(1) 如果year 年份为1994年,则为星期六。(2) 如果year 年份大于1994年,则星期值weekno 按下列公式计算:differ=(year-1994)*(365%6)+(year-1993)/4-(year-2001)/100+(year-2001)/400 date=6+differ%7weekno=(date6)? date-7:date(3) 如果year 年份小于1994年,则星期值weekno 按下列公式计算:differ=(1994-year)*(365%7)+(1996-year)/4-(2001-year)/100+(2000-year)/400 weekno=6-dder%7include "iostream. h"include "iomanip. h"int leap(int n){if( (1) )return 0elsereturn 1;}int week( int year ){int a1, differ, date, weekno;if (year = = 1994)a1 =0;else if (year > 1994)a1=1;else a1= -1;switch(a1){case 0: return 6; break;case 1:{(2)date = 6 + differ% 7; weekno = ( date > 6) ? date - 7 date;}return weekno; break;case - 1:{differ = ( 1994 - year) * (365%7) + (1996 - year)/4 - (2001 - year)/100 + (2000 - year)/400;weekno =6-differ%7; } return weekno; break;}}void main( )}int i,year,m2,n,j;cout < < “Please input 某年数:”;cin> >year;if ( ! leap(year) )(3);elsem2 =28;int month [12]: {31 ,m2,31,30,31,30,31,31,30,31,30,31 };(4)for ( i=0; i<12; i+ + ){cout< < < <end1< <setw(4*n) < <";for(j=1 ;j< =month [i] ;j+ +){cout< <setw(4) < <j;n+ +;if(n> =7){(5)cout < < end1;}}}}

下面程序是判断某一个是否为闰年,请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。(闰年的条件是符合下面两者之一:①能被4整除,但不能被100整除;②能被4整除,又能被100整除)。注意:不改动程序的结构,不得增行或删行。import java.io.*;public class LeapYear{public static void main(String args[]){int year=1979;if((year %4= =0 || year % 100 !=0) || (year % 400= =0))System.out.println(year+"是闰年.");elseSystem.out.println(year+"不是闰年。");year=2000;boolean leap;if(year % 4 !=0)leap=false;else if(year % 100 !=0)leap=true;else if(year % 400 !=0)leap=false;elseleap=true;if(______)System.out.println(year+"是闰年。");elseSystem.out.println(year+"不是闰年。");year=2010;if(year % 4= =0){if(year % 100= =0){if(year % 400= =0)leap=true;else______}elseleap=false;}if(1eap= =true);System.out.println(year+"是闰年。");elseSystem.out.println(year+"不是闰年。");}}

有以下程序: class Date { public: Date(int y,int m,int D) ; { year =y; month=m; day=d; } Date(int y=2000) { year=y; month=10; day=1; } Date(Date D) { year=d.year; month=d.month; day=d.day; } void print () { cout<<year<<"."<<month<<"."<<day<<end1; } private: int year,month,day; }; Date fun(Date D) { Date temp; temp=d; return temp; } int main() { Date date1(2000,1,1),date2(0,0,0); Date date3(date1); date2=fun(date3); return 0; } 程序执行时,Date类的拷贝构造函数被调用的次数是A.2B.3C.4D.5

下列程序段: int result; int a=17,b=6; result=(a%b>4)?a%b:a/bSystem.out.println(result); 的结果为 ( )A.0B.1C.2D.5

针对下列程序段,需要(58)个测试用例可以满足分支覆盖的要求。 int IsLeap(int year) { if(year % 4==0) { if((year % 100==0) { if(year % 400==0) leap=1; else leap=0; } else leap=l; } else leap=0; return leap; }A.3B.4C.6D.7

假定a=3,下列程序的运行结果是()。ineludeint fun(int n);void main(){cout 假定a=3,下列程序的运行结果是( )。 #inelude<iostream.h> int fun(int n); void main() { cout<<"Please input a number:"; int a,result=0; cin>>a; result=fun(a); tout<<result<<end1; } intfun(int n) { int p=1,result=0; for(int i=1;i<=n;i++) { p*=i; result+=p; } return result; )A.4B.8C.9D.20

阅读以下说明和C++抖程序,将应填入(n)处的字句写在答题纸的对应栏内。【说明】下面程序的功能是计算并输出某年某月的天数。【C++程序】include<iostream>using namespace std;(1) Month{Jan,Feb,Mar,Art,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec};class Date{public:Date(int year,Month m_month){(2) =year;if (m_month<Jan‖m_month>Dec) month=Jan;else month=m_month;};~Date(){};bool IsLeapYear(){return ((year%4==0 year%1001!=0)‖year%400==0);};int CaculateDays(){switch( (3) ){case Feb:{if( (4) )return29;e1Se return 28;}case Jan:case Mar:case May:case Jul:case AUg:case Oct:case Dec:retllrn 31;case Apr:case Jun:Case Sep:case Nov:roturu30;}};private:int year;Month month;};void main(){Date day(2000,Feb);tout<<day. (5) ();}

阅读以下说明和C语言函数,将应填入(n)处。【说明】已知1900年1月1日是星期一,下面的函数count_5_13(int year)用于计算给定的年份year中有几个“黑色星期五”。“黑色星期五”指既是13日又是星期五的日期。函数count_5_13(int year)首先算出年份year的1月13日是星期几,然后依次计算每个月的13日是星期几,若是星期五,则计数。程序中使用了函数isLeapYear(int year),其功能是判断给定年份是否为闰年,返回值为1(或0)表示year是(或不是)闰年。【C语言函数】int count_5_13(int year){int date; /*date为0表示星期日,为1~6分别表示星期一至星期六*/long days=0; /*days记录天数*/int m,y,c=0; /*c用于表示黑色星期五的个数*/if (year<1900) return-1;/*计算从1900年1月1日起至给定年份year的1月13日间隔的天数*/days=12;for (y= 1900; y < year; y++) {days +=365;if (isLeapYear(y))(1);}date=((days%7) +1) %7; /*算出给定年份year的1月13日是星期几*/c=((2)) ?1:0;for(m=1;(3);m++) {switch (m) {case 1:case 3: case 5: case 7:case 8:case 10:case 12:days=31; break;case 4: case 6: case 9: case 11:days=30; break;case 2:days=28;if((4)) days=29;break;}/*end of switch*/date=((days%7)+ (5) )%7;if (date==5) c++;} /*end of for*/return c;}

下列语句片段: int result; int a=17,b=6; result=(a%b>4) ? a%b:a/b; System.out.println(result);A.0B.1C.2D.5

阅读下列说明,回答问题1至问题3。【说明】使用基本路径法设计出的测试用例能够保证程序的每一条可执行语句在测试过程中至少执行一次。以下代码由C语言书写,请按要求回答问题。int IsLeap(int year){if(year% 4==0){if((year % 100==0){if( year % 400==0'leap=1;eIseleap=0;}elseleap=1;elseleap=0;return leap;}请画出以上代码的控制流图。请计算上述控制流图的V(G)。假设的取值范围是1000<year<2001,请使用基本路径测试法为变量year设计测试用例,使之满足基本路径覆盖的要求。请帮忙给出每个问题的正确答案和分析,谢谢!

阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。【说明】下面程序的功能是计算并输出某年某月的天数,函数IsLeap Year()能够判断是否是闰年。【C++程序】include < iostream >using namespace std;(1) Month {Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec };class Date {public:Date( int year, Month m_ month) {this→year = year;if( (2) ) month: Jan;else month = m_ month;};~Date(){};bool IsLeap Year( ) {return ((year%4= =0 year% 100 ! =0)|| year%400= =0);};int CaculateDays( ) {switch(m_month ) {case (3) ;{if (4) return 29;else return 28;}case Jan: case Mar: case May: case Jul: case Aug: case Oct: case Dec: return 31;case Apr: case Jun: case Sop: case Nov: return 30;}}private:int year;Month month;};void main( ) {Date day(2000,Feb);cout < <day. (5) ( );}

以下程序执行后输出的结果是【】。 include using namespace std; int fac(int a,int b){ 以下程序执行后输出的结果是【 】。include<iostream>using namespace std;int fac(int a,int b){return(b-a)*a;}int main(){int x=3,y=4,z=5,result;result=fac(fac(x,y),fac(x,z));cout<<result<<endl;return 0;}

【说明】 使用基本路径法设计出的测试用例能够保证程序的每一条可执行语句在测试过程中至少执行一次。以下代码由C语言书写,请按要求回答问题。 int isLeap (int year) { if (year % 4 == 0) { if (year % 100 == 0) { if ( year % 400 == 0) leap = 1; else leap = 0; } else leap = 1; } else leap = 0; return leap; } 【问题1】(3分) 请画出以上代码的控制流图。

请补充函数fun(),该函数的功能是:判断某一个年份是否为闰年。例如,1900年不是闰年,2004是闰年。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:include<stdio.h>include<conio.h>int fun(int n){int flag=0;if (n%4=0){if (【 】)flag=1;}if (【 】)flag=1;return【 】;}main(){int year;clrscr();printf("Input the year:");scanf("%d", year);if (fun(year))printf("%d is a leap year. \n", year);elseprintf("%d is not a leap year.\n",year);}

有以下程序: class Date { public: Date(int y,int m,int d); { year = y; month = m; day = d; } Date(int y = 2000) { year = y; month = 10; day = 1; } Date(Date d) { year = d.year; month = d.month; day = d.day; } void print() { cout<<year<<"."<<month<<"."<<day<<endl; } private: int year,month,day; }; Date fun(Date d) { Date temp; temp = d; resurn temp; } int main () { Date date1 (2000,1,1),date2 (0,0,0); Date date3 (date1); date2 = fun(date3); return 0; } 程序执行时,Date类的拷贝构造函数被调用的次数是A.2B.3C.4D.5

以下代码用于判断闰年,由C 语言书写。其对应的控制流图如下图所示。 请按要求回答问题。 int isLeap(int year){ int leap; if (year % 4 = = 0){ if (year % 100 = = 0){ if ( year % 400 = = 0) leap = 1; else leap = 0; } else leap = 1; } else leap = 0; return leap; } (1)请画出控制流图,并计算圈复杂度V(G)。 (2)找出独立路径。

假定a=3,下列程序的运行结果是()。includeint fun(int n);void main(){cout 假定a=3,下列程序的运行结果是( )。 #include<iostream.h> int fun(int n); void main() { cout<<"Please input a number:"; int a,result=0; cin>>a; result=fun(a); cout<<result<<end1; } int fun(int n) { int p=1,result=0; for(int i=1;i<=n;i++) { p*=i; result +=p; } return result; }A.4B.8C.9D.20

阅读以下说明和C代码,填补代码中的空缺,将解答填入答题纸的对应栏内。【说明】 某文本文件中保存了若干个日期数据,格式如下(年/月/日): 2005/12/1 2013/2/29 1997/10/11 1980/5/15 .... 但是其中有些日期是非法的,例如2013/2/29是非法日期,闰年(即能被400整除或者能被4整除而不能被100整除的年份)的2月份有29天,2013年不是闰年。现要求将其中自1985/1/1开始、至2010/12/31结束的合法日期挑选出来并输出。 下面的C代码用于完成上述要求。 【C代码】 include stdio.h typedef struct{ int year, month, day;/* 年,月,日*/ }DATE; int isLeap Year(int y) /*判断y表示的年份是否为闰年,是则返回1,否则返回0*/ { return((y%4==0 y%100!=0)Il(y%400==0)); } int isLegal(DATE date) /*判断date表示的日期是否合法,是则返回1,否则返回0*/ { int y=date.year,m= date.month,d=date.day; if (y1985 II y2010 II m1 II m12 II dl II d31) return 0; if((m==4 ll m==6 ll m==9 II m==11) (1) ) return 0; If(m==2){ if(isLeap Year(y) (2) ) return 1; 。 else if (d28) return 0; } return 1; } Int Lteq(DATE d1,DATE d2) /*比较日期d1和d2,若d1在d2之前或相同则返回1,否则返回0*/ { Long t1,t2; t1=d1.year*10000+d1.month*100+d1.day; t2=d2.year*10000+d2.month*100+d2.day; if( (3) ) return 1; else return 0; } int main() { DATE date,start={1985,1,1},end={2010,12,30}; FILE*fp; fp=fopen(d.txt,r); If( (4) ) return-1; while(!feof(fp)){ if(fscanf(fp,%d%d%d,date.year,date.month,date.day)!=3) break; if( (5) ) /*判断是否为非法日期 */ continue; if( (6) ) /*调用Lteq判断是否在起至日期之间*/ printf(%d%d%d\n,date.year,date.month,date.day); } fclose(fp); Return 0; }

有如下程序: public class MethLoad { public static void main(String args[]) { MethLoad classObj=new MethLoad(); classObj.methtest(4); classObj.methtest(0); } void methtest(double d) { double sum=2*d; System.out.println("The result is:"+sum); } void methtest(int n) { int sum=4*n; System.out.println("The result is:" +sum); } }程序的运行结果为( )。A.The result is:16 The result is:0B.The result is:0 The result is:16C.The result is:8 The result is:0D.The result is:0 The result is:8

● 针对下列程序段,需要(58)个测试用例可以满足分支覆盖的要求。int IsLeap(int year){if ( year % 4 == 0 ){if ( ( year % 100 == 0 ){if ( year % 400 == 0 )leap = 1;elseleap = 0;}elseleap = 1;}elseleap = 0;return leap;}(58)A.3B.4C.6D.7

针对下列程序段,需要( )个测试用例可以满足分支覆盖的要求。int IsLeap(int year){if(year%4==0){if((year%100==0){if(year%400==0)leap=1;else leap=0;}else leap=l;}else leap=0;return leap;}A.3B.4C.6D.7

能完全正确表示“year是闰年”的逻辑表达式是()。A、 year mod 4=0B、 year mod 400=0C、(year mod 400=0)or(year mod 4=0)and(year mod 1000)D、(year mod 400=0)and(year mod 4=0)or(year mod 1000)

单选题能完全正确表示“year是闰年”的逻辑表达式是()。A year mod 4=0B year mod 400=0C(year mod 400=0)or(year mod 4=0)and(year mod 1000)D(year mod 400=0)and(year mod 4=0)or(year mod 1000)