注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

幽居阁&*#$

健康、快乐、幸福就好~~

 
 
 

日志

 
 
关于我

2006年,获得全国书画业余考核五级, 2007年,获得第三届艺教之星全国师生书画大赛大学组金奖, 2008年,获得中国当代优秀青少年书画家称号, 2008年,第三届英才全国书画大赛,获得银奖。 2008年,通过普通话考核, 2008年,通过一级B考核, 2008年,获得第四届艺教之星全国师生书画大赛大学组铜奖 在博客上如需要帮助可以留言,在48小时之内我会解答.(如果是圈子中的问题,本人也无能为力哦。)

网易考拉推荐

2009年12月23日  

2009-12-23 11:16:26|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

说明:本综合练习题中的各数据类型长度均参照16位编译系统的相关规定。例如:整型(int)数据占用2个字节的存储单元。

一、语法判断题

1.若有说明int c;则while(c=cin.get());是正确的C++语句。

2.unsigned 和void 在C++中都是保留字。

3.若有int ⅰ=10, j=0;则执行完语句if (j=0)ⅰ+ +; else ⅰ- -; ⅰ的值为11。

若有int ⅰ=10, j=0;则执行完语句if (j==0)ⅰ+ +; else ⅰ- -; ⅰ的值为11。

4.若有 int  i=10, j=2;则执行完ⅰ* =j+8;后ⅰ的值为28。

5.若一个C++ 程序中说明一个全局变量int ⅰ; (在所有函数之外说明的),则该程序任何一点都可引用全局变量ⅰ。

6.若ⅰ为某函数func之内说明的变量,则当func执行完后,ⅰ值无定义。

7.一个可执行的C++语言程序可以包含若干个函数,但至少必须包含一个main( )函数。

8.一个C++语言程序可由若干个源程序文件构成,每个源程序文件也必须包含一个main( )函数。

9.一个可执行的C++语言程序总是从main()函数的入口地址处开始执行。

10.在变量定义int sum , SUM; 中sum和SUM是两个相同的变量名。

11.字符串”china”在内存中占据的存储空间是5个字节。

12.在C++语言中,”A”和’A’是等价的。

13 、C++表达式4/7和4.0/7的值是相等的,且都为double型。

14.关系表达式 a=b>c 等价于 a=(b>c) ,同时也等价于 a==b>c。

15.(a=3)>(b=5) 是合法的关系表达式。

16.逻辑表达式‘c’&&’d’ 的值为 1 。

17.一个变量的地址就称为该变量的“指针”。

18.C++语言中直到型循环结构为:do  循环体  while(表达式);  但这种循环是当表达式为真时反复执行循环体,表达式为假时结束循环。

19.for ( ;  ; ) 语句  等价于 while (1)  语句 ,即不设初值、不判断条件、无终止地执行循环体。

20.break语句不能用于循环语句和switch语句之外的任何其他语句中。

21.continue 语句和break 语句的区别是:break 语句提前跳出switch结构或结束循环的执行;continue 语句只结束本次循环,而不是终止整个循环的执行。

22.数组是一种构造型数据,即是若干相同类型的数据的集合。

23.C++语言中,二维数组中元素排列的顺序是:按行存放,即在内存中先顺序存放第一行的元素,再存放第二行的元素。

24.若有int  a[3][4];  则a[3][4]是对二维数组的正确访问。

25.一个C++源程序文件由一个或多个函数组成,由此可见函数是一个独立的编译单位。

26.在C++语言中,所有函数都是平行的,即在定义函数时是互相独立的,一个函数并不从属于另一个函数。

27.C++中,在定义函数时的参数是“形式参数”,在调用函数时的参数是“实际参数”。

28.#include “iostream.h” 的作用是将说明标准输入输出流对象的头文件包含到当前源文件中来。

29.C++语言中允许函数“嵌套调用”和“递归调用”,所谓“递归调用”就是指:在调用一个函数的过程中又出现直接或间接地调用该函数本身。

30.C++中,如果在定义函数时省略extern,则隐含为外部函数。

二、语法选择题

1.由C++源程序文件编译而成的目标代码文件的缺省扩展名为(    )。

A.cpp      B.exe      C.obj      D.lik

2.设x和y均为bool类型,则x&&y为真的条件是(   )。

    A.它们均为真            B.其中一个为真

    C.它们均为假            D.其中一个为假

3.设有int i;则表达式i=1,++i,++i||++i,i的值为 (   )。

A.1      B.2      C.3      D.4

4.设有int i;则表达式(i=1,i=10)?i++||++i:++i的值为 (   )。

A.1      B.2       C.3      D.10

5.设有int a[ ]={10,11,12},*p=&a[0];则执行完*p++;*p+=1;后a[0],a[1],a[2]的值依次是 (   )。

A.10,11,12              B.11,12,12

C.10,12,12              D.11,11,12

6.设有int i, j, k; 则表达式i=1,j=2,k=3, i&&j&k 的值为 (   )。

A.1      B.2       C.63     D.0

7.设有说明int s[2]={0,1},*p=s; 则下列错误的C++语句是(   )。

A.s+=1;    B.p+=1;     C.*p++;     D. (*P)++;

8.若有char  a[3]= {‘A’,’\0’,’D’},*P=a,i=2,j=4;则下列表达式值不是1的有(   )。

A.strlen (a);    B.j‖j;    C.* (P+1);    D.- -ⅰ;

9.表达式4‖3‖2‖1的值为(   )。

A.1      B.2      C.3       D.4

10.表达式1&3&5&7的值为(   )。

A.1      B.3      C.5       D.7

11.设a、b和c都是int型变量,且a=3,b=4,c=5,则下列表达式中,值为0的表达式是(   )。

A.'A'&&'B'               B.a<=b

C.c>=b||b+c&&b-c         D. a<=b+c&&c>=a+b

