为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

计算机二级计算机上机题库综合版

2013-09-22 17页 doc 194KB 29阅读

用户头像

is_691769

暂无简介

举报
计算机二级计算机上机题库综合版 类型一:与*号有关的操作 94.请编写函数fun,它的功能是:将字符串中的前导*号全部删除,中间和尾部的*号不删除。 删除前导*号 char *p=a; 注意:这一段是程序题答案 while(*p=='*') p++ ;  for(;*p!='\0';p++,a++) *a=*p ; *a='\0'; void fun(int(*t)[N]) 注意:这三个是填空题 答案 t[i][j] =t[i][j]+t[j][i]; t[j][i]=0; #define FU(m...
计算机二级计算机上机题库综合版
类型一:与*号有关的操作 94.请编写fun,它的功能是:将字符串中的前导*号全部删除,中间和尾部的*号不删除。 删除前导*号 char *p=a; 注意:这一段是程序 while(*p=='*') p++ ;  for(;*p!='\0';p++,a++) *a=*p ; *a='\0'; void fun(int(*t)[N]) 注意:这三个是填空题 答案 t[i][j] =t[i][j]+t[j][i]; t[j][i]=0; #define FU(m,n) ((m)/(n))注意这两个是改成题答案 return (value); 请编写函数fun,它的功能是:除了尾部的*号之外,将字符串中其他*号全部删除。形参p已指向字符串中最后的一个字母。 除尾部*号其余*删除注意:这一段是程序题答案 char *t=a; for(;t<=p;t++) if(*t!='*' ) *(a++)=*t; for(;*t!='\0' ;t++) *(a++)=*t; *a='\0'; 注意:这三个是填空题 答案 void fun(int t[N][N] , int n) for(i=0;ia[mid]) 73.请编写函数fun,它的功能是:除了字符串前导和尾部的*号之外,将串中其他*号全部删除。 只删除中间*号 int i=0; char *q=a ; while(q0.001) 66.请编写函数fun,它的功能是:删除字符串中所有的*号。 删除串中所有*号 int i,j=0; for(i=0;a[i]!='\0';i++) if(a[i]!='*') a[j++]=a[i]; a[j]='\0'; if (a[i]%2==1) a[j] = a[i]; j++; return j; t=a;a=b;b=t; return(b); 83.请编写函数fun,它的功能是:将字符串尾部的*号全部删除,前面和中间的*号不删除。 删除串尾*号 while(*a!='\0') a++; a--; while(*a=='*') a--; *(a+1)='\0'; for(i=0; i< N ; i++) if(strcmp(ss[i],t)==0 ) return i ; if(n== -1) printf("\nDon't found!\n"); a2=k/10; return i; 88.请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其他*号全部删除。 除前导*外删除其他* int i=0; char *p=a ; while(*p&&*p=='*') { a[i]=*p; i++; p++;} while(*p) { if(*p!=’*’) {a[i]=*p; i++; } p++; } a[i]= '\0'; for(i=0; in) { while(*p) {a[i]= *(p+k-n) ; i++; p++; } a[i]='\0'; } void fun(char (*ss) [M], int k) while(i< N) { ss[i][k]=0; i++; } t=1; return(2*s); 33.请编写函数fun,它的功能是:使字符串中尾部的*号不得多于n个 串尾部*号不多于n个 int i=0, k=0; char *p, *t; p=t=a; while ( *t) t++; t--; while (*t==’*’) {k++; t-- ;} t++; if (k>n) { while(*p&&pstrlen(p)) p=a[i]; *max=p; void fun(int (*a) [N]) for(j= i ; j1e-006); return x1; for(i=0; i=0;j--) t[j][N-1]=r[j]; double f( double x) return s; 68.请编写函数fun,其功能是:计算并输出下列多项式值: Sn=1+1/1!+1/2!+1/3!+1/4!+…+1/n! 若主函数从键盘给n输入15,则输出为s=2.718282。 double t,sn=1.0; int i,j; for(i=1;i=1&&k<=6)&&(i!=0&&j!=0)||k==0) 100.请编写函数fun,其功能是:计算并输出 S=1+(1+2^0.5)+(1+2^0.5+3^0.5)+……+ (1+2^0.5+3^0.5+……+n^0.5) 输入20后,则输出为s=534.188884。 int i; double s=0.0,s1=0.0; for(i=1;i<=n; i++) {s1=s1+pow(i,0.5); s=s+s1; } return s; t = (a>b) ? (b>c? b :(a>c?c:a)) : ((a>c)?a : ((b>c)?c:b)); c=c+32; c=c+5; 90.请编写函数fun,其功能是:计算并输出下列多项式值: Sn=(1-1/2)+(1/3-1/4)+...+(1/(2n-1)1/2n) 若输入8后,则输出为S=0.662872。 int i; double sum=0.0; if (n>1&&n<=100) {for(i=1;i<=n;i++) sum+=1.0/(2*i-1)-1.0/(2*i); for (j=a[i]*2; j<=n; j+= a[i]) while (a[i]== 0) if (a[i]!= 0) sum=0;j=0; if(sum%4==2) 70.编写函数fun,它的功能是:计算并输出下列级数和:S=1/1*2+1/2*3+...+1/n(n+1) n=10时,函数值为0.909091。 int i; double s=0.0;  for(i=1;i<=n;i++) s= s+1.0/(i*(i+1)); return s; ch=tolower(*s); k[n]+= 1 ; if(max1e-6); return sum; t = x; t *= (-1.0)*x/n; while (fabs(t) >= 1e-6); for(i=1; i<=y; i++) t=t%1000; 9.编写函数fun,它的功能是:根据以下公式求P的值,结果由函数值带回。m与n为两个正整数且要求m>n。p=m!/n!(m-n)!。 m=12,n=8,运行结果为495.000000。 int i,j,k; long int t=1,s=1,p=1; float q; for(i=1;i<=m;i++) t*=i; for(j=1;j<=n;j++) s*=j; for(k=1;k<=m-n;k++) p*=k; q=(float)t/s/p; return q;} *(t+n)= *s ; n++; } s++ ; return n ; int j, c=0; float xa=0.0; if (x[j] >= xa) 26.请编写一个函数fun,它的功能是:根据以下公式求π的值 X/2=1+1/3+1×2/3×5+1×2×3/3×5×7+1×2×3 ×4/3×5×7×9+...+1×2×3×...×n/3×5×7×(2n+1) 求π的值 double s; float n,t,pi; t=1;pi=0;n=1.0;s=1.0; while((fabs(s))>=eps) {pi+=s; t=n/(2*n+1); s*=t; n++;} pi=pi*2; return pi; s=0; for(i=1; i<=n; i++) s=s+(2.0*i-1)*(2.0*i+1)/(t*t); for(i = 0; str[i]; i++) if(substr[k+1]=='\0') 93.请编写函数fun,它的功能是计算下列级数和,和值由函数值返回。 S=1+x+ + +……+ 当n=10,x=0.3时,函数值为1.349859。 int i; float p=1; long q=1; double t,s=1.0; for( i=1; i<=n; i++) { p*=x; q*=i; t=p/q; s+=t; } return s; k= i ; if(strlen(ps[k]) < strlen(ps[j]) ) k=j; tp=ps[i]; ps[i]=ps[k]; ps[k]= tp ; double fun(int n) return sum; 类型三:调整一个数的个、十、百、千位 48.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。例如,当a=45,b=12,调用该函数后 c=4152。 *c=(a/10)*1000+(b/10)*100+(a%10)*10+b%10 ; int fun(STYPE *std) FILE *fp; int i; fwrite(&std[i], sizeof(STYPE), 1, fp); for(i = 0 ; i < sl ; i++) t[2*sl] = 0; 84.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。例如,当a=45,b=12,调用该函数后 c=1524。 *c=(b/10)*1000+(a%10)*100+(b%10)*10+a/10 ; void WriteText(FILE *fw) fputs(str,fw); fputs("\n",fw); printf("%s",str); *t=0; if (d%2 != 0) 77.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。例如,当a=45,b=12,调用该函数后 c=2514。 *c=(b%10)*1000+(a%10)*100+(b/10)*10+a/10 ; void fun(PERSON std[ ]) PERSON temp; fun(std); for ( i=j+1; iscore[i] += 1; return a ; char *fun(char (*sq)[M]) return sp; 81.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的千位和十位上。例如,当a=45,b=12,调用该函数后 c=1425。 *c=(b/10)*1000+(a/10)*100+(b%10)*10+a%10 ; n=0; while(t<=x) t++; int i,sl; t[i] = s[sl-i-1]; 87.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的个位和百位上。例如,当a=45,b=12,调用该函数后 c=4251。 *c=(a/10)*1000+(b%10)*100+(a%10)*10+(b/10); i=1; while(s) x=x+t*i; i=i*10; int fun(int n,int xx[][M]) printf("%d",xx[i][j]); 类型四:与下标或ASCII码有关 29.请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。 下标奇数位置子母改大写 int i; for(i=0;ss[i]!='\0';i++) if(i%2==1&&ss[i]>='a'&&ss[i]<='z') ss[i]=ss[i]-32; void fun(int (*a)[N], int k) for(i = 0 ; i < N; i++) a[0][i] = a[k][i]; for(i=strlen(t);i>0;i--) if(t[j] > t[ j + 1 ]) 47.请编写—个函数void fun(char *ss),其功能是:将字符串ss中所有下标为偶数位置上的字母转换为大写(若该位置上不是字母,则不转换)。 下标偶数位置子母改大写 int i; for(i=0;i='a'&&ss[i]<='z') ss[i]-=32; 72.请编写函数fun,其功能是:将s所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。 下标为偶数字符删除 int i,j=0,k= strlen(s); for(i=1;idata; p=p->next; printf("\nsum=%d\n", fun(head)); while ( *r ) *a = *r; a++; r++; 21.编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码降序排列。 除首尾外其余ASCII码降序 int i,j,t; for(i=1;inext; fun(head, &num); a=NULL; if(r* ==* p) 32.请编写函数fun,其功能是:将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除 除下标奇数同时ASCII码也为奇数外其余字符删除 int i, j=0, n; n=strlen(s); for( i=0; inext ; while (q) p = p->next ; while(*s) s++; 60.请编写函数fun,该函数的功能是:删去一维数组中所有相同的数,使之只剩一个。 删除一维数组相同的数 int i, j=1; for(i=1;i*max) {*max=a[i]; *d=i;} k=1; t=2*i; k=k*(-1); k++; if (m == k ) 7.请编写一个函数int fun(int *s,int t,int *k),用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。 求数组最大元素及下标 int i,max; max=s[0]; for( i=0;imax){ max=s[i];*k=i;} n++ ; flag=1;} if (*s==' ') flag= 0 ; s++ ; t += s[k] ; *aver = ave ; 80.请编写函数fun(inta[][N],int n),该函数的功能是:使数组左下半三角元素中的值乘以n。 数组左下三角元素乘n int i,j; for(i=0; iscore[i] *=a; modify(&std,a); if (k > 0) else if ( k==0 ) 42.请编写函数fun(int a[][N],int n),该函数的功能是:使数组右上半三角元素中的值乘以m。 数组右上三角元素同乘m int i,j; for(i=0; i=i; j--) a[i][j]*=m; *av=s/N; d=*av-x[i]; j=i;} return x[j]; float fun ( int n ) for (i=2; i<=n; i++) 11.请编写函数fun(int a[][N]),该函数的功能是:使数组左下半三角元素中的值全部置成0。 数组左下三角元素置0 int i,j; for(i=0;i e) x=k*(t+1)/(t*t); double fun ( int n ) s = s + (double)a / b; 18.编写程序,实现矩阵(3行3列)的转置(即行列互换)。 矩阵转置 int i,j,t; for(i=0;i<2;i++) for(j=i+1;j<3;j++) {t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;} while (nnext; q = r ; if(i%2 || s[i]%2==0) t[j]=0; 55.请编写函数fun,该函数的功能是:将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中。 按行顺序33 33 33 33 44 44 44 44 int i,j,k=0; for(i=0;inext ; q = p->next ; if (p->data >= q->data) p=h->next; p=p->next ; 41.请编写函数fun,该函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。 按列顺序wshwshwsh int i,j,k=0; for(i=0;i upfst ( char *p ) 14.请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。 二维数组周边元素之和 int sum=0,i; for(i=0;i='0' && s[i]<='9') while(s[i+1+n]!=’\ 0’) n++; s[j+1]= s[j]; for(i = 2 ; i <= m ; i++) y += 1.0 / (i * i) ; 类型六:学生分数操作 82.请编写一个函数fun,它的功能是:计算n门课程的平均分,计算结果作为函数值返回。例如:若有5门课程的成绩是:90.5,72,80,61.5,55,则函数的值为71.80。 n门课程平均分71.8 float av=0.0; int i; for(i=0;i next ; q=p-> next; long k=1; num/=10 ; 85.N名学生的成绩已在主函数中放入一个带头节点的链结构中,h指向链表的头节点。请编写函数fun,它的功能是:求出平均分,由函数值返回。 N名学生的成绩的平均分,78.625 double av=0.0; STRUC *p= h->next; while(p!=NULL) { av=av+ p->s; p=p->next; } return av/N; char fun(char ch) if (ch>='0' && ch<='9') return '9'- (ch-'0'); while(i<3 && *p) b[k]=*p; b[k++]=' '; 37.某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出。请编写函数fun,它的功能是:求出该学生的平均分放在记录的ave成员中。 8门课程平均分78.875 int i; p->ave=0.0 ; for(i=0;iave=p->ave+p->s[i]; p->ave/=N ; max = min = a[i]; if (maxa[j]) switch(g) case 1: case 2:return 1; 50.请编写函数fun,该函数的功能是:找出成绩最高的学生记录。 找出成绩最高学生纪录 int i; *s=a[0]; for( i=1;i(*s).s) *s=a[i]; STU fun(STU *std, char *num) if( strcmp(std[i].num,num)==0 ) return (std[i]); IsPrime ( int n ) if (!( n%i )) 54.请编写函数fun,它的功能是:把低于平均分的学生数据放在b所指的数组中。低于平均分人数通过n 低于平均分的学生数据 int i,j=0; double av=0.0; for(i=0;iav) y[j++]= x[i]; double fun ( int m ) for( i = 100; i <= m; i += 100 ) 89.请编写函数fun,它的功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。 高于等于平均分的学生数据 int i; double av= 0.0 ; *n=0; for(i=0;isno = 10004; strcpy(b->name, "LiJie"); fun(&t); double fun(double a, double x0) if( fabs(x1-x0)>0.00001 ) 34.请编写函数fun,它的功能是:把分数最高的学生数据放在b所指的数组中,注意:分数最高的学生可能不只一个,函数返回分数最高的学生的人数。 分数最高学生数据 int i,j=0,max=a[0].s; for(i=0;i=len) strcpy(j); t[j++]=0; t[j]= i++; for(i = 2 ; i <= m ; i++) y -= 1.0/(i * i) ; 74.请编写函数fun,它的功能是:把分数最低的学生数据放在b所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数。 分数最低学生数据 int i,j=0, n=0, min ; min=a[0].s ; for (i=0 ; is; for(i=0 ; is>max) max=(h+i)->s; return max; while (!feof(fp)) if (n.sno==sno) break; fseek(fp, -(long)sizeof(STU), SEEK_CUR); n=strlen( aa ); ch=aa[i]; 46请编写函数fun,它的功能是:按分数的高低排列学生的记录,高分在前。 按分数高低排列学生纪录,高分在前 int i,j; STRUC t; for(i=1 ;i 0) 67.请编写函数fun,它的功能是:函数返回指定学号的学生数据,指定的学号在主函数中输入。 返回指定学号学生数据 int i; STRUC str={"\0",-1}; for(i=0;i=l && a[i].s<=h) b[j++]=a[i]; return j; struct student t; for (i=0; i 0) q=p+i; while( q>p ) 类型七:字符和字符串操作 25.请编写一个函数fun,它的功能是:比较两个字符串的长度,返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。 返回较长字符串 char *ss=s, *tt=t; while((*ss)&&(*tt)) { ss++; tt++; } if(*tt) return(t); else return(s); t=t->next; printf(" %d ",t->data); free(t); void fun (char *a) printf("%c", *a) ; 19.编写函数fun,该函数的功能是:从字符串中删除指定的字符。同一字母的大、小写按不同字符处理。 删除给定的字符 int i,k=0; for(i=0;s[i];i++) if(s[i]!=c) s[k++]=s[i]; s[k]='\0'; n=len; k=i; for(j=len; j>=0; j--) ss[i][j]='*'; result*=n--; return result; 38.请编写函数fun,它的功能是:求出ss所指字符串中指定字符的个数,并返回此值。 求ss指定字符个数 int num=0; while(*ss!='\0') { if(*ss==c) num++; ss++;} return(num); t2[j]=s[i]; j++; for(i=0; i
/
本文档为【计算机二级计算机上机题库综合版】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索