《2023年山东广播电视大学开放教育C语言程序设计课程综合练习题资料.docx》由会员分享,可在线阅读,更多相关《2023年山东广播电视大学开放教育C语言程序设计课程综合练习题资料.docx(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、山东广播电视大学开放教育C+语言程序设计课程综合练习题一.选择题1 .下面的哪一个保存字不能作为函数的返回类型?(C )A. void B. i nt C. n e w D. Io n g2 .假定a为一个数组名,则下面的哪一种表达有错误?(了 B )A. a i B. *+a C. *a D. * ( a +1)3 .在下面的二维数组定义中,哪一个是对的的?( D )A. int a5; B. i nt a ( 1 0);C. int a ; D. int a 5 = 1,2,3,4,5;4 .下面的哪一个函数头格式不对的?(B )A. A A (in t a, i n t b) B . A
2、A (i n t a= 0 , i n t b)C . A A(i n t a=0, int b=0) D. A A(i n t a , int b= 0 )5假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果, 则该成员函数的声明语句为(B )oA. AB op e rat o r +(A B & a, AB& b); B. AB o p era t or +(AB& a);C. operator + (AB a );D. A B & o p e r ato r +();6 .当需要使用os t rstream流类定义一个流对象并联系一个字符串时,应在文献开始
3、使用#i n elude 命令,使之包含(A)文献。A. s t rstr e a .h B. s tdl i b.hC . iostream.h D. fst r e a m.h7 .下列变量名中,(A )是合法的。A C H I NA B byte-siz e C do u ble D A+a8 .下列各种函数中,(C)不是类的成员函数。A构造函数 B析构函数C友元函数 D拷贝构造函数c o utHoct: oct s e tw(10) xsetw(10)yen d 1 ;c ou t n hex:n h exs e t w (10) x0);r e tu r n y;)2.t e m p
4、 1 a t e bool WE(Ty p e a , Type b , i n t n) int c =0;for(in t i=0;iVn;i+)f ( a i = = bi) c +;1 f(c = =n) r e tur n t r u e ; r e t urn false;)3 . void L K (double a, int n) do u b 1 e s= 0 ;int L m=0;for( i =0;in;i+) s+=ai;s=s/ n;fo r (i=0; i =s) m+;)4 . # i neludetemp 1 a t e T yp e WD (Type a, i
5、n t n ) T ype m= a 0 ;f o r (i n t i= 1 ;im) re=a i ;ret urn m5 . # i n c 1 u d einclu d evoid J D (c h ar* fn a me)/可把以fname所指字符串作为文献标记符的文献称为f n ame文献, /假定该文献保存着一批整数。i f str e a m fin(fnam e , ios: :in I i o s : : nocrea t e | ios: :bin a ry)i n t x, s= 0 , n=O;w h ile(fin, read (char * )&x, s ize
6、o f (x) ) s +=x; n+)co u tn s! 1 f loa t (s)/nendl;f in. c lo s e();)6 .已知6WaW30,l 5 WbW3 6 ,编一程序求出满足不定方程2 a + 5 b= 1 26的所有整数组解。 如(13, 20)就是其中的一组解。参考答案1.求出从键盘上输入的n个实数之和。2,模板函数,判断具有n个元素的两个数组a和b中相应元素值是否所有相等,若是则返回真, 否则返回0o3 .记录出数组a的前n个元素中大于等于其平均值的元素个数并作为函数值m返回。4 .模板函数,从数组a的n个元素中求出最大值并返回。5 .从二进制文献中输入所有整
7、数,计算并显示出所有整数的个数、总和与平均值。6 .整个程序对的得10分,否则按下面参考程序中语句后的注释给分。#includ e v oi d ma i n ()(nta,bi/定义变量对的得2分for( a = 6 ; a = 3 0 ;a+)/ /外循环次数对的得2分for(b=15;b=36; b+)/内循环次数对的得2分if(2xa+5, b =126)coul (/ bJ ) endl ;/ /条件对的得2分,输出语句对的得2分)五、编写一个函数,记录出具有n个元素的一维数组中大于等于所有元素平均值的元素个数并返 回它。(12分) int C o unt ( d o u b 1 e
8、 a , i nt n) ; / /此为该函数的声明。参考答案:答案评分标准见参考程序中的注释。i nt C o unt(dou ble a , int n) d ouble m=0;in t i;fo r ( i =0; i n;i+) m+=ai; 计算出所有元素之和得3分m=m/n; /计算出平均值得1分 int c = 0;f o r (i=0; i=m) c +; 按条件记录出元素个数得4分r etur n c; 返回记录结果得2分 2 .编写程序,把从键盘上输入的一批整数(以一1作为终止输入的标志)保存到文本文献“a: xx k1. dat” 中。(1 0 分)参考答案:评分标准见
9、参考程序中的注释。#i n clude /使用此命令得 1 分# i n c 1 udevoid ma i n ()o f s tr e am fout ( a : xxkl. d a t ”); 定义输出文献流并打开文献得2分i f(! fout) ce rr文献没有打开! x;wh i le (x ! =-1)fou t xx;)可以从键盘向文献对的输出数据得6分f o u t. c lo s e(); 关闭输出文献流得1分3 .假定一个函数声明为“in t FF(in t a, in t n)规定递归求出数组a中所有n个元素 之积并返回。参考答案:评分标准:根据编程的完整情况酌情给分。i
10、n t FF(int a, i n t n) i f (n= = l) r e t ur n a n -1;else r e turn an-l * FF (a, n 1); ).编写一个函数,显示出整数形参x的除1和自身之外的所有因数,并返回所有因数的个数。(10分)参考答案:评分标准见参考程序中的注释。in t F u nc(int x) 函数头对的得2分int k = 0;f or(int i =2;i=x/2; i+)i f ( x %i=0)co u t i?;k +;)对的显示并记录出结果得6分cou t en d 1 ;r eturn k; / /返回记录结果得2分9 .下列(A
11、)是对的的语句。B a=l 7C x+ yD coutnnH10 .循环whil e (int i=0) i-;执行次数是(AA 0 B 1C 5 D 无限1 1 .设in t f (int);和int g(int);是函数f和g的原形,以下将f作为语句调用的是(B)。A g(f (3); B f(g( 3); C g(f (3)+2); D p = f(g(3)+l);12 .设 int*p2=&x, * pl=a; P 2= *b;则 a 和 b 的类型分别是(B )。A i n t * 和 intB i nt * 和 int *C i n t 和 in t *D i nt * 和 i n
12、 t *13 .设int x;,则通过(C )后,语句*px=0;可将x值置为0。A i nt * p x ;B int c o nst * p x =&x;C int* const px = &x;D const i nt * px=&x;14 .设 v oid fl( i n t *m,l o n g&n); in t a;lon g b;则以下调用合法的是(B )。A f 1 (a, b) ;B fl (&a,b);C fl (a,&b);D fl(&a, &b);15 .以下结构类型可用来构造链表的是(B )。A struc t a a int a ; in t * b; ; B s
13、t ruct bb i nt a; b b * b;;C s t ruct cc in t * a ; cc b;;D str u ct dd int * a;aa b; ;16 .使用操作符se tw对数据进行格式输出时,需要包含( C )文献。A i o stre a m. hB fs t r e a m .h C ioma n i p. h Dst d 1 ib. h17 .类型修饰符unsigned修饰(D )类型是错误的。charB intC long intD fl o a t18 .下列变量名中,(A )是合法的。v arB b y ebyeC in tD 12 3 c1 9 .
14、设 in t a= 3 , * p =&a;,则*p 的值是(DA变量a的地址值A变量a的地址值B 无意义C变量p的地址值20.设 intm=0;,下列表达引用的方法中,(A)是对的的。aint &x=m;i nt &y=10; Ci nt &z;D float &t=&m21.循环 for( i nti =0, x=0; ! x&i5的相反表达式为 o4假定x=5,则执行“a=(x0?10:20语句后a的值为。5 .假定一个二维数组的定义为“int a36; ,则该数组所含元素的个数为.6 .要在屏幕上显示He 1 lo, worl d ! n应执行语句cout。7 .表达式8& 3的结果是
15、 o8 .若一全局变量只允许本程序文献中的函数使用,则定义它时应加上修饰符9 .假定p所指对象的值为3 6,p+ 1所指对象的值为49,则*+p的值为10 .假定AB为一个类,则执行ABa8;”语句时,系统自动调用该类构造函数的次数为。11 .已知A - Z的 ASCII 码为 6590,当执行cha r c h =14* 5+2;coutche ndl;”语句序列后,得到的输出结果为一一。1 2. f 1 oat和d o uble类型的长度分另为和1 3 .假定一个二维数组的定义为“ inta36; ,则该数组所含元素的个数为一一,所占 存储空间的字节数为14 .执行“typedef i n
16、 t AB C 20;”语句把ABC定义为具有2 0个整型元素的 .15 .假定p所指对象的值为36, P+1所指对象的值为4 9 ,则*+p的值为一一16 .假定a是一个二维数组,则的指针访问方式为 o17 .假定要访问一个结构对象x中的由a指针成员所指向的对象,则表达方法为。18 .对一个类中的数据成员的初始化可以通过构造函数中的一一实现,也可以通过构造函数中 的一一实现。19 .当一个类对象离开它的作用域时,系统将自动调用该类的一一。2 0 .假定AB为一个类,则执行“ ABa8;”语句时,系统自动调用该类构造函数的次数为一一答案:1.应5 .1 8t ic9 . 498答案:1.应5
17、.1 8t ic9 . 4982. +x6 . He 1 lo, world! 10.83. x +y=57.01 1 .H4.2 08. s ta12. 41 3. 187 21 3. 187 214.数组类型1 5.49或*(* (a+ i )+j)17. *( x .a)17. *( x .a)1 8 .初始化表函数体19 .析构函数20. 8三.写出下列每一个程序运营后的结果。1 . # i n c lu d evoi d mai n () i n t sl=O, s2 = 0;for(i n t i=0; i15; i+)if (i%2)sl + =i;els e s 2+=i;co
18、 u ts 1 fs 2 endl;)2 . #in c ludev o i d ma i n () int i=l,s=0;w h i 1 e(sl 5 )s+ = i+;couti5 s ednl;3 .#includevoid main()int a 1 0=8,19,4 6 , 15, 6, 24,27, 1 8,20, 53);int cl= 0 , c2=0;for (int i=0; i=20)cl+;if( a i= 1 0 & a i =40) c 2+;cout c 1 7c2endl;4 .#in c 1 u d eInt L B (i n t * a,i n t n)F
19、or (int i =0;in;i+)p *=* a ; a +;)R eturn p ;In t a 5 = 1, 2,3,4,3;CoutLB (a, 5 ) e ndl;5 .# i n c 1 u dest r uct W o rke r char name15; 姓名int age; 年龄f 1 oa t pay; /工资;voi d main() W o rker x =Hw a ngf o ng ”,46/6 40;W o r k er y, *p;y=x; p=&x;coua g e +5p a y-3 0 0 endl;)1 9 . #incl u dev o i d S B
20、 (cha r ch) s w itch(c h ) case A : case ar:c o u t n we 1 1 !”; break;ca s e B: case b c o u tu g ood !”; br e ak;case C: ca s e c:coutnpas s ! ”; b reakdef ault:co u tnb a d! ”; br e ak;)c o u t e n d 1;)vo i d main() char a6 = Abcaff o r(i n t i=0; ai; i + + ) S B(a i );)2 1 .# includevoi d main
21、() i n t a8= 3,5,7,9, 11,1 3,1 5 , 17);in t 火f or(int i=O;i 8 ; i+) p+=l 0 ;c o utsetw(5) * p+;i f ( (i+1) %3= =0 c o u t en d 1 ;)3 2. # in e 1 u d evo i d L F ( i nt& x , int y) x=x+ y ;y= x+ y ;c o u t “ x=nxH, y = y e ndl;)vo i d main () int x =5, y = 8,c o utHx=nx y=ny e n dl;LF ( x , y);coutnx=n x n, Y=nYend 1 ;)23.# i ncludevoi d m a i n () in t x=2 5 , y = 1 2 0;coutndec:nde c s e tw ( 1 0) x s e tw(10) y e nd