1桂林电子科技大学信息科技学院试卷2012-2013学年第2学期课号I04BT014课程名称C语言程序设计(A卷;、闭卷)适用班级(或年级、专业)12级、全院考试时间120分钟班级学号姓名题号一二三四五六七八九十成绩满分403030100得分评卷人一单项选择题(每题2分,共40分)1一个C语言程序是从B开始执行的。A程序中第一个函数B名为main的函数C包含文件(头文件)的第一个函数D程序中的第一个语句2假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列能正确表示代式A1/a*b*cB1/(a*b*c)C1/a/b/(float)cD1.0/a/b/c3已知inty,a,i=1;,则语句printf(%d,%d,-i++,(y=a=3.6*3));的输出结果为A。A-1,10B-2,1.8C0,3D1,184以下程序运行后的输出结果是_B__。main(){unsignedshorta=65536;intb;printf(%d\n,b=a);}A65536B0C1D-15设a、b和c都是int型变量,且a=3,b=0,c=5,则以下值为0的表达式是_C__。A'a'&&'b'Ba&&b||cCa&&b&&cDa||b&&c6以下程序运行后的输出结果是_D__。main(){inta=1,b=2,c=3;if(ba)if(b0)c=0;elsec++;printf(%d\n,c);}A0B1C2D3abc1的表达式是__D__。27以下程序运行后的输出结果是_A__。main(){inta=0,b=0,c=0,d=0;if(a=1)b=1,c=2;elsed=3;printf(%d,%d,%d,%d\n,a,b,c,d);}A1,1,2,0B0,0,0,3C0,1,2,0D编译有错8以下程序的执行结果是_B__。main(){intx=23;do{printf(%d,x--);}while(!x);}A321B23C不输出任何内容D陷入死循环9有以下程序段,输出结果是_C_。intx=3;do{printf(%d,x-=2);}while(!(--x));A1B30C1-2D死循环10以下程序的输出结果是_A_。main(){inta=0,i;for(i=1;i5;i++){switch(i){case0:case3:a+=2;case1:case2:a+=3;default:a+=5;}}printf(%d\n,a);}A31B13C10D2011以下程序执行后的输出结果是_C__。main(){intx=0,y=0;while(y=5){if(x=10)break;if(x%2==0){x+=5;continue;}x-=3;y++;}printf(%d,%d,x-1,y);}A6,6B7,6C10,3D7,3310以下程序运行后的输出结果是。#includestdio.hvoidmain(){intx=13,y=19,z=0;switch(x/8){case1:z=z+1;switch(y/21){default:z=z+1;case0:z=z+1;break;}case2:z=z+1;break;}printf(%d\n,z);}A1B2C3D411以下程序的输出结果是。#includestdio.hvoidmain(){inti=0,a=0;while(i10){for(;;)if((i%5)==0)break;elsei--;i+=11;a+=i;}printf(%d\n,a);}A11B21C32D3312以下程序运行后的输出结果是。#includestdio.hvoidmain(){inta,b;for(a=1,b=1;a=20;a=a+1){if(b=3)break;if(b%3==1){b=b+3;continue;}}printf(%d\n,a);}A1B2C10D20413以下程序执行后的输出结果是。#includestdio.hvoidmain(){intx=1,y=1;while(y=3){if(x=5)break;if(x%2==0){x+=2;continue;}x-=3;y++;}printf(%d,%d,x,y);}A6,2B6,6C7,2D7,314以下程序的输出结果是。#includestdio.hvoidmain(){inti,k,a[5],p[3];k=5;for(i=0;i5;i++)a[i]=i;for(i=0;i3;i++)p[i]=a[i*i];for(i=0;i3;i++)k+=p[i]*2;printf(%d\n,k);}A13B14C15D1615若运行以下程序时输入:135回车,则输出结果是。#includestdio.hvoidmain(){intx[2][2]={0},i;for(i=0;i2;i++)scanf(%d,x[i]);printf(%3d%3d%3d\n,x[0][0],x[0][1],x[1][0]);}A100B200C103D10516以下程序运行后的输出结果是。#includestdio.hvoidreverse(inta[],intn){inti,t;for(i=0;in;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}voidmain(){5intb[6]={1,2,3,4,5,6},i,s=0;reverse(b,4);for(i=4;i6;i++)s+=b[i];printf(%d\n,s);}A10B11C12D1317以下程序运行后的输出结果是。#includestdio.hvoidmain(){chara[2][4];strcpy(a,you);strcpy(a[1],me);a[0][3]='&';printf(%s\n,a);}AyouByou&CmeDyou&me18以下程序运行后的输出结果是。#includestdio.hlongfun(intn){longs;if(n==1||n==2)s=2;elses=n-fun(n-1);returns;}voidmain(){printf(%ld\n,fun(3));}A1B2C3D419以下程序运行后的输出结果是。#includestdio.hvoidmain(){inti,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];for(i=0;i4;i+=2)printf(%d,p[i]);}A51B52C53D9720说明语句int*(*p)();的含义为。A.p是一个指向int型数组的指针B.p是指针变量,它构成了指针数组C.p是一个指向函数的指针,该函数的返回值是一个整型6D.p是一个指向函数的指针,该函数的返回值是一个指向整型的指针二填空题(每题3分,共30分)1设x为int型变量,请写出描述“x是偶数”的表达式是。2以下程序的输出结果是。#includestdio.hvoidmain(){charc;c=0362;printf(%d\n,c);}3若floatx;以下程序段的输出结果是。x=5.16894;printf(%f\n,(int)(x*1000+0.5)/(float)1000);4下面的程序运行时从键盘上输入9876543210回车,程序的输出结果是。#includestdio.hvoidmain(){inta;floatb,c;scanf(%2d%2f%2f,&a,&b,&c);printf(a=%d,b=%.1f,c=%.0f,a,b,c);}5若输入字符串:abcde回车,则以下while循环体将执行次。while((ch=getchar())=='e')printf(*);6下列程序的输出结果是。#includestdio.hvoidmain(){ints,i;for(s=0,i=1;i3;i++,s+=i);printf(%d\n,s);}7若int类型变量占两个字节,定义intx[10]={0,2,4};,则数组x在内存中所占的字节数是。78以下程序的输出结果是。#includestdio.hvoidmain(){charch[]=abc,x[3][4];inti;for(i=0;i3;i++)strcpy(x[i],ch);for(i=0;i3;i++)printf(%s,&x[i][i]);printf(\n);}9运行下面程序,从键盘输入四个字符xyz#,其输出是。#includestdio.hvoidrecursion(){charc;c=getchar();putchar(c);if(c!='#')recursion();putchar(c);}voidmain(){voidrecursion();recursion();}10以下程序的输出结果是。#includestdio.hvoidswap(int*a,int*b){int*t;t=a;a=b;b=t;}voidmain(){inti=2,j=5,*p=&i,*q=&j;swap(p,q);printf(%d%d\n,*p,*q)}三程序填空题(每空3分,共30分)1以下程序的功能是从键盘输入若干个学生的成绩,统计最高成绩和最低成绩,当输入为负数时,结束输入。请填空使程序完整。#includestdio.hvoidmain(){floatx,max,min;scanf(%f,&x);max=min=【1】;do{if(xmax)max=x;if(xmin)【2】;8scanf(%f,&x);}while(【3】);printf(%f,%f,max,min);}2以下程序,数组a中存放一个递增数列。输入一个整数,并将它插入到数组a中,使之仍为一个递增数列。请填空。#includestdio.hvoidmain(){inta[20]={1,10,20,30,40,50,60,70,80,90},x,i,p;scanf(%d,&x);for(i=0,p=10;i10;i++)if(xa[i]){p=i;【4】;}for(i=9;i=p;i--)a[i+1]=a[i];【5】;for(i=0;i=10;i++)printf(%5d\n,a[i]);printf(\n);}3以下程序的功能是:将任意十进制正整数转换成二进制数,请填空使程序完整。#includestdio.hintdtob(intn,int*p){intm,i=0;do{m=n%2;【6】;n=n/2;i++;}while(n!=0);returni;}voidmain(){intn,j,a[20];printf(Inputtheumber:\n);scanf(%d,&n);j=dtob(n,a);for(;j0;j--)printf(%d,【7】);}4下面程序的功能是将一个正整数字符串转换为一个整数,例如:“1234”转换为1234,请填空。#includestdio.hintchnum(char*p)9{intnum=0,k,len,j;len=strlen(p);for(;【8】;p++){k=【9】;j=(--len);while(【10】)k=k*10;num=num+k;}return(num);}voidmain(){inta;charp[10];gets(p);a=chnum(p);printf(“%d\n”,a);}102011-2012学年第2学期C语言期末考试试卷(A卷)答题纸班级学号姓名成绩一单项选择题(每题2分,共40分)1-56-1011-1516-20二填空题(每题3分,共30分)1x%2==0652-1472035.1690008abcbcc4a=98,b=76.0,c=549xyz#zyx501025三程序填空题(每空3分,共30分)【1】x【2】min=x【3】