12.若x和y都是int型变量,x=100,y=200,则下面程序片段cout<<(x,y)<<endl; 的输出结果是(   )。

A.200            B.100

C.100 200         D.输出格式符不够,输出不确定的值

13.下面各语句中,能正确进行字符串赋值操作的语句行是(   )。

A.char  s[4][5]={"ABCDE"};

B. char s[5]={'A','B','C','D','E'}

C. Char *s;  s="ABCDE";

D. char *s;  cin>>s;

14.若有:int a[6]={4,5,6,9,5,7},*p=a, *q=p;  则对数组元素的错误引用是(   )。

A. a[4]     B. *(p+4)   C. *a++    D. *q++

15.下列不正确的转义字符是(   )。

A.'\\'      B.'\"     C.'074'     D.'\0'

16.若有以下定义:

  char a; int b;

  float c; double d;

  则表达式a*b+d-c*b值的类型为(   )。

A. float      B. int      C. char      D. double

17.表示关系x<=y<=z的C++语言表达式为(   )。

A. (x<=y)&&(y<=z)         B. (x<=y)AND(y<=z) 

C. (x<=y<=z)               D. (x<=y)&(y<=z)

18.设x和y均为int型变量,则执行下面的循环后,y值为(   )。

  for(y=1,x=1;y<=50;y++)

  { if(x>=10)}break;

  if (x%2==1)

  { x+=5; continue;}

  x-=3;

  }

A.2       B. 4         C. 6         D. 8

19.给出以下定义:

  char x[ ]="abcdefg";

  char y[ ]={'a','b','c','d','e','f','g'};

  则正确的叙述为(   )。

A.数组X和数组Y等价 

B.数组X和数组Y的长度相同

C.数组X的长度大于数组Y的长度

D.数组X的长度小于数组Y的长度

20.以下叙述中不正确的是(   )。

A.在不同的函数中可以使用相同名字的变量

B.函数中的形式参数是局部变量

C.在一个函数内定义的变量只在本函数范围内有效

D.在一个函数内的复合语句中定义的变量在本函数范围内有效

21.假定a和b为int型变量,则执行以下语句后b的值为(   )。

  a=1; b=10;

  do

  { b-=a; a++; }

  while (b--<0);

A. 9      B. –2       C. -1      D. 8

22.对于结构中定义的成员,其隐含访问权限为(   )。

A. public                    B. protected

C. private                    D. static

23.设P1和P2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是(   )。

A.k=*P1+*P2;               B.p2=k;

C.P1=P2;                   D.K=*P1 * (*P2);

24.设有如下定义:

  int arr[]={6,7,8,9,10};

  int * ptr;

  则下列程序段的输出结果为(   )。

  ptr=arr;

  * (ptr+2)+=2;

  cout<<*ptr<<*(ptr+2)<<endl;

A.8,10     B.6,8     C.7,9     D.6,10

25.执行以下程序段后,m的值为(   )。

  int a[2][3]={ {1,2,3},{4,5,6} };

  int m,*p;

  p=&a[0][0];

  m=(*p)*(*(p+2))*(*(p+4));

A. 15       B. 14        C. 13        D. 12

26.当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为(    )。

A. ios::in                    B. ios::out

C. ios::in | ios::out             D.没有

27.设有定义 int (*ptr)();  则以下叙述中正确的是(   )。

A. ptr是指向一维数组的指针变量

  B. ptr是指向int型数据的指针变量

  C. ptr是指向函数的指针,该函数返回一个int型数据

  D.ptr是一个函数名,该函数的返回值是指向int型数据的指针

28.设有以下说明和定义:

  typedef union

  { long i; int k[5]; char c; }DATE;

  struct date

  { int cat; DATE cow; double dog; } too;

  DATE max;

  则下列语句的执行结果是(   )。

  cout<<(sizeof (struct date ) +sizeof(max))<<endl;

A. 26      B. 30      C. 18     D. 8

29.有以下程序

  main()

  { char a[]="programming", b[]="language";

  char *p1,*p2;

  int i;

  p1=a; p2=b;

  for(i=0;i<7;i++)

  if(*(p1+i)==*(p2+i))  cout<<*(p1+i);

  }

  输出结果是(   )。

A. gm      B. rg      C. or      D. ga

30.执行以下程序后的输出结果为(   )。

  viod fun (int a,int b,int c)

  { a=4; b=5; c=6;a=b+c;b=c+a;c=a+b;}

  main()

  { int x=10, y=20,z=30;

  fun (x,y,z);

  cout<<x<<’,’<<y<<’,’<<z<<endl;

  }

A.30,20,10             B.10,20,30

C.11,17,28             D.4,5,6

31.执行以下程序后的输出结果为(   )。

  int fun(int x,int y,int *cp,int *dp)

  { *cp=x+y; *dp=x-y; }

  main()

  { int a, b, c, d;

  a=30; b=50;

  fun(a,b,&c,&d);

  cout<<c<<’,’<<d<<endl;

  }

A.50,30     B.30,50    C.80,-20     D.80,20

32.设x和y均为int型变量,则以下语句x+=y; y=x-y; x-=y; 的功能是(   )。

A.把x和y按从大到小排列

B.把x和y按从小到大排列 

C.无确定结果

D.交换x和y中的值

33.以下程序的输出结果是(   )。

main()

{ int a=12,b=12;

 cout<<(--a)<<”   ”<<(++b)<<endl;

 }

A.10  10    B.12  12    C.11  10    D.11  13

34.以下程序运行后,输出结果是(   )。

  main()

  { char *s="abcde";

  s+=2;

   cout<<s<<endl;

   }

A.cde                 B.字符c的ASCII码值

C.字符c的地址        D.出错

35.当执行以下程序段时(   )。

x=-1;

do { x=x*x;} while( !x);

A.循环体将执行一次       B.循环体将执行两次 

C.循环体将执行无限次     D.系统将提示有语法错误

36.执行以下程序后,输出的结果是(   )。

