期末复习题目_第1页
期末复习题目_第2页
期末复习题目_第3页
期末复习题目_第4页
期末复习题目_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言期末复习题(一)、单项选择 共 10题 (共计 20 分) 第 1 题 ( 2.0 分) 在定义构造数据类型时,不能()A:说明变量B说明存储类型C初始化D:末尾不写分号答案:D 第 2 题 ( 2.0 分) 下列运算符中优先级最高的是()A:=y&chvB&!y)的值是()A:0B语法错C:1D:假答案: C第 4 题 ( 2.0 分)设有说明语句:char a=72;则变量a ()。A:包含1个字符B:包含2个字符C包含3个字符D:说明不合法答案: A第 5 题 ( 2.0 分)假定 int 类型变量占用两个字节,其有定义 :int x1 0=0,2,4; , 则数组x在内存中所占字

2、节数是()。A:3B:6C:10D:20答案:D第 6 题 (2.0 分) 执行下列程序后,其输出结果是() main()int a=9;a+=a-=a+a;printf(%dn,a);A:18B:9C:-18D:-9答案: C第 7 题 (2.0 分) 下列程序运行结果为: #define P 3 #define S(a) P*a*a main()int ar;ar=S(3+5);printf(n%d,ar);A:192B:29C:27D:25答案: B第 8 题 (2.0 分) 以下程序段的输出结果为() 。char c=abc;int i=0; do ;while(ci+!=0);pri

3、ntf(%d,i-1);A:abcB:abC:2D:3答案:D第 9 题 (2.0 分) 以下程序的执行结果是 .main() int num = 0;while( num = 2 ) num+; printf( %d,num ); A:0,1,2B:1,2,C:1,2,3,D:1,2,3,4,答案: C第 10 题 (2.0 分)在 C 语言的函数中,下列正确的说法是() A:必须有形参B:形参必须是变量名C可以有也可以没有形参D:数组名不能作形参答案: C、程序填空共5题 (共计 25分)第 1 题 (5.0 分)/*【程序填空】功能:用冒泡法对数组 a 进行由小到大的排序。 */ #in

4、clude void fun(int a,int n)int i,j,t;*SPACEfor (j=0; 【?】 ;j+)*SPACEfor (i=0; 【 ?】;i+)*SPACEif(【?】)t=ai;ai=ai+1; ai+1=t;main()int i,a10=3,7,5,1,2,8,6,4,10,9;*SPACE?】for(i=0;i10;i+)printf(%3d,ai); 答案:=答( 案 1)= j=jj=-1+njn-1=答( 案 2)= iiin-1-jia i + 1 a i + 1 ai=答( 案 4)=fun(a,10)第 2 题 (5.0 分)/t = s%10*s

5、l【?】【程序填空】功能:从低位开始取出长整型变量 s 中奇数位上的数,依次构成一 个新数放在 t 中。*/ #include #include void fun (long s, long *t) long sl=10;s /= 10;*SPACE*t = s 【?】 10;while(s0)*SPACEs = 【?】*SPACE*SPACEsl = sl 【 ?】 10;main()long s, t;printf(nPlease enter s:);scanf(%ld, &s);fun(s, &t);printf(The result is: %ldn, t); 答案:=答( 案 1)=

6、%=答( 案 2)= s/100=答( 案 3)= + *t =答( 案 4)=第 3 题 (5.0 分)/*【程序填空】 功能:三角形的面积为:area=sqrt(s*(s-a)*(s-b)*(s-c)其中,s=(a+b+c)/2,a b、c为三角形三条边的长。定义两个带 参数的宏,一个用来求s,另一个用来求area。编写程序, 在程序中用带参数的宏求面积 area。*/#include #in clude math.h*SPACE#【?】 S(x,y,z)(x+y+z)/2#define AREA(s,x,y,z)sqrt(s*(s-x)*(s-y)*(s-z) main()double

7、area;float a,b,c,s;printf(a,b,c=);*SPACEscanf(%f,%f,%f,&a【, ?】 ,&c); if(a+bc&b+ca&c+ab)*SPACEs=【?】*SPACEarea=【?】printf(area=%fn,area);答案:=答( 案 1)= define =答( 案 2)= &b=答( 案 3)= S(a,b,c)=答( 案 4)= AREA(s,a,b,c)第 4 题 (5.0 分)/*【程序填空】功能:用二分法求方程 2XA3+4XA2+3X-6=0fc( -10, 10)之间的根 ,其中XAn代表X的n次方。*/#include # i

8、nclude main()float x0,x1,x2,fx0,fx1,fx2;doprintf(Enter x1&x2:); scanf(%f,%f,&x1,&x2); fx1=x1*(2*x1-4)*x1+3)-6;fx2=x2*(2*x2-4)*x2+3)-6;*SPACEwhile (fx1*fx2 【?】);dox0=(x1+x2)/2;fx0=x0*(2*x0-4)*x0+3)-6;*SPACEif(fx0*fx1 【?】) x2=x0;fx2=fx0;elsex1=x0;fx1=fx0;*SPACEwhile(【?】=1e-5);printf(x=%6.2fn,x0); 答案:=

