C语言程序设计试题试题及答案.pdf
《C语言程序设计试题试题及答案.pdf》由会员分享,可在线阅读,更多相关《C语言程序设计试题试题及答案.pdf(59页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言程序设计试卷,C+语言程序设计试题及答案一、单项选择题(每题1 分,共 2 0分)1 .C语言规定:在一个源程序中,m ain 函数的位置(C )。A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后2 .下面四个选项中,均是合法浮点数的选项是(B)。A.+l e+l 5 e-9.4 03 e2B.60 1 2 e-4 -8 e5C.1 2 3 e 1.2e.4 +2 eTD._e3 .8 e_4 5.e_03 .若 a=T4,b=3,则条件表达式a b?a:b+l 的值为(A )A.-1 4 B.-1 3 C.3 D.44 .已知:in t n,i=l,j=2;执
2、行语句 n=i j?i+:j+;则 i 和 j 的值是(c ).A.1,2 B,1,3 C.2,2 D.2,35 .为了判断两个字符串s i和 s 2 是否相等,应当使用(D )A.if (s l=s 2)B.if(s l=s 2)C.if (s t r c m p(s l,s 2)D.if (s t r c m p(s l,s 2)=0)6.以下正确的描述是(B)。A.函数的定义可以嵌套,但函数的调用不可以嵌套。B.函数的定义不可以嵌套,但函数的调用可以嵌套。C.函数的定义和函数的调用均不可以嵌套。D.函数的定义和函数的调用均可以嵌套。7 .在 C语言中,下面对函数不正确的描述是(D)。A.
3、当用数组名作形参时,形参数组值的改变可以使实参数组之值相应改变。B.允许函数递归调用。C.函数形参的作用范围只是局限于所定义的函数内。D.子函数必须位于主函数之前。8 .如果在一个函数中的复合语句中定义了一个变量,则以下正确的说法是(A)。A.该变量只在该复合语句中有效B.该变量在该函数中有效C.该变量在本程序范围内均有效D.该变量为非法变量9 .以下正确的函数形式是(D )。A.d o u bl e f u n (in t x,in t y)z=x+y;r et u r n z;B.f u n(in t x,y)in t z;r et u r n z;C.f u n(x,y)in t x,y
4、;d o u bl e z;z=x+y;r et u r n z;D.d o u bl e f u n(in t x,in t y)d o u bl e z;z=x+y;r et u r n z;1 0.以下程序的输出结果是(B)。#in c l u d e#d ef in e F(y)8.1 9 y#d ef in e PRI NT(a)pr in t f (,/%d,/,(in t)(a)v o id m ain(v o id)(in t x=2;PRI NT(x*F(3);)A.1 0 B.1 3 C.1 1 D.报错1 1.以下程序中编译和运行结果均正确的一个是(C )。A.A.v o
5、 id m ain(v o id)(u n io n(in t n;f l o at x;c o m m=l ;pr in t f(%d ,c o m m,n);)B.B.v o id m ain (v o id)(u n io n(in t n;f l o at x;c o m m=1 2.5 ;pr in t f (%f ,c o m m,x);)C.C.v o id m ain (v o id)(u n io nf l o at x;in t n;c o m m=1 2.5 pr in t f(%f”,c o m m,x);)D.D.v o id m ain(v o id)(u n io
6、 n(in t n;f l o at x;c o m m=5;pr in t f(%d ,c o m m,n);1 2 .设有定义:in t a=l,*p=&a;f l o at b-2.0;c har c=A;以下不合法的运算是(A)。A.p+;B.a-;C.b+;D.c-;1 3 .以下程序中调用s c an f函数给变量a输入数值的方法是错误的,其错误原因是(B)。m ain()(in t *p,*q,a,b;P=&a;pr in t f(z,in pu t a:);sca nf*p);A.*p表示的是指针变量p的地址B.*p表示的是变量a的值,而不是变量a的地址C.*p表示的是指针变量
7、p的值D.*p只能用来说明p是一个指针变量1 4 .若n u m、a、b和c都 是in t型变量,则执行表达式n u m=(a=4,b=1 6,c=3 2);后n u m的值为(C )oA.4 B.1 6 C.3 2 D.5 21 5 .已有如下定义和输入语句,若要求al,a2,c l,c 2的值分别为1 0,2 0,A和B,当从第一列开始输入数据时,正确的数据输入方式是(C ),(注:一表示空格)in t al,a2,c har c l,c 2;s c an f (,%d%c%d%c&al,&c l,&a2,&c 2);A.1 0A _ 2 0_ B B.1 0_ A _ 2 0_ B C.
8、1 0A 2 0B D.1 0A 2 0_ B1 6.若有说明:in t a 1 0;则对a数组元素的正确引用是(C )。A.a 1 0 B.a 3.5 C.a 5-3 D.a-l 1 7 .在C语言中,一维数组的定义方式为类型说明符 数组名;(A)A.整型常量表达式B.表达式C.整型常量D.整型表达式1 8 .以下能对一维数组a进行正确初始化的语句是(C )。A.in a 1 0 =(0,0.0,0,0);B.in t a 1 0 =;C.in t a =0;D.in t a 1 0 =1 0*l);1 9.以下程序段(C)。x=-l;d o(x=x*x;w h i 1 e (!x);A.是
9、死循环B.循环执行二次C.循环执行一次D.有语法错误2 0.以下关于do-while循环的不正确描述是(B)。A.do-while的循环体至少执行一次B.do-while循环由do开始,用 w hile结 束,在 while(表达式)后面不能写分号C.在 do-while循环体中,一定要有能使w hile后面表达式的值变为零(假)的操作D.do-while的循环体可以是复合语句二、是非判断题(每 题 1 分,共 15分)1.C语言规定,标识符中的字母一般区分大、小写。T2.控制台标准输入设备一般是指键盘。T3.使 用 w hile和 do-while循环时,循环变量初始化的操作应在循环语句之前
10、处理。T4.循环体中continue语句的作用是结束整个循环的执行。F5.关系表达式的值是0 或 1。T6.若有说明:int a34=0 ,则只有元素a0 0可得到初值0。T7.字符串作为一维数组存放在内存中。T8.字符数组中的一个元素存放一个字符T。9.字符数组中的最后一个字符必须是 0。F10.形参为指针变量时,实参必须是数组名。F11.用数组名作函数参数时传递的是数组的值。F12.全局变量可以被任何一个函数中的任何一个表达式使用。T13.一个函数可以带回一个整型值、字符值、实型值等,也可以带回指针型的数据。14.表达式i+与+i在任何场合功能完全相同。15.在赋值表达式中,赋值号左边的变
11、量和右边的表达式之值的数据类型可以不相同。三、多项选择题(每 题 1 分,共 5 分)1.若要求在i f 后一对圆跨括号中表示a 不等于0 的关系,则不能正确表示这一关系的表达式为(ABC).A.a0B.!aC.a=0D.aE.a!=02.选出所有合法的常量(CEGIJ)。A.3e22.5B.-e-3C.le-lD.BASICE.045F.OfdG.OxfdaLH.e8J.3 .以下关于函数原型说法错误的是:(A D F H I)(1)对变量的定义”和“声明”是一回事,对函数的“定义”和“声明”也是一回事。(2)在声明函数原型时,允许只写出参数的类型,而不必写出参数的名称。(3)如果在定义函数
12、时不指定函数类型,系统会隐含指定函数类型为i n t 型。(4)调用一个函数时,函数名、实参个数、实参类型必须与函数原型一致。(5)如果被调函数的定义出现在主调函数之前,可以不必加以声明。(6)所有的函数之间可以互相调用。(7)在 C语言中,所有函数都是平行的,一个函数不能从属于另一个函数,即不能嵌套定义的。(8)如果函数没有返回值,在定义时可以省略函数类型。(9)在 C语言中,任何函数的定义都不允许为空。(1 0)C 语言规定,实参变量对形参变量的数据传递是“值传递”。4 .请从下面关于指针的叙述中,选出5个正确的叙述。(A BD E H)(1)指针即地址。(2)指针须先赋值后使用。(3)当
13、指针p 指向数组a的首址后,由于p 和 a都能引用数组元素,所以这里p 和 a 是等价的。(4)i n t *p 表示定义了一个指向i n t 类型数据的指针变量p。(5)数组的指针是指数组的起始地址。(6)若有定义i n t a 4,*p=a,则 p+后 p 指向数组a 所占内存的第二个字节。(7)使用指针变量作函数参数采取的是“值传递”的方式。(8)相同类型的指针可以进行减法运算。(9)指针变量和许多变量一样可以进行四则运算。(1 0)指针P 指向数组元素a 2,若要其指向a 4,执行p=p*2 即可。5 .以下关于数组的叙述中,5 个最确切的说法是:(B EG HI)(1)在声明一个数组
14、变量时必须指定大小。(2)必须用常量表达式来说明一个数组变量的大小。(3)在对数组进行初始化时大括号中的数据个数必须和数组的大小相同。(4)有变量定义i n t a 3 =0,l,2,b 3;,可以用b=a,使数组b的每个元素和a 的每个元素相等。(5)在 C 语言中,可以将字符串作为字符数组来处理。(6)定义了字符数组c h ar c 1 1;为了给它赋值,可以用c=c h i n a;。(7)如果有 c h ar s 1 5 =/zI am a 0 s t u d e n t”;,则 s t r l e n (s)的值为 6。(8)C语言中,二维数组中元素排列的顺序是:按行存放。(9)在
15、C 语言中,不能对局部的数组变量进行初始化。(1 0)在声明时对数组进行进行初始化必须指定数组大小。四、程序运行结果题(每题4分,共 2 0 分)1.(4 分)下面程序的运行结果是()。#i n c l u d e v oi d m ai n(v oi d)i n t i;c h ar a口=T i m e”,b 二 T om ;f or(i=O;a!=O&b!=0 ;i+)i f (a=b)i f (a=,a&a=z)p r i n t f(c ,a-3 2);e l s e p r i n t f(c”,a+3 2);e l s e p r i n t f(*);)2.(4 分)下面程序段
16、的运行结果是()。i=l;s=3d o(s+=i+;i f (s%7=0)c on t i n u e;e l s e +i;w h l i e(s =0&x =3 0 0 0&x=5 9 9 9)y=3 6+0.6*x;i f (x 二 6 0 0 0&x=1 0 0 0 0)y=5 4+0.3*x;p r i n t f (z,%6.l fz,,y);)4.(4 分)以下程序的运行结果是()。v oi d m ai n(v oi d)i n t a=l,k;f or(k=0;k 3;k+)p r i n t f(%4 d”,f l(a)i n t f l(i n t x)(s t at i
17、 c i n t z=3,y=0;y+;z+;r e t u r n (x+y+z);5.(4 分)以下程序的功能是计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,请选择填空。#i n c l u d e#i n c l u d e f l oat f u n l(f l oat,f l oat);v oi d m ai n(v oi d)(f l oat x,y,z,s u m;s c an f&x,&y,&z);s u m=f u n l()+f u n l ();p r i n t f(s u m=%f n ,s u m);)f l oat f u n l(
18、f l oat a,f l oat b)(f l oat n u m;n u m=a/b;r e t u r n n u m;)五、程序填空题(每题2分,共 2 0 分)1 .下面程序的功能是用公式:n X n/6=l/(l X l)+l/(2 X 2)+l/(3 X 3)+.求 n的近似值,直到最后一项的值小于1 0 e-6 为止。f t i n c l u d e#i n c l u d e v oi d m ai n(v oi d)(l on g i=l;p i=0;w h i l e (i*i=1 0 e+6)p i=;i+;p i=s q r t(6.0*p i);p r i n t
19、 f (z/p i=%1 0.6 f n ,p i);)2.下面程序的功能是把以下给定的字符按其矩阵格式读入数组s t r l 中,并输出行列号之和是 3的数组元素。v oi d m ai n(v oi d)c h ar s t r l 4 3 =A ,b ,C,d ,E,f ,G ,h ,I,j ,K ,i);i n t x,y,z;f or(x=0;x l)#i n c l u d e i n t ag e(i n t n)(i n t c;i f (n=l)c=1 0;e l s e c=;r e t u r n c;)4 .以下程序的功能是判断输入的年份是否是闰年。v o id m a
20、 in(v o id)in t y e a r,y e s;s c a n f(%d,f e y e a r);if (y e a r%4 0 0=0)y e s=l;e l s e if ()y e s=l;e l s e ;if (y e s)p r in t f (/z%d is ,y e a r);e l s e p r in t f (z,%d is n o t ”,y e a r);p r in t f (/za l e a p y e a r.n,?);)5 .以下程序实现:输入三个整数,按从大到小的顺序进行输出。v o id m a in(v o id)(in t x,y,z,
21、c;s c a n f(%d%d%d ,&x,&y,&z);if ()c=y;y=z;z=c;if (2)c=x;x=z;z=c;if()c=x;x=y;y=c;p r in t f (d,%d,x,y,z);)六、填空题(每题1 分,共 2 0 分)1.在 C语言中,一个f l o a t 型数据在内存中所占的字节数为()个字节;一个d o u b l e 型数据在内存中所占的字节数为()个字节。一、单项选择题1.下面正确的字符常量是:A)c B)C)N D)2.下列字符串中不能作为C+标识符使用的是:A)WHILE B)user C)_lvar D)9stars3.执 行 语 句 序 列
22、的 输 出 结 果 是。int i=0;while(i25)i+=3;couti;A)24 B)25 C)27 D)284.下列符号中可以用作C+标 识 符 的 是。A)radius B)foobar C)else D)3room5.若 a 是 int类型变量,则表达式a=25/3%3的值是:A)3 B)2 C)1 D)06.以下叙述中不正确的是:A)在不同的函数中可以使用相同名字的变量B)函数中的形参是局部变量0在一个函数内部定义的变量只在本函数范围内有效D)在一个函数内部定义的变量在所有函数内部有效7.变量的引用,其含义是指该变量的:A.值B.类型C.别名D.地址8 .已知定义:c h a
23、 r s 1 0 ;则下面不表示s 1 的地址的是:A.s+1 B.*(s+l)C.&s O+l D.&s l 9 .通常拷贝构造函数的参数是:A.对象 B.对象的成员 C.对象的引用 D.对象的指针1 0 .派生类对象的构造顺序是先调用:A.派生类的构造函数 B.基类的构造函数C.内嵌对象的构造函数 D.友元类的构造函数二、填空题1 .动态多态是指在(1)_ _时才确定使用哪个(2)_函数的方式。2 .友员不是类的成员,但必须在(3)予以声明,它具有存取类的(4)_ 成员的特权。3 .C+中 c l a s s 与 s t r u c t 的主要区别是在缺省访问权限时,(5)一的成员为私有的
24、,而(6)一的成员为公有的。4 .若有定义语句:in t a=3,b=2;,则表达式a b?a :b的值是(7)。5 .表达式:2 6%3=(8)_ _,3 2/5=(9)。6 .类的成员包括_(1 0)_ 和(H)两种,在面向对象的术语中,前者称为属性、后者称为方法。其访问权限有三种,由符号_(1 3)_ 和_(1 4)_ 指定,其中具有一(1 5)_权限的成员只有类中的成员函数才能访问、而具有(1 6)_ 权限的成员在任何函数中都可访问。7 .对基类成员的初始化,必须在派生类构造函数的(1 7)中进行。8 .C+源程序文件的扩展名是(1 8),头文件的扩展名是(1 9)。9 .若 n为整型
25、,则表达式片(f l o a t)2/3 的值是(2 0)。三、写出程序的运行结果1.写出程序运行结果i n cl u de#include class CRect(private:char color10;int left;int top;int length;int width;public:CRect();CRect(char*c,int t,int lef,int len,void SetColor(char*c);void SetSize(int 1=100,int w=100);void Move(int t,int 1);void Draw();;CRect:CRect()str
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 试题 答案
限制150内