当前位置:IT认证>计算机二级

问题:

[单选] 设变量已正确定义,则以下能正确计算f=n!的程序是(  )。

A . f=0;for(i=1;i<=n:i+十)f*=i;
B . f=1for(i=1:i<n;i十+)f*=i;
C . f=l:for(i=n;i>1;i十+)f*=i;
D . f=1:for(i=n;j>=2;j--)f*=i;

若变量已正确定义为float型,要通过输入语句:scanf(”%f%f%f”,&a,&b,&c);给a赋值11.0,b赋值22.0,e赋值33.0,不正确的输入形式是(  )。 11  2233。 11.0,22.0,33.0。 11.0 22.0  33.0。 1122。 视图设计一般有3种设计次序,下列不属于视图设计次序的是(  )。 自顶而下。 由内向外。 由外向内。 自底向上。 已知有如下结构体:struct sk{  int a;float b;}data,*p;若有P一8Ldata,则对data的成员a引用正确的是(  )。 (*p).data.a。 (*p).a;。 p->data.a。 P.data.a。 下列程序:int fun(int x[],int n){  static int sum=0,i;for(i=0;i<n;H++)sum+=x[i];return  sum:main(){int a[]={1,2.3,4,5),b[]={6,7,8,9),s=0;s==fun(a,5)+fun(h,4),printf(”%d\n”.s);f程序执行后的输出结果是(  )。 45。 50。 60。 55。 现有以下结构体说明和变量定义,如图所示,指针P、q、r分别指定一个链表中连续的3个结点。struct node{har data;struct node*next;)*p,*q,*r;现要将q和r所指结点交换前后位嚣,同时要保持链表的结构,下列不能完成此操作的语句是(  )。 q->next=r->next;p->next=r;r->next=q;。 q->next=r;q-->next=r->next;r->next=q;。 q->next=r->next;r->next=q;p->next=r;。 q->next=q;p->next=r;q->next=r->next;。 设变量已正确定义,则以下能正确计算f=n!的程序是(  )。
参考答案:

  参考解析

D。【解析】由n!的数字定义可知n!一n*(n一1)*(n~2)*…*1。在选项A中,由于f的初值为0,在for循环语句中,f依次乘以l,2,3,…,n,最后计算得到f—n!=0,所以选项A不正确。在选项B中,f的初值为l,在for循环语句中,f依次乘以l,2,3,…,(n一1),最后计算得到f一(n一1)!,所以选项B不正确。在选项C中,f的初值为1,在for循环语句中,f依次乘以n,n+1,n+2,……,所以选项C不正确。在选项D中,f的初值为l,在for循环语句中,f依次乘以n,n一1,n一2,…,2,最后计算得到f—n!,所以选项D正确。

在线 客服