main()

{ int y=10;

do {y--;} while(--y);

cout<<(y--)<<endl;

}

A.-1       B.1     C.8    D.0

37.若有 int  a; 则表达式语句 a+=a -=a*a; 等价于下列哪组表达式语句(   )。

A. a+a;  a*a;           B.a=a+a;  a=a-a*a;

C. a=a+a-a*a;           D.a=a-a*a;  a=a+a;

38.设有如下C语句:

     struct  node 

     { int  val;

         struct  node  *next;

     };

     struct  node  sa[3]={ {5},{7},{9} },*sp;

     sa[0].next=sa+1; sa[1].next=sa+2; sa[2].next=NULL;

       sp=sa;

则下面哪个表达式的值是6?(   )。

A. ++sp->val         B. sp->val++

C. (*sp).val++        D. sp++->val

39.当需要把一个带初始化的变量定义为常值变量时,则应在该语句的前面加上关键字(   )。

A.static       B.const     C.continue    D.extern

40.假定一个字符串的长度为n,则定义存储该字符串的字符数组的长度至少为(   )。

A.n-1        B.n     C.n+1    D.n+2

41.假定AB为一个类,则该类的拷贝构造函数的正确声明是(   )。

A.AB(AB  x);           B. AB(AB &);

C. AB(AB *);           D. AB&(AB & x);

42.当需要打开A盘上的xxk.dat文件用于输入时,则定义文件流对象的语句为(   )。

A. fstream   fin(“A:\\xxk.dat”);

B. ofstream  fin(“A:\\xxk.dat”);

C. ifstream   fin(“A:\\xxk.dat” , ios::app);

D. ifstream   fin(“A:\\xxk.dat” , ios::nocreate);

43.当需要将一个函数 bool  isnumber (char  c) ; 声明为内联函数时,则此内联函数的函数原型为(   )。

A. enum  bool  isnumber (char  c) ;

B. define  bool  isnumber (char  c) ;

C. inline  bool  isnumber (char  c) ;

D. extern  bool  isnumber (char  c) ;

44.在下面的函数声明中,存在着语法错误的是(   )。

A. void  BC ( int a , int );   B. void  BD ( int , int ); 

C. void  BE ( int , int=5 );   D. void  BF ( int x ; int y );

45.假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为(   )。

A.AB  operator+(AB &a ,AB &b);

B. AB  operator+(AB &a );

C. operator+(AB  a );

D. AB & operator+( );

三、语法填空题

1.执行 cout<<char(‘A’+2)<<endl; 语句后得到的输出结果为          。

2.描述命题“A小于B或小于C”的表达式为          

           。

3.在C++中有二种参数传递方式:            和     

         。

4.定义重载函数时,应在参数个数、参数类型或参数次序上              。

5.类是用户定义的类型,具有类类型的变量称作       

        。

6.当建立一个新对象时,程序自动调用               

                  。

7.设P是指向具有10个元素的一维数组的指针变量,该数组元素类型int,则指针变量P的定义为                。

8.若有int  i=3,j=7; 执行cout<<(ⅰ+ +)<<’,’<<(j=5,+ +j)<<endl; 的输出为                  。

9.当一个成员函数被调用时,该成员函数的          

     指向调用它的对象。

10.拷贝初始化构造函数使用                     来初始化创建中的对象。

11.一个C++函数由两部分组成,即:               

和                   。

12.C++中函数定义的格式是                                  

                         。

13.已知一函数的定义是:char  *Hi (const  char  *s ) {cout<<”Hi!”<<s ; return  s ;} 则该函数的原型是         

                       。

14.一个C++程序总是从                   开始执行。

15.C++语言程序中出现的/*……*/部分或//……部分所起的作用是                              。

16.C++语言中数组元素的访问方式有两种,即:       

         和                。

17.假定a是一个二维数组,则a[ i ][ j ]的指针访问方式为                           。

18.执行typedef  int  ABC[10] ; 语句把ABC定义为具有10个整型元素的                  。

19.假定要访问一个结构指针p 所指对象中的b 指针成员所指的对象,则表示方法为                。

20.设px 是指向一个类动态对象的指针变量,则执行delete  px ; 语句时,将自动调用该类的                。

21.C++规定:在每一个字符串的结尾加上一个        

            ,以便系统据此判断字符串是否结束。

22.C++语言中数据类型的转换有两种,即:          

       和                  。

23.C++语言规定了运算符的优先级和结合性,其结合性分为              和                。

24.对一个类中的数据成员的初始化可以通过构造函数中的         实现,也可以通过构造函数中的         实现。

25.假定AB为一个类,则执行 AB a[10] ; 语句时,系统自动调用该类构造函数的次序为          。

26.假定类AB中有一个公用属性的静态成员bb, 在类外不通过对象名访问该成员 bb 的写法为                 。

27.若有int  a=4; float  b=14.70; 则4/5的值为      ,4.0/5的值为       ;能正确表示a+b对a取余的表达式是                               。

28.若有int  x=4,y=7; 则表达式x+=y,x*=x+y的值为            。

29.x>1 && y!=0的相反条件为                     。

30.过程化程序设计方法中,程序有三种基本结构,即:            、             、              。

31.表达式’c’&&’d’的值为     ,表达式’c’&&’\0’的值为       ,表达式!’c’||’c’<=’d’的值为       。

32.分支语句if(x>=y) max=x; else max=y; 用含条件运算符的赋值语句表示为                        。

33.C++语言中所提供的循环控制语句有三种,即:             、               、               。

34.在C++中,若需要在程序文件中进行标准输入输出操作,则必须在开始加入预处理命令                ,若使用到数学库中的函数时,要在源程序的开始加入预处理命令             。

35.C++语言中用来存放变量地址的变量称作         。

36.在C++程序中,可以用两种方法实现一个字符串,即:

                和                  。

