针对如下C语言程序,应用语句变异算子STRP生成程序变体。 while(n>0) { x = x*n; if(n%2 == 0) x = x-n; n--; }

针对如下C语言程序,应用语句变异算子STRP生成程序变体。 while(n>0) { x = x*n; if(n%2 == 0) x = x-n; n--; }


参考答案和解析
1.第二语言学习者在第二语言习得过程中一直伴随着大量的语言变异现象。这是由于第二语言学习者的语言系统一直处于动态变化的状态。 2.第二语言学习者的语言变异比母语者的语言变异更加剧烈、更加频繁。 3.第二语言学习者的语言变异是造成其中介语系统不稳定的一个重要原因,同时也是促进其中介语系统不断发展的动因。

相关考题:

有以下程序void change(int k[ ]){ k[0]=k[5];}main(){ int x[10]={1,2,3,4,5,6,7,8,9,10},n=0;while( n=4 ) { change( x[n]) ; n++; }for(n=0;n5;n++) printf("%d ",x[n]);printf("\n");}程序运行后输出的结果是A)6 7 8 9 10B)1 3 5 7 9C)1 2 3 4 5D)6 2 3 4 5

●试题四阅读下列程序说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。【程序4.1说明】"背包问题"的基本描述是:有一个背包,能盛放的物品总重量为S,设有N件物品,其重量分别为w1,w2,...,wn,希望从N件物品中选择若干件物品,所选物品的重量之和恰能放入该背包,即所选物品的重量之和等于S。如下程序均能求得"背包问题"的一组解,其中程序4.1是"背包问题"的递归解法,而程序4.2是"背包问题"的非递归解法。【程序4.1】#includestdio.h#define N 7#define S 15int w[N+1]={0,1,4,3,4,5,2,7};int knap(int s,int n){ if(s==0)return 1;if (s0||(s0 n1))return 0;if( (1) )){printf(″%4d″,w[n]);return 1;}return (2) ;}main(){if( knap(S,N))printf(″OK!\n″);else printf(″N0!\n″);}【程序4.2】#includestdio.h#define N 7#define S 15typedef struct {int s;int n:int job;} KNAPTP;int w[N+1]={0,1,4,3,4,5,2,7};int knap (int s,int n);main( ) {if (knap (S,N)) printf (″OK!\n″);else printf (″NO!\n″);}int knap (int s,int n){ KNAPTP stack[100],x;int top,k,rep;x.s=s;x.n=n;x.job=0;top=l;stack[top]=x;k=0;while( (3) ) {x=stack [ top ];rep=1;while ( !k rep ) {if (x.s==0)k=1;/*已求得一组解*/else if (x.s0 || x.n =0)rep=0;else{x.s= (4) ;x.job=1;(5) =x;}}if(!k){rep=1;while(top=1rep){x=stack[top--];if(x.job==1){x.s+=w[x.n+1];x.job=2;stack[++top]=x;(6) ;}}}}if(k){/*输出一组解*/while(top=1){x=stack[top--];if(x.job==1)printf(″%d\t″,w[x.n+1]);}}return k;}

阅读下列程序说明和C++代码,将应填入(n)处。【说明】“背包问题”的基本描述是:有一个背包,能盛放的物品总重量为S,设有N件物品,其重量分别为w1;w2,……,wn,希望从N件物品中选择若干件物品,所选物品的重量之和恰能放入该背包,即所选物品的重量之和等于S。如下程序均能求得“背包问题”的一组解,其中程序4.1是“背包问题”的递归解法,而程序4.2是“背包问题”的非递归解法。【程序4.1】include<stdio.h>define N 7define S 15int w[N+1]={0,1,4,3,4,5,2,7};int knap(int s,int n){ if(s==0)return 1;if(s<0||(s>0 n<1))return 0;if((1)))|printf("%4d",w[n]);return 1;} return (2);}main(){if(knap(S,N))printf("OK!\n");else printf("NO!\n");}【程序4.2】include<stdio.h>define N 7define S 15typedef struct{int s;int n:int job;} KNAPTP;int w[N+1]={0,1,4,3,4,5,2,7};int knap(int s,int n);main(){if(knap(S,N))printf("OK!\n");else printf("NO!\n");}int knap(int s,int n){ KNAPTP stack[100],x;int top,k,rep;x.s=s;x.n=n;x.job=0;top=|;Stack[top]=x;k=0;while((3)){x=Stack[top];rep=1;while(!k rep){if(x.s==0)k=1;/*已求得一组解*/else if(x.s<0||x.n <=0)rep=0;else{x.s=(4);x.job=1;(5)=x;}}if(!k){rep=1;while(top>=1rep){x=stack[top--];if(x.job==1){x.s+=W[x.n+1];x.job=2;Stack[++top]=x;(6);}}}}if(k){/*输出一组解*/while(top>=1){x=staCk[top--];if(x.job==1)printf("%d\t",w[x.n+1]);}}return k;}

