二级(C语言)模拟题1一、选择题1.C语言的函数体由()括起来。A)()B){}C)[]D)/**/2.以下()是正确的字符常量。A)”C”B)‘\\’’C)‘W’D)”\32a”3.若有定义:intx,a;则语句x=(a=3,a+1);运行后,x、a的值依次为()。A)3,3B)4,4C)4,3D)3,44.设整型变量a为5,使b不为2的表达式是()。A)b=(++a)/3B)b=6-(--a)C)b=a%2D)b=a/25.getchar()函数的功能是从终端输入()。A)一个整型变量B)一个实型变量值C)多个字符D)一个字符6.若有定义:intx=3,y=4;则表达式!x||y的值为()。A)1B)0C)3D)47.若有定义:floatf=3.5;intz=8;则表达式f+z%3/4的值为().A)3.75B)3.5C)3D)48.若有定义:inta=1,b=2,c=3;则执行以下程序段后a,b,c的值分别为()。if(ab){c=a;a=b;b=c;}A)a=1,b=2,c=3B)a=2,b=3,c=1C)a=2,b=3,c=3D)a=2,b=1,c=19.以下程序段运行后,循环体运行的次数为()。inti=10,x;for(;i10;i++)x=x+i;A)10B)0C)1D)无限10.若有定义:inta[5]={1,2,3,4,5};则语句a[1]=a[3]+a[2+2]-a[3-1];运行后a[1]的值为()。A)6B)5C)1D)211.若有定义:inta[3][3];则表达式&a[2][1]-a的值为()。A)7B)8C)6D)912.以下程序段运行后屏幕输出为()。chara[]=”abc\0mls”;printf(”%d”,strlen(a));A)5B)8C)3D)413.以下程序运行后屏幕输出为()。#includestdio.hinta=2,b=3;intmax(inta,intb){intc;c=ab?a:b;return(c);}main(){inta=4;printf(”%d”,max(a,b));}A)2,3B)2C)3D)414.若有定义:#definePI3,则表达式PI*2*2的值为()A)12B)4C)3D)不确定15.以下程序段运行后*(++p)的值为()。chara[]=”work”;二级(C语言)模拟题2char*p;p=a;A)’w’B)存放’w’的地址C)’o’D)存放’o’的地址16.以下程序段运行后x的值为()inta[]={1,2,3},b[]={4,2,5};int*p,*q;inti,x;p=a;q=b;for(i=0;i3;i++)if(*(p+i)==*(q+i)x=*(p+i)*2;A)2B)4C)6D)不确定17.下列对结构体类型变量定义不正确的是()。A)structteacher{intnum;intage;}teach1;C)struct{intnum;intage;}teacher;structteacherteach1;B)struct{intnum;intage;}teach1,teach2D)structteacher{intnum;intage;};structteacherteach1;18.若有定义:structnode{intdata;structnode*next;};及函数:voidfun(structnode*head){structnode*p=head;while(p){printf(”%d”,p-data);p=p-next;break;}}调用时head是指向链表首结点的指针,整个链表的结构如下图:head…NULL则函数fun()的功能是()。A)删除单向链表B)显示单向链表中的所有数据C)显示单向链表中的第一个数据D)创建单向链表19.若有定义inta=20,b=28,c;则执行语句c=(a&b)2后c的值为()A)2B)5C)32D)9220.以下程序运行后,屏幕显示:writeok!下列说法正确的是()。#includestdio.h{FILE*fp;fp=fopen(”data.txt”,”wt”);51738二级(C语言)模拟题3if(fp!=NULL){fprintf(fp,”%s\n”,”Filewritesuccessed!\n”);fclose(fp);printf(”writeok!\n”);}}A)当前工作目录下存在data.txt文件,其中的内容是”writeok!”B)fcolse(fp)语句的功能是打开文件C)当前工作目录下一定不存在data.txt文件D)当前工作目录下一定存在data.txt文件二、改错题(共2小题,每题10分)1.程序cmody051.c,其功能是统计输入字符串中大写英文字母的个数。如输入:abcDEFGH123输出:5#includestdio.h#includestring.hmain(){/**/charstr1/**/inti,len,sum=0;printf(”Pleaseinputastring:\n”);scanf(”%s”,str1);len=strlen(str1);for(i=0;ilen;i++){if(str1[i]=’A’&&str[i]=’Z’)/**/sum--;/**/}printf(”%d\n”,sum);getch();}2.程序cmody052.c其功能是实现从键盘依次输入的M个整数,输出其中所有的偶数。例如:输入:2362384526输出:623826#includestdio.h#includemath.h/**/#includeM5/**/main(){inta[M],i;printf(“Pleaseinput5numbers:\n”);for(i=0;iM;i++)scanf(”%d”,&a[i]);printf(”Evennumbers:\n”);for(i=0;iM;i++)/**/if(a[i]/2==0)/**/printf(”%d”,a[i]);printf(”\n”);getch();二级(C语言)模拟题4}三、填空题(共3小题,每题8分)1.补充程序Ccon051.c,使其实现从键盘输入一个整数,输出该数的平方。#include”stdio.h”main(){intx;printf(”Pleaseinputanumber:\n”);scanf(”%d”,/**//**/);printf(”%d*%d=%d\n”,x,x,/**//**/);getch();}2.补充程序Ccon052.c,使sort()函数用选择法对数组a中的m个元素从小到大排序。#includestdio.h#includemath.hvoidsort(inta[],intm){inti,j,k,t;for(i=0;im-1;i++){k=i;for(j=i+1;j/**//**/;j++)if(a[j]a[k])/**//**/;if(k!=i){t=a[k];a[k]=a[i];a[i]=/**//**/;}}}voidmain(){inta[]={72,25,58,32,2,15,7,64};inti,m=sizeof(a)/sizeof(int);sort(a,m);for(i=0;im;i++)printf(”%d”,a[i]);printf(”\n”);getch();}3.补充程序Ccon053.c,使其实现从键盘输入三个数中,输出最大值。#includestdio.hmain(){floata,b,c,max;/**//**/printf(”Pleaseinput3integer:\n”);scanf(”%f%f%f”,&a,&b,&c);max=fmax(a,b,c);printf(”Themaxnumberis:%.2f\n”,max);getch();二级(C语言)模拟题5}floatfmax(floatx,floaty,floatz){floatm,n;n=(nz)?y:z;m=/**//**/return(m);}四、编程题(共2小题,每题8分)1.打开程序cprog051.c,完成其中的f()函数,使其计算:5.8700cos2.11700xxfxxx如:输入:0.4输出f(0.40)=0.82输入:1.5输出f(1.50)=1.24输入:780输出f(780.00)=1.00#includestdio.h#includemath.hdoublef(floatx){/**//**/}voidmain(){floatx;doubley;printf(”Pleaseinputanumber:\n”);scanf(”%f”,&x);y=f(x);printf(”f(%.2f)=%.2f\n”,x,y);getch();}2.打开考生文件夹中的cprog052.c,完成其中的函数fun(),使其判断一个矩阵是否为对称矩阵,若矩阵对称返回1,不对称返回0。说明:矩阵a是一个二维数组,若其中的第k行第j列的元素与第j行第k列的元素相同,则称其为对称矩阵,否则为非对称矩阵。如输入6312如输入691231883188128734822输出:Yes输出:No#includestdio.h#includemath.hintfun(inta[][3],intm){/**/二级(C语言)模拟题6/**/}voidmain(){inta[3][3],i,j;intb;for(i=0;i3;i++)for(j=0;j3;j++)scanf(”%d”,&a[i][j]);b=fun(a,3);if(b==1)printf(”Yes\n”);elseprintf(”No\n”);getch();}一、选择题1.B2.C3.C4.AC5.D6.A7.B8.D9.B10.A11.A12.C13.D14.A15.C16.B17.C18.C19.B20.D二、改错题1.charstr[100];sum++;2.defineM5if(a[i]%2==0)三、填空题1.&xx*x2.mk=jt3.floatfmax(floatx,floaty,floatz);n=(yz)?y:z;m=(xn)?x:n;四、编程题1.doubley;if(fabs(x)700.0)y=sqrt(5.8+fabs(x))/(cos(x)+2.1);elsey=-1;returny;2.inti,j;for(i=0;im;i++)for(j=0;ji;j++)if(a[i][j]==a[j][i])return1;elsereturn0;