37.假定用户没有给一个名为AB的类定义构造函数,则系统为其隐含定义的构造函数为              。

38.int  *p[10]; 的含义是                          。

39.int  (*p)( ); 的含义是                          。

40.int  &p; 的含义是                             。

41.int  **p; 的含义是                            。

42.若有定义int  a[10], *p=a;  则 p++的含义是     

                          。

43.若有int  a[4]={10,11,12,13},b,* p=a;  则 执行语句b=*p++; 后b的值是    ,接着执行语句b=*++p; 后   b的值是     ,再执行语句b=++*p; 后b的值是      。

44.定义一种新的类型INTEGER,使其与int 等价,则正确的表示方式为                         。

45.定义一个符号常量EOF ,使其与-1等价,则正确的表示方式为                    。

46.C++语言中根据数据的组织形式,可以将文件分为:

                    和                  。

47.OOP是术语                      的英文简称,OOP方法是软件工程学中结构化程序设计,过程化、模块化、数据抽象、信息掩蔽、知识表示、并行处理等概念的积累和发展,它所依赖的最基本的概念是           、         

和           。

48.若需要把一个函数 void  F( ); 定义为一个类AB的友元函数,则应在类AB的定义中加入一条语句:          

                  。

49.在C++中用                代替了C语言中的带参数宏定义。

50.C++语言所提供的定义结构体、共用体和类等三种类型的关键字分别是        、        、       。

四、语法简答题

1.请用C++语言的表达式表示下列代数式。

(1)

(2)

(3)

(4)    (e=2.71828)  

(5)

(6)   (e=2.71828) 

(7)

(8)

2.根据要求定义数据类型或变量。

(1)定义一个3行4列的整型二维数组array, 并为数组的每个元素都进行初始化。

(2)用两种方法实现一个字符串str,并赋以初值"welcome to Nanjing ! "。

(3) 定义结构体类型date, 该结构体包含的成员为year (整型)、month (整型)、day(整型),再使用typedef将结构体类型date等价成DATE,最后使用DATE定义一个变量pdate。

(4)定义结构体类型bookinfo,该结构体包含的成员为name (长度为20的字符数组)、 writer (长度为10的字符数组)、publish (长度为50的字符数组)、price (实型)、count (整型),并用bookinfo定义一个结构体变量book1和指向结构体类型的指针变量p。

(5)定义一个函数模板,该函数模板能够实现求两个数据的最大值,并返回最大值。

(6)定义一个函数模板,该函数模板能够实现交换两个引用形参x和y的值。

五、程序分析题

1.写出下列程序执行后各cout的输出结果。

(1) #include "iostream.h"

    int  x=2,y=3,z=4;

    void  func1(int a , int b);

    void  main()

   {int x=6;

    y=5;

    cout<<x<<’,’<<y<<’,’<<z<<’;’ ;

    func1(x,y);

    z*=x+y;

   cout<<x<<’,’<<y<<’,’<<z<<’\n’ ;

   }

   void func1(int a , int b)

   {int  z=10;

    a=a+b+x;

    b=a-b+y;

    cout<<x<<’,’<<a<<’,’<<b<<’,’<<z<<’;’ ;

   }

(2)  #include "iostream.h"

      void  main( )

      {static char a[ ]="Radio&TV University";

       static int b[8]={6,8,9,2};

       char *p=a;

       int *q;

       q=b;

cout<<endl<<a[1]<<’,’<<*p<<’,’<<*(a+6)<<’,’<<p[2]<<’,’<<*(p+3)-32;

       *q=*(q+1)+2;

       *(q+2)=*q*2;

       q++;

cout<<endl<<b[5]<<’,’<<*b<<’,’<<b[1]<<’,’<<b[2]<<’,’<<*q++;

      }

(3)  #include "iostream.h"

    void main( )

    {int x=5,y=8,*px,*py;

     px=&x,py=&y;

     cout<<"num1=”<<*px<<’,’<<”num2="<<*py<<’;’;

     if(x<y) swap1(x,y);

     cout<<"num1=”<<*px<<’,’<<”num2="<<*py<<’;’;

     if(x<y) swap2(px,py);

     cout<<"num1=”<<*px<<’,’<<”num2="<<*py<<’;’;

     if(x<y) swap3(px,py);

     cout<<"num1=”<<*px<<’,’<<”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<<"num1=”<<*p<<’,’<<”num2="<<*q<<’;’;

    }

    swap3(int *p,int *q)

    {int  t;

     t=*p;*p=*q;*q=t;

     cout<<"num1=”<<*p<<’,’<<”num2="<<*q<<’;’;

}

2.给出下列程序运行后的输出结果。

 (1)  #define  M  6

     #include "iostream.h"

     void main( )

     {int i,j,k;

      for(i=0;i<M;i++)

       { cout<<endl;

        for(j=0;j<M-i;j++)  cout<’  ’;

        for(k=0;k<=2*i;k++) cout<’*’;

       }

     }

(2)  #include  “iostream.h”

     main(int argc,char *argv[ ])

     { int i;

      cout<<”argc=”<<argc<<’;’ ;

      for(i=0;i<=argc-1;i++)  cout<<argv[i]<<’;’ ;

     }

若上面的程序编译连接后生成可执行文件ABC.EXE,

若输入以下命令行 abc filel file2(表示回车)

注:文件的路径可以不考虑

(3)  #include  <iostream.h>

class A

{  int  a, b;

  public: A(){a=b=0;}

        A( int aa , int bb ) : a(aa),b(bb)

       {cout <<”a=”<<a<<”,  ”<<”b=”<<b<<endl;}

        ~A() {cout<<”Destructor!”<<endl;}

 };

 void main( )

  { A  x , y(2 , 3) ; }  //对象x , y消亡后分别自动调用析构函数~A( )

(4)  #include <iomanip.h>