9、答( 案 1)= 0 =答( 案 2)= 0 =答( 案 3)=fabs(fx0)第 5 题 (5.0 分)/*【程序填空】功能:要求输出如下结果:b=-1 a=65535 a=65534 a=30 b=6 c=5 按要求在空中填入合适的变量完善程序*/#include main()*SPACEint b=-1,【?】;unsigned a;*SPACEa=【?】printf(b=%d a=%un,b,a);*SPACE?】+=b;printf(a=%un,a);*SPACEb=(a=30)/【?】;printf(a=%d b=%d c=%dn,a,b,c); 答案:=答( 案 1)= c=答

10、( 案 2)= b=答( 案 3)= a=答( 案 4)= (c=5)三、程序改错共5题 (共计 25分)第 1 题 (5.0 分)/*【程序改错】 功能:编写函数 fun 计算下列分段函数的值:x*20x0 且 xm -3f(x)= sin(x)0 x10 且 xm2 及 xm 3x*x+x-1其它*/ #include #include double fun(double x)*FOUNDdouble y*FOUNDif (x=0 & x10.0 & x!=2.0 & x!=3.0) y=sin(x);elsey=x*x+x-1;*FOUNDreturn x; main()double x

11、,f;printf(input x=);scanf(%f,&x);f=fun(x);printf(x=%f,f(x)=%fn,x,f);答案:=答( 案 1)= double y;=答( 案 2)= if (x0 & x!=-3.0)=答( 案 3)= return y;第 2 题 (5.0 分)/*【程序改错】功能:有一数组内放 10 个整数 ,要求找出最小数和它的下标 ,然后 把它和数组中最前面的元素即第一个数对换位置 .*/ #include main( )int i,a10,min,k=0;printf(n please input array 10 elementsn);for(i=

12、0;i10;i+)*FOUND*/scanf(%d, ai);for(i=0;i10;i+) printf(%d,ai);min=a0;*FOUNDfor(i=3;imin)min=ai;k=i;*FOUNDak=ai;a0=min;printf(n after eschange:n); for(i=0;i10;i+)printf(%d,ai);printf(nk=%dnmin=%dn,k,min); 答案:答( 案 1)scanf(%d,&ai);=答( 案 2)=for(i=1;i10;i+)for(i=0;i10;i+)for(i=1;i=9;i+)for(i=0;i=9;i+)=答(

13、案 3)= if(aimin)=答( 案 4)= ak=a0;第 3 题 (5.0 分)/*【程序改错】功能:求 1 到 10 的阶乘的和*/#include main()int i;float s=0; float fac(int n);*FOUNDfor(i=1;i10;i+)*FOUNDs=fac(i);printf(%fn,s); float fac(int n)*FOUNDint y=1;int i;for(i=1 ;i=n;i+)*FOUNDreturn; 答案:=答( 案 1)=for(i=1;i=i;i+)for(i=1;ii;i+)=答( 案 2)= s= s + fac(i

14、) ;s+=fac(i);s=fac(i)+s;=答( 案 3)= float y=1.0;float y=1;=答( 案 4)= return y;return(y);return (y);第 4 题 (5.0 分)/*【程序改错】 功能:一个偶数总能表示为两个素数之和。*/#include #include main()int a,b,c,d;*FOUNDscanf(%d,a);for(b=3;b=a/2;b+=2)for(c=2;csqrt(b)*FOUNDd=a+b;elsebreak;for(c=2;csqrt(d)printf(%d=%d+%dn,a,b,d);答案:=答( 案 1

15、)= scanf(%d,&a);=答( 案 2)= d=a-b;=答( 案 3)= if(d%c=0)第 5 题 (5.0 分)/*【程序改错】 功能:读入一个整数k(2wk 10000),打印它的所有质因子(即所有为素数的因子)。例如:若输入整数: 2310,则应输出: 2、 3、5、 7、11。请改正程序中的语法错误,使程序能得出正确的结果*/ #include conio.h#include *FOUNDisPrime(integer n ) int i, m;m = 1;for ( i = 2; i n; i+ )*FOUNDif ( n%i )m = 0; break;*FOUNDr

16、eturn n ; main( )int j, k;printf( nPlease enter an integer number between 2 and 10000: ); scanf( %d, &k );printf( nnThe prime factor(s) of %d is( are ):, k );for( j = 2; j = k; j+ )if(!( k%j)&( IsPrime(j) printf( n %4d, j ); printf(n);答案:=答( 案 1)= IsPrime(int n)=答( 案 2)= if(!(n%i)答( 案 3)return m ;四、

17、程序设计共2题 (共计 30分)第 1 题 (15.0 分)/*【程序设计】 功能:求一个给定字符串中的字母的个数*/ #include void wwjt();int fun(char s) ProgramEndmain()char str=Best wishes for you!; int k;k=fun(str);printf(k=%dn,k);wwjt(); void wwjt()FILE *IN,*OUT;char sin80;int iOUT,i;IN=fopen(in.dat,r); if(IN=NULL) printf(Please Verify The Currernt Di

18、r.it May Be Changed);OUT=fopen(out.dat,w); if(OUT=NULL) printf(Please Verify The Current Dir. It May Be Changed); for(i=0;i=a&si=A&si=Z)k+; return k;第 2 题 (15.0 分)/*【程序设计】题目:C语言编程题实现以下功能:1)从键盘输入 10 个学生的成绩,计算平均成绩 ave2)统计及格人数pass,计算高于平均分的学生的人数 better3)将 10 个学生成绩排名。*/ #include stdio.h#define N 10 void

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论