广工Anyview试题答案第八章

合集下载

广工CAnyview参考标准答案

广工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码最小的字符放在第一个字符位置,其余字符依次往后移。

广工数据结构参考答案全(anyview)

广工数据结构参考答案全(anyview)

广工数据结构anyview 80道上机题1.void Descend(int &x, int &y, int &z)/* 按从大到小顺序返回x,y和z的值*/ {int t;if(x<z){t=z;z=x;x=t;}if(y<z){t=y;y=z;z=t;}if(y>x){t=x;x=y;y=t;}}2.Status Fibonacci(int k, int m, int &f)/* 求k阶斐波那契序列的第m项的值f */ {int *a;int i=1;if(k<2||m<0) return ERROR;if(m<k){if(m==k-1) f=1;else f=0;return OK;}a=(int*)malloc((m+1)*sizeof(int));for(i=0;i<k-1;i++) a[i]=0;i=k+1;a[k-1]=1;a[k]=1;while(i<=m){a[i]=2*a[i-1]-a[i-k-1];i++;}f=a[m];return OK;}3.void Scores(ResultType *result, ScoreType *score)/* 求各校的男、女总分和团体总分, 并依次存入数组score *//* 假设比赛结果已经储存在result[ ]数组中, *//* 并以特殊记录{"", male, ' ', "", 0 }(域scorce=0)*//* 表示结束*/{int i;for(i=0;result[i].score!=0;i++){score[result[i].schoolname-'A'].totalscore+=result[i].score;if(result[i].gender==male)score[result[i].schoolname-'A'].malescore+=result[i].score;elsescore[result[i].schoolname-'A'].femalescore+=result[i].score;}}4Status Series(int ARRSIZE, int a[])/* 求i!*2^i序列的值并依次存入长度为ARRSIZE的数组a;*//* 若所有值均不超过MAXINT,则返回OK,否则返回OVERFLOW */{int i=1,b=1,na=1;while(i<=ARRSIZE){na*=i;b*=2;if(na*b>MAXINT) return OVERFLOW;a[i-1]=na*b;i++;if(i>ARRSIZE+1) return OVERFLOW;}return OK;}5float Polynomial(int n, int a[], float x)/* 求一元多项式的值P(x)。

广工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.030int 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;}习题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.125int b;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];}习题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; //一个用来找,一个用来记录, 并把第一个假设为条件。

2014年广工离散数学Anyview参考答案

2014年广工离散数学Anyview参考答案

广东工业大学离散数学Anyview习题答案——更新于2014年12月作者Seasand2014 1.00①试设计一算法,判断元素与集合之间的关系。

实现下列函数:/*** 判断元素与集合之间的关系。

元素和集合之间的关系只有两种。

* @param elem:元素* @param pA:集合* @return: 如果elem ∈pA,则返回TRUE,否则返回FALSE*/Boolean IsInSet(SetElem elem, pSet pA){//Add your code here}//1.00Boolean IsInSet ( SetElem elem, pSet pA ){//Add your code hereSetElem * a = outToBuffer ( pA );for ( ; *a != '\n'; a++ ){if ( elem == *a ){return true;}}return false;}1.01③试设计一算法,实现集合的并运算。

实现下列函数:/*** 进行两个集合的并运算* @param pA:要进行并运算的集合* @param pB:要进行并运算的集合* @return: 将pA和pB进行并运算后得到的集合*/pSet SetUnion(pSet pA, pSet pB){//Add your code here}//1.01pSet SetUnion ( pSet pA, pSet pB ){SetElem * a = outToBuffer ( pA );SetElem * b = outToBuffer ( pB );pSet pC = createNullSet();int i = 0;for ( ; *b != '\n'; b++ ){directInsertSetElem ( pC ,*b );}for ( a = outToBuffer ( pA ); *a != '\n'; a++ ){if ( isInSet ( pB,*a ) != true ){directInsertSetElem ( pC ,*a );}}return pC;}1.02②试设计一算法,实现集合的交运算。

2015年广工数据结构Anyview答案-推荐下载

2015年广工数据结构Anyview答案-推荐下载

/********** 1.18【题目】试编写算法,计算 i!×2^i 的值并存入数组 a[0..n-1]的第 i-1 个分量中 (i=1,2,…,n)。假设计 算机中允许的整数最大值为 MAXINT,则当对某个 k (1≤k≤n)使 k!×2^k>MAXINT 时,应按出错处理。注意 选择你认为较好的出错处理方法。 **********/ Status Series(int a[], int n) /* 求 i!*2^i 序列的值并依次存入长度为 n 的数组 a; */ /* 若所有值均不超过 MAXINT,则返回 OK,否则 OVERFLOW */ {
long m=1; for(int i=1;i<=n;i++) {
m=m*i*2; if(m<=MAXINT) {
a[i-1]=m; } else return OVERFLOW; } return OK; } /********** 1.23【题目】假设有 A、B、C、D、E 五个高等院校进行田径对抗赛, 各院校的单项成绩均以存入计算机并构成一张表,表中每一行 的形式为: 项目名称 性别 校名 成绩 得分 编写算法,处理上述表格,以统计各院校的男、女总分和团体 总分,并输出。 **********/
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电通,力1根保过据护管生高线产中0不工资仅艺料可高试以中卷解资配决料置吊试技顶卷术层要是配求指置,机不对组规电在范气进高设行中备继资进电料行保试空护卷载高问与中题带资2负料2,荷试而下卷且高总可中体保资配障料置2试时32卷,3各调需类控要管试在路验最习;大题对限到设度位备内。进来在行确管调保路整机敷使组设其高过在中程正资1常料中工试,况卷要下安加与全强过,看度并25工且52作尽22下可护都能1关可地于以缩管正小路常故高工障中作高资;中料对资试于料卷继试连电卷接保破管护坏口进范处行围理整,高核或中对者资定对料值某试,些卷审异弯核常扁与高度校中固对资定图料盒纸试位,卷置编工.写况保复进护杂行层设自防备动腐与处跨装理接置,地高尤线中其弯资要曲料避半试免径卷错标调误高试高等方中,案资要,料求编试技5写、卷术重电保交要气护底设设装。备备置管4高调、动线中试电作敷资高气,设料中课并技3试资件且、术卷料中拒管试试调绝路包验卷试动敷含方技作设线案术,技槽以来术、及避管系免架统不等启必多动要项方高方案中式;资,对料为整试解套卷决启突高动然中过停语程机文中。电高因气中此课资,件料电中试力管卷高壁电中薄气资、设料接备试口进卷不行保严调护等试装问工置题作调,并试合且技理进术利行,用过要管关求线运电敷行力设高保技中护术资装。料置线试做缆卷到敷技准设术确原指灵则导活:。。在对对分于于线调差盒试动处过保,程护当中装不高置同中高电资中压料资回试料路卷试交技卷叉术调时问试,题技应,术采作是用为指金调发属试电隔人机板员一进,变行需压隔要器开在组处事在理前发;掌生同握内一图部线纸故槽资障内料时,、,强设需电备要回制进路造行须厂外同家部时出电切具源断高高习中中题资资电料料源试试,卷卷线试切缆验除敷报从设告而完与采毕相用,关高要技中进术资行资料检料试查,卷和并主检且要测了保处解护理现装。场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。

广工数据结构anyview答案

广工数据结构anyview答案

广工数据结构anyview答案第4章//03******************************************************************/******* ***【题目】试写一算法,同时实现链栈的判空操作方式。

链栈的类型定义为:typedefstructlsnode{elemtypedata;//数据域structlsnode*next;//指针域}lsnode,*lstack;//结点和链栈类型***********/statusstackempty_l(lstacks)/*对链栈s判空。

若s就是空栈,则回到true;否则回到false*/{if(null==s)returntrue;elsereturnfalse;}//05******************************************************************/******* ***【题目】试写一算法,同时实现链栈的挑栈顶元素操作方式。

链栈的类型定义为:typedefstructlsnode{elemtypedata;//数据域structlsnode*next;//指针域}lsnode,*lstack;//结点和链栈类型***********/statusgettop_l(lstacks,elemtype&e)/*取链栈s的栈顶元素到e,并返回ok;*//*若s是空栈,则失败,返回error。

*/{if(null==s)returnerror;elsee=s->data;returnok;}//31******************************************************************/******* ***【题目】试写一算法,同时实现链队列的判空操作方式。

链队列的类型定义为:typedefstructlqnode{elemtypedata;structlqnode*next;}lqnode,*queueptr;//结点和结点指针类型typedefstruct{queueptrfront;//队头指针queueptrrear;//队尾指针}lqueue;//链队列类型***********/statusqueueempty_lq(lqueueq)/*认定链队列q与否为空队列。

(第八)课后习题答案

(第八)课后习题答案

Fj
=
FL 8r
=
20 × 300 ×10−3 8 × 75 2 ×10−3
=5
2kN
由图可知,螺栓最大受力
Fmax = Fi2 + Fj 2 + 2Fi Fj cos θ = 2.52 + (5 2)2 + 2 × 2.5 × 5 2 × cos 45° = 9.015kN
∴ τ = Fmax = 9.015 ×103 = 319 > [τ]
+
Ld
− Ld 0 2
= 550 +
2240 − 2214 2
= 563mm
中心距的变化范围为 550 ~ 630mm 。
∴由d0 ≥
4Fmax
π[τ]
可知采用(a)布置形式所用的螺栓直径较小
5-10
第六章 键、花键、无键连接和销连接 习题答案
6-3 在一直径 d = 80mm 的轴端,安装一钢制直齿圆柱齿轮(如下图),轮毂宽度 L = 1.5d ,工作时有轻
微冲击。试确定平键的尺寸,并计算其允许传递的最大扭矩。
[解] 根据轴径 d = 80mm ,查表得所用键的剖面尺寸为 b = 22mm , h = 14mm 根据轮毂长度 L'= 1.5d = 1.5 × 80 = 120mm 取键的公称长度 L = 90mm 键的标记 键 22 × 90GB1096 - 79 键的工作长度为 l = L − b = 90 − 22 = 68mm 键与轮毂键槽接触高度为 k = h = 7mm 2
Θ 5 m s < ν < 30 m s ∴ 带速合适
③计算从动轮的基准直径
dd2
=
d d 1n1 (1 −

PLC应用技术(广西工业职业技术学院)智慧树知到课后章节答案2023年下广西工业职业技术学院

PLC应用技术(广西工业职业技术学院)智慧树知到课后章节答案2023年下广西工业职业技术学院

PLC应用技术(广西工业职业技术学院)智慧树知到课后章节答案2023年下广西工业职业技术学院广西工业职业技术学院第一章测试1.PLC的含义是()。

答案:可编程控制器2.世界上第一台PLC-产生于()。

答案:1969年3.某PLC的点数是24个点,表示()。

答案:输入和输出点总数是24个4.按结构形式分,S7-1200PLC是属于()。

答案:整体结构5.S7-1200PLC属于小型机,点数在()。

答案:256点以内6.数字量输入模块某一外部输入开关接通时,对应的过程映像输入位为()。

答案:1状态7.S7-1200 CPU集成了()等工艺功能。

答案:高速计数、脉冲输出、PID控制8.对SB、DI、DO、AI、AO下面说法正确的是()。

答案:SB是信号板模块、DI是数字量输入模块、DO是数字量输出模块,AI是模拟量输入模块,AO是模拟量输出模块9.继电器输出的PLC其负载电源电压范围为DC5~30V或AC5~250V。

可带动下面的电灯负载(交流)最大是()。

答案:200W10.PLC是由CPU模块、I/O接口、电源、存储器等组成。

答案:对11.PLC能用于工业现场的原因是价格便宜。

答案:错12.S7-1200幅盖了S7-200全部功能和S7-300R的部分功能。

答案:对13. CPU1215C-DC/DC/DC表示是晶体管输出。

答案:对14.PLC采用扫描方式工作。

答案:错15.对PLC的CPU1214C AC/DC/Relay,其中AC表示PLC的电源是交流电,DC表示输入端电源是直流电,Relay表示PLC输出端是继电器输出。

答案:对16.继电器输出的PLC输出电压是交流5V-250V或直流5V-30V,输出电流是0.3A,负载是DC30W,AC300W。

答案:错17.晶体管输出的PLC输出电压是交流5V-250V或直流24V,输出电流是0.5A。

答案:错18.CPU1215C-DC/DC/Relay的输出端负载电源只能用直流电。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

/**********【习题】请编写函数func(char s[], char t[], int n),由数组s中长度为n的字符序列构造其逆序列,并存储在数组t中。

例如,由给定字符序列?慜敲求得逆序列?敜慲;由?瑜浩履求得?敜業屴。

**********/void func(char s[], char t[], int n)/* 数组s的前n个元素存放给定的字符序列,数组t的前n个元素存放s的逆序列。

注意:数组的下标从0开始。

*/{for(int i=0;i<n;i++)t[i]=s[n-i-1];}/**********【习题】请编写函数func(char*s, char *t),由字符串s构造其逆串t。

例如,由给定串?慜敲求得逆串?敜慲;由?瑜浩履求得?敜業屴。

**********/void func(char *s, char *t)/* s是给定字符串的起始地址,t是求得s的逆串的起始地址*/{int n=0;for(int i=0;*(s+i)!='\0';i++)n++;for(i=0;i<n;i++)t[i]=s[n-i-1];}/**********【习题】对长度为n的字符串s1,除首、尾字符外,将其余字符按ASCII码降序排列,组合成一个新的字符串s2。

**********/void func(char *s1, char *s2, int n)/* s1为字符串的起始地址,s2为新字符串的起始地址,n为字符串的长度。

要求:s1串不能发生改变,s2串存放新的字符串。

*/{for(int i=0;i<n;i++)*(s2+i)=*(s1+i);if(n<4)break;else{char t=*(s2+1);int k=1;int j,h;for(i=1;i<=n-2;i++){for(j=i;j<=n-2;j++)if(t<=*(s2+j)){t=*(s2+j);h=j;}*(s2+h)=s2[k++];s2[k-1]=t;t=s2[k];}}}/**********【习题】对字符串s1,除首、尾字符外,将其余字符按ASCII码降序排列,组合成一个新的字符串s2。

**********/void func(char *s1, char *s2){for(int i=0;*(s1+i)!='\0';i++)*(s2+i)=*(s1+i);int n=i;if(n<4)break;else{char t=*(s2+1);int k=1;int j,h;for(i=1;i<=n-2;i++){for(j=i;j<=n-2;j++)if(t<=*(s2+j)){t=*(s2+j);h=j;}*(s2+h)=s2[k++];s2[k-1]=t;t=s2[k];}}}/**********【习题】以字符串s第m(>=0)个字符开始的所有字符,按升序的次序构成字符串t。

**********/void substr(char *s, int m, char *t)/* s为字符串的起始地址,m>=0,为新字符串的起始地址,t注意:字符串尾字符之后跟随着一个结束符‘\0',即ASCII码为0的字符,结束符不属于字符串。

要求:s串不能发生改变,t串存放新的字符串。

*/{int f=0;for(int i=m;s[i]!='\0';i++)t[f++]=s[i];t[f]='\0';if(m==0||m==1||m==2){break;}else{char c=t[0]; int k=0;for(i=0;t[i]!='\0';i++){for(int j=i;t[j]!='\0';j++)if(c>=t[j])c=t[j];t[j]=t[k];t[k++]=c;c=t[k];}}}/**********【习题】在字符串s中查找字符c,如果找到,返回字符c首次出现在字符串s中的位置指针;否则,返回空指针NULL。

**********/char *match(char *s, char c)/* 返回字符在串s中首次出现的位置指针*/{for(int i=0;s[i]!='\0';i++)if(*(s+i)==c)return s+i;return NULL;}/**********【习题】编写函数,计算年份year中第yearday天相应的月和日。

例如,调用函数month_day(2000,61,&m,&d)之后,m=3,d=1,即2000年的第61天是3月1日。

**********/int month_day(int year, int yearday, int *pmonth, int *pday)/* year是年,yearday是天数,若year和yearday合理,则*pmonth和*pday是计算得出的月和日,函数返回1;。

0否则,函数返回*/{int date[12]={31,29,31,30,31,30,31,31,30,31,30,31};if(year%4==0&&yearday>0&&yearday<367){*pmonth=yearday/31+1;if(*pmonth>2){*pday=yearday;for(int i=0;i<*pmonth-1;i++)*pday-=date[i];}else if(*pmonth==1)*pday=yearday;else *pday=yearday-31;return 1;}elseif(year%4!=0&&yearday>0&&yearday<366){*pmonth=yearday/29+1; date[1]=28;if(*pmonth>2){*pday=yearday;for(int i=0;i<*pmonth-1;i++)*pday-=date[i];}else if(*pmonth==1)*pday=yearday;else *pday=yearday-31;return 1;}return 0;}/**********【习题】请编写一个函数func,通过略去非数字字符,将字符串s转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。

**********/long func(char *s)/* s是一个数字字符串的地址,函数返回值为由s含有的数字字符转换得到的数(包含正负数情况)*/{{int i=0;long t=0;bool meet_negative=false;bool meet_number=false;while(s[i]){if(47<(int)s[i]&&(int)s[i]<58){meet_number=true;t*=10;t+=((int)s[i]-48);}if(s[i]=='-'&&meet_number==false)meet_negative=true;i++;}if(meet_negative==true)return -t;return t;}}/**********【习题】请编写一个函数findmax(int []s, int n),返回数组s中n(>0)个整数中的最大值。

注意:要求在函数中采用指针(而不是下标)来处理数组元素。

**********/int findmax(int s[], int n)/* 返回s中n(>0)个整数的最大值。

注意:要求在函数中采用指针(而不是下标)来处理数组元素。

*/{int t=*s;for(int i=0;i<n;i++)if(*(s+i)>t)t=*(s+i);return t;}/**********【习题】请编写一个函数min3adj(int s[], int n),数组s中有n(>0)个整数,返回在s中相邻三个数的和中的最小值。

**********/int min3adj(int s[], int n)/* 数组s含n(>=3)个整数,返回在s中相邻三个数的和中的最小值。

*/{int t=*(s+n-1)+*(s+n-2)+*(s+n-3);for(int i=n-1;i>1;i--)if(t>*(s+i)+*(s+i-1)+*(s+i-2))t=*(s+i)+*(s+i-1)+*(s+i-2);return t;}/**********【习题】编写函数,通过指针参数sum将x和y的和赋给相应实际参数。

例如,若x=134、y=378,则sum的实参变量被赋值512。

**********/void func(int x, int y, int *sum){*sum=x+y;}/**********【习题】编写函数,返回指针参数x和y所指向的变量的值之和。

**********/int func(int *x, int *y){return *x+*y;}/**********【习题】编写函数,比较指针参数x和y分别指向的变量,若前者的值较大,则交换两者的值,并返回1;否则无须交换,返回0。

**********/int func(int *x, int *y){if(*x>*y){int t=*x;*x=*y;*y=t;return 1;}return 0;}/**********【习题】假设指针a指向某数组中的一个元素。

编写函数,在从元素*a开始的n个元素范围内,向后查找给定值x,一旦找到值等于x的元素,则返回该元素的序号;若找不到,则返回0。

例如,假定a指向的10个元素依次为5,6,3,0,-4,8,9,-6,8,-7,若x=5,则返回1;若x=8,则返回6;若y=4,则返回0。

**********/int func(int n, int *a, int x){for(int i=0;i<n;i++)if(*(a+i)==x)return i+1;return 0;}/**********【习题】假设指针a指向某数组中的一个元素。

编写函数,对从元素*a开始的n个元素,统计并返回值为x的元素个数(若不存在这样的元素,则返回0)。

**********/int func(int n, int *a, int x).{int t=0;for(int i=0;i<n;i++)if(*(a+i)==x)t++;if(t==0)return 0;return t;}/**********【习题】编写函数,返回指针参数s所指向的字符串的长度。

相关文档
最新文档