for(i=1;i /*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】n0!=0 或n0 【2】n@0==0 【3】flag . 改错题 (1)错误:fun(char *p) 正确:void fun(char *p) (2)错误:p=q+i; 正确:q=p+i; (3)错误:while(q p). 编程题 . 编程题 void fun(int m, int k, int xx[]) { int i,j,n; for(i=m+1,n=0;n /*找大于m 的素数,循环k 次,即找出 紧靠m 的k 个素数*/ {for(j=2;j /*判断一个数是否为素数,如果不 s=s+1.0/s1; 是,跳出此循环,判断下一个数*/ /*求多项式的值*/ if(i%j==0) break; } if(j>=i) return s; /*如果是素数,放入数组xx 中*/ } xx[n++]=i; 38.填空题 } 【1】char *fun(int n) } 【2】2 36.填空题 【3】n%i==0 或!(n%i) 【1】s[j++]=*(p+i) . 改错题 【2】i++ (1)错误:a=NuLL; 【3】m=j 正确:a=NULL; . 改错题 (2)错误:if(r==p) { r++;p++;} (1)错误: t=s[k]; 正确:if(*r==*p) { r++;p++;} 正确:t+=s[k]; . 编程题 (2)错误: *aver=&ave; float fun (int m, int n) 正确:*aver=ave; { . 编程题 int i; int fun(int *s,int t,int *k) double p=1.0; { for(i=1;i<=m;i++) p=p*i; /*求m!*/ int i; for(i=1;i<=n;i++) p=p/i; *k=0; /*求m!/n!*/ /*k 所指的数是数组的下标值*/ for(i=1;i<=m-n;i++) p=p/i; for(i=0;i return p; /*找到数组的最大元素,把该元素的 } 下标赋给k 所指的数*/ 39.填空题 return s[*k]; 【1】tt[i]<= ′ Z ′ /*返回数组的最大元素*/ 【2】tt[i]+=32 } 【3】tt 37.填空题 . 改错题 【1】*p (1)错误:t+=1.0/k; 【2】i++ 正确:t+=1.0/i; 【3】′ \\0 ′ (2)错误:return i; . 改错题 正确:return t; (1)错误:int fun(char *s,char *t1,char *t2, . 编程题 char *w) int fun (int a[][N]) 正确:void fun(char *s,char *t1,char *t2, { char *w) int i,j; (2)错误:while( r) for(i=0;i 正确:r++; /*将数组左下半三角元素中的值全部 . 编程题 置成0*/ float fun(int n) } { 40.填空题 int i,s1=0; 【1】i<=strlen(str)/2 或i . 改错题 /*求每一项的分母*/ (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 /*只要下标中有一个为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=0)||(k=0)) 正确:if((k==0)||(k==0)) (2)错误:缺少大括号 正确:加} . 编程题 int fun( int a [M][N]) { int i,j,sum=0; for(i=0;i /*只要下标中有一个为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 (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) 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 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(\正确:scanf(\. 编程题 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 个字符串*/ else return 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 (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==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 /*将最大的元素放入指针max 所指 的单元,最大元素的下标放入指 针d 所指的单元*/ if(*max 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 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==1 2. 改错题 (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 if(max if(max==a[i].s) b[j++]=a[i]; /*找出成绩与max 相等的学生的记录, 存入结构体b 中*/ return j; /*返回最高成绩的学生人数*/ } 55.填空题 【1】aa[k++]=t 【2】i (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 57.填空题 【1】i++ 【2】s[j++]=s[i] 【3】s[j]='\\0' . 改错题 (1)错误:for(i=j+1;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] 【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 59.填空题 【1】str[i+1] 【2】str[i]=ch . 改错题 (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 /*按列的顺序依次放到一个字符串中*/ for(j=0;j } 61.填空题 【1】i=1 【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 /*右上半三角元素中的值乘以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 /*传回最长字符串的地址*/ } 63.填空题 【1】s[i]或者s[i]!='\\0' 【2】s[i]==ch 【3】return n . 改错题 错误: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++) if(a[j].s str[i+1]==substr[1]) /*按分数的高低排列学生的记录, j++; 高分在前*/ return j; } /*返回子字符串在主字符串中出现的 66.填空题 次数*/ 【1】i 【2】s[i]%2==0 64.填空题 【3】s[j]= ′\\0′ 【1】g==s&&s==b 或者g==b&&s==b 或者. 改错题 g==s&&g==b (1)错误:y=0; 【2】g+s*10+b*100 正确:y=1; . 改错题 (2)错误:d=i-a; (1)错误:int fun(char str[][10],int m,char 正确:d=a-i; *pt) . 编程题 正确:void fun(char str[][10],int m,char void fun ( char *ss) *pt) { (2)错误:pt[i]=str[k,i]; int i; 正确:pt[i]=str[k][i]; for(i=0;ss[i]!='\\0';i++) . 编程题 { void fun (char *a,int n , if(i%2==0 && ss[i]>='a' && int h , int e) ss[i]<= 'z') { /*将ss 所指字符串中所有下标为偶数 int i,j=0; 位置的字母转换成大写*/ for(i=h;i ss[i]=ss[i]-32;} /*第一个字母和最后一个字母之间 /*大写字母比相应的小写字母的 的字符全不删除*/ ASCII 码值小32*/ a[j++]=a[i]; } a[j]='\\0'; 67.填空题 /*在字符串最后加上结束标记*/ 【1】i+j==56&&i+2*j==72 } 【2】i,j 65.填空题 . 改错题 【1】aa[i]%2!=0 或aa[i]%2==1 (1)错误:fun(int *pstr[6]) 【2】i++,j++ 正确:void fun(int *pstr[6]) . 改错题 (2)错误:if(strcmp(*(pstr+i),pstr+j)>0) (1)错误:switch(g); 正确:if(strcmp(*(pstr+i),*(pstr+j))>0) 正确:去掉分号 (3)错误:*(pstr+i)=pstr+j; (2)错误: case 1;case 2: return 1; 正确:*(pstr+i)= *(pstr+j); 正确:case 1:case2:return 1; . 编程题 . 编程题 fun(STU a[], STU *s) int fun (STREC a[]) { { int i; int i,j; *s=a[0]; STREC t; for(i=0;i for(i=1;i /*找出成绩最高的学生记录*/ /*用冒泡法进行排序,进行N-1 次比较*/ if(s->s *s=a[i]; /*在每一次比较中要进行N-1 次两两 }
C语音上机南开题答案(2)
2019-01-12 15:33
C语音上机南开题答案(2).doc
将本文的Word文档下载到电脑
下载失败或者文档不完整,请联系客服人员解决!