计算机2级C语言上机题库整理版.docx

上传人:b****5 文档编号:6371350 上传时间:2023-01-05 格式:DOCX 页数:28 大小:75.53KB
下载 相关 举报
计算机2级C语言上机题库整理版.docx_第1页
第1页 / 共28页
计算机2级C语言上机题库整理版.docx_第2页
第2页 / 共28页
计算机2级C语言上机题库整理版.docx_第3页
第3页 / 共28页
计算机2级C语言上机题库整理版.docx_第4页
第4页 / 共28页
计算机2级C语言上机题库整理版.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

计算机2级C语言上机题库整理版.docx

《计算机2级C语言上机题库整理版.docx》由会员分享,可在线阅读,更多相关《计算机2级C语言上机题库整理版.docx(28页珍藏版)》请在冰豆网上搜索。

计算机2级C语言上机题库整理版.docx

计算机2级C语言上机题库整理版

公式计算

填空:

0nt*t

改错:

for(i=0;str[i];i++)

if(substr[k+1]=='\0')

根据以下公式求π的值

doubles=1,t=1./3;

intn=1;

while(t>=eps){s+=t;n++;t=t*n/(2.0*n+1);}

return(s*2.0);

填空:

1;-1t

改错:

for(i=1;i<=3;i++)

if(k>=0&&k<=6)

计算并输出下列多项式的值:

sn=1+1/1!

+1/2!

+1/3!

+1/4!

+……1/n!

doubles=1’

longt=1;

inti;

for(i=1;i<=n;i++)

{t=t*i;

s+=1.0/t;}

returns;

填空:

0j--j

改错:

doublef(doublex)

returns;

计算:

作为函数返回

doubles=0.0;

inti;

for(i=0;i<=m;i++)

s+=log(1.0*i);

s=sqrt(s);returns;

填空:

ips[j]tp

改错:

doublefun(intn)

returnsum;

计算下列级数和,和值由函数值返回。

doubles=1.0,y=x;

inti;

for(i=1;i<=n;i++)

{s+=y/(double)jc(i);

y*=x;}

returns;

填空:

*ss++n

改错:

intj,c=0;doublexa=0.0;

if(x[j]>=xa)

根据以下公式求p的值,

floatp;

p=1.0*jc(m)/jc(n)/jc(m-n);

returnp;

填空:

n%10breakbreak

改错:

if(t==0)*zero=count;

计算并输出下列多项式的值:

doubles=0,t=1;

inti;

for(i=1;i<=n;i++)

{t*=1;

s+=1.0/t;}

returns;

填空:

j=2ij

改错:

sum=j=0;

if(sum%4==2)

计算并输出下列多项式的值:

inti;

doublesum=0.0;

if(n>1&&n<=100)

{for(i=1;i<=n;i++)

sum+=1.0/(2*i-1)-1.0/(2*i);}

returnsum;

填空:

1;1i

改错:

k=i;c=k%10;

计算并输出给定10个数的方差。

inti;

doubleavg=0.0,sum=0.0,abs=0.0,fc;

for(i=0;i<10;i++)

sum+=x[i];

avg=sum/10;

for(i=0;i<10;i++)

abs+=(x[i]-avg)*(x[i]-avg);

fc=sqrt(abs/10);

returnfc;

填空:

00c

改错:

doublesum=0.0;

sum/=c;

根据以下分式计算s,

inti,j,t;

floats=0;

for(i=1;i<=n;i++)

{t=0;

for(j=1;j<=i;j++)

t+=j;

s=s+1.0/t;}returns;

填空:

*s2、13、k[n]

改错:

floatfun(intk)

returns;

计算并输出下列级数和:

doubles=0.0;

inti;

for(i=1;i<=n;i++)

s=s+1.0/(i*(i+1));

rerurns;

填空:

aab

改错:

c=c+32;c=c+5;

计算并输出

inti;

doublefac=1.0;

doublesum=1.0;

for(i=2;i<=n;i++)

{fac+=sqrt(i);

sum+=fac;}

returnsum;

填空:

xnfabs(t)

改错:

for(i=1;i<=y;i++)

t=t%1000;