以下不构成无限循环的语句或者语句组是( )。A.n=0;B.n=0; do{++n;}while(n<=0); while(1){n++}C.n=10;D.for(n=0,i=1;;i++)n+=i; while(n);{n--;)

有以下程序 void change(int k[]){k[0]=k[5];} main() { int x[10]={1,2,3,4,5,6,7,8,9,10},n=0; while(n<=4) { change(x[n]); n++;} for(n=0;n<5;n++) printf("%d",x[n]); printf("\n"); } 程序运行后输出的结果是______。A.678910B.13579C.12345D.62345

假定有如下事件过程: Privte Sub Form_Click0 Dim x As Integer,n As Integer x=1 n=0 Do While x<28 x=x*3 n=n+1 Loop Print x,n End Sub 程序运行后,单击窗体,输出结果是( )。A.81 4B.56 3C.28 1D.243 5

有如下程序:includeusing namespace std;class Base{int x;public:Base(int n=0):x(n 有如下程序: #include<iostream> using namespace std; class Base{ int x; public: Base(int n=0):x(n){cout<<n;} int getX( )const{return x;} }; class Derived:public Base{ int y; public: Derived(int m,int n):y(m),Base(n){tout<<m;} Derived(int m):y(m){cout<<m;} }; int main( ){ Derived dl(3),d2(5,7); return 0; } 程序的输出结果是A.375B.357C.0375D.0357

(25)在窗体上有一个命令按钮Commandl,编写下列程序: Private Sub Command1_Click() Print ppl(3,7) End Sub Public Funcion ppl(x As Single,n As Integer)As Single If n=0 Then ppl=1 Else If n Mod 2=1 Then ppl=x*x+n Else ppl=x*x-n End If End If End Funcion 程序运行后,单击该命令按钮,屏幕上显示的是 A.2 B.1 C.0 D.16

阅读下列程序说明和C代码,将应填入(n)处的字句写在对应栏内。【说明】“背包问题”的基本描述是:有一个背包,能盛放的物品总重量为S,设有N件物品,其重量分别为w1,w2,…,wn。希望从N件物品中选择若干件物品,所选物品的重量之和恰能放入该背包,即所选物品的重量之和等于S。如下程序均能求得“背包问题”的一组解,其中程序1是“背包问题”的递归解法,而程序2是“背包问题”的非递归解法。【程序1】include<stdio.h>define N 7define S 15int w[N+1]={0,1,4,3,4,5,2,7};int knap(int s, int n){if(s==0) return 1;if(s<0 || (s>0 n<1))return 0;if((1)){/*考虑物品n被选择的情况*/printf("%4d",w[n]);return 1;}return (2);/*考虑不选择物品n的情况*/}main(){if(knap(S,N))printf("OK!\n");else printf("N0!\n");}【程序2】include<stdio.h>define N 7define S 15typedef struct{int s;int n;int job;}KNAPTP;int w[N+1]={0,1,4,3,4,5,2,7};int knap(int s, int n);main(){if(knap(S,N)) printf("0K!\n");else printf("N0!\n");}int knap(int s, int n){KNAPTP stack[100],x;int top, k, rep;x.s=s;x.n=n;x.job=0;top=1; stack[top]=x;k=0;while( (3) ){x=stack[top];rep=1;while(!k rep){if(x.s==0) k=1;/*已求得一组解*/else if(x.s<0 || x.n<=0) rep=0;else{x.s=(4);x.job=1;(5)=x;}}/*while*/if(!k){rep=1;while(top>=1 rep){x=stack[top--];if(x.job==1){x.s +=w[x.n+1];x.job=2;stack[++top]=x;(6);}/*if*/}/*while*/}/*if*//*while*/if(k){&nbs

若有如下语句int x=3;do{ printf("%d\n",x-=2);}while(!(--x));则上面程序段A.输出的是1B.输出的是1和-2C.输出的是3和0D.是死循环

下面程序的执行结果是【】。include void main(){int n=0,x=0;do{n++;if(n%3==2do{n++;if(n%3==2n%5==3n%7==2)x=1;}while(x!=1);cout<<"n=" <<n<<end1;}

有如下程序 public class Sun { public static void main(String args[ ]) { int x=0; int n=0; while(x50) { x=(x+2)*(x+3); n=n+1; } System.out.println(n+"和"+x); } } 上述程序的运行结果是( )。A.1和0B.2和72C.3和50D.4和168

阅读下列函数说明和C代码,填入(n)处。[说明]以下C语言程序实现了生成从里到外是连续的自然数排列的回旋矩阵,矩阵形式如下:7 6 5 168 1 4 159 2 3 1410 11 12 13程序的变量说明如下:x1:矩阵上边界;x2:矩阵下边界;y1:矩阵左边界;y2:矩阵右边界;s:数组元素升降标记,s等于1为升,s等于-1为降;a[]:存放矩阵元素的数组。仔细阅读C语言程序源码,将(n)处的语句补充完整。(注:每处仅一个语句)[C程序]include<stdio.h>void main ( ){const int N=20;int i=0,j=0,a[N][N],n;int m,x1,x2,y1,y2,s;while (1){Printf ("\ninput matrix row N( N>=2): ");scanf ("%d",n);printf ("\n");if (n>=2)break;}m=n*n;x1=0; y1=0; x2=n; y2=n;if(n%2==0){j=n-1; y2=n-1; s=1;}else{i=n-1; y1=1; s=-1; }while (1){if (s==1){for (i; i<x2; i++) a[i][j]=m--;i--;j--;(1)for (j;j>=y1;j--) a[i][j]=m--;j++;i--;y1++;(2)}else{for (i;i>=x1;i--)a[i][j]=m--;i++;j++;(3)for (j;j<y2;j++)(4)(5)i++;(6)S=i;}if (m<1) break;}for (i=O;i<n; i++){for (j=O;j<n;j++)printf ("%6d",a[i][j]);printf ("\n");}printf ("\n");}

下列程序执行后的结果为______。 public class exl2 { public static void main(string[] args) { int n=4; int x=0; do{ System.out.print(n); }while (x++<n--); } }A.12B.432C.43D.4

假定有如下事件过程: Privte Sub Form_Click() Dim x As Integer,n As Integer x=1 n=0 Do While x<28 x=x*3 n=n+1 Loop Print x,n End Sub 程序运行后,单击窗体,输出结果是A.81 4B.56 3C.28 1D.243 5

下列不构成无限循环的语句或语句组是( )。A.n=0; do{++n;)while(n=0);B.n=0; while(1){n++;)C.while(n=1O);{n--;}D.for(n=0,i=1;;i++)n+=i

以下程序的输出结果是()。includemain(){int n=4; while(n--) printf("%d",--n);}A.2 0 以下程序的输出结果是( )。 #include <stdio.h> main() { int n=4; while(n--) printf("%d ",--n); }A.2 0B.3 1C.3 2 1D.2 1 0

下列程序段的执行结果为______。 x = 0: y = 1 z = 1: n = 0 Do x = x + y + z n = n + 1 Loop While x < 10 Print x; nA.10 5B.x nC.9 5D.10 6

若有如下程序: main() {int x=9,y=4,n=0; switch(x%2) {case 0:n++;break; case 1:n++; case 0:n++;break; } printf("%d\n",n); } 则程序运行后的输出结果是( )。A.1B.2C.3D.编译错误

在窗体上有一个命令按钮Command1,编写如下程序: Private Sub Command1_Click() Print pp1(3, 7) End Sub Public Function pp1(x As Single, n As Integer) As Single If n = 0 Then pp1= 1 Else If n Mod 2 = 1 Then pp1 =x*x+n Else pp1 =x*x-n End If End If End Function 程序运行后,单击该命令按钮,屏幕上显示的是( )。A.2B.1C.0D.16

下列程序的输出结果是_____。main(){ int n=4; while(n--)printf("%d",--n);}A.2 0B.3 1C.3 2 1D.2 1 0

有如下程序:includemain(){ int n=9;while(n>6){n--;printf("%d",n);}}该程序的输出结 有如下程序: #include<stdio.h> main() { int n=9; while(n>6){n--;printf("%d",n);} } 该程序的输出结果是( )。A.987B.876C.8765D.9876

若有如下程序段: int n=1O; while(1)n--; printf("%d";n); 则while循环执行的次数是( )。A.0B.1C.10D.无数

已知X-N(-3,1),Y-N(2,1),且X,Y相互独立,记Z=X-2Y+7则Z-().A、N(0,5)B、N(0,12)C、N(0,54)D、N(-1,2)

以下不会构成无限循环的语句或语句组是()A、n=0;do{++n;}while(n=0)B、n=0;while(1){n++;}C、n=10;while(n);{n--;}D、for(n=0,i=1;;i++)n+=i

有以下程序段,n=2;while(n--);printf("%d",n);其中n为整型变量。运行结果为()。A、2B、10C、–1D、0

有下列程序段:X=1 n=0 Do While x<20 x=x*3 n=n+1 Enddo ?x,n 该程序段的执行结果为()。A、15和1B、27和3C、195和3D、600和4

单选题以下不构成无限循环的语句或者语句组是(  )。An=0;do{++n;}while(n=0);Bn=0;while(1){n++;}Cn=10;while(n);{n--;}Dfor(n=0,i=1;i++)n+=i;