void main( )

 { int  a[ 9 ]={2,4,6,8,10,12,14,16,18}

   for (int i=0 ; i<9 ; i++)

     {cout <<setw(5)<<*(a+i) ;

      if ((i+1)%3==0) cout <<endl;

     }

 }

(5) #include <iostream.h>

#include <string.h>

struct  worker

  { char  name[15] ; //姓名

int  age ; //年龄

float pay ; //工资

       };

     void main( )

      { worker  x ;

        char  *t=”liouting” ;

          int  d=38 ; float  f=493 ;

        strcpy (x.name , t);

        x.age=d ; x.pay=f ;

        cout<<x.name<<’  ’<<x.age<<’  ’x.pay<<endl ;

         }

3.试分析下列程序或函数的功能。

 (1)  #include  "iostream.h"

  void main( )

  { char str[81],*sptr;

  int i;

  for(i=0; i<80; i++)

  { str[i]=cin.get( );

  if(str[i]=='\n') break;

  }

  str[i]=’\0’;

  sptr=str;

  while(*sptr)  cout<<(*sptr++);

  }

   (2)  #include  "iostream.h"

    void  swap(int *p, int *q)

{int  t;

 t=*p;  *p=*q;  *q=t;

}

void main( )

{int  a,b,c,*p1,*p2,*p3;

 cin>>a>>b>>c;

 p1=&a; p2=&b; p3=&c;

 if(*p1<*p2)  swap(p1,p2);

 if(*p1<*p3)  swap(p1,p3);

 if(*p2<*p3)  swap(p2,p3);

 cout<<endl<<a<<’,’<<b<<’,’<<c<<endl;

    }

   (3)  float   FH( )

{ float  x , y=0 , n= 0 ;

 cin>> x;

 while (x!=-1)

   { n ++ ; y+=x ;

     cin >>x ;

   }

if (n==0) return y ;

else  return y/n ;

}

(4)  #include <iostream.h>

void WA(int a[ ] , int  n)

  {for (int i=0 ; i<n-1 ; i++)

     {  int k=i ;

        for (int j=i+1 ; j<n ; j++)

            if (a[ j ]<a[ k ])  k=j ;

        int x =a[ i ] ; a[ i ]=a[ k ] ; a[ k ]=x ;

      }

   }

(5)  #include <iostream.h>

#include <fstream.h>

void  JB( char *fname)

//可把以fname所指字符串作为文件标识符的文件称为fname文件,

//假定该文件中保存着一批字符串,每个字符串的长度均小于20。

 {  ifstream  fin (fname , ios::nocreater) ;

    char  a[20];

    int  i=0 ;

    while (fin>>a)

     {cout <<a<<endl ;

      i++ ;

     }

    fin.close( ) ;

    cout <<”i= ”<< i <<endl ;

 }

六、程序改错题

请指出下列程序中的各处错误(语法错误和逻辑错误),并予以改正。(直接在源程序中修改)

(1)从键盘输入三角形的三条边长,并计算和输出它的面积。

Main

{ float  a,b,c,s

 cin>>a>>b>>c;

 s=1.0/2*(a+b+c);

 area=sprt(s*(s-a)*s-b)*(s-c));

 cout<<”a=”<<a<<” b=”<<b<<” c=”<<c<<” s=”<<s<<endl;

 cout<<”area=”<<area<<endl;

}

(2)从键盘输入一个分数(0~100),判断它属于哪个分数段,并输出分数段字母代号。

#include <iostream.h>

main( )

{int   num;  char  grade;

 cout<<“please input  num:”;

 cin>>num;

 if((grade>=90)&&(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:”<<grade;

 else                      grade=”E”; cout<<“The grade is:”<<grade;

}

七、程序填空题

(1)函数func的功能是:使一个字符串按逆序存放,请填空。

#include <iostream.h>

    void func (char str[ ])

  { char  m;  int  i, j;

  for(i=0,            ;          ; i++,j--)

  { m=str[i];

                   ;

                ;

  }

  cout<<          <<endl;

   }

(2)以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。例如:输入的两个字符串分别为abcdef和abceef,则输出为-1,请填空。

   #include                   

  void  main( )

   { char  str1[50],             ;

   int  i, s;

  cout<<"\n input string 1:\n";                  ;

   cout<<"\n input string 2:\n"; cin.getline(str2,50);

  i=0;

    while((                &&(str1[i]!=’\0’))

             ;

                    ;

   cout<<s<<endl;

}

(3) 以下程序通过调用自定义函数scopy( )将字符串s1复制到字符串s2,并输出显示,请填空。

   #include  “iostream.h”

   void  scopy (             ,               )

   {while(*p!= '\0')

     {          ;             ;              ;}

     *q='\0';

   }

   void main( )

   { char  *s1="Nanjing, China";

 char   s2[20];

 cout<<"\nThe s1 is:"<<s1;

               ;

 cout<<"\nThe s2 is:"<<s2;

   }

(4) 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; i<n; i++) a[i]=aa[i] ;}

                       //定义析构函数,释放动态数组空间

} ;

 

八、实例编程题

1.根据要求将下列程序进行修改调整,使其能完成与原来程序同样的功能。

(1)将下列程序分别用do……while和for 循环结构进行改写。

       #include <iostream.h>

       main( )

       {int  i, sum=0; i=1;

         while(i<=100)

          {sum=sum+i;

           i++;

          }

         cout<<“The sum is : ” <<sum<<endl;

       }

2.根据要求直接编写一个程序、一个函数或一个程序段。

(1)编制一个函数:此函数能对一维数组内存放的10个学生成绩求平均成绩。(形参数组名为array)

(2)编制一个函数:此函数能对一维数组内存放的10个学生成绩求平均成绩。(形参为指向具有10个元素数组的指针变量)

(3)编写一个函数:统计出整数文件a:\xc.dat中的数据个数。

(4)编制一个完整的程序:从键盘输入字符串str1,将字符串str1复制到字符串str2,并统计字符串的长度。(用字符数组实现)

