重要提示: 请勿将账号共享给其他人使用,违者账号将被封禁!
查看《购买须知》>>>
当前位置: 首页 > 计算机类考试 > 计算机四级
网友您好, 请在下方输入框内输入要搜索的题目:
搜题

题目

[主观题]

论述题 3 :针对以下 C 语言程序,请按要求回答问题(18 分)已知 link.c 源程序如下:/*link.c 程序

论述题 3 :针对以下 C 语言程序,请按要求回答问题(18 分)

已知 link.c 源程序如下:

/*link.c 程序对单向链表进行操作 , 首先建立一个单向链表 , 然后根据用户的选择可以对其进行插入节点 、

删除节点和链表反转操作 */

#include

#include

typedef struct list_node *list_pointer; // 定义链表指针

typedef struct list_node{ // 定义链表结构

int data;

list_pointer link;

}list_node;

// 用到的操作函数:

list_pointer create(); // 建立一个单向链表

void insert(list_pointer *p_ptr, list_pointer node); // 在 node 后加入一个新的节点

void delete_node(list_pointer *p_ptr, list_pointer trail, list_pointer node);

// 删除前一个节点是 trail 的当前节点 node

void print(list_pointer ptr); // 打印链表节点中的值

list_pointer invert(list_pointer lead); // 反转链表

int main()

{

list_pointer ptr=NULL;

list_pointer node, trail;

list_pointer *p = &ptr;

int choose, location, i;

printf("you should create a link first:\n");

// 建立一个单向链表:

ptr=create(); /* ptr 指向链表的第一个节点 */

print(ptr);

// 根据用户的不同选择进行相应的操作:

printf("input number 0, you can quit the program\n");

printf("input number 1, you can insert a new node to link\n");

printf("input number 2, you can delete a node from the link\n");

printf("input number 3, you can invert the link\n");

printf("please input your choice\n");

scanf("%d", &choose);

while(choose!=0){

switch(choose){

case 1:

printf("you will insert a node to the link\n");

printf("please input the location of the node:\n");

scanf("%d", &location);

node = ptr;

i = 1;

while(i<location){

node = node->link;

i++;

}

insert(p, node); /* p 为指向 ptr 的指针 */

print(ptr);

break;

case 2:

printf("you will delete a node from the link\n");

printf("please input the location of the node:\n");

scanf("%d", &location);

node = ptr;

if(location ==1)

trail = NULL;

trail = ptr;

i = 1;

while(i<location){

trail = trail->link;

i++;

}

node = trail->link;

delete_node(p, trail, node);

print(ptr);

break;

case 3:

printf("you will invert the link\n");

ptr = invert(ptr);

print(ptr);

break;

default:

break;

return -1;

}

printf("please input your choice\n");

scanf("%d", &choose);

}

return 0;

}

// 根据用户的输入数值建立一个新的单向链表:

list_pointer create()

{

int i, current, length;

list_pointer p1, p2, head;

printf("please input the node number of the link:\n");

scanf("%d", &length);

printf("the number of the link is : %d\n", length);

printf("please input the data for the link node:\n");

i =0;

p1= p2= (list_pointer) malloc(sizeof(list_node));

head = p1;

for(i = 0; i

scanf("%d", ¤ t);

p1->data = current;

p2->link = p1;

p2 = p1;

p1 = (list_pointer) malloc(sizeof(list_node));

}

p2->link = NULL;

return head;

}

……

(1 )画出主函数 main 的控制流程图。(10 分)

(2 ) 设计一组测试用例 , 尽量使 main 函数的语句覆盖率能达到 100% 。 如果认为该函数的语句覆盖率无法达到 100% ,需说明原因。(8 分)

