c复习资料及答案_第1页
c复习资料及答案_第2页
c复习资料及答案_第3页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C+复习资料及答案一、 判断题1 在变量定义int sum , SUM;中sum和SUM是两个相同的变量名。(N )2、 字符串” china在'内存中占据的存储空间是5个字节。(N )3、 在C+语言中,” A和A是等价的。(N )4、 C+表达式4/7和4.0/7的值是相等的,且都为double型。(N )5、 关系表达式 a=b>c等价于 a=(b>c),同时也等价于a=b>c。( N )6、 continue语句和break语句的区别是:break语句提前跳出 switch结构或结束循环的执 行;continue语句只结束本次循环,而不是终止整个循环的执行。(

2、Y7、 数组是一种 构造型数据,即是若干相同类型的数据的集合。()8、 C+语言中,二维数组中元素排列的顺序是:按行存放,即在内存中先顺序存放第一行的元素,再存放第二行的元素。()9、 #include“ iostream的作用是将说明标准输入输出流对象的头文件包含到当前源文件中 来。(Y10、 C+语言中允许函数“嵌套调用”和“递归调用”,所谓“递归调用”就是指:在调用一个函数的过程中又出现直接或间接地调用该函数本身。(Y )选择题1由C+源程序文件编译而成的目标代码文件的缺省扩展名为(C )A) .cppB).exe C).objD).lik2、设x和y均为bool类型(bool类型:1或

3、0),则x&&y为真的条件是(A )A).它们均为真B).其中一个为真C).它们均为假D).其中一个为假3、设有 int i ;则表达式 i=1,+i,+i|+i,i 的值为 (C )A).1B).2C).3D).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 = 1A).1B).2C).3D).105、 设有 int a

4、=10,11,12,*p=&a0;则执行完 *p+;*p+=1;后 a0,a1,a2的值依次是 ()A).10,11,12B).11,12,12C).10,12,12D).11,11,126、 设a、b和c都是int型变量,且a=3,b=4,c=5,则下列表达式中,值为0的表达式是()A).'A'&&'B'1B).a<=b 1C).c>=b|b+c&&b-c1D). a<=b+c&&c>=a+b7、若x和y都是int型变量,x=100,y=200,则下面程序片段 cout<&l

5、t;(x,y)<<endl;的输出结果是()解析:语句中遵循优先级高的优先执行的原则,括号优先级最高,所以 (x, y) 最先计算。这是一个逗号表达式,注意,是一个表达式,是表达式就有值。逗号 表达式的值等于最右边的那个值,即x,y,z的值是z,依次类推。所以(x,y)=y=200,最后执行语句其他部分,输出200A).2OOB).100C).100 200D).输出格式符不够,输出不确定的值8、下面各语句中,能正确进行字符串赋值操作的语句行是()A).chars4 5="ABCDE"'A','B',C,'D',&

6、#39;E')C). Char *s; s="ABCDE"9、若有:int a6=4,5,6,9,5,7,*p=a, *q=p;B) . char s5='A','B',C,'D','E'( char s6=D). char *s;cin> >s;则对数组元素的错误引用是()A). a4B). *(p+4)C). *a+ (变量才能加减)D). *q+10、下列不正确的转义字符是()A).''B).'"C).'074'D).'0

7、9;11、假定a和b为int型变量,则执行以下语句后 b的值为()a=1;b=10;do b-=a; a+; while (b-<0);A). 9B). -C). -1D). 812、对于结构中定义的成员,其隐含访问权限为()A). publicB). protectedC) . privateD). static13、 设P1和P2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的 语句是()A).k=*P1+*P2;B).p2=k; C).P仁 P2;D).K=*P1 * (*P2);14、设有如下定义:int arr=6,7,8,9,10;int * ptr

