福建省高等学校2021年计算机二级C语言试题库.docx
11 下程序的运行结果是【12】。main()intx=023;printf("%d',x);12 A)35B)1912.sizeof(double)13«13 A)一种函数调用C)一个整型表达式13.以下程序运行时,若从键盘输入5,main()inta;scanf("%d",<fea);if(a+>5)printf(',%dn",a);elseprintf("%dn',a-);)14 A)7B)414.以下程序运行后,a的值是【15】Cmain()inta,b;for(a=l,b=2;a<=100;a+)(if(b>=20)break;if(b%3=l)b+=3;continue;b+=5;)15 A)10B)915.以下程序段的运行结果是【16】。intx=3;doprintf("%3d,',x-=2);)while(!(-x);16 A)1B)3016.下列程序段中,非死循环的是【17】。17 A)inti=100;B)intk=0;while(l)doC) 23D)023B)一个双精度表达式D) 一个不合法的表达式则输出结果是【14】CC)5D)6C)8D)7C)死循环D)1-2C)ints=10;D)for(;)while(+s%2+s%2)i=i%I00+l;+k;S+;if(i>=100)break;)while(k>=0);printf("dn",k);17.设己定义CharS=""NameAddress023n",则字符串所占的字节数是【18】。18A)19B)15C)18D)1418.以下程序段的运行结果是【19】。main()inta三2,4,6,8,10),y=1,x;for(x=0;x<3;x+)y+=ax+l;Primf("%dn”,y);)19 A)17B)18C)19D)2019.已定义CharCu="Fujian"inti;,则下列函数调用中错误的是【20】。20 A)printf("%s',c);B)for(i=0;i<8;i+)printf("%c,ci);C)PUtS(C);D)for(i=0;i<8;i+)puts(cil);20 定义CharX网;inti;,为了给该数组赋值,下列语句正确的是211.21 A)x8="TurboC"B)x="TurboC"C)x=11TurboC"D)for(i=0;i<7;i+)xi=getchar();21.以下程序运行结果是【22】。main()chara5="ABCD"7,1234","abed","5678'"EFGH");inti;for(i=0;i<3;i+)printf(',%s'ai);)22 A)AlaB)ABCD1234abcdC)ABCD)ABCD1234abcd5678EFGH22.设inta4=0,0;,则下列描述错误的是:【23】。23 A)数组a的每个元素都可得到初值0B)二维数组a的第一维大小为1C)数组a的行数为1D)只有元素a00和a0l可得到初值0,其余元素均得不到初值023.设有下列语句,则【24】是对a数组元素的不正确引用,其中OWiVl0。intallOJ=0,1,2,3,4,5,6,7,8,9,*p=a;24 A)ap-aB)*(&ai)C)piD)*(*(a÷i)24.若有以下程序:maincharch=,Iamstudent!",*p;p=ch;printf("%xn",p);printf(,%xn,p+9);)其中有两个Printf(),如果第一个Printf()运行结果是ffd6,则第二个Printf()运行结果是【25】。25 A)ffdfB)ffe8C)ffd6D)ffcf25.以下程序的运行结果是【26】。main()inti;charaa3='aVb,c7d,e','f;char(*p)3J=aa;for(i=0;i<2;i+)if(i=0)aaii+l=*(p+);printf(',%cn",*p);)26 A)aB)bC)dD)c26.设有下列语句:charstrl=,string,str28,*str3,*str4=,'string"则【27】是对库函数StrCPy的不正确调用。此函数用来复制字符串。27 A)strcpy(str3,"HE1.1.03");B)strcpy(str2,"HE1.1.O2n);C)strcpy(strl,"HE1.1.O,);D)strcpy(str4,"HE1.1.O4");27.以下程序是将一个整数存放到一个数组中,存放时按逆序存放,例如I483存放成384请选择填空完善程序。voidconvert(char*a,intn)inti;if(i=n10)!=0)convert(【28】,i);*a=n%10+'0')charstr10=",'main()intnumber;scanf(',%d",<fenumber);convert(str,number);puts(str);第二部分:改错题改错题:共2小题,每题10分,说明如下:修改程序在每对“六*产之间存在的错误;不得删改程序中所有的"/*/”注释和其它代码;源程序均在考生文件夹中;务必以原文件名保存程序,(4)按Alt+Tab键,切换考试程序与TurboC;按Alt+Enter隆,切换TurboC窗口大小.第一套卷:1 .程序CmodyoI1.C的功能是:从字符串数组StrI中取出ASCn码值为偶数且下标为偶数的字符依次存放到字符串t中。例如,若Strl所指的字符串为:4AZ18c?GegaOz!则t所指的字符串为:4Z8z注意:数组下标从0开始.2 .程序cmody012.C中,函数fun(intn)的功能是:根据参数n,计算大于10的最小n个能被3整除的正整数的倒数之和。例如:Illl1fun(8)=+=0.3961215182133cmody011.c#include<math.h>#include<stdio.h>#include<string.h>#include<conio.h>voidmain()charstrl100,t200;inti,j;/*/i=0;/*/j=0clrscr();strcpy(strl,"4AZ18c7Ge9a0z!n);for(i=0;i<strlen(strl);i+)(/*/if(strli%2=0)&&(i%2!=0)/*/if(strli%2=O)&&(i%2=O)(tUl=strli;J+;)tjl=,O'printf(,'nOriginalstring:%sn",slrl);printf(,nResultstring:%sn11,t);)cmody012.c#include<string.h>#include<conio.h>#include<math.h>#include<stdio.h>#defineM50doublefun(intn)doubley=0.0;inti,j;j=0;for(i=l;i+)/*/if(i<10)&&(i%3=0)Xif(i>10)&&(i%3=0)(根据题义)/*/y+=li;/*/y+=1.0i;j+;1if(j=n)break;)returny;)voidmain()clrscr();prinlf("fun(8)=%8.31fn'fun(8);)*第二套卷1 .程序CmOdyO21.C输出如下所不图形:*2 .程序CmOdyO22.C的功能是求解百元买百鸡问题:设一只公鸡2元、一只母鸡1元、一只小鸡0.5元。间一百元买一百只鸡,公鸡、母鸡、小鸡数可分别为多少?有多少种分配方案?*cmody021.c#include<stdio.h>voidmain()(/*/inti;j;/*/inti,j;(概念错误)for(i=l;i<=5;i+)(for(j=l;j<=10-2*i;j+)printf(,'");/*/for(j=hj<=5;j+)/*/for(j=l;j<=2*i-l;j+)*号的位置rintf("*");printf("n'');cmody022.c#include<stdio.h>#include<conio.h>*intfun()*/intfun()(概念错误)inthen,cock,chicken,n=0;clrscr();for(cock=0;cock<=50;cock+=1)for(hen=0;hen<=100;hen=hen+1)chicken=2*(100-hen-2*cock);/*/if(cock+hen+chicken=100)/*/if(cock+hen+chicken=100)if后面关系表达式n+;printf("%d>hen:%d,cock:%d,chicken:%dn",n,hen,cock,chicken);if(n=20)getch();)Ireturnn;)voidmain()intnum;num=fun();printf("nThereare%dsolutions.n",num);getch();)第三套卷1 .程序CmOdyO31.C的功能是:从键盘上输入两个整数,及一个运算符(+、-、*、/或),进行相应的运算后输出运算的结果。如输入:1+2将输出:1+2=32 .程序Cmodyo32C的功能是:输出201-300之间的所有素数,统计总个数。*cmody031.c#include<stdio.h>#include<conio.h>voidmain()(intm,n,result,11ag=O;/*/charch,/*/CharCh;(概念错误)clrscr();printf("Inputanexpression:");scanf(H%d%c%dH,&m,&ch,&n);/*/switchch/*/switch(Ch)caseresult=m+n;break;case,-':result=m-n;break;case,*':result=m*n;break;case,%,:result=m%n;break;case7,:result=mn;break;default:(printf("Error!n");flag=l;)1if(!flag)printf(',%d%c%d=%dn",m,ch,n,result);getch();)*cmody032.c#include<stdio.h>#include<math.h>voidmain()(intnum;printf("n");num=fun();printf("nThetotalofprimeis%d',num);getch();)intfun()intm,i,k,n=;fbr(m=201;m<=300;m+=2)k=sqrt(m+l);for(i=2;i<=k;i+)/*/if(mi=0)/*/if(m%i=0)break;/*/if(i=k)/*/if(i>=k)printf(,%-4d",m);n+;if(n%10=0)printf("n");returnn;模拟卷1 .程序EvSum.C计辑100以内正偶数之和.2 .程序D&fSum.c计售100999以内的所有“水仙花数如,153=l3+53+33,所以153是水仙花数.*evsum.c#include<stdio.h>voidmain()(/*/intsum=l,i;/*/intsum=0,ifbr(i=100;i>l;i-)/*/if(i%2=0)sum+=i;/*/if(i%2=0)sum÷=i;printf("%dn",sum);)dafsum.c#include<stdio.h>voidmain()inti,a,b,c;/*/fbr(i=100;i=999;i+)/*/for(i=l(X);i<=999;i+)a=i100;/*/b=i%1010;/*/b=i10%10;c=i%10;/*/ifi=a*a*a+b*b*b+c*c*c/*/if(i=a*a*a+b*b*b+c*c*c)printf("%5d,i);*第三部分:填空题(每题10分)填空题:共3小题,每题6分,说明如下:编写程序,补充在每对"/*/”之间的空白处,以完成题目的要求;不得删改程序中所有的"/*/”注释和其它代码;源程序均在考生文件夹中;务必以原文件名保存程序;(4)按Alt+Tab键,切换考试程序与TurboC?按Alt+Enter健,切换TllrboC窗口大小。第一套卷-21 .补充程序Cc。HHl.C,使其计算/(x)=4.r+12 .补充程序CconO12.C,该程序用公式开4×(1-+-i÷+-)计菖圆周3 5710001率的近似值.3.补充程序CconO13.C,程序实现从10个数中找出最大值和最小值。*ccon011.c#include<stdio.h>#include<math.h>voidmain()Iintx;/*/floatf;/*/printf("Inputaninteger:");scanf(,'%d"x);f=/*/(fabs(x)-2)(x*x+l)/*/;printf("F(x)=%n'f);)*ccon012.c#include<stdio.h>voidmain()(doublepi=0;longi,sign=l;for(i=l;i<=10001;i+=2)(pi+=1.0*signi;sign=/*/-sgn;/*/;题义中是正负交替的)pi*=/*/4/*/;前面一个系数printf(,%fn',pi);)*ccon013.c#include<stdio.h>#include<stdlib.h>intmax,min;voidfind_max_min(int*p,intn)(int*q;max=min=*p;for(q=p;q</*/p+num/*/;q+)指针从p开始,向下移动,直到结束p+numif(/*/max<*q/*/)max=*q;从下列语句可以推出该式子elseif(min>*q)min=*q;)voidmain()(inti,num(10;printf("Input10numbers:");for(i=0;i<10;i+)scanf(,%d",(fcnumril);find_max_min(/*/num*,10);将主函数中的数组值指针传递给子函数printf("max=%d,num=%dn",max,min);第二套卷1 .补充程序Ccon021.C,使其计算满足下式的一位整数A和B的值。AB×BA4032 .补充程序Ccon022.C,使其实现输入若干整数,统计其中大于零和小于零的个数.以零结束输入.3 .补充程序Ccon023C,该程序可测试歌德巴赫猜想:从键盘上输入一个大于6的偶数,总能找到两个素数,使得这两素数之和正好等于该偶数.ccon021.c#include<stdio.h>voidmain()(inta,b,k;intplu=/*/403/*/;根据题义fbr(a=l;a<10;a+)for(b=I;b<10;b+)(k=(a*10+b)*(b*10+a)/*/;根据题义表达式if(k=plu)printf(,A=%d,B=%dn,1,a,b);*ccon022.c#include<stdio.h>voidmain()(intn,a,b;/*/a=O,b=Oscanf(',%d"n);while0*/n/*/)(if(n>O)a+;else/*/b+÷/*/scanf("%d",<fcn);)printf("Positiveinteger:%d,negativeinteger:%dn",a,b);)*ccon023.c#include<stdio.h>#include<conio.h>intprime(intn)intk,flag=l;for(k=2;k<=n2+1;k+)if(n%k=0)flag=/*/0/*/;break;)retumflag;)voidmain()intnum,a;clrscr();doPrinlfC'Pleaseinputanevennumber:");scanf("%d",&num);while(num<=6num%2=1);for(a=2;a<=num/2+l;a+)if(prime(八)&&prime(*(num-a)/*/)printf(,'n%d=%d+%d",num,a,num-a);)第三套卷1 .补充程序Ccon031.C,使其用牛顿迭代法求方程2#-4,+3工-6=0在1.5附近的根2 .补充程序Ccon032.C,该程序的功能是将输入的一行字符中的大写字母转变为相应的小写字母,小写字母则转变为相应的大写字母,其余字符不变.3 .补充程序Ccon033.C,其中main函数通过调用average函数计算数组元素的平均值.*ccon031.c#include<stdio.h>#include<math.h>/*/main()/*/(floatx,x,f,f1;x=1.5;dox=x;f=(2*x0-4)*x0+3)*x0-6;fl=(6*x0-8)*x0+3;x=x-f7fl;/*/while*(fabs(x-x0)>=le-6);printf("therootis:%.21n",x);)*ccon032.c#include<stdio.h>voidmain()chars80;inti;printf("Pleaseinputastring:");for(i=0;(sil=getchar()!='n')&&(i<80);i+);si=,;for(i=0si!=r0,;/*/i+÷/*/)if(si>=,a,si<=,z')si=si-32;elseif(/*/si>=,A'<fe<fesi<='Z,/*/)si=si+32;printf("%c",si);)*ccon033.c#include<stdio.h>floataverage(int*na,intn)'.kmtk;/*/floatavg4;/*/for(k=0;k<n;k+)avg=avg+/*/p/*/;avg=avg/n;returnavg;)voidmain()inta5=20,30,45,64,23);floatm;m=average(/*/a/*/,5);printf("Average=%fn",m);)模拟卷1 .补充程序CA1.FUN.C,使其计算/(x)=k2。X+12 .补充程序INTSUM.C,使其实现从读入的正整数中分别统计奇数和偶数的总和,以零结束输入。3 .补充程序FAC.C,使其计算S=l+1.+1+2!3!M*calfun.c#include<stdio.h>#include<math.h>voidmain()(intx;/*/floatf;/*/printf("Inputaninteger:");scanf(,'%d"x);f=/*/(abs(x)-2.0)(x*x+1.0)/*/;printf(T(x)=%fn,f);getch();*intsum.c#include<stdio.h>voidmain()Iintn,a,b;/*/a=0;b=0;/*/scanf("%d',n);while(*n/*/)(if(n%2=0)a+=n;/*/elseb+=n/*/scanf("%d",<fen);)printf("Sumofevennumber:%d,Sumofoddnumber:%dn",a,b);)fac.c#include<stdio.h>voidmain()intn,i;doubles,fac;/*/s=0;fac=1;/*/scanf("%d11,<fcn);for(i=l;i<=n;i+)(fac=/*/fac/i/*/;s=s÷fac;)printf(,%fn",s);*第四部分:编程题(每题10分)编程题:2小题,每题11分,说明如下:(1)在一对“/*/”之间编写程序,以完成题目的要求;不得删改程序中的"/*/”注释和其它代码;源程序均在考生文件夹中;务必以原文件名保存程序;按Alt+Tab键,切换考试程序与TurboC;按Alt+Enter键,切换TurboC窗口大小.第一套卷1 .打开考生文件夹中的CPgg011.C,完成其中的函数funl,该函数的数学表达式是:例如:funl(0.76)=2.175funl(3.00)=5.307funl(3.76=9.Ill2 .打开考生文件夹中的cprog012.C,完成其中的函数fun2(inta,Intn,intb,intc)»实现:1)将数组a中大于-20的元素,依次存放到数组b中;2)将数组b中的元素按照从小到大的顺序存放到数蛆c中;3)函数返回数组b中的元素个数.*CprogOl1.c#include<math.h>#include<stdio.h>doublefun1(doublex)/*/*/)voidmain()(clrscr();printf("fun1(0.76)=%8.31fn",fun1(0.76);printf("fun1(3.00)=%8.31fn",fun1(3.00);printf("fun1(3.76)=%8.31fn",fun1(3.76);)*cprog012.c#include<string.h>#include<conio.h>#include<math.h>#include<stdio.h>intfun2(inta,intn,intb,intc11)(/*/*/)voidmain()intn=10,i,nb;intaa101=12,-10,-31,-18,-15,50,17,15,-20,20);intbb101,cc110;clrscr();printf("Thereare%2delementsinaa.n",n);prinlf("Theyare:");for(i=0;i<n;i+÷)printf(,'%6d",aai);printf(,'n");nb=fun2(aa,n,bb,cc);printf("Elementsinbbare:,);for(i=0;i<nb;i+)printf("%6d'bbi);prinlf("n");printf("Elementsinccare:,');for(i=0;i<nb;i+)printf(,%6d,',cci);printf(,'n");printf("Thereare%2delementsinbb.n",nb);)第二套卷1 .打开考生文件夹中的CPggo21.C,完成其中的函数funl,该函数的数学表达式是:e+x-funl(x)=!x+1.3例如:funl(076)=3.582funl(3.00)=5.369funl(3.76)=8.9312 .打开考生文件夹中的CPrOgO22.C,完成其中的函颜;fun2(chara,charb,charc口),实现:将三个字符串a、b、C从小到大排序后输出.注意:字符串比较函数为strcmp(Stl1,str2)字符串赋值函数为strcpy(strl,str2).*cporg021.c#include<math.h>#include<stdio.h>doublefun1(doublex)/*/*/)voidmain()(clrscr();printf("fun1(0.76)=%8.31fn",fun1(0.76);printf("fun1(3.00)=%8.31fn",fun1(3.00);printf("fun1(3.76)=%8.31fn",fun1(3.76);)*cprog022.c#include<string.h>#include<conio.h>#include<math.h>#include<stdio.h>voidfun2(chara,charbl,charc)/*/)voidmain()charstrl15=,Fuzhou",str2l5="Fujian,str3l5=China,;clrscr();fun2(strl,str2,str3);printf("Theorderedstringsis:%s,%s,%sn',strl,str2,str3);gelch();)第三套卷打开CPggO31C,完成其中的函数funi,该函数的数学表达式是:1.2funl(x)三,10-2x+1例如:funl(0.76)=1.200funl(3.00)=10.000funl(3.76)=8.5202.打开cprog032.C,完成其中的函数fun(chat*sj,使程序实现统计输入字符串中空格的个数.*cprog031.c#include<math.h>#include<stdio.h>doublefun1(doublex)(/*/*/)voidmain()(clrscr();printf("fun1(0.76)=%8.31fn",fun1(0.76);printf("fun1(3.00)=%8.31fn",fun1(3.00);printf("fun1(3.76)=%8.31fn",fun1(3.76);)*cprog032.c#include<stdio.h>intfun(char*s)/*/*/)voidmain()charstr255;gets(str);printf("%dn",fun(str);)模拟卷1 .打开并继续编写程序SeCtion.c,使其计算分段函数:1.X+5xly=2xl<x10-3/(-10Jx>102 .打开并继续编写程序sort.c,程序实现将数组a的元素按照从小到大的顺序排序。其中函数sort的功能是排序.section.c#include<stdio.h>voidmain()floatx,y;printf("enterx:n);scanf(,'%f,x);/*/if(x<=l)y=x+5;elseif(x<=10)y=2*x;elsey=3(x-10);/*/printf(11x=%.2f,y=%.2fn",x,y);)*sort.c#include<stdio.h>voidsort(inta,intn)(/*/k=i;for(j=i+l;j<n;j+)if(aj<akl)k=j;if(k!=i)t=ai;ai=ak;ak=t;/*/)voidmain()inta10=6,3,12,0,2,10),i;sort(a,6);printf("thesortedarraya:n");for(i=0;i<6;i+)printf(',%4d",ai);printf(,n");)