计算并输出当x﹤0.97时下列多项式的值,直到Sn-Sn-1<0.000001为止。

intn=1;

doublesn=1;

doublexn=1,xn1=0;

while(fabs(xn-xn1)>=0.000001)

{xn=xn*x*(0.5-n+1)/n;

n+=1;

sn+=xn;}

return(sn);

填空:

i++mm

改错:

while((2<=high)&&(n<10))

yes=0;break;

利用以下所示的简单迭代方法求方程:

cos(x)-x=0的一个实根。

xn+1=cos(xn)

floatx0,x1=0.0;

do{

x0=x1;

x1=cos(x0);

}while(fabs(x0-x1)>0.000001);

returnx1;

a+b组合成c

填空:

structstudent*a->score[i]a

改错:

char*fun(char(*sq)[M])

returnsp;

将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的十位和千位上。

2415

*c=(b%10)*1000+(a/10)*100+(b/10)*10+a%10;

填空:

fpfclose(fp)fname

改错:

for(i=j+1;i

将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。

2514

*c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10);

填空:

"r"fsft

改错:

if(d%2==0)s/=10;

将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的百位和个位上。

5142

*c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10);

填空:

kN-1temp

改错:

voidfun(inta[][M],intm)

a[j][k]=(k+1)*(j+1);

将a中的十位和个位依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量c的个位和百位上。

5241

*c=(a%10)*1000+(b%10)*100+(a/10)*10+(b/10);

填空:

*fwstrstr

改错:

voidfun(longs,long*t)

sl=sl*10;

将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。

1524

*c=(b/10)*1000+(a%10)*100+(b%10)*10+(a/10);

填空:

0;xt++

改错:

inti,sl;t[i]=s[sl-i-1];

将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位依次放在变量c的千位和十位上。

1425

*c=(b/10)*1000+(a/10)*100+(b%10)*10+(a%10);

填空:

STYPEFILEfp

改错:

for(i=0;i

t[2*sl]='\0';

将a的十位和个位数依次放在c位的千位和十位上,b的十位和个位数依次放在c的百位和个位上。

4152

*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);

填空:

1;si*10

改错:

intfun(intn,intxx[][M])

printf("%d",xx[i][j]);

将a中的十位和个位数依次放在变量c的千位和十位上,b中的十位和个位数依次放在变量c的个位和百位上。

4251

*c=(a/10)*1000+(b%10)*100+(a%10)*10+(b/10);

学生成绩、学号问题

填空:

structstudentn-1

a[i].name,a[j].name

改错:

q=p+i;while(q>p)

学生的记录由学号和成绩组成,把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。

inti,j=0;

