福建省计算机等级考试(二级C语言)模拟题(第5套)一、选择题(20题,每题2分,共计40分)1、C语言的函数体由()括起来A.()B.{}C.[]D./**/2、C语言中,复合语句的构成是将一系列语句置于()A.begin与end之间B.一对圆括号“()”之间C.一对花括号“{}”之间D.一对方括号“[]”之间3、以下()是正确的常量A.E-5B.1E5.1C.‘a12’D.32766L4、语句x=(a=3,b=++a);运行后,x、a、b的值依次为()A.3,3,4B.4,4,3C.4,4,4D.3,4,35、语句a=(3/4)+3%2;运行后,a的值为()A.0B.1C.2D.36、以下程序的运行结果是()voidmain(){intn=’c’;switch(n++){defalut:printf(“error”);case‘a’:case‘b’:printf(“good”);break;case‘c’:printf(“pass”);case‘d’:printf(“warn”);}}A.passB.warnC.passwarnD.error7、在c语言中while循环和do-while循环的主要区别是()A.do-while循环体内可以使用break语句,while循环体内不能使用break语句B.do-while的循环体至少无条件执行一次,while的循环体不是C.do-while循环体可以使用continue语句,while循环体内不能使用continue语句D.while的循环体至少无条件执行一次,do-while的循环体不是8、以下合法的数组定义是()A.inta[]=“string”;B.inta[5]={0,1,2,3,4,5};C.chara[]={0,1,2,3,4,5};D.chars={“string”};9、一下程序段的运行结果是()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.567310、在循环语句的循环体中,break语句的作用是()A.暂停程序的运行B.结束本次循环C.继续执行break语句之后的循环体各语句11、若有定义:inti,j;则表达式(i=2,j=5,i++,i+j++)的值是()A.7B.8C.9D.1012、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是()A.float型B.long型C.int型D.double型13、下面程序的输出结果是:()#includeintglobal=100;fun(){intglobal=5;return++global;}voidmain(){printf("%d\n",fun());}A.100B.101C.5D.614、设有以下语句,则()是对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))15、若已定义:inta=5,*p;且p=&a;则以下表示中不正确的是()A.&(*p)==&aB.*(&a)==aC.&(*p)==pD.*(p++)==a++16.若有定义:structteacher{intnum;charname[10];charsex;intage;floatscore;}teacher1;则变量teacher1所占用的内存字节数是()A.5B.14C.19D.2017、以下程序段运行后x的值为()inta[]={1,2,3},b[]={4,2,5};int*p,*q;inti,x;p=a;q=b;for(i=0;i<3;i++)if(*(p+i)==*(q+i))x=*(p+i)*2;A.2B.4C.5D.不确定18、下面程序的输出结果为()。#includevoidmain(){enumWeekday{sun=7,mon=1,tue,wed,thu,fri,sat};enumWeekdayday=sat;printf("%d\n",day);19、以下程序段运行后s的值是()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.48020、以下程序运行后,屏幕显示Fileopenerror!,则可能的原因是()。#includemain(){FILE*fp;charstr[256];fp=fopen("test.txt","rt");if(fp==NULL){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文件太小二、改错题(2题,每题10分,共计20分)1.程序Cmody051.c,其功能是统计输入字符串中大写英文字母的个数。如输入:abcDEFGH123输出:52.程序Cmody052.c,其功能是实现从键盘依次输入M个整数,输出其中所有的偶数。如输入:2362384526输出:623826三、程序填空题(3题,每题8分,共计24分)1.补充程序Ccon051.C,使其实现从键盘输入一个整数,输出该数的平方。2.补充程序Ccon052.C,使程序中的sort()函数用选择法对数组a中的m个元素从大到小排序。3.补充程序Ccon053.C,使程序中的fun()函数能三角形三边长a,b,c,用公式,计算这个三角形的面积(规定:若这三条边不能构成三角形,返回-1)。四、编程题(2题,每题8分,共计16分)1.打开程序Cprog051.C,完成其中的f()函数,使其计算:如输入:0.4输出:f(0.40)=0.82输入:1.5输出:f(1.50)=1.24输入:780输出:f(780.00)=-1.002.打开程序Cprog052.C,完成其中的fun()函数使其判断一个矩阵是否为对称矩阵若矩阵对称返回1,不对称返回0。说明:矩阵a是一个二维数组,若其中的第k行第j列的元素与第j行k第列的元素相同,则称其为对称矩阵,否则为非对称矩阵如输入:6312如输入:691231883188128734822输出:Yes输出:No