《c复习资料及答案.doc》由会员分享,可在线阅读,更多相关《c复习资料及答案.doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C+复习资料及答案一、 判断题1、在变量定义int sum , SUM; 中sum和SUM是两个一样的变量名。N 2、字符串china在内存中占据的存储空间是5个字节。N 3、在C+语言中,A和A是等价的。 N 4、C+表达式4/7和的值是相等的,且都为double型。 N 5、关系表达式 a=bc 等价于 a=(bc) ,同时也等价于 a=bc。 N 6、continue 语句和break 语句的区别是:break 语句提前跳出switch构造或完毕循环的执行;continue 语句只完毕本次循环,而不是终止整个循环的执行。Y 7、数组是一种构造型数据,即是假设干一样类型的数据的集合。 8、
2、C+语言中,二维数组中元素排列的顺序是:按行存放,即在内存中先顺序存放第一行的元素,再存放第二行的元素。 9、#include “iostream.h 的作用是将说明标准输入输出流对象的头文件包含到当前源文件中来。Y 10、C+语言中允许函数“嵌套调用和“递归调用,所谓“递归调用就是指:在调用一个函数的过程中又出现直接或间接地调用该函数本身。Y 二、 选择题1、由C+源程序文件编译而成的目标代码文件的缺省扩展名为 C A).cpp B).exe C).obj D).lik2、设x和y均为bool类型bool类型:1或0,那么x&y为真的条件是A A).它们均为真 B).其中一个为真 C).它们
3、均为假 D).其中一个为假3、设有int i;那么表达式i=1,+i,+i|+i,i的值为 C A).1 B).2 C).3 D).44、设有int i;那么表达式(i=1,i=10)i+|+i:+i的值为 A 解析:(i=1,i=10)i+|+i:+i(i=1,i=10)是真的情况表达式的值=i+|+i是假的时候=+i(i=1,i=10)这个是逗号运算符最终i=10,是真所以表达式的值是i+|+i = 10 |12 = 1 A).1 B).2 C).3 D).105、设有int a =10,11,12,*p=&a0;那么执行完*p+;*p+=1;后a0,a1,a2的值依次是 A).10,11
4、,12 B).11,12,12 C).10,12,12 D).11,11,126、设a、b和c都是int型变量,且a=3,b=4,c=5,那么以下表达式中,值为0的表达式是 A).A&B 1 B).a=b|b+c&b-c 1 D). a=a+b7、假设x和y都是int型变量,x=100,y=200,那么下面程序片段cout(x,y)s;9、假设有:int a6=4,5,6,9,5,7,*p=a, *q=p; 那么对数组元素的错误引用是 A). a4 B). *(p+4) C). *a+(变量才能加减) D). *q+10、以下不正确的转义字符是 A). B). C).074 D).011、假定
5、a和b为int型变量,那么执行以下语句后b的值为 a=1; b=10;do b-=a; a+; while (b-0);A). 9 B). 2 C). -1 D). 812、对于构造中定义的成员,其隐含访问权限为 A). public B). protected C). private D). static13、设P1和P2是指向同一个int型一维数组的指针变量,k为int型变量,那么不能正确执行的语句是 A).k=*P1+*P2; B).p2=k; C).P1=P2; D).K=*P1 * (*P2);14、设有如下定义:int arr=6,7,8,9,10;int * ptr;那么以下程序
6、段的输出结果为 ptr=arr;* (ptr+2)+=2;cout*ptr*(ptr+2)1 & y!=0的相反条件为 。14、过程化程序设计方法中,程序由三种根本构造,即:顺序构造、 、 。15、在C+中,假设需要在程序文件中进展标准输入输出操作,那么必须在开场参加预处理命令 ,假设使用到数学库中的函数时,要在源程序的开场参加预处理命令 。16、C+语言中用来存放变量地址的变量称作 。17、int *p10; 的含义是 。18、int *p; 的含义是 。四、简答题1、请用C+语言的表达式表示以下代数式。(1) (2) (e=2.71828) (3) (4) (e=2.71828) (5)
7、2、根据要求完成以下各题。(1) 用两种方法实现一个字符串str,并赋以初值welcome to Nanjing !。 (2) 定义构造体类型date, 该构造体包含的成员为year (整型)、month (整型)、day(整型),再使用typedef 将构造体类型date等价成DATE,最后使用DATE定义一个变量pdate。五、程序分析题1、写出以下程序运行结果:(1) #include iostream.h 4分 void main( ) int x=5,y=8,*px,*py; px=&x,py=&y; coutnum1=*px,num2=*py; if(xy) swap1(x,y);
8、 coutnum1=*px,num2=*py; if(xy) swap2(px,py);coutnum1=*px,num2=*py; if(xy) swap3(px,py); coutnum1=*px,num2=*py; swap1(int a,int b) int t; t=a; a=b; b=t; coutnum1=a,num2=b; swap2(int *p,int *q) int *t; t=p; p=q; q=t; coutnum1=*p,num2=*q; swap3(int *p,int *q) int t; t=*p;*p=*q;*q=t; coutnum1=*p,num2=*q
9、;(2) #include “iostream.h 3分 main(int argc,char *argv ) int i; coutargc=argc; ; for(i=0;i=argc-1;i+) coutargvi; ; 假设上面的程序编译连接后生成可执行文件ABC.EXE, 假设输入以下命令行 abc filel file2 (表示回车) 注:文件的路径可以不考虑(3) #include 4分class A int a, b; public: A()a=b=0; A( int aa , int bb ) : a(aa),b(bb) cout a=a, b=bendl; A() cout
10、Destructor!endl; ; void main( ) A x , y(2 , 3) ; /对象x , y消亡后分别自动调用析构函数A( )2、试分析以下程序或函数的功能。4分 (1) #include iostream.hvoid main( ) char str81,*sptr;int i;for(i=0; i80; i+) stri=cin.get( );if(stri=n) break;stri=0;sptr=str;while(*sptr) cout(*sptr+);3、程序改错题:(4分)从键盘输入一个分数0100,判断它属于哪个分数段,并输出分数段字母代号。#includ
11、e main( )int num; char grade; coutnum; if(grade=90)&(grade=100) grade=A; cout“The grade is:=80) grade=B; cout“The grade is:=70) grade=C; cout“The grade is:=60) grade=D; cout“The grade is:grade; else grade=E; cout“The grade is:grade;4、程序填空题: (每空1分,共8分)1以下程序通过调用自定义函数scopy( )将字符串s1复制到字符串s2,并输出显示,请填空。 #
12、include “iostream.h void scopy ( , ) while(*p!= 0) ; ; ; *q=0; void main( ) char *s1=Nanjing, China; char s220; coutnThe s1 is:s1; ; coutnThe s2 is:s2; (2) class A int *a ; int n;public: A(int nn=0) : n(nn) if(n=0) a=0; else a= ; /分配长度为n的动态数组 void seta(int *aa) for (int i=0; in; i+) ai=aai ; /定义析构函数
13、,释放动态数组空间 ;六、编程题1、 编制一个完整的程序:从键盘输入10个整型数组元素,调用自定义函数void sort( int array , int n )对其进展由大到小排序,最后将排序结果输出到显示器终端,要求自定义函数sort( )中用冒泡法实现排序。04财计C+程序设计语言答案一、判断题10分1 5 :F,F,F,F,F 2 10:T,T,T,T,T二、选择题25分1 5 :C,A,C,A,C6 10:D,A,C,C,C11 15:D,A,B,D,A16 20:C,D,D,A,A三、语法填空题15分1、 AB | AC 。2、值传递 和 地址传递 。3、 不一样 。4、 已存在同
14、类型对象的引用 。5、 函数的说明局部和函数体局部。6、 main函数的入口地址处 。7、 注释说明,以增加程序的可读性 。8、 下标方式 和 指针方式 。9、 字符串完毕标志0 10、 自动类型转换 和 强制类型转换 。11、 左结合性 和 右结合性 。12、 198 。13、 x=1 | y=0 。14、选择构造 、循环构造 。15、 #include , #include “math.h 。16、 指针变量 。17、 定义指针数组p,它有10个指向整型数据的指针元素组成 。18、 定义一个指针变量p,它指向一个指向整型数据的指针变量。四、简答题16分1、请用C+语言的表达式表示以下代数式
15、。(1) x*x*x*sin(55*3.14/180)/(3.14*d) (2) 1.0/3*exp(a-b)(3) (a+b*b*h-b/4)/(a+h/t)(4) exp(a+b)*sin(50*3.14/180)(5) log(a+x/5.0*sqrt(a+x*x)2、根据要求完成以下各题。 (1) static char str =welcome to Nanjing ! ; char *str=welcome to Nanjing ! ; (2) struct date int year; int month; int day; ; typedef struct date DATE;
16、 DATE pdate; 五、程序分析题1、1、各cout按执行次序输出的结果为 5,8; 8,5; 5,8; 8,5; 5,8; 8,5; 8,52、程序执行后的输出结果是 :argc=3; abc.exe ; file1; file2;3、程序的输出结果是:a=2, b=3 Destructor! Destructor!2、程序的功能是:从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串。3、改错题:#include main( )int num; char grade; coutnum; if(grade=90)&(grade=100) grade=A; cout“The gra
17、de is:=80) grade=B; cout“The grade is:=70) grade=C; cout“The grade is:=60) grade=D; cout“The grade is:grade; else grade=E; cout“The grade is:grade;endifendifendifendif4、填空题:(1) 以下程序通过调用自定义函数scopy( )将字符串s1复制到字符串s2,并输出显示,请填空。 char *p , char *q *q=*p; p+; q+; scopy(s1, s2);(2) new int n ; /分配长度为n的动态数组 A() delete a ; /定义析构函数,释放动态数组空间六、程序设计题7分#include main()int arr 10;for(int i=0;iarr i;Sort(arr,10);for(int i=0;iarr i;void sort(int array ,int n)int i,j,k;for (i=0;i=n-1;i+) for(j=0;j=arrayj+1) k=arrayj;arrayj=arrayj+1;arrayj+1=k;