计算机二级计算机上机题库综合版
类型一:与*号有关的操作
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;i
a[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,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。