8、;则下列程序段的输出结果为()ptr=arr;* (ptr+2)+=2;cout<<*ptr<<*(ptr+2)<<e ndl;A).8,10B).6,8C).7,9D).6,1015、执行以下程序段后,m的值为()int a23= 1,2,3,4,5,6 ;int m,*p;p=&a00;m=(*p)*(*(p+2)*(*(p+4);A). 15B). 14C). 13D). 12填空题1 描述命题“ A小于B或小于C”的表达式为 。2、 在 C+中有二种参数传递方式: 和。3、 定义重载函数时,应在参数个数、参数类型或参数次序上 。4、 拷贝初始

9、化构造函数使用 来初始化创建中的对象。5、 一个 C+函数由两部分组成,即:和。6、 一个C+程序总是从开始执行。7、C+语言程序中出现的/* */部分或II 部分所起的作用8、 C+语言中数组元素的访问方式有两种,即:和。9、 C+规定:在每一个字符串的结尾加上一个 ,以便系统据此判断字 符串是否结束。10、 C+语言中数据类型的转换有两种,即:和。11 >C+语言规定了运算符的优先级和结合性,其结合性分为:和。12、若有int x=4,y=7;则表达式x+=y,x*=x+y 的值为。13、 x>1 && y!=0 的相反条件为 。14、过程化程序设计方法中,程序

10、由三种基本结构,即:顺序结构、。15、在C+中,若需要在程序文件中进行标准输入输出操作,则必须在开始加入预处理命令 ,若使用到数学库中的函数时,要在源程序的开始加入预处理命令。16、 C+语言中用来存放变量地址的变量称作 。仃、int *p10;的含义是 。18、int *p; 的含义是 。四、简答题1、请用C+语言的表达式表示下列代数式。(1)x3s in 55d1a be3(e=2.71828).2,babh -4a hta eb ?sin50 (e=2.71828)(axax2)In52、根据要求完成下列各题。(1)用两种方法实现一个字符串str,并赋以初值” welcome to Na

11、njing ! 。”(2) 定义结构体类型 date, 该结构体包含的成员为 再使用 typedef将结构体类型 date 等价成year (整型卜 mo nth (整型)、day(整型),五、程序分析题1 、写出下列程序运行结果:(1) #include "iostream.h" void main( )int x=5,y=8,*px,*py; px=&x,py=&y; cout<<"num1= ” <<*px<< if(x<y) swap1(x,y); cout<<"num1= ”

12、 <<*px<< if(x<y) swap2(px,py);cout<<"num1= ” <<*px<< ', ' if(x<y) swap3(px,py); cout<<"num1= ”<<*px<<DATE,最后使用4分)<<”DATE 定义一个变量 pdate。<<”num2="<<*py<< ' '<<”num2="<<*py<&l

13、t; ' 'num2="<<*py<< ' '<<”num2="<<*py<< ' 'swap1(int a,int b) int t;t=a; a=b; b=t; cout<<"num1= ”<<a<<',<<” num2="<<b<< ' 'swap2(int *p,int *q) int *t;t=p; p=q; q=t; cout<<

14、"num1= ”<<*p<< '<<”num2="<<*q<< ' 'swap3(int *p,int *q)int t;t=*p;*p=*q;*q=t;cout<<"num1= ” <<*p<< '<<”num2="<<*q<< ' '(2) #include “ iostream.h ” ( 3 分) main(int argc,char *argv ) int i;cou

15、t<< ” argc= ” <<argc<< ' ; ' ; for(i=0;i<=argc- 1;i+) cout<<argvi<<' ; ' ;若上面的程序编译 '连接后生成可执行文件 ABC.EXE,若输入以下命令行 abc filel file2 <enter> (表示回车 )注:文件的路径可以不考虑(3) #include <iostream.h>(4 分)class A int a, b;public: A()a=b=0;A( int aa , int

16、bb ) : a(aa),b(bb)cout << ” a=” <<a<<” <,<” b=” <<b<<endl;A() cout<< ” Destructor! d”l; <<en;void main( ) A x , y(2 , 3) ; /对象 x , y 消亡后分别自动调用析构函数 A( )2、 试分析下列程序或函数的功能。(4分)(1) #include "iostream.h" void main( ) char str81,*sptr; int i; for(i=