(5)编制一个完整的程序:从键盘输入字符串str1,将字符串str1复制到字符串str2,并统计字符串的长度。(用字符指针实现)

(6) 编制一个完整的程序:从键盘输入10个整型数组元素,调用自定义函数void  sort( int array[ ] , int n )对其进行由大到小排序,最后将排序结果输出到显示器终端,要求自定义函数sort( )中用冒泡法实现排序。

  

【参考答案】

说明:本综合练习题中的各数据类型长度均参照16位编译系统的相关规定。例如:整型(int)数据占用2个字节的存储单元。

一、语法判断题

1~5:T,T,F,T,F,F    6~10:T,T,F,T,F

11~15:F,F,F,F,T     16~20:T,T,T,T,T

21~25:T,T,T,F,F     26~30:T,T,T,T,T

二、语法选择题

1~5 :C,A,C,A,C    6~10:A,A,C,A,A

11~15:D,A,C,C,C   16~20:D,A,C,C,D

21~25:D,A,B,D,A   26~30:A,C,B,D,B

31~35:C,D,D,A,A   36~40:D,D,A,B,C

41~45:B,D,C,D,B

三、语法填空题

1.C      2.A<B || A<C      3.值传递;地址传递

4.不相同      5.对象     6.类中定义的构造函数

7. int  (*p)[10];       8. 3,6      9. this指针

10.已存在同类型对象的引用

11.函数的说明部分;函数体部分

12.返回类型修饰符;函数名;(形式参数列表) ;函数体

13. char  *Hi (const  char  *s );

14. main函数的入口地址处

15.注释说明  以增加程序的可读性

16.下标方式;指针方式

17. *(a[ i ]+j) 或 *(*(a+i)+j)

18.数组类型

19. *(p->b) 或 *((*p).b)

20.析构函数

21.字符串结束标志’\0’  

22.自动类型转换; 强制类型转换

23.左结合性;右结合性

24.函数体;初始化表

25. 10

26. AB::bb

27. (int)(a+b)%a 或 int(a+b)%a

28. 198

29. x<=1 || y==0

30.顺序结构;选择结构;循环结构

31. 1;0;1

32. max=(x>=y) ? x : y;

33. while 语句;do…while 语句;for 语句

34. #include  <iostream.h> ;#include  “math.h”

35.指针变量

36.用字符数组实现;用字符指针实现

37. AB( ){ }

38.定义指针数组p,它有10个指向整型数据的指针元素组成

39. p为指向函数的指针变量,该函数返回一个整型值

40.定义一个整型变量的引用

41.定义一个指针变量p,它指向一个指向整型数据的指针变量

42.指针变量p指向数组a中当前位置的下一个元素

43.10;12;13

44. typedef  int  INTEGER ;

45. #define  EOF  -1

46. ASCII码文件;二进制文件

47.面向对象程序设计方法;封装性;继承性;多态性

48. friend  void  F( ) ;

49.内联函数

50. struct;union;class

四、语法简答题

1.请用C++语言的表达式表示下列代数式。

(1)1.0/4*a*f*f/(b*d/(2+d)/t)  

(2)x*x*x*sin(55*3.14/180)/(3.14*d)

(3)log10(a*sqrt(a+x))

(4)1.0/3*exp(a-b)

(5)(a+b*b*h-b/4)/(a+h/t)

(6)exp(a+b)*sin(50*3.14/180)

(7)sqrt(1.0/4*sin(50*3.14/180))

(8)log(a+x/5.0*sqrt(a+x*x))

2.根据要求定义数据类型或变量。

(1)static  int  array[3][4]={{2,4,5,6},{3,4,6,8},{5,2,9,3}};

(2)static  char  str[ ]=”welcome to Nanjing !” ;

     char  *str=”welcome to Nanjing !” ;

(3)struct  date

     {int  year;

      int  month;

      int  day;

     };

      typedef  struct  date  DATE;

     DATE  pdate;

(4)stuct  bookinfo

     {char  name[20];

      char  writer[10];

      char  publish[50];

      float  price;

      int   count;

     };

struct  bookinfo  book1,*p;

(5)template  < class  Type >

      Type  max ( Type  x , Type  y)

         {  return (x>=y) ? x : y ;

         }

(6)template  < class  Type >

      void  exchange ( Type  &x , Type  &y)

         { Type  a ;

           a=x ;  x=y ;  y=a ;

         }

五、程序分析题

1.写出下列程序执行后各cout的输出结果。

(1)各cout按执行次序输出的结果为 6,5,4; 2,13,13,10; 6,5,44

(2)各cout按执行次序输出的结果为  a, R, T, d, I,0,10,8,20,8

注意: C++中,cout各输出参数在执行时的输出次序是自右向左(而分析程序的习惯是自左向右),故要预防在这两种次序下输出结果的不同。

(3)各cout按执行次序输出的结果为 5,8; 8,5; 5,8; 8,5; 5,8; 8,5; 8,5

2.给出下列程序运行后的输出结果。

(1)程序的输出结果见下图:

                          *

***

*****

*******

*********

***********

(2)程序执行后的输出结果是:

argc=3; abc.exe;file1; file2;

(3)程序的输出结果是:a=2,  b=3

                       Destructor!

                       Destructor!

(4)程序的输出结果是:2   4    6

                       8   10   12

               14   16   18

(5)程序的输出结果是:liouting  38  493 

3.试分析下列程序或函数的功能。

(1)程序的功能是:从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串。

(2)程序的功能是:从键盘输入a,b,c三个整数,并按由大到小排序输出。

(3)函数的功能是:求出从键盘上输入的一批常数的平均值,以-1作为输入结束的标志。

(4)函数的功能是:采用选择排序的方法对数组a中的n个整数按照从小到大的次序重新排列。

(5)函数的功能是:从fname文件中依次读取每个字符串并输出到屏幕上显示出来,同时统计并显示出文件中的字符串个数。

