2008年C语言程序设计期中试题(樟树林上下.

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

C语言程序设计期中试题(2008年4月)一、选择题(每空2分,共60分)。对每一个【】,从A)、B)、C)、D)四个供选择的答案中,选出一个正确的答案。1.1个C程序可以包含任意多个不同名的函数,但有且仅有一个【】。A)过程B)主函数C)函数D)include2.表达式18/4*sqrt(4.0)/8值的数据类型为【】。A)intB)floatC)doubleD)不确定3.C语言程序经过编译连接以后生成的文件名的后缀为【】。A).cB).cppC).objD).exe4.设d为字符型变量,下列表达式正确的是【】。A)d='a'B)d=678C)d=dD)d='gjkl'5.下面程序段的输出结果是【】。intx=4,y=0,z;x*=3+2;printf(%3d,x);x*=(y==(z=4));printf(%3d,x);A)1440B)200C)204D)1446.若x为int类型,则逗号表达式(x=4*5,x=x*5),x+25的结果是【】。A)20B)125C)100D)不确定7.程序段如下,则以下说法中正确的是【】。intk=1;while(!k==0){k++;printf(%d\n,k);}A)While循环执行2次B)循环是无限循环C)循环体语句一次也不执行D)循环体语句执行一次8.已知a、b、c均为char型变量,若有输入语句:scanf(“%c%c%c”,&a,&b,&c);为使a值为'y',b值为'e',c值为's',从键盘输入数据的正确形式应当是【】。A)yes回车B)y空格e空格s回车C)y,e,s回车D)'y''e''s'回车9.已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是【】。if(xy)z=x;x=y;y=z;A)x=10,y=20,z=30B)x=20,y=30,z=20C)x=20,y=30,z=10D)x=20,y=30,z=3010.putchar函数可以向终端输出一个【】。A)整形变量表达式值B)字符型变量值C)字符串D)字符或字符型变量值11.下面程序段的输出结果是【】。charc1='6',c2='0';printf(%c,%c,%d\n,c1,c2,c1-c2);A)6,0,6B)因输出格式不合法,输出出错信息C)6,0,7,6D)6,0,5,712.以下程序段中的do-while循环【】。m=-1;do{m=m*m;}while(!m);A)是死循环B)执行二次C)执行一次D)有语法错误13.分析以下程序,以下程序【】。main(){intx=5,a=2,b=1;if(x=a+b)printf(****\n);elseprintf(####\n);}A)有语法错,不能通过编译B)通过编译,但不能连接C)输出####D)输出****14.下面程序的输出结果是【】。voidmain(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;case1:b++;break;}case2:a++;b++;break;}printf(a=%d,b=%d\n,a,b);}A)a=2,b=1B)a=1,b=1C)a=2,b=2D)a=1,b=015.程序段如下,则正确的执行结果是【】。intk=1;while(k++=5);printf(last=%d\n,k);A)7B)6C)4D)516.下面程序的运行结果是【】。voidmain(){inti,j,a=0;for(i=0;i2;i++){for(j=0;j4;j++){if(j%2)break;a++;}a++;}printf(%d\n,a);}A)6B)8C)4D)717.若有说明:inta[3][4];则对a数组元素的非法引用是【】。A)a[0][2*1]B)a[1][3]C)a[4-2][0]D)a[0][4]18.若二维数组a有m列,则在a[i][j]前的元素个数为【】。A)j*m+iB)i*m+jC)i*m+j-1D)i*m+j+119.对两个数组a和b进行如下初始化,则以下叙述正确的是【】。chara[]=ABCDEF;charb[]={'A','B','C','D','E','F'};A)a与b数组完全相同B)a与b长度相同C)a和b中都存放字符串D)a数组比b数组占用内存大20.有字符数组a[80]和b[80],则正确的输出语句是【】。A)puts(a,b);B)printf(%s,%s,a[],b[]);C)puts(a);puts(b);D)putchar(a,b);21.以下正确的函数声明形式是【】。A)doublefun(intx,inty)B)doublefun(intx;inty)C)doublefun(intx,inty);D)doublefun(intx,y);22.有下面的程序段,则【】。chara[9],b[]=China;a=b;printf(%s,a);A)运行后将输出ChinaB)运行后将输出ChC)运行后将输出ChiD)编译出错23.下面说法中正确的是:在C语言的函数中,【】。A)必须有形参B)可以有也可以没有形参C)形参必须是变量名D)数组名不能作形参24.C语言规定,函数返回值的类型是由【】。A)return语句中的表达式类型所决定B)调用该函数时的主调函数类型所决定C)调用该函数时系统临时决定D)在定义该函数时所指定的函数类型所决定25.以下程序的执行结果是【】。intage(intn){intc;if(n==1)c=10;elsec=age(n-1)+2;return(c);}voidmain(){intn=5;printf(age=%d\n,age(n));}A)12B)18C)16D)1426.以下程序的输出结果是【】。voidexchange(intx,inty){intt;t=x;x=y;y=t;printf(x=%d,y=%d\n,x,y);}#includestdio.hvoidmain(){inta=3,b=6;exchange(a,b);printf(a=%d,b=%d\n,a,b);}A)x=6,y=3B)x=6,y=3a=6,b=3a=3,y=6C)x=3,y=6D)x=3,y=6a=3,b=6a=6,y=327.程序段如下:intk=0;while(++k=2)printf(%d\n,k);则正确的执行结果是【】。A)1B)1C)0D)无结果2213228.以下对一维整型数组a的正确说明是【】。A)inta(10);B)intn=10,a[n];C)intn;scanf(%d),&n;inta[n];D)#defineSIZE10inta[SIZE];29.定义如下变量和数组:inti,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是【】。for(i=0;i3;i++)printf(%d,x[I][2-i]);A)159B)147C)357D)36930.下面程序的执行结果是【】。#includestdio.hvoidmain(){intx=1,y=1,z=0;if(z0)if(y0)x=3;elsex=5;printf(%3d,x);if(z=y0)x=3;elseif(y==0)x=5;elsex=7;printf(%3d,x);printf(%3d,z);}A)170B)370C)550D)151二、程序选择填空(每空2分,共20分)1.下面程序的功能是计算输入的正整数x的各位数字和,如x=1234,则其各位数字的和为1+2+3+4=10。请选择填空。#includestdio.hvoidmain(){intx,sum;scanf(“%d”,&x);【(1)】;do{sum=sum+【(2)】;x=【(3)】;}while(x);printf(“sum=%d”,sum);}【1】A)sum=1B)sum=0C)sum=nD)x=0【2】A)x/10B)x%10C)x-x%10D)x–x/10【3】A)x/1000B)x/100C)x/10D)x%102.函数func1用来判断整数x是否为素数(质数)。当x为素数时,返回整数“1”,否则返回整数“0”。请选择填空。#includestdio.h#includemath.hintfunc1(intx){intk;k=2;while(k=sqrt(x)){if(x%k==0)【(4)】;k++;}【(5)】;}【4】A)return(0)B)return(1)C)breakD)continue【5】A)return(0)B)return(1)C)空D)return(k)3、下面程序的功能是在一个字符数组中查找一个指定的字符,若数组中含有该字符,则输出该字符在数组中第一次出现的位置(下标值),否则输出-1。请选择填空。#includestdio.h>#includestring.hvoidmain(){charc,str[80];intn,j,k;gets(str);scanf(“%c”,&c);n=strlen(str);for(k=0;k=n;k++)if(【6】)break;if(【7】)j=k;elsej=-1;printf(“%d\n”,j);}【6】A)str[k]=cB)str[k]==cC)str[k]=’\0’D)str[k]==’\0’【7】A)k=nB)knC)knD)str[k]=c4、下面程序的功能是用起泡法对10个数按由小到大的顺序排序。在程序中定义数组长度为11,a[0]不用,只用a[1]到a[10],以符合人们的习惯。请选择填空。#includestdio.hvoidmain(){inti,j,temp,data[11];for(i=1;i=10;i++)scanf(%d,【8】);for(i=1;i=9;i++)for(j=1;【9】;j++){if(【10】){temp=data[i];data[i]=data[i+1];data[i+1]=temp;}}for(i=1;i11;i++)printf(%d,data[i]);}【8】A)data[i]B)data(i)C)&data[i]D)&data[i+1]【9】A)j=9B)j=iC)j=10-iD)j=10【10】A)data[i]data[j]B)data[i]data[j]C)data[i]data[i+1]D)data[i]data[i+1]三、填空题(每空2分,共20分)1、下面程序实现如下功能:大奖赛十个评委亮分,去掉一个最高分,去掉一个最低分,输出最后得分(平均分)。请将程序补充完整。#includestdio.hvoidmain(){floatavg,cj,maxcj,mincj,sum;intk;scanf(“%f”,&cj);maxcj=cj;mincj=cj;【(1)】;for(k=1;k=9;k++){scanf(“%f”,&cj);sum=sum+cj;if(【(2)】)maxcj=cj;if(【(3)】)mincj=cj;}avg=(sum-maxcj-mincj)/8;printf(“最后得分是:%6.2f\n”,avg);}2.以下程序找出二维数组a中每行的最大值,并按一一对应的顺序放入一维数组s中.即:第零行中最大值,放入s[0]中,第一行中最大值,放入s[1]中…….然后输出每行的行号和最大值,请填空.voidmain(){inta[4][4],s[4],i,j,k;for(i=0;i4;i++)for(j=0;j4;j++)scanf(%d,【(4)】);for(i=0;i4;i++){s[i]=【(5)】;for(j=1;j4;j++)if(s[i]a[i][j]){【(6)】}}for(i=0;i4;i++){printf(Row=%2

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功