《C++程序设计题库》由会员分享,可在线阅读,更多相关《C++程序设计题库(68页珍藏版)》请在金锄头文库上搜索。
1、C+程序设计题库目录C+程 序 设 计 试 卷 1.1C+程序设计 试卷2.8C+程序设计 试卷3.15C+程 序 设 计 试 卷 4.22C+程 序 设 计 试 卷 5.29C+程 序 设 计 试 卷 6.35C+程 序 设 计 试 卷 7.41晨 C+程序设计 试卷8. 46地 C+程 序 设 计 试 卷 9.54部 C+程 序 设 计 试 卷 10.61 Z萧葡融C+程 序 设 计 试 卷 1注意事项:1、本 试 卷 共6页 , 满 分 100 分 , 考 试 时 间 为 120 分钟。2、答题时请使用蓝、黑钢笔或圆珠笔。3、考试形式: 闭 卷 ( 开、闭)项H二三四五六七八总 分得 分
2、得 分评卷人一、判断题(1X10)1. C+表达式4/8.0+4/7的值为double型, 值 为1.07。)2.定义C为一个整型变量, 则表达式c& & 0 的值恒为0。( )3.若一个C+程序中说明一个全局变量I;则该程序所有的函数都可以引用此4.5.全局变量。一个完整的C+程序从编译预处理指令处开始执行。在 C+中, 当定义变量时不区分大小写。( )6.C+规定:在每一个字符串的结尾加上一个空字符以便系统据此判断字符串是否结束。( )7.C+语言中break语句和continue语句的区别在于: break语句是终止本次循环,continue语句是结束所有循环。( )8.p 为一指针变量
3、,则表达式( *p)+和*(p+)两个表达式的值是一样的, 都是指向下一个单元的值。( )9.10.数组是若干相同类型的数据的集合,每个元素可以由数组名和下标构成。( )C+中,如果在定义函数时加上关键字extern,则表示此函数是外部函数,可以被其他文件调用()得 分评卷人A . 为 trueC.与x 的值有关、2. C+源程序文件的后缀名为:二、选择题(2X15)1、若 X是一变量,则 刘! x 的值是(B.为 falseD.与 x 的值相反)A.cppC.objB.exeD.Iik3、 对于有返回值的函数, 要结束函数运行必须使用语句()A. breakB. .returnC conti
4、nueD.main4 .所谓的静态存储即在程序运行期间分配固定的A. 作用范围 B. 存储单元C.变量类型 D .变量名称5、语 句 while( !x ) ; 中的x 等价于()A. x=0B.x!=lC.x=5D.x=l6、语句 for(I=0, j=0;I=100;I+) j=j+I;的结果为A . 500 B. 100)C. 5000D. 50507 . 给出以下定义:int a, *p;则下面正确的赋值语句为A. p=a;()B. &p=a;C. p=&a; D. p=*a;8 .表达式c & & d 、 c 和!c | c = d 的值为( )A. 0 0 0 B. 1 0 1C.
5、 1 1 0 D. I l l9 .在下列对字符串的定义中, 错误的是A. char s tr 10=w c h in a ;B. char * str二 china” ;C. char *str10 = c , h , i , nD. char s t r 二 “ china” ;)0f );10 .若 有int a=4;float b=14. 70,能正确表示a + b对a取余的表达式是郑A. (a+b)/c B. (a+b)%cC. (int)(a+b)%c) D. (a+(int(b)%c11 .下面对函数的正确的定义语句是 ( )A. flo at function(int a ,b
6、 );B. flo at function(int a ;b );C. flo at function(int a, int b );D. float function(int a ;in t b );12 .设已定义数组 char array20=Iamstuden则函数 stiien(array)的返II值( )A. 11 B.12 C.13 D.1413 .在函数内部定义的变量称为 ( )A.全局变量 B .局部变量C.整型变量 D.字符型变量14、已定义一个数组int array。 ; 则对此数组正确的引用是 ( )A.coutarray 10; B .coutarray (0);C.
7、int b;b=array0+array; D.coutarray5+4;15、如果一外部变量只允许被本文件引用,则应在该外部变量定义前加上修饰B .externC.register( )D.auto:口匾蒯陋A. static得 分评卷人M三、填 空 (1 X 1 4 ).1 . 一个可以执行的C+语言的源程序文件经过编译后生成的文件的扩展名为一【 1】2 . 函数类型定义时, 如果在函数前加void,则表示该函数2o3、一个整型变量和一个长整型变量在内存中所占的字节数分别为 【 3】字节和 【 4】 字节。4 . 过程化程序设计方法中,每个程序单位由三部分构成,即: 、【 6】、 【 7】
8、。5 . 一个整型数组的元素个数为10个, 则在内存中必须至少有一【 8】 字节的空间才可以存放.6 int a=3,则表达式(int)(a+6.5)%2+(a=b=5)的值为 【 9】。7 在指针的概念中表示的含义为 【 10 ; 而 而” 表示的含义为【 11】 .8 设x 、y 和 z 都是整型变量. 则表达式(X=1,Y=33.Z=34)的值为. 【 12】9 标识符只可以由三种字符组成. 他们是 【 13】、 【 14】和数字.得 分 评卷人四、简答题(20)1 、 请用C+语言的表达式表示下列代数式。(1) Js(s _ a)(s _/?)(5一 c)4(2) 5 32定义结构体类
9、型student,该结构体包含的成员为name ( 字符型) 、 age( 整型) 、sex ( 字符型) 、number ( 整型) , 定义一个 student类型指针变量std。得 分评卷人五、阅读程序(26)( - ) . 写出下列程序的输出结果是(5X2)1. #includeusing namespace std;int main() int i=l,sum=O;dosum += i;i+;while(i=100)cout,sum=, su m en d l;return 0;2. #includeusing namespace std;int main() char strl =
10、MI love china!,9,str220,*pl,*p2;pl= strl;p2= str2;for (;*pl !=, (T ;pl+, p2+)*p2=*pl;*p2= 、(T;pl= strl;p2= str2;cout,s trl is :,plendl;cout5,str2 is :,p2endl;return 0;(二)程序填空(2X8)L使用子函数求两个实数的和#include using namespace std;int main()float a,b,c;1子函数声明nir热coutv”输入两个实数” ;cinab;c= 【 2】; 子函数调用cout 两个实数a 和
11、 b 的和为: c endl;return 0;)float add(float x,float y) float z;z=x+y;【 3】 ;2. 用冒泡排序法对输入的2 0 个整数从大到小进行排序#includeusing namespace std;int main()(int a20,i,j,k,max;coutvn Please input 20 data:n ;for (i=0;i20;i+)ci n14】;for(i=0;i19;i+)f or ( 5J;16;j+)if( 7 )k=aj;【 8】 ;aU+U=k;cout,n,;for(i=0;i20;i+)coutai ”;
12、return 0;参考答案一、判断题X, V, V, X , X, - J , X, V, - J , V二、选择题A, A, B, B, A , D , C, B, C, D, C, A, B, D, A三、填空题 、 . obj_2、无返回值3、 4 个,4 个4、 预 处 理 指 令 、 声明部分 、 函 数 。5、406、 67、指 针 运 算 符 , 取地址符8、 349、字 母 、 下划线四、简答题1 、 请用C+语言的表达式表示下列代数式。(1) sqrt(s*(s-a)*(s-b)*(s-c)(2) (4*w*R*R*R)/32、struct student char name
13、;int age;char sex;int number;std;五、阅读程序( - ) . 写出下列程序的输出结果是 、_ _ _ _ _ _ _ _ sum=505Q2、 strl= ,I love china!”s t r 2 = I l o v e c h in a ! ”(二)程序填空1、f l o a t a dd( f l o a t x , f l o a t y)a dd( a , b )r et u r n ( z )2、 a ij = 0 : j = 2 0 - ia j = a . j + l ;C+程 序 设 计 试 卷2然N&注意事项:1、本 试 卷 共6页 , 满
14、 分100 分 , 考 试 时 间 为120 分钟。2、答题时请使用蓝、黑钢笔或圆珠笔。3、考试形式: 闭 卷 ( 开、闭)项H一二三四五六七八总 分得 分得 分 评 卷 人 一、判断题(1X10)中料曲解KMCH赭11 . C+表达式4/7和 4. 0 /7 的值是相等的, 月. 都为double型。 ( )12 . 若有 int 1=10,j=0;则执行完语句 if (j=0)I+; else 1-;1 的值为 11。 ( )13 . 若有intI=10,j=2;则执行完I*=j+8;后 I 的值为28。 ( )14 . 字符串“china”在内存中占据的存储空间是5 个字节。 ( )15
15、 . 一个可执行的C+语言程序可以包含若干个函数,但至少必须包含一个main。 函数。 ( )16 . 一个C+语言程序可由若干个源程序文件构成, 每个源程序文件也必须包含媒一个main。 函数。 ( )17 . 在变量定义int sum,SUM;中sum和SUM是两个相同的变量名。 ( )18 . 一个变量的地址就称为该变量的“ 指针” 。 ( )19 .在C+语言中, 所有函数都是平行的,即在定义函数时是相互独立的, 一个函数并不从属于另一个函数。 ( )20 . C+中,在定义函数时的参数是“ 形式参数” ,在调用函数时的参数是“ 实际参数” 。 ( )得分 评卷厂二、选择题(2X10)
16、1. 源程序文件的扩展名是:C) .DLLD) .EXE()A) .CPP B) .C2.3.4、5、循环至少被执行了一次的语句为A). for 循环 B). while 循环C). do循环 D ) .任一种循环整型变量i定义后赋初值的结果是:int i=2.8*6;A) 12 B) 16 C) 17 D) 18下列表达式的值为f a ls e的是:A) 13 & & 54) C) 3&0&1 D) ! (58)设 int a=10, b=ll, c=12;表达式(a+b) c&b=c 的值是:(1 I (28)()6、7、8、A) 2 B) 0下列程序执行完后,x的值是:int x=0;f
17、or (int k=0;k90; k+)if (k) x+;A) 0 B) 30下列程序段循环次数是:int x = -10;while (+x) coutxendl;A) 9 B) 10表示大于10而小于2 0的数“A) 10x10&x10|x10&x20D)D )(D)190无限()9、在下面的一维数组定义中,哪一个有语法错误()A ) , int a = 1 , 2 , 3 ; B ) . inta 1 0 = 0 ;C ) . int a n D ) . int a 5 1 0、设a = l, b = 2 ,则( a + + ) + b与a + ( + + b )这两个表达式的值分别为
18、: ( )A ) 3 , 3 B ) 3 , 4 C ) 4 , 3 D ) 4 , 4得 分评卷人三、填 空( 2X1 5 ) .1、 描述命题“ A小于B或小于C”的表达式为 1 2、假定x和y整型,其值分另I 为1 6和5 ,则x % y和x/ y的分另: 为【2】 和 3 o3、一个C + +语言程序总是从4开始执行。4、C + +语言程序中出现的/ * * / 部分或. . . 部分所起的作用是 【5】_。5、C + +规定:在每一个字符串的结尾加上一个_ _ _ _ _ 6 _ _ _ _ _ _, 以便系统据此判断字符串是否结束。6、若有int x= 4 , y = 7 ;则表达
19、式x* = x+ y的值为 7 。7、过程化程序设计方法中,程序有三种基本结构,即: 8 、 9 1 0 o8、C + +语言中所提供的循环控制语句有三种, 即: 1 1 、 .【1 2】 、 1 3 o9、C + +语言中用来存放变量地址的变量称作 1 4 。1 0、作为语句标号使用的C + +保留字ca se和defa ult只能用于【1 5】_语句的定义体中。n i p龈题氐M郛三得 分 评卷人- - - - - - - - - - - - - 四、简答题( 5X3)1. 请用C + +语言的表达式表示下列代数式。丫3 % s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
20、_ _1 ) - - - - 2 ) J s( s - ) ( s - - ) ( s - c)工一2 .根据要求定义数据类型或变量定义结构体类型da te,该结构体包含的成员为y ea r( 整型) 、month ( 整型) 、da y ( 整型) , 再定义da te型变量b irthda y 。得分 评卷人 五、分析程序运行结果(15)L写出下列程序的输出结果。# includeusing na mesp a ce std;int ma in( ) cha r cl= a , c2= , d, , c3= , f ;cl+ = 2 ;c2 + = 2 ;c3 + = 2 ;cout cl
21、 c 2 c 3e n d l ;r e t u r n 0;)运行结果:2 . 写出下列程序的输出结果。#i n c l u d e u s i n g n a m e s p a c e s t d ;i n t i , j , m , n ;i n t m a i n O i =5;j =6;m =+i +j +;n = (+i ) + (+j )+m ;c o u t t j J t t n e n d l ;r e t u r n 0;)运行结果:3 . 写出下列程序的输出结果。#i r )c l u d e u s i n g n a m e s p a c e s t d ;i
22、n t m a i n O c o n s t i n t n =5;i n t a n = 9, 6, 3, 4, 5 , i , t ;f o r (i =0;i n /2;i +) t =a i ;a i =a n -i -l ;a n -i -l =t ;f o r (i =0;i n ;i +)c o u t a i ;c o u t e n d l ;r e t u r n 0;. 运行结果:六、程序填空题(10)1、用选择法对十个整数排序。图:2:超鼠#i n c l u d e u s i n g n a m e s p a c e s t d ;i n t m a i n O
23、 i n t a E 10 = 5, 4, 6, 9, 8, 3, 7, 2, 1, 0 ,i , j ,t ;f o r (i =0;i =8;i +)f o r ( _ 1 _ _ _ _ _ _ _; 【2 ; j +)i f (a j a i ) t =a j ; _ _ _ _ _ _ _ _ _ 3 _ _ _ _ _ _ _ _ _ _雄f o r (i =l ;i =10;i +)%:口r1 Zc o u t e n d l ;:济 Er e t u r n 0;: 盘赭蒯 4 ;第_13一 页 共6页参考答案一、判 断 题(10分,每 题1分)12345678XXXXVXXV
24、9101112131415VV二、选 择 题(20分,每 题2分)12345678ACBCBCAD9101112131415CB三、语法 填 空 题(30分,每 空2分)【2】 1 【3】 3 【4】 主函数【5】 注释 【6】0 ,【7】 4 4【8】顺序【9】 选择 【10】 循 环 【11】 while 语句【12】 do while语 句 【13】 for语 句 【14】指 针 变 量 【15】 Switch四、简答题。(15)1请用C +语言的表达式表示下列代数式(1) (x*x*x+5)/(x-y) (2) sqrt(s*(s-a)*(s-b)*(s-c)2根据要求定义数据类型或变
25、量struct dateint year;int month;int day;birthday;五、分析程序运行的结果(15)1、 cfh 2、 7 8 12 27 3、 5 4 3 6 9第_14页 共_68页六、程序填空题( 20分,每空2分)【 !】i=i+l【2】ic等价于a=( bc) ,同时也等价于a= =bc。 ( )27 . C+语言中直到型循环结构为:d o循环体while ( 表达式) ;但这种循环是当表达式为真时反复执行循环体,表达式为假时结束循环。 ()28 . p为一指针变量,则表达式( *p) +表示取p所指向单元的数据为表达式的值,然后使p指向下一个单元。 ( )
26、29 .数组是一种构造型数据,即是若干相同类型的数据的集合。 ( )30 . C+中,如果在定义函数时省略ex tern ,则隐含为外部函数。 ( )第_15页 共_68页得 分评卷人B .为 trueC.与x的值相同、二、选择题( 2X15)1、 若x是一 bool型变量,则x&!x的值是( )B.为 falseD.与x的值相反2.由C +源程序文件编译而成的目标代码文件的缺省扩展名为。( )A.cppC.obj3、AB&Ab的值相同B.exeD.lik(B.为 falseD.与A=B的值相同)4、关于局部变量,下列说法正确的是。 ( )A.定义该变量的程序文件中的函数都可以访问。B.定义该
27、变量的函数中定义处以下的任何语句都可以访问。C.定义该变量的复合语句中定义处以下的任何语句都可以访问。D.局部变量可用于函数之间传递数据。5、要把k+4的值转换成double类型,正确的表达式是 ( )A. double k+4 B.(double)k+4C.(double)(k)+4 D.double(k+4)6、有说明int s2 = 0 , 1 , * p= s;则下列错误的C + +语句是;( )A . s+ = l ; B . p+ = l ;C . * p+ + ; D . ( * P) + + ;7 . 给出以下定义:char x = ab cdefg ;char y = a ,
28、 b , c , d , e , f , g ;则正确的叙述为 ( )A.数组X和数组Y等价B.数组X和数组Y的长度相同C.数组X的长度大于数组Y的长度D.数组X的长度小于数组Y的长度8 .若x和y都 有 是i n t型 变 量 ,x= 1 0 0 , y= 2 0 0 ,则下面的程序片段cout (x, y) Xendl ;的输出结果是; ( )A . 2 0 0 B . 1 0 0C . 1 0 0 2 0 0 D.输出格式符不够,输出不确定的值第 6 页 共68页9 .以下叙述中不正确的是。 ( )A.在不同的函数中可以使用相同名字的变量B . 函数中的形式参数是局部变量C . 在一个函
29、数内定义的变量只在本函数范围内有效D . 在一个函数内的复合语句中定义的变量在本函数范围内有效10 . 假定一个字符串的长度为n ,则定义存储该字符串的字符数组的长度至少为: W: 超蝴3: 中: 於赭: m套( )A. n-1C. n+1B. nD. n+211 . 要使字符串变量s t r 具有初值 hello!” , 正确的定义语句是( )A. char str6 = h , e , 1 , 1 , o , ;B. char str6= h e llo !” ;C. char s tr 口 = % , e , 1 , 1 , o , ! ;D . char str = w hello!
30、r ;12. 如 果一个函数作为表达式被调用,则该函数必须是()A .有返回值的函数 B.无返回值的函数C.有参函数 D.无参函数13.不用进行初始化就可自动获得初值0 的变量包括()A.任何用s ta tic 修饰的变量B.任何在函数外定义的变量C.局部变量和用s ta tic 修饰的全局变量D.全部变量和用s ta tic 修饰的局部变量14、已知一运行正常的程序中有这样两个语句:int *pl, *p2=&a;pl=b;由此可知,变量a 和b 的类型分别是()A.int 和 int B.int * 和 intC.int 和 int * D.int * 和 int *15、下列表达式中,与
31、下标引用Ak等效的是()A. A+k B.*A+k C.*(A+k)D.A+*k得 分评卷人三、填 空 ( 1X20).1. C+语言的源程序文件的扩展名为 【 1】 。2 .当使用 【 2】 关键字作为函数类型时 , 该函数不返回任何值。第_17页 共_68一页3、通过执行x= v. v= z . z = x:可交换变量一 【3】 和变量 【4】 的值。4 . 过程化程序设计方法中,程序有三种基本结构,即: 、 【6】_ _ _ _ _ _ _ 、 71 o5 . 一 个 数 组 的 数 组 名 实 际 上 是 指 向 该 数 组 元 素 的 指 针 ,并且在任何时候都不允许 【9】 它。6
32、 . C + +规定:在每一个字符串的结尾加上一个 【1 0】 , 以便系统据此判断字符串是否结束。7、 表达式 c & & d 的侑为 【1 1 , 表达式 c & & 0 的值为【1 2 , 表达式! c | c = d 的值为 【1 3】 。8、对于有返回值的函数,要结束函数运行必须使用语句 【1 4】 o9 .若有in t a = 4 ; flo a t b= 1 4 . 7 0 :则4 / 5的值为 【1 5】 ,4 . 0 / 5的值为【1 6 ;能正确表示a + b对a取余的表达式是 1 7 ,1 0、如果一函数只允许同一程序文件中的函数调用,则应在该函数定义前加上【1 8】 修
33、饰。II.在C + +中有二种参数传递方式: 【1 9】和 【2 0】o得 分 评卷人四、简答题(15)1、 请用C + +语言的表达式表示下列代数式。( 1 ) -Js(s - a ) ( s b)(s 一 c)2定义结构体类型da t e,该结构体包含的成员为y ea r( 整型) 、mo n t h ( 整型) 、da y ( 整型) 定义一个da t e类型指针变量p da t e。3、变量有哪儿种不同类型的作用域和存储类。- - 五、阅读程序(5 X 5 )得 分 评卷人- -( -) .写出下列程序的输出结果是( 5 X 2 )1 . s t r uct a bc in t a ,
34、 b, c; ;ma in ( ) s t r uct a bc s 2 = 1 , 2 , 3 , 4 , 5 , 6 ;in t t ;第_18 页 共 _ 6 8 _ 页co ut s 0 .c, t,;t = s O .a + s l .b;co ut t ;2 .: vo id s w a p ( in t * p l, in t * p 2 ): in t * p ;: p = p l; p l= p 2 ; p 2 = p ; : ma in O: in t a = 3 , b= 5 ;X in t * p t l, * p t 2 ;手: p t l= & a ;: p t 2
35、 = & b;; co ut * p t l 9,9 * p t 2 en dl;; N s w a p ( p t 1 , p t 2 ) ;j 超 c o u K p t K C5, , * p t 2 en dl;:5 鼠 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -: 逮 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -T 部(二)程序填空( 2 X 8 ): 作 2 1.从键盘上输入三个整数,利用二中择条件语句,输出三个数中的
36、最大数,:完成程序::iN: # in clude : t vo id ma in ( vo id): 斗二 in t a , b, c, t ;: co ut vv”输入三个整数” ;: 送 cin a b c;;宝 if( a b) t = a ;巡 els e ( 1 J; co ut vv 最大数: “ ;:if (【2】 ) co ut t ;第_19页 共_ 6 8 _页else3 2.用选择排序的方法对输入的1 0 个整数进行排序( 从小到大)#includevoid main()(int fll,i,j,k,min;cout,n Please input 10 data:n,9
37、;for (i=l;i=10;i+)ci n14】;for(i=l;i fj) 7】 ;k=ffmin;【 8】 ;fi=k;)cout,n,;for(i=l;i=10;i+)第_20 页 共 _ 6 8 _ 页参考答案一、判断题( 1 0 分,每题I分)1234567891 0VVXVXXVXVV二、选择题( 3 0 分,每题2 分)三、填空题( 2 0 分,每空1 分)【 1 .cp p 【 2 】 vo id 【 3 y 【 4 】 z12345678BCBCDACA91 01 11 21 31 41 5DCDADCC【 5 】 顺序结构 【 6 】选择结构 【 7 】 循环结构 【 8
38、 】 首 9改变 1 0 01111 1 2 0 1 3 1 1 4 r et ur n 1 5 0 1 6 0 .8 1 7 in t ( a + b) % a 1 8 s t a t ic 1 9值传递【 2 0 】地址传递四、简答题( 1 5 分,每题5 分)1 . 2 . s t r uct da t e ( 1 ) s q r t ( s * ( s -a ) * ( s -b) * ( s -c) ) in t y ea r , mo n t h, da y ; .s in ( x )/ (x - y ) d a t e Up d a t e3. 四种作用域:文件作用域, 函数作用
39、域, 函数原形作用域, 块作用域四种存储类别: s t a t i c , a u t o , r e g i s t e r , e x t e r n五、阅读程序( 25 分)( 一) 、分析题( 1 0 分,每题5 分)1 .3 62.3, 53, 5第_21 页 共 _68一页(二) 程序填空题( 1 6分,每空2分)【1】 t =b 2 tc 【3 c o u t c 4】 f 【5】 i =i . i =i + l 6】 i BIIAV=B 的值A . 为 trueC.与 Ab的值相同()B.D . 0,()B.为 falseD.与 A=B的值相同4、关于全局变量,下列说法正确的是
40、。 ()A、任何全局变量都可以被应用系统中任何程序文件中的任何函数访问。B、任何全局变量都只能被定义它的程序文件中的函数访问。C、任何全局变量都只能被定义它的函数中的语句访问。D、全局变量可用于函数之间传递数据。a) 有以下定义:char a;int b;float c;double d;则表达式a*b+d-c*b值的类型为 ( )A float B intC char D double6、设 x 和 y 均为int型变量,则以下语句x+=y;y=x-y;x-=y;的功能是 ()A .把 x 和 y 按从大到小排列B . 把 x 的y 按从小到大排列C . 无确定的结果D . 交换x 和 y7
41、、当需要把个带初始化的变量定义为常值变量时, 则应在语句的前面加上关键字( )A static B constC continue D extern8、下列符号中可以作为标识符的有 ()A.exe? B.o31C.list_p_9 D.h( var)第_23页 共68页9 执行3仇 ,480611011,丫2 ”;屏幕上显示的是。 ( )A. “A B C X Y Z B.ABCXYZC. “A B C ” D. A B C“X Y Z ” X Y Z10、设有 int a = 10, 11, 12,*p=&a0;则执行完*p+;*p+=l;后 a0,al,a2的值依次是; ()A 10, 1
42、1, 12 B 11, 12, 12C 10, 12, 12 D 11, 11, 1211、要使字符串变量s t r具有初值 A BC DEFGH”, 正确的定义语句是 ()A . char str8 = , A , B , C , D , E , F , G , H ;B. char str8= A BC DEFGH” ;C . char str = A , B , C , D , E , F , G , H ;D. char str= A BC DEFGH” ;12、对于某个函数调用不用给出被调用函数的原形的情况是 ()A .被调用函数是无参函数 B.被调用函数是无返回值的函数C .函数的
43、定义在调用处之前 D.函数的定义在别的源程序文件中13、不用进行初始化就可自动获得初值0的变量包括 ()A .任何用static修饰的变量B.任何在函数外定义的变量C .局部变量和用static修饰的全局变量D.全部变量和用static修饰的局部变量14、下列说法正确的是 ()A.在2000,2001,2002,-2007这几个连续的地址单元中可存放8个数据。B.在2000,2001,2002,-2007这儿个连续的地址单元中可存放8个字符。C.在2000,2001,2002,-2007这几个连续的地址单元中可存放字符串“A B C D E F G H ”。D.在2000,2001,2002,
44、 2007这几个连续的地址单元中可存放8个整数。15、要使指针变量p指向1维数组A的第1个元素,正确的赋值表达式是()A. p=A 或 p=A0 B p = A或p = & AC.p=&A 或 p=A0 D p=&A 或 p=&A0得 分 评 卷 人 三、填 空(1 X 2 0 )第_ 24页 共68页1、如果一个函数直接或间接的调用自己, 这样的调用称为 【1】2、执行 f o r ( i n t I = 0 : I = 2 1 : I + + ) c o u t , * , :将输出 【2】 个* 号。3、已知数组c定义为l o n g c 5 0 ;则c的元素个数是 , 最小下标是【4】
45、,最大下标是【514、一个C + +函数由两部分组成,即 【6】 和【7】o5、C + +语言规定了运算符的优先级和结合性,其结合性分为 【8】 和 【9】 。6 .过程化程序设计方法中,程序有三种基本结构,即: 【1 0】 、 【1 1 、 【1 2 。7、C + +语言中用来存放变量地址的变量称作 【1 3】o8、定义一个符号常量E O F ,使其与- 1等价,则正确的表示方式为 【1 4】 。9、表 达 式 c & & d 的值为 【1 5】 , 表 达 式 c & & 0 的值为_【1 6】 _ _ _ _, 表达式! c | c = d 的值为 【1 7】-1 0、C + +规定:在
46、每一个字符串的结尾加上一个 【1 8】 , 以便系统据此判断字符串是否结束。1 1. 在C+ +中有二种参数传递方式: 【1 9】和 【2 0】o四、简答题( 5X3)得 分 评 卷 厂1 . 请用C+ +语言的表达式表示下列代数式。( 1 ) -b + d b - a c (2) 成22a32 . 定义结构体类型b o o k i n f o ,该结构体包含的成员为n a m e ( 长度为2 0的字符数组) 、wr i t er ( 长度为1 0的字符数组) 、p u b l i s h ( 长度为50的字符数组) 、p r i c e( 实型) 、c o u n t( 整型) ,并用b
47、o o k i n f o定义一个结构体变量b o o k l和指向结构体类型的指针变量Po3 . 变量的作用域和存储类各有哪几种类型。得 分评卷人五、阅读程序( 25)( 一) . 写出下列程序的输出结果是( 5X2 )1、# i n c l u d e i n t t ( )s t a t i c i n t i = 1 0 0 ;第_25 页 共 68页i+=5;return i;郑: Z: 三鼠施氐郛: 中K-: 静黑意期: 点: 宓cout,i=, t( ) ,n,;cout,i=, t( ) ,n,;void main()运行结果:2、#includevoid main(void)
48、void swapl(int *pl, int *p2)(int x,y;int t;int a,b;t=*p 1 ;*p 1=*p2;*p2=t;x=10,y=20;swapl(&x,&y);void swap2(int &pl, int &p2)a=100,b=200;swap2(a,b);int *t;cout,x=, x ,y=, y ,n,;t=pl;pl=p2;p2=t;couta=, a ,b= b,n,;运行结果是:( 二) 程序填空(2X 8)1 . 输入五个实数,并求出这五个实数的平均值。#include void main(void) float x5,sum=0;cou
49、tvv” 输入五个实数:n”;for(int i=0;i5;i+)_m_;for( i=0;i5;i+)s um+=【2;coutvv” 这五个实数的平均值为:n?, 3 An9;第_26 页 共 68页2. 用冒泡排序的方法对输入的1 0个整数进行排序( 从小到大)#includevoid main()intfll,i,j,k;coutMn Please input 10 data:n”;for (i=l;il l;i+)c in 4;for(i=l;ifrj+l)【 7】 :【 8】 :coutn;for(i=l;i 第_27页 共68页参考答案:一、判断题( 1 0 分,每题1 分)12
50、345678910XXVXJJVXJX二、选择题( 3 0 分,每题2 分)12345678ACADDDBC9101112131415DcDCDBB五、填空题( 2 0 分,每空1 分)【 1 】 递归调用 【 2 】 2 2 【 3 】 50 【 4 】0 5 4 9 6 函数头部 7函数体8左结合性 9 右结合性 1 0 顺序结构111选择结构 1 2 循环结构 1 3 指针 1 4 # d ef i n e E O F - 1【 1 5】1 1 6 0【 1 7】 1【 1 8 】 【 1 9 】 值传递 【 2 0 】地址传递六、简答题( 1 5分,每题5 分)1 .( 1 ) ( -
51、 b + s q r t ( b * b - 4 * a * c ) ) / ( 2 * a )或( - b + s q r t ( b * b - 4 * a * c ) ) / 2 / a( 2 ) . 4 * 3 . 1 4 1 59 2 6* R* R2 .s t r u c t b o o k i n f o Ch a r n a m e 1 0 , wr i t e 1 0 , p u b l i s h 5 ;f l o a t p r i c e;i n t c o u n t ;)b o o k i n f o * p ;3 .四种作用域: 文件作用域, 函数作用域, 函数原
52、形作用域, 块作用域四种存储类别: s t a t i c , a u t o , r eg i s t er , ext er n五、阅读程序( 2 5分)( 一) 、分析题( 1 0 分,每题5 分)1 . i = 1 0 5 2 . x= 2 0 , y= 1 0i = 1 0 0 a = 1 0 0 , b = 2 0 0第_28页 共68页(二 )程序填空题( 1 6分,每空2分)【1】 c i n x i 2】 xi 【3】 s u m / 5 14】 f Ti _ _ _ _ _ _ _ _ 5】i = i , i = i + l 6】 i 1 0 - i 【7】f H l =
53、f n + l l【8】f H + l l = kC+程序设计试卷5学号 班级 姓名注意事项:1、本试卷共5页,满 分100 分,考试时间为120 分钟。2、答题时请使用蓝、黑钢笔或圆珠笔。2. 若有以下类型说明语句:c h a r w ; i n t x ; f l o a t y; d o u b l e z;则表达式w * X + z - y的结果为 类型。A) f l o a t B) c h a r C) i n tD ) d o u b l e3 . C+ +源程序文件的缺省扩展名A) c p p B) exe C) o b jD ) l i k4.存储以下数据,占用存储字节量最多
54、的是 A) ( t B) O C) 0 ”D) 0 . 05. 循环至少被执行了一次的循环语句为A) f o r循环 B) w h i le循环 C) do w h i le循环 D )任 一 一 种 循环6.在下面的一维数组定义中,哪一个有语法错误 A) i n t a = l, 2 , 3 ; B) i n t a 1 0 = 0 7 .假定一个二维数组的定义语句为: “; C) i n t a ; D) i n t a 5 ;i n t a 3 4 = 3 , 4 , 2 , 8, 6 ) ;,每29页共6 8页则 元 素 的 值 为 A) 2 B) 4 C) 6 D) 88 . C语言
55、中的函数 0A) 可以嵌套定义。B) 不可以嵌套调用。C) 可以嵌套调用,但不能递归调用。D) 嵌套调用和递归调用均可。9 . C 语言中函数返回值的类型是由 决定的。A) r e t u r n 语句中的表达式类型B) 调用该函数的主调函数类型C) 调用函数时临时D) 定义函数时所指定的函数类型1 0 . 在一个源文件中定义的全局变量的作用域为 。A) 本文件的全部范围 B)从定义该变量的位置开始至本文件结束C) 本函数的全部范围 D)本程序的全部范围1 1 当#i n c lu de 后面的文件名用双引号括起来时, 寻找被包含文件的方式是A) 直接按系统设定的标准方式搜寻目录B) 先在源程
56、序所在目录搜寻,再按系统设定的标准方式搜寻目录O 仅仅搜寻源程序所在目录D)搜寻当前逻辑盘上的所有目录1 2 . 假定变量m定义为“ i n t m =7; ,则定义变量p的正确语句为 A) i n t * p =&m B) i n t p =&m C) i n t &p =* m D) i n t * p =m1 3 . 假 定 p 是具有do u b le 类型的指针变量,则表达式+ + p 使 p的 值 ( 以字节为单位)增 加 A) 1 B) 4 C) s i z e o f ( do u b le ) D)s i z e o f ( p )1 4 .下列对引用的陈述中不正确的是 A)
57、 每一个引用都是其所引用对象的别名,因此必须初始化B)形式上针对引用的操作实际上作用于它所引用的对象0 一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行D)不需要单独为引用分配存储空间1 5 .若用数组名作为函数调用的实参, 则传递的是 A)数组的首地址 B)数组中第一个元素的值0 数组全部元素的值 D)数组元素的个数得 分 评卷人 二 、 填 空 题( 30)每30页共6 8页1、描述命题“A小于B或小于C”的 表 达 式 为 1 02、 类是用户定义的类型, 具 有 类 类 型 的 变 量 称 作2o3、C+语言程序中出现的/ * * / 部分或部分所起的作用是一【3】4、
58、C+规定:在 每 一 个 字 符 串 的 结 尾 加 上 一 个 【4】 _ _ _ _ _, 以便系统据此判断字符串是否结束。5、 若有 int x=4, y=7;则表达式 x+=y, x*=x+y 的值为_ _ _ _ _ _5=6、过程化程序设计方法中,程序有三种基本结构,即: 6 、7 、 8 07. 假 定x和y整型,其值分别为16和5 ,则x加 是 【9】,x /y的分别10 ,x&y 为118、C+语言中用来存放变量地址的变量称作12 o9、 定义一个符号常量EOF,使其等价于-1 ,则 正 确 的 表 示 方 式 为 【13】 。1 0 .假定p所指对象的值为25, p+ 1所
59、指对象的值为4 2 ,则*p+的值为-*+p 的值为15评卷人. 、分析程序运行结果( 5分* 4 )1、#includeint t()叩2、#includevoid m ain(void)static int i=100;i+=5;return i;in t i, x, num;cinx;w h ile (x )void main()coutvv“i二 vvt()vn;coutvvi=vt()vn;num=x%10;coutnum ;x=x/10;运行结果:若输入X为145734则输出为:3#includestruct sint m;float x;);void swap(s s 1, s
60、s2)t=sl;sl=s2;s2=t;s fun(s si, s s2)每 31页共68页St;t.m=sl.m+s2.m;t.x=sl .x+s2.x;return t;void main()(执行程序后输出:srl= 100,250.5 ,r2= 200,350.5;swap(rl,r2);coutvvT 1 .m=”vvrl .mvvtvvrl .x= r l.x ,n,;cout v v”r2. m= v vr2. m v t r2. x廿 r2 .x ,ns sum;sum=fun(rl,r2);cout,sum.m=, su m .m ,t,sum.x=, su m .x ,n,;
61、4、# include u iostream. hvvoid main( )static char a = Radio&TV University;static int b8 = 6, 8, 9, 2;char *p=a;int *q;q=b;coutendl;coutal, / *p *(a+6), / p2endl;*q=*(q+l)+2;* (q+2)=*q*2;q+;cout b5, , J *b , b & ,J *q+;)执行程序后输出:四、程序填空( 2 分* 1 0 )1 . 打印出2 至 99之间的所有素数( 即不能被任何数整除的数)#include#includeviod
62、main()(int i,n;for(n=2:11 : n+) int temp=int(sqrt(n); 求出n 的平方根并取整得 分评卷入每3 2页共6 8页for(i= 2:【2】 二i+)if(n%i= =0) 3 ;if(itemp)coutn,)coutvv/n;)2 .下面函数是求两个整型参数a和b的最大公约数。int f2(int a, int b)(int r;r=a%b;while( 4 )(a=b;b=r;【5】;)return 6 ;)3 . 用选择排序的方法对输入的1 0个整数进行排序( 从大到小)#includevoid main()intf10,i,j,k;co
63、u t,n Please input 10 data:n”;for (i=0;i10;i+)c in 7 ;for(i=0;i9;i+)f or ( 8;9;j+)if( 10)(k=fi;fi=fj;fU=k;)co u t,n,;for(i=0; i10 ;i+)c o u t f i ,5每 33页共68页参考答案一、选 择 题 ( 3 0 分,每 题 2分)12345678cDADCcCD91 01 11 21 31 41 5DBBACCA二、 填 空 题 ( 3 0 分,每 空 1 . 5 分 )【 1 ( A B ) I I ( A C )【 2 】 对象 【 3 】 解 释 【
64、4 】 , 0 【 5 】1 98 【 6 】 顺 序 结 构 【 7 】选 择 结 构 【 8 】循环结构【 9】 1 【 1 0 】 3【 1 1 】 1 【 1 2 】 指针【 1 3 】 # d e f i n e E O F - 1 【 1 4 】2 5 【 1 5 】 4 2三、 程 序 分 析 题 ( 2 0 )1 、 i = 1 0 5i = 1 1 03r l . m = 1 0 0r 2 . m = 2 0 0s um . m = 3 0 0r l . x= 2 5 0 . 5r 2 . x= 3 5 0 . 5s um . x= 6 0 12 ,4 3 7 5 4 14
65、.a , R , T , d0 , 1 0 , 8 , 8每 34页共68页四、程 序 填 空 题( 2 0分,每 空2分)【1】n = 99 或 n 99 12】 i = te m p 3】 b r e a k 【4】 r【5】 r = a % b 6】b【7】 f f i 【8】i = i + l或i = i【9】i ( = ) 仃j l 或仃i k ( = ) f i C+程序设计试卷6学号 班级 姓名注意事项:1、本试卷共2页,满 分100 分,考试时间为120 分钟。2、答题时请使用蓝、黑钢笔或圆珠笔。3、考试形式:闭卷项 目一二三四五六七八总 分得 分得 分 评卷人一. 选择题(
66、每空2分,共30分)- - - - - - - - - - - - - - - - - - 1. 若有以下类型说明语句:c h a r c ; i n t x ; f l o a t y ; d o ub l e z ;则表达式c * X + z - y的结果为 类型。A ) c h a r B ) i n t C ) f l o a t D ) d o ub l e2 .编写C + +程序一般需要经过的几个步骤依次是A)编译,编辑连接,调试B )编辑, 编译, 连接, 调试0编译,调试,编辑,连接D )编辑,调试,编译, 连接3 .程序中主函数的名字A)ma i n B) M AI NC)
67、M a i nD )任意标识符4.在下面的一维数组定义中,哪一个有语法错误 A)i nta = l , 2 , 3 ) ;B) i nta 1 0 = 0 0i nta;D) i nta 5 ;第 35页共6 8 页5 .若有说明语句i nt i , j; 且 i 的值为6 ,则执行语句j=(+ + i ) + (1 + + ) ; 后) 的值是 。A) 4 B) 1 4 0 1 3 D) 1 56 .C语言中的函数 。A) 可以嵌套定义。B) 不可以嵌套调用。C ) 可以嵌套调用,但不能递归调用。D) 嵌套调用和递归调用均可。7 .判断c h a r 型变量c l 是否为小写字母的简单且正确
68、的表达式为 。A) a =c l =a ) &(c l =z )C) ( 匕 c l ) D) (c l = a ) &(c l =, z )8 . C 语言对嵌套i f 语句的规定是:e l s e 总是与 配对。A) 其之前最近的i f B) 第一个i fC) 缩进位置相同的i f D) 其之前最近且不带e l s e 的 i f9 . C 语言中函数返回值的类型是由 决定的。A ) 定义函数时所指定的函数类型B) 调用该函数的主调函数类型C) 调用函数时临时定D) r e t u r n语句中的表达式类型1 0 . 假定变量m 定义为“ i nt m=7 ; ,则定义变量p 的正确语句为
69、 A) i nt p =&m B) i nt * p =&m C) i nt &p =* m D) i nt * p =m1 1 . 假定P是具有d ou b l e 类型的指针变量,则表达式一p 使 p的值(以字节为单位) 减少 A) 1 B) 4 C) s i z e of (d ou b l e ) D) s i z e of (p )1 2 .凡在函数中未指定存储类别的变量,其隐含的存储类别为A) 自动(a u t o) B) 静态(s t a t i c )C) 外部(e x t e r n ) D) 寄存器(r e g i s t e r )1 3 . 预处理命令在程序中都是以 符
70、号开头的A) * B) # C) & D) 1 4 . 用 ne w 运算符创建一维数组的正确语句是 A) i nt * p =ne w a 1 0 B) i nt * p =ne w f l oa t 1 0 C) i nt * p =ne w i nt 1 0 D) i nt * p =ne w i nt 5 = l , 2 , 3 , 4 , 5 1 5 . 设有说明i nt s 2 = 0 , l , * p =s ; 则下列错误的C+ + 语句是 ;A) s + =l ; B) p + =l ; C) * p + + ; D) (* P ) + + ;得 分评卷人二、填空题(30)1
71、 . C+ + 源程序文件的缺省扩展名是 【 1 】 目标文件第36页共6 8页的扩展名是 【2】可执行文件的扩展名是 【3】2 .在循环体中使用 【4】 语句可以退出循环体, 使用 【5】 语句可退出自定义函数的函数体,使用 【6】 语句可结束整个程序的执行。3 .假 定x和y整型,其值分别为16和5 ,则x/y和x /y的 分 别 为 是 7 和【8】 。7、C+语言中所提供的循环控制语句有三种,即:_ 9 _ 、_ 【10一 、_Ho8、C+语言中用来存放变量地址的变量称作 12 o9、 定义一个符号常量EOF,使其等价于- 1 ,则正确的表示方式为 【13】01 0 .假 定p所指对象
72、的值为25, p+1所指对象的值为4 2 ,则*p+的值为_那中料啜 二氐M郛三得 分评卷人【1 4 . , *+p的值为 【15】二、分 斫 桎 居 运 仃 结 果( 5分*4)2、1、 #define M 6#include #include “iostream.hvoid main(void)void main()(int i, x,num;int i,j,k;cinx;for(i=0;iM;i+)while(x)coutendl;num=x%10; for(j=0;jM-i;j+)cout ;coutnum;for(k=0;k=2*i;k+) coutx=x/10;)执行程序后输出:若
73、输入X为145734则输出为:3、#include#includevoid main()(char sl=?,I am a student! ;char *s2=You are a student! ;char s33O,s43O,s53O;int i;char *pl=s3,*p2=sl;执行程序后输出:for(;*pl+=*p2+;);for(i=0;i=strlen(s l);i+)s4i=sli;strcpy(s5,s2);cout,s3=, s 3 ,n,;cout,s4=, s 4 ,n,;cout,s5=, s 5 ,n,;cout,s2=, s 2 ,n,;第 37页共68页4
74、、#includevoid swapl(int *pl, int *p2)int t;t=*pl ;*pl =*p2;*p2=t;)void swap2(int &pl, int &p2)(int t;t=pl;pl=p2;p2=t;执行程序后输出:void main(void) int x,y;int a,b;x=10,y=20;swapl(&x,&y);a=100,b=200;swap2(a,b);coutnx=, x n,y=, y ,n,;couta=, a ,b= b,n;)得 分评卷人四、程序填空( 2 分* 1 0 )1. 从键盘上输入三个整数, 利用二中择一条件语句, 输出三个
75、数中的最大数,完成程序:#include void main(void) int a,b,c,t;coutb) t=a;elsecoutn最大数: ;if( 2else)coutt;3_;2、下面函数是求两个整型参数a 和 b 的最大公约数。int f2(int a, int b)(int r;r=a%b;while( 4 )(a=b;b=r;【5】 ;第 38页共68页return 6 3、用筛选法求出2100之间的所有素数。#includevoid main(void)int prime49,j=3;for(int i=0;i49;i+)primei1=j; 7 ;)for(i=0;i3;
76、i+)if(primei)for(j=i+l ;j49;j+)if( 【 8】 )primej=0;j=0;for(i=0;i49;i+)if( 【 9】) coutprimei,t,;j+;if(W L)coutn;)coutn;cout c 或 t=c【3co u t ccc 【4】 r【5】 r=a% b【6】b 【7】i = j + 2 8 p n m e r i 1 &p r i m e j 1 %p r i m e i 1 = = 0 9 p r i m e i 【1 0】 i %5 = = 0+ + 程 序 设 计 试 卷 7就注意事项:1、本 试 卷 共 4 页 , 满 分 1
77、00 分 , 考 试 时 间 为 120 分钟。2、答题时请使用蓝、黑钢笔或圆珠笔。3、考试形式:_团_卷( 开、闭)项 目二三四五六总 分得 分0薮得 分评卷人一、判断题(1X10)题中| zM郛4 1 . C + +表达式4 / 7 . 0和4 . 0 / 7的值是相等的, 且都为do u bl e型。 ( )4 2 .若有 i n t 1 = 1 0 , j = 0 ;则执行完语句 i f ( j = = 0 ) 1 + + ; e l s e I- ; I 的值为 1 1。( )4 3 .若有i n t I= 1 0 , j = 2 ;则 执 行 完I* = j + 8 ;后I的 值
78、为28。( )4 4 .字符串“ ch i n a ”在内存中占据的存储空间是5个字节。 ( )4 5 .在 不 同 的 函 数 中 可 以 使 用 相 同 名 字 的 变 量 。( )4 6 . 一个C + +语言程序可由若干个源程序文件构成, 每个源程序文件也必须包含 一 个 m a i n 函 数 。( )4 7 . 假定一个字符串的长度为n ,则定义存储该字符串的字符数组长度至少为n + 1( )第 41 共_68 页4 8 .指针是地址, 地址也是指针 。( )9在C语言中, 所有函数都是平行的, 所以既可以在主函数中定义另一个函数,也 可 以 在 一 个 子 函 数 中 定 义 另
79、 外 一 个 子 函 数 。( )10在C + +中, 如果在定义函数时省略e xt e r n ,则隐含为外部函数。 ( )1、1、得 分评卷人A ) . C P A ) . C2 . 循环至A ) . f o r循环二、选择题(2X10)1 L C+源 程 序 文 件 的 扩 展 名 是( )B ) . C P P C ) . D L L D ) . EXE少被执行 了一次的 语 句B) . w h i le 循环 C) . d o 循环D ) .任一种循环为3、 整型变量i定义后赋初值的语句为i n t i = 2 . 8*6 ;得到的i的结果是: ( )A ) 12 B) 16 C)
80、17 D) 184 、 下列表达式的值为 f a ls e 的是:( )A ) 13 & & 5 4 )C) 3 & & 0& & D) ! ( 5 8) | | ( 2 8)5、 设 i n t a = 10, b = ll, c = 12 ;表达式( a +b )c & & b = = c 的值是: (A ) 2 B) 00 - 2 D) 16、 下列程序执行完后,x的值是: (i n t x = 0;f o r ( i n t k = 0;k 90; k +)i f ( k ) x +;A ) 0 B) 3 0 C) 89 D) 907、 设x和y均为i n t型变量,则以下语句x +=
81、 y ;y = x -y ;x -= y ;的功能是 (A)把x和y按从大到小排列 B )把x的y按从小到大排列C )无确定的结果 D )交换x和y8、 表示“ 大于10而小于2 0的数“ , 正确的是: ()A ) 10x 10| | x 10& x 10& & x 2 09、 在 下 面 的 一 维 数 组 定 义 中 , 哪 一 个 有 语 法 错 误( )A ) , i n t a = 1,2 ,3 ; B) . i n t a 10 = 0;C) . i n t a n ; D) . i n t a 5 ;10、 设a = l, b = 2 ,则( a +) +b与a + ( +b
82、)这两个表达式的值分别为:A ) 3 , 3 B) 3 , 4C) 4 , 3 D) 4,4)得 分评卷人三、填 空 (2X 15).1、 描述命题“ 成 绩(grade) 在 80和 90之间”表达式为. 【 1】2、 假定x 和 y 整型, 其值分别为2 6 和 5 , 则x%y和 x/y的分别为【 2】 和3 O3、每一个C+程序单位由三部分构成4 _、 【 5 、6 _4、C+程序中如果子函数在主函数后定义,为了使程序顺利执行,必须在主函数中添加7 语句。5、若有int a=122;则表达式a+=a-=a*=a的值为8。6、结构化程序设计方法中,程序有三种基本结构,即:_【 9 _ 、
83、 _ 1 0 一 、 11 o7、在进行字符串赋值时,为了便于空格输入可以使用两个函数:12_ _ _ _ _、_ 13 o8、C+语言中用来存放变量地址的变量称作_ _ _ _ 14 -9、作为语句标号使用的C+保留字case和 default只能用于 【 1 5 一语句中。得 分 评卷人四、简答题(3X 5)1 、 请用C+语言的表达式表示下列代数式。(1) s(s - a)(s - b)(s - c),x1 * 3 + sin x1. #includeusing namespace std;int main()2. 根据要求定义数据类型或变量定义一个长度为20的一维数组a rra y ,
84、并且为数组的元素赋值为120(使用循环赋值语句) 。得 分 评卷人 五、分析程序运行的结果(3X 5)char cl= , A , c2= D ,c3= k ;cl+=2;c2+=3;c3-=4;coutcl”c2” uc3endl;第 43 共68 页r e t u r n 0;)2 . # i n c lu d e u s i n g n a m e s p a c e s t d ;i n t m a i n O(i n t i , j , m , n ;i = 3 6 1;j = i /100;m = i % 10;n = ( i % 100) /10;i f ( i = j *j *
85、j +m *n i *m +n *n *n ) c o u t i ” 是 水 仙 花 数 ” e n d l ;e ls e c o u t i 不 是水仙花数 e n d l ;r e t u r n 0;)3 # i n c lu d e u s i n g n a m e s p a c e s t d ;i n t m a i n ( )(c o n s t i n t n = 9;i n t a n = 9, 6 , 3 , 4 ,5 , 4 5 , 3 2 , 7 8, 2 1, i , t ;f o r ( i = 0;i n /2 ;i +) t = a i ;a i = a
86、 n -i -l ;a n -i -l = t ;)f o r ( i = 0;i n ;i +)c o u t =0& & g r ad e p u t c h ar 、 g e t c h ar .8 、W9 s w i t c h四、简答题1 s q r t ( s * ( s -a) * ( s -b ) * ( s -c ) )( x * x * x +s i n ( x ) ) / ( x -y )2、i n t ar r ay 20;f o r ( i =0, i 20;i +)ar r ay i =i ;五、分析程序1、 C G g2、 . 361不是水仙花数3、 21 7 8
87、 32 45 5 4 3 6 9 _ _ _ _ _ _ _ _ _ _ _ _ _ _六、写程序#i n c l u d e i n t m ai n ( ) i n t a, b , c , * p l , * p 2, * p 3, p ;c i n ab c ;p 1=& a;p 2=& b ;p 3=& c ;i f ( ab ) p =* p l ;* p l =* p 2;* p 2=p ;i f ( ac ) p =* p l ;* p l =* p 3;* p 3=p ;i f ( b c ) p =* p 2;* p 2=* p 2;* p 3=p ;c o u t * p
88、 l c等价于a=( b c ) ,也等价于a= =b c。 ( )55 . C+语言中直到型循环结构为:do循环体w h i l e ( 表达式) ;这种循环的循环体至少执行0次。 ( )56 .对于类型相同的两个指针变量p和q,两者能进行=A&ch=Z)?(ch+32):ch,该表达式的值是4 . 数组可以用 表示该数组首元素的地址。5 .设 int x=l, y=5;不使用中间变量, 交换两变量值的语句序列为:6 . 设 int x=l, y=5;表达式(!xlly-)的值是。7 . 在循环语句的循环体中,要结束本次循环,一般是用 语句。8 . 变量的指针,其 含 义 是 指 该 变 量
89、 的。9 . 函数的定义 嵌套,函数的调用 嵌套。( 可以/不可以)得 分评卷人四、简答题(20,)1 . 请 用 C + + 语言的表达式表示下列代数式。( 1 ) I X A 3 | + a & l( 2 ) -7 iR -32.已知变量s 定义如下:s t r u c t D a t e i n t m o n t h ;i n t d a y ;i n t y ea r ; ; s t r u c t S t u d en t i n t n u m ;c h a r n a m e 2 0 ;c h a r s ex ;D a t e b i r t h d a y ; s ;第_4
90、9_共_68页设变量S 中的“生日 是“ 1985年 6 月 12日”, 则请写出对“生日”正确赋值的表达式:3 .变量有哪儿种不同类型的作用域和存储类。得 分评卷人五、阅读程序( 3 0 , )( - ) . 写出下列程序的输出结果是( 5, X 2)鼠M口永K嘏: 三1. #include using namespace std;int main()(void fun(intjnt);int i=2,x=5,j=7;fun(j,6);co u t i,t, j,t, x;return 0;)void fun(int i, int j)(int x=7;co u t i,t, j ,t, x
91、;第_50 页共_68 页2. 当运行以下程序时,从键盘输入a p p l ec a t ( C R 表示回车)# i n c l u d eu s i n g n a m es p a c e s t d ;i n t m a i n ( ) c h a r s 8 0 , * p ;c i n s ;p = s ;w h i l e( * ( + + p ) ! = 4 09)i f ( * p = =,a,) b r ea k ;el s e p + + ; c i n p ; c o u t p ;r et u r n 0 ;( -) 程序填空(2 XI O)1. 从键盘上输入四个整数
92、,要求按从大到小的顺利输出,完成程序:# i nclude usi ng namesp ace std;i nt mai n() i nt a,b,c,d,t;coutv v ”输入四个整数” ;c i n a b c d ;i f( a b ) t= a; a= b; b= t; i f( 1 ) t= c; c= d; d= t; i f( a c ) t= a; a= c; c= t; i f( 2 ) t= b; b= c; c= t; i f( b d ) t= b; b= d; d= t; i f( c d ) t= c; c= d; d= t; 第_ 5 1页共8页cout”四数
93、从大到小输出为: 3【 4】)2.以下程序的运行结果是输出如下图形.* * * * *#includeusing namespace std;void main() int i,j, k;for (i=l; 5 ;i+) forG=l; _ JM _ ;j+)cout6for(k=l; 7 ;k+)coutvv*;coutendl;for (i=l; 8 ;i+) for(j=l; 9 _;j+) cout4 :* 2XVfor(k= 1; 10 ;k+) cout,*:coutendl;灵return 0;st)摄三 *j中I Z: 浙-E蒸正第_52页 共8页参考答案一、判 断 题 ( 1
94、0 分,每 题 1 分)I2345678910XVXJXXXXJX二、选 择 题 ( 30 分,每题3 分)12345678BBACDACD910BC七、 填 空 题 ( 10 分,每 空 1分 )【 1】 sq r t( x) 5 【 2】 0 【 3】 a 【 4 】 数组名【 5 】 l= x; x= Y : y = t; 【 61 1 【 7 】 conti nue 【 8 】 1也址【 9 】不可以 【 10 】可以八、 简 答 题 ( 20 分,每题5 分 )1. ( 1) fab( x*x*x) +a = l( 2) .4 *3. 14 15 9 26*R *R2. s. bi
95、r thday . y ear = 19 8 5 ;s .bi r thday . month= 6;s .bi r thday . day = 12;3.四种作用域: 文件作用域,函数作用域,函数原形作用域,块作用域四种存储类别: stati c, auto, r egi ster , exter n五、阅读程序( 30 分)( 一) 、分 析 题 ( 10 分,每题5分)1. 7 6 72 7 52. at( - ) 程序填空题( 20 分,每空2 分)【 1 】 cd 2 bc 3 ab c d 【 4 】 r etur n 0 ;【 5 】i = 3 【 6i v = 3-i 7 k
96、= 2*i -l 【 8 】i =b | b + c & & b - c1 1 .以下说法中正确的是 (懿) oB 、 a =bD 、 a =a + bA . c + + 程序总是从第一个定义的函数开始执行B . C+ + 程序总是从m a i n 函数开始执行C. C+ + 函数必须有返回值,否则不能使用函数D . C+ + 程序中有调用关系的所有函数必须放在同一个程序文件中1 2 .若 x 和 y 都 是 i n t 型 变 量 x =1 0 0 , y =2 0 0 ; 则 下 面 程 序 片 段c o u t ( y + =x , y ) e n d l ;的输出结果是)A. 200B
97、 . 30 0C. 2 0 0 , 30 0 D . 输出格式符不够, 输出不确定的值1 3 . 下列说法错误的是)A . 一个数组只允许存储同种类型的变量鼠如氐M邹B . 数组初始化时, 若给定元素个数少于数组元素, 多余数组元素自动初始化为最后一个给定元素值C. 数组名其实是数组在内存中的首地址D . 当数组名作为参数被传递给某个函数时, 原数组中元素的值可能被修改1 4 、设P 1 和P 2 是指向同一个i n t 型一维数组的指针变量, k为 i n t 型变量,则不能正确执行的语句是 ( )A . k =* p l + * p 2B . p 2 =kC. p l =p 2D . k
98、=* p l * ( * p 2 )1 5 、若有定义: i n t a 9 , * p =a ; , 则不能表示a 川地址的表达式是( )A . p + 1 B a + 1C* a + + D + + p得 分评卷人三、填 空 (1X20)1 、 设 x 和 y 都为整型变量, 则表达式( x =1 0 , y =x + x ) , y + =l的值为 【 1 】 o2 、设x为整型变量, 且 x的初值为9 , 则表达式x % 2 + ( x + 1 0 ) % 2 的值为 【 2 】。3、C+ + 中标识符只能由三种字符组成. 这三种字符是 3】,【 4 】,和【 5 】 . 其中 【 6
99、 】 类字符不能放在标识符的开头。4 、函数的涕视方式分为 【 7 】 和 【 8 】 。第_56 页 共 8 页5、设对于下列各表达式a=3、b=4、c = 5 ,求表达式的值a+-b+的值 【9】+a+(b+)的值 【10】(ab) ?a: b的值 【11】 _ _ _ _ _ _ _ _b%=c+a-c/7的值 【12】6. 假定p所指对象的值为25, p+1所指对象的值为4 2 ,则*D+的值为 【13】7、“a”在内存中占 【14】 字节,入 占 【15】 个字节。8、当使用 【16】 保留字作为函数类型时, 该函数不返回任何值。9、如果一个函数只允许同意一程序中的函数调用,则应在该
100、函数定义前加上【17】 C+保留字o10、 在定义一个字符型指针时, 可以给它初始化,目的是把字符串的 【18】放入指针变量。11. 指针变量只能存放 【19】 ,不 能 存 放 只0】 。得 分 评卷人四、简答题(5X 2)4.请用C+语言的表达式表示下列代数式。(1) J (2) -sin(x2)/?22a35.定义结构体类型s tu d e n t,该结构体包含的成员为no( 整型) 、name ( 长度为1 0的字符数组) 、address( 长度为2 0的字符数组) 、maths( 实型) 、english( 实型) , 并用stu d en t定义一个结构体变量s tu l和指向结
101、构体类型的指针变量P。得 分 评卷人五、程序填空(30)( - ) . 写出下列程序的输出结果是(515 6, )1、#includeusing namespace std;int main() float add(float,float);float a=12.68,b=56.45;c=add(a,b);第_57 页 共 8 页cout,sum=,cendl;运行结果:)float add(float x,float y) float z;z=x+y;return (z);运行结果:N置聚.区.2、#includeusing namespace std;int age(int);int m
102、ain () coutage(3)endl;阈 return 0;裂 匚 int age(int n) int c; 嶷:昌*M if(n=l) c=8;邹 else c=age(n-l)+2;刘 return (c);逢 运行结果:3、#includeusing namespace std;int main( ) int a5= 3,579,6;int i,*p=a;for(p=a;p(a+4);p+)cout*pMcoutendl;return 0;第_58 页 共 8 页(-)程序填空(2X 7)L输入两个正整数m和n ,求其最大公约数和最小公倍数。#include using name
103、space std;int main( ) int p,r,n,m,temp;coutvv”输入两个正整数n,_ m_;if(nm)12;n=m;【3】 _ _ _ _ _ _ _ _ _ _ _ _ ;p=n*m;while (m!=0)r=n%m;【4】 ;【5】 ;)coutvc最大公约数为: “ v v 【6】endl;coutv ” 最小公倍数为? 【7】endl;return 0;第_59 页 共 ) 一 页参考答案一、判断题( 1 0 分,每题1 分)1234567891 0XXXVXVVXX二、选择题( 3 0 分,每题2分)九、填空题( 2 0分 ,每空1 分)1234567
104、8ABCBCCAC91 01 11 21 31 41 5BDBBBBC卜 、简答题( 1 0 分,每题5分) 1 2 1 2 2 3 数字 4 字母 5 下划线 6 数字 7 直接调用 8间接调用 9 - 1 1 0 81114 1 2 4 1 3 2 5 1 4 2 1 5 1 1 6 v oi d 1 7 s t a t i c 1 8首地址 1 9 地址 2 0 数据- 1 1 . s q r t ( b * b - 4 * a * c ) / ( 2 * a )4 * s i n( x * x ) * R * R / 32 . s t r u c t s t u d ent i nt
105、no;c h a r na m e 1 0 ;c h a r a d d r es s 2 0 ;f l oa t m a t h s ;f oa t E ng l i s h ;) ;s t u d ent s t u l , * p ;五、阅读程序( 3 0 分)( 一) 、分析题( 5 5 6)1 . s u m = 6 9 . 1 32 . 1 23 . 3 5 7 9第_60 页 共 ) 一 页( 二)程序填空题( 14分,每空2 分)【 l 】cinnm 【 2】 temp=n 3 】 m=temp【 4】n=m 5 m=r 【 6】 n【 7】p/nC+程序设计试卷10学号 班级
106、 姓名 成绩注意事项:1、本试卷共4页 , 满 分1 0 0分 , 考 试 时 间 为120 分钟。2、答题时请使用蓝、黑钢笔或圆珠笔。3、考试形式:闭卷( 开、闭)项 目一二三四/1 .六七A总 分得 分得 分 评卷人一、判断题( 10分)1、C+中标识符中的大小写字母是没有区别的。( )2、C+中不允许使用宏定义的方法定义符号常量,只能用关键字const来定义符号常量。 ( )3、 数组赋初值时, 初始值表中的数据项的数目可以大于或等于数组元素的个数。( )4、引用是用来给某个变量以别名的变量。 对引用的操作, 事实上就是对被引用的变量的操作。 ( )5、返回值类型、参数个数和类型都相同的
107、函数也可以重载。( )6、使用关键字class定义的类中缺省的访问权限是公有( public)的,而是用关键 字 struct定 义 的 结 构 体 中 缺 省 的 访 问 权 限 是 私 有 ( private )的 。( )7、析构函数可以重载。 ( )8、 所谓私有成员是指只有类中所提供的成员函数才能直接使用他们, 任何类以第_61_页 f t 6 页外的函数对它们的访问都是非法的。 ( )9、C+程序的执行是从第一个函数开始的。 ( )10、在C+语言中,所有函数都是平行的,即在定义函数时是相互独立的,个函数并不从属于另一个函数。 ( )二、选择题*20)1、#includeusing
108、 namespace std;main()(int i,x=0;for(i=l;i10;i=i*2)x+;coutx;)上面C+语言程序的输出结果为 ( )a)5 b)10 c)0 d ) 以上答案都不对2、在 C+语言中,下列哪种函数可用于读入一行字符? ( )a) getchar() b) putchar() c) getline() d) get()3、下列选项中哪种不能用于在C+语言中定义整数数组?a) int numa= 10,20,30 ;int a; c) int num5= 10,20,30,40,50;b) int num=0,l,2,3,4; d) int num5=a,廿
109、, c, d, e;4、在 C+语言中,puts。 是a ) 在当前光标位置按标准形式输出单个字符的函数b ) 接收单个字符的函数c ) 在标准输出设备上输出字符串的函数d ) 从标准输入设备上接收字符串的函数5、在 C 语言语句 struct date today 中,today 为, date 是 类型a ) 变量、结构 b ) 结构、变量 c ) 变量、类d ) 数据类型、变量6、研究下面C 程序代码:#includeusing namespace std;main()int i ,x=0;for(i=l;i10;+i)第_62_页 f t 6 页if(i%2=l)x=x+i;elsex
110、 -;郑2孩coutxendl;)输出将是:a) 5 b) 10 c)0 d)216、研 究 卜 面程序代码:#includeusing namespace std;main()(int i ,x=0;for(i=l;i10;+i)(if(i%2=l)x=x+i;elsex - ;coutxendl;)输出将是:a) 5 b) 10 c)0 d)217、void main()(putchar(n);)上述代码的输出是a)n b)110 c)N d ) 以上都不对8、以下哪个选项是单引号的转义字符?a) b) V c) s d)sq第_63_页 f t 6 页9、gets()是a ) 在标准输出
111、的当前光标位置显示单个字符的函数b ) 从用户接受一个字符的函数c ) 在标准输出设备上输出字符串的函数d ) 从标准输入设备上接受一个字符串的函数10、在 C+语言中,下面对变量的初始化语句不合法的是a) int x,y=0; b) int x=0,y=a; c) char x=a,y=b; d) char *s=a;11、以下哪个循环使循环体至少执行1 次?a) while 循环 b)do.loop 循环 c) do.while 循环 b) for 循环12、考虑下面一段代码,执行结束后计数器ent, 的终值为int cnt=0;while(cnt-10) cnt+;a) 0 c)无限循环
112、b )-l d)出错13、C+语言中,下面哪一项是数值数据类型a) char b) string c) integer d) int14、ptr=&j;初始化ptr变量以保存a ) 变量j 的地址 b ) 变更j 的值14、考虑下面一段代码,执行结束后计数器ent, 的终值为:int cnt=0;while(cnt10) cnt+=2;a) 10 b) 12 c)无限循环 d)415、结构是 的数据类型a ) 包含另一个变量的内存地址b ) 代表同样大小的数据和同名的数据类型c ) 代表不同类型的数据的组合三、简 答 题 ( 20分)根据下面的要求步步写出正确的C+语句,注意:各个步骤之间是有
113、先后顺序的。( 1)定义两个浮点型变量fl, f2;(2) 定义一个指向浮点数变量的指针p F lo a t,将该指针初始化为指向f l ;(3) 将指针pFloat改为指向变量f2;(4) 通过pFloat指针来间接地改变变量f 2 的值为20. 3;( 5) 申请三个连续的浮点数空间,并将申请到空间的首地址赋值给pFloat;第_ 6 4 _页 f t 6 页( 6) 用 cout输出所申请到的首地址值;(7) 给第二个地址空间赋值11.3;(8) 用 cout输出第二个地址空间的地址;( 9) 释放所申请到的三个浮点型空间;( 1 0 ) 将指针pFloat设置为不指向任何地址空间:四
114、、阅 读 程 序 ( 共 4 0 分)1、( 15, )下面程序的每行前面加有行号,它是求一个数组元素的最大值,主程序中定义并初始化了 个数组,然后,调用函数max()取得其最大值,最后输出结果。填入程序中不完整部分的应有的内容。1. CL) _2. int max ( int, int );3. void main ()4. 5. int ia10= 17,2-13,6,4, 7, 23,-10,51,9;6_ (2);7. iMax_of_Array=max ( ia, 10);8. coutMax of array,iMax_of_Array;9 . )10. int max ( int
115、 array , int len)H. 12. int iMax=0;13. for ( int i=0; (3); (4)14. C5);15. return iMax;16. 2、 ( 5 ) 卜面程序的每行前面加有行号, 共 20行。 将程序中变量len. k、 chk、 函数print_func()的作用域范围的起止行号。1. #include 2. int len;3. void print_func();4. void main ( )5. 6. static char name =Zhang;7. int k=0;8. while ( name k ) 9. char chk;1
116、0. chk=namek;11. printf(%c”,chk);12. k+;13. )14. len=k;15. print_func ( );16. 17. void print_func ( )18. 19. printf(The string length=%d”Jen);20. 3、( 1 0 分 ) 读 懂 如 下 程 序 :第_ 6 5 _页 f t 6 页1. #include 2. int RectangleArea()3. 4. double *pd=new double;5. if(!pd)6. 7. coutnError memory allocation!endl;
117、8. return 1;9. 10. double &sd=*pd;11. coutthe side is:M;12. cinsd;13. coutthe area of rectangle isnsd*sdendl;14. delete &sd;15. return 0;16. )17. void main()18. 19 . if(RectangleArea()20. coutnThe program failed!nendl;21. else22. coutThe program successed! nendl;23. 请写出下列问题答案:( 每题2 分)( 1 ) 第4 行起何作用?
118、( 2 ) 第 5-9行可否省去?请说明原因。可省略。用以判断系统是否已经正确分配了内存空间,一般情况下不可省略。( 3 ) 第 14行起何作用?( 4 ) 此程序功能是什么?( 5 ) 若对“the side is:提示从键盘上输入一个实数1.2,写出整个程序的输出结果。第_66页 共 ) 一 页参考答案:一、判断题(10)12345678910XXXXXXX二选择题(30)12345678910dCacadabdc1112131415CCdac三、简答题(20)(1) float fl,f2;(2) float *pFloat=&fl;(3) pFloat=&f2;(4) *pFloat=
119、20.3(5) pFloat=new float3;(6) coutpFloat;(7) *(pFloat+1)=11.3;(8) coutpFloat+1;(9) delete pFloat3;(10) pFloat=NULL;四、阅读程序(40)1、includeint iMax_of_Array;iiMax)iMax=arrayi;2、len 220k 716chk 913print_func() 3203、( 1 ) 第4 行起何作用?动态分配一个double类型的内存空间第_ 6 7 _页 共 页(2 )第 5-9行可否省去?请说明原因。 用以判断系统是否已经正确分配了内存空间,一般情况下不可省略。若程序功能较简单可省略。( 3 ) 第 14行起何作用?动态删除分配的内存空间。(4 )此程序功单是什么?输入一正方形的边长求面积, 若能正确求解输出正方形的面积并显示 The program successed!,否则显示 The program failed!( 5 ) 若对“the side is:提示从键盘上输入一个实数1 .2 ,写出整个程序的输出结果。1.44The program is successful!第_68_页 f t 6 页