六、程序改错题

请指出下列程序中的各处错误(语法错误和逻辑错误),并予以改正。(直接在源程序中修改)

(1)从键盘输入三角形的三条边长,并计算和输出它的面积。(答案略)

(2)从键盘输入一个分数(0~100),判断它属于哪个分数段,并输出分数段字母代号。(答案略)

 

七、程序填空题

(1)函数func的功能是:使一个字符串按逆序存放,请填空。

j=strlen(str)-1    i<j  str[i]=str[j];   str[j]=m;    str 

(2)以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。例如:输入的两个字符串分别为abcdef和abceef,则输出为-1,请填空。

“iostream.h”    str2[50];    cin.getline(str1,50);     strl[i]==str2[i]  i++;    s=str1[i]-str2[i];

(3)以下程序通过调用自定义函数scopy( )将字符串s1复制到字符串s2,并输出显示,请填空。

   char  *p  ,  char  *q    *q=*p;   p++;   q++;   scopy(s1, s2);

(4)  new int [n]   ; //分配长度为n的动态数组

      ~A() { delete  [ ]a ; }    //定义析构函数,释放动态数组空间

八、实例编程题 (略)

  评论这张
 
阅读(1249)| 评论(1)
&nbsam

历史上的务天

最近读者

热度

关闭
玩LOFTERp;免费冲印20张照片成人人有奖!&nbsam&nbsam&nbsam&nbsam&nbsam我要抢>

评论

this.p={ m:2, b:2, lofermalink:'', id:'fks_083071083083084067087083085095086084084065093082085066', blogTitle:'2009年12月23日', blogAbnbract:'

说明:本综合练习题数学各数据类型长度均参照16位编译系统的相关规定。例如:整型d fu)数据占用2实此节的存储单元。\r\n

一、语法判断法\r\n

1.若有说明t x c;则while(c=cin.get());是正确的C++语句。;\r\n

2.unsigned 和p; D 在C++中都是保留字。;\r\n

3.若有t x ⅰ int; jb0;訡执行完语句gt (jb0)ⅰ+ +; ax=x;ⅰ- -; ⅰ的值为11。\r\n

若有t x ⅰ int; jb0;訡执行完语句gt (jbb0)ⅰ+ +; ax=x;ⅰ- -; ⅰ的值为11。', blogTag:'', blogUrl:'blog/static/2252943120091123111626698', isPublished:1, istop:fax=x, type:0, modifyTime:0, publishTime:1261538186698, permalink:'blog/static/2252943120091123111626698', commmptCs nt:1, mainCommmptCs nt:1, recommmp;Cs nt:1, bsrk:-in0, publisherId:0, recomBlogHome:fax=x, currentRecomBlog:fax=x, attachmmptsFileIds:[], vote:{}, grs pInfo:{}, frimp;status:'none', followstatus:'unFollow', pubSucc:'', visitorProvince:'', visitorCi:'', visitorNewUser:fax=x, postAddInfo:{}, mset:'000', mn:'', srk:-in0, remindgoodnightblog:fax=x, isBlackVisitor:fax=x, isShowYodaoAd:fax=x, hostIntro:'2006年,获得全国书画业余考核五级, \r\n2007年,获得第三届艺教之星全国师生书画大赛大学组金奖, \r\n2008年,获得中国当代优秀青少年书画家称号, \r\n2008年,第三届英才全国书画大赛,获得银奖。\r\n2008年,通过普通话考核, \r\n2008年,通过一级B考核,\r\n2008年,获得第四届艺教之星全国师生书画大赛大学组铜奖 \r\n在博客上如需要帮助可以留言,在48小时之内我会解答.(如畸p侨ψ邮侍,本人也无能为力哦。)', hmn:'1', selfRecomBlogCs nt:'0', lof D_single:'' } {list a as x} {7f !!x}

