回 帖 发 新 帖 刷新版面

主题:C++的几个问题

一、单选题(每小题2分,共12分)
    1.在每个C++程序中都必须包含有这样一个函数,该函数的函数名为________。
        A main      B MAIN      C name      D function

    2.设x和y均为bool量,则x && y为真的条件是________。
        A 它们均为真      B 其中一个为真      C 它们均为假      D 其中一个为假

    3. 下面的哪一个保留字不能作为函数的返回类型?________
        A void      B int      C new      D long

    4. 假定a为一个整型数组名,则元素a[4]的字节地址为_______。
        A a+4      B a+8      C a+16      D a+32

    5.假定AB为一个类,则执行“AB a(4), b[3], *p[2];”语句时,自动调用该类构造函数的次数为________。
         A 3      B 4      C 6      D 9

    6.假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为:________  
         A  AB operator +(AB& a, AB& b);
         B  AB operator +(AB& a);
         C  operator +(AB a);
         A  AB& operator +();

二、填空题(每小题2分,共24分)
    1.C++语言中的每条基本语句以________作为结束符,每条复合语句以________作为结束符。

    2.执行“cout<<char('A'+2)<<endl;”语句后得到的输出结果为________。

    3.float和double类型的大小分别为________和________。
    4. 算术表达式 对应的C++表达式为________________。
    5. 关系表达式x+y>5的相反表达式为____________。

6.假定一个一维数组的定义为“char* a[8];”,则该数组所含元素的个数为________,

所占存储空间的字节数为________。

    7.变量分为全局和局部两种,________变量没有赋初值时,其值是不确定的。

    8. 假定a是一个二维数组,则a[i][j]的指针访问方式为____________。
         
    9. 假定一个结构类型的定义为:

           struct D{int a; union {int b; double c;}; D* d[2];};

则该类型的大小为________字节。

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

可以通过构造函数中的____________实现。

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

次数为________。

12. 假定类AB中有一个公用属性的静态数据成员bb,在类外不通过对象名访问该

成员bb的写法为____________。

三、给出下列程序运行后的输出结果(每小题6分,共30分)
    1. #include<iostream.h>
       void SB(char ch) {
       switch(ch) {
         case 'A': case 'a':
         cout<<"well!";break;
         case 'B': case 'b':
         cout<<"good!";break;
         case 'C': case 'c':
         cout<<"pass!";break;
         default:
             cout<<"bad!";break;
       }
       }
       void main() {
         char a1='b',a2='C',a3='f';
       SB(a1);SB(a2);SB(a3);SB('A');
       cout<<endl;
       }
    



    2. #include<iostream.h>
       #include<string.h>
       void main() {
           char* a[5]={"student","worker","cadre","soldier","peasant"};
       char *p1, *p2;
       p1=p2=a[0];
       for(int i=0;i<5;i++) {
       if(strcmp(a[i], p1)>0) p1=a[i];
       if(strcmp(a[i], p2)<0) p2=a[i];
           }
       cout<<p1<<' '<<p2<<endl;
       }




    3. #include<iostream.h>
       int a=5;
       void main() {
       int a=10, b=20;
       cout<<a<<' '<<b<<endl;
       {  int a=0,b=0;
          for(int i=1; i<6; i++) {
               a+=i; b+=a;
          }
          cout<<a<<' '<<b<<' '<<::a<<endl;
       }
       cout<<a<<' '<<b<<endl;
       }




    4. #include<iomanip.h>
       int LB(int *a, int n) {
       int s=1;
       for(int i=0;i<n;i++)
       s*=*a++;
       return s;
       }
       void main() {
       int a[]={1,2,3,4,5,6,7,8};
       int b=LB(a,5)+LB(&a[3],3);
       cout<<"b="<<b<<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;
       }



四、写出下列每个函数的功能(每小题6分,共24分)
    1. #include<iostream.h>
       int SA(int a, int b) {
       if(a>b) return 1;
       else if(a==b) return 0;
       else return -1;
       }




    2. float FI(int n) {
          //n为大于等于1的整数
       float x,y=0;
       do {
       cin>>x;
       n--; y+=x*x;
       } while(n>0);
       return y;
       }




    3. template<class Type>
       void WE(Type a[], Type b[], int n) {
       for(int i=0;i<n;i++)
       b[n-i-1]=a[i];
       }




    4. struct StrNode {
           char name[15];  //字符串域
       StrNode *next;  //指针域
       };
       void QB(StrNode*& f, int n) {
       if(n==0) {f=NULL; return;}
       f=new StrNode;
       cin>>f->name;
       StrNode* p=f;
       while(--n) {
       p=p->next=new StrNode;
       cin>>p->name;
       }
       p->next=NULL;
       }




五、编写程序,把从键盘上输入的一批整数(以-1作为终止输入的标志)保存到文本文件“a:xxk1.dat”中。(10分)




回复列表 (共26个回复)

11 楼

编写程序,从保存整数的文本文件“a:xxk1.dat”中依次取出每个数据并显示出来,同时统计并显示出所有数据的个数。

12 楼

#include "stdlib.h"
#include "iostream.h"
#include "fstream.h"
void main()
{
int num;
ofstream f("e:\\xxk1.dat",ios::out,ios::binary);
if(!f)
{
cout<<"文件打开失败"<<endl;
exit(1);
}
cin>>num;
while(num!=-1)
{
f.write((char *) &num,sizeof(int));
cin>>num;
}
f.close();
cout<<"文件内容写入成功!"<<endl;
}
前面的就不写哒,
就写那个显示的咯
fstream infile;
infile.open("要打开的文件",ios::in|ios::binary)
infile.read((char *)

太没有味哒,
出点难的咯,

13 楼

第一大题的第5题应该是B
第一大题的第6题应该是B

14 楼

一AACBB(不确定,指针应该不会调用吧,等一下看下书先)
6 不是AB operator+(AB a);吗?

15 楼

are you ready?
呵呵我可一个都不会,

16 楼

就是,我也是一个都不会!

17 楼

题目至少应该给出编译器的类型吧,要知道16位编译器和32位编译器中int类型的字节数是不一样的

18 楼

呵呵,不如集合几个志同道合的人,自己开一个项目做做更加有意思.
总是做课本的题目,脑筋会变懒的.

19 楼

我是新来的 有什么好玩的项目记得算我一份~~~就当实习实习
不过我是菜鸟 初学者 大家多多照顾哦

20 楼

挖!你真强!怎么和我们期末考试题差不多!
弟弟!是哪个学校的?》

我来回复

您尚未登录,请登录后再回复。点此登录或注册