历年计算机二级C试题整理_第1页
历年计算机二级C试题整理_第2页
历年计算机二级C试题整理_第3页
历年计算机二级C试题整理_第4页
历年计算机二级C试题整理_第5页
已阅读5页,还剩126页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

模拟试题(一).填空题请补充函数fun(),该函数的功能是:把从主函数中输入的字符串str2接在字符串str1的后面。例如:strl="Howdo”,str2=uyoudo?M,结果输出:Howdoyoudo?注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。试题程序:#include<stdio.h>#include<conio.h>#defineN40voidfun(char*strlzchar*str2){inti=0;char*pl=strl;char*p2=str2;while([1])i++;for(;[2];i++)*(pl+i)=_[3]_;*(pl+i)=,\0,;)main(){charstrl[N],str2[N];clrscr();printf(H*****Inputthestringstrl&str2*****\nH);printf(”\nstrl:H);gets(strl);printf("\nstr2:H);gets(str2);printf(n**Thestringstrl&str2**\n");puts(strl);puts(str2);fun(strlzstr2);printf(n*****Thenewstring*****\nn);puts(strl);答案及评析:[1]*(pl+i) [2]*p2 [3]*p2++【解析】填空1:变量i用来记录字符串strl的长度,当指针指到字符串strl结束标志符,0'时,while循环结束,变量i停止累加。填空2:指针p2指向字符串str2,通过for循环将字符串str2接在strl后面,循环结束的条件是指针p2所指的字符是字符串结束标志符,0'。填空3:指针P2最初指向字符串str2的首字符,通过自加1,使指针p2依次向后移动,指向str2的各个字符,实现将字符串str2接在strl后面的功能。2.改错题下列给定程序中,函数fun()的作用是:将字符串tt中的小写字母都改为对应的大写字母,其他字符不变。例如,若输入“edS,dAd",则输出"EDS,DAD”。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdio.h>#include<string.h>#include<conio.h>/★★★★★★★★★★★★★★★★★★★★★★found*★★★★★★★★★★★★★★★★★★★★★★/charfun(chartt[]){inti;for(i=0;tt[i];i++){I★★★★★★★★★★★★★★★★★★★★★★found*★★★★★★★★★★★★★★★★★★★★★★/if((tt[i]>=,A,)&&(tt[i]<=Z))tt[i]-=32;}return(tt);)main()(inti;chartt[81];clrscr();printf(n\nPleaseenterastring:n);gets(tt);printf(n\nTheresultstringis:\n%sn,fun(tt));}答案及评析:(1)错误:charfun(chartt[])正确:char*fun(chartt[])(2)错误:if((tt[i]>='A')&&(tt[i]<='Z'))正确:if((tt[i]>='a')&&(tt[i]<="z'))【解析】错误1:函数的返回值是字符串的首地址,是指针类型,所以在函数名前要加'*'号。错误2:题目要求将小写字母改为大写字母,所以if语句的判断条件是小写字母。3.编程题请编写函数fun(),该函数的功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从p到n”(p^n-1)的数组元素平移到数组的前面。例如,一维数组中而原始内容为1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,p的值为6。移动后,一维数组中的内容应为7,8,9,10,10,11,12,13,14,15,1,2,3,4,5,6。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include<stdio.h>#defineN80voidfun(int*w,intp,intn))main()(inta[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};inti,p,n=15;printf(HTheoriginaldata:\n°);for(i=0;i<n;i++)printf("%3d",a[i]);printf(H\n\nEnterp:H);scanf&p);fun(a,p,n);printf(H\nThedataaftermoving:\nH);for(i=0;i<n;i++)printf(n%3dn,a[i]);printf(H\n\nH);答案及评析:voidfun(int*w,intp,intn)inti,j,t;for(i=p;i<=n-l;i++) /*循环右移n-p次*/{t=w[n-1];for(j=n-2;j>=0;j—) /*实现循环右移*/w[j+1]=w[j];w[0]=t;))【解析】本题采用''循环右移”的算法。和我们在前面分析的稍有不同的是,一个是整型数组,一个是字符型数组。模拟试题(二).填空题请补充函数fun(),该函数的功能是求一维数组x[N]的平均值,并对所得结果进行四舍五入(保留两位小数)。例如:当x[10]={15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0},结果为:avg=l5.O3OOOOo注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。试题程序:#include<stdio.h>

#include<conio.h>doublefun(doublex[10])inti;longt;doubleavg=0.0;doublesum=0.0;for(i=0;i<10;i++)avg=sum/10;断尊;avg=(double)t/100;returnavg;main()7066119.0910116.051111OL511X.1

7066119.0910116.051111OL511X.1

%

VIa”>1-;JJr+f1o+Lf・,il)le・,6.“

