在多边形的逐边裁剪法中,对于某条多边形的边(方向为从端点S到端点P)与某条裁剪线(窗口的某一边)的比较结果共有以下四种情况,分别需输出一些顶点.请问哪种情况下输出的顶点是错误的()A、S和P均在可见的一侧,则输出S和P.B、S和P均在不可见的一侧,则输出0个顶点.C、S在可见一侧,P在不可见一侧,则输出线段SP与裁剪线的交点.D、S在不可见的一侧,P在可见的一侧,则输出线段SP与裁剪线的交点和P.

题目

在多边形的逐边裁剪法中,对于某条多边形的边(方向为从端点S到端点P)与某条裁剪线(窗口的某一边)的比较结果共有以下四种情况,分别需输出一些顶点.请问哪种情况下输出的顶点是错误的()

  • A、S和P均在可见的一侧,则输出S和P.
  • B、S和P均在不可见的一侧,则输出0个顶点.
  • C、S在可见一侧,P在不可见一侧,则输出线段SP与裁剪线的交点.
  • D、S在不可见的一侧,P在可见的一侧,则输出线段SP与裁剪线的交点和P.

相似考题
参考答案和解析
正确答案:A
更多“在多边形的逐边裁剪法中,对于某条多边形的边(方向为从端点S到端点P)与某条裁剪线(窗口的某一边)的比较结果共有以下四种情况,分别需输出一些顶点.请问哪种情况下输出的顶点是错误的()A、S和P均在可见的一侧,则输出S和P.B、S和P均在不可见的一侧,则输出0个顶点.C、S在可见一侧,P在不可见一侧,则输出线段SP与裁剪线的交点.D、S在不可见的一侧,P在可见的一侧,则输出线段SP与裁剪线的交点和P.”相关问题
  • 第1题:

    Sutherland-Hodgeman多边形裁剪(逐边裁剪)算法中,对于多边形的某条边(方向为从端点S到端点P)与裁剪窗口的某条边的比较结果共有以下四种情况,分别需输出一些点,请问哪种情况下输出的点是错误的()

    A.S在裁剪边外侧而P在裁剪边内侧,则输出该边与裁剪边的交点I和P点

    B.S与P均在裁剪边内侧,则输出P点

    C.S在裁剪边内侧而P在裁剪边外侧,则输出该边与裁剪边的S点和交点I

    D.S与P均在裁剪边外侧,则不输出点


    参考答案:C

  • 第2题:

    在多边形的逐边裁剪法中,对于某条多边形的边(当前处理的顶点为P ,先前已处理的多边形顶点为S)与某条裁剪线(窗口的某一边)的比较结果共有以下四种情况,分别需输出一些顶点。请问哪种情况下输出的顶点是错误的? ( )

    A. S 和P 均在可见的一侧,则输出点P

    B. S 和P 均在不可见的一侧,则输出0个顶点

    C. S 在可见一侧,P 在不可见一侧,则输出线段SP 与裁剪线的交点和点S

    D. S 在不可见的一侧,P 在可见的一侧,则输出线段SP 与裁剪线的交点和P


    参考答案C

  • 第3题:

    在多边形的逐边裁剪法中,对于某条多边形的边(方向为从端点S到端点P),与某条裁剪线(窗口的某一边)的比较结果共有以下四种情况,分别需输出一些点.请问下列哪种情况描述是错误的?

    A、S和P均在可见的一侧,则输出S和P.

    B、S和P均在不可见的一侧,则输出0个顶点.

    C、S在可见一侧,P在不可见一侧,则输出线段SP与裁剪线的交点.

    D、S在不可见的一侧,P在可见的一侧,则输出线段SP与裁剪线的交点和P.


    参考答案:A

  • 第4题:

    下列程序的输出结果是______。 includef(char 8s){char *p=s;while(*p!='\0')p++;retur

    下列程序的输出结果是______。# include<stdio.h>f(char 8s){ char *p=s; while(*p!='\0')p++; return(p-s);}main(){ printf("%d\n",f("ABCDEF"));}

    A.3

    B.6

    C.8

    D.0


    正确答案:B

  • 第5题:

    以下程序的功能是:借助指针变量找出数组元素中最大值所在的位置并输出该最大值。请在输出语句中填写代表最大值的输出项。

    include<stdio.h>

    main( )

    {int a[10],*p,*S;

    for(p=a;p-a<10;p++)scanf(”%d”,p);

    for(p=a,s=a;p-a<10;p++)if(*p>*s)s=p;

    printf(”max=%d\n”,________);

    }


    正确答案:*s
    *s 解析:首先依次输入10个数,存入数组a中。循环语句依次查找数组的元素,当*P的值大于*s时,s=p即找到当前数组中最大值,然后再将其余元素与新的*S元素比较,最终求得最大值。所以填*s。

  • 第6题:

    在多边形的逐边裁剪法中,对于某条多边形的边(方向为从端点S到端点P)与某条裁剪线(窗口的某一边)的比较结果共有以下四种情况,分别需输出一些顶点。请问哪种情况下输出的顶点是错误的()。

    A、S和P均在可见的一侧,则输出S和P

    B、S和P均在不可见的一侧,则输出0个顶点

    C、S在可见一侧,P在不可见一侧,则输出线段SP与裁剪线的交点

    D、S在不可见的一侧,P在可见一侧,则输出线段SP与裁剪线的交点和P


    参考答案:D

  • 第7题:

    下面程序的输出结果是______。includemain(){char*p1="abc",*p2="ABC",s[20]="xyz"; s

    下面程序的输出结果是______。 #include<string.h> main() { char*p1="abc",*p2="ABC",s[20]="xyz"; strcpy(s+1,p2); strcat(s+2,p1); printf("%s\n",s); }

    A.xABCabc

    B.zABCabc

    C.yzabcABC

    D.xyzABCabc


    正确答案:A
    解析:strcpy(s+1,p2)是字符串复制,s中的内容变为"xABC",strcat(s+2,p1)是字符串连接(s的内容已不是初始化的内容,而是复制之后的内容),结果为"xABCabc"。

  • 第8题:

    以下程序的输出结果是【 】。

    char s[ ]="XYZQ";

    void main(){

    char *p;

    for(p = s; p < s+4; p++)

    cout<<p<<end1;

    }


    正确答案:XYZQ YZQ ZQ Q
    XYZQ YZQ ZQ Q

  • 第9题:

    以下程序运行后,输出结果是()includess(char*s){char*p=s; while(*p)p++ return(p-s);

    以下程序运行后,输出结果是( ) #include<stdio.h> ss(char *s) { char*p=s; while(*p) p++ return(p-s); } main() { char *a="abded" int i; i=ss(a) ; printf("%d\n",i); }

    A.8

    B.7

    C.6

    D.5


    正确答案:D

  • 第10题:

    设char*p=“abcde”,则printf(“%s”,p)的输出结果为( )。

    A.c

    B.cde

    C.b

    D.abcde


    正确答案:D

  • 第11题:

    在多边形的逐边裁剪法中,对于某条多边形的边(方向为从端点S到端点P)与某条裁剪线(窗口的某一边)的比较结果共有以下四种情况,分别需输出一些顶点。哪种情况下输出的顶点是错误的?()

    • A、S和P均在可见的一侧,则输出点P
    • B、S和P均在不可见的一侧,,则输出0个顶点
    • C、S在可见一侧,,P在不可见一侧,则输出线段SP与裁剪线的交点和S
    • D、S在不可见的一侧,P在可见的一侧,则输出线段SP与裁剪线的交点和P

    正确答案:C

  • 第12题:

    单选题
    在多边形的逐边裁剪法中,对于某条多边形的边(方向为从端点S到端点P)与某条裁剪线(窗口的某一边)的比较结果共有以下四种情况,分别需输出一些顶点.请问哪种情况下输出的顶点是错误的()
    A

    S和P均在可见的一侧,则输出S和P.

    B

    S和P均在不可见的一侧,则输出0个顶点.

    C

    S在可见一侧,P在不可见一侧,则输出线段SP与裁剪线的交点.

    D

    S在不可见的一侧,P在可见的一侧,则输出线段SP与裁剪线的交点和P.


    正确答案: B
    解析: 暂无解析

  • 第13题:

    下列关于Bezier曲线的性质,哪个是错误的()

    A.在起点和终点处的切线方向和控制多边形第一条边和最后一条边的方向一致

    B.在端点处的R阶导数,仅与R个相邻个控制顶点有关

    C.曲线及其控制多边形在起点处有什么几何性质,在终点处也有什么性质

    D.对于平面曲线而言,其与某直线的交点个数不多于该直线与控制多边形的交点个数


    参考答案:B

  • 第14题:

    在多边形的逐边裁剪法中,对于某条多边形的边(其方向为从端点S 到端点P )与某条裁剪线(即窗口的某一边)的比较结果共有以下四种情况,分别需输出一些顶点。请问哪种情况下输出的顶点是错误的?( )

    A S 和P 均在可见一侧,则输出P

    B S 和P 均在不可见一侧,则输出0个顶点

    C S 在可见一侧,P 在不可见一侧,则输出S 和线段SP 与裁剪线的交点

    D S 在不可见一侧, P 在可见一侧,则输出线段SP 与裁剪线的交点和P


    参考答案C

  • 第15题:

    下列给定程序中函数fun()的功能是:求出字符串中最后一次出现的子字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULL。例如,当字符串中的内容为abcdabfabcdx,t中的内容为ab时,输出结果应是abcdx。当字符串中的内容为abcdabfabcdx,t中的内容为abd时,则程序输出未找到的信息:Not found!

    请改正程序中的错误,使它能得出正确的结果。

    注意;不要改动main函数,不得增行或删行,也不得更改程序的结构。

    试题程序:

    include<stdio.h>

    include <conio.h>

    include <string.h>

    char *fun(char *s,char *t)

    {

    char *p,*r,*a;

    /*************found**************/

    a=Null;

    while(*s)

    { p=s;r=t;

    while(*r)

    /*************found**************/

    if(r= =p) {r++;p++;}

    else break;

    if(*r=='\0') a=s;

    s++;

    }

    return a;

    }

    main()

    {char s[100],t[100],,*p;

    clrscr();

    printf("\nPlease enter string S: ");

    scanf("%s",s);

    printf("\nPlease enter substring t: ");

    scanf("%s",t);

    p=fun(S,t);

    if(p) printf("\nThe result is:%s\n",p);

    else printf("\nNot found!\n ");

    }


    正确答案:(1)错误:a=NuLL; 正确:a=NULL; (2) 错误;if(r==p){r++;p++;} 正确:if(*r==*p){r++;p++;}
    (1)错误:a=NuLL; 正确:a=NULL; (2) 错误;if(r==p){r++;p++;} 正确:if(*r==*p){r++;p++;} 解析:题目要求将最后一次出现的输入字符后面的字符串做一复制处理,并在主函数中输出从此地址开始的字符串。 a=NuLL;是明显的常识性错误。题目中已经定义了指针变量chaf *p,*r,*a;,循环条件应该是if(*r==*p){r++;p++;},而非iRf(r==p) {r++;p++;}。

  • 第16题:

    以下程序运行后的输出结果是( )。

    include

    char*ss(char*s)

    {char*p,t;

    P=s+1;t=*s;

    while(*p){ *(P-1)=*P;P++;}

    *(P-1)=t;

    return s;

    }

    main()

    {char*p,str[10]="abcdefgh";

    p=ss(str);

    printf("%s\n",p);

    }


    正确答案:bcdefgha
    bcdefgha

  • 第17题:

    阅读以下程序说明和C程序,将应填入(n)处的字句,写在对应栏内。

    【程序说明】

    某网络由n个端点组成,这些端点被物理地分成若干个分离的端点组。同一组内的两件端点i和j,它们或直接相连,或间接相连(端点i和端点j间接相连是指在这两件端点之间有一个端点相连序列,其中端点i和j分别与这相连序列中的某个端点直接相连)。网络的n个端点被统一编号为0,1,…,n-1。本程序输入所有直接相连的端点号对,分别求出系统各分离端点组中的端点号并输出。

    程序根据输入的直接相连的两件端点号,建立n个链表,其中第i个链表的首指针为s[i],其结点是与端点i直接相连的所有端点号。

    程序依次处理各链表。在处理s[i]链表中,用top工作链表重新构造s[i]链表,使s[i]链表对应系统中的一个端点组,其中结点按端点号从小到大连接。

    【程序】

    inelude

    define N 100

    typeef struct node{

    int data;

    struct node *link;

    }NODE;

    NODE * s[N];

    int i,j,n,t;

    NODE *q,*p,*x,*y,*top;

    main()

    {

    printf(“Enter namber of components.”);

    scanf(“%d”,&n);

    for(i=0;i<n;i++) printf(“Enter pairs.\n”);

    while(scanf(“%d%d”,&i,&j)==2)

    { /*输入相连端点对,生成相连端点结点链表*/

    p=(NODE*)malloc(sizeof(NODE));

    p→data=j;p→link=s[i];s[i]=p;

    p=(NODE*)malloc(sizeof(NODE));

    p→data=i;p→link=s[j];s[j]=p;

    }

    for(i=0;i<n;i++) /*顺序处理各链表*/

    for(top=s[i], (1);top! =NULL;)

    { /*将第i链表移入top工作链表,并顺序处理工作链表的各结点*/

    q=top;

    (2);

    if(s¨[j=q→data]!=NULL)

    { /将j链表也移入工作链表*/

    for(p=s[j];p→link! =NULL;p= p→link);

    p→link= top;top=s[j];

    (3);

    }

    /*在重新生成的第i链表中寻找当前结点的插入点*/

    for(y=s[i]; (4);x=y,y=y→link);

    if(y!=NULL && y→data==q→data)

    free(q); /*因重新生成的第i链表已有当前结点,当前结点删除*/

    else{

    (5);

    if(y ==s[i])s[i]=q;

    else x→link=q;

    }

    }

    for(i =0;i < n;i++)

    {/*输出结果*/

    if(s[i]==NULL)continue;

    for(p=s[i];p!=NULL;){

    printf(“\t%d”,p→data);

    q=p→link;free(p);p=q;

    }

    printf(“\n”);

    }

    }


    正确答案:(1)s[i]=NULL
    (1)s[i]=NULL 解析:将s[i]赋给top,s[i]置为空作为循环的初始条件,循环至top为空。

  • 第18题:

    以下程序运行后,输出结果是______。includess(char*s){char *p=s; while(*.p)p++; retu

    以下程序运行后,输出结果是______。#include<stdio.h>ss (char *s){ char *p=s; while(*.p)p++; return(p-s);}main(){ char *a="abded"; int i; i=ss((A); print ("%d\n",i);}

    A.8

    B.7

    C.6

    D.5


    正确答案:D

  • 第19题:

    以下程序的输出结果是()。includeint fun (char*s){char *p=s;while (*p!='\0,) p++

    以下程序的输出结果是( )。 #include<iostream.h> int fun (char*s) { char *p=s; while (*p!='\0,) p++: return (p-s): } void main() { cout<<fun (" ABCDEF ")<<endl: }

    A.3

    B.6

    C.8

    D.0


    正确答案:B

  • 第20题:

    以下程序运行后的输出结果是【】。 include void main(){char s[]=“123456”,*p;for(p=s

    以下程序运行后的输出结果是【 】。

    include<iostream.h>

    void main(){

    char s[]=“123456”,*p;

    for(p=s; p<s+2; p++)

    cout<<p<<end1;

    }


    正确答案:123456 23456
    123456 23456

  • 第21题:

    若有如下程序: void a(char*p,char c) {while(*p) { if(*p==c)*p=c-'b'+'B';; p++; } } main() {char s[50]="abcdeeffgee",b='e'; a(s,b);printf("%s\n",s); } 则程序运行后的输出结果是( )。

    A.Abcdeeffgee

    B.ABCDeeFFGee

    C.abcdEEffgEE

    D.ABCDEEFFGEE


    正确答案:C
    解析:函数a的功能是将字符数组s中的小写字母e变为大写字母,其余字符不变,4个选项中只有C符合题意。

  • 第22题:

    下面程序段的输出结果是【 】。

    p = 0

    s = 0

    Do

    p = p + 2

    s = s + p

    Loop While p<11

    Print “s=”; s


    正确答案:s=42
    s=42

  • 第23题:

    单选题
    在多边形的逐边裁剪法中,对于某条多边形的边(方向为从端点S到端点P)与某条裁剪线(窗口的某一边)的比较结果共有以下四种情况,分别需输出一些顶点。哪种情况下输出的顶点是错误的?()
    A

    S和P均在可见的一侧,则输出点P

    B

    S和P均在不可见的一侧,,则输出0个顶点

    C

    S在可见一侧,,P在不可见一侧,则输出线段SP与裁剪线的交点和S

    D

    S在不可见的一侧,P在可见的一侧,则输出线段SP与裁剪线的交点和P


    正确答案: B
    解析: 暂无解析