您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 《C语言程序设计》试卷2-答案
黄石理工学院《C语言程序设计》试卷2第1页共4页考试方式闭卷制卷分数题号一二三四五总分得分登分人核分人得分阅卷人一、选择题(每小题2分,共40分)1、不能作为C语言标识符的是(B)A、__charB、#MC、abcD、A_B_C2、下面哪个表达式的值为4(D)A.11/3B.11.0/3C.(float)11/3D.(int)(11.0/3+0.5)3、判断char型变量c1是否为大写字母的正确表达式(C)A、’A’=c1=’Z’B、(c1=’A’)&(c1=’Z’)C、(c1=’A’)&&(c1=’Z’)D、(‘a=c1’)AND(‘Z’=c1)4、源程序要正确地运行,必须要有什么函数?(C)A.printf函数B.自定义的函数C.main函数D.不需要函数5、在C语言中逻辑“真”等价于以下(A)A、整数1B、大于0的数C、小于0的数D、不等于0的数C语言编译系统在表示逻辑运算结果时,以数值1代表“真”,以0代表“假”,但在判断一个量是否为“真”时,以0代表“假”,以非0代表“真”。即将一个非零数值认作为“真”。逻辑值只有2个,1和0,真和假6、若a为整型变量,且有以下语句(D)十进制数表示范围为-32768-32767(对于无符号整数范围为0-65535).无符号八进制整数表示范围为0-0177777.无符号十六进制整数表示范围为0x0-0xffff.长整型数的取值范围一般是整型数的两倍长(32位),如对于16位计算机系统,十进制长整型的取值范围为-2147483648-2147483647.无论是十进制整数,还是八进制整数还是十六进制整数,均有长整型数.长整型数的表示方法是在原来的整数后面加一个后缀L(或小写字母l).例如,489L,0756L,0XE46L分别表示十进制,八进制,十六进制长整型数..,注意:%o和%x输出时,没有负数形式如十进制-1输出%d%o%x形式值为-1,177777,ffffa=-017L;printf(%d\n,a);若改为printf(%o\n,a);则输出为177761则下面哪个说法是正确的?A.赋值不合法B.输出值为-17C.输出为不确定值D.输出值为-157、以下程序的运行结果是(D)main(){intx=1,y=2,z=3;z+=xy?++x:++y;优先级高到低:++关系条件赋值printf(“%d”,z);}A、1B、2C、3D、68、如果对以下程序进行编译和运行,其结果为(D)main(){intx,y;x=555;y=x+2;y=x+2;printf(“x=%d”,x,y);}若改为printf(“x=%dy=%d”,x);也能通过运行,有结果y的值不确定,有警告警告c.c6:'y'被赋值但却没有使用在main函数中A、程序不能通过编译,出现错误提示信息B、程序能通过编译,不出现错误提示信息C、程序能通过编译,但不能运行D、显示x=5559、在C语言的if语句中,用作判断的表达式为(D)A.关系表达式B.逻辑表达式C.算术表达式D.任意表达式10、请问:下面这个程序段的输出是什么?(A)inta,b,c;a=7;b=8;c=9;if(ab)a=b,b=c;c=a;printf(a=%db=%dc=%d\n,a,b,c);A.a=7b=8c=7B.a=7b=9c=7C.a=8b=9c=7D.a=8b=9c=811、若有以下说明和语句,且0=i10,则下面哪个是对数组元素的错误引用?(C)inta[]={1,2,3,4,5,6,7,8,9,0},*p,i;p=a;A.*(a+i)B.a[p-a]C.p+iD.*(&a[i])12、下列程序执行后输出的结果为(D)#includestdio.habc(){staticintx=0;++x;printf(“%d”,x);}main(){abc();abc();abc();}A、000B、111C、1,2,3D、123存储说明符auto,register,extern,static,对应两种存储期:自动存储期和静态存储期。auto和register对应自动存储期。具有自动存储期的变量在进入声明该变量的程序块时被建立,它在该程序块活动时存在,退出该程序块时撤销。关键字extern和static用来说明具有静态存储期的变量和函数。用static声明的局部变量具有静态存储持续期(staticstorageduration),或静态范围(staticextent)。虽然他的值在函数调用之间保持有效,但是其名字的可视性仍限制在其局部域内。静态局部对象在程序执行到该对象的声明处时被首次************************************************************************************************班级:************************************************************************************学号:************************************************姓名:************************************************************************************************************************************************************************黄石理工学院《C语言程序设计》试卷2第2页共4页初始化。13、下列程序的输出结果为(C)main(){inta[5]={2,4,5,6,10},*p,**k;p=a;k=&p;printf(“%d”,*(P++));printf(“%d\n”,**k);}A、44B、22C、24D、4614、.该源程序执行后,屏幕上显示什么?(C)voidmain(){inta;floatb;a=4;b=9.5;printf(a=%d,b=%4.2f\n,a,b);}A.a=%d,b=%f\nB.a=%d,b=%fC.a=4,b=9.50D.a=4,b=9.15、以下程序的输出结果为(D)#includestdio.hmain(){inta=010,b=10;printf(“%d,%d\n”,a++,--b);}A、10,10B、8,10C、10,9D、8,916、若输入12和8,以下程序的输出结果为()main(){inta,b,num1,num2,temp;scanf(“%d,%d”,&num1,&num2);if(num1num2){temp=num1;num1=num2;num2=temp;}a=num1;b=num2;while(b!=0){temp=a%b;a=b;b=temp;}printf(“%d,%d”,a,num1*num2/a);}A、4,24B、3,24C、5,25D、4,2517、若有以下说明和语句,则输出结果是(C)charstr[]=\c:\\abc.dat\;printf(%s,str);A.字符串中有非法字符B.\c:\\abc.dat\C.c:\abc.datD.c:\\abc.dat18、若k为整型,以下while循环执行(B)次.k=2;while(k=0)printf(%d,k),k--;printf(\n);A.无限次B.0次C.1次D.2次19、若要定义b为5*10的二维数组,正确的定义语句为(D)A、floatb(5,10)B、floatb[5,10]C、float[5][10]D、floatb[5][10]20在下列语句中,不正确的是(D)A、c=2*max(a,b)B、m=max(a,max(b,c))C、printf(“%d”,max(a,b))D、intmax(intx,intmax(inty,intz))得分阅卷人二、填空题(每题3分,共30分)1、若已知a=10,b=15,c=1。则表达式a*b&&c的运算结果为____1___。2、有以下函数调用语句,请问函数fun1有几个参数______4________。fun1(x,(y,z),10,fun2((x-1,y-1)))3、C语言的基本数据类型分为______整型_____、__实型_______、_字符型________。4、程序的三种基本结构为______顺序结构___、_选择_结构____、___循环结构_____。5、有以下语句:inta,b;scan(“a=%d,b=%d”,&a,&b);为使变量a,b的值分别为12,34则输入数据的形式为____a=12,b=34_____________________________。6、若程序片段为i=0;if(i=0)printf(“####”)elseprintf(“****”);则输出为_程序报错,无法通过编译_。7、#includestdio.hmain(){chara[10]=”123456789”,*p;p=&a[4];puts(p);}以上程序的输出结果为_____56789_____。8、下面程序的运行结果是______6______。main(){structcmplx{intx;inty;}cnum[2]={1,3,2,7};printf(“%d\n”,cnum[0].y/cnum[0].x*cnum[1].x);************************************************************************************************班级:************************************************************************************学号:************************************************姓名:************黄石理工学院《C语言程序设计》试卷2第3页共4页}9、C语言的数组名是一个____地址_____常量,不能对其进行自增(减)运算。10、#includestdio.hmain(){chara[10]=”123456789”,*p;p=&a[4];puts(p);}以上程序的输出结果为____56789________。得分阅卷人三、程序填空题(每小题6分,共12分)1、这个程序输入了20个数存放在一个数组中,并且输出其中最大者与最小者、,20个数的和及它们的平均值。请填空。voidmain(){chararray_[20]__;intmax,min,average,sum=0;inti;for(i=0;i_20__;i++){printf(请输入第%d个数:,i+1);scanf(%d,_&array[i]__);}max=array[0];min=array[0];for(i=0;i=__19_;i++){if(maxarray[i])_max=array[i];__if(minarray[i])_min=array[i];__sum=_sum+array[i]__;}average=__sum/20_;printf(20个数中最大值是%d,,max);printf(最小值是%d,,min);printf(和是%d,,sum);printf(平均值是%d.\n,average);}2、利用指针法将两个数按从大到小的顺序输出。main(){inta,b,_____*p1,*p2__,*p______;printf(“inputa,b:”);scanf(“%d%d”,&a,&b);___p1=&a;p2=&b;if(ab){p=p1;p1=p2;_____p2=p____;}printf(“a=%db=%d\n”,a,b);printf(
本文标题:《C语言程序设计》试卷2-答案
链接地址:https://www.777doc.com/doc-2864539 .html