ho^6nn<cn)•r\icL\Xa3.・,rf=ufL8icti.^tft1sn(^n=ntr.lrFlg工sn((nincl鞋prav答案及评析:[1]sum+=x[i] [2]avg*1000 [3](avg+5)/10【解析】填空1:通过for循环求出10个数的累加和,存于变量sum中。填空2:为了实现四舍五入保留两位小数的功能,应将平均值先扩大1000倍。填空3:将平均值加上5,再除以10,实现四舍五入的功能。.改错题下列给定程序中,函数fun()的功能是:先从键盘上输入一个3行3列的矩阵的各个元素的值,然后输出主对角线元素之积。请改正函数fun()中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdio.h>intfun()(inta[3][3],mul;inti,j;mul=l;for(i=0;i<3;i++)(/★★★★★★★★★★★★★★★★★★★★★★found*★★★★★★★★★★★★★★★★★★★★★★/for(i=0;j<3;j++)scanf&a[i][j]);)for(i=0;i<3;i++)/★★★★★★★★★★★★★★★★★★★★★★found**********************'*/mul=mul*a[i][j];printf(nMul=%d\nntmul);}main()fun();)答案及评析:(1)错误:for(i=O;j<3;j++)正确:for(j=O;j<3;j++)(2)错误:mul=mul*a[i]|j];正确:mul=mul*a[i][i];【解析】错误1:循环结构中,要给变量j赋初值0。错误2:主对角元素的行号和列号相等,所以参加乘法的是而不是a[i][j]o.编程题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun(),它的功能是:把分数最低的学生数据放在h所指的数组中。注意:分数低的学生可能不只一个,函数返回分数最低学生的人数。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include<stdio.h>#defineN16typedefstruct{charnum[10];ints;JSTREC;intfun(STREC*a,STREC*b)main(){STRECs[N]={{"GA005",82},{"GA003",75},{nGA002",85},{"GA004",78},{"GA001",95},{"GA007",62},{"GA008",60},{"GA006",85},{"GA015",83},{"GAO13",94},{"GA012",78},{"GA014",97},{"GA011",60},{"GA017",65},{"GA018",60},{"GA016",74}};STRECh[N];inti,n;FILE*out;n=fun(szh);printf(HThe%dlowestscore:\nnzn);for(i=0;i<n;i++)printf("%s%4d\n",h[i].num,h[i].s); /*输出最低分学生的学号和成绩*/printf(M\nH);out=fopen(Houtl9.datn,"w”);fprintf(out,n%d\nn,n);for(i=0;i<n;i++);fprintf(out,n%4d\nHzh[i].s);fclose(out);)答案及评析:intfun(STREC*azSTREC*b)(inti,j=Ozmin=a[0].s;for(i=0;i<N;i++)if(min>a[i].s)min=a[i].s; /*找出最小值*/for(i=0;i<N;i++)if(min==a[i].s)b[j++]=a[i];/*找出成绩与min相等的学生的记录,存入结构体b中*/returnj; /*位向最低成绩的学生人数*/)【解析】该程序使用循环嵌套,第1个for语句的作用是找出最小值。第2个循环的作用是找出与min相等的成绩,也即最低成绩的学生记录,并存入b中。模拟试题(三)1.填空题请补充函数fun(),该函数的功能是:从匕,到,z,统计一个字符串中所有字母字符各自出现的次数,结果保存在数组alf中。注意:不区分大小写,不能使用字符串库函数。例如,输入:“A=abc+5*c",结果为:a=2,b=l,c=2»注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。试题程序:#include<conio,h>#include<stdio.h>#defineN100voidfun(char*tt,intalf[])inti;char*p=tt;for^i=0;i<26;i++)while(*p)if &&*p<=*Z1)if(*p>=*a1&&*p<=,z1)

alf[*p-,a,]++;[3];})main()charstr[N];chara=,a*;intalf[26],k;clrscr();printf(H\nPleaseenteracharstring:n);scanf(”%s",str);printf(n\n**Theoriginalstring**\nn);puts(str);fun(str,alf);printf(n\n**Thenumberofletter**\nH);for(k=0;k<26;k++){if(k%5==0)printf(H\nH);printf(H%c=%dMza+kfalf[k]);}printf("Xn");)答案及评析:]alf[i]=0 [2]*p+=32 [3]p++【解析】填空1:数组alf[26]用来存放字母字符出现的次数,在使用之前需要清零。填空2:题目要求不区分大小写,所以可以先将所有的大写字母都转换为对应的小写字母,然后一并记录出现的次数。将大写字母转换为对应的小写字母,只需将ASCII码加上32就可以了。填空3:指针p指向字符串tt,通过p自加1来移动指针,访问字符串中的所有字符。改错题下列给定程序中函数fun()的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。例如,当s中的数为4576235时,t中的数为4725。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdio.h>♦include<conio.h>/★★★★★★★★★★★★★★★★★★★★★★found***********************/intfun(longs,long*t){longsl=10;*t=s%10;while(s>0)(/★★★★★★★★★★★★★★★★★★★★★★found*********/s=s%100;*t=s%10*sl+*t;sl=sl*10;)}main(){longs,t;clrscr();printf(n\nPleaseenters:");scanf(H%ldHz&s);fun(s,&t);printf(nTheresultis:%ld\nH,t);答案及评析:(1)错误:intfun(longs,long*t)正确:voidfun(longs,long*t)(2)错误:s=s%100;正确:s=s/100;【解析】错误1:函数由指针来完成参数的传递,所以没有返回值,应定义函数的类型为void。错误2:此处要注意特殊运算符号"%”-取余和7"-整除的区别。将一个数整除100则可得到由其百位数以上的数组成的新数字,将一个数整除100取余则可得到由十位数和个位数组成的新数。3.编程题请编写一个函数fun(),它的功能是:求出一个4XM整型二维数组中最小元素的值,并将此值返回调用函数。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#defineM4#include<stdio.h>fun(inta[][M]))main()(intarr[4][M]={11,3,9,35,42,-4,24,32,6,48,-32,7,23,34,12,-7};printf("min=%d\n",fun(arr));)答案及评析:fun(inta[][M]){inti,j,min=a[0][0];for(i=0;i<4;i++)for(j=0;j<M;j++)if(min>a[i][j])min=a[i][j]; /夫求出二维数组的最小值★/returnmin;}【解析】此类求最大值或最小值的C语言问题,我们可以采用逐个比较的方式。要求数组中的所有元素走动一遍,并从中找出最大、最小值,要注意一开始应使min存放数组中的第一个元素的值。可按逐行查找也可按逐列查找的方式,本题采用的是逐行查找的方式。即行下标在外层循环,列下标在内层循环,因为在循环的嵌套中越在内层循环,循环变化就越快。模拟试题(四).填空题请补充函数fun(),该函数的功能是:分类统计一个字符串中元音字母和其他字符的个数(不区分大小写)。例如,输入aeiouAOUpqrt,结果为A:2E:11:10:2U:2other:4o注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:#include<stdio.h>#include<conio.h>♦defineN100voidfun(char*strrintbb[])(char*p=str;inti=0;for^ijO;i<6;i++)while(*p)(switch(*p){case!A*:caseTa*:bb[0]++;break;caseTE*:caseTe*:bb[1]++;break;caseTI*:case'i':bb[2]++;br㊀ak;caseT01:case。:bb[3]break;caseU:case*u*:bb[4]++;break;default:[2];}main()charstr[N],ss[6]=nAEIOUM;inti;intbb[6];clrscr();printf(nInputastring:\nn);gets(str);printf(Hthestringis:\nn);puts(str);fun(strrbb);for(i=0;i<5;i++)printf(,,\n%c:%d,\ss[i]zbb[i]);printf(n\nother:%dn,bb[i]);答案及评析:[11bb[i]=O [2]bb[5]++ [3]p++;【解析】填空1:数组bb[6]用来存放5个元音字母和其他字符的个数,在使用之前需要清零。填空2:数组元素bb[5]用来存放其他字符的个数,当指针p所指的字符不是元音字母时,则认为是其他字符,bb[5]加1。填空3:指针p指向字符串str,通过P自加1来移动指针,访问字符串中的所有字符。.改错题下列给定的程序中,函数fun()的功能是:计算并输出k以内最大的6个能被7或11整除的自然数之和。K的值由主函数传入,若k的值为500,则函数的值为2925-请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdio.h>#include<conio.h>intfun(intk)(intm=0zmc=0,j;//while(k>=2)&&(mc<6)(/★★★★★★★★★★★★★★★★★★★★★★found*★★★★★★★★★★★★★★★★★★★★★★/if((k%7=0)||(k%ll=0))(I★★★★★★★★★★★★★★★★★★★★★★found*★★★★★★★★★★★★★★★★★★★★★★/m=k;mc++;}k--;}returnm;)main()(clrscr();printf("%d\n",fun(500));)答案及评析:(1)错误:while(k>=2)&&(mc<6)正确:while((k>=2)&&(mc<6))(2)错误:if((k%7=0)||(k%ll=0))正确:if((k%7==0)||(k%ll==0))(3)错误:m=k;正确:m=m+k;【解析】错误1:C语言规定while语句后的表达式两侧必须要有圆括号。错误2:if语句的判断条件应用关系运算符,而不是赋值运算符。错误3:根据题意,将满足条件的数求累加和。3.编程题请编写一个函数fun(),它的功能是:将ss所指字符串中所有下标为偶数位置的字母转换为小写(若该位置上不是字母,则不转换)。例如,若输入ABC4efG,则应输出aBc4efg。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>#include<string.h>voidfun(char*ss)}main(){chartt[81];clrscr();printf(H\nPleaseenteranstringwithin80characters:\nH);gets(tt);printf(H\n\nAfterchanging,thestring\n\%sHztt);fun(tt);printf(M\nbecomes\n\%s\nn,tt);}答案及评析:voidfun(char*ss)(inti;for(i=0;ss[i]!=,\0*;i++) /★将ss所指字符串中所有下标为偶数位置的字母转换为小写夫/if(i%2==0&&ss[i]>='A'&&ss[i]<=,Z,)ss[i]=ss[i]+32;)【解析】从C语言的学习中我们知道,只要将小写字母减去32则转成大写字母,将大写字母加上32则转成小写字母。该程序是用if语句实现该功能转化的。模拟试题(五)1.填空题str是全部由小写字母字符和空格字符组成的字符串,由num传入字符串的长度。请补充函数fun(),该函数的功能是:统计字符串str中的单词个数,结果由变量num传回。每个单词之间都由空格隔开,并且字符串str开始不存在空格。例如:str=uhowdoyoudoM,结果为:num=4o注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:#include<stdio.h>#defineN80voidfun(char*szint*num){inti,n=0jfor(i=0;ill;i++)(if(s[i]>=,a,&&s[i]<=,z,&&(s[i+l]==,fI|slvFl]=,\01))}[3];}—main(){charstr[N];intnum=0;printf(nEnterastring:\nH);gets(str);while(str[num])num++;fun(str,&num);printf(nThenumberofwordis:%d\n\nHznum);答案及评析:[1]i<*num [2]n++ [3]*num=n【解析】填空1:*num传入字符串的长度,所以for循环中变量i的变化范围是从0至U*numT。填空2:如果当前判断的字符是小写字母,并且它的下一个字符是空格或者是字符串结束标记符,则表示当前字符是一个单词的最后一个字母,统计单词数的变量n要加上1。填空3:题目要求结果由变量num传回,所以要将n的值赋给指针num所指的单元。2.改错题下列给定程序中,fun()函数的功能是:根据形参m,计算下列公式的值。t=l-1/2+1/3-1/44 F(-1)(m+l,/m例如,若输入5,则应输出0.783333。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<conio.h>#include<stdio.h>1★★★★★★★★★★★★★★★★★★★★★★found***********************/intfun(intm)doublet=l.0,j=l.0;inti;/★★★★★★★★★★★★★★★★★★★★★★found*★★★★★★★★★★★★★★★★★★★★★★/for(i=l;i<m;i++){j=-l*j;t+=j/i;}returnt;)main()(intm;clrscr();printf(H\nPleaseenter1integernumber:H);scanf(H%dn,&m);printf(n\nTheresultis%lf\n”,fun(m));)答案及评析:(1)错误:intfun(intm)正确:doublefun(intm)(2)错误:for(i=l;i<m;i++)正确:for(i=2;i<=m;i++)【解析】错误:函数的返回值为实型数,所以应定义为double类型。错误2:根据题目的公式,参加运算的数应从2到m,包括m。3.编程题请编写函数fun(),它的功能是:求出1到1000之内能被5或13整除、但不能同时被5和13整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>voidfun(int*azint*n))main(){intaa[1000],n,k;clrscr();fun(aa/&n);for(k=0;k<n;k++)if((k+l)%10==0)printf(n%5dHzaa[k]);printf("\n"); /*一行写10个数*/}

elseprintf("%5dH,aa[k]);)答案及评析:voidfun(int*a,int*n){inti,j=0;for(i=l;i<=1000;i++) /*求1到1000之内能被5或13整除、但不能同时被5和13整除的所有整数,并放入数组a中*/if((i%5==0||i%13==0)&&i%65!=0)a[j++]=i;}*n=j; /*传回满足条件的数的个数*/【解析】注意本题题目是找出能被5或13整除但不能同时被5和13整除的所有整数。能同时被5和13整除的整数一定能被65整除,且不能被65整除的数不一定就是能被5或13整除的数。所以可得出程序中的if()。按运算优先级可知(i%5==0||i%13==0),注意,两边必须要有小括号。模拟试题(六).填空题str是一个由数字和字母字符组成的字符串,由变量num传入字符串长度。请补充函数fun(),该函数的功能是:把字符串str中的数字字符转换成数字并存放到整型数组bb中,函数返回数组bb的长度。例如:str="Bcdl23e456hui890”,结果为:123456890。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:#include<stdio.h>#defineN80intbb[N];intfun(chars[],intbb[],intnum){intizn=0;for(i=0;i<num;i++){if([Il){,,bb[n]=[2];n++;}return[3];)main()charstr[N];intnum=Oznzi;printf(HEnterastring:\nH);gets(str);while(str[num])num++;n=fun(str,bb,num);printf(n\nbb=");for(i=0;i<n;i++)printf(”%d”,bb[i]);)答案及评析:(1]s[i]>=O&&s[i]<=9 [2]s[i]-U[3]n【解析】填空1:如果当前字符的ASCII码大于字符。的ASCII码,而小于字符9的ASCII码,则说明当前字符是数字字符。填空2:将数字字符转换为数字的方法是,用当前数字字符的ASCII码减去字符。的ASCII码。填空3:题目要求函数返回数组bb的长度,而变量n记录了数字字符的个数,也就是数组bb的长度,所以函数应该返回no.改错题下列给定程序中,函数fun()的功能是:从n个学生的成绩中统计出高于平均分的学生人数,人数由函数值返回,平均分存放在形参aver所指的存储单元中。例如输入8名学生的成绩:8565.56995.5875562.575则高于平均分的学生人数为4(平均分为74.312500)。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdio.h>#include<conio.h>#defineN20intfun(float*szintn,float*aver){intave,t=0;intcount=0zk,i;for(k=0;k<n;k++)t+=s[k];ave=t/n;for(i=0;i<n;i++)if(s[i]<ave)count++;/★★★★★★★★★★★★★★★★★★★★★★found★★★★★★★★★★★★★★★★★★★★★★★Iaver=ave;returncount;main()floats[30]zaver;intm,i;clrscr();printf(n\nPleaseenterm:H;scanf(H%dH,&m);printf(H\nPleaseenter%dmark:\nH,m);for(i=0;i<m;i++)scanf(n%fnzs+i);printf(H\nThenumberofstudents:%d\nH,fun(s,m,&aver));printf(nAve=%f\nH,aver);}答案及评析:(1)错误:intave,t=0;正确:floatave,t=0.0;(2)错误:if(s[i]<ave)正确:if(s[i]>ave)3)错误:aver=ave;正确:*aver=ave;【解析】错误1:ave和t分别用来存放成绩的平均值和总分,应为实型数。错误2:根据题意,找出高于平均分的数,所以此处的关系运算符应为〃>〃错误3:aver是指针,而ave是一个数,不能将一个数赋值给一个指针,而要用符号3.编程题请编写一个函数fun(),它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较短的字符串。若两个字符串长度相等,则返回第1个字符串。例如,Ananjing<CR>nanchang<CR>(<CR>为回车键),函数将返回nanjingo注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include<stdio.h>char*fun(char*szchar*t)main(){chara[20]zb[10],*pz*q;inti;printf(HInput1thstring:");gets(a);printf(HInput2thstring:");gets(b);printf(n%sH,fun(a,b));}答案及评析:char*fun(char*s,char*t)inti,j;for(i=0;s[i]!=>\0';i++); /*求字符串的长度*/for(j=0;t[j]!='\0';j++);if(i<=j) /*比较两个字代串的长度*/returns; /*函数迨向较痘的字符串,若两个字符串长度相等,则返回第1个字符串*/elsereturnt;)【解析】本题中,第1个for循环的作用是求出s的字符个数i,第2个for循环的作用是求出t的字符个数j,因为任何循环都要控制一条语句,所以在每一个for循环条件后面必须要有一个分号。本题也可用如下技巧:#include<string.h> /*一定要注意在最前面加#include<string.h>*/char*fun(char*szchar*t){if(strlen(s)>=strlen(t)returns;elsereturnt;}模拟试题(七).填空题从键盘输入一组无符号整数并保存在数组xx[N]中,以整数0结束输入,要求这些数的最大位数不超过4位,其元素的个数通过变量num传入函数请补充函数fun(),该函数的功能是:从数组xx中找出个位和十位的数字之和大于5的所有无符号整数,结果保存在数组yy中,其个数由函数fun()返回。例如:当xx[8]={123,11,25,222,42,333,14,5451}时,bb[4]={25,42,333,5451}o注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。试题程序:#include<stdio.h>#defineN1000intfun(intxx[],intbb[],intnum){intizn=0;intg,s;for(i=0;i<num;i++){.q=[1];s=xx[i]/10%10;if((g+s)>5)[2];)return[3];}main(){intxx[N];intyy[N];intnum=O,n=0ri=0;printf(HInputnumber:\nH);do(scanf(n%uH,&xx[num]);}while(xx[num++]!=0);n=fun(xx,yyznum);printf(H\nyy=n);for(i=0;i<n;i++)printf(n%uyy[i]);)答案及评析:1]xx[i]%10 [2]bb[n++]=xx[i] [3]n【解析】填空1:将一个整数对10取余,则得到这个整数的个位数,将一个整数除以10再对10取余,则得到这个整数的十位数。由程序可以看出,变量s保存了整数的十位数,所以应该将整数的个位数保存于变量g中。填空2:当整数的个位与十位的数字之和大于5时,则将这个整数存于数组bb中,同时,变量n记录了满足条件的无符号整数的个数。填空3:题目要求满足条件的无符号整数的个数由fun函数返回,所以函数返回n。.改错题下列给定程序中,函数fun()的功能是:在字符串str中找出ASCII码值最小的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。例如,调用fun()函数之前给字符串输入fagAgBDh,调用后字符串中的内容为AfaggBDh。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdio.h>/★★★★★★★★★★★★★★★★★★★★★★found★★★★★★★★★★★★★★★★★★★★★★★/voidfun(charp)(charmin,*q;inti=0;min=p[i];while(p[i]!=0){if(min>p[i])(I★★★★★★★★★★★★★★★★★★★★★★found★★★★★★★★★★★★★★★★★★★★★★★P=q+i;min=p[i];)i++;}while(q>p){*q=*(q-1);q——;}p[0]=min;)main()(charstr[80];printf(HEnterastring:H;gets(str);printf(H\nTheoriginalstring:");puts(str);fun(str);printf(H\nThestringaftermoving:puts(str);printf(n\n\nH);)答案及评析:(1)错误:voidfun(charp)正确:voidfun(char*p)(2)错误:p=q+i;正确:q=p+i;【解析】错误:由于本题中函数的功能是对字符串进行处理,而不是对单个字符进行处理,因此,函数的参数应为字符串指针。错误2:使指针q指向ASCII码最小的字符本题解答需要3个步骤:(1)找到字符串中ASCII码值最小的字符,并保存。(2)将该字符复制,并将该字符前面的字符串顺次后移。(3)将ASCII码值最小的字符赋给字符串的第1个字符。找到ASCII码值最小的字符可以通过定义一个字符min,该字符初始时等于字符串的第1个字符,若字符串的下一个字符小于min,则将下一个字符赋给min,如此循环到字符尾,即可得到ASCH码值最小的字符,同时令指针q指向最小字符。之后对最小字符前面的子串顺次后移,可采用while语句实现。此题需要熟练掌握和灵活应用C语言的字符与整型变量的关系以及字符串操作。.编程题N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun(),它的功能是:找出学生的最低分,由函数值返回。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include<stdio.h>#include<stdlib.h>#defineN8structslist{doubles;structslist*next;};typedefstructslistSTREC;doublefun(STREC*h))STREC★creat(double*s)(STREC*hz*p,*q;inti=0;h=p=(STREC*)malloc(sizeof(STREC));p->s=0;while(i<N) /*产生8个节点的链表,各分数存入链表中★/{q=(STREC*)malloc(sizeof(STREC));p->s=s[i];i++;p->next=q;p=q;)p->next=NULL;returnh; /*返回链表的首地址*/)outlist(STREC*h){STREC*p;p=h;printf(Hheadn);do{printf(H->%2.Of”,p->s);p=p->next;} /*输出各分数//while(p!=NULL);printf(H\n\n");}main(){doubles[N]={56,89,76,95,91,68,75,85},min;STREC*h;h=creat(s);outlist(h);min=fun(h);printf(Hmin=%6.If\n”,min);答案及评析:doublefun(STREC*h){doublemin=h->s;while(h!=NULL) /*通过循环找到最低分数*/{if(min>h->s)min=h->s;h=h->next;}returnmin;}【解析】在本题中,h为一个指向结构体的指针变量,若要引用它所指向的结构体中的某一成员时,要用指向运算符〃由于是链表,所以要使h逐一往后移动,使用的是h=h->next。模拟试题(八)1.填空题请补充函数fun(),该函数的功能是判断一个数的个位数字和百位数字之和是否等于其十位上的数字,是则返回“yes!”,否则返回“no!”。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:♦include<stdio.h>♦include<conio.h>char*fun(intn){intg,szb;g=n%10;s=n/10%10;b=[1];if((g+b)==s)returnL2J;elsereturn[3];)main()(intnum=0;clrscrOrprintf(H******Inputdata*******\nn);scanf("%d”,&num);printf(H\n\n\nn);printf(H******Theresult*******\nn);printf("\n\n\n%s”,fun(num));答案及评析:[1]n/100%10 【2】"yes!" [3】"no!"【解析】填空1:由程序可以知道,变量g保存了整数的个位数,变量s保存了整数的十位数,所以变量b应该保存整数的百位数。将整数除以100再对10取余,则得到这个整数的百位数。填空2:当个位数字和百位数字之和等于十位数字时,则返回"yes!"。填空3:当个位数字和百位数字之和不等于十位数字时,则返回"no!"。2.改错题下列给定的程序中,函数fun()的功能是:用选择法对数组中的n个元素按从大到小的顺序进行排序。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdio.h>#defineN20voidfun(inta[],intn)(inti,j,t,p;I★★★★★★★★★★★★★★★★★★★★★★found★★★★★★★★★★★★★★★★★★★★★★★/for(j=0;j<n-l;j++);(P=j;for(i=j;i<n;i++)if(a[i]>a[p])p=i;t=a[p];a[p]=a[j];a[p]=t;})main()(inta[N]={11,32,-5,2,14},i,m=5;printf("排序前的数据:”);for(i=0;i<m;i++)printf("%d",a[i]);printf("\n");fun(a,m);printf("排序后的顺序:");for(i=0;i<m;i++)printf(”%dH,a[i]);printf("\n");}答案及评析:(1)错误:for(j=0;j<n-l;j++);正确:for(j=0;j<n-l;j++)(2)错误:a[p]=t;正确:a[j]=t;【解析】错误1:根据C语言语法,for循环中循环条件后不加分号,除非做空操作。错误2:将两数进行交换的常用语句,借助第三个变量。3.编程题下列程序定义了NXN的二维数组,并在主函数中赋值。请编写函数fun(),函数的功能是:求出数组周边元素的平方和并作为函数值返回给主函数中的s。例如:若a数组中的值为a=01 2 791121552161117 91024 14 1则返回主程序后s的值应为310。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>#defineN5intfun(intw[][N]))main()(inta[N][N]={0,1,2,7,9,1,11,21,5,5,2,21,6,11,1,9,7,9,10,2,5,4,1,4,1);inti,j;ints;clrscr();printf(“★★★★★Thearray*****\n");for(i=0;i<N;i++){for(j=0;j<N;j++){printf(n%4dnra[i][j]);}printf(H\nH;)s=fun(a);printf(H*****THERESULT*****\nn);printf(nThesumis:%d\n”,s);}答案及评析:intfun(intw[][N])inti,j,k=0;ints=0;for(i=0;i<N;i++)for(j=0;j<N;j++)if(i==0||i==N-l||j==0||j==N-l) /*只要卜标中有一个为0或N-l,则它一比是周边元素*/{s=s+w[i][j]*w[i][j]; ' /*将周边元素求平方和*/} returns; /*返回周边兀素的平方和*/【解析】该题采用逐一判断的方式,周边元素的下标一定有一个是。或N-1,且只要下标中有一个为。或N-1,则它一定是周边元素。模拟试题(九).填空题请补充main函数,该函数的功能是:从一个字符串中截取前面若干个给定长度的子字符串。其中,strl指向原字符串,截取后的字符存放在str2所指的字符数组中,n中存放需截取的字符个数。例如:当strl="cdefghi了然后输入4,则str2="cdef'。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:#include<stdio.h>#include<conio.h>#defineLEN80main()charstrl[LEN],str2[LEN];intn,i;clrscr();printf(HEnterthestring:\nH);gets(strl);printf(HEnterthepositionofthestringdeleted:");scanf([1]);for^i=0;i<n;i++)str2[i]=*\01;printf(HThenewstringis:%s\nn,[3]);)答案及评析:【1】〃%d”,&n [2]str2[i]=strl[i]; [3]str2【解析】填空1:本题考查对标准输入函数scanf()的调用格式,由后面的程序可以知道,变量n保存了要截取的字符数,注意在n前面不要忘了取址符'&'。填空2:截取前n个字符,就是将字符串strl的前n个字符依次赋给字符串str2的前n个字符。填空3:本题考查对标准输出函数printf()的调用格式,根据题意,应输出截取后的字符串,即字符串str2。.改错题下列给定程序中,函数fun()的功能是:依次取出字符串中所有的字母,形成新的字符串,并取代原字符串。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdio.h>#include<conio.h>voidfun(char*s){intirj;for(i=0rj=0;s[i]!=*\01;i++)/★★★★★★★★★★★★★★★★★★★★★★found*★★★★★★★★★★★★★★★★★★★★★★/if{(s[i]>='A,&&s[i]<=*Z*)&&(s[i]>='a'&&s[i]<='z,))s[j++]=s[i];I★★★★★★★★★★★★★★★★★★★★★★found★★★★★★★★★★★★★★★★★★★★★★★Is[j]=n\0n;)main(){charitem[80];clrscr();printf(n\nEnterastring:n);gets(item);printf(n\n\nThestringis:\%s\nn,item);fun(item);printf(H\n\nThestringofchangingis:\%s\nM,item);}答案及评析:(1)错误:if((s[i]>='A'&&s[i]<='Z')&&(s[i]>='a'&&s[i]<='z'))正确:if((s[i]>='A'&&s[i]<='Z')||(s[i]>='a'&&s[i]<='z'))(2)错误:s[j]="\0";正确:s[j]=>\O';【解析】错误1:字母包括小写字母和大写字母,这里是"或"的关系,所以用”『运算符。错误2:字符串的结束标志符为字符,而不是字符串。.编程题下列程序定义了NXN的二维数组,并在主函数中自动赋值。请编写函数fun(inta[][N]),该函数的功能是:使数组右上半三角元素中的值全部置成0。例如a数组中的值为a=456179326,则返回主程序后a数组中的值应为0000020注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>#include<stdlib.h>#defineN5intfun(inta[][N]))main()(inta[N][N],i,j;clrscr();printf("★★★★★Thearray*****\nn);for(i=0;i<N;i++) /*产生一个随机的5*5矩阵*/{for(j=0;j<N;j++){a[i][j]=rand()%10;printf("%4d",a[i][j]);)printf(n\nn);}fun(a);printf(nTHERESULT\nH);for(i=0;i<N;i++){for(j=0;j<N;j++)printf(H%4dn,a[i][j]);printf(n\n");})答案及评析:intfun(inta[][N])(intizj;for(i=0;i<N;i++)for(j=i;j<N;j++)a[i][j]=0; /*将数组右上半三角元素中的值全部置成0*/)【解析】本题旨在考查控制数组中右上半三角元素的算法,也就是两个千篇一律的循环语句,希望学习者能够掌握消化。模拟试题(十).填空题请补充main函数,该函数的功能是:从键盘输入一个字符串并保存在字符strl中,把字符串strl中下标为偶数的字符保存在字符串str2中并输出。例如,当strl="cdefghij”,则str2="cegi”。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:#include<stdio.h>#include<conio.h>#defineLEN80main()charstrl[LEN],str2[LEN];char*pl=strl,*p2=str2;inti=0,j=0;clrscr();printf("Enterthestring:\nn);scanf([1]);printf(H***theorigialstring***\n**);while(*(pl+j))printf(H[2]H,*(pl+j));j++;)for(i=0;i<j;i+=2)*p2++=*(strl+i);*p2=,\0,;printf(H\nThenewstringis:%s\nHz[3]);}答案及评析:]"%s〃,strl [2]%c [3]str2【解析】填空1:本题考查对标准输入函数scanf()的调用格式,当输入字符串时,格式控制字符串为"%s",题目要求输入的字符串保存在strl中,所以地址表列应为字符串的首地址,即为strl。填空2:本题考查对标准输出函数printf。的调用格式,当输出为字符型变量时,格式控制字符串为"%c"。填空3:题目要求将strl中下标为偶数的字符保存在字符串str2中并输出,所以printf。函数的输出表列是str2改错题在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。下列给定程序中,函数fun。的功能是计算数组元素中值为负数的平均值(不包括0)。例如:数组中元素的值依次为43,-47,-21,53,-8,12,0,则程序的运行结果为-25.333333。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<conio.h>#include<stdio.h>doublefun(intx[]){doublesum=0.0;intc=0,i=0;while(x[i]==0)(if(x[i]<0)(sum=sum+x[i];C++;}i++;}I★★★★★★★★★★★★★★★★★★★★★★found***********************/sum=sum\c;returnsum;}main()(intx[1000];inti=0;clrscr();printf(n\nPleaseentersomedata(endwith0):n);do{scanf(H%dH,&x[i]);}while(x[i++]!=0);printf(n%f\nH,fun(x));}答案及评析:(1)错误:while(x[i]==0)正确:while(x[i]!=0)2)错误:sum=sum\c;正确:sum=sum/c;【解析】错误1:此处考查的是对循环条件的理解,当被判断的数组元素为0时,说明这是数组的最后一个元素,此时要跳出循环。错误2:C语言中的除法运算符是7",而不是.编程题请编写一个函数intfun(int*s,intt,int*k),用来求出数组的最小元素在数组中的下标并存放在k所指的存储单元中。例如,输入如下整数:234345753134436458100321135760则输出结果为6,100。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:♦include<conio.h>♦include<stdio.h>intfun(int*s,intt,int*k)main(){inta[10]={234,345,753,134,436,458,100,321,135,760},k;clrscr();fun(a,10,&k);printf(n%d,%d\n",k,a[k]);答案及评析:fun(int*s,intt,mt*k)mti;*k=0; /*k所指的数是数组的下标值*/for(i=0;i<t;i++)if(s[*k]>s[i])*k=i; /*找到数组的最小元素,把该元素的下标赋给k所指的数*/returns[*k]; /*返回数组的最小元素*/)【解析】本题中直接使用指针变量k,但在使用时要注意对k的指针运算,此外,一开始应让*k的值为数组中的某一下标值,即*k=0。2009年上半年全国计算机等级考试二级C语言笔试试题及答案一、选择题(每题2分,共计70分)(1)下列叙述中正确的是A)栈是先进先出的线性表B)队列是“先进后出"的线性表C)循环队列是非线性结构D)有序线性表即可以采用顺序存储结构,也可以采用链式存储结构(2)支持子程序调用的数据结构是A)栈B)树C)队列D)二叉树(3)某二叉树有5个读为2的结点,则该二叉树中的叶子结点数是A)10B)8C)6D)4(4)下列排序方法中,最坏情况下比较次数最少的是A)冒泡排序B)简单选择排序C)直接插入排序D)堆排序(5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下列属于应用软件的是A)编译程序B)操作系统C)教务管理系统D)汇编程序(6)下面叙述中错误的是A)软件测试的目的是发现错误并改正错误B)对被调试程序进行"错误定位"是程序调试的必要步骤C)程序调试也成为DebugD)软件测试应严格执行测试计划,排除测试的随意性(7)耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是A)提高耦合性降低内聚性有利于提高模块的独立性B)降低耦合性提高内聚性有利于提高模块的独立性C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度D)内聚性是指模块间互相连接的紧密程度(8)数据库应用系统中的核心问题是A)数据库设计B)数据库系统设计C)数据库维护D)数据库管理员培训(9)有两个关系R,S如下:由关系R通过运算得到关系S,则所使用的运算为A)选择B)投影C)插入D)连接(10)将E-R图转换为关系模式时,实体和联系都可以表示为A)属性B)键C)关系D)域(11)一下选项中合法的标识符是A)1.1B)1-1C),11D)1__(12)若函数中有定义语句:intk;,则A)系统将自动给k赋初值0B)这是k中的值无定义C)系统将自动给k赋初值-1D)这时k中无任何值(13)一下选项中,能用作数据常量的是A)o115B)0118C)1.5e1.5D)115L(14)设有定义:intx=2;,一下表达式中,值不为6的是A)x*=x+1B)X++,2*xC)x*=(1+x)D)2*x,x+=2(15)程序段:intx=12;doubley=3.141593;printf("%d%8.6f',x,y);的输出结果是A)123.141593B)123.1415930)12,3.141593D)123.1415930(16)若有定义语句:doublex,y,*px,*py;执行了px=&x;py=&y;之后,正确的输入语句是A)scanf("%f%f",x,y);B)scanf("%f%f"&x,&y);C)scanf("%lf%le",px,py);D)scanf("%lf%lf",x,y);(17)一下是if语句的基本形式:讦(表达式)语句其中"表达式"A)必须是逻辑表达式B)必须是关系表达式C)必须是逻辑表达式或关系表达式D)可以是任意合法的表达式(18)有以下程序#include<stdio.h>main(){intx;scanf("%d",&x);if(x<=3);elseif(x!=10)printf("%d\n",x);)程序运行时,输入的值在哪个范围才会有输出结果A)不等于10的整数B)大于3且不等于10的整数C)大于3或等于10的整数D)小于3的整数(19)有以下程序#include<stdio.h>main(){inta=1,b=2,c=3,d=0;if(a==1&&b++==2)if(b!=2||c-!=3)printf("%d,%d,%d\rT,a,b,c);elseprintf("%d,%d,%d\n,1,a,b,c);elseprintf("%d,%d,%d\n”,a,b,c);)程序运行后输出结果是A)1,2,3B)1,3,2C)1,3,3D)3,2,1(20)一下程序段中的变量已正确定义for(i=0;i<4;i++,j++)for(k=1;k<3;k++);printf("*");程序段的输出结果是A)*m*C)**D)*(21)有以下程序#include<stdio.h>main(){char*s={"ABC"};do{printf("%d",*s%10);s++;)while(*s);)注意:字母A的ASCII码值为65。程序运行后的输出结果是A)5670B)656667C)567D)ABC(22)设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是A)n=O;while((ch=getchar())!=~\n~)n++;B)n=O;while(getchar()!=~\n~)n++;C)for(n=0;getchar()!=~\n~;n++);D)n=0;for(ch=getchar();ch!=~\n~;n++);(23)有以下程序#include<stdio.h>main(){inta1,a2;charc1,c2;scant(',%d%c%d%cM,&a1,&c1,&a2,&c2);printf("%d,%c,%d,%c”,a1,c1,a2,c2);}若通过键盘输入,使得a1的值为12,a2的值为34,c1的值为字符a,c2的值为字符b,程序输出结果是:12,a,34,b则正确的输入格式是(以下_代表空格,vCR>代表回车)A)12a34b<CR>B)12_a_34_b<CR>C)12,a,34,b<CR>D)12_a34_b<CR>(24)有以下程序#include<stdio.h>intf(intx,inty){return((y-x)*x);}main(){inta=3,b=4,c=5,d;d=f(f(a,b),f(a,c));printf("%d\n",d);)程序运行后的输出结果是A)10B)9C)8D)7(25)有以下程序#include<stdio.h>voidfun(char*s){while(*s){if(*s%2==0)printf("%cn,*s);s++;}}main(){chara[]={',good,,);fun(a);printf("\nM);)注意:字母a的ASCII码值为97,程序运行后的输出结果是A)dB)goC)godD)good(26)有以下程序#include<stdio.h>voidfun(int*a,int*b){int*c;c=a;a=b;b=c;}main(){intx=3,y=5,*p=&x,*q=&y;fun(p,q);printf("%d,%d,",*p,*q);fun(&x,&y);printf("%d,%d\n",*p,*q);)程序运行后输出的结果是A)3,5,5,3B)3,5,3,5C)5,3,3,5D)5,3,5,3(27)有以下程序#include<stdio.h>voidf(int*p,int*q);main(){intm=1,n=2,*r=&m;f(r,&n);printf("%d,%d",m,n);)voidf(int*p,int*q){p=p+1;*q=*q+1;}程序运行后的输出结果是A)1,3B)2,3C)1,4D)1,2(28)以下函数按每行8个输出数组中的数据#include<stdio.h>voidfun(int*w,intn){inti;for(i=0;i<n;i++)printf("%d",w[i]);}printf("\n");)下划线出应填入的语句是A)if(i/8==0)printf("\n");B)if(i/8==0)continue;C)if(i%8==0)printf("\n");D)if(i%8==0)continue;(29)若有以下定义intx[10],*pt=x;则对数组元素的正确引用是A)*&x[10]B)*(x+3)C)*(pt+1O)D)pt+3(30)设有定义:chars[81];inti=0;,以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是A)gets(s);B)while((s[i++]=getchar())!=~\n~);s[i]=~\O~;C)scanfC'%sH,s);D)do{scanf("%c”,&s[i]);}while(s[i++]!=~\n~);s[i]=~\0~;(31)有以下程序#include<stdio.h>main(){char*aO={wabcdM,MefM,wghM,HijkM};inti;for(i=0;i<4;i++)printf("%c,,,*a[i]);}程序运行后的输出结果是A)aegiB)dfhkC)dfhkD)abcdefghijk(32)以下选项中正确的语句组是A)chars[];s="BOOK!”;B)char*s;s={MBOOKIM};C)chars[10];s='BOOKr;D)char*s;s='B00K!";(33)有以下程序#include<stdio.h>intfun(intx,inty){if(x==y)return(x);elseretum((x+y)/2);}main(){inta=4,b=5,c=6;printf(M%d\nn,fun(2*a,fun(b,c)));}程序运行后的输出结果是A)3B)6C)8D)12(34)设函数中有整型变量n,为保证其在未赋初值的情况下初值为0,应该选择的存储类别是A)autoB)registerC)staticD)auto或register(35)有以下程序#include<stdio.h>intb=2;intfun(int*k){b=*k+b;return(b);}main(){inta[10]={1,2,3,4,5,6,7,8},i;for(i=2;i<4;i++){b=fun(&a[i])+b;printf(M%dM,b);}printf(,,\n^,);}程序运行后的输出结果是A)1012B)810C)1028D)1016(36)有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论