for(i=0;i

if(a[i].s>=l&&a[i].s<=h)b[j++]=a[i];

returnj;

填空:

structstudenta.name

a.score[i]

改错:

if(p==n)return-1;

a[i]=a[i+1];

学生的记录由学号和成绩组成,把分数最低的学生数据放在b所指的数组中

inti,j=0,min=a[0].s;

for(i=0;i

{if(min>a[i].s)

{j=0;b[j++]=a[i];min=a[i].s;}

elseif(min==a[i].s)

b[j++]=a[i];}returnj;

填空:

->sno->name&t

改错:

doublefun(doublea,doublex0)

if(fabs(x1-x0)>0.00001)

学生的记录由学号和成绩组成,把高于等于平均分的学生数据放在b所指的数组中。

doublet=0;inti;*n=0;

for(i=0;i

t=t/N;

for(i=0;it)b[(*n)++]=a[i];

returnt;

填空:

n/2ia[n-i-1]

改错:

n=*p-‘0’;n=n*8+*p-‘0’;

学生的记录由学号和成绩组成,函数返回指定学号的学生数据,指定的学生号在主函数中输入,若没有找到指定学号,在结构体变量中给学号置空串

STRECc;

Inti;

c.num[0]=’\0’;

c.s=-1;

for(i=0;i

if(strcmp(a[i].num,b)==0)

{strcpy(c.num,a[i].num);

c.s=a[i].s;break;}

returnc;

填空:

1ia[p+i]

改错:

floatk;if(*a<*c)

学生的记录由学号和成绩组成,把分数最高的学生数据放在b所指的数组中,分数最高的学生可能不止一个

inti,max=a[0].s,n=0;

for(i=1;i

if(max

for(i=0;i

if(max==a[i].s)b[n++]=a[i];

returnn;

填空:

0x[i]/Nj++

改错:

doublefun(intm)

for(i=100;i<=m;i+=100)

学生的记录由学号和学习成绩构成,找出成绩最低的学生记录,通过形参返回主函数

inti,min=a[0],s,j=0;

for(i=1;i

if(min>a[i].s)

{j=i;

min=a[i].s;}

*s=a[j];

填空:

std[i].yearstd[i]n

改错:

IsPrime(intn)

if(!

(n%i))

学生的记录由学号和学习成绩构成,找出成绩最高的学生的记录,通过形参指针传回主函数

inti,max=a[0].s,j=0;

for(i=1;i

if(max

{j=i;max=a[i].s;}

*s=a[j];

填空:

999t/10x

改错:

voidfun(longs,long*t)

while(s>0)

学生的记录由学号和学生成绩组成,按分数的高低排列学生的记录,高分在前。

STRECtmp;

inti,j;

for(i=0;i

for(j=0;j

if(a[i].s

{tmp=a[i];

a[i]=a[j];

a[j]=tmp;}

填空:

*a2i+1

改错:

sum=0.0;

if((i+1)%5==0)

学生的记录由学号和成绩组成,低于平均分的学生人数通过形参n传回。

平均分通过函数值返回。

inti;

doubleave=0.0;

*n=0;

for(i=0;i

ave=ave=a[i].S;

ave/=N;

for(i=0;i

i++)

if(a[i].s

{b[*n]=a[i];

(*n)++;}

returnave;

填空:

fp==fp

改错:

n=strlen(aa);ch=aa[i];

N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。

找出学生的最高分,由函数值返回。

doublemax=h->s;

STREC*p;

p=h->next;

while(p)

{if(p->s>max)

max=p->s;

p=p->next;}

returnmax;

填空:

charch<='9'’0'

改错:

b[k]=*p;b[k++]='';

N名学生的成绩,求出平均分,有函数值返回。

STREC*p=h->next;

doubleav=0.0;

intn=o;

while(p!

=NULL)

{av=av+p->s;

p=p->next;

n++;}av/=n;

returnav;

填空:

j0i++

改错:

for(i=2;i<=m;i++)

y-=1.0/(i*i);

m个人的成绩存放在score数组中,将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。

floatav=0.0;

inti,j=0;

for(i=0;i

av+=score[i];

av/=m;

for(i=0;i

if(av>score[i])

below[j++]=score[i];

returnj;

填空:

a[i]a[j]a[j]

改错:

switch(g)

case1:

return1;case2:

return1;

某学生的记录由学号、8门课程和平均分组成,求出该学生的平均分放在记录的ave成员中。

inti;

for(i=0;i

a->ave=a->ave+a->s[i];

a->ave/=N

填空:

xps

改错:

longk=1num/=10

计算n门课程的平均分,计算结果作为函数值返回。

inti;

floatave=0.0;

for(i=0;i

ave=ave/n;

returnave;

二维数组

填空:

FILE*fpch

改错:

s[j++]=s[i];s[j]='\0';.

将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。

for(j=0;j

{b[n]=s[j][i];

n=i*M+j+1;}

填空:

NODE*nextr

改错:

if(i%2||s[i]%2==0)t[j]='\0';

将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中

for(i=0;i

for(j=0;j

{b[np]=s[j][i];

np=i*mm+j+1;}

*n=np;

填空:

h->nextp->next>

改错:

p=h->next;p=p->next;

将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中

inti,j,k;

for(i=0;i

for(j=0;j

{k=i*nn+j;

b[k]=s[i][j];}

*n=mm*nn;

填空:

*stdstd[i].agemax.name

改错:

voidfun(int*a,int*b)

t=*b;*b=*a;*a=t;

M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。

inti,j,min,k;

for(i=0;i

{min=tt[0][i];k=0;

for(j=1;j

if(min>tt[j][i])

{min=tt[j][i];

k=j;}

pp[i]=tt[k][i];}

填空:

STUscore[i]&std

改错:

if(k>0)elseif(k==0)

N×N的二维数组,使数组左下三角元素中的值乘以n。

inti,j;

for(i=0;i

for(j=0;j<=i;j++)

a[i][j]*=n;

填空:

*avix[j]

改错:

floatfun(intn)

for(i=2;i<=n;i++)

N×N的二维数组,使数组右上三角元素中的值乘以m。

inti,j;

for(i=0;i

for(j=i;j

a[i][j]*=m;

填空:

*stdPERSONstd

改错:

intk,q,i;

pt[i]=str[k][i];

N×N的二维数组,使数组左下三角元素中的值全部置成0。

inti,j;

for(i=0;i

for(j=0;j<=i;j++)

a[i][j]=0;

填空:

s/Nj++-1

改错:

#includeupfst(char*p)

N×N的二维数组,求出数组周边元素的平均值

inti,j,n=0;

doublesum=0;

for(i=0;i

{sum+=w[0][i]+w[N-1][i];n+=2;}

for(i=1;i

{sum+=w[i][0]+w[i][N-1];n+=2;}

returnsum/n;

填空:

x[i]/Nj++i++

改错:

num[k]=0;switch(*s)

求出二维数组周边元素之和。

inttot=0,i,j;

for(i=0;i

{tot+=a[0][i];

tot+=a[M-1][i];}

for(i=1;i

{tot+=a[i][0];

tot+=a[i][N-1];}

returntot;

*号

填空:

ab.namescore[i]

改错:

s[j++]=s[i];s[j]='\0';

将字符串中的前导*号全部移到字符串的尾部。

while(*p)

{*q=*p;p++;q++;}

填空:

Nsubstr0

改错:

fun(intx,inty,intz)

returnj;

只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。

char*p=a;

intj=0,len=0;

while(*p){p++;len++;}

while(j

{a[j]=a[h+j];j++;}

a[j]=0;

填空:

1j++j

改错:

t=a;a=b;b=t;return(b);

删除字符串中所有的*号。

在编写函数时,不得使用C语言提供的字符串函数。

intj=0;

char*p=a;

while(*p)

{if(*p!

='*')a[j++]=*p;

p++;}a[j]=0;

填空:

sum=0t[i][i]1

改错:

doubler;

while(fabs(n-m)>0.001)

除了字符串前导和尾部的*号之外,将串中其他*号全部删除。

intj=0;

char*q=a;

while(*q&&q

while(*h&&*p&&h

{if(*h!

=’*’)a[j++]=*h;

h++;}

while(*p)a[j++]=*p++;

a[j]=0;

填空:

Nkss[i]

改错:

intk=0;while(*p||*q)

除了字符串前导*号之外,将串中其它*号全部删除。

inti=0,k;

while(a[i]!

==’*’)i++;

k=i;

while(a[i]!

=’\0’)

{if(a[i]!

=’*’)

a[k++]=a[i];

i++;}

a[k]=’\0’;

填空:

Ni-1

改错:

a2=k/10;returni;

将字符串尾部的*号全部删除,前面和中间的*号不删除。

char*p=a;

while(*p)p++;p--;

while(*p==’*’)p--;

p++;

*p=0;

填空:

[N]t[i][j]t[j][i]

改错:

#defineFU(m,n)((m)/(n))

return(value);

将字符串中的前导*号全部删除,中间和尾部的*号不删除。

intj=0;

char*p=a;

while(*p=='*')p++;

while(*p)

{a[j++]=*p;

p++;}a[j]=0;

填空:

t[][N]i=0;i

改错:

fun(inta[],intm)

elseif(m>a[mid])

除了尾部的*号之外,将字符串中其他*全部删除。

char*q=a;

intj=0;

while(*q&&q

{if(*q!

='*')

a[j++]=*q;

q++;}

while(*p)a[j++]=*p++;

a[j]=0;

填空:

a[i]%2a[j]j

改错:

fun(intn)if(n==1)

使字符串中尾部的*号不得多于n个;若多于n个则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和前面的*号不删除。

char*p=a;

intj=0;

while(*p

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1