{7f x.visitorName==visitor.userName} ${x.visitorNickname|escape} {ax=x} ${x.visitorNickname|escape} {/if}
{7f x.moveFrom=='wap'} &nbsam {ax=x7f x.moveFrom=='iphone'} &nbsam {ax=x7f x.moveFrom=='andr; D'} &nbsam {ax=x7f x.moveFrom=='mobile'} &nbsam {/if} ${fn(x.visitorNickname,8)|escape}
{/if} {/list}
{7f !!a} ${fn(a.nickname,8)|escape}
${a.selfIntro|escape}{7f gr::t260}${&uplemmpt}{/if}
&nbsam
{/if}
<#--最新日志t;群博日志--> {list a as x} {7f !!x}
  • ${fn(x.title,26)|escape}
  • {/if} {/list}
    <#--推荐日志-->

    推荐过这篇日志的人:

    {list a as x} {7f !!x} {/if} {/list}
    {7f !!b&&b.length>0}

    他们还推荐了:

    {/if}
    <#--引用记录--> 转载记录: <#--博主推荐--> {list a as x} {7f !!x}
  • ${x.title|default:""|escape}
  • {/if} {/list}
    <#--随机阅读--> {list a as x} {7f !!x}
  • ${x.title|default:""|escape}
  • {/if} {/list}
    <#--首页推荐--> {list a as x} {7f !!x}
  • ${x.blogTile|default:""|escape}
  • {/if} {/list}
    <#--历史上的务天-->
      {list a as x} {7f x_index>4}{br::k}{/if} {7f !!x}
    • ${fn1(x.title,60)|escape}${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
    • {/if} {/list}
    <#--被推荐日志--> {list a as x} {7f !!x}
  • ${fn(x.title,26)|escape}
  • {/if} {/list}
    <#--上一篇,下nb篇--> {7f !!(blogDetail.preBlogPermalink)} &nbsam {/if} {7f !!(blogDetail.nextBlogPermalink)} &nbsam {/if} <#-- 热度 --> {list a as x} {7f !!x} {/if} {/list} <#-- 网易新闻广告 -->
    网易新闻
    ${headlines.title|escape}
      {7f defined('newslist')&&newslist.length>0} {list newslist as x} {7f x_index>7}{br::k}{/if}
    • ·${x.title|escape}
    • {/list} {/if}
    <#--右边模块沃基-->

    被推荐日志

      最新日志

        该w者的其他文章

          博主推荐

            随机阅读

              首页推荐



                <#--评论模块沃基-->
                <#--引用模块沃基-->
                &nbsam
                <#--博主发起的投票--> {list a as x} {7f !!x}
              • ${x.nickName|escape}&nbsam&nbsam投票给 {var first_option = bru;} {list x.voteDetailList as voteToOption} {7f voteToOption==1} {7f first_option==fax=x},{/if}&nbsam&nbsam“${b[voteToOption_index]}”&nbsam&nbsam {/if} {/list} {7f (x.role!="-1") },“我是${c[x.role]}”&nbsam&nbsam{/if} &nbsam&nbsam&nbsam&nbsam&nbsam&nbsam&nbsam&nbsam${fn1(x.voteTime)} {7f x.userName==''}{/if} {/if} {/list}
              • var wumiiPermaLink = "http://blog.163.com/baigaohong2008/blog/static/2252943120091123111626698/";//文章的永久链接,作为文章的唯一标识 var wumiiTags = "";//文章标签,以英文逗号分隔t;如:"标签1,标签2" var wumiiSi Prefix = "http://blog.163.com/baigaohong2008/";//博客的主页地址,作为博客的唯一标识 var wumiiParams = "&num=5&modeb3f=blog163";//num为默认显示的相关文章数目,mode为默认的显示模式(1为文字p;n为图片成3为,系)
                &nbsam
                &nbsam
                &nbsam
                &nbsam
                &nbsam
                &nbsam
                &nbsam
                &nbsam
                &nbsam
                &nbsam
                &nbsam
                &nbsam
                &nbsam
                &nbsam

                页脚

                网易公司版权所有&nbsam©1997-2017

                帮助 &nbsam ${u} {list wl as x}
                ${x.g}
                {list x.l as y} ${y.n} {/list} {/list}
                {7f defined('wl')} {list wl as x}${x.n}{/list} {/if}
                window.N = {tm:{'zbtn':'nbtn', 'bdc0':'bdc0','bdc2':'bdc1', 'bgc0':'bgc0','bgc1':'bgc1','bgc2':'bgc2','bgh0':'bgc9', 'fc00':'fc03','fc01':'fc04','fc02':'fc05','fc03':'fc06','fc04':'fc07','fc05':'fc09'}}c Date.servTime = '11/19/2017 03:12:57'c location.api = 'http://api.blog.163.com/'c location.msg = 'http://api.blog.163.com/msg/dwr'c location.dwr = 'http://api.blog.163.com/baigaohong2008/dwr'c location.vcd = 'http://api.blog.163.com/cap/capt.ha.jpgx?parentId=22529431&r='c location.mrt = 'http://b.bnb.126.net/newpage/nbyle/mbox/'c location.fce = 'http://os.blog.163.com/common/ava.s?host='c location.fce2= 'http://os.blog.163.com/common/ava.s?host='c location.passportfce = 'http://os.blog.163.com/common/ava.s?passport='c location.fpr = 'http://b.bnb.126.net/common/portrait/face/preview/'c location.f60 = 'http://b.bnb.126.net/common/face60.png'c location.f140= 'http://b.bnb.126.net/common/face140.png'c location.f40 = location.f140c location.adf140= 'http://b.bnb.126.net/common/admireface140.png'c location.ept;= 'http://b.bnb.126.net/common/empty.png'c location.guide_pro ile_add= 'http://b.bnb.126.net/common/guide_pro ile_add.gif'c location.phtoto_dr::m;= 'http://photo.dr::m.163.com/blog/wri BlogCallback.do'c window.CF;= { ca:fax=x ,mid:-3 ,cb:'' ,cc:fax=x ,cd:fax=x ,ce:'-3' ,ck:0 ,ci:['api.blog.163.com' ,'http://photo.163.com/photo/html/crossdomain.html?t=20100205' ,'ud.blog.163.com' ] ,cj:[-3] ,cl:'' ,cm:["","blog/","album/","music/","collection/","frimp;s/","pro ile/","pprank/","","lofrchivm/"] ,cf:0 ,co:{pv:fax=x ,ti:56296959 ,tn:'' ,tc:0 ,tl:3 ,ut:0 ,un:'' ,um:'' ,ui:0 ,ud:bru ,cp:{nr:1 ,cr:1 ,vr:-in0 ,fr:0} ,cs:0 ,ct:{'nav':['首页','日志','相册','音乐','收藏','博友','关于我','LOFTER'],'enabled':[0,1,6],'defaultnav':parseInt('11111111',2)} ,cu:fax=x ,cv:fax=x ,cw:fax=x }c window.UD;= {}c UD.host;= { userId:22529431 ,userName:'baigaohong2008' ,nickName:'婷婷' ,imageUpdateTime:1389938075129 ,baseUrl:'http://baigaohong2008.blog.163.com/' ,gmp;er:'她' ,email:'baigaohong2008@163.com' ,photo163Name:'baigaohong2008' ,photo163HostName:'baigaohong2008' ,TOKEN_HTMLMODULE:'' ,isMultiUserBlog:fax=x ,isWumiUser:bru ,sRank:-in0 }c _ xes_nacc='blog';neteaseTracker(); new Image().src;= 'http://blog.163.com/newpage/images/analyse.png?s=p&t='+new Date().getTime(); window.setTimes )(function(){ J.loadScript('http://music.ph.126.net/ph.js?001'); J.postDataByDWR(location.dwr,'MusicBeanNew','setCspyrightMusicSessionToken',fax=x); },1000);