17、0; i<80; i+) stri=cin.get( ); if(stri='n') break; stri= '0' sptr=str;while(*sptr) cout<<(*sptr+);3、程序改错题: (4 分 )从键盘输入一个分数( 0100),判断它属于哪个分数段,并输出分数段字母代号。#include <iostream.h>main( )int num; char grade;cout<< “ please inputnum: ”; cin>>num;if(grade>=90)&

18、;&(grade<=100) grade= ” A” ; cout<< “ The grade is:” <<grade;if (grade>=80)grade= ” B” ; cout<<“ The grade is:” <<grade;if (grade>=70)grade= ” C” ; cout<<“ The grade is:” <<grade;if (grade>=60)grade= ” D” ; cout<<“ The grade is:” <<grad

19、e;elsegrade= ” E” ; cout<<“ The grade is:” <<grade;4、程序填空题:(每空1分,共8分)(1 )以下程序通过调用自定义函数scopy()将字符串si复制到字符串s2,并输出显示,请填空。#i nclude“ iostream.h ”void scopy ( , )while(*p!= '0') ; ; *q='0'void mai n() char *s1="Nanji ng, Chi na"char s220;cout<<"nThe s1 is:

20、"<<s1;cout<<"nThe s2 is:"<<s2; class Aint *a ;int n;public: A(i ntnn=0) : n(nn) if(n=0)a=0;else a= ; /分配长度为 n的动态数组void seta(i nt *aa)for (int i=0; i<n; i+) ai=aai ; /定义析构函数,释放动态数组空间;六、编程题1、编制一个完整的程序:从键盘输入10个整型数组元素,调用自定义函数void sort( intarray , int n )对其进行由大到小排序,最后将

21、排序结果输出到显示器终端,要求自定义函数 sort()中用冒泡法实现排序。04财计C+程序设计语言答案一、判断题(10分)1 5 :F,F,F, F, F2 10:T,T,T, T, T、选择题(25 分)15 : C,A ,C,A,C610: D,A ,C,C,C11 15: D,A,B ,D ,A16 20: C,D,D ,A ,A、语法填空题(15分)1、A<B II A<C 。2、值传递 和地址传递 。3、不相同 。4、已存在同类型对象的引用。5、函数的说明部分和函数体部分。6、main 函数的入口地址处。7、注释说明,以增加程序的可读性 。8下标方式和指针方式。9、字符串

22、结束标志'0'10、自动类型转换 和 强制类型转换 。11、左结合性 和 右结合性。12、198。13、x<=1| y=0。14、 诜择结构 、循环结构。15、#inelude <iostream.h> , #inelude “ math.h。16、指针变量。仃、定义指针数组D,它有10个指向整型数据的指针元素组成18、定义一个指针变量 p,它指向一个指向整型数据的指针变量。四、简答题(16分)1、请用C+语言的表达式表示下列代数式。(1) x*x*x*si n(55*3.14/180)/(3.14*d)(2) 1.0/3*exp(a-b)(3) (a+b*b

23、*h-b/4)/(a+h/t)(4) exp(a+b)*si n(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 dateint year;int mon th;int day;typedef struct date DATE;DATE pdate;五、程序分析题1、(1)、各cout按执行次序输出的结果为5,8; 8,5; 5,8; 8,5; 5,8; 8,5; 8

24、,5(2、程序执行后的输出结果是:argc=3; abc.exe ; file1; file2;(3) 、程序的输出结果是:a=2, b=3Destructor!2、3、Destructor!程序的功能是:从键盘上输入一行字符,存入一个字符数组中改错题:,然后输出该字符串。#in clude <iostream.h>mai n()int num; char grade; cout<< “ please in put num: ”; cin»num;if(grade>=90 )&&( grade<=100) else if (grade>=80) else if (grade>=70) els

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论