广工Anyview试题答案 第四章
广西大学自动控制原理习题答案(本科)第4章

⼴西⼤学⾃动控制原理习题答案(本科)第4章习题参考答案4-1已知单位反馈系统的开环传递函数为2()(0.21)K G s s s =+试求:⑴使系统增益裕度为10的K 值;⑵使系统相⾓裕度为30?的K 值。
解:系统开环频率特性为2)(+=ωωωKi G (1)求10=m g 的K 值:令180ω为相⾓交越频率,有180arctan 0.245ω=?,5180=ω由10)04.01(|)(|12180180180=+==Ki G g m ωωω可解得K=1。
(2)求30m ?=?的K 值:由定义180()180(902arctan 0.2)30m c c G i ?ωω=?+∠=?+-?-=?=302.0arctan c ω求得系统幅值交越频率c ω=由1)04.01(|)(|2=+=c c c Ki G ωωω85.3)04.01(2=+=c c K ωω注意:涉及相⾓的计算时,可以(1)逐个计算基本环节的相⾓,然后叠加起来。
(2)将频率特性展开为实部和虚部,然后计算相⾓。
计算幅值⼀般将各个基本环节的幅值相乘。
4-2试由幅相频率计算式()90arg tan arg tan arg tan103(5)2G i G i ωωωω∠=-?-+-=确定最⼩相位系统的传递函数。
解:由相频计算式可得出传递函数的形式为(/31)()(1)(101)K s G s s s s +=++由幅频计算式(5)2G i =有2=求得10/3K ω==,所求最⼩相位系统的传递函数为1312(/31)()(1)(101)s G s s s s +=++4-3已知单位反馈系统开环传递函数)2)(5.1)(1()(+++=s s s Ks G 若希望系统闭环极点都具有⼩于-1的实部,试⽤Nyquist 判据确定增益K 的最⼤值。
解:令1u s =+,则“u 平⾯所有极点均处于负平⾯”等价于“s 平⾯所有闭环极点均具有⼩于-1的实部”,并且)1)(5.0()(++=u u u Ku G 可见)(u G 并⽆右半平⾯的开环极点,所以)(u G 的Nyquist 轨线不能包围)0,1(i -点。
广工Anyview试题答案 第四章

/**********【习题4.011】关系表达式,if语句第一种形式在以下程序空缺处填写合适内容,使得程序判断用户输入的字符是否为'@',若是则显示:"输入正确"。
**********/#include<stdio.h>void main(){char c;scanf("%c",&c);if( c=='@' ) printf("输入正确\n");}/**********【习题4.012】关系表达式,if语句第一种形式在以下程序空缺处填写合适内容,使得程序输入一个整数赋给变量a,计算并输出a的绝对值a1。
**********/#include<stdio.h>#include<math.h>void main(){int a,a1;scanf("%d",&a);a1=abs(a);printf("|%d| = %d\n",a,a1);}/**********【习题4.013】逻辑表达式,if语句第一种形式在以下程序空缺处填写合适内容,使得程序对输入的整型变量x的值进行判断,若变量x值为“假”时输出“False”。
**********/#include<stdio.h>int main( ){int x;scanf("%d",&x);if(x==0 )printf("False!\n");return 0;}/**********【习题4.016】if语句的子句为复合语句在以下程序空缺处填写合适内容,使得程序将输入到变量a和b的两个整数按照由大到小的顺序输出。
**********/#include<stdio.h>void main( ){inta,b,t;scanf("%d %d",&a,&b);if(a<b){t=b;b=a;a=t;}printf("%d %d\n",a,b);}/**********【习题4.203】条件运算(3目运算)在以下程序空缺处填写合适内容,使得程序先令整型变量a取值0,b取值-20;然后用条件运算实现:若a>b成立则将b的平方值赋予c,否则将0赋予c;最后显示c的值。
广工Anyview试题答案

/**********【习题9.023】结构体类型定义如下:struct date{int year; int month; int day;}; //定义日期结构体类型struct student{ char name[20];struct date birth; //出生日期};结构体数组s存储了n个人的名字和出生日期。
写一函数,求这n个人中年龄最大(即出生日期最小)者的姓名。
**********/char *oldest(student s[], int n){int j,k=0;for(j=1;j<n-1;j ){if(s[k].birth.year>s[j].birth.year) k=j;else if(s[k].birth.year==s[j].birth.year){if(s[k].birth.month>s[j].birth.month) k=j;else if(s[k].birth.month==s[j].birth.month)if(s[k].birth.day>s[j].birth.day) k=j;}}return s[k].name;}/**********【习题9.025】结构体类型定义如下:struct date{int year; int month; int day;}; //定义日期结构体类型struct student{ char id[10]; //学号char name[20]; //姓名struct date birth; //出生日期};结构体数组s存储了n个人的学号、名字和出生日期。
写一函数,以结构体的形式返回这n个人中年龄最大(即出生日期最小)者的信息。
**********/struct student oldest(struct student s[], int n){int j,k=0;for(j=1;j<n-1;j ){if(s[k].birth.year>s[j].birth.year) k=j;else if(s[k].birth.year==s[j].birth.year){if(s[k].birth.month>s[j].birth.month) k=j;else if(s[k].birth.month==s[j].birth.month)if(s[k].birth.day>s[j].birth.day) k=j;}}return s[k];}/**********【习题9.027】结构体类型定义如下:struct student{ char id[10]; //学号char name[10]; //姓名int score[5]; //各门课成绩};结构体数组s存储了n个学生的学号、名字和各门课成绩。
广工CAnyview参考标准答案

C Anyview 7-9章作业参考答案/**********【习题7.010】写一函数求3个整数中最小的数。
**********/int min(int x, int y, int z)/* 返回3个整数x,y和z中最小的数*/{if(x>y)x=y;if(x>z)x=z;return x;}/**********【习题7.020】编写函数,求用1元、5元和10元三种纸币支付n元钱共有多少种支付法?例如,16元可有6种支付方法:方法 1 2 3 4 5 610元0 0 0 0 1 15元0 1 2 3 0 11元16 11 6 1 6 1**********/int change(int n){int i,j,k,m=0;for(i=0;i<=n;i++)for(j=0;j<=n/5;j++)for(k=0;k<=n/10;k++)if(i+5*j+10*k==n)m++;return m;}/**********【习题7.030】先编写一个判断素数的函数。
再编写一个函数将一个偶数表示为两个素数之和,并返回其中较小的素数。
注:素数指只能被1和自身整除的正整数。
规定0,1不是素数。
**********/int prime(int n)/* 判断素数,如果是素数返回1,不是素数则返回0 */{ int t;if(n==1)return 0;for(t=2;t<=(n/2);t++)if(n%t==0)return 0;return 1;}int f(int i)/* 将偶数i表示为两个素数之和,返回其中较小的素数*/{ int n;for(n=3;n<=i;n++)if(prime(i-n)&&prime(n))return n;}/**********【习题7.050】编写函数,将字符串中ASCII码最小的字符放在第一个字符位置,其余字符依次往后移。
广工anyview7-9章参考答案

广工anyview7-9章参考答案习题7.010 return(x<y? x<z?x:z:y<z?y:z);习题7.020int i=0,j,k,p=0;for(i=0;i<=n/10;i++){for( j=0;j<=n/5;j++)for(k=0;k<=n;k++) {if((k+j*5+i*10)==n)p++;}}return p;int prime(int n)/* 判断素数,如果是素数返回1,不是素数则返回0 */{for(int i=2;i<=sqrt(n);i++){if (n%i==0){return (0);break; }}return 1;}习题7.030 int f(int i)/* 将偶数i表示为两个素数之和,返回其中较小的素数*/{int a,b;a=3;for(a;a<=i/2;a++){if ((prime(a)==1)&&(prime(b=(i-a))==1))break;}return(a);}习题7.050int i,j;char min=str[0] ;for(i=1;str[i];i++){if(min>str[i]){min=str[i];j=i;}}for(j;j>0;j--){str[j]=str[j-1];}str[0]=min;习题7.060int i,j;char t;for (j=0;j<N-1;j++)for (i=0;i<N-j-1;i++) {t=a[j][i];a[j][i]=a[N-i-1][N-j-1];a[N-i-1][N-j-1]=t ;}习题7.064char t;for(int i=0;i<N-2;i++)for(int j=0;j<N;j++){t=a[i][j];a[i][j]=a[i+2][j];a[i+2][j]=t;}习题7.065int i,j;char t;for(i=0;i<N;i++)for(j=0;j<N-2;j++){t=a[i][j];a[i][j]=a[i][j+2];a[i][j+2]=t;}习题7.067int i;char t;t=a[0][0]; //先提取一个值,后面的就可以直接覆盖;for(i=0;i<N-1;i++)a[i][0]=a[i+1][0];for(i=0;i<N-1;i++)a[N-1][i]=a[N-1][i+1];for(i=N-1;i>0;i--)a[i][2]=a[i-1][2];a[0][2]=a[0][1];a[0][1]=t;习题7.068int i;char t=a[0][0];for(i=0;i<N-1;i++)a[0][i]=a[0][i+1];for(i=0;i<N-1;i++)a[i][2]=a[i+1][2];for(i=0;i<N-1;i++)a[2][2-i]=a[2][2-i-1];a[2][0]=a[1][0];a[1][0]=t;习题7.072int i,j;char t1=a[0][2],t2=a[1][2],t3=a[2][2]; for(i=0;i<N;i++)for( j=2;j>0;j--)a[i][j]=a[i][j-1];a[0][0]=t1;a[1][0]=t2;a[2][0]=t3;习题7.075int i,j;char d=a[0][0],b=a[1][0],c=a[2][0];for(i=0;i<N;i++)for(j=0;j<N-1;j++)a[i][j]=a[i][j+1];a[0][2]=d;a[1][2]=b;a[2][2]=c;习题7.082int i,j;char t1=a[2][0],t2=a[2][1],t3=a[2][2]; for(i=2;i>0;i--)for(j=0;j<N;j++)a[i][j]=a[i-1][j];a[0][0]=t1;a[0][1]=t2;a[0][2]=t3;习题7.085int i,j;char t1=a[0][0],t2=a[0][1],t3=a[0][2]; for(i=0;i<N-1;i++)for(j=0;j<N;j++)a[i][j]=a[i+1][j];a[2][0]=t1;a[2][1]=t2;a[2][2]=t3;习题7.103int t,r;if(m<n){t=m;m=n;n=t;}while((r=m%n)!=0){m=n;n=r;return n;习题7.105int t,r,h;h=m*n;if(m<n){t=m;m=n;n=t;}while((r=m%n)!=0){m=n;n=r;}return h/n;习题7.115int c,a1,a2,b1,b2;a1=a/10; a2=a%10;b1=b/10; b2=b%10;c=a1*1000+b1*100+a2*10+b2; return c;习题7.125float t;b=r*100; //只保留前三个数 t=b*1.0/100;if(r-t>=0.005)t=t+0.01;return t ;习题7.135int a[100],i=1,b=0;while(n/10!=0){a[i]=n%10;n=n/10;i++;}for(i;i>=1;i--){if(i==3)b=b+a[i]*100;if(i==2)b=b+a[i]*10;if(i==1) b=b+a[i];}return b;习题7.175int i ,j,a[1000] ,b=0 ;float s=0.0;for(i=0,j=1;j<n;j++){if(j%3==0 && j%7==0){a[i]=j;i++;} }for(i=0;a[i];i++)b+=a[i];s=sqrt(b);return s;习题7.184float s=0,d=0;int j=1,i=1;if(n==1)return s=1.0;else if(n>=2){while(i<=n){while(j<=i){ d=d+j;j++;}s=s+ 1/d;i++;}return s;}习题7.187float d=0,s=0;int i,j=2;for(i=1;i<=n;i++){d=i*j;s=s+ (1/d);j++;}return s;习题7.195int t;if(m<n){t=m;m=n;n=t;}int i=1,j=1,k=1;double a=1;double b=1;int c=1;float s;for(i=1;i<=m;i++)a=a*i; for(j=1;j<=n;j++)b=b*j;for(k=1;k<=(m-n);k++)c=c*k;s=a/(b*c);return s;习题7.205int a[100],i=2,j=0,s=0;for(i;i<n;i++){if(n%i==0)a[j]=i;j++;}for(j;j>=0;j--)s+=a[j];return s;习题7.255int i=1,j=1,s=1;float n=1.0,t=1.0,si=1.0,sj=1.0; while(t>=eps){ si*=i; //si是分子sj*=(j+2); // 分母t=si/sj;n+=t;i++;j+=2;}return (2*n);习题7.265int i,j;j=0;for(i=0;s[i]!='\0';i++){ if(i%2==0){if(s[i]=='8' || s[i]=='6' || s[i]=='4' || s[i]=='2' || s[i]=='0'){t[j]=s[i];j++;}}}习题7.275int i,j,k;char c;for(i=0;s[i];i++) j++;for(i=j-1;i>=0;i--) {if(s[i]=='*') k++;else break;} if(k>n) for(i=j-1;i>(j-1-k+n);i--) s[i]='\0';习题7.315int i=6,j=0;for(i;i<n;i++){if(i%7==0 || i%11==0) {a[j]=i;j++;}}return (j);习题7.317int i=1,j=0;for(i;i<=n;i++){if(i%c==0 && i%d==0) {a[j]=i;j++;}}return (j);习题7.325int j=0;for(j;j<11;j++)c[j]=0;int i=0;for(i;i<n;i++){if(0<=a[i]&&a[i]<=9)c[0]++;if(10<=a[i]&&a[i]<=19)c[1]++;if(20<=a[i]&&a[i]<=29)c[2]++;if(30<=a[i]&&a[i]<=39)c[3]++;if(40<=a[i]&&a[i]<=49)c[4]++;if(50<=a[i]&&a[i]<=59)c[5]++;if(60<=a[i]&&a[i]<=69)c[6]++;if(70<=a[i]&&a[i]<=79)c[7]++;if(80<=a[i]&&a[i]<=89)c[8]++;if(90<=a[i]&&a[i]<=99)c[9]++; if(100<=a[i])c[10]++;}习题7.335int i,j=0;char b[100]; //思路:提取必要元素到另一个数组中去,再用该数组覆盖原数组b[j]=a[i];for(i=1,j=1;a[i]!='\0';i++){if( a[i]==a[i-1]) continue ;b[j]=a[i];j++;}for(i=0;i<=j;i++){a[i]=b[i];}a[j]='\0';return j;习题7.345int i=0;int j=0;for(i;i<strlen(s);i++){if(s[i]!=32&&s[i+1]==32)j++;}if(s[i]!=32)return (j+1);else if(s[i]==32)return j;习题7.355int i=0,j=0;for(i;s[i]==42;i++);for(j;s[i+j]!=0;j++)s[j]=s[j+i];for(j;s[j]!=0;j++)s[j]=42;习题7.513int s=1;for(int i=0;i<n;i++) s*=a[i];return s;习题7.523int s=0;for(int i=0;i<n;i++) s+=a[i]*a[i];return s;习题7.533int i=0,j ;for( j=1;j<=k;j++)c[j]=0;for(i;i<n;i++){for( j=1;j<=k;j++){if(v[i]==j){c[j]++;break; }}}习题7.535int i=0,j,max=0; ;for( j=1;j<=k;j++)c[j]=0;for(i;i<n;i++){for( j=1;j<=k;j++){if(v[i]==j){c[j]++;break; } }}for(j=1;j<=k;j++){if(max<c[j])max=c[j];}return max;习题7.563int i=0,j,k,t;while(n){d[i]=n%10;i++;n=n/10;}return i;习题7.565int i=0,a[20],j=0;while(n){d[i]=n%10;i++;n=n/10;}for(i-1,j;i-1>=0;i--,j++) a[j]=d[i-1];for(i=0;i <= j ;i++)d[i]=a[i];return j;习题7.655int i=0;for(i;i<5;i++)num[i]=0;i=0;while(s[i]){if(s[i]=='A'||s[i]=='a')num[0]++;if(s[i]=='E'||s[i]=='e')num[1]++;if(s[i]=='I'||s[i]=='i')num[2]++;if(s[i]=='O'||s[i]=='o')num[3]++;if(s[i]=='U'||s[i]=='u')num[4]++;i++;}习题7.675int i;for(i=0;i<5;i++)p[i]=0;for(i=0;i<n;i++){if(s[i]<60)p[0]++;if((s[i]>=60)&&(s[i]<=69)) p[1]++;if((s[i]>=70)&&(s[i]<=79)) p[2]++;if((s[i]>=80)&&(s[i]<=89)) p[3]++;if((s[i]>=90)&&(s[i]<=100)) p[4]++;}习题7.685int i,j=0,k=0;for(i=1;i<=m;i++)if(m%i==0){ d[j]=i;j++;k++;}return (n[0]=k);习题7.755int i,j,skey=0;for(j=0;key[j];j++) skey+=key[j]*key[j]; for(i=0;str[i];i++){if(str[i]>='a'&&str[i]<='z'){str[i]=(str[i]+skey)%128; }}习题8.011int i=n-1;int j=0;for(i;i>=0;i--){*(t+j)=*(s+i) ;j=j+1;}习题8.012int n=strlen(s);int i=n-1;int j=0;for(i;i>=0;i--){*(t+j)=*(s+i) ;j=j+1;}习题8.015int i=1,j=1;char t[10],temp;for(i;i<n-1;i++)t[i]=s1[i];for(i=1;i<n-1;i++) for(j=1;j<n-1-i;j++){ //冒泡排序,由大到小if( t[j]<t[j+1]){temp=t[j];t[j]=t[j+1];t[j+1]=temp;}}for(i=1;i<n-1;i++)s2[i]=t[i];s2[0]=s1[0];*(s2+n-1)=*(s1+n-1);int n=strlen(s1);int i=1,j=1;char t[10],temp;for(i;i<n-1;i++)t[i]=s1[i];习题8.016for(i=1;i<n-2;i++) for(j=1;j<n-1-i;j++){if( t[j]<t[j+1]){temp=t[j];t[j]=t[j+1];t[j+1]=temp;}}for(i=1;i<n-1;i++)s2[i]=t[i];s2[0]=s1[0];*(s2+n-1)=*(s1+n-1);习题8.018int n=strlen(s); //长度char a[20],temp;int i=m,j,k=0;for(i;i<n;i++)a[i]=s[i];for(i=m,k;i<n-1;i++,k++) for(j=m;j<n-1-k;j++){if(a[i]>a[i+1]){temp=a[i];a[i]=a[i+1];a[i+1]=a[i];}}习题8.020int t;for(;*s;s++ ){if(*s==c){t=1;break;}}if(t==1)return s;if(t!=1) return NULL;习题8.033int s[12]={31,28,31,30,31,30,31,31,30,31,30,31},m;//判断是否闰年if(year%4==0&&year%100!=0||year%400==0)s[1]=29;if(year<1||yearday<1||(s[1]==29&&yearday>366)||(s[1]==28&& yearday>365))return 0;else{for(m=0;yearday-s[m]>=0&&m<=10;m++)yearday-=s[m];if(yearday==0){m-=1;yearday=s[m];}*pmonth=m+1;*pday=yearday;return 1;}}习题8.044int sum ,i;sum=0;i=1;char t;t=*s; //首元素 for(;*s!='\0';s++){if('0'<=*s&&*s<='9') {sum=sum*10+(*s-48); }}if(t=='-'){sum=(-1)*sum;} return sum;习题8.105int i=0, max=0, *p;p=s;for(i;i<n;i++){if(*p>max)max=*p;p++;}return max;习题8.124int i=1, min=1000, *p,sum;p=s[1];for(i=1;i<n-1;i++){ // sum=*(p-1)+ *p+ *(p+1); sum=s[i-1]+s[i]+s[i+1];if(min>sum)min=sum;p++;} return min;习题8.132*sum=x+y;习题8.136return (*x+*y);习题8.138int t;if(*x>*y){t=*x;*x=*y;*y=t;return 1;}else return 0;习题8.143int i=0,j;for(i;i<n;i++)if(*(a+i)==x){ j=1;break;} if(j==1)return (i+1);else return 0;习题8.146int i=0,j=0;for(i;i<n;i++){if(*(a+i)==x)j++; }return j;习题8.203int i=0,j=0;while(s[i]!=0){if(s[i]!=32)j++;i++;}return j;习题8.212int i=0,j=0;while(s[i]!=0){if(s[i]==c){j=1;break;} i++;}if(j==1) return (i+1); else return 0;习题8.215int i=0,j=0;while(s[i]!=0){if(s[i]==c)j++;i++;}return j;习题8.222int i=0;while(s[i]!=0){t[i]=s[i];i++;}习题8.225int i=0;for(i;i<n;i++) //可能有时会出错{t[i]=s[i];}习题8.228for( ;*s!='\0'; s++);for(;n>=0;s--,n--){*(t+n)=*s;} //一定是指到最后的,不如倒着来赋值习题8.231int j;for(j=0;j<n;j++,i++){t[j]=s[i-1];}t[j]=0;习题8.234int i=0;while(s[i]){if('a'<=s[i]&&s[i]<='z')t[i]=s[i]-32; else t[i]=s[i];i++;}习题8.237int i=0;while(s[i]){if('A'<=s[i]&&s[i]<='Z')t[i]=s[i]+32;else t[i]=s[i];i++;}习题8.243int i,j=0,flag=1;for(i=0;s[i];i++,j++) //先找到位置,可能有错{if(s[i]==t[0])break;}for(int k=0;t[k];k++,i++){if(t[k]!=s[i]){flag=0;break;}}if (flag==1) return j+1;else return 0;习题8.246int i,c=0,k=0,j=1;int a[100];a[0]=0;for(i=0;*(s+i)!='\0';i++,j++)if((*(s+i)>=65&&*(s+i)<=90)||(*(s+i)>=97&& *(s+i)<=122 )){a[j]=0;if(a[j]==0&&a[j-1]==1){*(*(w+k)+c)='\0';k++;c=0;}*(*(w+k)+c)=*(s+i);c++;}elsea[j]=1;if (k>0)return k+1;elsereturn k;习题8.282int i,j,max=0;for(i=0;i<n;i++)for(j=0;j<4;j++){if(max<p[i][j])max=p[i][j]; }return max;习题8.285int i,j,s=0;for(i=0;i<3;i++)for(j=0;j<4;j++){s+=p[i][j];if(j==3){sum[i]=s;s=0;}}习题8.288int i,j,s=0;for(i=0;i<4;i++)for(j=0;j<3;j++){s+=p[j][i];if(j==2){avg[i]=s/3.0;s=0;}}习题9.023int i,j=0; //一个用来找,一个用来记录, 并把第一个假设为条件。
第4章全部习题参考答案

超流水线以增加流水线级数的方法来缩短机器周期,使相同时间内超流水线能执行更多的机器指令。
3.4第4章习题解答1、简要解释下列名词述语虚拟存储器:依靠操作系统的支持来实现的,为用户提供一个比实际内存大的可访问存储器空间,即在软件编程上可使用的存储器,称为虚拟存储器。
随机存储器RAM:按给定地址随机地访问任一存储单元,访问时间与单元位置无关。
只读存储器ROM:在正常工作中只能读出,不能写入的存储器。
存取周期:指存储器做连续访问操作过程中一次完整的存取操作所需的全部时间。
数据传输率:是数据传入或传出存储器的速率。
动态刷新:对动态存储器中原存信息为1的电容补充电荷,称为动态刷新。
直接映像Cache:将主存与Cache的存储空间划分为若干大小相同的页,每个主存页只能复制到某一个固定的Cache页中。
全相联映像Cache:将主存与Cache的存储空间划分为若干大小相同的页,主存的每一页可以映象到Cache的任一页上。
组相联映像Cache:将主存与Cache都分组,主存中一个组内的页数与Cache的分组数相同。
每一组Cache中含有若干页(一般页数较少);则主存中的各页与Cache的固定组号有映象关系,可自由映象到对应的Cache组中任一页。
段页式虚拟存储器:将程序按其逻辑结构分段,每段再分为若干大小相同的页,主存空间也划分为若干同样大小的页。
相应地建立段表与页表,分两级查表实现虚实地址的转换。
以页为单位调进或调出主存,按段共享与保护程序及数据。
相联存储器:是一种按内容寻址的存储器,它是根据所存信息的全部特征或部分特征进行存取的存储器,称为相联存储器。
2.请简计算机系统中的三级存储体系结构模式,并分析这种模式的优点和缺点。
答:三级存储体系包括缓存(cache)、内存和外存,这种模式的优点是层次体系清晰、便于设计实现,也利于系统调度管理,能提高存储系统性能;缺点是结构复杂,管理和控制都比较复杂,硬件成本高。
3.何谓随机存取?何谓顺序存取?何谓直接存取?请各举一例进行说明。
第四章习题解题过程和参考答案

10 G(s) —。
当系统作用有下列输入信号时: r(t) sin(t 30 ),试s 1解:对输出表达式两边拉氏变换:(41)(91)可知,这是由两个一阶环节构成的系统, 1 1^ -, T 2 -4 9系统的幅频特性为二个一阶环节幅频特性之积,相频特性为二个一阶环节相频特性之和:求系统的稳态输出。
解:系统的闭环传递函数为:(S) C(s) R(s) G(s) 1 G(s) 10 11 s11这是一个一阶系统。
系统增益为: 10,时间常数为:11 T 11其幅频特性为: A( 其相频特性为: Karctan T当输入为r(t) 幅频特性和相频特性, si n(t 有:30 ),即信号幅值为: A 1,信号频率为: 1,初始相角为: 0 30。
代入 A(1) 10/11 J 1 1/112 10A A 22(1) arctan T arctan11 5.19所以, 系统的稳态输出为:c(t) A(1) A sin 30 (1) -^si n(t 24.81 )V1224-2已知系统的单位阶跃响应为: c(t) ._ 4t1.8e 0.8e 9t (t 0)。
试求系统的幅频特性和相频特性。
C(s) 1 竺 0.8 s s 4 s 9 s(s 36 4)(s 9) 1s(41)(91)由于C(s) (s)R(s),且有 R(s) 1(单位阶跃)。
所以系统的闭环传递函数为:s4-1设单位反馈系统的开环传递函数为: (s) 时间常数分别为:1000(s 1) 2s(s 2 8s 100)解:手工绘制奈氏图,只能做到概略绘制,很难做到精确。
所谓“概略”,即计算与判断奈氏曲线的起点、终点、 曲线与坐标轴的交点、相角变化范围等,这就可以绘制出奈氏曲线的大致形状。
对一些不太复杂的系统,已经可 以从曲线中读出系统的部分基本性能指标了。
除做到上述要求外,若再多取若干点(如 6-8点),并将各点光滑连线。
这就一定程度上弥补了要求A 的精 度不足的弱点。
广工数据结构anyview答案

第4章//03****************************************************************** /**********【题目】试写一算法,实现链栈的判空操作。
链栈的类型定义为:typedef struct LSNode {ElemType data; // 数据域struct LSNode *next; // 指针域} LSNode, *LStack; // 结点和链栈类型***********/Status StackEmpty_L(LStack S)/* 对链栈S判空。
若S是空栈,则返回TRUE;否则返回FALSE */{if(NULL == S)return TRUE;elsereturn FALSE;}//05****************************************************************** /**********【题目】试写一算法,实现链栈的取栈顶元素操作。
链栈的类型定义为:typedef struct LSNode {ElemType data; // 数据域struct LSNode *next; // 指针域} LSNode, *LStack; // 结点和链栈类型***********/Status GetTop_L(LStack S, ElemType &e)/* 取链栈S的栈顶元素到e,并返回OK; *//* 若S是空栈,则失败,返回ERROR。
*/{if(NULL == S)return ERROR;elsee = S->data;return OK;}//31****************************************************************** /**********【题目】试写一算法,实现链队列的判空操作。
链队列的类型定义为:typedef struct LQNode {ElemType data;struct LQNode *next;} LQNode, *QueuePtr; // 结点和结点指针类型typedef struct {QueuePtr front; // 队头指针QueuePtr rear; // 队尾指针} LQueue; // 链队列类型***********/Status QueueEmpty_LQ(LQueue Q)/* 判定链队列Q是否为空队列。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/**********
【习题4.011】关系表达式,if语句第一种形式
在以下程序空缺处填写合适内容,使得程序判断用户输入的字符是否为'@',若是则显示:"输入正确"。
**********/
#include<stdio.h>
void main()
{
char c;
scanf("%c",&c);
if( c=='@' ) printf("输入正确\n");
}
/**********
【习题4.012】关系表达式,if语句第一种形式
在以下程序空缺处填写合适内容,使得程序输入
一个整数赋给变量a,计算并输出a的绝对值a1。
**********/
#include<stdio.h>
#include<math.h>
void main()
{
int a,a1;
scanf("%d",&a);
a1=abs(a);
printf("|%d| = %d\n",a,a1);
}
/**********
【习题4.013】逻辑表达式,if语句第一种形式
在以下程序空缺处填写合适内容,使得程序对
输入的整型变量x的值进行判断,若变量x值为“假”时输出“False”。
**********/
#include<stdio.h>
int main( )
{
int x;
scanf("%d",&x);
if(x==0 )
printf("False!\n");
return 0;
}
/**********
【习题4.016】if语句的子句为复合语句
在以下程序空缺处填写合适内容,使得程序将输入到变量a和b的两个整数按照由大到小的顺序输出。
**********/
#include<stdio.h>
void main( )
{
inta,b,t;
scanf("%d %d",&a,&b);
if(a<b)
{
t=b;
b=a;
a=t;
}
printf("%d %d\n",a,b);
}
/**********
【习题4.203】条件运算(3目运算)
在以下程序空缺处填写合适内容,使得程序
先令整型变量a取值0,b取值-20;然后用条
件运算实现:若a>b成立则将b的平方值赋予
c,否则将0赋予c;最后显示c的值。
**********/
void main()
{
intc,d;
c=(
else
c=0;
printf("c=%d\n",c);
}
/**********
【习题4.211】已知3个非零整数被分别输入到整型
变量a,b和c。
编写一个条件表达式,判定这3个值能否作为一个三角形的3条边的长度?若能,则该表达式的值为1,否则值为0。
*********/
/* 请依题意在下一行编辑表达式*/
a+b>c&&a-b<c&&a+c>b?1:0
/**********
【习题4.213】已知3个非零整数被分别输入到
整型变量a,b和c。
编写一个条件表达式,判定
这3个值能否作为一个等腰三角形的3条边的长
度?若能,则该表达式的值为1,否则值为0。
*********/
/* 请依题意在下一行编辑表达式*/
(a==b||a==c||b==c)&&a+b>c&&a-b<c&&a+c>b?1:0
/**********
【习题4.215】已知3个非零整数被分别输入到整型变量a,b和c。
编写一个条件表达式,判定这3个值能否作为一个等边三角形的3条边的长度?若能,则该表达式的值为1,否则值为0。
*********/
/* 请依题意在下一行编辑表达式*/
a==b&&b==c?1:0
/**********
【习题4.223】已知3个非零整数被分别输入到整型变量a,b和c。
编写一个条件表达式,判定这3个值能否作为一个直角三角形的3条边的长度?若能,则该表达式的值为1,否则值为0。
*********/
/* 请依题意在下一行编辑表达式*/
(a*a+b*b==c*c||a*a+c*c==b*b||c*c+b*b==a*a)?1:0
/**********
【习题4.225】已知3个非零整数被分别输入到整型变量a,b和c。
编写一个条件表达式,判定这3个值能否作为一个锐角三角形的3条边的长度?若能,则该表达式的值为1,否则值为0。
*********/
/* 请依题意在下一行编辑表达式*/
(a*a+b*b>c*c&&a*a+c*c>b*b&&c*c+b*b>a*a)?1:0
/**********
【习题4.227】已知3个非零整数被分别输入到整型变量a,b和c。
编写一个条件表达式,判定这3个值能否作为一个钝角三角形的3条边的长度?若能,则该表达式的值为1,否则值为0。
*********/
/* 请依题意在下一行编辑表达式*/
(a*a+b*b<c*c||a*a+c*c<b*b||c*c+b*b<a*a)?1:0
/**********
【习题4.253】逻辑运算:&&和||
在以下程序空缺处填写合适内容,使得程序
先令整型变量a和b的值均为34,c的值为78,
然后依次将a和b的逻辑与赋给d,a和c的逻
辑或赋给e,a和c的逻辑与赋给f,最后分行
显示d,e和f的值。
*********/
void main()
{
int a=34,b=34,c=78;
intd,e,f;
d=a&&b;
e=a||c;
f=a&&c;
printf("%d && %d = %d\n",a,b,d);
printf("%d || %d = %d\n",a,c,e);
printf("%d && %d = %d\n",a,c,f);
}
/**********
【习题4.263】逻辑非运算:!
在以下程序空缺处填写合适内容,使得程序
先令整型变量a的值为700,b的值为-30,然
后依次将a的逻辑非赋给c,b的逻辑非赋给d,
最后分行显示c和d的值。
*********/
void main()
{
int a=700,b=-30,c,d;
c=!a;
d=!b;
printf("!%d=%d\n",a,c); printf("!%d=%d\n",b,d); }。