2024-11江科大vc阶段测试7_10章

上传人:h****9 文档编号:241561125 上传时间:2024-07-04 格式:DOC 页数:9 大小:44.50KB
返回 下载 相关 举报
2024-11江科大vc阶段测试7_10章_第1页
第1页 / 共9页
2024-11江科大vc阶段测试7_10章_第2页
第2页 / 共9页
2024-11江科大vc阶段测试7_10章_第3页
第3页 / 共9页
点击查看更多>>
资源描述
一、选择题(每题2分,计2 0分)C 1、设有变量定义int x=5,n,*p1=&x,*p2;下列表达式正确的是( )。 A、p2=&p1 B、*p1=*p2 C、p2=p1 D、n=*p2A 2、若有定义“int a6,*p=a;”,则对a 数组元素地址的正确引用是( )。A、p+5 B、*a+1 C、&a+1 D、*(p+2)C 3、下列引用的定义中,正确的是( )。A、int &j=new int; B、int &j=new int; j=10;C、int &j=*new int(10); D、int &*j=new int;A 4、设有变量说明int a34,(*p)4=a;则与表达式*(a+1)+2不等价的是( )A、p12 B、*(p+1)+2 C、p1+2 D、a1+2D 5、关于类的访问特性的说明,下列说法正确的是( )A 必需首先说明私有特性B 成员数据必需说明为私有的C 必需在每一个成员前单独标明访问特性D 在同一个类中,说明访问特性的关键字可以多次运用B 6、在定义类A时,下列( )不行以作为类的成员A 指向类A的对象指针B 类A的对象C 指向另一个不同的类的对象指针D 另一个不同类的对象C 7、通常拷贝初始化构造函数的参数是( )。A 某个对象 B 某个对象的成员名C 某个对象的引用名 D 指向某个对象的指针名B 8、设有如下类的定义: class Ex int *p;public:Ex()delete p;Ex(int x=0)p=new int(x);则下列对象的定义中,不正确的是( )。A、Ex ex; B、Ex ex1(50),ex2=ex1;C、Ex ex=Ex(50); DEx ex=50;D 9、下列说法中,( )是析构函数的特征A 析构函数没有返回值,所以其类型定义为voidB 析构函数名与类名相同C 析构函数必需有缺省的参数D 析构函数不能重载B 10、某结构体变量定义如下,对此结构体变量的成员的引用形式正确的是( )。sstruct stint a,b;float x,y;s1,*p;p=&s1;A、s1-aB、p-b C、p.xD、*p.y二、填空题(每空2分,计60分)l 基本概念题1、结构体的缺省访问特性是 public ,而类的缺省访问特性 private 。2、设有函数原型说明:void fun(int x,int y); 则指向该函数的指针变量f的定义形式为:void (*f)(int,int)。3、当一个类对象的成员函数被调用时,该成员函数的this 指向调用它的对象。4、当运用new运算符对指定类型对象动态安排内存并返回该类型的指针后,在对象运用完毕后必需运用delete运算符释放动态内存空间。l 阅读程序题5、下列程序的运行结果是80。程序#includevoid sub(int*x,int n,int k) if(k=n)sub(x,n,3*k); *x+=k;void main() int x=0;sub(&x,27,2); coutxendl;6、下列程序的运行结果是 name is: man 。程序#include#includevoid function(char*);void main()char name=mamy,*ptr;ptr=name;function(ptr); coutname is:namen;void function(char*ptr)*(ptr+2)=*(ptr+2)+1;*(ptr+strlen(ptr)-1)=0;7、执行下列程序后,程序的第一行输出为x=1,y=2,程序的第三行输出为 x=5,y=6 程序#include class samplint x,y;public:void get(int a,int b)x=a; y=b; void disp() coutx=x,y=yn;void main()sampl *p;p=new sampl3;p0.get(1,2); p1.get(3,4); p2.get(5,6);for(int i=0;i3;i+)pi.disp();delete p;8、执行下列程序后,程序的第三行输出为类C的构造函数,程序的第四行输出为2 3 4 ,程序的最终一行输出为类B的析构函数。程序#include class Aint a;public:A(int x) a=x;cout类A的构造函数。n;int geta()return a;A()cout类A的析构函数。n;class Bint b;public:B(int x) b=x;cout类B的构造函数。n;int getb()return b;B()cout类B的析构函数。n;class Cint c;B b1;A a1;public:C(int x,int y,int z):b1(y),a1(x) c=z;cout类C的构造函数。n;void show()couta1.geta()tb1.getb()tcendl;C()cout类C的析构函数。n; ;void main() C c1(2,3,4); c1.show(); 9、执行下列程序后,程序的第一行输出为25,程序的其次行输出为6,4,1。程序#includeclass X public: int x; int fun(int); ;int x=3; int fun(int &x) +x;return 1; int X:fun(int y) x=y*y; :x+; return x; void main() int x=5; X t; coutt.fun(5)endl; coutx,:x,fun(x)n;10、执行下列程序后,程序的第一行输出为3,0,10,3,0,11,程序的其次行输出为2,3,10,2,3,15。#include class Bint a,b;public: B(int x,int y=0) a=x; b=y; void fun(int=10); void fun(int,int);void B:fun(int x)couta,b,x,; void B: fun(int x,int y)couta,b,x+yn; void main() B b1(3); b1.fun(); b1.fun(5,6); B b2(2,3); b2.fun(); b2.fun(7,8); 11、执行下列程序后,程序的其次行输出为1 3 5,程序的第三行输出为 1 3 3,程序的最终一行输出为4 8 5。程序#include void main(void)int b23,(*p1)3,*p2;p1=b;for(int i=0;i2;i+)for(int j=0;j3;j+)p1ij=j+i*(i+j);cout*(*(p1+i)+j)t; coutn; for(p2=*b,i=0;p2*b+2*3;p2+) if(p2!=(int*)b+2*3-1) *p2+=*(p2+1);cout*p2t;i+;if(i%3=0) coutn;coutn;l 完善程序题12、以下程序找出二维数组a中每列的最大值,并按一一对应的依次放入一维数组b中。即第0列的最大值放入b0,第1行的最大值放入b1然后输出数组a和每列的最大值。请完善程序。程序#includevoid fun(int(*p)5,int n,int a )for(int i=0; i5 ;i+) ai= * (*p+i)或p0i ; for(int j=0; jai)ai=pji;void main()int b5 ,a35=23,4,45,65,5,65,8,87,3,26,7,68,4,97,243;fun( a,3,b );for(int i=0;i3;i+)for(int j=0;j5;j+) coutaijt; coutn; cout该列最大值:n;for(i=0;i5;i+)cout bit;coutn; 13、创建一条结点数据结构为struct NODE int x;NODE *next;的有序链表(结点按x值的升序排序),参数n为结点个数,函数返回该链表的首指针。算法思想:每产生一个新生的结点,插入到链表的恰当位置,使链表仍旧有序。最终输出链表。请完善程序。程序#include#define NULL 0NODE* Create(int n) NODE *p,*p1,*p2,*h=NULL;int i=0;if(n1)return NULL;while(ip-x; p-next=NULL;if(h=NULL) h= p ; elsep1=p2=h;while(p2&p-x=p2-x)p1=p2; p2=p1-next ; if(p2=h)p-next=p2;h=p;elsep-next=p2;p1-next=p;i+; return h;14、定义一个函数int num(char *),删除一个字符串中的全部非数字字符,并将剩下的数字字符串逆序转换为一个整数。如字符串“a a 2hf34#5 6ga”经函数处理后字符串变为“23456”,函数的返回值为65432。在主函数中输出处理后的字符串及函数的返回值。#include#includechar *del(char *str)int flag=0;for(char *p1=str;*p1;p1+) if(*p19) /处理非数字字符for(char *p2=p1;*p2;p2+)*p2=*(p2+1); flag=1;if(flag=1) p1-; flag=0;return str; int value(char *str)int s=0;for(char *p=str+strlen(str)-1;p=str;p-)s= s*10+*p-0; /转换数字字符串为整数return s; void main()char s= a a 2hf34#5 6ga;coutsendl;cout del(s)endl;coutvalue(s)endl; 三、编程题(2 0分)建立一个类WORD,统计一个英文字符串中的英文单词个数。字符串中各英文单词以一个或多个空格分隔。如字符串“I am very happy today”中的英文单词个数为5。详细要求如下:(1) 私有数据成员:l char str80:存放字符串str;l int c: 存放字符串str中的英文单词的个数。(2) 共有成员函数l WORD(char *s):构造函数,用参数s初始化str,同时初始化单词个数c为0;l void process(): 统计字符串中的英文单词个数;l void print(): 输出字符串及单词个数。在主函数中对该类进行测试。定义一个WORD类的对象w,并用字符串“I am very happy today”初始化对象w。通过w调用成员函数,统计并输出字符串中英文单词的个数。#include #include class WORDchar str80;int c;public:WORD(char *s);void process();void print();WORD:WORD(char *s)strcpy(str,s);c=0;void WORD:process()char *p=str;while(*p)while(*p!=0&*p= )p+;if(*p!=0&*p!= )c+;while(*p!=0&*p!= )p+;void WORD:print()coutstrendl;coutc=cendl;void main()WORD w(I am very happy today);w.process();w.print();共8页,第9页
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 中学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!