文法G://S→S+T|TT→T*P|PP→(S)|i句型P+T+i的短语有()
第1题:
有以下程序 struct S{ int n;int a[20];}; voidf(struct S*p) { int i,j,t; for(i=0;i<p->n-1;i++) for(j=i+1;j<p->n;j++) if(p->a[i]>p->a[j]){t=p->a[i];p->a[i]=p->a[j];p->a[j]=t;} } main() { int i;struct S s={10,{2,3,l,6,8,7,5,4,10,9}}; f(&s); for(i=0;i<s.n;i++)printf("%d,",s.a[i]); } 程序运行后的输出结果是
A.1,2,3,4,5,6,7,8,9,10,
B.10,9,8,7,6,5,4,3,2,1,
C.2,3,1,6,8,7,5,4,10,9,
D.10,9,8,7,6,1,2,3,4,5,
第2题:
现有如下定义语句
int*p,s[20],i;
p=s;
表示数组元素s[i]的表达式不正确的是
A.*(s+i)
B.*(p+i)
C.*(s=s+i)
D.*(p=p+i)
第3题:
A.I+G=S+T
B.C+I+G=C+S+T
C.I+G=S+C
D.C+G=S+T
第4题:
下列程序的输出结果是( ) main() { char ch [2][5]={"6934","8254"},*p[2]; int i,j,s=0; for(i=0;i<2;i++) p[i]=ch[i]; for(i=0;i<2;i++) for(j=0;p[i][j]>'\0'&&p[i][j]<='9';j+=2) s=10*s+p[i][j]-'0'; printf("%d\n",s); }
A.6385
B.69825
C.63825
D.693825
第5题:
有以下程序struct STU{ char name[10]; int num; int Score;};main(){ struct STU s[5]={{"YangSan",20041,703}, {"LiSiGuo",20042,580}, {"WangYin",20043,680}, {"SunDan",20044,550}, {"Penghua",20045,537}}, *p[5], *t; int i,j; for(i=0;i<5;i++) p[i]=&s[i]; for(i=0;i<4;i++) for(j=i+1;j<5;j++) if(p[i]->Score>p[j]->Score) { t=p[i]; p[i]=p[j]; p[j]=t; } printf("%d %d\n",s[1].Score,p[1]->Score);}程序运行后的输出结果是A.550 550 B.580 550 C.680 680 D.580 680
第6题:
有以下程序: struct STU { char name[10]; int num; int score; }; main() { struct STU s[5]={{"YangSan",20041,703},{"LiSiGuo",20042,580}, {"WangYin",20043,680},{"SunDan",20044,550), {'Penghua",20045,537}},*p[5],*t; int i,j; for(i=0;i<5;i++) p[i]=&s[i]; for(i=0;i<4;i++) for(j=i+1;j<5;j++) if(p[i]->Score>p[j]->Score) { t=p[i];p[i]=p[j];p[i]=t; } printf("%d %d\n",s[1].Score,p[1]->Score); } 执行后输出结果是( )。
A.550 550
B.680 680
C.580 550
D.580 680
第7题:
有以下程序 struct STU { char name[10];v int num; int Score; }; main( ) { struct STU s[5]={ {“YangSan”,20041,703},{“LiSiGuo”,20042,580}, {“wangYin”,20043,680},{“SunDan”,20044,550}, {“Penghua”,20045,537}},*p[5],*t; int i,j; for(i=0;i<5;i++) p[i]=&s[i]; for(i=0;i<4;i++) for(j=i+1;j<5;j++) if(p[i]->Score>p[j]->Score) { t=p[i];p[i]=p[j];p[j]=t;} printf(“%d %d\n”,s[1].Score,p[1]->Score); } 执行后输出结果是( )
A.550 550
B.680 680
C.580 550
D.580 680
第8题:
有以下程序: #include <stdio.h> struct STU { char name[10]; int num; int Score; }; main() { struct STU s[5]={{"YangSan",20041,703},{"LiSiGuo",20042,580}, {"WangYin",20043,680},{"SunDan",20044,550}, {"Penghua",20045,537}}, *p[5],*t; int i,j; for(i=0;i<5;i++) p[i]=&s[i]; for(i=0;i<4;i++) for(j=i+1;j<5;j++) if(p[i]->Score>p[j]->Score) { t=p[i];p[i]=p[j];p[j]=t;} printf("%d%d\n",s[1].Score,p[1]->Score); } 执行后的输出结果是( )。
A.550 550
B.680 680
C.580 550
D.580 680
第9题:
有以下程序 struct STU { char name[10]; int num; int Score; { main() { struct Stu s[5]={{"YangSan",20041,703},{"LiSiGuo",20042,580}, {"WangYin",20043,680},{"SunDan",20044,550}, {"Penghua",20045;537}},*p[5],*t; int i,j; for(i=0;i<5;i++)p[i]=&s[i]; for(i=0;i<4;i++) for(j=i+1;j<5;j++) if(p[i]->Score>p[j]->Score) {t=p[i];p[i]=p[j];p[i]=t;} printf("%d%d\n",s[1].Score,p[1]->Score); } 执行后输出结果是
A.550550
B.680680
C.580550
D.580680
第10题:
已知文法G[E]: E→T|E+T|E-TT→F|T*F|T/FF→(E)|I 该文法的句型T+T*F+I的最左素短语为__(1)__,句柄为__(2)__。 空白(2)处应选择()
第11题:
i,P+T
P,P+T,i,P+T+i
P+T+i
P,P+T,i
第12题:
P+T
P
P+T+i
i
第13题:
主程序调用findmax函数求出数组中最大元素在数组中的下标,括号中需填写的内容是 #include<stdio.h> findmax(int*s,int t,int*k) { int p; for(p=0,*k=p;p<t;p++)if(s[p]>s[*k])( );} main() { int a[10],i,k; for(i=0;i<10;i++)scanf("%d",&a[i]); findmax(a,10,&k); printf("
A.k=p
B.*k=p
C.k=p-s
D.*k=p-s
第14题:
递延期为m期,连续支付n期,每期支付A元,折现率为i的递延年金现值等于 ( )。
A.A×(P/A,i,n)×(P/S,i,m)
B.A×[(P/A,i,m+n)-(P/A,i,m)]
C.A×[(P/A,i,m+n)×(P/A,i,m)]
D.A×(S/A,i,n)×(P/S,i,m+n)
第15题:
答案:见解析
解析:该句型对应的语法树如下:该句型相对于 E 的短语有 FF^^* ;相对于 T 的短语有 FF^^*,F; 相对于 F 的短语有 F^;F^^; 简单短语有 F;F^; 句柄为 F.
第16题:
有以下程序 #include <stdio.h> struct tt { int x; struct tt *y; } *p; struct tt a[4]= {20,a+ 1,15,a+2,30,a+3,17,a}; main() { int i; p=a; for(i=1; i<-2; i++) { printf("%d,", p->x ); p=p->y; }
A.20,30,
B.30,17
C.15,30,
D.20,15,
第17题:
考察下列文法:G(VT,VN,E,P)
其中:VT={+,*,(,),i}
VN={E,T,F}
E是开始符号;
P:
E→E+T|T
T→T*F|F
F→(E)|i
F*F+T是该文法的一个句型,其中(53)是句柄,(54)是素短语。(55)是该句型的直接推导,(56)是该句型的最左推导。(57)是该文法的一个句子。
A.F
B.F*F
C.F+T
D.F*F+T
第18题:
下列程序运行后,输出结果是______。main(){ char ch[2][5]={"693","825"),*p[2]; int i,j,s=0; for (i=0;i<2;i++) p[i]=ch[i]; for (i=0;i<2;i++) for (j=0;p[i][j]>='0' &&p[i][j]<='9';j+=2) s=10*s+p[i][j]-'0'; printf("%d\n",s);}
A.6385
B.22
C.33
D.693825
第19题:
n-1;i++)fo
有以下程序: struct S{int n;int a[20];}; void f(struct S*P) { int i,j,t; for(i=0;i<P->n-1;i++) for(j=j+1;j<P->n-1;j++) if(p->a[i]>p->a[j]) {t=P->a[i];p->a[i]=P->a[j];p->a[j]=t} } main() {int i;struct S s{10,{2,3,1,6,8,7,5,4,10,9}}; f(&s); for(i=0;i<s.n;i++)printf("%d",s.a[i]);} 程序运行后的输出结果是( )。
A.3
B.4
C.5
D.6
第20题:
有以下程序 struet STU { char name[10]; int num; int Score; }; main() { struct STU s[5]-{{"YangSan",20041,703},("LiSiGuo",20042,580}, {"WangYin",20043,680},{"SunDan",20044,550}, {"Penghua",20045,537}},*p[5],*t; int i,j; for(i=0;i<5;i++) p[i]-&s[i]; for(i 0;i<4;i++) for(j-i+1;j<5;j++) if(p[i] >Score>p[j] >Score) { t=p[i];p[i]=p[j];p[j]-t;} printf("%d %dkn",s[1].Score,p[1]->Score); } 执行后输出结果是
A.550 550
B.680 680
C.580 550
D.580 680
第21题:
文法G://E→E+T|TT→T*P|PP→(E)|i则句型P+T+i的句柄为()
第22题:
for(i=1,t=1,s=0;i<=n;i++){t=t*i;s=s+t;}的时间复杂度为()
第23题:
T*F
句型中第2个T
句型中第1个T
I