问题 问答题

已知C源程序如下:

/ * A simple mailing list example using an array of structures. */

#include<stdion. h>

#include<stdlib. h>

define MAX 4

struct adck {

char name[30];

char street[40];

char city[20];

unsigned long int zip;

)addr_l ist[MAX];

void init_list(void),enter(void);

void deleteAddr(void),list(void);

int menu_select(void),find_free(void);

int main(void)

{

char choice;

init_list();/ * initialize the structure array * /

for(;;){

choice=menu_select();

switch(choice){

case 1:enter();

break;

case 2:deleteAddr();

break;

case 3:list();

break;

case 4:exit(0);

}

}

return 0;

}

/ * Initialize the list. */

void init list(void)

{

register int t;

for(t=0;t<MAX;++t)addr_list[t],name[0]=\0;

}

/ * Get a menu selection. * /

Int menu_select(void)

{

char s[80];

int c;

printf("1. Enter a namekn");

printf("2. Delete a name\n"):

printf("3. List the file\n");

printf("4. Quitkn"):

do{

printf("\nEnter your choice:");

gets(S);

c=atoi(s):

}while(c<1 || c>4);

return c;

}

/ * Input addresses into the list. * /

void enter(void)

{

int slot;

char s[80];

slot=find_free();

if(slot==-1){

printf("\nList Full"):

return;

}

printf("Enter name:");

gets(addr_list[slot]. name);

printf("Enter street:");

gets(addr_list[slot]. street);

printf("Enter city:");

gets(addr_list[slot]. city);

printf("Enter zip:");

gets(s);

addr_list[slot]. zip=strtoul(s,\0,10);

}

/ * Find an unused structure. * /

int find_free(void)

{

register int t;

for(t=0;addr_list[t]. name[0]&&t<MAX;++t);

if(t==MAX)return-1:/ * no slots free* /

return t;

}

/ * Delete an address. * /

void deleteAddr(void)

{

register int slot;

char s[80];

printf("enter record# :");

gets(s);

slot=atoi(s):

if(slot>=0&&slot<MAX)

addr_list[slot]. name[0]=\0;

}

/*Display the list on the screen. */

void list(void)

{

register int t:

for(t=0;t<MAX;++t){

if(addr_list[t]. name[0]){

printf("%s\n",addr_list[t]. name);

printf("%s\n",addr_list[t]. street);

printf("%s\n",addr_list[t]. city);

printf("%lu\n",addir_list[t]. zip);

}

}

printf("\n\n");

}

设计一组测试用例,使该程序所有函数的语句覆盖率尽量达到100%。如果认为该程序的语句覆盖率无法达到100%,需说明原因。

答案

参考答案:

设计测试用例时,关键需要注意将t的值达到Max,即起码要输入四个name才行,这样当t==Max才能为真,才可以执行相应的分支语句。 具体输入如下: 输入四个name:1 小明 凤凰街 南京 210000 1 小红 南京路 上海 120000 1 王明 达成路 上海 120000 1 李明 南京路 北京 100000 打算输入第五个:1 删除一个name:2 小明 列出所有: 3 退出: 4 这样,程序中每一条语句都能够被执行。 上述测试用例能够使每条语句均执行,故语句覆盖率能够达到100%。

单项选择题
单项选择题

案例1 新安公司是一家小型智能工程机械制造公司。该企业创业于1996年,是员工不足10人,资产仅20万元的一家私营企业。2006年该企业总资产5亿元,员工接近500人。短短十年时间企业取得如此发展,主要得益于公司内部的管理体制。主要是:第一,生产管理创新。公司对产品的开发高起点,严要求;依靠公司设置的关键质量控制点对产品的生产过程全程监控,同时,利用PDCA等方法,持续不断地提高产品的质量;加强员工的生产质量教育和岗位培训。第二,供应管理创新。新安公司把所需的原材料和外购配件,按照性能、技术含量、产品性能以及这些对最终成品影响的重要程度,划分为A、B、C三类,相应对它们设定不同的控制标准和控制措施,进而协助供应厂商达到质量控制要求。第三,服务管理创新。公司通过大量的市场调研和市场分析制定售前决策,进行市场策划,树立了公司形象;与经销商共同制定最佳点共同为消费者提供优质服务;公司建立了一支高素质的服务队伍,购置先进的维修设备,建立消费者投诉制度和用户档案制度,开展多种形式的售后服务工作,提高了消费者满意度。请根据案例1提供的情况,回答以下问题:(单项选择,每小题2分,共10分)

新安公司“依靠公司设置的关键质量控制点对产品的生产过程全程监控”,体现了管理控制中的什么原则?()

A.客观原则

B.重点原则

C.弹性原则

D.及时原则