《C语言期末考试题及答案(共3页).doc》由会员分享,可在线阅读,更多相关《C语言期末考试题及答案(共3页).doc(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上 课程考试试卷 2007 2008 学年 春季学期 考试时间: 课程名称 C程序设计 A卷 B卷题号一二三四五六七八九十成绩复核得分阅卷 注意事项:答卷前,考生务必把答题纸上密封线内各项内容填写清楚(学号应与教务在线中 学号相同),否则可能得不到成绩,必须填写在密封线与装订线之间。答案必须写在边框内。 得分一、填空题(本题共10 分)1、设int型数据占两个字节,已知int a=-1,则语句printf(“%x,%d,%o”,a,a,a);的输出结果是( )。2、对语句scanf(“%2d %*3d %2d”,&a,&b);当从键盘输入后回车,则变量a,b的值分别是(
2、 )和( )。3、已知变量x和y均为int型,则下列语句x+=y;y=x-y;x-=y的作用是( )。4、已有说明语句如下:int a23=1,2,3,4,5,6,(*p)3; p=a; 则表达式*(*(p+1)+2)的值是( )5、有以下的定义:structint day;int month;int year;a,*p=a;则通过指针变量p引用变量a的成员year的两种形式分别是( )和( )。 得分二、输出结果题(本题共42分)1、以下程序的输出结果是( )main( ) int a=2,b=-1,c=2;if(ab) if(b0) switch(k) default:break; cas
3、e1:n+=k; case2: case3:n+=k; k-; printf(%dn,n); 4、以下程序中,while循环的循环次数是( )。main( ) int i=0;while(i10) if(i1) continue; if(i= =5) break; i+; 5、以下程序的输出结果是( )。void f(int *p1,int *p2,int *p3)*p1=10;*p2=20;*p3=30;p1=p2=p3;printf(“%d %d %dn”,*p1,*p2,*p3);main()int x=1,y=2,z=3,*px=&x,*py=&y,*pz=&z;f(px,py,pz)
4、;printf(“%d %d %dn”,x,y,z);printf(“%d %d %dn”,*px,*py,*pz);6、以下程序的输出结果是( )。int fun(int n)static int f=1;f=f*n;return f;main()int i; for(i=1;i=5;i+) printf(“%d”,fun(i);7、以下程序运行后的输出结果是 ( ) 。#define S(x) 4*x*x+1main() int i=6,j=8;printf(%dn,S(i+j);得分三、补全程序题(本题共42分)1、 以下程序求两个整数的最大公约数,请填空。main( )int m,n,
5、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()int i,j;for(i=1; ;i+) for(j=1;j=20-4*i;j+) printf(“ ”); for(j=1;jai+1) ;printf(“the sorted number:n”);for(i=0;i10;i+) printf(“%d”,ai);4、 数组中的各元素已按递增顺
6、序排列,下列函数用折半查找法查找key值,若找到则返回对应的下标值,否则返回-1,请填空。int binary(int a,int n,int key)int low,high,mid; low=0;high=n-1; while(lowamid) ; else ;return -1;5、下面rotate函数的功能是:将n行n列的矩阵A转置为A,请填空。#define N 4void rotate(int aN) int i,j,t;for(i=0;iN;i+)的for(j=0; ;j+) t=aij; ;aji=t; 6、 函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,
7、形式如下11 11 2 11 3 3 11 4 6 4 1. 请将程序补充完整。#define N 6void yanghui(int xNN) int i,j;x00=1;for(i=1;iN;i+) xi0= =1;for(j=1;jyear二、 输出结果题1、22、a=7,b=9,c=73、74、死循环5、30 30 30 10 20 30 10 20 306、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=ai;ai=ai+1;ai+1=t;4、(low+high)/2, return mid, low=mid+1, high=mid-15、j=0&si1;i-)x=(y*i+1)/(i-1);y=x;printf(%f,x);专心-专注-专业