您好,欢迎访问三七文档
当前位置:首页 > 高等教育 > 习题/试题 > C语言期末考试题及答案1
第1页,共6页第2页,共6页装订线装订线装订线装订线学号:姓名:专业:年级:学院:密封线密封线密封线密封线课程考试试卷2007~2008学年春季学期考试时间:课程名称C程序设计A卷□B卷□题号一二三四五六七八九十成绩复核得分阅卷注意事项:答卷前,考生务必把答题纸上密封线内各项内容填写清楚(学号应与教务在线中学号相同),否则可能得不到成绩,必须填写在密封线与装订线之间。答案必须写在边框内。一、填空题(本题共10分)1、设int型数据占两个字节,已知inta=-1,则语句printf(“%x,%d,%o”,a,a,a);的输出结果是()。2、对语句scanf(“%2d%*3d%2d”,&a,&b);当从键盘输入1234567后回车,则变量a,b的值分别是()和()。3、已知变量x和y均为int型,则下列语句x+=y;y=x-y;x-=y的作用是()。4、已有说明语句如下:inta[2][3]={1,2,3,4,5,6},(*p)[3];p=a;则表达式*(*(p+1)+2)的值是()5、有以下的定义:struct{intday;intmonth;intyear;}a,*p=a;则通过指针变量p引用变量a的成员year的两种形式分别是()和()。二、输出结果题(本题共42分)1、以下程序的输出结果是()main(){inta=2,b=-1,c=2;if(ab)if(b0)c=0;elsec+=1;printf(“%d”,c);}2、以下程序的输出结果是()main(){inta,b,c,x=5,y=10;a=(--y==x++)?--y:++x;b=y++;c=x;printf(“a=%d,b=%d,c=%d”,a,b,c);}3、以下程序的运行结果是()main(){intk=5,n=0;while(k0){switch(k){default:break;case1:n+=k;case2:case3:n+=k;}k--;}printf(%d\n,n);4、以下程序中,while循环的循环次数是()。main(){inti=0;while(i10){if(i1)continue;if(i==5)break;i++;}}5、以下程序的输出结果是()。voidf(int*p1,int*p2,int*p3){*p1=10;*p2=20;*p3=30;p1=p2=p3;printf(“%d%d%d\n”,*p1,*p2,*p3);}main(){intx=1,y=2,z=3,*px=&x,*py=&y,*pz=&z;f(px,py,pz);printf(“%d%d%d\n”,x,y,z);printf(“%d%d%d\n”,*px,*py,*pz);}6、以下程序的输出结果是()。intfun(intn){staticintf=1;f=f*n;returnf;}main(){inti;for(i=1;i=5;i++)printf(“%d”,fun(i));}得分得分第3页,共6页第4页,共6页装订线装订线装订线装订线学号:姓名:专业:年级:学院:密封线密封线密封线密封线7、以下程序运行后的输出结果是()。#defineS(x)4*x*x+1main(){inti=6,j=8;printf(%d\n,S(i+j));}三、补全程序题(本题共42分)1、以下程序求两个整数的最大公约数,请填空。main(){intm,n,r;scanf(“%d,%d”,&m,&n);if(){r=m;m=n;n=r;}do{();if(r!=0){m=n;n=r;}}while();printf(“%d”,n);}2、下列程序用来输出如下图案,请填空。****************main(){inti,j;for(i=1;;i++){for(j=1;j=20-4*i;j++)printf(“”);for(j=1;j=;j++)printf(“%4c”,’*’);;}}3、以下程序用冒泡法对一组整数进行排序,请填空。main(){inti,j,t,a[10]={0,1,0,4,8,12,65,-76,100,-45};for(j=0;;j++)for(i=0;;i++)if(a[i]a[i+1]);printf(“thesortednumber:\n”);for(i=0;i10;i++)printf(“%d”,a[i]);}4、数组中的各元素已按递增顺序排列,下列函数用折半查找法查找key值,若找到则返回对应的下标值,否则返回-1,请填空。intbinary(inta[],intn,intkey){intlow,high,mid;low=0;high=n-1;while(low=high){mid=;if(key==a[mid]);elseif(keya[mid]);else;}return-1;}5、下面rotate函数的功能是:将n行n列的矩阵A转置为A’,请填空。#defineN4voidrotate(inta[][N]){inti,j,t;for(i=0;iN;i++)的for(j=0;;j++){t=a[i][j];;a[j][i]=t;}}6、函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下111121133114641.请将程序补充完整。#defineN6voidyanghui(intx[N][N]){inti,j;x[0][0]=1;for(i=1;iN;i++){x[i][0]==1;for(j=1;ji;j++)x[i][j]=;}}7、以下函数的功能是删除字符串s中的所有数字字符。请填空。vioddele(char*s){intn=0,i;for(i=0;s[i];i++)if()得分第5页,共6页第6页,共6页装订线装订线装订线装订线学号:姓名:专业:年级:学院:密封线密封线密封线密封线s[n++]=s[i];s[n]=;}四、程序设计题(本题共6分)买卖提将养的一缸金鱼分五次出售:第一次卖出全部的一半加二分之一条;第二次卖出余下的三分之一加三分之一条;第三次卖出余下的四分之一加四分之一条;第四次卖出余下的五分之一加五分之一条;最后卖出余下的11条。问原来的鱼缸中共有几条金鱼?2008年C语言参考答案一、填空题1、ffff,-1,1777772、a=12,b=673、交换变量x和y的值4、65、(*p).year,p-year二、输出结果题1、22、a=7,b=9,c=73、74、死循环5、3030301020301020306、1,2,6,24,1207、81三、补全程序题1、mn,r=m%n,r!=02、i=4,j=2*i-1,printf(“\n”)3、j9,i9-j,t=a[i];a[i]=a[i+1];a[i+1]=t;4、(low+high)/2,returnmid,low=mid+1,high=mid-15、ji,a[i][j]=a[j][i]6、x[i][i],x[i-1][j-1]+x[i-1][j]7、!(s[i]=’0’&&s[i]=’9’),‘\0’四、程序设计题main(){floatx,y=11.0;inti;for(i=5;i1;i--){x=(y*i+1)/(i-1);y=x;}printf(%f,x);}得分
本文标题:C语言期末考试题及答案1
链接地址:https://www.777doc.com/doc-4757828 .html