二级c语言真题100道.docx

上传人:b****8 文档编号:9519812 上传时间:2023-02-05 格式:DOCX 页数:281 大小:89.99KB
下载 相关 举报
二级c语言真题100道.docx_第1页
第1页 / 共281页
二级c语言真题100道.docx_第2页
第2页 / 共281页
二级c语言真题100道.docx_第3页
第3页 / 共281页
二级c语言真题100道.docx_第4页
第4页 / 共281页
二级c语言真题100道.docx_第5页
第5页 / 共281页
点击查看更多>>
下载资源
资源描述

二级c语言真题100道.docx

《二级c语言真题100道.docx》由会员分享,可在线阅读,更多相关《二级c语言真题100道.docx(281页珍藏版)》请在冰豆网上搜索。

二级c语言真题100道.docx

二级c语言真题100道

第1套

填空题

请补充FUN函数,FUN函数的功能是求10的阶乘。

注意:

部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,

仅在fun函数的横线上填入所编写的若干表达式或语句。

试题程序:

#include

longfun(intn)

{

if(___1___)

return(n*fun(___2___));

return___3___;

}

main()

{

printf("10!

=%ld\n",fun(10));

}

第1处填空:

n>1或1

第2处填空:

n-1

第3处填空:

1或11或1L

改错题

下列给定程序的功能是:

读入一个整数K(2〈=K〈=10000),打印它的所有因子(即所有为素数的因子)。

例如,若输入整数2310,则应输出:

2、3、5、7、11。

请改正程序中的错误,使程序能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include

#include

/********found********/

IsPrime(intn);

{

inti,m;

m=1;

/********found********/

for(i=2;i

if!

(n%i)

{

m=0;

break;

}

return(m);

}

main()

{

intj,k;

printf("\npleaseenteranintegernumberbetween2and10000:

");

scanf("%d",&k);

printf("\n\nTheprimefactor(s)of%dis(are):

",k);

for(j=2;j

if((!

(k%j))&&(IsPrime(j)))

printf("%4d,",j);

printf("\n");

}

第1处:

Isprime(intn);应改为Isprime(intn)

第2处:

if!

(n%i)应该为if(!

(n%i))

第2套

填空题

请在函数FUN的横线上填写若干表达式,使从键盘上输入一个整数N,输出斐波纳契数列。

斐波纳契数列是一种整数数列,其中每数等于前面两数之和,如:

011235813…..

请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。

试题程序:

#include

intfun(intn);

main()

{

inti,n=0;

scanf("%d",&n);

for(i=0;i

printf("%d",fun(i));

}

intfun(intn)

{

if(___1___)

return0;

elseif(___2___)

return1;

else

return___3___;

}

第1处填空:

n==0或0==n或!

n

第2处填空:

n==1或1==n

第3处填空:

fun(n-1)+fun(n-2)或fun(n-2)+fun(n-1)

改错题

下列给定程序中,函数FUN的功能是:

逐个比较a、b两个字符串对应位置中的字符,把ASCII值大或相等的字符依次存放到c数组中,形成一个新的字符串。

例如,若a中的字符串为aBCDeFgH,b中的字符串为:

ABcd,则c中的字符串应为:

aBcdeFgH。

请改正程序中的错误,使程序能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include

#include

voidfun(char*p,char*q,char*c)

{

/********found********/

intk=1;

/********found********/

while(*p!

=*q)

{

if(*p<*q)

c[k]=*q;

else

c[k]=*p;

if(*p)

p++;

if(*q)

q++;

k++;

}

}

main()

{

chara[10]="aBCDeFgH",b[10]="ABcd",c[80]={'\0'};

fun(a,b,c);

printf("Thestringa:

");

puts(a);

printf("Thestringb:

");

puts(b);

printf("Theresult:

");

puts(c);

}

第1处:

intk=1应改为intk=0;

第2处:

while(*p!

=*q)应改为while(*p||*q)

第3套

填空题

请补充函数FUN(CHAR*S),该函数的功能是把字符串中的内容逆置.

例如:

字符串中原有的字符串为abcde,则调用该函数后,串中的内容为edcba.

请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。

试题程序:

#include

#include

#include

#defineN81

voidfun(char*s)

{

inti,n=strlen(s)-1;

chart;

for(i=0;i

{

t=s[i];

___2___;

___3___;

}

}

main()

{

chara[N];

printf("Enterastring:

");

gets(a);

printf("Theoriginalstringis:

");

puts(a);

fun(a);

printf("\n");

printf("Thestringaftermodified:

");

puts(a);

}

第1处填空:

n--或--n或n-=1或n=n-1

第2处填空:

s[i]=s[n]或*(s+i)=*(s+n)

第3处填空:

s[n]=t或*(s+n)=t

改错题

下列给定的程序中,函数fun的功能是:

依次取出字符串中所以数字字符,形成新的字符串,并取代

原字符串。

请改正函数fun中的错误,使程序能得出正确的结果。

#include

#include

voidfun(char*s)

{

inti,j;

/********found********/

for(i=0,j=0;s[i]!

='\0';i++)

if(s[j]>='0'&&s[i]<='9')

s[j]=s[i];

/********found********/

s[j]="\0";

}

main()

{

charitem[80];

printf("\nEnterastring:

");

gets(item);

printf("\n\nThestringis:

%s\n",item);

fun(item);

printf("\n\nThestringofchangingis:

%s\n",item);

}

第1处:

s[j]=s[i];应改为s[j++]=s[i]

第2处:

s[j]=”/0”;应改为s[j]=’\0’;

编程题

请编写函数voidfun(intx,intpp[],int*n),它的功能是:

求出能整除x且不是偶数的各整数,并按从小到大

的顺序放在pp所指的数组中,这些除数的个数通过形参n返回.

例如,若x中的值为30,则有4个数符合要求,它们是1,3,5,15.

答案是:

voidfun(intx,intpp[],int*n)

{

inti=1,j=0,k=0,*t=pp;

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

if(i%2!

=0)

{

t[j]=i;

j++;

}

for(i=0;i

if(x%t[i]==0)

{

pp[k]=t[i];

k++;

}

*n=k;

}

第4套

填空题

请补充函数FUN,它的功能是:

计算并输出N(包括N)以内能被3或7整除的所有自然数的倒数之

和。

例如,在主函数中从键盘给N输入30后,输出为:

S=1.226323。

请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语

句。

试题程序:

#include

doublefun(intn)

{

inti;

doublesum=0.0;

for(i=1;___1___;i++)

if(i%3==0___2___i%7==0)

sum+=___3___/i;

returnsum;

}

main()

{

intn;

doubles;

printf("\nInputn:

");

scanf("%d",&n);

s=fun(n);

printf("\n\ns=%f\n",s);

}

第1处填空:

i<=n或n>=i

第2处填空:

||

第3处填空:

1.0或(double)1

改错题

下列给定程序中,fun函数的功能是:

分别统计字符串中大写字母和小写字母的个数。

例如,给字符串s

输入:

AaaaBBb123CCccccd,则应输出结果:

upper=6,lower=8

请改正程序中的错误,使程序能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include

#include

/********found********/

voidfun(char*s,inta,intb)

{

while(*s)

{

/********found********/

if(*s>='A'&&*s<='Z')

a++;

/********found********/

if(*s>='a'&&*s<='z')

b++;

s++;

}

}

main()

{

chars[100];

intupper=0,lower=0;

printf("\nPleaseastring:

");

gets(s);

fun(s,&upper,&lower);

printf("\nupper=%dlower=%d\n",upper,lower);

}

第1处:

voidfun(char*s,inta,intb)应改为voidfun(char*s,int*a,int*b)

第2处:

a++;应改为(*a)++;

第3处:

b++;应改为(*b)++;

第5套

填空题

给定程序的功能是求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积

(注:

圆面积公式为:

S=πR,在程序中定义的变量名要与公式的变量相同)。

例如,输入圆的半径值:

19.527,输出为:

S=598.950017。

请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语

句。

试题程序:

#include

doublefun(doubler)

{

return3.14159*___1___/2.0;

}

main()

{

doublex;

printf("Enterx:

");

scanf("%lf",___2___);

printf("s=%lf\n",fun(___3___));

}

第1处填空:

r*r

第2处填空:

&x

第3处填空:

x

改错题

假定整数数列中的数不重复,并存放在数组中。

下列给顶程序中,函数fun的功能是删除数列中值为

x的元素,同时将其他元素前移。

N中存放的是数列中元素的个数。

请改正程序中的错误,使它能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include

#defineN20

fun(int*a,intn,intx)

{

intp=0,i;

a[n]=x;

while(x!

=a[p])

p=p+1;

if(p==n)

{

return-1;

}

else

{

/********found********/

for(i=p;i

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

returnn-1;

}

}

main()

{

intw[N]={-3,0,1,5,7,99,10,15,30,90},x,n,i;

n=10;

printf("Theoriginaldata:

\n");

for(i=0;i

printf("%5d",w[i]);

printf("\nInputx(todelete):

");

scanf("%d",&x);

printf("Delete:

%d\n",x);

n=fun(w,n,x);

if(n==-1)

{

printf("***Notbefound!

***\n\n");

}

else

{

printf("Thedataafterdelete:

\n");

for(i=0;i

printf("%5d",w[i]);

printf("\n\n");

}

}

第1处:

a[i+1]=a[i];应改为a[i]=a[i+1]

第6套

填空题

给定程序的功能是计算并输出下列级数的前N项之和s,直到s大于Q为止,Q的值通过形参传

NN

入。

=2+3+4+....+N+1

sN

123N

例如,若Q的值为50.0,则函数值为50.416687。

请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语

句。

试题程序:

#include

doublefun(doubleq)

{

intn;

doubles;

n=2;

s=2.0;

while(s___1___q)

{

s=s+(double)(n+1)/n;

___2___;

}

printf("n=%d\n",n);

___3___;

}

main()

{

printf("%f\n",fun(50));

}

第1处填空:

<=

第2处填空:

n++或n+=1或n=n+1

第3处填空:

returns或return(s)

改错题

下列给定程序中,函数fun的功能是:

根据整型参m的值,计算如下公式的值。

T=1-111

2*2−3*3−....−m*m

例如,若m中的值为5,则应输出:

0.536389

请改正程序中的错误,使程序能得出正确的结果。

#include

#include

doublefun(intm)

{

doubley=1.0;

inti;

/********found********/

for(i=2;i

/********found********/

y-=1/(i*i);

return(y);

}

main()

{

intn=5;

printf("\nTheresultis%1f\n",fun(n));

}

第1处:

for(i=2;i

第2处:

y-=1/(i*i);应改为y-=1.0/(i*i)

第7套

填空题

函数fun的功能是:

统计长整数n的各个位上出现数字1,2,3的次数,并通过外部(全局)变量c1,c2,c3

返回主函数。

例如,当=123114350时,结果应该为:

c1=3,c2=1,c3=2.

注意:

部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语

句。

试题程序如下:

#include

intc1,c2,c3;

voidfun(longn)

{

c1=c2=c3=0;

while(n)

{

switch(___1___)

{

case1:

c1++;

___2___;

case2:

c2++;

___3___;

case3:

c3++;

}

n/=10;

}

}

main()

{

longn=123114350L;

fun(n);

printf("\nTheresult:

\n");

printf("n=%ldc1=%dc2=%dc3=%d\n",n,c1,c2,c3);

}

第1处填空:

n%10

第2处填空:

break

第3处填空:

break

改错题

下列给定程序中函数fun的功能是:

用选择法对数组中的n个元素按从小到大的顺序进行排序。

请改正程序中的错误,使程序能得出正确的结果。

#include

#defineN20

voidfun(inta[],intn)

{

inti,j,t,p;

for(j=0;j

{

/********found********/

p=j

for(i=j;i

if(a[i]

{

/********found********/

p=i;

t=a[p];

a[p]=a[i];

a[i]=t;

}

}

}

main()

{

inta[N]={9,6,8,3,-1},i,m=5;

printf("ÅÅÐòÇ°£º");

for(i=0;i

printf("%d,",a[i]);

printf("\n");

fun(a,m);

printf("ÅÅÐòºó£º");

for(i=0;i

printf("%d,",a[i]);

printf("\n");

}

第1处:

p=j应改为p=j;

第2处:

p=i应改为p=j;

第8套

填空题

请补充main函数,该函数的功能是:

从键盘输入一组整数,使用条件表达式找出最大的整数。

当输入的

整数为0时结束。

例如,输入123540时,最大的数为5。

#include

#include

#defineN100

main()

{

intnum[N];

inti=-1;

intmax=0;

printf("\nInputintegernumber:

\n");

do

{

i++;

printf("num[%d]=",i);

scanf("%d",___1___);

max=___2___num[i]:

max;

}while(___3___);

printf("max=%d\n",max);

}

第1处填空:

&num[i]或num+i

第2处填空:

max

或num[i]>max?

第3处填空:

num[i]!

=0或0!

=num[i]

改错题

下列给定程序中,函数fun的功能是:

在字符串str中找出ASCII码值最大的字符,将其放在第一个位置

上;并将该字符前的原字符向后顺序移动。

例如,调用fun函数之前给字符串输入:

ABCDeFGH,调用后

字符串中的内容为eABCDFGH

请改正程序中的错误,使程序能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include

/********found********/

voidfun(char*p);

{

charmax,*q;

inti=0;

max=p[i];

while(p[i]!

=0)

{

if(max

{

/********found********/

max=p[i];

p=q+i;

}

i++;

}

while(q>p)

{

*q=*(q-1);

q--;

}

p[0]=max;

}

main()

{

charstr[80];

printf("Enterastring:

");

gets(str);

printf("\nTheoriginalstring:

");

puts(str);

fun(str);

printf("\nThestringaftermoving:

");

puts(str);

printf("\n\n");

}

第1处:

voidfun(char*p);应改为voidfun(char*p)

第2处:

p=q+I;应改为q=p+i;

编程题

编写函数fun,函数功能是:

根据以下公式计算s,计算结果作为函数值返回;n通过型参传入。

S=1+1+1+.....+1

1+21+2+31+2+3+....n

例如:

若n的值为11时,函数的值为1.833333。

#include

#include

#include

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

当前位置:首页 > 高等教育 > 医学

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

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