查看参考答案
更多“论述题 3 :针对以下 C 语言程序,请按要求回答问题(18 分)已知 link.c 源程序如下:/*link.c 程序”相关的问题

第1题

论述题3:针对以下C语言程序,请按要求回答问题下面是一个简单的C语言程序: (1)画出该函数的程序流

论述题3:针对以下C语言程序,请按要求回答问题

下面是一个简单的C语言程序:

论述题3:针对以下C语言程序,请按要求回答问题下面是一个简单的C语言程序: (1)画出该函数的程序流

(1)画出该函数的程序流程图。

(2)设计测试用例,分别使函数的各种逻辑覆盖率尽量达到100%。如果认为该函数的某种逻辑覆盖率无法达到100%,需要说明原因。

(3)设计特殊的测试用例,说明各种逻辑覆盖之间的关系。

点击查看答案

第2题

论述题3:针对以下C语言程序,请按要求回答问题下面是一个程序段(C语言),试设计基本路径测试的测试

论述题3:针对以下C语言程序,请按要求回答问题

下面是一个程序段(C语言),试设计基本路径测试的测试用例,设计出的测试用例要保证每一个基本独立路径至少要执行一次。

函数说明:当i flag=0;返回i count+100

当i flag=l;返回i count*10

否则 返回 i count*20

输入参数:int i count int i flag

输出参数:int i retum

程序代码如下:

论述题3:针对以下C语言程序,请按要求回答问题下面是一个程序段(C语言),试设计基本路径测试的测试论

(1)画出该函数的控制流程图。

(2)采用基本路径测试法设计一组测试用例,保证每个基本独立路径都至少执行一次。

点击查看答案

第3题

论述题3:简单谈一下你对穷举测试的理解,并按要求回答问题(1)穷举测试的方法对于所有项目程序都是

论述题3:简单谈一下你对穷举测试的理解,并按要求回答问题

(1)穷举测试的方法对于所有项目程序都是可行的么?

(2)若是针对小型的程序,穷举测试是可能的么?若是,说明此时采用穷举测试能否保证程序是百分之百正确呢?

点击查看答案

第4题

● 针对以下 C 语言程序段,对于(MaxNum,Type)的取值,至少需要(62)个测试用例能够满足判定覆盖的要

● 针对以下 C 语言程序段,对于(MaxNum,Type)的取值,至少需要(62)个测试用例能够满足判定覆盖的要求。

while (MaxNum-- > 0 )

{

if (10 == Type )

x = y * 2;

else

if (100 == Type )

x = y + 10;

else

x = y - 20;

}

(62)A.5 B. 4 C. 3 D. 2

点击查看答案

第5题

针对以下C语言程序段,对于(MaxNum,Type)的取值,至少需要(62)个测试用例能够满足判定覆盖的要求。while(MaxNum-->0){ if(10==Type) x=y* 2; else if(100==Type) x=y +10; else x=y-20;}

A.5

B.4

C.3

D.2

点击查看答案

第6题

阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】逻辑覆盖法是设计白盒测试用

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

【说明】

逻辑覆盖法是设计白盒测试用例的主要方法之一,通过对程序逻辑结构的遍历实现

程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。

阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】逻辑覆盖法是设计白盒测试用阅读

阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】逻辑覆盖法是设计白盒测试用阅读

【问题1] (6分)

请给出满足100%DC(判定覆盖)所需的逻辑条件。

【问题2] (10分)

请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。

【问题3](4分)

请给出问题2中控制流图的线性无关路径。

点击查看答案

第7题

针对以下C语言程序段,假设sta[10]=-1,对于x的取值,需要______个测试用例能够满足分支覆盖的要求。

int MathMine(int x)

{

int m=0;

int i;

for(i=x-1; i<=x+1; i++)

{

if (i<0) continue;

if (i>31) break;

if (sta[i]=-1) m++;

}

return m;

}

A.3

B.4

C.5

D.6

点击查看答案

第8题

● 针对以下C语言程序段,假设sta[10]= -1,对于 x 的取值,需要(56)个测试用例能够满足分支覆盖的要
求。

int MathMine(int x )

{

int m = 0;

int i;

for(i = x-1; i <= x + 1; i++ )

{

if (i < 0 ) continue;

if (i >31 ) break;

if (sta[i] == -1 ) m++;

}

return m;

}

(56)

A.3

B.4

C.5

D.6

点击查看答案

第9题

● 针对以下C语言程序段,假设sta[10]= -1,对于x的取值,需要__个测试用例能够满足分支覆盖的要求。
int MathMine(int x ) { int m = 0; int i; for(i = x-1; i <= x + 1; i++ ) { if (i < 0 ) continue; if (i >31 ) break; if (sta[i] == -1 ) m++; } return m; }

A.3

B.4

C.5

D.6

点击查看答案

第10题

(C语言)有以下程序main(){int a=1,b;for(b=1;b<=10;b++){if(a>=8)break; www.54yjs.c

(C语言)有以下程序

main()

{

int a=1,b;

for(b=1;b<=10;b++)

{

if(a>=8)break;

www.54yjs.cn

if(a%2==1) {a+=5;continue;}

a-=3;

}

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

}

程序运行的结果是

A、3B、4C、5D、6

点击查看答案
赏学吧APP
TOP
重置密码
账号:
旧密码:
新密码:
确认密码:
确认修改
购买搜题卡查看答案
购买前请仔细阅读《购买须知》
请选择支付方式
微信支付
支付宝支付
点击支付即表示你同意并接受《服务协议》《购买须知》
立即支付
搜题卡使用说明

1. 搜题次数扣减规则:

功能 扣减规则
基础费
(查看答案)
加收费
(AI功能)
文字搜题、查看答案 1/每题 0/每次
语音搜题、查看答案 1/每题 2/每次
单题拍照识别、查看答案 1/每题 2/每次
整页拍照识别、查看答案 1/每题 5/每次

备注:网站、APP、小程序均支持文字搜题、查看答案;语音搜题、单题拍照识别、整页拍照识别仅APP、小程序支持。

2. 使用语音搜索、拍照搜索等AI功能需安装APP(或打开微信小程序)。

3. 搜题卡过期将作废,不支持退款,请在有效期内使用完毕。

请使用微信扫码支付(元)
订单号:
遇到问题请联系在线客服
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系在线客服
恭喜您,购买搜题卡成功 系统为您生成的账号密码如下:
重要提示: 请勿将账号共享给其他人使用,违者账号将被封禁。
发送账号到微信 保存账号查看答案
怕账号密码记不住?建议关注微信公众号绑定微信,开通微信扫码登录功能
警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“赏学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

- 微信扫码关注赏学吧 -
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反赏学吧购买须知被冻结。您可在“赏学吧”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
- 微信扫码关注赏学吧 -
请用微信扫码测试
温馨提示
每个试题只能免费做一次,如需多次做题,请购买搜题卡
立即购买
稍后再说
赏学吧