《C语言期末考试复习题及答案3讲课讲稿.pdf》由会员分享,可在线阅读,更多相关《C语言期末考试复习题及答案3讲课讲稿.pdf(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C 语 言 期 末 考 试 复 习 题 及 答 案一、选择题:下列各题A)、B)、C)、D)四个选项中只有一个是正确的,请将正确的选项涂写在答案纸上。答在试卷上不得分。(1)C语言规定:在一个源程序中,ma i n函数的位置匕A)必须在最后 B)必须在系统调用的库函数的后面。C)必须在最开始。D)可以任意(2)C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符A。A)必须为字母或下划线。B)必须为下划线。C)必须为字母D)可以是字母、数字和下划线中的任一种字符。(3)下面四个选项中,均是正确的八进制数或十六进制数的选项是A)-10 0 x 8f-0 U B)0 10-0 x l
2、l0 x f lC)O a b c-O 17 0 x c D)0 a l2-0 x l23-0 x a(4)C语 言 中i nt型数据在内存中占两个字节,则unse g ne di nt取值范围是A oA)0 6 5 5 3 5 B)0 3 27 6 7C)-3 27 6 7 3 27 6 8 D)-3 27 6 8 3 27 6 87 若 有 定 义:i nta=7 ;f loa x=,y=;则表达式x+a%3*(i nt)(x+y)%2/4的值是 匕C)D)(6)已知c h是字符型变量,下面不正确的赋值语句是目。A)c h=5+9;B)c h=a+b ;C)c h=0 ;D)c h=7 +
3、6 ;(7)设x,y和z是i n t型变量,且x=3,y=4,z=5则下面表达式中值为0的是A oA)!(x y)&!z|1)B)x&y C)x|y+z&y-zD)x =y(8)设有程序段i ntk=10;wh i le (k=0)k=k-l;以下描述正确的是A oA)循环体语句一次也不执行。B)循环是无限循环。C)wh i le循环语句执行十次。D)循环体语句执行一次。(9)以 下C程序正确的运行结果是储ma i n()long y=23 4 5 6;pri ntf (,y=%3 x n/,,y);pri ntf(y=%8x n”,y);pri ntf (y=%#8x n,y);IA)y=5
4、 b a 0 B)y=5 b a 0 C)y=5 b a 0 D)y=5 b a 0y=5 b a 0 y=5 b a 0 y=b b a O y=5 b a 0y=0 x 5 b a 0 y=0 x 5 b a 0 y=0 x 5 b a 0 y=#5 b a 0(10)当a=l,b=3,c=5 d=4时,则执行完下面一段程序后,x的值是i f (a b)i f (c d)x=l;e lsei f (a c)i f (b d)x=2;e lse x=3;e lse x=6;e lse x=7;A)1 B)3 C)2 D)6(11)下面程序的运行结果是D。#i nc lude ma i n()
5、i nta=l,b=10do b-=a;a+;wh i 1e(b 一 0);pri ntf (,a=%d,b=%d n),a,b);A)a=3,b=l1 B)a=4,b=9C)a=l,b=-l D)a=2,b=8(12)以 下 f or循环的执行次数是二f or(x=0,y=0;(y=123)&(x 4);x+);A)无限次。B)4次。C)0次。D)3次。(13)以下是死循环的程序段的是C oA)f or(i=l;)B)i=3 27 6 7 i f (+i%2=0)c onti nue;do i f(i 0)b re a k;wh i le (+i)i f (+i%3=0)b re a k;C
6、)f or(i =l;)D)i =li f(+i 0)B)i f (x 0)pri ntf -x)x=x+y;pri ntf (%f ,x);e lse pri ntf(%f ,-x);e l s e p r i n t f-x);C)i f (x 0)D)i f (x 0)x=x+y;p r i n t f x);x=x+y;pe i ntf (%f ,x)e lse pri ntf -x);e lse pri ntf -x);(18)若 W=l,X=2,Y=3,Z=4 则条件式:W X?W:Y Z?Y:Z 的值是 解A)I B)3 C)4 D)2(19)以下程序段B ox=-l;do x=
7、x*x;wh i le (!x);A)是死循环 B)循环执行一次C)循环执行二次 D)有语法错误(20)逻辑运算符两侧运算对象的数据类型B oA)只 能 是0或1 B)可以是任何类型的数据C)只能是整型或字符型数据 D)只 能 是0或 非0正数(21)下面程序中有错误的行是C o(前面数字表示行号)1、ma i n()5、sc a nf(d,&a);2、6、f or(i =l;i 3;i+)a 0 =a 0 +a i ,3、i nta 3 =1;7、pri ntf (a 0 =%d n,a 0 );4、i nti;8、A)3 B)6 C)5 D)7(22)下面的程序段D of or(t=l;t
8、=10 0,t+)sc a nf(d,&x);i f (x =0时什么也不输出O p r i n t f函数永远也不执行 D)最 多 允 许 输 出100个非负整数(23)以 下 对 一 维 整 型 数 组a的正确说明是A)i n t a (10)C)i n t n;s canf&n);i n t a n ;B)i n t n=10;a n ;D)#d e f i n e SI ZE10i n t a SI ZE;(24)下 面 程 序 的 运 行 结 果 是Aoa=l;b=2;c=2;w h i l e (a b c)t=a;a=b;b=t;c一;pr i n t f (%d,%d,%dv,
9、a,b,c);A)1,2,0B)2,1,0 C)1,2,1D)2,1,1(25)若 有 说 明:i n t a 3 4 ;则 对 数 组 元 素 的 非 法 引 用 是 旦。A)a 0 2*l B)a 0 4 C)a 4-2 0 D)a l 3(26)对 以 下 说 明 的 正 确 理 解 是 旦。i n t a 10 =6,7,8,9,10A)将5个 初 值 依 此 赋 给a l 至a 5 B)将5个 初 值 依 此 赋 给a 0至a 4 C)将5个 初 值 依 此 赋 给a 6 至a 10 D)因 长 度 与 初 值 个 数 不 同,故语句错误(27)若 二 维 数 组a有m列,则 在a
10、i j 前 的 元 素 个 数 为AA)i*m+j B)j*m+i C)D)i*m+j+l(28)以 下 程 序 段 运 行 的 结 果 是Doc h a r e =pr i n t f (“驱s”,c);A)a b B)a b c C)a b c D)a b(29)以下正确的函数定义形式是AoA)d o u b l e f u n (i n t x,i n t y)B)d o u b l e f u n (i n t x;i n t y)C)d o u b l e f u n (i n t x,i n t y);D)d o u b l e f u n (i n t x,i n t y);(3
11、 0)以下不正确的说法是DoA)实参可以是常量、变量或表达式。B)形参应与其对应的实参类型一致。C)实参可以为任意类型。D)形参可以是常量、变量或表达式。(3 1)有两个字符数组a,b,则以下正确的输入格式是C。A)sc a n f (%s%s,&a,&b)B)g e t s(a,b)C)sc a n f (s%s,a,b)D)g e t s(a );g e t s(b )(3 2)以下程序正确的运行结果是Com a i n ()i n t a=2,i;f o r(i=0;i 3;i+)pr i n t f(%4 d,f (a);)f (i n t a)i n t b=0;st a t i c
12、 i n t c=3;b+;c+;r e t u r n (a+b+c);A)7 7 7B)7 10130 789D)7 9 11(3 3)#d e f i n e能 做 简 单 的 替 代,用 宏 替 代 计 算 多 项 式4*x*x+3*x+2之值的 函 数f,正 确 的 宏 定 义 是CoA)#d e f i n e f (x)4*x*x+3*x+2 B)#d e f i n e f 4*x*x+3*x+2C)#d e f i n e f (a)(4*a*a+3*a+2)D)t t d e f i n e (4*a*a+3*a+2)f(a)(3 4)当 运 行 以 下 程 序 时,从 键
13、 盘 输 入:a b c d e f(表 示 回 车)则 下 面 程 序 的 运 行 结 果 是DoSi n c l u d e#d e f i n e N 6m a i n ()c h a r e(N);i n t i=0;f o r(;i N;c i =g e t c h a r(),i+);f o r(i=0;i N;i+)pu t c h a r (c i );)A)a b e d e fB)a C)b D)a bb c cc d ddef(3 5)请读程序:#d e f i n e AD(x)x+xm a i n ()i n t m=l,n=2,k=3;i n t su m=AD(m
14、+n)*k;pr i n t f (z,su m=%d/z,su m);上面程序的运行结果是BoA)su m=9 B)su m=10 C)su m=12 D)su m=18(3 6)对下面程序段正确的判断是:_ _ _ _ _C_ _ _ _ _ _ _#d e f i n e A3#d e f i n e B(a)(A+l)*a)x=3*(A+B(7);A)程序错误,不许嵌套宏定义。B)x=21C)x=9 3 D)程序错误,宏定义不许有参数。(3 7)执行以下程序后,a,b的值为m a i n ()i n t a,b,k=4,m=6,*pl=&k,*p2=&m;a=pl=&m;b=(-*pl
15、)/(*p2)+7;pr i n t f(na=%d n,a);pr i n t f(b=%d n,b);)A)-1B)O C)1D)45 7 6 10(3 8)以下程序中调用sc a n f函数给变量a输入数值的方法是错误的,因为。m a i n ()i n t*p,*q,a,b;p=&a;pr i n t f(ni n pu t a:);sc a n f(%d,*p);A)*p表示的是变量a的值,而不是变量a的地址。B)*p表示的是指针变量p的地址。C)*p表示的是指针变量p的值。D)*p只能用来说明p是一个指针变量。(3 9)以下程序的运行结果是。#d e f i n e M I N(x
16、,y)(x)se x);D)sc a n f(%d,&(p-a ge);(4 7)若有定义:i n t a 3 4 ;则 对 a数组的第i行第j列(假 设i,j已正确说明并赋值)元素值的正确引用为。A)*(*(a+i)+j)B)(a+j)j C)*(a+i+j)D)*(a+i)+j(4 8)若 已 定 义ch ar S 1 0;则在下面表达式中不表示S l 的地址的是。A)S+1 B)&S 1 C)&S 0 +1 D)S+(4 9)若有定义:i n t a2 3 则对a数值的第i行,第j列元素地址的正确引用为。A)*(ai+j)B)ai+j C)*(a+j)D)(a+i)(5 0)若有以下定义
17、,且0 二i6,则正确的赋值语句是。i n t s 4 6,t 6 4,(*p)6;A)p=t;B)p=s i ;C)p=s;D)p=t i;(5 1)以下程序的运行结果是。#i n cl u denm ai n ()u n i o n l o n ga;i n t b;ch ar e;m;p r i n t f(%d n”,s i zeo f(m);A)4 B)2C)6 D)8(5 2)当顺利执行了文件,关闭操作时,fcl o s e函数的返回值是。A)O B)T U RN C)-1 D)1(5 3)已知学生记录描述为s t r u ct s t u den ti n t n o;ch ar
18、 n am e2 0;ch ar s ex;s t r u cti n t year;i n t m o n t h;i n t day;bi r t h;)s;设变量s中的“生日”应是“1 98 4年6月6日”,下列对“生日”的正确赋值方式是。A)year=1 98 4;B)bi r t h.year=1 98 4;m o n t h=6;bi r t h.m o n t h=6;day=6;bi r t h.day=6;C)s.year=1 98 4;D)s.bi r t h.year=1 98 4;s.m o n t h=6;s.bi r t h.m o n t h=6;s.day=6;
19、s.bi r t h.day=6;(5 4)表达式a b|c&d的运算顺序是.;(5 5)设有以下语句:ch ar x=3,y=6,z;z=xy 2;则z的二进制值是.A)0 0 0 1 0 1 0 0 B)0 0 0 1 1 0 0 0C)0 0 0 1 1 1 0 0 D)0 0 0 1 1 0 1 1(5 6)已知函数的调用形式:fr ead(bu ffer,s i ze,co u n t,fp),其 中 bu ffer代表的是。A)一个整型变量,代表要读入的数据项总数.B)一个文件指针,指向要读的文件.0 一个存储器,存放要读的数据项.D)一个指针,指向要读入数据的存放地址(5 7)若
20、有函数m ax(a,b),并且已使函数指针变量P指向函数m ax,当调用该函数时,正确的调用方法是。A)(*p)m ax(a,b);B)*p m ax(a,b);C)*p(a,b)D)(*p)(a,b)(5 8)在1 6位I BM-PC机上使用C语言,若有如下定义:u n i o n dat ai n t i;ch ar ch;do u bl ef;b;则其共用体变量b占用内存字节数是。A)I B)2 C)8 D)4(5 9)若有以下程序段i n t x=l,y=2;x=xz y;y=yx;X=x y;则执行以上语句后x和y的值分别是。A)x=l B)x=2 C)x=2 D)x=ly=2 y=
21、2 y=l y=l(6 0)若 要 用fo p en函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应是。A)w+B)ab+C)wb+D)ab二.填空(每空2分,共4 0分):请在口处添上正确答案。条 件2 x 3或x-1 0 的C语言表达式是.以下程序的功能是判断输入的年份是不是闰年,请在口内添入正确的内容.main()inty,f;scanf(%d,&y);if(y%400=0)f=l;e ls e if(2)f=l;else 3;if(f)printf(%disn,y);elseprintf(%disnot,y);P rin tf(naleapyearn);(3)以下程
22、序是用梯形法求s i n(x)*co s(x)的定积分,求定积分的公式为:其中 xi=a+i h,h=(b-a)/n设0,b二为积分上下限,积分区间分割数n=1 0 0,#i n cl u de#i n cl u dem ai n ()i n t i,n;do u bl eh,s,a,b;p r i n t f(ni n p u t a,b:);s can f(H%l f%l f 4);n=1 0 0;h=5 S=*(s i n (a)*co s (a)+s i n (b)*co s (b);fo r (i=l;i =n-l;i+)S+=6;S*=h;Pr i n t f(nS=%l fn S
23、);(4)下面程序的运行结果是7)W i n cl u dem ai n ()i n t i=l;wh i l e(i =1 5)i f(+i%3!=2)co n t i n u e;el s ep r i n t f(%d,i);p r i n t f(n);下面程序段运行的结果是 8。i=l;s=3;do s+=i+;i f(s%7=0)co n t i n u e;el s e+i;wh i l e(s I二Icgov二z)AzgPAUI)0u-alup r i n t f(%6 dn,ci j);1 1)设 数 组a包括10个整型元素。下面程序的功能是求出a中各相邻两个元素的和,并将这
24、些和存放在数组b中,按每行三个元素的形式输出。m ai n ()i n t a10,b 10,i ;fo r(i=0;i 10;i+)s can f(%d ,&ai );fo r(12;i 10;i+)13fo r(i=l;i 10;i+)p ri n t f(%3dn,b i );i f(14=0)p ri n t f(n );)以下程序的功能是根据公式求e的近似值,精度要求为10-6.请填空.W i n cl u d eOm ai n ()i n t i;d o u bl ee,n ew;15 n ew二fo r(i=l;16 i+)n ew/=(d o u bl e)i;e+=n ew;
25、p ri n t f(ne=%f n ,e);(8)下 面a d d函数的功能是求两个参数的和,并将和值返回调用函数中,错误的部分是17改正后为18V o i d ad d(fl o at a,fl o at b)fl o at c;c=a+b;ret u rn c;(9)下面程序以每行4个数据的形式输出a数组#d efi n eN 20m ai n ()i n t aN ,i;fo r(i=0;i N;i+)s can f(%d ,19 );fo r(i=0;i N;i+)i f(20)21p ri n t f(%3d ,ai );p ri n t f(n );(1 0)以下程序是 Y4X
26、1=a 4 X 4 X X 4 X lm ai n ()fl o at a4 4 =1,0,0,1,0,1,0,1;fl o at X 4 =l,l,l,l,Y4;i n t i,j,k;fo r(i=0;i 4;i+)Yi =0fo r(j=0;j 4;j+)22 fo r(k=o;k 4;k+)p ri n t f(n n Y%d =%-n,k+1,23);(11)函 数 yan g能够按以下方式构成一个杨辉三角形:111121133114641ft d efi n eN l lyan g(i n t a N )i n t i,j;fo r(i=l;i N;i+)ai l =l;ai i =l;fo r(24;i f 的值是37(1 8)以下程序运行的结果是38main()structEXAstructintx;inty;in;in ta;intb;e;=1;=2;=+p rin tf(n%d,%dn,