09春上机C03
- 格式:doc
- 大小:25.50 KB
- 文档页数:2
东南大学09级计算机科学基础I上机试卷A一、改错题(50分)【要求】调试程序,修改其中的语法错误及少量逻辑错误。
只能修改、不能增加或删除整条语句,除了可以增加由"{"、回车等分隔符产生的行数外,不允许增加其它行数。
【注意】源程序以“学号f1.cpp”命名,存入自己学号文件夹。
【题目】自定义函数的功能为统计数组中负数的个数,并且将负数改为0;主函数产生-20~79之间的n个随机数,调用自定义的函数,输出函数调用后数组的所有元素的值及原数组中包含的负数个数。
修改程序,运行时能够得到如下的输出结果:产生的随机数为:21 47 14 -20 49 4 58 38 42 44-15 25 61 7 41 71 75 22 7 16数组中负数的个数为:2负数清零后的数组为:21 47 14 0 49 4 58 38 42 440 25 61 7 41 71 75 22 7 16程序中有十处错误。
改错题评分标准:每错5分,共50分【含错误的源程序】#include<iostream>#include<cstdlib>using namespace std; //错误:命名空间using namespace iostream;int ClrMinus(int [],int); //错误声明:int ClrMinus(int ,int);int main(){const int n=20; //错误变量声明int n=20int arr[n]={0},i;cout<<"产生的随机数为:"<<endl;for(i=0;i<n;i++) //数组元素范围错误for(i=1;i<=n;i++){arr[i]=rand()%100-n;cout<<arr[i]<<'\t';}cout<<endl;cout<<"数组中负数的个数为:"<<ClrMinus(arr,n)<<endl;//错误函数调用:ClrMinus(arr[],n)cout<<"负数清零后的数组为:\n";for(i=0;i<n;i++); //错误变量声明int n=20 多了;cout<<arr[i]<<'\t'; //错误数组作用域Arr[i]cout<<endl;return 0;}int ClrMinus(int Arr[],int m){int count=0; //未初始化int count;for(int i=0;i<m;i++) //错误变量声明int n=20{if(Arr[i]<0) //条件语句块错误:少了{}{Arr[i]=0;count++;}}return count;}二、编程题(50分)【注意】源程序以“学号f2.cpp”命名,存入自己学号文件夹。
上机考试题库答案1填空:【1】j=0【2】*(pf+j)-32【3】j++改错:(1)错误:{ if (*p<=*q)正确:{ if (*p>=*q)(2)错误:k++正确:k++;编程:void fun(int a ,int b,long *c){*c=(b%10)*1000+(b/10)*100+(a%1}2填空:【1】disc<0【2】(-b+sqrt(disc))/(2*a)【3】(-b-sqrt(disc))/(2*a)改错:(1)错误:int j=1;正确:double j=1.0;(2)错误:y+=1/(i * i);正确:y+=j/(i * i);编程:void fun(int tt[M][N],int pp[N]){int i,j,max;for(j=0;j<N;j++){max=tt[0][j];/*假设各列中的第一个元素最大*/for(i=0;i<M;i++)if(tt[i][j]>max)/*如果各列中的其他元素比最大值还大,则将更大的元素看做当前该列中最大的元素*/max=tt[i][j];pp[j]=max;/*将各列的最大值依次放入pp数组中*/}}3填空:【1】n>0【2】n%10+'0'【3】str[i]= ′\0′改错:(1)错误:fun(int n);正确:fun(int n)(2)错误:if(n=1)正确:if(n==1)编程:int fun(char *s, int num){char t;int i, j;for(i=1;i<num-2;i++)/*下标值从1开始,用循环依次取得字符串中的字符*/for(j=i+1;j<num-1;j++)/*将字符与其后的每个字符比较*/if(s[i]>s[j])/*如果后面字符的ASCII码值小于该字符的ASCII码值*/{ t=s[i];/*则交换这两个字符*/s[i]=s[j];s[j]=t;}}4填空:【1】xx[i]%10【2】bb[n++]=xx[i]【3】n改错:(1)错误:int fun(int n)正确:double fun(int n)(2)错误:result *=n++ ;正确:result *=n-- ;编程:double fun(int n){double s=0.0;int i;for(i=0; i<n;i++)/*从0~n中找到既能被5整除同时又能被11整除的数,并将这些数求和*/ if(i%5==0&&i%11==0)s=s+i;s=sqrt(s);/*对s求平方根*/return s;}5填空:【1】(-b+sqrt(disc))/(2*a)【2】-b/(2*a)【3】sqrt(fabs(disc))/(2*a)改错:(1)错误:long k=1;正确:long k=0;(2)错误:while(num)正确:while(num);编程:int fun(int t){int a=1,b=1,c=0,i;/*a代表第n-2项,b代表第n-1项,c代表第n项*//*如果求得的数c比指定比较的数小,则计算下一个Fibonacci数,对a,b重新置数*/do{c=a+b;a=b;b=c;}while (c<t);/*如果求得的数c比指定比较的数大时,退出循环*/c=a;/*此时数c的前一个Fibonacci数为小于指定比较的数的最大的数*/ return c;}6填空:【1】int a[][N]【2】s/(n*n)【3】sqrt(f)改错:(1)错误:void fun(char s, char t[ ]) 正确:void fun(char *s, char t[ ]) (2)错误:if(i%2=0||s[i]%2!=0)正确:if(i%2==0||s[i]%2!=0)编程:long fun(int n){int i;long s=0;for(i=2;i<=n-1;i++)/*从2~n-1中找n的所有因子*/if(n%i==0)s+=i*i;/*将所有因子求平方加*/return s;/*将平方和返回*/}7填空:【1】j--【2】*(p2+n)='\0'【3】*p2改错题(1)错误:k=n;正确:k=i;(2)错误:s[j]=i;正确:s[j++]=i;编程题fun(int a[ ][N], int n){int i, j;for(i=0; i<N; i++)for(j=0; j<=i; j++)a[i][j]=a[i][j]+n;}8.填空题【1】*p【2】bb[*p-'0']++【3】num[j]=bb[i]【解析】填空1:通改错题:(1)错误:for(i=0; i<n; i++)正确:for(i=0; i<2; i++)(2)错误:k=m;正确:m=k;编程题:int fun(int score[],int m, int up[]){int i,j=0;float av=0.0;for(i=0;i<m;i++)av=av+score[i]/m;/*求平均值*/for(i=0;i<m;i++)if(score[i]>av)/*如果分数高于平均分,则将此分数放入up数组中*/up[j++]=score[i];return j;/*返回高于平均分的人数*/}9.填空题【1】*p【2】default: b[10]++;【3】p++;. 改错题(1)错误:ifhigh%j==0正确:if(high%j==0)(2)错误:if(yes==0)正确:if(yes. 编程题void fun (int x, int pp[], int *n){int i,j=0;for(i=2;i<=x;i=i+2)/*i的初始值为2,步长为2,确保i为偶数*/if(x%i==0)/*将能整除x的数存入数组pp中*/pp[j++]=i;*n=j;/*传回满足条件的数的个数*/}10.填空题【1】″%ld″,&n【2】n=-n;【3】″%ld″, n. 改错题(1)错误:int fun(char t[ ])正确:void fun(char t[ ])(2)错误:t[j]=t[i++];正确:t[j]=t[i];. 编程题void fun(int m, int k, int xx[]){int i,j,n;for(i=m+1,n=0;n<k;i++)/*找大于m的非素数,循环k次,即找出紧靠m的k个非素数*/for(j=2;j<i;j++)/*判断一个数是否为素数*/if(i%j==0){xx[n++]=i;/*如果不是素数,放入数组xx中*/break;/*并跳出本层循环,判断下一个数*/ }}11.填空题【1】″%s″,str1【2】%c【3】str2. 改错题(1)错误:while(x[i]==0)正确:while(x[i]!=0)(2)错误:sum=sum\c;正确:sum=sum/c;. 编程题int fun(int *s,int t,int *k){int i;*k=0;/*k所指的数是数组的下标值*/for(i=0;i<t;i++)if(s[*k]>s[i])*k=i;/*找到数组的最小元素,把该元素的下标赋给k所指的数*/return s[*k];/*返回数组的最小元素*/}12.填空题【1】″%d″,&n【2】str2[i]=str1[i];【3】str2. 改错题(1)错误:if((s[i]>= 'A'&&s[i]<= 'Z')&&(s[i]>= 'a'&&s[i]<= 'z')) 正确:if((s[i]>= 'A'&&s[i]<= 'Z')||(s[i]>= 'a'&&s[i]<= 'z')) (2)错误:s[j]= "\0";正确:s[j]='\0';. 编程题int fun (int a[][N]){int i,j;for(i=0;i<N;i++)for(j=i;j<N;j++)a[i][j]=0;/*将数组右上半三角元素中的值全部置成0*/}13.填空题【1】n/100%10【2】″yes!″【3】″no!″. 改错题(1)错误:for(j=0;j<n-1;j++) ;正确:for(j=0;j<n-1;j++)(2)错误:a[p]=t;正确:a[j]=t;. 编程题int fun (int w[][N]){int i,j,k=0;int s=0;for(i=0;i<N;i++)for(j=0;j<N;j++)if(i==0||i==N-1||j==||j==N-1)/*只要下标中有一个为0或N-1,则它一定是周边元素*/{s=s+w[i][j]*w[i][j];/*将周边元素求平方和*/}return s;/*返回周边元素的平方和*/}14.填空题【1】xx[i]%10【2】bb[n++]=xx[i]【3】n. 改错题(1)错误:void fun(char p)正确:void fun(char *p)(2)错误:p=q+i;正确:q=p+i;. 编程题double fun(STREC *h){double min=h->s;while(h!=NULL)/*通过循环找到最低分数*/{if(min>h->s)min=h->s;h=h->next;}return min;}15.填空题【1】s[i]>= ′0′ &&s[i]<= ′9′【2】s[i]- ′0′【3】n. 改错题(1)错误:int ave ,t=0;正确:float ave ,t=0.0;(2)错误:if(s[i]<ave)正确:if(s[i]>ave)(3)错误:aver=ave;正确:*aver=ave. 编程题char *fun(char *s, char *t){int i,j;for(i=0;s[i]!= '\0';i++);/*求字符串的长度*/for(j=0;t[j]!= '\0';j++);if(i<=j)/*比较两个字符串的长度*/return s;/*函数返回较短的字符串,若两个字符串长度相等,则返回第1个字符串*/ elsereturn t;}16.填空题【1】i<*num【2】n++【3】*num=n【解析】填空1. 改错题(1)错误:int fun(int m)正确:double fun(int m)(2)错误:for(i=1;i<m;i++)正确:for(i=2;i<=m;i++). 编程题void fun(int *a,int *n){int i,j=0;for(i=1;i<=1000;i++)/*求1到1000之内能被5或13整除、但不能同时被5和13整除的所有整数,并放入数组a中*/if((i%5==0||i%13==0)&&i%65!=0)a[j++]=i;*n=j;/*传回满足条件的数的个数*/}17.填空题【1】bb[i]=0【2】bb[5]++【3】p++;. 改错题(1)错误:while(k>=2)&&(mc<6) 正确:while((k>=2)&&(mc<6)) (2)错误:if((k%7=0)||(k%11=0)) 正确:if((k%7==0)||(k%11= =0)) (3)错误:m=k;正确:m=m+k;. 编程题void fun(char *ss){int i;for(i=0;ss[i]!='\0';i++)/*将ss所指字符串中所有下标为偶数位置的字母转换为小写*/if(i%2==0&&ss[i]>='A'&&ss[i]<='Z')ss[i]=ss[i]+32;}18.填空题【1】alf[i]=0【2】*p+=32【3】p++. 改错题(1)错误:int fun(long s,long *t)正确:void fun(long s,long *t)(2)错误:s=s%100;正确:s=s/100;. 编程题fun (int a[][M]){int i,j,min=a[0][0];for(i=0;i<4;i++)for(j=0;j<M;j++)if(min>a[i][j])min=a[i][j];/*求出二维数组的最小值*/return min;}19.填空题【1】sum+=x[i]【2】avg*1000【3】(avg+5)/. 改错题(1)错误:for (i=0;j<3;j++)正确:for (j=0;j<3;j++)(2)错误:mul=mul*a[i][j];正确:mul=mul*a[i][i];. 编程题int fun (STREC *a, STREC *b){int i,j=0,min=a[0].s;for(i=0;i<N;i++)if(min>a[i].s)min=a[i].s;/*找出最小值*/for(i=0;i<N;i++)if(min==a[i].s)b[j++]=a[i];/*找出成绩与min相等的学生的记录,存入结构体b中*/return j;/*返回最低成绩的学生人数*/}20.填空题【1】*(p1+i)【2】*p2【3】*p2++. 改错题(1)错误:char fun(char tt[])正确:char *fun(char tt[])(2)错误:if((tt[i]>='A')&&(tt[i]<= 'Z')) 正确:if((tt[i]>='a')&&(tt[i]<= 'z')). 编程题void fun(int *w, int p, int n){int i,j,t;for(i=p;i<=n-1;i++)/*循环右移n-p次*/{t=w[n-1];for(j=n-2;j>=0;j--)/*实现循环右移*/w[j+1]=w[j];w[0]=t;}}21.填空题【1】--I【2】s[i]- ′ 0 ′【3】t*10+k. 改错题(1)错误:if(d%2!=0)正确:if(d%2==0)(2)错误:t=d*s1+t;正确:*t=d*s1+*t;. 编程题int fun (STREC a[]){int i,j;STREC t;for(i=1;i<N;i++)/*用冒泡法进行排序,进行N-1次比较*/ for(j=0;j<N-1;j++)/*在每一次比较中要进行N-1次两两比较*/if(a[j].s>a[j+1].s)/*按分数的高低排列学生的记录,低分在前*/{t=a[j];a[j]=a[j+1];a[j+1]=t;}}22.填空题【1】int a[][N],int b[],int n【2】b[i]<a[i][j]【3】b[i]<b[j]. 改错题(1)错误:for (k=4;k<n;k++)正确:for (k=4;k<=n;k++)(2)错误:s2=s;正确:s2=s;}. 编程题void fun(int m, int *k, int xx[]){int i,j,t,n=0;for(i=2;i<m;i++)/*找出大于1小于整数m的素数*/{t=1;for(j=2;j<i;j++)if(i%j==0){t=0;break;}if(t==1)xx[n++]=i;}*k=n;/*返回素数的个数*/}23.填空题【1】i==0||i==n-1||j==0||j==n-1【2】4*n-4【3】s/k. 改错题(1)错误:*t=calloc(m,sizeof(STU)); 正确:t=calloc(m,sizeof(STU));(2)错误:for (i=j=0;i<N;j++)正确:for (i=j=0;i<N;i++)(3)错误:t[k].s=b[j].s;正确:t[k] =b[j];. 编程题int fun (STREC *a, STREC *b,int l, int h ){int i,j=0;for(i=0;i<N;i++)if((a[i].s>=0&&a[i].s<l)||(a[i].s>h&&a[i].s<=100))/*将分数低于l,高于h的学生记录存于结构体数组b中*/b[j++]=a[i];return j;/*返回分数范围内的学生人数*/}24.填空题【1】i=0【2】j--【3】b[j]= ′ \0 ′. 改错题(1)错误:for(k=m;k>0;k--)正确:for(k=m-1;k>=0;k--)(2)错误:pt=j;正确:pt-=j;. 编程题STREC fun(STREC *a, int b){int i;STREC str={"\0",-1};for(i=0;i<N;i++)if(a[i].s==b)str=a[i];return str;}25.填空题【1】i=1【2】k%i==0&&i%2==0【3】--j. 改错题(1)错误:if(strcmp((pstr+i),(pstr+j))<0) 正确:if(strcmp(*(pstr+i),*(pstr+j))<0) (2)错误:*(pstr+j)=*p;正确:*(pstr+j)=p;. 编程题void fun(char *s,char t[]){int i,j=0,k=strlen(s);for(i=0;i<k;i=i+2)t[j++]=s[i];t[j]='\0';}26.填空题【1】k=2【2】s+=(2*k-1)/s1【3】s. 改错题(1)错误:while((j>=0)||(ch>aa[j]))正确:while((j>=0)&&(ch>aa[j]))(2)错误:aa[j]=ch;正确:aa[j+1]=ch;. 编程题double fun (STREC *a,STREC *b,STREC *c, int *n,int *m) {int i;double av=0.0;*n=0;*m=0;for(i=0;i<N;i++)av=av+a[i].s;av=av/N;/*求平均值*/for(i=0;i<N;i++)if(av<=a[i].s){b[*n]=a[i];/*将高于等于平均分的学生存入b所指存储单元中,并统计人数*/*n=*n+1;}else{c[*m]=a[i];/*将低于平均分的学生存入c所指存储单元中,并统计人数*/*m=*m+1;}return av;/*返回平均分*/}27.填空题【2】k<=n【3】s*=f/p. 改错题(1)错误:printf("%4d",xx[i j]);正确:printf("%4d",xx[i][j]);(2)错误:printf('\n ');正确:printf("\n");. 编程题double fun(int n){int i;double s=0.0;for(i=1;i<=n;i++)/*计算S=(1+1/2)+(1/3+1/4)+…+(1/(2n-1)+1/2n)*/s=s+(1.0/(2*i-1)+1.0/(2*i)); return s;}28.填空题【1】int x[]【2】sum+=x[i]【3】sum/n. 改错题(1)错误:int A=1;正确:float A=1;(2)错误:for(i=1;i<=n;i++)正确:for(i=2;i<=n;i++). 编程题double fun(int m){int i;double s=1.0;for(i=1;i<=m;i++)s=s-log(i);/*计算s=1-ln(1)-ln(2)-ln(3)-…-ln(m)*/return (s*s);/*对s求平方并返回*/}【1】sum*x+*p-'0'【2】sum%y【3】sum=sum/y. 改错题(1)错误:int fun(void)正确:void fun(void)(2)错误:printf("%f ",m[j]%5);正确:printf("%f ",m[j]/5);. 编程题void fun(char*s, char t[]){int i,j=0;for(i=0;s[i]!='\0';i++)if(i%2!=0&&s[i]%2==0)/*将s所指字符串中下标为奇数同时ASCII值为偶数的字符放入数组t中*/ t[j++]=s[i];t[j]='\0';/*在字符串最后加上结束标志位*/}30.填空题【1】n=*p-′ 0 ′【2】n*2+*p-'0'【3】n. 改错题(1)错误:for(i=j=0; s[i]!= '0';i++)正确:for(i=j=0; s[i]!= '\0';i++)(2)错误:s[j]=s[i];正确:s[j++]=s[i];. 编程题double fun(double x, int n){int i,j=1;double s=1.0,s1=1.0;for(i=1;i<=n;i++){j=-1*j;s1=s1*i;/*各项中的阶乘*/s=s+j*pow(x,i)/s1;/*按公式求出*/}}31.填空题【1】char *str,int *m,int *k【2】bb[j]++【3】*m<=bb[j]. 改错题(1)错误:s[j]=s[i];正确:s[j++]=s[i];(2)错误:s[j]="\0";正确:s[j]= '\0 ';. 编程题int fun(int score[],int m, int below[]){int i,j=0;float av=0.0;for(i=0;i<m;i++)av=av+score[i]/m; /*求平均值*/ for(i=0;i<m;i++)if(score[i]<av)/*如果分数低于平均分,则将此分数放入below数组中*/below[j++]=score[i];return j;/*返回低于平均分的人数*/}32.填空题【1】"%f",&score[i]【2】bb[i]=0【3】score[i]/10. 改错题错误:a[i+1]=a[i];正确:a[i]=a[i+1];. 编程题void fun(int *a,int *n){int i,j=0;for(i=1;i<=1000;i++)/*求1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数,并放入数组a中*/if((i%7==0||i%11==0)&&i%77!=0)a[j++]=i;*n=j;/*传回满足条件的数的个数*/}33.填空题【1】*p==t【2】bb[n++]=I【3】n. 改错题(1)错误:for(i=2;i<m;i++)正确:for(i=2;i<=m;i++)(2)错误:y-=1/(i*i);正确:y-=1.0/(i*i);. 编程题void fun (int x, int pp[], int *n){int i,j=0;for(i=1;i<x;i=i+2)/*i的初始值为1,步长为2,确保i为奇数*/if(x%i==0)/*将能整除x的数存入数组pp中*/pp[j++]=i;*n=j;/*传回满足条件的数的个数*/}34.填空题【1】*(str+i++)=*p【2】p=str【3】m=j. 改错题(1)错误:p=j正确:p=j ;(2)错误:p=j;正确:p=i;. 编程题void fun(char*tt,int pp[] ){int i;for(i=0;i<26;i++)pp[i]=0; /*初始化pp数组各元素为0*/for(;*tt!='\0';tt++)if(*tt>='a'&&*tt<='z')pp[*tt-'a']++;/*将tt字符串中'a'到'z'26个字母各自出现的次数,依次放在pp数组中,任一个小写字母减去'a'后所得结果正好是它对应的下标*/}35.填空题【1】n%100!=0或n%100【2】n%400==0【3】flag. 改错题(1)错误:fun(char *p)正确:void fun(char *p)(2)错误:p=q+i;正确:q=p+i;(3)错误:while(q<p)正确:while(q>p). 编程题. 编程题void fun(int m, int k, int xx[]){int i,j,n;for(i=m+1,n=0;n<k;i++)/*找大于m的素数,循环k次,即找出紧靠m的k个素数*/{for(j=2;j<i;j++)/*判断一个数是否为素数,如果不是,跳出此循环,判断下一个数*/if(i%j==0) break;if(j>=i)/*如果是素数,放入数组xx中*/xx[n++]=i;}}36.填空题【1】s[j++]=*(p+i)【2】i++【3】m=j. 改错题(1)错误:t=s[k];正确:t+=s[k];(2)错误:*aver=&ave;正确:*aver=ave;. 编程题int fun(int *s,int t,int *k){int i;*k=0;/*k所指的数是数组的下标值*/for(i=0;i<t;i++)if(s[*k]<s[i]) *k=i;/*找到数组的最大元素,把该元素的下标赋给k所指的数*/return s[*k];/*返回数组的最大元素*/}37.填空题【1】*p【2】i++【3】′ \0 ′. 改错题(1)错误:int fun(char *s,char *t1,char *t2, char *w) 正确:void fun(char *s,char *t1,char *t2, char *w) (2)错误:while( r)正确:while( *r) ;(3)错误:r++正确:r++;. 编程题float fun(int n){int i,s1=0;float s=0.0;for(i=1;i<=n;i++){s1=s1+i;/*求每一项的分母*/s=s+1.0/s1;/*求多项式的值*/}return s;}38.填空题【1】char *fun(int n)【2】2【3】n%i==0或!(n%i). 改错题(1)错误:a=NuLL;正确:a=NULL;(2)错误:if(r==p) { r++;p++;}正确:if(*r==*p) { r++;p++;}. 编程题float fun (int m, int n){int i;double p=1.0;for(i=1;i<=m;i++) p=p*i; /*求m!*/ for(i=1;i<=n;i++) p=p/i;/*求m!/n!*/for(i=1;i<=m-n;i++) p=p/i;/*求m!/(n!(m-n)!)*/return p;}39.填空题【1】tt[i]<= ′ Z ′【2】tt[i]+=32【3】tt. 改错题(1)错误:t+=1.0/k;正确:t+=1.0/i;(2)错误:return i;正确:return t;. 编程题int fun (int a[][N]){int i,j;for(i=0;i<N;i++)for(j=0;j<=i;j++)a[i][j]=0;/*将数组左下半三角元素中的值全部置成0*/}40.填空题【1】i<=strlen(str)/2或i<strlen(str)/2 【2】*p1++!=*p2--【3】t==0. 改错题(1)错误:void fun (char str,char ch)正确:void fun (char *str,char ch)(2)错误:if(*str==ch)正确:if(*str=='\0')(3)错误:str[1]= '0';正确:str[1]= '\0';. 编程题double fun (int w[][N]){int i,j,k=0;double av=0.0;for(i=0;i<N;i++)for(j=0;j<N;j++)if(i==0||i==N-1||j==0||j==N-1)/*只要下标中有一个为0或N-1,则它一定是周边元素*/{av=av+w[i][j];/*将周边元素求和*/k++;}return av/k;/*求周边元素的平均值*/}41.填空题【1】max=a【2】max=b【3】max=c. 改错题(1)错误:if((k%13=0)||(k%17=0))正确:if((k%13==0)||(k%17==0))(2)错误:缺少大括号正确:加}. 编程题int fun( int a [M][N]){int i,j,sum=0;for(i=0;i<M;i++)for(j=0;j<N;j++)if(i==0||i==M-1||j==0||j==N-1)/*只要下标中有一个为0或M-1或N-1,则它一定是周边元素*/sum=sum+a[i][j];/*将周边元素相加*/return sum;}42.填空题【1】n=0【2】*r==*p【3】*r==′ \0 ′. 改错题(1)错误:void fun(int a,b)正确:void fun(int *a,int *b)(2)错误:t=b;b=a;a=t;正确:t=*b;*b=*a;*a=t;. 编程题int fun (int array[3][3]){int i,j,t;for(i=0;i<3;i++)/*将右上三角和左下三角对换,实现行列互换*/for(j=i+1;j<3;j++){t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;}}43.填空题【1】&num[i]【2】max<num[i]?【3】num[i]!=0. 改错题(1)错误:void fun(long s,long t)正确void fun(long s,long *t)(2)错误:while(s<0)正确:while(s>0). 编程题int fun(int lim, int aa[MAX]){int i,j,k=0;for(i=2;i<=lim;i++)/*求出小于或等于lim的全部素数*/ { for(j=2;j<i;j++)if(i%j==0) break;if(j>=i)aa[k++]=i;/*将求出的素数放入数组aa中*/ }return k;/*返回所求出的素数的个数*/}44.填空题【1】t==a[i]【2】a[j++]=t. 改错题(1)错误:fun(NODE *h)正确:int fun(NODE *h)(2)错误:p=h->next;正确:p=p->next;. 编程题double fun(STREC *h){double max=h->s;while(h!=NULL)/*通过循环找到最高分数*/{if(max<h->s) max=h->s;h=h->next;}return max;}45.填空题【1】tt=(STU*)malloc(sizeof(STU)*m) 【2】b[i].order>b[j].order【3】tt. 改错题(1)错误:if(*r==*p) {r++;p++}正确:if(*r==*p) {r++;p++ ; }(2)错误:if(r=='\0')正确:if( *r=='\0'). 编程题long fun(char *p){long n=0;int flag=1;if(*p=='-')/*负数时置flag为-1*/{p++;flag= -1;}else if(*p=='+')/*正数时置flag为1*/p++;while(*p!='\0'){n=n*10+*p-'0';/*将字符串转成相应的整数*/p++;}return n*flag;}46.填空题【1】sum+=x[i]【2】abs+=(x[i]-avg)* (x[i]-avg)【3】sqrt(abs/10). 改错题(1)错误:sun=1正确:sum=0;(2)错误:scanf("%d",a[i][j])正确:scanf("%d",&a[i][j]). 编程题char *fun(char *s, char *t){int i,j;for(i=0;s[i]!= '\0';i++);/*求字符串的长度*/for(j=0;t[j]!= '\0';j++);if(i>=j)/*比较两个字符串的长度*/return s;/*函数返回较长的字符串,若两个字符串长度相等,则返回第1个字符串*/ elsereturn t;}47.填空题【1】i<=n【2】i%3==0||i%7==0【3】1.0/i或1/(double)i. 改错题(1)错误:t=0;正确:t=1.0(2)错误:while(t>eps)正确:while(t>=eps)(3)错误:return(s);正确:return(s*2);. 编程题double fun(double eps){double s=1.0,s1=1.0;int n=1;while(s1>=eps)/*当某项大于精度要求时,继续求下一项*/{s1=s1*n/(2*n+1);/*求多项式的每一项*/s=s+s1; /*求和*/n++;}return 2*s;}48.填空题【1】i<n/2或s+i<s+n-1-i或i<n-1-i【2】*(s+i)=*(s+n-1-i)【3】*(s+n-1-i)=t. 改错题(1)错误:void fun(char s[],int n)正确:void fun(char *s,int n)(2)错误:s=p;正确:p=s;(3)错误:i++;正确:i++;p++;(4)错误:a[i]=0;正确:a[i]= '\0';. 编程题void fun(int m, int *a, int *n){int i,j=0;for(i=1;i<=m;i++)if(i%7==0||i%11==0)/*求出1到m(含m)之内能被7或11整除的所有整数放在数组a中*/a[j++]=i;*n=j;/*返回这些数的个数*/}49.填空题【1】n==0【2】n==1【3】fun(n-1)+fun(n-2). 改错题(1)错误:{ t=a;b=a;a=t;}正确:{ t=a;a=b;b=t;}(2)错误:return(a);正确:return (b);. 编程题void fun(int a[],int n,int *max, int *d){int i;*max=a[0];*d=0;for(i=0;i<n;i++)/*将最大的元素放入指针max所指的单元,最大元素的下标放入指针d所指的单元*/if(*max<a[i]){*max=a[i];*d=i;}}50.填空题【1】n>1【2】n-1【3】n==1. 改错题错误:if(('A'<=tt[i]||(tt[i]<= 'Z'))正确:if((tt[i]>= 'A')&&(tt[i]<= 'Z')). 编程题void fun(char *ss){int i;for(i=0;ss[i]!='\0';i++)/*将ss所指字符串中所有下标为奇数位置的字母转换为大写*/if(i%2==1&&ss[i]>='a'&&ss[i]<='z')ss[i]=ss[i]-32;}51.填空题【1】k=0【2】(i%2==0)||(i%3==0)【3】s[k]= ′\0′. 改错题错误:if(i+1%5==0)正确:if((i+1)%5==0). 编程题fun (int a[][M]){int i,j,max=a[0][0];for(i=0;i<2;i++)for(j=0;j<M;j++)if(max<a[i][j])max=a[i][j];/*求出二维数组的最大值*/return max;}52.填空题【1】j%i==0【2】flag==1【3】aver/n. 改错题(1)错误:while(*s!='@')正确:while(*s)(2)错误:(*s)++;正确:s++;. 编程题void fun(char*s, char t[]){int i,j=0;for(i=0;s[i]!='\0';i++)if(i%2==0&&s[i]%2==0)/*将s所指字符串中下标和ASCII值都为偶数的字符放入数组t中*/t[j++]=s[i];t[j]='\0';/*在字符串最后加上结束标志位*/}53.填空题【1】s[i]!=′\0′【2】25【3】1. 改错题(1)错误:t=0;正确:*t=0;(2)错误:if(d%2==0)正确:if(d%2!=0). 编程题void fun(char *s, char t[]){int i,j=0;for(i=0;s[i]!='\0';i++){if(i%2==0&& s[i]%2!=0)t[j++]=s[i]; }/*将下标为偶数同时ASCII码值为奇数的字符放入数组t中*/t[j]= '\0';/*在字符串最后加上结束标志位*/}54.填空题【1】i=0【2】s[i]!= ′\0′【3】s[i]%2!=0或s[i]%2==12. 改错题(1)错误:if(p==' ')正确:if(*p==' ')(2)错误:*p=toupper( *(p-1));正确:*(p-1)=toupper( *(p-1));. 编程题int fun (STREC *a, STREC *b){int i,j=0,max=a[0].s;for(i=0;i<N;i++)if(max<a[i].s) max=a[i].s;/*找出最大值*/for(i=0;i<N;i++)if(max==a[i].s) b[j++]=a[i];/*找出成绩与max相等的学生的记录,存入结构体b中*/return j;/*返回最高成绩的学生人数*/}55.填空题【1】aa[k++]=t【2】i<j. 改错题(1)错误:r=p;正确:r=t;(2)错误:if(*r=0)正确:if(*r=='\0'). 编程题int fun (char *str){int i,j=0;for(i=0;str[i]!='\0';i++)if(str[i]!=' ')/*将字符串中的空格删去*/str[j++]=str[i];/*注意该程序中空格字符的表达方法*/ str[j]='\0';/*在字符串最后加上结束标记符*/}56.填空题【1】k=0【2】j=2【3】k--. 改错题(1)错误:t=x;x=y;正确:t=*x; *x=y;(2)错误:return(y) ;正确:return (t);. 编程题void fun(STREC *p){int i;p->ave=0.0;for(i=0;i<N;i++)p->ave=p->ave+p->s[i];/*求各门成绩的总和*/p->ave=p->ave/N;/*求平均分*/}57.填空题【2】s[j++]=s[i]【3】s[j]='\0'. 改错题(1)错误:for(i=j+1;i<n-1;i++)正确:for(i=j+1;i<n;i++)(2)错误:t=i;正确:p=i;. 编程题int fun(char *ss, char c){int i=0;for(;*ss!='\0';ss++)if(*ss==c)i++;/*求出ss所指字符串中指定字符的个数*/ return i;}58.填空题【1】aa[max]<aa[i]【2】aa[min]>aa[i]【3】aa[max]=aa[min]. 改错题(1)错误:void fun(int a[],int m)正确:int fun(int a[],int m)(2)错误:else if(m>=a[mid])正确:else if(m>a[mid]). 编程题void fun(int *w, int p, int n){int i,j,t;for(i=0;i<=p;i++)/*循环左移p+1次*/{t=w[0];for(j=1;j<n;j++)/*实现循环左移*/w[j-1]=w[j];w[j-1]=t;}}59.填空题【1】str[i+1]. 改错题(1)错误:fun( int **a, int m)正确:void fun( int (*a)[M], int m)(2)错误:a[j][k]=k*j;正确:a[j][k]=(k+1)*(j+1);. 编程题void fun (char *w,int m){int i,j;char t;for(i=1;i<=m;i++)/*进行m次的循环左移*/{t=w[0];for(j=1;w[j]!='\0';j++)/*从第2个字符开始以后的每个字符都依次前移一个字符*/w[j-1]=w[j];w[j-1]=t;/*将第1个字符放到最后一个字符中*/}}60.填空题【1】i=1,j=0【2】bb[j++]=i【3】return j. 改错题(1)错误:fun(int n)正确:double fun(int n)(2)错误:return sum正确:return sum ;. 编程题void fun(char (*s)[N],char *b){int i,j,k=0;for(i=0;i<N;i++)/*按列的顺序依次放到一个字符串中*/ for(j=0;j<M;j++)b[k++]=s[j][i];b[k]='\0';}61.填空题【2】t=aa[j]【3】aa[i]=t. 改错题(1)错误:fun(char (*sq)[N])正确:char *fun(char (*sq)[M])(2)错误:return sq;正确:return sp;. 编程题int fun(int a[][N], int m){int i,j;for(i=0;i<N;i++)for(j=i;j<N;j++)a[i][j]=a[i][j]*m;/*右上半三角元素中的值乘以m*/ }62.填空题【1】s[i]!= ′\0′或s[i]【2】32或′a′-′A′【3】i++. 改错题(1)错误:*t=calloc(m,sizeof(STU)); 正确:t=calloc(m,sizeof(STU));(2)错误:t[k].num=b[j].num;正确:t[k]=b[j];. 编程题fun(char (*a)[81], int num,char *max){int i=0;max=a[0];for(i=0;i<num;i++)/*找出最长的一个字符串*/if(strlen(max)<strlen(a[i]))max=a[i];return max;/*传回最长字符串的地址*/}63.填空题【1】s[i]或者s[i]!='\0'【2】s[i]==ch. 改错题错误:t[i]=s[s1-1];正确:t[i]=s[s1-1-i];. 编程题int fun(char *str, char *substr){int i,j=0;for(i=0;str[i+1]!='\0';i++)/*如果一个长度为2的子字符串在主字符串中出现一次,则j+1,如此循环*/if(str[i]==substr[0]&&str[i+1]==substr[1])j++;return j;/*返回子字符串在主字符串中出现的次数*/}64.填空题【1】g==s&&s==b或者g==b&&s==b或者g==s&&g==b 【2】g+s*10+b*100. 改错题(1)错误:int fun(char str[][10],int m,char *pt)正确:void fun(char str[][10],int m,char *pt)(2)错误:pt[i]=str[k,i];正确:pt[i]=str[k][i];. 编程题void fun (char *a,int n ,int h , int e){int i,j=0;for(i=h;i<n-e;i++)/*第一个字母和最后一个字母之间的字符全不删除*/a[j++]=a[i];a[j]='\0';/*在字符串最后加上结束标记*/}65.填空题【1】aa[i]%2!=0或aa[i]%2==1【2】i++,j++. 改错题(1)错误:switch(g);正确:去掉分号(2)错误:case 1;case 2: return 1;正确:case 1:case2:return 1;. 编程题int fun (STREC a[]){int i,j;STREC t;for(i=1;i<N;i++)/*用冒泡法进行排序,进行N-1次比较*/ for(j=0;j<N-1;j++)/*在每一次比较中要进行N-1次两两比较*/if(a[j].s<a[j+1].s){t=a[j];a[j]=a[j+1];a[j+1]=t;}/*按分数的高低排列学生的记录,高分在前*/}66.填空题【1】i<n【2】s[i]%2==0【3】s[j]= ′\0′. 改错题(1)错误:y=0;正确:y=1;(2)错误:d=i-a;正确:d=a-i;. 编程题void fun ( char *ss){int i;for(i=0;ss[i]!='\0';i++){if(i%2==0 && ss[i]>='a' &&ss[i]<= 'z')/*将ss所指字符串中所有下标为偶数位置的字母转换成大写*/ss[i]=ss[i]-32;}/*大写字母比相应的小写字母的ASCII码值小32*/67.填空题【1】i+j==56&&i+2*j==72【2】i,j. 改错题(1)错误:fun(int *pstr[6])正确:void fun(int *pstr[6])(2)错误:if(strcmp(*(pstr+i),pstr+j)>0) 正确:if(strcmp(*(pstr+i),*(pstr+j))>0) (3)错误:*(pstr+i)=pstr+j;正确:*(pstr+i)= *(pstr+j);. 编程题fun(STU a[], STU *s){int i;*s=a[0];for(i=0;i<N;i++)/*找出成绩最高的学生记录*/if(s->s<a[i].s)*s=a[i];}68.填空题【1】break;【2】i++【3】′ \0′. 改错题(1)错误:while(i>j)正确:while(i<j)(2)错误:*c=0;正确:*c='\0';. 编程题void fun(int m, int *k, int xx[]){int i,j,n=0;for(i=4;i<m;i++)/*找出大于1小于整数m的非素数*/{for(j=2;j<i;j++)if(i%j==0) break;if(j<i) xx[n++]=i;}*k=n;/*返回非素数的个数*/69.填空题【1】i%10【2】g*g*g==i. 改错题(1)错误:fun(char *s, int num[5])正确:void fun(char *s, int num[5])(2)错误:num[i]=0;正确:num[k]=0;(3)错误:switch(s)正确:switch(*s). 编程题void fun(char p1[],char p2[]){int i,j;for(i=0;p1[i]!='\0';i++); /*求出的i为p1字符串的总长度,包括结束标记位*/ for(j=0;p2[j]!='\0';j++)p1[i++]=p2[j];/*将p2字符串连在p1字符串后面*/p1[i]='\0';/*在字符串最后加上结束标记符*/}70.填空题【1】j=i或j=i+2【2】aa[i]>aa[j]. 改错题(1)错误:if(i%k!=0)正确:if(i%k==0)(2)错误:if(k<i)正确:if(k>=i). 编程题void fun (int a[3][3],int b[3][3]){int i,j;for(i=0;i<3;i++)for(j=0;j<3;j++)b[i][j]=a[i][j]+a[j][i];/*把矩阵a加上a的转置,存放在矩阵b中*/}71.填空题【1】j=0,--I【2】j++,i--. 改错题(1)错误:fun(int m)正确:double fun(int m)(2)错误:for(i=100,i<=m,i+=100)正确:for(i=100;i<=m;i+=100). 编程题double fun(STREC *a, STREC *b,int *n){int i,j=0;double av=0.0;for(i=0;i<N;i++)av=av+a[i].s;av=av/N;/*求平均值*/for(i=0;i<N;i++)if(a[i].s<av) b[j++]=a[i];/*将低于平均值的学生记录存入结构体b中*/*n=j;/*指针传回低于平均值的学生人数*/ return av;/*返回平均值*/}72.填空题【1】aa[i]%2==0【2】i<k. 改错题(1)错误:i=1;正确:i=0;(2)错误:while(i<3||*p)正确:while(i<3&&*p)(3)错误:b[k]= ' ';正确:b[k++]=' ';. 编程题void fun(int (*s)[10], int *b,int *n, int mm, int nn){int i,j,k=0;for(i=0;i<mm;i++)。
2010-2011学年度第二学期期末考试试卷《彩色电视机原理与维修》班别:09春电器2、3 学号:姓名:评分:选择和判断答题框题目 1 2 3 4 5 6 7 8 9 10选择判断一、填空题(16分)1、32寸液晶电视机内部大约有支CCFL灯管,每支灯管约有W。
2、高频头的突出特点是:利用二极管来选择频道,利用二极管来切换频段。
3. CCFL灯管的启动电压是V,工作电压是V。
4. 对CRT彩电,显像管的阴极电压越高,屏幕光栅越,液晶电视机的逆变板的输出级的易损件有。
5、检测的大小是判断彩电行输出级是否正常的常用方法,行电流大小大约是.6、CRT彩电的灯丝电压是伏,没有灯丝电压,彩电将。
7、液晶电视机中,PFC电路输入电压是V的脉动直流电,输出电压是V的稳定直流电。
8、LED液晶电视机的背光灯是二极管,LED的工作电压是V。
二、作图题(14分)1、画出CRT彩电字符显示电路,并说明产生“无字符显示”故障时应查哪些电路?三.问答题(30分)1、当CRT彩电产生“刚开机时图像模糊不清,过一会图像变正常”的故障时,怎样检修?2、液晶电视机主要由哪些电路板组成?3、简述LCD液晶电视机和LED电视机的主要区别。
四、选择题(20分)1、用电笔靠近彩电行输出变压器,开机,电笔能发光,说明有()产生。
A、阳极高压,B、加速电压,C、聚焦电压。
2、彩电暗平衡调整是使荧光屏在()时不偏色。
A、暗,B、亮,C、正常。
3、液晶电视机中,可以并联驱动的灯管是()。
A、CCFL,B、EEFL,C、LED。
4、彩电显像管的阴极电压越高()。
A、光栅亮度越暗,B、束电流越大,C、对比度越大。
5、观察CRT彩电的灯丝,发现中间的灯丝不亮,则彩电将缺少()。
A、红色,B、绿色,C、蓝色。
6、液晶电视机中,CCFL灯管的供电是()。
A、高频正弦交流电,B、低频正弦交流电,C、直流电。
7、、高频头的AGC电压不稳,则会造成()。
A、图像雪花大,B、跑台。
第3套上机考试试题已知文件lN.dat中存有100个产品销售记录,每个产品销售记录由产品代码code(字符型4位)、产品名称name(字符型10位)、单价uprice(整型)、数量amount(整型)、金额sum(长整型)5部分组成。
其中:金额=单价×数量。
函数RData0读取这100个销售记录并存入结构数组sell中。
请编写函数DescSort0,其功能要求:按产品代码从大Nd,进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WData0,把结果输出到文件OUT.dat中。
注意:部分程序已给出。
请勿改动主函数main()、读数据函数RData()和输出数据函数WData()的内容。
第3套试题答案及详解【审题分析】首先我们来看看题中要求我们解决的问题有哪些。
①按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列;②将排列结果存入结构数组sell巾。
分析题目可知,本题中使用结构数组sell来保存销售记录。
产品代码存储在sell结构数组中的code成员中,金额存储存sum成员中。
【解题思路】我们可以利用两个for循环结构对产品销售记录(strcmp(sell[i].code.sell[j].code))两两进行循环比较,如果这个表达式返回结果值小于0,则进行两个数据的交换,实现产品代码从大到小进行排序。
如果上面的表达式的返回值等于0,说明这两个产品的代码相司,则比较seH[i].sum与sell[j].sum 的值。
如果sell[i].sum[j].sum,则进行两个数据的交换,实现金额从大到小进行排序。
【参考答案】在文件IN.dat中有200个正整数,且每个数均在1000-9999之间。
函数RData()读取这200个数存放到数组0riginal中。
请编写函数numAscend(),其功能是:要求按每个数的后3位的大小进行升序排列,然后取出满足此条件的前10个数依次存入数组result中,如果后3位的数值相等,则按原先的数值进行降序排列。
信息学院09年级计算机科学基础II上机试卷A(考试时间70分钟卷面成绩100分)学号姓名机位号说明:首先在Z盘建立一个以自己的学号命名的文件夹,用于存放上交的*.CPP文件和*.dat文件,考试结束前根据机房要求,将这个文件夹传送到网络服务器上,注意:提交时只保留文件夹中的.CPP文件和.dat文件。
一、改错题(50分)【要求】调试程序,修改其中的语法错误及逻辑错误。
只能修改、不能增加或删除整条语句。
请在修改行的末尾用“注释符号//+序号”表示此行修改过,如//3)【注意】源程序以“学号f1.cpp”命名,存入自己学号文件夹中。
【题目】修改以下程序中的逻辑错误和语法错误(共10处)。
#include<iostream>using namespace std;class CChild{int m_age;double *m_pweight;public:CChild(int);CChild(CChild &);~CChild();friend void SetChildData(CChild);};CChild::CChild(int age){age=m_age;if(age){if(m_pweight==new double[age]){cout<<"请输入"<<m_age<<"岁儿童每年的平均体重\n";for(int i=0;i<age;i++)cin>>m_pweight[i];}}else m_pweight=0;}CChild::~CChild()if(!m_pweight){cout<<m_age<<"岁儿童每年的平均体重为(kg)\n";for(int i=0;i<m_age;i++)cout<< *(m_pweight+i)<<'\t';cout<<endl;delete m_pweight;}}CChild::CChild(CChild &child){m_age=child.m_age;if(m_age){m_pweight=new double(m_age);for(int i=0;i<m_age;i++)m_pweight[i]=child.m_pweight[i];}else m_pweight=0;}friend void SetChildData(CChild child){cout<<"请输入儿童年龄:\t";cin>>m_age;if(child.m_age){if(child.m_pweight) delete [] child.m_pweight;child.m_pweight=new double[child.m_age];cout<<"请输入"<<child.m_age<<"岁儿童每年的平均体重\n";for(int i=0;i<child.m_age;i++)cin>>child.m_pweight[m_age];}else child.m_pweight=0;}int main(){CChild ch1(4),ch2(ch1),ch3;SetChildData(ch3);return 0;二、编程题(50分)【注意】源程序以“学号f2.cpp”命名,存入自己学号文件夹中。
2009年上海市普通高等学校春季招生考试数 学 试 卷一. 填空题(本大题满分60分)本大题共有11题, 1.函数)1(log 2-=x y 的定义域是 .解:01>-x 显现的知识与方法需求(对数函数的定义)1>x 准备知识需求(不等式性质)∴定义域),1(+∞ 显现的知识与方法需求(区间的表示) 2.计算:=-2)i 1( (i 为虚数单位).解:2221)1(i i i +-=- 显现的知识与方法需求(复数的乘方) =121--i 显现的知识与方法需求()12-=i =i 2- 显现的知识与方法需求(复数的加减) 3.函数2cosx y =的最小正周期=T .解:ππ4212==T 显现的知识与方法需求(余弦函数的最小正周期)112ωπ=T4.若集合{}1||>=x x A ,集合{}20<<=x x B ,则=B A .解:∵A=),1()1,(+∞--∞ 准备知识需求(求绝对值不等式的解集) B=(0,2)∴A ∩B=(1,2) 显现知识与方法需求(集合的交集) 5.抛物线x y =2的准线方程是 . 解:x px y ==222∴21=p 潜在的知识与方法需求(抛物线标准方程)∴抛物线准线方程412-=-=p x 显现的知识与方法需求(抛物线标准方程)6.已知2,3==b a. 若3-=⋅b a,则a 与b 夹角的大小为 .解:设α夹角为与b a21233c o s-=⨯-==α 显现的知识与方法需求(向量的夹角及向量夹角的范围)32πα=准备知识需求(特殊角的三角比)∴32π的夹角为与b a7.过点)1,4(-A 和双曲线116922=-yx右焦点的直线方程为 .解:双曲线116922=-yx4,3==b a∴5,25222==+=c b a c 得 潜在的知识与方法需求(双曲线中)222b a c+=∴双曲线的右焦点为)0,5(1F A (4,-1)1540)1(1=---=AF K显现的知识与方法需求(直线的斜率)∴)5(1:-⋅=x y AF 显现的知识与方法需求(直线的点斜式方程) ∴05=--y x 8.在△ABC 中,若60,75,3=∠=∠=ACB ABC AB ,则BC 等于 .解:3△ABC 中∠A=180°-75°-60°=45° 准备知识需求(三角形内角和为180°)CAB ABC sin sin =显现的知识与方法需求(正弦定理)∴︒=︒60sin 345sin BC∴BC=6 能力需求(计算能力)9.已知对于任意实数x ,函数)(x f 满足)()(x f x f =-. 若方程0)(=x f 有2009个实数解, 则这2009个实数解之和为 . 解:设方程0)(=x f 的实数解为200921,,x x x不妨设200921x x x <<< 又)()(x f x f =- ∴如存在0)(00=x f x 使则0)(0=-x f 潜在的知识与方法需求(偶函数定义) ∴020091=+x x 020082=+x x010061004=+x x01005=x 能力需求(观察能力) ∴0200921=+++x x x 准备知识需求(等式的性质)10.一只猴子随机敲击只有26个小写英文字母的练习键盘. 若每敲1次在屏幕上出现一个 字母,它连续敲击10次,屏幕上的10个字母依次排成一行,则出现单词“monkey ”4的概率为 (结果用数值表示). 解:61510415262626C C P =⨯=6265= 潜在的知识与方法需求(等可能事件的概率)11.以下是面点师一个工作环节的数学模型:如图,在数 轴上截取与闭区间]1,0[对应的线段,对折后(坐标1所对应的点与原点重合)再均匀地拉成1个单位长度的线段,这一过程称为一次操作 (例如在第一次操作完成后,原来的坐标4341、变成21,原来的坐标21变成1,等等). 那么原闭区间]1,0[上(除两个端点外)的点,在第二次操作完成后,恰好被拉到与 1重合的点所对应的坐标是 ;原闭区间]1,0[上(除两个端点外)的点, 在第n 次操作完成后(1≥n ),恰好被拉到与1重合的点所对应的坐标为 . 解:结论:nnnj 2,,23,21 ,j 为]2,1[n 的所有奇数。
计算机上机题(一)第一题Word题(1)录入下面文字。
蓝色的能源海洋是巨大的能源宝库,海洋能被誉为“蓝色的能源”。
在大海中,真正最有力量的,并不是那些看起来气势汹汹的波涛,而是默默无声地蕴藏在海水中的热能。
从理论上说,冷、热水的温差在16.6℃即可发电,但实际应用中一般都在20℃以上。
凡南北纬度在20度以内的热带海洋都适合温差发电。
例如,我国西沙群岛海域,在5月份测得水深30米以内的水温为30℃,而1000米深处便只有5℃,完全适合温差发电。
大海里蕴藏着巨大的热能,据估计只要把南北纬20度以内的热带海洋充分利用起来发电,水温降低1℃放出的热量就有600亿千瓦发电容量,全世界人口按60亿计算,每人也能分得10千瓦,前景是十分诱人的。
海洋是全世界最大的太阳能收集器,6000万平方公里的热带海洋一天吸收的太阳辐射能,相当于2500亿桶石油的热能。
如果将这些储热的1%转化成电力,也将相当于有140亿千瓦装机容量,为美国现今发电能力的20倍以上。
(2)纵向使用A4纸,上、下页边距设置为2.54厘米,左、右页边距设置为3厘米。
将标题文字“蓝色的能源”,设置为艺术字(采用第四行第四列的艺术字样式),字体设置为隶书,36磅,嵌入式居中显示,艺术字形状为“双波形1”,设置阴影样式为“阴影样式13”。
(3)将所有正文文字设置为楷体_GB2312、四号、深蓝色;首行缩进2字符、行距(固定值)26磅、对齐方式为两端对齐。
(4)将第一自然段文字复制到文档末尾,作为第三自然段。
(5)将第一个段落,设置首字下沉,下沉行数2行,距正文0.3厘米,字体为“隶书”。
(6)利用“查找/替换”功能将正文第一和第二自然段中的所有“海洋”设置为红色、黑体,并加上着重号。
(7)将第二自然段分为偏左的两栏,左栏宽度为12个字符,栏间距为5.5个字符,并在两栏之间设置分隔线。
(8)插入任意一幅图片,调整图片大小(高7.2厘米,宽14.92厘米)与第二个自然段内容版面一致,利用“图片工具栏”将图片设置为“冲蚀”效果,并作为水印放在第二自然段的下边。
(092)上海大学2009-2010年冬季学期上机卷(A)2010.3课程名: 程序设计基础(C语言)课程号: 00863006 学分: 5上机操作题,3题,共30分第1题(10分,源程序文件E:\answer\1-A-1.C )上机要求:下列程序包含3个错误(分布在不同的3行上),请输入该程序的代码,找出并更正程序错误,在修改行代码后增加“/***/”注释,将修改后的源程序保存到E:\answer\1-A-1.C中。
程序功能:从键盘上连续输入整数直至输入0时终止,输出终止前输入整数中大于或等于60的数,输出整数使用逗号分隔。
(假设输入的整数个数不超过20个)如输入:50 60 70 90 40 99 55 95 69 59 100 0则输出:60,70,90,99,95,69,100示例说明:输入数据中的前11个整数中有7个大于等于60的整数,使用逗号分隔输出,输入的第12个整数为0,表示连续输入过程结束。
再如输入:59 -10-20 160 0则输出:160示例说明:输入数据可分多行,可为负数,正数可超过100,若输出只有一个整数,则没有逗号。
带错误原程序:#include <stdio.h>int sca_0(int a[]){int n;for (n=0;1;n++){scanf("%d",a[n]);if (a[n]==0) break;}return n;}int select_a(int b[],int a[],int n,int x){int i, k=0;for (i=0,i<n;i++)if (a[i]>x)b[k++]=a[i];return k;}void prt_c(int a[],int n){int i;for (i=0;i<n;i++)if (i==n-1)printf("%d\n, a[i]);elseprintf("%d,", a[i]);}main(){int a[100],b[100],n,k;n=sca_0(a);k=select_a(b,a,n,59);prt_c(b,k);}第2题(10分,源程序文件E:\answer\1-A-2.C )上机要求:按程序功能要求编写程序,并将程序代码保存到E:\answer\1-A-2.C 中。
8页7题2005年秋浙江省高等学校计算机等级考试试卷(三级,网络技术)说明:(1)考生应将一至四题的答案涂写在答题卡上,将第五、六题答案写在答卷纸上,否则作无效处理;(2)除了第六题目A、B选择其中之一,其他所有题目均为必答题;(3)请将你的准考证号的后四位填写在答卷的右下角指定位置内;(4)考试时间为120分钟。
一、计算机网络基础(本题21分)1(1)A B.模拟信号传输模拟数据C.数字信号传输数字数据 D.数字信号传输模拟数据2、在下列多路复用技术中, B 具有动态分配时隙的功能。
(2)A.同步时分多路复用 B.统计时分多路复用C.频分多路复用D.波分多路复用3、下面属于数据通信中差错控制技术的是 D 。
(3)A.分组技术B.曼彻斯特码C.异步传输D.海明码海明码是一种可以纠正一位差错的编码4、按覆盖的地理范围进行分类,计算机网络可以分为3类,即 D 。
(4)A.局域网、广域网与X.25网B.局域网、广域网与宽带网C.局域网、广域网与A TM网D.局域网、广域网与城域网5、下列有关网络拓扑结构的叙述中,正确的是 D 。
(5)A.星形结构的缺点是,当需要增加新的结点时成本比较高B.树型结构的线路复杂,网络管理也较困难C.网络的拓扑结构是指网络中结点的物理分布方式D.网络的拓扑结构是指网络结点间的布线方式6、Internet网是目前世界上第一大互联网,它起源于美国,其雏形是 A 。
(6)A.ARPANET网B.NCFC网C.GBNET网D.CERNET网7、对于数据通信方式,下列说法正确的是 C 。
(7)A.通信方式可以分为单工通信、双工通信、半单工通信、半双工通信B.单工通信是指通信线路上的数据有时可以按单一方向传送C.半双工通信是指一个通信线路上允许数据双向通信,但不允许同时双向传送D.以上说法均不正确8、在常用的传输介质中,带宽最宽、信号传输衰减最小、抗干扰能力最强的一类传输介质是 C 。
全国计算机等级考试三级PC技术机试真题2009年9月(总分:100.00,做题时间:90分钟)一、上机题(总题数:1,分数:100.00)1.请编制程序ex9.ASM,其功能是:从20个有符号字节数据中取出负数并计算其绝对值之和(字型),然后存放在指定的内存区中,多余的空间填0。
例如:内存中有80H,02H,00H,7CH,7BH,11H,……结果为80H,00H,FEH,00H,FDH,00H,85H,00H,……部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中,运算的结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。
补充BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
对程序进行汇编,并与IO.OBJ链接产生执行文件,最终运行程序产生结果。
调试中发现整个程序中存在错误之处,请加以修改。
[试题程序]EXTRN LOAD:FAR,SAVE:FARN EQU 20STAC SEGMENT STACKDB 256 DUP(?)STAC ENDSDATA SEGMENTSOURCE DB N DUP(?)RESULT DB N DUP(0)NAME0 DB 'INPUT1.DAT',0NAME1 DB 'OUTPUT1.DAT',0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACSTART PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXMOV ES,AXLEA DX,SOURCE ;数据区起始地址LEA SI,NAME0 ;原始数据文件名MOV CX,N ;字节数CALL LOAD ;从'INPUT1.DAT'中读取数据; **** BEGIN ****LEA SI,SOURCELEA DI,RESULTMOV DX,0MOV CX,NCLDCON:LODSH(1)JGE (2)MOV [DI],ALINC DI(3)INC DIADD DL,AL(4)NEXT:LOOP CONMOV [DI],DXADD DI,2MOV CX,40SUB CX,DIMOV AL,0(5); ****END****LEA DX,RESULT ;结果数据区首址LEA SI,NAME1 ;结果文件名MOV CX,N ;结果字节数CALL SAVE ;保存结果到文件RETSTART ENDPCODE ENDSEND START(分数:100.00)__________________________________________________________________________________________ 正确答案:(; **** BEGIN ****LEA SI,SOURCELEA DI,RESULTMOV DX,0MOV CX,NCLDCON:LODSBCMP AL,0JGE NEXTMOV [DI],ALINC DINEG ALINC DIADD DL,ALADC DH,0NEXT:LOOP CONMOV [DI],DXADD DI,2MOV CX,40SUB CX,DIMOV AL,0REP STOSB; ****END****)解析:[解析] 本题主要考查有符号数的绝对值之和问题。
江苏省高等学校非计算机专业学生
计算机基础知识和应用能力等级考试上机试卷(2009年春)
二级C语言(试卷代号C03)
(本试卷完成时间70分钟)
一、改错题:(20分)
【程序功能】
分类汇总求和。
函数sort_aver的形参a指向的二维数组(简称a数组)第一列元素的值代表类型,a数组已按第一列元素的值从小到大有序排列。
sort_aver函数对a数组的n行元素中第一列元素值相同的所有行按列求平均值(第一列除外),并将类别值和除第一列外的各列平均值依次保存到b指向的数组(简称b数组)中,函数返回b数组中数据的行数。
【测试数据与运行结果】
a数组:b数组:
1 3 3
1 1 3 1
2 3
2 3 5 2 3 5
3 5
4 3 4 5
3 3 6
【含有错误的源程序】
#include <stdio.h>
int sort_aver(int a[][3],n,b[][3])
{int i,j,k=0,c[10];
for(i=0;i<3;i++)b[0][i]=a[0][i];
c[0]=1;
for(i=1;i<n;i++)
{if(b[k][0]==a[i][0])
{for(j=1;j<3;j++)
b[k][j]+=a[i][j];
c[k]++;
}
else
{c[++k]=0;
for(j=0;j<3;j++)
b[k][j]=a[i][j];
}
}
for(i=0;i<=k;i++)
for(j=1;j<3;j++)
b[i][j]/=c[i];
return k;
}
void main()
{int x[10][3]={{1,3,3},{1,1,3},{2,3,5},{3,5,4},{3,3,6}},i,j,n;
n=sort_aver(x,5,b);
for(i=0;i<n;i++)
{for(j=0;j<n;j++) printf("%3d",b[i][j]);
printf("\n");
}
}
【要求】
1. 将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。
2.改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其它语句,也不能删去整条语句。
3.改正后的源程序(文件名myf1.c)保存在T:盘根目录中供阅卷使用,否则不予评分。
二、编程题:(20分)
【程序功能】
找出7个默森尼数。
法国数学家默森尼(Marin Mersenne)曾提出下列公式:M P=2P-1。
当P是素数,并且M P也是素数时,称M P为默森尼数。
例如,P=5,M P=25-1=31,5和31都是素数,因此31是默森尼数;而P=11,M P =211-1=2047,11是素数,但2047不是素数,因此2047不是默森尼数。
【编程要求】
1.编写函数void Mersenne(long a[], int m),其功能是求出前m个默森尼数并依次将它们保存到a指向的数组中。
2.编写main函数,调用Mersenne函数找出并保存前7个默森尼数,将运行结果输出到屏幕及结果文件myf2.out中。
最后将考生的准考证号也保存到结果文件myf2.out中。
【测试数据与运行结果】
3 7 31 127 8191 131071 524287
【要求】
1.将源程序文件取名为myf2.c,输出结果文件取名为myf2.out。
2.数据文件的打开、使用和关闭均用C语言标准库中缓冲文件系统的文件操作函数实现。
3.源程序文件和运行结果文件均需保存在T:盘根目录中供阅卷使用。
4.不要复制扩展名为obj和exe文件到T:盘中。