• 529.50 KB
  • 2022-04-13 发布

二级c语言资料(带答案)

  • 109页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
  4. 网站客服QQ:403074932
福建省高校非计算机专业计算机等级考试二级C语言习题集目录第一部分:选择题(40分,20小题/套)3概述3语法基础4控制结构8数组12函数15指针20结构体和共用体23链表26枚举、自定义类型和位运算31文件33第二部分:改错题(每小题10分,2小题/套)36第1套37第2套38第3套39第四套40第5套41第6套42第7套43第8套45第9套46第10套46第11套47第三部分:程序填空题48第1套48第2套49第3套51第4套52第5套54第6套56第7套57第8套59第9套61第10套63第11套65109n第四部分:编程题(每小题8分,2小题/套)66第1套67第2套69第3套71第4套73}74第5套74第6套77第7套79第8套81第9套83第10套85第11套87第五部分:答案88选择题答案88改错题答案89第1套89第2套90第3套90第4套90第5套90第6套90第7套91第8套91第9套91第10套91第11套92填空题答案92第1套92第2套92第3套92第4套93第5套93第6套93第7套94第8套94第9套94第10套95第11套95编程题答案95第1套95第2套96109n第3套97第4套98第5套98第6套99第7套99第8套100第9套101第10套101第11套102109n第一部分:选择题(40分,20小题/套)概述1、下面关于C语言的叙述中,正确的是(D)A.每行只能写一条语句B.程序中必须包含有输入语句C.main函数必须位于文件的开头D.每条语句最后必须有一个分号2、下面关于C语言的叙述中,错误的是(B)A.若一条语句较长,也可分写在下一行上B.构成C语言源程序的基本单位是表达式C.C语言源程序中大、小写字母是有区别的D.一个C语言源程序可由一个或多个函数组成3、关于C语言数据类型的叙述,正确的是(C)A.枚举类型不是基本类型B.数组不是构造类型C.变量必须先定义后使用D.不允许使用空类型4、C程序中main函数的位置(C)A.必须在最开始B.必须在系统库函数后面C.可以在自定义函数后面D.必须在最后5、C语言的函数体由(B)括起来A.()B.{}C.[]D./**/6、关于C语言的叙述中,不正确的是(D)A.C程序可由一个或多个函数组成B.C程序必须包含一个main()函数C.C程序的基本组成单位是函数D.注释说明只能位于一条语句的后面7、一个程序的执行是从(B)A.本程序的第一个函数开始,到最后一个函数结束B.本程序的main函数开始,到main函数结束C.本程序的main函数开始,到最后一个函数结束D.本程序的第一个函数开始,到main函数结束8、结构化程序设计的三种基本结构是(C)A.函数结构、分支结构、判断结构B.函数结构、嵌套结构、平行结构C.顺序结构、分支结构、循环结构D.分支结构、循环结构、嵌套结构9、调试程序是指对程序进行(C)A.编辑B.编译C.查错和排错D.连接109n10、C语言中,复合语句的构成是将一系列语句置于(C)A.begin与end之间B.一对圆括号“()”之间C.一对花括号“{}”之间D.一对方括号“[]”之间11、构成C语言源程序的基本单位是(D)A.语句B.过程C.表达式D.函数语法基础12、在C语言中,正确的用户标识符是(B)A.3fB._forC.structD._f.513、C语言的基本数据类型包括(A)A.整型、实型、字符型B.整型、实型、字符型、逻辑型C.整型、字符型、逻辑型D.整型、实型、逻辑型14、以下(D)是正确的常量A.E-5B.1E5.1C.‘a12’D.32766L15、以下(D)是正确的变量名A.a.beeB.–p11C.intD.p_1116、以下(C)是正确的字符常量A.“c”B.‘//”C.‘W’D.“32a”17、以下(A)是不正确的字符串常量A.‘abc’B.“12’12”C.“0”D.““18、C语言的整型数据在内存中的存储形式是(C)A.原码B.反码C.补码D.ASCII码19、以下(B)是正确的浮点数A.e3B..62C.2e4.5D.12320、下列不属于C语言关键字的是(B)A.continueB.integerC.staticD.signed21、C语言的字符型数据在内存中的存储形式是(D)A.原码B.补码C.反码D.ASCII22、在C语言中,变量所分配的内存空间大小是(A)A.由变量的类型决定B.由用户自己决定C.任意的D.均为两个字节109n23、若有定义:inta=2;则正确的赋值表达式是(A)A.a-=(a*3)B.double(-1)C.a*3D.a*4=324、语句x=(a=3,b=++a);运行后,x、a、b的值依次为(C)A.3,3,4B.4,4,3C.4,4,4D.3,4,325、语句a=(3/4)+3%2;运行后,a的值为(B)A.0B.1C.2D.326、以下四项中,符合C语言语法的语句是(C)A.inta+b=c;B.inta=12:b=12:c=12;C.inta=12,b=12,c=12;D.inta,b=12,floatc=2127、若有定义:intx,a;则语句x=(a=3,a+1);运行后,x、a的值依次为(C)A.3,3B.4,4C.4,3D.3,428、若变量已正确定义并赋值,符合C语言语法的表达式是(C)A.a=8+b+c,a++B.a=3aC.int(12.3%4)D.a=a+1=c+b29、若有定义:inta,b;doublex;则以下不符合C语言语法的表达式是(A)A.x%(-3)B.a+=-1C.a=b=2D.x=a+b30、若有定义:intx=2,y=3;floati;则以下符合C语言语法的表达式是(B)A.x=x*3=2B.x=(y==1)C.i=float(x)D.i%(-3)31、若有定义:intx;则语句x=(2*3)+6%5;运行后,x的值是(B)A.8B.7C.6D.532、下面关于C语言变量的叙述中,错误的是(A)A.可以用const关键字定义变量B.在C程序中,SUM和sum是不同的变量C.变量名必须由字母或下划线组成D.变量的类型确定了变量的取值范围33、若有定义:intx=5,y=6;则表达式x=(y==6)的值为(C)A.5B.1C.6D.034、下面叙述正确的是(C)A.2/3与2.0/3.0等价B.(int)2.0/3与2/3等价C.++5与6等价D.‘A’与”A”等价35、下面叙述中,错误的是(C)A.C语言基本的算术运算符不包含模运算符”%”B.算术运算符的优先级高于关系运算符C.自加和自减运算符的结合方向是”自右向左”D.C语言规定在表达式求值时,按其中运算符的优先级先高后低的次序进行109n36、下面叙述正确的是(A)A.强制类型转换运算的优先级高于算术运算B.若a和b是整型变量,(a+b)++是合法的C.‘A’*’B’是不合法的D.“A”+”B”是合法的37、若有定义:inti=1,j=5;则表达式(++j)*(i--)的值为(C)A.1B.0C.6D.738、设整型变量a为5,使b不为2的表达式是(C)A.b=(++a)/3B.b=6-(--a)C.b=a%2D.b=a/239、若有定义:inta=1,b=2,c=3;则语句++a||++b&&++c;运行后b的值为(C)A.1B.0C.2D.340、若有定义:inti,j;则表达式(i=2,j=5,i++,i+j++)的值是(B)A.7B.8C.9D.1041、若有定义:inta,b;则表达式(a=2,b=5,a*2,b++,a+b)的值是(C)A.7B.8C.9D.1042、若有定义:inti=2,j=5;则表达式(i+1,j+1,(++i+(j--))的值为(A)A.8B.6C.7D.543、若已定义:inti=3,k;则语句k=(i--)+(i--);运行后k的值为(C)A.4B.5C.6D.744、C语言的运算符按运算对象的个数可以分为(B)A.单目运算符一种B.单目和双目运算符C.单目、双目和三目运算符D.单目、双目、三目和四目运算符45、若已定义:floatm;拟从键盘输入135.78这一数据给变量m,则应选用的语句是(A)A.scanf(“%5.2f”,&m);B.scanf(“%3.2f”,&m);C.scanf(“6.2f”,&m);D.scanf(“6f”,&m);46、已知doublea;使用scanf()函数输入一个数值给变量a,正确的函数调用是(A)A.scanf(“%ld”,&a);B.scanf(“%lf”,&a);C.scanf(“%c”,&a);D.scanf(“%u”,&a);47、已知chara;使用scanf()函数输入一个字符给变量a,不正确的函数调用是(C)A.scanf(“%d”,&a);B.scanf(“%lf”,&a);C.scanf(“%c”,&a);D.scanf(“%u”,&a);48、putchar()函数的功能是向终端输出(C)A.多个字符B.一个字符C.一个实型变量值D.一个整型变量表达式109n49、以下程序段运行后的输出结果是(B)intk=11;printf(“k=%d,k=%o,k=%xn”,k,k,k);A.k=11,k=13,k=cB.k=11,k=12,k=13C.k=11,k=13,k=bD.k=11,k=13,k=a50、若有定义:intx=1234,y=123,z=12;则语句printf(“%4d+%3d+%2d”,x,y,z);运行后的输出结果为(D)A.123412312B.12341234123412341231231231212C.1234+1234+1234D.1234+123+1251、已有如下定义和输入语句,inta;charc1,c2;scanf(“%d%c%c”,&a,&c1,&c2);若要求a、c1、c2的值分别为10、A和B,正确的数据输入是(A)A.10ABB.10ABC.10ABD.10AB52、以下程序段的运行结果是(D)inta=0,b=0,c=0;if(a&&++b)c++;printf(“%d,%dn”,b,c);A.0,0B.1,2C.2,2D.1,053、以下程序的运行结果是(D)voidmain(){inta=65;charc=’A’;printf(“%x,%d”,a,c);}A.65,aB.41,aC.65,65D.41,6554、若已定义:inta=5;floatb=63.72;以下语句中能输出正确值的是(B)A.printf(“%d%d”,a,b);B.printf(“%d%2f”,a,b);C.printf(“%2f%2f”,a,b);D.printf(“%2f%d”,a,b);55、运行以下程序段时编译出错,其原因是(D)这题编译不报错charc1='8',c2='2008';printf("%c,%dn",c1,c2);A.c2是字符变量,只能赋以字符常量,不能赋以字符串常量B.字符串要用“2008“表示,而‘2008’不是字符串表示C.‘2008’只能赋值给字符数组D.字符变量不能用%d格式输出109n56、若已定义:inta=3,b=15,c;则语句c=a>b;运行后c的值为(B)A.1B.0C.tD.f57、在C语言中,判定逻辑值为“真“的最正确的叙述是(B)A.1B.非0的数C.大于0的数D.非0的整数58、若已定义:inta=-36,b=-30,c;则语句c=a=y>=500的C语言表达式为(A)A.(y<=800)&&(y>=500)B.(y<=800)AND(y>=500)C.800>=y>=500D.(y<=800)&(y>=500)60、若有定义:intx=3,y=4;则表达式!x||y的值为(A)A.1B.0C.3D.461、若有定义:inti=7,j=8;则表达式i>=j||i10||x<20C.x>10&&<20D.(x>10)&&(x<20)66、以下运算符中优先级最低的是(D)A.<>D.|67、已知doublea=5.2;则正确的赋值表达式是(A)A.a+=a-=(a=4)*(a=3)B.a=a*3=2C.a%3D.a=double(-2)68、已知chara='R';则正确的赋值表达式是(A)A.a=(a++)%4B.a+2=3C.a+=256--D.a=’78’109n69、已知inta=’R’;则正确的表达式是(A)A.a%10B.a=int(3e2)C.2*a=a++D.a=a+a=a+370、设有语句floatx=3.0,y=3.0;使x值为6.0的表达式是(D)A.x*=y-4B.x*=yC.x=y+4D.x+=y71、若有定义:floatx=3.5,intz=8;则表达式x+z%3/4的值为(B)A.3。75B.3.5C.3D.472、设有语句intx=3,y=3,a=1,b=2;表达式(x=a>b)&&(y=b>a)的值是(D)A.8B.1C.5D.073、若有定义:inta=2,b=3;floatx=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y的值是(A)A.3.5B.3.0C.2.5D.2.074、若有定义:intb=7;floata=2.5,c=4.7;则表达式a+(b/2*(int)(a+c)/2)%4的值是(C)A.2.5B.3.5C.4.5D.5.575、若有定义:inta=6,b=2;charc1=’a’,c2=’b’;则表达式a+b%5+c2-c1的值是(C)A.7B.8C.9D.表达式错误76、在下列运算符中,优先级最高的运算符是(C)A.<=B.!=C.!D.||77、设有定义:charc;floatf;inti;unsignedu;doubled;下列各表达式的类型分别是(A)1.u+92.d!=f&&(i+2)3.8.2*i+cA.1.unsigned,2.int,3.doubleB.1.double,2.double,3.doubleC.1.int,2.double,3.charD.1.unsigned,2.double,3.int控制结构78、以下程序段运行时,若从键盘输入10,则输出结果是(D)inta;scanf(“%d”,&a);if(a++>10)printf(“%dn”,a);elseprintf(“%dn”,++a);A.2B.11C.3D.12109n79、以下程序的运行结果是(B)voidmain(){intx,y=1,z;z=-1;if(z==0)z=-z;elsex=y>0?3:5;printf(“%dn”,x);}A.-1B.3C.1D.580、对于整型变量x,下属if语句(B)与赋值语句:x=x%2==0?1:0;不等价。A.if(x%2!=0)x=0;elsex=1;B.if(x%2)x=1;elsex=0;C.if(x%2==0)x=1;elsex=0;D.if(x%2==1)x=0;elsex=1;81、以下程序段运行的结果是(C)inta,b,c,x;a=b=c=0;x=15;if(!a)x--;elseif(b);if(c)x=3;elsex+=4;printf("%dn",x);A.15B.17C.18D.1982、若有定义:inta=1,b=2,c=3;则执行以下程序段后a,b,c的值分别为(D)if(a6)printf(“%dn”,n);elseprintf(“%dn”,++n);}A.4B.5C.6D.787、下面关于switch语句的叙述中,错误的是(A)A.case后面的表达式可以是关系表达式B.switch语句是多分支选择语句C.每一个case后面的值必须互不相同,否则会出现矛盾的现象D.在执行一个case分支后,可用一个break语句使流程跳出switch语句109n88、若有定义:inta=1,b=2,c=3;则以下程序段运行后c的值为(D)if(a>b)c=a*b;elsec=a-b;A.2B.0C.1D.-189、若有定义:intx;以下不会产生死循环的是(A)A.for(;(x=getchar())!=’n’;);B.while(1){x++;}C.for(i=10;;i++);D.for(;;x+=1);90、在循环语句的循环体中,break语句的作用是(D)A.暂停程序的运行B.结束本次循环C.继续执行break语句之后的循环体各语句D.提前结束循环,接着执行该循环后续的语句91、以下程序段运行后,循环体中的“count+=2;”语句运行的次数为(A)inti,j,count=0;for(i=1;i<=4;i++){count+=2;printf(“%d”,count);}A.4次B.10次C.16次D.20次92、在c语言中while循环和do-while循环的主要区别是(B)A.do-while循环体内可以使用break语句,while循环体内不能使用break语句B.do-while的循环体至少无条件执行一次,while的循环体不是C.do-while循环体可以使用continue语句,while循环体内不能使用continue语句D.while的循环体至少无条件执行一次,do-while的循环体不是93、以下程序段运行后,循环体运行的次数为(A)inti=0,x;for(;i<10;i++)x=x+i;A.10B.0C.1D.无限94、以下程序段运行后变量n的值为(D)inti=1,n=1;for(;i<3;i++){continue;n=n+i;}A.4B.3C.2D.1109n95、有以下程序:voidmain(){inti;for(i=0;i<3;i++)switch(i){case1:printf(“%d”,i);case2:printf(“%d”,i);case3:printf(“%d”,i);}}执行后输出的结果是(A)A.11122B.01222C.013020D.12096、以下程序的运行结果是(C)voidmain(){intsum=0,item=0;while(item<5){item++;sum+=item;if(sum>=6)break;}printf(“%dn”,sum);}A.10B.15C.6D.797、以下程序的运行结果是(B)voinmain(){intsum=0,item=0;while(item<5){item++;if(item==2)continue;sum+=item;}printf(“%dn”,sum);}A.10B.13C.15D.1109n98、以下程序段执行后变量sum的值为(C)inti,j=1,sum=0;for(i=1,i<=3,i++){sum+=j;j++;}A.5B.3C.6D.499、以下程序的运行结果是(D)#includemain(){inty=10;do{y--;}while(--y);printf("%dn",y--);}A.1B.2C.-1D.0数组100、C语言中数组元素下标的数据类型是(B)A.实型常量B.整型常量或整型表达式C.任何类型的表达式D.字符型常量101、下列数组定义中,正确的是(A)A.inta[10];B.intn=10,a[n];C.intN=10;inta[N];D.intn;scanf(“%d”,&n);inta[n];102、若已定义:inta[13];则不能正确引用a数组的元素的是(C)A.a[0]B.a[10]C.a[10+3]D.a[13-5]103、若有定义:inta[3]={0,1,2};则a[1]的值为(B)A.0B.1C.2D.3104、若有定义:inta[5]={1,2,3,4,5};则语句a[1]=a[2]+a[2+2]-a[3-1];运行后a[1]的值为(B)A.6B.5C.1D.2109n105、以下合法的数组定义是(C)A.inta[]=“string”;B.inta[5]={0,1,2,3,4,5};C.chara[]={0,1,2,3,4,5};D.chars={“string”};106、若有如下程序段:chars[10];s=“abcd”;printf(“%sn”,s);则(D)。A.执行时输出:abcdB.执行时输出:aC.执行时输出:abD.编译不通过107、下面程序段的运行结果是(C)inti=0,a[]={7,5,7,3,8,3};do{a[i]+=2;}while(a[++i]>5);for(i=0;i<6;i++)printf("%d",a[i]);A.9795105B.9593103C.957383D.757383108、下面程序段的运行结果是(A)inti=0,a[]={1,2,3,4,5};do{a[i]+=10;}while(a[++i]>2);for(i=0;i<5;i++)printf("%d",a[i]);A.112345B.12345C.1112131415D.1112345109、西面关于数组的叙述中,正确的是(A)A.数组必须先定义,然后使用B.定义数组时,可不加类型说明符C.定义数组后,可通过赋值运算符“=”对该数组名直接赋值D.在数据类型中,数组属于基本类型110、一下程序段的运行结果是(C)inti=0,a[]={6,5,3,7};do{a[i]++;}while(a[i]<4);for(i=0;i<4;i++)printf("%d",a[i]);A.6537B.7563C.7537D.5673109n111、有如下程序段:intt[][3]={1,2,3,4,5,6,7,8,9,10,11,12};printf("%dn",t[2][1]);则执行该程序段后输出结果是(A)A.8B.7C.4D.2112、以下程序段运行后s的值是(B)inta[3][3]={1,2,3,1,2,3,1,2,3};inti,j,s=1;for(i=0;i<3;i++)for(j=i;j<3;j++)s*=a[i][j];A.18B.108C.2D.12113、以下不能对二维数组arr进行正确初始化的语句是(C)A.intarr[2][3]={0};B.intarr[][3]={1,2,3,4,5};C.intarr[2][3]={{1,2},{3,4},{5,6}};D.intarr[2][3]={{1},{3,4,5}};114、若有定义:inta[3][4]={{1,2},{0},{1,2,3}};则a[1][1]的值为(A)A.0B.{1,2}C.1D.3115、若有定义:inta[3][3];则表达式&a[2][1]-a的值为(A)A.7B.8C.6D.9116、若有定义:inti=0,x=0;inta[3][3]={1,2,3,4,5,6,7,8,9};则以下程序段运行后x的值为(C)for(;i<3;i++)x+=a[i][2-i];A.0B.12C.15D.18117、若有定义inta[2][3];则对数组元素的非法引用的是(D)A.a[0][1/2]B.a[1][1]C.a[4-4][0]D.a[0][3]118、以下数组定义中,正确的是(C)A.inta[2][]={1,2,3,4,5};B.inta[][2]={{0},{}};C.inta[2][2]={{1,2},{3}};D.inta[][]={1,2,3,4};119、若有定义inta[][3]={1,2,3,4,5,6,7,8,9};则表达式sizeof(a)/sizeof(a[0])的值为(D)A.3B.4C.5D.9120、以下程序段运行后s的值是(A)inta[3][3]={1,2,3,4,5,1,2,3,4};inti,j,s=1;for(i=0;i<3;i++)for(j=i+1;j<3;j++)s*=a[i][j];A.6B.120C.24D.480109n121、设已定义:inta[][4]={0,0};则下列描述错误的是(D)A.数组a的每个元素都可得到初值0B.二维数组a的第一维大小为1C.数组a的行数为1D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0122、设已定义:charstr1[10],str2[10]=”Fujian”;则能将字符串”Fujian”赋给数组str1的正确语句是(B)A.str1=”Fujian”B.strcpy(str1,str2);C.strcpy(str2,str1);D.str1=str2;123、有如下定义:charstr[3][2]={'a','b','c','','e','f'};则语句:printf("%s",str[0]);的输出结果是(D)A.abB.abcefC.abcD.abc124、设有如下数组定义:charstr[8]={"Fujian"};则分配给数组str的存储空间是(C)字节A.6B.7C.8D.9125、若有定义:chara[]="abcdef";charb[]="xyz";则以下程序段运行后屏幕输出为(B)strcpy(a,b);printf("%c",a[2]);A.cB.zC.D.D126、以下程序段运行后屏幕输出为(C)chara[]="abcmis";printf("%d",strlen(a));A.5B.8C.3D.4127、若有定义:inta=2;则语句a=strcmp("miss","miss");运行后a的值为(B)A.1B.0C.-1D.2128、以下对C语言字符数组描述中,正确的是(C)A.可以用length函数计算字符数组中字符串的长度B.可以在赋值语句中通过赋值运算符"="对字符数组整体赋值C.存放在字符数组中的字符串,以’’作为该字符串结束标志D.字符数组只能存放字符串,不能存放字符129、以下程序段运行后屏幕输出为(A)charstr[80];strcpy(str,"hello");printf("%d",strlen(str));A.5B.6C.7D.80130、若有定义:charstr1[6]="abcdm",*ps,*str2="abcdef";则(B)是正确的A也可以,数组下标越界不判错A.strcpy(str1,str2);B.表达式strcmp(str1,str2)的值大于0109nC.str1=str2;D.表达式strlen(str1)的值为6131、已有定义:charstr1[15]={“university”},str2[15];则以下语句中正确的是(D)A.str2=str1;B.str2=”college”;C.scanf(“%s”,&str2);D.printf(“%s”,str1);132、设已定义:chars1[20]=”Youare”,s2[9]=”welcome!”;若要形成字符串”Youarewelcome!”,正确的语句是(A)A.strcat(s1,s2);B.strcpy(s1,s2);C.s1+s2;D.s1&s2函数133、在C语言中,数组名作为函数调用的实参时,传递给形参的是(D)A.数组元素的个数B.数组的第一个元素值C.数组中全部元素的值D.数组的首地址134、以下程序的运行结果是(A)intfun(intarray[4][4]){intj;for(j=0;j<4;j++)printf("%2d",array[2][j]);printf("n");}main(){inta[4][4]={0,1,2,0,1,0,0,4,2,0,0,5,0,4,5,0};fun(a);}A.2005B.1004C.0120D.0450135、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是(C)A.float型B.long型C.int型D.double型136、以下程序运行后屏幕输出为(B)#includeintf(intx,inty){return(x+y);}main(){inta=2,b=3,c;c=f(a,b);printf("%d+%d=%dn",a,b,c);}109nA.0B.2+3=5C.2+3=0D.3+2=5137、以下程序运行后屏幕输出为(D)#includeinta=2,b=3;intmax(inta,intb){intc;c=a>b?a:b;return(c);}main(){inta=4;printf("%d",max(a,b));}A.3,2B.2C.3D.4138、以下程序的运行结果是(B)fun(inti){inta=2;a=i++;printf("%d",a);}main(){inta=5,c=3;fun(c);printf("%d",a);}A.45B.35C.44D.33139、若有如下函数定义:intfun(){staticintk=0;return++k;}以下程序段运行后屏幕输出为(D)inti;for(i=1;i<=5;i++)fun();printf("%d",fun());A.0B.1C.5D.6109n140、下面程序的输出结果是:(D)#includeintglobal=100;fun(){intglobal=5;return++global;}voidmain(){printf("%dn",fun());}A.100B.101C.5D.6141、下列关于C语言函数的描述中,正确的是(B)A.函数的定义可以嵌套,但函数的调用不可以嵌套B.函数的定义不可以嵌套,但函数的调用可以嵌套C.函数的定义和函数的调用都可以嵌套D.函数的定义和函数的调用都不可以嵌套142、以下程序的运行结果是(A)fun(intx,inty){intz;z=(xy)z=y;elsez=x;return(z);}A.-7.9B.-7C.-6.3D.-6144、以下程序的运行结果是(C)#defineM(a,b)a*bmain(){intx=3,y=2,s1,s2;s1=M(x+y,x-y);s2=M(x-y,x+y);printf("%d,%dn",s1,s2);}A.-1,7B.5,5C.7,-1D.5,-5145、以下叙述中,正确的是(B)A.“#definePRICE=30”定义了与30等价的符号常量PRICEB.预编译处理命令行都必须以“#”开头C.程序中使用带参的宏时,参数类型要与宏定义时一致D.宏名只能包含大写字母和数字字符146、以下叙述中,正确的是(A)A.宏展开不占用运行空间,只占用编译时间B.预编译处理命令行必须以分号结束C.一个源程序只能有一个预编译处理命令行D.使用带参数的宏定义时,应该说明每个参数的数据类型147、以下的叙述中不正确的是(C)A.宏展开不占用运行时间,只占用编译时间B.宏名无类型C.宏名必须用大写字母表示D.预处理命令行都必须以#号开始148、若有定义:#definePI3,在表达式PI*2*2的值为(A)A.12B.4C.3D.不确定149、以下程序运行后,屏幕输出为(C)#defineMIN(a,b)((a)<(b)?(a):(b))main(){intx=2,y=3,z;109nz=2*MIN(x,y);printf("%d",z);}A.2B.3C.4D.6150、下列#include命令中,正确的是(D)A.#inclue[string.h]B.#include{string.h}C.#include(string.h)D.#include151、下面程序的输出结果是(C)#include#defineONE1#defineTWOONE+1#defineTHREETWO+1voidmain(){printf("%dn",THREE-ONE);}A.产生错误B.1C.2D.3152、以下叙述中正确的是(B)A.预处理命令行必须位于C源程序的起始位置B.在C语言中,预处理命令行都以”#”开头C.每个C程序必须在开头包含预处理命令行:#includeD.C语言的预处理只能实现宏定义和条件编译的功能153、以下程序的运行结果是(B)#defineADD(x)x+xmain(){intm=1,n=2,k;k=ADD(m+n)*3;printf("%d",k);}A.9B.10C.12D.18154、下面程序的运行结果是(B)#defineM10#defineS(x)x*x#defineF(x)(x*x)main(){intn1,n2;n1=1000/S(M);109nn2=1000/F(M);printf("%d,%dn",n1,n2);}A.10,10B.1000,10C.10,1000D.1000,1000指针155、设有以下语句,则(D)是对a数组元素的不正确引用,其中0<=i<10。inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;A.a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i))156、若有定义int*p1,*p2;则指针变量p1、p2不能进行运算的是(C)A.voidmain(){inti;char*s="abc";for(i=0;i<3;i++)printf("%sn",s+i);}A.abcbccB.cbcabcC.abccbcD.aababc173、下面程序的输出结果是(A)109n#includevoidmain(){char*str="12345",*ps=str+4;printf("%cn",ps[-4]);}A.1B.2C.3D.错误174、以下程序执行时,输入12345<回车>,输出为(A)#include#defineN5voidmain(){inta[N];int*p=a;while(pa)printf("%d",*(--p));}A.54321B.12345C.23451D.43215175.以下程序段的运行结果是(D)intx[]={2,3,4,5,6,7},*p=x;inti,s=0;for(i=1;i<6;i+=2)s+=*(p+i);printf("%d",s);A.27B.25C.12D.15176.以下程序运行结果(A)main(){inta[]={9,8,7,6,5,4},*p,*q,i;p=a;q=p+5;for(i=0;i<6;i++)printf("%d%d",*(p+i),*(q-i));}A.948576675849B.948576C.495867D.495867768594结构体和共用体177.以下程序段的运行结果(B)union109n{intnum;charstr[2];}s;s.num=20;s.str[0]='A';s.str[1]='';printf("%d",s.num);A.20B.65C.0D.A178.定义一个结构体变量后,该变量所占内存大小是(C)A.结构体中第一个成员所需内存容量B.结构体中最后一个成员所需内存容量C.结构体中各成员所需内存容量总和D.结构体成员中占内存容量最大者所需的容量179.设有如下定义:unionu_type{intx;floaty;doublez;charm;}a,b,c;执行语句a.x=8;a.y=7.5;a.m='N';b.x=9;后,共用体变量a中的值为(B)A.9B.'N'C.7.5D.8180.若有定义:structteacher{intnum;charname[10];charsex;intage;floatscore;}teacher1;则变量teacher1所占用的内存字节数是(C)A.5B.14C.19D.20181.下列对结构体类型变量定义不正确的是(C)A.structteacher{intnum;intage;}teach1;B.struct{109nintnum;intage;}teach1,teach2;C.struct{intnum;intage;}teacher;structteacherteach1;D.structteacher{intnum;intage;};structteacherteach1;182.若有定义:structteacher{intnum;charsex;intage;}teacher1;则下列叙述不正确的是(D)A.struct是结构体类型的关键字B.structteacher是用户定义的结构体类型C.num,sex,age都是结构体变量teacher1的成员D.teacher1是结构体类型名183.以下程序的运行结果是(C)#includeunionUtype{inti;floatf;}u[2];voidmain(){printf("%dn",sizeof(u));}A.2B.4C.6D.8184.以下程序的运行结果是(D)#include109nunionUtype{inti;flaotf;};struct{charch[2];inti;unionUtypeu;}a;voidmain(){printf("%dn",sizeof(a));}A.5B.6C.7D.8185.以下C语言共用体类型数据的描述中,不正确的是(D)A.共用体变量占的内存大小等于所需内存最大的成员所占的内存B.共用体类型可以出现在结构体类型定义中C.在定义共用体变量的同时允许对第一个成员的值进行初始化D.同一共用体各成员的首地址不相同186.设有如下语句:structstudent{intnum;intage;};structstudentstu[3]={{101,18},{102,21},{103,19}};structstudent*p=stu;则下面表达式的值为102的是(D)A.(p++)->numB.(p++)->ageC.(*p).ageD.(*++p).num187.根据下面定义,能打印出字母'H'的语句是(D)structstu{charname[8];intage;};structstuclass[12]={"Wang",16,"Zhang",18,"Hon",19,"Cheng",20};A.printf("%cn",class[3].name);B.printf("%cn",class[3].name[1]);C.printf("%cn",class[2].name);D.printf("%cn",class[2].name[0]);109n链表188.若有以下定义:structlink{intdata;structlink*next;}*p;并已建立如下图所示的链表结构:datanextdatanextdataNULL。。。p指针p指向该单向链表的第一个结点,要输出链表所有结点的数据成员data,以下循环语句正确的是(C)A.for(;p!=NULL;p++)printf("%d,",p->data);B.for(;!p;p=p->next)printf("%d,",(*p).data);C.while(p){printf("%d,",(*p).data);p=p->next;}D.while(p!=NULL){printf("%d,",p->data);p++;}189.若有以下定义:structlink{intdata;structlink*next;}a,b,c,*head,*p;其中,指针head指向变量a,p指向变量c,a.next指向变量b,链表结构如下图所示:datanextdataNULLdatanextpheadabc则能够把c插入到a和b之间并形成新链表的程序段是(D)A.a.next=c;c.next=b;B.head.next=p;p.next=head.next;C.head->next=&c;p->next=head->next;D.(*head).next=p;(*p).next=&b;109n190.若有以下定义:structlink{intdata;structlink*next;}*head,*p;并已建立如下图所示的链表结构:datanextdatanextdataNULL。。。headp则能保留链表其它结点,而删除p所指向结点的程序段是(A)A.head->next=p->next;free(p);B.head->next=p;p->next=head->next;free(p);C.free(p);head->next=p;p->next=head->next;D.free(p);head->next=p->next;191.若有以下定义:structlink{intdata;structlink*next;}*p,*q;并已建立如下图所示的链表结构,指针p和q分别指向如下结点:datanextdataNULLdatanextqp则不能将q所指向的结点连到上图所示链表末尾的一组语句是(B)A.q->next=NULL;p=p->next;p->next=q;B.p=p->next;q->next=p;p->next=q;C.p=p->next;q->next=p->next;p->next=q;D.p=(*p).next;(*q).next=(*p).next;(*p).next=q;192.若有定义:structnode{intdata;structnode*next;};及函数109nvoidfun(structnode*head){structnode*p=head;while(p){printf("%d",p->data);p=p->next;break;}}51738NULL。。。head则函数fun()的功能是(C)。A.删除单向链表B.显示单向链表中的所有数据C.显示单向链表中的第一个数据D.创建单向链表193.若有定义:structnode{intdata;structnode*next;};及函数:voidfun(structnode*head){structnode*p=head;while(p){printf("%d",p->data);p=p->data;}}调用时head是指向链表首结点的指针,整个链表的结构如下图:254713NULL。。。head则函数fun()的功能是(B)。A.删除单向链表B.显示单向链表中的所有数据C.显示单向链表中的第一个数据D.创建单向链表194.若有如下定义,函数fun的功能是(B)。其中head指向链表首结点,整个链表结构如下图:109ndatanextdatanextdataNULL。。。headstructnode{intdata;structnode*next;};intfun(structnode*head){intn=0;structnode*t=head;while(t!=NULL){n++;t=t->next;}returnn;}A.删除链表head中的所有结点B.计算链表head中结点的个数C.插入一个元素到链表head中D.创建一个链表head195.若有如下定义,函数fun的功能是(A)。其中head指向链表首结点,整个链表结构如下图:datanextdatanextdataNULL。。。headstructnode{intdata;structnode*next;}voidfun(structnode*head){structnode*t=head;while(t!=NULL){if(t->data%2==0)printf("%d",t->data);t=t->next;}}109nA.遍历链表head,输出表中值为偶数的元素B.建立一个只有表头结点的链表headC.删除链表head中的第一个结点D.插入一个元素到链表head中196.下面程序的输出结果是(A)。#include#includetypedefstructnode{intdata;structnode*next;}Node;Nodelist[3]={{1,&list[1]},{2,&list[2]},{3,0}};voidprint(Node*head){Node*t=head;while(t!=NULL){printf("%d",t->data);t=t->next;}}voidmain(){print(list);}A.123B.012C.013D.230197.若有以下定义:structlink{intdata;structnode*next;}*head,*p;并已建立如下图所示的链表结构,指针p和q分别指向图中所示结点:pdatanextdataNULLdatanextq。。。则不能将指针q所指的结点接到链表末尾的程序段是(C)。A.q->next=NULL;p=p->next;p->next=q;B.p=p->next;q->next=p->next;p->next=q;C.p=p->next;q->next=p;p->next=q;D.p=(*p).next;(*q).next=(*p).next;(*p).next=q;109n198.若有定义:structlink{intdata;structlink*next;};intfun(structlink*head){ints=0;structlink*t=head;while(t!=NULL){s+=t->data;t=t->next;}returns;}调用fun函数时head是指向链表首结点的指针,整个链表结构如下图:datanextdatanextdataNULL。。。head则函数fun()的功能是(A)。A.遍历链表head,计算表中各结点成员data的总和B.计算链表head中结点的个数C.输出链表head中各结点成员dataD.创建一个链表head枚举、自定义类型和位运算199.对枚举类型进行定义,不正确的是(A)。A.enumb{1,2,3};B.enuma{A,B,C};C.enumc{D=3,E,F};D.enumd{X=0,Y=5,Z=9};200.假定已有如下变量说明和枚举定义:charch;intj,k;enumday{sun,mon,tue,wed,thu,fri,sat};inta[sat];判断下列语句是否符合语法规则,结果是(A)。sun=0;/*语句1*/j=mon+tue;/*语句2*/if(a[mon]>0)j++;/*语句3*/A.语句1错误,语句2和语句3正确B.语句2正确,语句1和语句3错误109nC.语句3正确,语句1和语句2错误D.语句1正确,语句2和语句3错误201.设有如下定义:typedefint*INTEGER;INTEGERp,*q;则(C)是正确的叙述。A.p是int型变量B.q是基类型为int的指针变量C.p是基类型为int的指针变量D.程序中可用INTEGER代替int类型名202.在对无符号数的位运算中,操作数左移一位相当于(B)。A.操作数除以2B.操作数乘以2C.操作数除以4D.操作数乘以4203.若有定义:inta=20,b=28,c;则执行语句c=(a^b)<<2;后c的值为(C)。A.2B.5C.32D.92204.若有定义:inta=5,b=7,c;则执行语句c=a&b;后c的值为(D)。A.12B.2C.6D.5205.下面程序的输出结果为(B)。#includevoidmain(){enumWeekday{sun=7,mon=1,tue,wed,thu,fri,sat};enumWeekdayday=sat;printf("%dn",day);}A.7B.6C.5D.4206.若有以下类型说明,叙述正确的是(C)。typedefstruct{intnum;char*name;intscore;}STU,*PSTU;A.STU是变量名B.PSTU是变量名C.PSTU是指向结构体类型STU的指针类型名D.类型说明语句有错误207.下面程序段的运行结果是(C)。inta=5,b=6;printf("%d",a|b);A.5B.6C.7D.8109n208.若有以下类型说明,则(B)是正确的叙述。typedefunion{charstr[2];inti;}sp;A.sp是一个共用体变量名B.sp是一个共用体类型名C.unionsp是共用体类型名D.typedefunion是共用体类型名209.定义枚举类型的关键字是(B)。A.defineB.enumC.unionD.struct文件210.以下程序的功能是(C)。#includemain(){FILE*fp;longintn;fp=fopen("wj.txt","rb");fseek(fp,0,SEEK_END);n=ftell(fp);fclose(fp);printf("%ld",n);}A.计算文件wj.txt的起始地址B.计算文件wj.txt的终止地址C.计算文件wj.txt内容的字节数D.将文件指针定位到文件末尾211.设有一文本文件test.txt,其内容为"cprogram"(不包含引号),以下程序段的运行结果是(A)。FILE*fp;char*str;if((fp=fopen("test.txt","r"))!=NULL)str=fgets(str,5,fp);printf("%s",str);A.cproB.cprogC.progrD.cprogram212.在C语言程序中,对文件操作的一般步骤是(C)。A.打开文件,定义文件指针,读写文件,关闭文件B.定义文件指针,读文件,写文件,关闭文件C.定义文件指针,打开文件,读写文件,关闭文件109nD.操作文件,定义文件指针,修改文件,关闭文件213.下面程序运行后的结果是(A)。#includemain(){FILE*fp;inti=10,j=20,k,n;fp=fopen("d_f.dat","w");fprintf(fp,"%dn",i);fprintf(fp,"%dn",j);fclose(fp);fp=fopen("d_f.dat","r");fscanf(fp,"%d%d",&k,&n);printf("%d%dn",k,n);fclose(fp);}A.1020B.1030C.2030D.2010214.以下程序运行后,屏幕显示writeok!,下列说法正确的是(D)。#includemain(){FILE*fp;fp=fopen("data.txt","wt");if(fp!=NULL){fprintf(fp,"%sn","Filewritesuccessed!n");fclose(fp);printf("writeok!n");}}A.当前工作目录下存在data.txt文件,其中的内容为"writeok!"B.fclose(fp);语句的功能是打开文件C.当前工作目录下一定不存在data.txt文件D.当前工作目录下一定存在data.txt文件215.以下程序运行后,屏幕显示Fileopenerror!,则可能的原因是(C)。#includemain(){FILE*fp;charstr[256];fp=fopen("test.txt","rt");if(fp==NULL)109n{printf("Fileopenerror!");return;}fscanf(fp,"%s",str);fclose(fp);}A.当前工作目录下有test.txt文件,但test.txt文件太小B.test.txt文件不能关闭C.当前工作目录下没有test.txt文件D.当前工作目录下有test.txt文件,但test.txt文件太小216.以下程序的可执行文件名为cmdline.exe。#include#includevoidmain(intargc,char*argv[]){if(argc!=2){printf("Youforgottotypeyournameoryoutypedmoreparametersn");exit(1);}printf("Hello%sn",argv[1]);}在DOS命令行输入:cmdlineharry<回车>,则输出结果是(B)。A.YouforgottotypeyournameoryoutypedmoreparametersB.HelloharryC.HellocmdlineD.Hello217.对下面程序正确的描述是(C)。#include#includevoidmain(){FILE*in,*out;if((in=fopen("infile.txt","r"))==NULL){printf("cannotopeninfilen");exit(0);}if((out=fopen("outfile.txt","w"))==NULL){printf("cannotopenoutfilen");109nexit(0);}while(!feof(in))fputc(fgetc(in),out);fclose(in);fclose(out);}A.程序实现在屏幕上显示磁盘文件infile.txt的内容B.程序实现将两个磁盘文件infile.txt和outfile.txt的内容合二为一C.程序实现将磁盘文件infile.txt复制到磁盘文件outfile.txtD.程序实现将两个磁盘文件合并在屏幕上输出218.以下叙述中正确的是(D)。A.C语言中的文件是流式文件,因此只能顺序存取数据B.打开一个已有的文件进行了写操作后,原有文件中的全部数据必定被覆盖C.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据D.当对文件的写操作完成之后,必须将它关闭,否则可能导致数据丢失219.对下面程序正确的描述是(A)。#includemain(){inti;FILE*fp;if((fp=fopen("test.txt","rb+"))!=NULL){i=fgetc(fp);i=i+1;}fseek(fp,0,SEEK_SET);fputc(i,fp);fclose(fp);}A.将文件中第一个字节的内容加1并重新写入到第一个字节B.将文件中第一个字节的内容加1并写入到第二个字节中C.以只读方式打开文本文件test.txtD.以只读方式打开二进制文件test.dat220.若在fopen函数中使用文件的方式是"wb+",该方式的含义是(D)。A.为读/写打开一个文本文件B.为输出打开一个文本文件C.为读/写建立一个新的文本文件D.为读/写建立一个新的二进制文件109n第二部分:改错题(每小题10分,2小题/套)说明如下:(1)修改程序中每对"/**/"之间存在的错误;(2)不得删改程序中的"/**/"注释和其它代码;(3)源程序均在考生文件夹中,务必以原文件名保存程序;(4)按alt+tab键,切换考试程序与TurboC;按alt+enter键,切换TurboC窗口大小。第1套1.程序Cmody011.c的功能是:从字符串数组str1中取出ACSII码值为偶数且下标为偶数的字符依次存放到字符串t中。例如,若str1所指的字符串为:4AZ18c?Ge9a0z!则t所指的字符为:4Z8z注意:数组下标从0开始。2.程序Cmody012.c中,函数fun(intn)的功能是:根据参数n,计算大于10的最小n个能被3整除的正整数的倒数之和。例如:-------------------------Cmody011.c-------------------#include#include#include#includevoidmain(){charstr1[100],t[200];inti,j;/**/i=0;/**/clrscr();strcpy(str1,"4AZ18c?Ge9a0z!");for(i=0;i#include#include#include#defineM50doublefun(intn){doubley=0.0;inti,j;j=0;for(i=1;;i++){/**/if((i<10)&&(i%3==0))/**/{/**/y+=1/i;/**/j++;}if(j==n)break;}returny;}voidmain(){clrscr();printf("fun(8)=%8.3lfn",fun(8));}第2套1.程序Cmody021.c输出如下所示图形:*************************2.程序Cmody022.c的功能是求解百元买百鸡问题:设一只公鸡2元、一只母鸡1元、一只小鸡0.5元。问一百元买一百只鸡,公鸡、母鸡、小鸡数可分别为多少?有多少种分配方案?-------------------------Cmody021.c-------------------#includevoidmain(){/**/inti;j;/**/for(i=1;i<=5;i++)109n{for(j=1;j<=5-i;j++)printf("");/**/for(j=1;j<=5;j++)/**/printf("*");printf("n");}}-------------------------Cmody022.c-------------------#include#include/**/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)/**/{n++;printf("%d-->hen:%d,cock:%d,chicken:%dn",n,hen,cock,chicken);if(n==20)getch();}}returnn;}voidmain(){intnum;num=fun();printf("nThereare%dsolutions.n",num);getch();}第3套1.程序Cmody031.c的功能是:从键盘上输入两个整数,及一个运算符(+、-、*、/或%),进行相应的运算后输出运算的结果。如输入:1+2将输出:1+2=32.程序Cmody032.c的功能是:输出201-300之间的所有素数,统计总个数。-------------------------Cmody031.c-------------------#include109n#includevoidmain(){intm,n,result,flag=0;/**/charch,/**/clrscr();printf("Inputanexpression:");scanf("%d%c%d",&m,&ch,&n);/**/switchch/**/{case'+':result=m+n;break;case'-':result=m-n;break;case'*':result=m*n;break;case'%':result=m%n;break;case'/':result=m/n;break;default:{printf("Error!n");flag=1;}}if(!flag)printf("%d%c%d=%dn",m,ch,n,result);getch();}-------------------------Cmody032.c-------------------#include#includevoidmain(){intnum;printf("n");num=fun();printf("nThetotalofprimeis%d",num);getch();}intfun(){intm,i,k,n=0;for(m=201;m<=300;m++){k=sqrt(m+1);for(i=2;i<=k;i++)/**/if(m/i==0)/**/break;/**/if(i==k)/**/{printf("%-4d",m);n++;109nif(n%10==0)printf("n");}}returnn;}第四套1.程序Cmody041.c,其功能是统计输入字符串中小写英文字母的个数。如输入:abcdEFGHIJK123输出:42.程序Cmody042.c,其功能是将从键盘依次输入的M个整数逆序输出。-------------------------Cmody041.c-------------------#include#includemain(){charstr1[128];/**/inti;len,sum=0;/**/gets(str1);len=strlen(str1);for(i=0;i='a'||str1[i]<='z')/**/sum++;}printf("%dn",sum);getch();}-------------------------Cmody042.c-------------------#include#include#defineM8main(){inta[M],i;printf("Pleaseinput8numbers:n");for(i=0;i#includemain(){/**/charstr1/**/inti,len,sum=0;printf("Pleaseinputastring:n");scanf("%s",str1);len=strlen(str1);for(i=0;i='A'&&str1[i]<='Z')/**/sum--;/**/}printf("%dn",sum);getch();}-------------------------Cmody052.c-------------------#include#include/**/#includeM5/**/main(){inta[M],i;printf("Pleaseinput5numbers:n");for(i=0;i#includemain(){charstr1[128],str2[128];inti,len;gets(str1);len=strlen(str1);/**/for(i=0;i>len;i++)/**/{if(str1[i]>='0'&&str1[i]<='8')str2[i]=str1[i]+1;elseif(str1[i]=='9')str2[i]='0';elsestr2[i]=str1[i];}/**/str2[i]='n';/**/puts(str2);getch();}-------------------------Cmody062.c-------------------#include#includevoidmain(){chars1[12]="ABC",s2[]="xyz";char*ps1=s1,*ps2;/**/ps2=NULL;/**//**/while(*ps1==NULL)/**/ps1++;while(*ps2)*(ps1++)=*(ps2++);printf("%sn",s1);getch();109n}第7套1.程序Cmody071.c,其功能是从键盘输入三角形的三边长,求其面积,若三个边长不能构成三角形,则提示。如输入:6911输出:26.982.程序Cmody072.c,其功能是求解百马百担问题。有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问大、中、小马数可分别为多少?有多少种解决方案?-------------------------Cmody071.c-------------------#include#includevoidmain(){floata[3],s,area;inti;printf("Pleaseinput3numbers:n");for(i=0;i<3;i++)scanf("%f",/**/a[i]/**/);/**/if(a[0]+a[1]>a[2]||a[1]+a[2]>a[0]||a[0]+a[2]>a[1])/**/{s=(a[0]+a[1]+a[2])/2;area=sqrt(s*(s-a[0])*(s-a[1])*(s-a[2]));printf("areais%.2fn",area);}elseprintf("error.n");getch();}-------------------------Cmody072.c-------------------#include#include/**/voidfun()/**/{intlarge,middle,small,n=0;clrscr();for(large=0;large<=33;large++)for(middle=0;middle<=50;middle++){small=2*(100-3*large-2*middle);/**/if(large+middle+small=100)/**/{109nn++;printf("%d-->large:%d,middle:%d,small:%dn",n,large,middle,small);}}returnn;}voidmain(){intnum;num=fun();printf("nThereare%dsolutions.n",num);getch();}第8套1.程序Cmody081.c,其功能是求一堆零件的总数(100到200之间)。如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。2.程序Cmody082.c,其功能是交换连个变量的值。如输入:Original:a=2b=3输出:Result:a=3b=2-------------------------Cmody081.c-------------------#includevoidmain(){inti;/**/for(i=100;i<200;i++);/**/if((i-2)%4==0)if(!((i-3)%7))if(i%9==5)printf("%dn",/**/&i/**/);getch();}-------------------------Cmody082.c-------------------#include/**/voidswap(intp1,intp2){inttemp;temp=*p1;/**/p1=p2;/**/*p2=temp;}voidmain()109n{inta,b;printf("pleaseinput2numbers:n");scanf("%d%d",&a,&b);printf("nOriginal:a=%db=%dn",a,b);swap(&a,&b);printf("nResult:a=%db=%dn",a,b);getch();}第9套1.程序Cmody091.C,其功能是计算1至100之间的奇数之和,偶数之和。2.程序Cmody092.C的功能是求满足等式xyz+yzz=520的x,y,z值(其中xyz和yzz分别表示一个三位数)。-------Cmody091.C---------------------------------------------------------------------------#includevoidmain(){intb,i;/**/inta=c=0;/**//**/for(i=0,i<=100,i+=2)/**/{a+=i;b=i+1;c+=b;}printf("totalofevennumbers:%dn",a);printf("totalofoddnumbers:%dn",c-101);getch();}-------Cmody092.C---------------------------------------------------------------------------#includevoidmain(){intx,y,z,i,result=520;for(x=1;x<10;x++)for(y=1;y<10;y++)/**/for(z=1;z<10;z++)/**/{i=100*x+10*y+z+100*y+10*z+z;/**/if(i=result)/**/printf("x=%d,y=%d,x=%dn",x,y,z);109n}getch();}第10套1.程序Cmody101.c,其功能是计算如下所示的数学表达式:2.程序Cmody102.c,其功能是实现打印出所有的“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为153=13+53+33。-------Cmody101.C---------------------------------------------------------------------------#include#defineF(x)(x*x-2.3*x+5.6)/(x+8.2)voidmain(){floata=6.0,b=3.0,c;/**/ints;/**/printf("nPleaseinputc:");scanf("%f",/**/c/**/);/**/s=F(a,b,c);/**/printf("ns=%.2fn,s");getch();}-------Cmody102.C---------------------------------------------------------------------------voidmain(){intf,s,t,n;printf("nThelistis:n");for(n=100;n<1000;n++){f=n%10;s=(n%100)/10;/**/t=n%100;/**//**/if(t*t*t+s*s*s+f*f*f=n)/**/printf("%d",n);}printf("n");getch();}109n第11套1.程序Cmody111.C,输出如下所示图形:@@@@@@@@@@@@@@@@@@@@@2.程序Cmody112.C,实现输出如下所示的4×4的矩阵:12348765910111216151413-------Cmody111.C---------------------------------------------------------------------------#include#includevoidmain(){/**/inti;j;/**//**/for(i=6;i>1;i--)/**/{printf("@");for(j=1;j<=6-i;j++)printf("@");printf(/**/"r"/**/);}getch();}-------Cmody112.C---------------------------------------------------------------------------P54页缺。。。。。第三部分:程序填空题第1套1.补充程序Ccon011.C,使其计算。-------Ccon011.C---------------------------------------------------------------------------109n#include#includevoidmain(){intx;/**//**/printf("Inputaninteger:");scanf("%d",&x);f=/**//**/;printf("F(x)=%fn",f);}2.补充程序Ccon012.C,该程序中用公式计算圆周率的近似值。-------Ccon012.C---------------------------------------------------------------------------#includevoidmain(){doublepi=0;longi,sign=1;for(i=1;i<=10001;i+=2){pi+=1.0*sign/i;sign=/**//**/;}pi*=/**//**/;printf("%fn",pi);}3.补充程序Ccon013.c,程序实现从10个数中找出最大值和最小值。-------Ccon013.C---------------------------------------------------------------------------#include#includeintmax,min;voidfind_max_min(int*p,intn){int*q;max=min=*p;for(q=p;q*q)min=*q;}voidmain(){inti,num[10];109nprintf("Input10numbers:");for(i=0;i<10;i++)scanf("%d",&num[i]);find_max_min(/**//**/,10);printf("max=%d,min=%dn",max,min);}第2套1.补充程序Ccon021.C,使其满足下式的一位整数A和B的值。-------Ccon021.C---------------------------------------------------------------------------#includevoidmain(){inta,b,k;intplu=/**//**/for(a=1;a<10;a++)for(b=1;b<10;b++){k=(a*10+b)*/**//**/;if(k==plu)printf("A=%d,B=%dn",a,b);}}2.补充程序Ccon022.C,使其实现输入若干整数,统计其中大于零和小于零的个数,输入零结束。-------Ccon022.C---------------------------------------------------------------------------#includevoidmain(){intn,a,b;/**//**/scanf("%d",&n);while(/**//**/){if(n>0)a++;else/**//**/scanf("%d",&n);}printf("Positiveinteger:%d,negativeinteger:%dn",a,b);109n}3.补充程序Ccon023.c,该程序可测试歌德巴赫猜想:从键盘上输入一个大于6的偶数,总能找到两个素数,使得这两个素数之和正好等于该偶数。-------Ccon023.C---------------------------------------------------------------------------#include#includeintprime(intn){intk,flag=1;for(k=2;k<=n/2+1;k++)if(n%k==0){flag=/**//**/;break;}returnflag;}voidmain(){intnum,a;clrscr();do{printf("Pleaseinputanevennumber:");scanf("%d",&num);}while(num<=6||num%2==1);for(a=2;a<=num/2+1;a++)if(prime(a)&&prime(/**//**/))printf("n%d=%d+%d",num,a,num-a);}第3套1.补充程序Ccon031.C,使其用牛顿迭代法求方程2x3-4x2+3x-6=0在1.5附近的根。-------Ccon031.C---------------------------------------------------------------------------#include#include/**//**/{floatx,x0,f,f1;x=1.5;do{x0=x;f=((2*x0-4)*x0+3)*x0-6;f1=(6*x0-8)*x0+3;x=x0-f/f1;}/**//**/(fabs(x-x0)>=1e-6);printf("therootis:%.2fn",x);}2.补充程序Ccon032.C,该程序的功能是输出的一行字符中的大写字母转变为相应的小写字母,小写字母则转变为相应的大写字母,其余字符不变。109n-------Ccon032.C---------------------------------------------------------------------------#includevoidmain(){chars[80];inti;printf("Pleaseinputastring:");for(i=0;((s[i]=getchar())!='n')&&(i<80);i++);s[i]='';for(i=0;s[i]!='';/**//**/){if(s[i]>='a'&&s[i]<='z')s[i]=s[i]-32;elseif(/**//**/)s[i]=s[i]+32;printf("%c",s[i]);}}3.补充程序Ccon033.c,其中main函数通过调用average函数计算数组元素的平均值。-------Ccon033.C---------------------------------------------------------------------------#includefloataverage(int*pa,intn){intk;/**//**/for(k=0;kmain()109n{/**//**/str[11];printf("Pleaseinputaname:n");scanf("%s",str);printf("Hello,%s!n",str);getch();}2.补充程序Ccon042.C,使程序中的sort()函数用冒泡法对数组a中的m个元素从大到小排序。-------Ccon042.C---------------------------------------------------------------------------#include#includevoidsort(inta[],intm){inti,j,t,swap;for(i=0;i109n#includeintfun(/**//**/){floattemp;intbTrue=0;if(amain(){intx;printf("Pleaseinputanumber:n");scanf("%d",/**//**/);printf("%d*%d=%dn",x,x,/**//**/);getch();}109n2.补充程序Ccon052.C,使程序中的sort()函数用选择法对数组a中的m个元素从大到小排序。-------Ccon052.C---------------------------------------------------------------------------#include#includevoidsort(inta[],intm){inti,j,k,t;for(i=0;i#include/**//**/fun(floata,floatb,floatc){floats,area;s=/**//**/;s=s*(s-a)*(s-b)*(s-c);if(s<0)area=-1;else109narea=sqrt(s);returnarea;}main(){floata,b,c,area;printf("Pleaseinputthreenumbers:n");scanf("%f%f%f",&a,&b,&c);area=fun(a,b,c);printf("Areais:%.2fn",area);getch();}第6套1.补充程序Ccon061.C,使其从键盘输入一个4行4列的二维整型数组表示4×4阶矩阵,并计算第1列元素之和。如输入:12345678910111213141516输出:28-------Ccon061.C---------------------------------------------------------------------------#include#includemain(){inti,/**//**/;inta[4][4],sum;sum=/**//**/;printf("Pleaseinput16numbers:n");for(i=0;i<4;i++)for(j=0;j<4;j++)scanf("%d",&a[i][j]);for(i=0;i<4;i++)/**//**/printf("%dn",sum);getch();}2.补充程序Ccon062.C,使程序中的fun()函数用二分法在按从小到大排好序的数组a中查找q,若找到第一个q则返回对应的下标,没找到返回-1。-------Ccon062.C---------------------------------------------------------------------------#includeintfun(inta[],intn,/**//**/)109n{intleft,right,mid;left=0;right=n-1;while(left<=right){mid=/**//**/;if(qa[mid])left=mid+1;elsereturnmid;}return-1;}main(){inta[]={3,4,6,11,17,22,31,45};intk,n;n=sizeof(a)/sizeof(int);k=fun(a,n,31);printf("%dn",k);getch();3.补充程序Ccon063.C,使其中的fun()函数判断输入的一个点(x,y)是否位于坐标在原点,半径为r(r>0)的圆内。-------Ccon063.C---------------------------------------------------------------------------#include#includeintfun(/**//**/,floatx,floaty){intbIn;bIn=/**//**/0):n");scanf("%f",&r);}printf("Pleaseinputthreedot(x,y):n");scanf("%f%f",&x,&y);bIn=fun(r,x,y);if(bIn==1)printf("inthecircle!n");109nelseprintf("outofthecircle!n");getch();}第7套1.补充程序Ccon071.C,对函数,分别计算和的值。如x=2.0,则输出:-------Ccon071.C---------------------------------------------------------------------------#include/**//**/doublefun(doublex){/**//**/}main(){doublex,y1,y2;clrscr();printf("Pleaseinputx:");scanf("%lf",&x);y1=fun(x+8);y2=fun(/**//**/);printf("nf(x+8)=%.3lf",y1);printf("nf(sinx)=%.3lf",y2);getch();}2.补充程序Ccon072.C,计算,其中m,n为整数且。-------Ccon072.C---------------------------------------------------------------------------#includedoublefun(unsignedm,unsignedn){unsignedi;doublep=1.0;for(i=1;i<=m;i++)/**//**/109nfor(i=1;i<=n;i++)/**//**/for(i=1;i<=m-n;i++)p=p/i;returnp;}voidmain(){clrscr();printf("p=%fn",fun(13,7));getch();}3.补充程序Ccon073.C,函数findmax返回数组中的最大元素。-------Ccon073.C---------------------------------------------------------------------------#includeintfindmax(int*array,intsize);voidmain(){inta[]={33,91,23,45,56,-12,32,12,5,90};clrscr();printf("Themaxis%dn",/**//**/);getch();}intfindmax(int*array,intsize){inti,/**//**/;for(i=1;imax)max=array[i];returnmax;}第8套1.补充程序Ccon081.C,根据输入的整数m(m>=0)值,计算。-------Ccon081.C---------------------------------------------------------------------------#includeunsignedsum(unsignedn){unsignedi,/**//**/for(i=1;i<=n;i++)sum+=i;109n/**//**/}voidmain(){intm;clrscr();printf("Pleaseinputaunsignedinteger:");scanf("%d",&m);while(m<0){printf("Pleaseinputaunsignedinteger:");scanf("%d,&m");}printf("nThesumis%dn",/**//**/);getch();}2.补充程序Ccon082.C,使其实现将一个字符串str的内容反向存储。-------Ccon082.C---------------------------------------------------------------------------#include#includevoidmain(){inti,j;charstr[]="1234567",/**//**/;for(i=0,/**//**/;i#includetypedefstruct{intnum;charname[20],sex[2];intage,score;}STU;STUmystudent[]={109n{1111,"Zhangqiang","m",20,80},{2104,"Liminghong","w",18,82},{3121,"Wangxingda","m",21,78},{4118,"Liushaotao","m",20,90},{1456,"Wuminghong","w",35,86}};voidsort(STU*ps,intsize){inti,flag,pass;/**//**/for(pass=1;passnum,(mystudent+i)->name,(mystudent+i)->age,(mystudent+i)->sex,(mystudent+i)->score);sort(mystudent,size);printf("nStudents'informationaftersort:nn");printf("NumberNameageSexscorenn");for(i=0;inum,(mystudent+i)->name,(mystudent+i)->age,(mystudent+i)->sex,(mystudent+i)->score);getch();}109n第9套1.补充程序Ccon091.C,输入一个3行3列的整型数组,求其最大值和最小值。如输入:123456789输出:max=9min=1-------Ccon091.C---------------------------------------------------------------------------#include"stdio.h"#defineROW3#defineCOL3voidmain(){inta[ROW][COL],i,j,max,min;clrscr();printf("Pleaseinputthe9integers:n");for(i=0;ivoidmain(){intt=0,/**//**/,i;for(i=1;i<=N;i++){t=/**//**/;s+=t;109n}clrscr();printf("ns=%dn",s);getch();}3.补充程序Ccon093.C,输出Fibonacci数列的前15项。Fibonacci数列的计算方法是:fib(n)=1(n=1,2)fib(n)=fib(n-1)+fib(n-2)(n>=3)-------Ccon093.C---------------------------------------------------------------------------#includelongfib(intn);voidmain(){intk;clrscr();printf("Thefirst15dataofFibonacciis:nn");for(k=1;k<=15;k++)printf("%d",fib(k));printf("n");getch();}longfib(intn){if(n==1||n==2)/**//**/elsereturn/**//**/;}第10套1.补充程序Ccon0110.C,该程序的功能是计算三个学生的总成绩和平均成绩,其中三个学生的成绩存储在一个结构体数组中。-------Ccon0110.C---------------------------------------------------------------------------#includemain(){structstu{charname[10];floatscore;};/**//**/stu[3]={"Mary",76,"John",85,"Tom",81};inti=0;109nfloattotal=0,aver=0;while(i<3){total=total+/**//**/;i++;}aver=total/3;printf("ntotal=%.2f,aver=%.2f",total,aver);getch();}2.补充程序Ccon0210.C,该程序的功能是找出数组中的最小数min1和次小数min2。-------Ccon0210.C---------------------------------------------------------------------------#includemain(){inti,a[10]={9,26,35,8,6,19,69,3,5,95};intmin1,min2;i=0;min1=a[0]a[1]?/**//**/for(i=2;i<10;i++){if(a[i]main(){doublex,y;/**//**/printf("Pleaseinputx;n");109nscanf("%lf",&x);y=mysqrt(x,1.0);printf("Thesqrtof%f=%fn",x,y);getch();}doublemysqrt(doublea,doublex0){doublex1,y;x1=/**//**/if(fabs(x1-x0)>0.00001)y=mysqrt(/**//**/);elsey=x1;return(y);}第11套1.补充程序Ccon0111.C,其功能是求20以内的所有素数,按每行显示4个素数输出。-------Ccon0111.C---------------------------------------------------------------------------#include#define/**//**/main(){inta,flag,i,j,m=0;for(i=2;i<=N;i++){flag=1;j=2;a=(int)sqrt((double)i);while(flag&&j<=a){if(i%j==0)/**//**/j++;}if(flag){printf("%3d",i);/**//**/if(m%4==0)printf("n");}}getch();}2.补充程序Ccon0112.C,其功能是求下列级数的部分和。109n例如:当m=100,x=2时,ex=7.389057-------Ccon0112.C---------------------------------------------------------------------------#includemain(){inti,m;floatx,s,tem;printf("Inputmandxn:");scanf("%d%f",&m,&x);/**//**/for(i=1;/**//**/;i++){tem*=x/i;s+=tem;}printf("e**%.2f=%fn",x,s);getch();}3.补充程序Ccon0113.C,计算存放在数组score中12位学生成绩的平均分,并输出高于平均分的人数。-------Ccon0113.C---------------------------------------------------------------------------#include#defineN12intcount(ints[]){inti,c=0;floatsum=0,aver;for(i=0;i=aver)c++;}return(/**//**/);}voidmain(){intscore[N]={67,78,66,79,73,82,69,85,77,80,93,72};intcn;109ncn=/**//**/(score);printf("Countis%dn",cn);getch();}第四部分:编程题(每小题8分,2小题/套)说明如下:(1)在一对"/**/"之间编写程序,以完成题目的要求;(2)不得删改程序中的"/**/"注释和其它代码;(3)源程序均在考生文件夹中,务必以原文件名保存程序;(4)按Alt+Tab键,切换考试程序与TurboC;按Alt+Enter键,切换TurboC窗口大小。第1套1.打开Cprog011.C,完成其中的函数fun1,该函数的数学表达式是:例如:fun1(0.76)=2.175fun1(3.00)=5.307fun1(3.76)=9.111--------Cprog011.C--------------------------------------------------------------------------------#include#includedoublefun1(doublex){/**//**/}voidmain(){clrscr();printf("fun1(0.76)=%8.3lfn",fun1(0.76));109nprintf("fun1(3.00)=%8.3lfn",fun1(3.00));printf("fun1(3.76)=%8.3lfn",fun1(3.76));}2.打开程序Cprog012.C,完成其中的函数fun2(inta[],intn,intb[],intc[]),实现:(1)将数组a中大于-20的元素,依次存放到数组b中;(2)将数组b中的元素按照从小到大的顺序依次存放到数组c中;(3)函数返回数组b中的元素个数。-----------Cprog012.C------------------------------------------------------------------------------#include#include#include#includeintfun2(inta[],intn,intb[],intc[]){/**//**/}voidmain(){intn=10,i,nb;intaa[10]={12,-10,-31,-18,-15,50,17,15,-20,20};intbb[10],cc[10];clrscr();printf("Thereare%2delementsinaa.n",n);printf("Theyare:");for(i=0;i#includedoublefun1(doublex){/**//**/}voidmain(){clrscr();printf("fun1(0.76)=%8.3lfn",fun1(0.76));printf("fun1(3.00)=%8.3lfn",fun1(3.00));printf("fun1(3.76)=%8.3lfn",fun1(3.76));}2.打开程序Cprog022.C,完成其中的函数fun2(chara[],charb[],charc[]),实现:将三个字符串a、b、c从小到大排序后输出。注意:字符串比较函数为strcmp(str1,str2),字符串赋值函数为strcpy(str1,str2)。-----------Cprog022.C------------------------------------------------------------------------------#include#include#include109n#includevoidfun2(chara[],charb[],charc[]){/**//**/}voidmain(){charstr1[15]="Fuzhou",str2[15]="Fujian",str3[15]="China";clrscr();fun2(str1,str2,str3);printf("Theorderedstringsis:%s,%s,%sn",str1,str2,str3);getch();}109n第3套1.打开Cprog031.C,完成其中的函数fun1,该函数的数学表达式是:例如:fun1(0.76)=1.200fun1(3.00)=10.000fun1(3.76)=8.520--------Cprog031.C--------------------------------------------------------------------------------#include#includedoublefun1(doublex){/**//**/}voidmain(){clrscr();printf("fun1(0.76)=%8.3lfn",fun1(0.76));printf("fun1(3.00)=%8.3lfn",fun1(3.00));printf("fun1(3.76)=%8.3lfn",fun1(3.76));}2.打开Cprog032.C,完成其中的函数fun(char*s),使程序实现统计输入字符串中空格的个数*/-----------Cprog032.C-----------------------------------------------------------------------------#includeintfun(char*s){/**/109n/**/}voidmain(){charstr[255];gets(str);printf("%dn",fun(str));}109n第4套1.打开程序Cprog041.C,完成其中fun()函数,使其计算:如输入:12输出f(12.000)=10.387输入:32.25输出f(32.250)=12.935输入:0.113输出f(0.113)=1568---------Cprog041.C-------------------------------------------------------------------------------#include#includedoublef(floatx){/**//**/}voidmain(){floatx;doubley;printf("Pleaseinputanumber:n");scanf("%f",&x);y=f(x);printf("f(%.3f)=%.3fn",x,y);getch();}2.打开程序Cprog042.C,完成其中的fun()函数,使程序打印出Fibonacci数列的前20个数。该数列(1,1,2,3,5,8,13,......)的第一、第二个数为1,从第三个数开始每个书等于前2个数字之和。-----------Cprog042.C-----------------------------------------------------------------------------#include#includedoublefun(inta[],intm){/**/109n/**/}voidmain(){inta[20],i;fun(a,20);for(i=0;i<20;i++)printf("%d",a[i]);printf("n");getch();}第5套1.打开程序Cprog051.C,完成其中的f()函数,使其计算:如输入:0.4输出:f(0.40)=0.82输入:1.5输出:f(1.50)=1.24输入:7.80输出:f(780.00)=-1.00-------------Cprog051.C--------------------------------------------------------------------------#include#includedoublef(floatx){/**//**/}voidmain(){floatx;109ndoubley;printf("pleaseinputanumber:n");scanf("%f",&x);y=f(x);printf("f(%0.2f)=%0.2fn",x,y);getchar();}2.打开程序Cprog052.C,完成其中的fun()函数使其判断一个矩阵是否为对称矩阵,若矩阵对称返回1,不对称返回0。说明:矩阵a是一个二维数组,若其中的第k行第j列的元素与第j行k第列的元素相同,则称其为对称矩阵,否则为非对称矩阵。如输入:6312如输入:691231883188128734822输出:Yes输出:No-----------Cprog052.C------------------------------------------------------------------------------#include#includeintfun(inta[][3],intm){/**//**/}voidmain(){inta[3][3],i,j;intb;fun(a,20);for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);b=fun(a,3);if(b==1)printf("Yesn");elseprintf("Non");109ngetch();}109n第6套1.打开程序Cprog061.C,完成其中的f()函数,使其计算:如输入:0.8输出:f(0.80)=0.96输入:4.5输出;f(4.50)=107.05输入;725输出;f(725.00)=-1.00----------Cprog061.C-------------------------------------------------------------------------------#include#includedoublef(floatx){/**//**/}voidmain(){floatx;doubley;printf("Pleaseiuputanumber:n");scanf("%f",&x);y=f(x);printf("f(%0.2f)=%0.2fn",x,y);getch();}2.打开程序Cprog062.C,完成其中的fun()函数,使其实现四则运算功能。如输入:3.22.1输出:3.20+2.10=5.303.20-2.10=1.103.20*2.10=6.723.20/2.10=1.52------------Cprog062.C------------------------------------------------------------------------109n#include#includefloatfun(floata,charflag,floatb){/**//**/}voidmain(){floata,b;printf("Pleaseinputtwonumbers:n");scanf("%f%f",&a,&b);printf("%.2f+%.2f=%.2fn",a,b,fun(a,'+',b));printf("%.2f-%.2f=%.2fn",a,b,fun(a,'-',b));printf("%.2f*%.2f==%.2fn",a,b,fun(a,'*',b));printf("%.2f/%.2f==%.2fn",a,b,fun(a,'/',b));getch();}109n第7套1.打开程序Cprog071.C,完成其中的f(x)的函数,使对其输入的一个月工资数额,求应交税款。设应交税款的计算公式如下:例如输入:1825输出:f(1825)=11.25输入:2700输出:f(2700)=85.00输入:5655输出:f(5655)=483.25-----------Cprog071.C-----------------------------------------------------------------------------#include#includedoublef(floatx){/**//**/}voidmain(){floatx;doubley;clrscr();printf("Pleaseinputanumber:n");scanf("%f",&x);y=f(x);printf("f(%.2f)=%.2fn",x,y);getch();}2.打开程序Cprog072.C,完成其中的fun函数,该函数将4阶矩阵A的各行中0之前的所有正数依次存放到数组b中,并返回这些正数之和。如矩阵A为109n则调用函数fun()后,b[0]为1,b[1]为2,b[2]为23,b[3]为32,函数返回58。--------------Cprog072.C---------------------------------------------------------------------------#include#defineROW4#defineCOL4intfun(inta[][COL],introw,intb[]){/**//**/}voidmain(){intsss=0,b[16]={0};inta[ROW][COL]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,24},{-31,32,-33,0}};clrscr();sss=fun(a,ROW,b);printf("Sumofpositiveelementsis%dn",sss);getch();}109n第8套1.打开程序Cprog081.C,完成其中的f(x)函数,使其计算:如输入:-1.2输出:f(-1.200)=0.241输入:6输出:f(6.000)=19.879--------------Cprog081.C---------------------------------------------------------------------------#include#includedoublef(floatx){/**//**/}voidmain(){floatx;doubley;printf("Pleaseinputanumber:n");scanf("%f",&x);y=f(x);printf("f(%.3f)=%.3fn",x,y);getch();}1.打开程序Cprog082.C,完成其中的f()函数,该函数将以指针数组的形式存放的n个字符串按照升序排序。(提示:字符串复制函数是strcpy(cha*,char*,)),字符比较函数是strcmp(char*,char*)----------Cprog082.C-------------------------------------------------------------------------------#include#includevoidf(char**p,intn);voidmain()109n{inti;char*p[5]={"abc","xabdfg","abbd","dcdbe","cd"};f(p,5);clrscr();for(i=0;i<5;i++)printf("%sn",p[i]);getch();}voidf(char**p,intn){/**//**/}109n第9套1.打开程序CPROG091.C,完成其中的f()函数,使其返回方程的两个根中较大的根,求根公式为,其中假设:且-------------CPROG091.C-------------------------------------------------------------------------#include#includedoublef(floata,floatb,floatc){/**//**/}voidmain(){floatx;printf("Thebiggerrootis%.2fn",f(1,5,6));getch();}2.打开程序Cprog092.C,完成其中的strcmp1()函数,该函数实现判别两字符串str1和str2的大小。----------CPROG092.C----------------------------------------------------------------------------#includeintstrcmp1(constchar*str1,constchar*str2){/**//**/}voidmain(){109nintcom;char*ps1="uvwx",*ps2="uvwxyz";clrscr();com=strcmp1(ps1,ps2);if(com>0)printf("%s>%s",ps1,ps2);if(com==0)printf("%s=%s",ps1,ps2);if(com<0)printf("%s<%s",ps1,ps2);getch();}109n第10套1.打开程序Cprog101.C,完成其中的fun(x)函数,该函数的功能是:根据输入的x和n的值,计算,将计算结果存入数组元素a[0]中,并将计算结果的小数部分存入a[1]中。-----------Cprog101.C------------------------------------------------------------------------------#include#includevoidfun(doublea[],doublex,intn){/**//**/}voidmain(){intn;doublea[2],x;printf("nPleaseenterx,n:");scanf("%lf,%d",&x,&n);while(x<1.0||x>2.0||n<0||n>10){printf("nInvialiddata(1.0<=x<=2.0,0voidmain(){doublex;intn;doublefun(doublex,intn);printf("Pleaseenterx,n:");scanf("%lf%d",&x,&n);printf("fun=%lfn",fun(x,n));getch();}doublefun(doublex,intn){/**//**/}2.打开考生文件夹中的Cprog112.c,完成其中的search(inta[])函数,该函数返回数组a中的次大数(即仅次于最大数的数)。--------------Cprog112.c---------------------------------------------------------------------------#include109n#defineN8intsearch(inta[]){/**//**/}voidmain(){inta[N]={16,8,66,45,6,79,40,58};intmax_next;max_next=search(a);printf("Max_nextis%dn",max_next);getch();}答案选择题答案1.D2.B3.C4.C5.B6.D7.B8.C9.C10.C11.D12.B13.A14.D15.D16.C17.A18.C19.B20.B21.D22.A23.A24.C25.B26.C27.C28.A29.A30.B31.B32.C33.B34.B35.A36.A37.B38.C39.C40.B41.B42.A43.C44.C45.D46.B47.B48.B49.C50.D51.B52.A53.D54.B55.A56.B57.B58.A59.A60.A61.A62.C63.D64.A65.D66.D67.A68.A69.A70.D109n71.B72.D73.A74.C75.C76.C77.A78.D79.B80.B81.C82.D83.D84.C85.C86.D87.A88.D89.A90.D91.A92.B93.A94.D95.A96.C97.B98.C99.D100.B101.A102.C103.B104.B105.C106.D107.C108.A109.A110.C111.A112.B113.C114.A115.A116.C117.D118.C119.A120.A121.D122.B123.D124.C125.B126.C127.B128.C129.A130.B131.D132.A133.D134.A135.C136.B137.D138.B139.D140.D141.B142.A143.B144.C145.B146.A147.C148.A149.C150.D151.C152.B153.B154.B155.D156.C157.C158.A159.C160.B161.D162.A163.B164.B165.D166.D167.B168.C169.D170.B171.B172.A173.A174.A175.D176.A177.B178.C179.B180.C181.C182.D183.C184.D185.D186.D187.D188.C189.D190.A191.B192.C193.B194.B195.A196.A197.C198.A199.A200.A201.C202.B203.C204.D205.B206.C207.C208.B209.B210.C211.A212.C213.A214.D215.C216.B217.C218.D219.A220.D改错题答案第1套1./**/j=0;/**//**/if((str1[i]%2==0)&&(i%2==0))/**/2./**/if((i>10)&&(i%3==0))/**//**/y+=1.0/i;/**/109n第2套1./**/inti,j;/**//**/for(j=1;j<=2*i-1;j++)/**/2./**/intfun()/**//**/if(cock+hen+chicken==100)/**/第3套1./**/charch;/**//**/switch(ch)/**/2./**/if(m%i==0)/**//**/if(i>k)/**/或/**/if(i==k+1)/**/第4套1./**/inti,len,sum=0;/**//**/if(str1[i]>='a'&&str1[i]<='z')/**/2./**/&a[i]/**//**/for(i=M-1;i>=0;i--)/**/第5套1./**/charstr1[128];/**//**/sum++;/**/2./**/#defineM5/**//**/if(a[i]%2==0)/**/第6套1./**/for(i=0;ia[2]&&a[1]+a[2]>a[0]&&a[0]+a[2]>a[1])/**/2./**/intfun()/**//**/if(large+middle+small==100)/**/第8套1./**/for(i=100;i<200;i++)/**//**/i/**/2./**/voidswap(int*p1,int*p2)/**//**/*p1=*p2;/**/第9套1、/**/inta=0,c=0;/**//**/for(i=0;i<=100;i+=2)/**/2、/**/for(z=0;z<10;z++)/**//**/if(i==result)/**/第10套1、/**/floats;/**//**/&c/**//**/s=F(a)+F(b)-F(c);/**/2、/**/t=n/100;/**//**/if(t*t*t+s*s*s+f*f*f==n)/**/109n第11套1、/**/inti,j;/**//**/for(i=6;i>=1;i--)/**/printf(/**/"n"/**/);填空题答案第1套1、/**/floatf;/**/f=/**/(abs(x)-2.0)/(x*x+1)/**/;2、sign=/**/-sign/**/;pi*=/**/4/**/;3、for(q=p;q=1e-6);2、for(i=0;s[i]!='';/**/i++/**/)elseif(/**/s[i]>='A'&&s[i]<='Z'/**/)109n3、/**/floatavg=0.0;/**/avg=avg+/**/pa[k]/**/;m=average(/**/a/**/,5);第4套1、/**/#include/**//**/char/**/str[11];2、for(i=0;i/**//**/returnx*x-2*x+6;/**/y2=fun(/**/sin(x)/**/);2、/**/p=p*i;/**//**/p=p/i;/**/3、printf("Themaxis%dn",/**/findmax(a,10)/**/);inti,/**/max=array[0]/**/;第8套1、unsignedi,/**/sum=0;/**//**/returnsum;/**/printf("nThesumis%dn",/**/sum(m)/**/);2、charstr[]="1234567",/**/k/**/;for(i=0,/**/j=strlen(str)-1/**/;ips[i+1].num/**/)if(/**/flag==0/**/)break;第9套1、/**/max=min=a[0][0];/**/if(/**/a[i][j]>max/**/)/**/min=a[i][j];/**/2、intt=0,/**/s=0/**/,i;t=/**/t*10+i/**/;3、/**/return1;/**/return/**/fib(n-1)+fib(n-2)/**/;109n第10套1、/**/structstu/**/stu[3]={"Mary",76,"John",85,"Tom",81};total=total+/**/stu[i].score/**/;2、min2=a[0]>a[1]?/**/a[0]:a[1];/**//**/min2=a[i];/**/3、/**/doublemysqrt(double,double);/**/x1=/**/(x0+a/x0)/2;/**/y=mysqrt(/**/a,x1/**/);第11套1、#define/**/N20/**//**/flag=0;/**//**/m++;/**/2、/**/s=1;tem=1;/**//for(i=1;**/i<=m/**/;i++)3、aver=/**/sum/N;/**/return(/**/c/**/);cn=/**/count/**/(score);编程题答案第1套1.doublefun1(doublex){/**/doubley=0.0;y=(1+sin(x)+exp(x))/(1+x);returny;/**/}2.109nintfun2(inta[],intn,intb[],intc[]){/**/inti,len,j,k,temp;for(i=0,len=0;i-20)b[len++]=a[i];for(i=0;ic[j])k=j;if(k!=i){temp=c[i];c[i]=c[k];c[k]=temp;}}returnlen;/**/}第2套1.doublefun1(doublex){/**/doubley=0.0;y=(exp(x)+fabs(x-6))/(x+1.3);returny;/**/}2.voidfun2(chara[],charb[],charc[]){/**/chartemp[15];if(strcmp(a,b)>0){109nstrcpy(temp,a);strcpy(a,b);strcpy(b,temp);}if(strcmp(b,c)>0){strcpy(temp,b);strcpy(b,c);strcpy(c,temp);}if(strcmp(a,b)>0){strcpy(temp,a);strcpy(a,b);strcpy(b,temp);}/**/}第3套1.doublefun1(doublex){/**/doubley=0.0;if(x<3)y=1.2;elseif(x==3)y=10;elsey=2*x+1;returny;/**/}2.intfun(char*s){intn=0;while(*s){if(*s=='')n++;s++;}returnn;}109n第4套1.doublef(floatx){/**/doubley=0.0;if(x<=0)y=0;elsey=(fabs(x)+3.2)/(sin(x)+2);returny;/**/}2.doublefun(inta[],intm){/**/inti;a[0]=a[1]=1;for(i=2;i1600&&x<=2100)y=(x-1600)*0.05;elseif(x>2100&&x<=3100)y=(x-1600)*0.1-25;109nelsey=(x-1600)*0.15-125;returny;/**/}2.intfun(inta[][COL],introw,intb[]){/**/inti,j,k=0,sum=0;for(i=0;i0){b[k]=a[i][j];sum+=b[k];k++;}returnsum;/**/}第8套1.doublef(floatx){/**/doubley=0.0;if(x<=0)y=(x+2)*exp(x);elsey=(x+2)*log(2*x);returny;/**/}2.voidf(char**p,intn){/**/inti,j,k;char*temp;for(i=0;i0)k=j;109nif(k!=i){temp=p[i];p[i]=p[k];p[k]=temp;}}/**/}第9套1.doublef(floata,floatb,floatc){/**/doublex1,x2;x1=(-b+sqrt(b*b-4*a*c))/2*a;x2=(-b-sqrt(b*b-4*a*c))/2*a;returnx1>x2?x1:x2;/**/}2.intstrcmp1(constchar*str1,constchar*str2){/**/while((*str1)&&(*str2)&&(*str1++==*str2++));return*str1-*str2;/**/}第10套1.voidfun(doublea[],doublex,intn){/**/doubley=0.0;y=((2*n+1)*pow(x,n))/(n*(n+1));a[0]=y;a[1]=y-(int)(y);/**/}109n2.voidfun(inta[],intb[],intc[]){/**/inti=N-1,j=0,k=0;while(i>=0&&j=0){c[k]=a[i];k++;i--;}while(j1)return((2*n-1)*x-fun(x,n-1)-(n-1)*fun(x,n-2))/n;/**/2、intsearch(inta[]){/**/inti,max1,max2;max1=a[0]>a[1]?a[0]:a[1];109nmax2=a[0]max1){max2=max1;max1=a[i];}elseif(a[i]>max2)max2=a[i];}returnmax2;/**/}109

相关文档