《C++程序设计》练习题

合集下载

C程序设计(链表)习题与答案

C程序设计(链表)习题与答案

一、单选题1、链表不具有的特点是()。

A.不必事先估计存储空间B.插入、删除不需要移动元素C.可随机访问任一元素D.所需空间与线性表长度成正比正确答案:C2、链接存储的存储结构所占存储空间()。

A.分两部分,一部分存放结点值,另一部分存放结点所占单元数B.只有一部分,存放结点值C.分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针D.只有一部分,存储表示结点间关系的指针正确答案:C3、链表是一种采用()存储结构存储的线性表。

A.网状B.星式C.链式D.顺序正确答案:C4、有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b,则不能把结点b连接到结点a之后的语句是()。

struct node {char data;struct node *next;} a,b,*p=&a,*q=&b;A.(*p).next=q;B.p.next=&b;C.a.next=q;D.p->next=&b;正确答案:B5、下面程序执行后的输出结果是()。

#include <stdio.h>#include <stdlib.h>struct NODE {int num; struct NODE *next;};int main(){ struct NODE *p,*q,*r;p=(struct NODE*)malloc(sizeof(struct NODE));q=(struct NODE*)malloc(sizeof(struct NODE));r=(struct NODE*)malloc(sizeof(struct NODE));p->num=10; q->num=20; r->num=30;p->next=q;q->next=r;printf("%d",p->num+q->next->num);return 0;}A.30B.40C.10D.20正确答案:B6、下面程序执行后的输出结果是()。

《C语言程序设计》练习题及答案

《C语言程序设计》练习题及答案

《C语言程序设计》练习题及答案1. 单选题1. 设有定义:int n=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是A. p=1;B. *q=2;C. q=p;D. *p=5;正确答案:D2. 设有int x=11;则表达式(x++*1/3)的值是A. 3B. 4C. 11D. 12正确答案:A3. 下面程序的输出结果是main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; printf("%d\n",*(p+2));}A. 3B. 4C. 1D. 2正确答案:A4. sizeof(float)是A. 一个双精度型表达式B. 一个整型表达式C. 一种函数调用D. 一个不合法的表达式正确答案:B5. 在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是A. a=20000+20000;B. a=4000*10;C. a=30000+10000;D. a=4000L*10L正确答案:D6. 请选出以下语句的输出结果printf("%d\n",strlen("\t\"\065\xff\n"));A. 5B. 14C. 8D. 输出项不合法,无正常输出正确答案:A7. 若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为A. 4B. 16C. 32D. 52正确答案:C8. 下面能正确进行字符串赋值操作的是A. char s[5]={"ABCDE"};B. char s[5]={ ′A′, ′B′, ′C′, ′D′, ′E′};C. char *s;s="ABCDE";D. char *s;char a; scanf("%s",&s);正确答案:C9.以下程序的输出结果是#include "stdio.h"void reverse(int a[],int n){int i,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main(){int b[10]={1,2,3,4,5,6,7,8,9,10};int i,s=0;reverse(b,8);for(i=6;i<10;i++) s+=b[i];printf("%d\n",s);}A. 22B. 10C. 34D. 30正确答案:A10. 以下不正确的叙述是A. 在C程序中,逗号运算符的优先级最低B. 在C程序中,APH和aph是两个不同的变量C. 若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D. 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值正确答案:D2. 多选题11. 以下______是正确的转义字符。

《C语言程序设计》练习题

《C语言程序设计》练习题

《C程序设计》练习题一、单项选择题导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。

在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。

对于掌握不准的问题,应该通过上机实验来检验。

(注:选用普通整型数据占用2个字节的c编译器。

如 Turbo C 2.0 、Win-TC、Turbo C++ 3.0)【1.1】以下不正确的C语言标识符是____。

A) int B) a_1_2 C) ab1exe D) _x【1.2】以下是正确的C语言标识符是____。

A) #define B) _123 C) %d D) \n【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。

••• A) print B) iam C) Pxq D) str_l••• _3d one_half My->book Cpp••• oodbs tart$it line# pow••• aBc 3pai His.age while【1.4】下面各选项组中,均是C语言关键字的组是。

A) auto,enum,include B) switch,typedef,continueC) signed,union,scanf D) if,struct,type【1.5】下列不属于C语言关键字的是。

A) default B) register C) enum D) external 【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。

A) 程序文件的开始 B) 程序文件的最后C) 它所调用的函数的前面 D) 程序文件的任何位置【1.7】下列关于C语言的叙述错误的是____A) 大写字母和小写字母的意义相同B) 不同类型的变量可以在一个表达式中C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D) 同一个运算符号在不同的场合可以有不同的含义【1.8】在C语言中,错误的int类型(长度为2字节)的常数是。

《C语言程序设计》试题3及答案

《C语言程序设计》试题3及答案

三一.单项选择题?1.设int x=1,y=1;表达式(!x++ || y--)的值是_________??? A.0???? B. 1?????? C. 2???? D.-12.main( )? {? int n;???? ( n=6*4,n+6),n*2;???? printf(“n=%d\n”,n);? }?? 此程序的输出结果是______________.?? A.30??? B.? 24???? C.? 60????? D.? 483.若有如下定义,则__________是对数组元素的正确的引用。

?? int? a[10] , *p ;?? p=a ;?? p=a ;?? p=a ;?? p=a ;?? A.? *&a[10]???? B.? a[11]????? C.? *(p+10)????? D. *p4.设整型变量n的值为2,执行语句“n+=n-=n*n;”后,n的值是__________ ?? A.? 0???? B.? 4??? C.? - 4???? D.? 2???? 5.以下不能正确定义二维数组的语句是___________??? A . int a[2][2]={{1},{2}};???? B. int a[][2]={1,2,3,4};?? ?C. int a[2][2]={{1},2,3};????? D. int a[2][]={{1,2},{3,4}}; 6.程序段??? ??????的功能是将变量 u 、s中的最大值赋给变量t 。

??????? A.? if(u>s) t=u;t=s;?????? B. ?t=u;?? if(t ) ?t=s;???? ?C.? if(u>s) t=s;else t=u;? ??D . ?t=s; if(u ) ?t=u;7.下列程序段的输出结果是???? ??????。

void main(){?? int k;for (k=1;k<5;k++〉{ ?if(k%2!=0)??printf("#");else ??printf(“*”) ;? } }A. #*#*????? B . *#*#??? C.? ##?????? D. 以上都不对8.设变量定义为 int a[3]={1,4,7},*p=&a[2], 则*p的值是? (35)??? 。

C语言程序设计综合练习题

C语言程序设计综合练习题

《C语言程序设计》综合练习题一、单选题1. C语言中基本数据类型有。

CA)整型、实型、逻辑型B)整型、字符型、逻辑型C)整型、实型、字符型D)整型、实型、字符型、逻辑型2. 在C语言中,数字O29是一个。

AA)八进制数 B)十进制数 C)十六进制数 D)非法数3. 在以下关于C语言的不严格的叙述中,错误的说法是。

AA)在标识符中,大写字母和小些字母的意义相同B)有些不同类型的变量可以在一个表达式中运算C)在赋值表达式中等号“=”左边的变量和右边的值可以是不同类型D)同一个运算符号在不同的场合可以有不同的含义4.下列关于C语言用户标识符的叙述中正确的是。

BA)用户标识符中可以出现下划线和中划线(减号)B)用户标识符中不可以出现中划线,但可以出现下划线C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头【解析】考查C语言中的用户标识符规则,在C语言程序设计中,用户标识符是由字母、数字和下划线组成的,并且第一个字符必须是字母或下划线。

5. 结构化程序设计方法中有三种基本控制结构,以下不正确的是。

DA) 顺序结构B) 选择结构C) 循环结构 D) 数组结构6. C语言提供的合法关键字是。

DA) swicth B) cha C) Case D) default7.以下非法的赋值语句是CA) n=(i=2,++i); B)j++; C) ++(i+1); D)x=j>0;【解析】对表达式不能进行自加自减运算。

8.在以下一组运算符中,优先级最高的运算符是。

A) <= B) = C) % D) &&【解析】C语言常用的积累运算符的优先级关系是:逻辑非“!”>算术运算符>关系运算符>逻辑与“&&”>逻辑或“||”>赋值运算符>逗号运算符。

由于C选项为求余运算符,所以本题正确答案为C选项。

C语言程序设计练习题(答案)

C语言程序设计练习题(答案)

C语言程序设计练习题(答案)1.1上机实训项目实验1实验步骤1、进入VC环境从“开始”→“程序”→“Microsoft Visual Studio 6.0”→“Microsoft Visual C++ 6.0”,这时进入VC集成环境的主菜单窗口,屏幕显示如图1_1所示。

图1-1 VC集成环境的主菜单窗口2、VC环境下C程序的编辑、连接和运行(1)新建一个源程序①在VC环境中选择“文件”菜单,然后单击“新建”菜单项。

如图1-2所示图1-2 选择新建② 在弹出的新建对话框中设置好相应的内容,如图2-2所示。

要事先准备好保存文件的目录,例d:\lx 目录。

在图1-3中“文件”一栏的源程序文件的扩展名一定要输入C 语言程序的扩展名“.c ”。

设置好后,单击“OK ”,就回到了VC++的编辑界面,即将进行输入和编辑的源程序文件example.c 文件存放在D 盘的LX 目录下。

图1-3 新建对话框的设置③ 在图1-4的工作区中,输入源程序2.设置源程序的文件名,扩展名一定要为“.c ”且一定要输入扩展名1.单击该处3.设置存放目录图1-4 输入、编辑源程序④输入源程序文件后可在主菜单栏中选择“文件”(FILE),并在其下拉菜单中选择“保存”(SAVE),如图1-5所示。

图1-5 保存源程序⑤源程序的编译如图2-6所示,单击主菜单的“编译”(Build),在其下拉菜单中选择“编译example.c”(Compile example.c),或者单击工具栏上的“编译”按钮,如图1-6所示。

在单击“编译”后,屏幕上会出现一个如图1-7所示的对话框。

内容是“This build command requires an activeproject worksapce,Would you like to create a default project worksapce?”,要创建一个默认的项目工作区,单击“是(Yes)”,表示同意,将开始编译;单击“No ”,表示不同意,将取消编译。

C语言程序设计各章练习题

C语言程序设计各章练习题

C语言程序设计各章练习题《C 语言程序设计》各章练习题2016年12月汇编第1-3章 C 语言基础、编程规范、顺序结构程序设计编程题1:设a 和b 均为int 型变量,编写一个程序,通过键盘读入a,b 的值,然后交换a,b 的值。

要求屏幕显示“输入2个整数,用空格隔开”的提示语句,并且输出交换前a,b 的值,交换后a,b 的值。

附加要求:(1)允许定义第3个变量,实现交换;(2)不允许定义第3个变量,实现交换。

第4章选择结构程序设计编程题2:根据下列函数关系写程序,要求提示输入x 的值,输出y 的值。

⎪⎪⎩⎪⎪⎨⎧>=<+-=0020212x x x x x y编程题2:根据下列函数关系写程序,要求提示输入x 的值,输出y 的值。

⎪⎩⎪⎨⎧>≤≤--<=002222x x x x x y编程题3:求 ax 2+bx+c=0方程的解。

(只输出b 2-4ac>=0的求解结果,小于0,输出“不予求解!”)第5章 循环结构程序设计编程题4:编程计算∑=ni i 1。

要求提示键盘输入n ,如n 为负数,不予计算,直接返回。

编程题5:编程序计算n !,要求n 从键盘输入,如n 小于0,不予计算。

编程题6:从键盘输入一个数n ,判断n 是否是素数。

编程题6:编写程序输出1~100之间的偶数,要求屏幕显示时5个偶数一行,每个数占5位,右对齐。

编程题7:编程计算100到1000之间有多少个数其各位数字之和是5,并将其输出。

编程题8:求满足下列条件的三位数n ,它除以11(整数相除)所得到的商等于n 的各位数字的平方和,且其中至少有二位数字相同的数。

编程题9:有一些十进制整数对ab 和cd 具有如下特性:ab×cd=ba×dc,其中a≠b 且c≠d。

如:12×42=21×24。

请编程找出30~50之间满数,将100~200之间的素数全部输出,要求屏幕上每个数占4位,每行显示5个素数,左对齐。

国家开放大学电大考试《C语言程序设计》题库及答案

国家开放大学电大考试《C语言程序设计》题库及答案

《C语言程序设计》期末综合练习题模拟试题一一、单选题1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为(A)。

A. mainB. MAINC. nameD. function2.每个C语言程序文件的编译错误分为(B)类。

A. 1B. 2C. 3D. 43.字符串"a+b=12\n"的长度为(B)。

A. 6B. 7C. 8D. 94.在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写为(D)语句。

A. forB. whileC. doD. if5.在下面的do-while循环语句中,其循环体语句被执行的次数为(C)。

int i=0; do i++; while(i<10);A. 8B. 9C. 10D. 116.将两个字符串连接起来组成一个字符串时,选用的字符串函数为(C)。

A. strlen( )B. strcpy( )C. strcat( )D. strcmp( )7.若用数组名作为函数调用的实参,传递给形参的是(A)。

A. 数组的首地址B. 数组中第一个元素的值C. 数组中全部元素的值D. 数组元素的个数8.假定a为一个整数类型的数组名,整数类型的长度为4,则元素a[4]的地址比a数组的首地址大(C)个字节。

9.假定s被定义为指针类型char *的变量,初始指向的字符串为"Hello world!",若要使变量p 指向s所指向的字符串,则p应定义为(A)。

A. char *p=sB. char *p=&sC. char *p;p=*sD. char *p; p=&s10.从一个数据文件中读入以换行符结束的一行字符串的函数为(B)。

A. gets( )B. fgets( )C. getc( )D. fgetc( )二、填空题1.执行“printf("%c",'A'+2);”语句后得到的输出结果为(C)。

第1部分_C语言程序设计练习一

第1部分_C语言程序设计练习一

《C语言程序设计》练习一一、单项选择题1.下面转义字符中,表示字符串结束的是()A.\ rB.\ nC.\ 0D.\ f2.在Turbo C2.0中,若定义unsigned int a;则变量a在内存中分配的字节数是()A.1个B.2个C.4个D.8个3.设有int x=2,y,z;执行z=y=x--;后,变量z的值是()A.0B.1C.2D.34.以十六进制形式输出整数的格式说明符是()A.%uB.%ldC.%xD.%o5.下面合法的if语句是()A.if(a=b) c++;B.if(a=<b) c++;C.ifi(a< >b) c++;D.if(a=>b) c++;6.结束while(表达式)循环的条件是()A.当表达式的值为0时B.当表达式的值不为0时C.当表达式的值为1时D.当表达式的值为非1时7.下面列出的位运算符中,表示按位与操作的是()A.~B.&C.^D.|8.设有说明:int x=0x03,y=3;表达式x&~y的值是()A.0B.1C.2D.39. 设有int a=3, b=-4, c=5;表达式(a<b)? a+b:(a-b,b+4,a-=b+4)的值是()A. –1B. 0C. 3D. 710. 若有下列程序段,欲使a=2、b=3,对应正确的数据输入方法是()(其中<CR>表示换行)int a, b;scanf(″a=%d b=%d″,&a, &b);A. 2<CR>B. a=2 b=3<CR>C. a=2, b=3<CR>D. 2,3<CR>3<CR>11. 下列if语句中,有语法错误..的是()A. if(x>y);B. if(x=y) x+y;C. if(x!=y) scanf(″%d″, &x) else scanf(″%d″,&y)D. if(x<y) {x++; y++;}12. 下面程序段执行后的输出结果是()int i=-1;if(i<=0) printf(″* * * * \n″);else printf(″%%%%\n″);1A. ****B.%%%%C. %%%%cD. ****c13. 下面程序段的循环次数是()int k=2;while(k==0) printf(″%d″,k);k--; printf(″\n″);A. 0次B. 1次C. 2次D. 无限次14. 下面各个位运算符的优先级从左到右依次升高的是()A. | ^ & >>B. ^ >> & ~C. << | ^ ~D. ~ | & >>15. 设有说明:int u=1, v=14;表达式u+v>>2的值是()A. 0B. 3C. 5D. 716.设有int a =3, b=-4, c=0;表达式((a>b)?a:b)&&c<0的值是()A.-4B.0C.1D.317.若有下列程序段,欲使a=2、b=3,对应正确的数据输入方法是()(其中<CR>表示换行)int a, b;scanf(″a=%d, b=%d″,&a,&b);A.2<CR>B.a=2 b=3<CR>C.a=2, b=3<CR>D.2,3<CR> 3<CR>18.关于if语句下面叙述正确的是()A.只有当if语句中表达式的值等于1时,才执行if的内嵌语句B.只有当if语句中表达式的值为假时,才执行if的内嵌语句C.只有当if语句中表达式的值等于0时,才执行if的内嵌语句D.只要if语句中表达式的值非0时,就执行if的内嵌语句19.若int x=0; 则while(x==0); 的循环次数是()A.0B.1C.2D.无限次20.下面各个运算符的优先级从左到右依次降低的是()A.& >> | ^B.~ & >>|C.>> & ^ |D.~ >> & ^21.设有说明:int u=1, v=2;表达式:u+v<<2的值是()A.-1B.1C.9D.1222.字符串常数“CHINA”在内存中存储时占的字节数是()A.5个B.6个C.7个D.8个23 23.如果a=1,b=2,c=3,d=4,则表达式a>b?a:c<d?c:d 的值是( )A .1B .2C .3D .424.输出字符串的格式说明符是( )A .%cB .%sC .%uD .%g25.设有说明int x=0,y=0;则执行if(x++)y=1+x;else y=2+x ;后,变量y 的值是( )A .0B .1C .2D .326.以下程序段所表示的数学函数关系是( )y=-1if(x!=0) if(x>0) y=1;else y=0;A .⎪⎩⎪⎨⎧>=<-=)0(1)0(0)0(1x x x y B .⎪⎩⎪⎨⎧>=-<=)0(0)0(1)0(1x x x yC .⎪⎩⎪⎨⎧>=-<=)0(1)0(1)0(0x x x yD .⎪⎩⎪⎨⎧>=<-=)0(0)0(1)0(1x x x y27.执行下面程序段后,输出字符A 的个数是( )for(i=0;i<=5;i+=2)printf(″A ″);A .0个B .3个C .5个D .6个28.设有说明:int x=0x15,y=0x0f ;则x&y 的结果是( )A .0x5B .0x15C .0xf0D .0xf529.如果在程序中要使用系统提供的函数strlen,则需要书写的编译预处理命令是() A .#include<stdio.h> B .#include<math.h>C .#incLude<string.h>D . #incLude<malloc.h>30.整数-2在机器内存中的表示是( )A .1000000000000010B .1111111111111110C .11111111111111101D .111111111111111131.下列运算符中优先级最低的是( )A .>B .!C .%D .= =32.设有int a=3,b=-4,c=5;表达式+ +a-c+b+ +的值是()A.-6 B.-5 C.-4 D.-333.以十进制无符号形式输出整数的格式说明符是()A.%u B.%x C.%o D.%d34.执行while(表达式)循环的条件是()A.当表达式的值为0时B.仅当表达式的值为1时C.当表达式的值非0时D.当表达式的值不为1时35.下列位运算符中,表示按位异或操作的是()A.~ B.│C.^ D.&36.下列各个位运算符的优先级从左到右依次升高的是()A.>>│& ~B.│>> & ~C.│& >> ~D.~│& >> 37.设有说明:int u=1,v=3;则表达式u<<= v的值是()A.0 B.1C.3 D.838.下列转义字符中,表示回车的是()A.\0 B.\n C.\r D.\f39.若定义double d;则d在内存中分配的字节数是()A.1个B.2个C.4个D.8个40.下列表达式中运算结果为3的表达式是()A.(-7)%4 B.7/4+2 C.7/4*4-4 D.8/3+8/3 41.设有int a=3,b=-4,c=5;表达式a++-c+b++的值是()A.-6 B.-5 C.-4 D.-342.在printf语句中,格式说明符u表示()A.以十进制带符号形式输出整数B.以十六进制带符号形式输出整数C.以十进制无符号形式输出整数D.以十六进制无符号形式输出整数43.关于switch中的表达式,正确的说法是()A.它必须是算术表达式B.它必须是关系表达式C.它必须是逻辑表达式D.它可以是任意类型的表达式444.对do语句while(表达式);结构的循环,下列说法正确的是()A.当表达式的值为非零时不执行循环体B.循环体至少被执行一次C.当表达式的值为零时循环体一次也不执行D.循环体仅被执行一次45.只能在循环语句中用于结束本轮循环的语句是()A.break; B.continue; C.goto D.if46.下列是合法C语言常量的是()A. eB. 7E4.0C. E4D. -9.13E-3047.设有int a=3,b=-4,c=5;表达式(a<b)?a:b&&c<0的值是()A. 0B. 1C. 3D. 448.以指数形式输出实型数的格式说明符是()A. %uB. %xC. %fD. %e49.下列各个位运算符的优先级从左到右依次降低的是()A. | & ˆ > >B.ˆ & > > |C. ~> > ˆ |D. ~> > | ˆ50.设有说明:int u=1,v=3,w=5;表达式:v &~~u|w的值是()A. 3B. 5C. 6D. 851.在Turbo C 2.0中,若定义char ch;则变量ch在内存中分配的字节数是()A.1个B.2个C.4个D.8个6<CR>52.下面程序段的输出结果是()main(){int a=2,b=5;printf(″a=%d%%,b=%d%%″,a,b);}A.a=2,b=5B.a=2%,b=5%C.a=%2,b=%5D.a=%d,b=%d53.设有条件表达式(exp)? a++:b--,则下列表达式中能够与该表达式完全等价的表达式是()A.(exp!=0)? a++∶b--B.(exp==0)? a++∶b--C.(exp==1)? a++∶b--D.(exp!=1)? a++:b--54.对于for(表达式l;表达式2;表达式3)语句;控制循环结束的表达式是()A.表达式1B.表达式2C.表达式3D.表达式l和表达式355.设有int x=2,y,z;执行z=y=x——;后变量y的值是()A.0B.1C.2D.356.在下列选项中,没有构成死循环的程序段是()A.int i=100;B.for(;;);while(1){ i=i%100+1;if(i>100)break;}5C.int k=1000;D.int s=36;do{++k;}while(k>10000);while(s);一一s;57.设有说明:int u=l,v=3,w=5;表达式:u<<=(v|w)的值是()A.1B.5C.13D.12858.设有说明:int u=1,v=3,w=2;表达式(v>>1|u<<2)&w的值是()A.0B.1C.3D.559. 下面程序段的输出结果是()main(){ int s, p;s=p=5;p=++s;p++; ++p;printf(″%d\n″,p);}A. 5B. 6C. 7D. 860. 下面程序段的输出结果是()a=100;while(a>120);a=a+1;printf(″%d″,a);A. 100B. 101C. 120D. 12161.下面程序段的输出结果是()main( ){ int s, p;s=p=5;p=--s;p++;++p;printf(″%d\n″,p);}A.5B.6C.7D.862.若执行下面程序时,从键盘输入数据3和4,则程序的输出结果是()main( )6{ int a,b,s;scanf(″%d″, &a,&b);s=a;if(a<b) s=bs=s*s;printf(″%d″,s);}A.9B.12C.16D.2563.下面程序段的输出结果是()for (i=1; i<3;i++){for (j=1;j<3;j++)printf(″%d ″, i+j);printf(″\n″);}A.2 3 3 4B.2 3 4C.2 3D.23 4 3 4 64.下列程序段的输出结果是()void main(void){int y=1,x=5;if(x<0)y=-1;if(x>=0)y=0;printf("%d\n",y);}A.-1 B.0 C.1 D.5 65.执行如下程序段后,x的值是()int x=1,y=-1;if(y<0)x-=y;else x+=y;A.-1 B.0 C.1 D.2 66.下列程序段输出的结果是()for(i=1;i<3;i+ +)for(j=1;j<3;j+ +)7printf("%d",i+j);A.2 3 3 4 B.2 3 4C.2 3 D.23 4 3 467.若有int a=3,b=4,c=5,d=6,x=4;执行下列程序段后x的值是()if(a<b){if(c= =d)x=c;}elsex=d++A.4 B.5 C.6 D.768.下列程序的输出结果是()main( ){ int x=5,y;if(x<0)y=-1;if(x==0)y=0;y=1;p rintf(″%d″,y);}A. -5B. -1C. 0D. 169.下列程序段的输出结果是()i=1;while(i<3){j=1;while(j<=i){ printf(″%d″,i+j);j++;}i++;printf(″\n″);}A. 2 3 3 4B. 2 3 4C. 2 3D.23 4 3 4870.设有下列程序:()#include″stdio.h″main( ){unsigned x=8,y=2;printf(″%d\n″,y|~(x&y));}该程序的运行结果是A. -1B. 0xffC.127D. 6553571.两次运行下面的程序,如果从键盘上分别输入6和4,则输出的结果是()void main(void){int x;scanf("%d",&x);if(x + + >5)printf("%d",x);else printf("%d\n",x——);}A.7和5B.6和3C.7和4D.6和472.设有下面程序:# include"stdio.h"void main(void){unsigned x=1,y=3,z=5;printf("%d\n",z^x&y);}该程序的运行结果是()A.0B.3C.4D.59。

《C语言程序设计》练习题

《C语言程序设计》练习题

《C语⾔程序设计》练习题⼀、选择题(在A、B、C、D中选择⼀个正确的)1、以下叙述不正确的是()。

A、⼀个C源程序可由⼀个或多个函数组成B、⼀个C源程序必须包含⼀个main函数C、C程序的基本组成单位是函数D、在C程序中,注释说明只能位于⼀条语句的后⾯2、C语⾔规定:在⼀个源程序中,main函数的位置()。

A、必须在最开始B、必须在系统调⽤的库函数的后⾯C、可以任意D、必须在最后3、⼀个C程序的执⾏是从()。

A、本程序的main函数开始,到本程序main函数结束B、本程序⽂件的第⼀个函数开始,到本程序⽂件的最后⼀个函数结束C、本程序的main函数开始,到本程序⽂件的最后⼀个函数结束D、本程序⽂件的第⼀个函数开始,到本程序main函数结束4、C语⾔中的标识符只能由字母、数字和下划线三种字符组成,且第⼀个字符()。

A、必须为字母B、必须为下划线C、必须为字母或下划线D、可以是字母、数字和下划线中任⼀种字符5、在计算机内部⽤来传送、存储、加⼯处理的数据或指令都是以()形式表⽰的。

A、⼗进制B、⼋进制C、⼆进制D、⼗六进制6、⼗进制数127转换为⼆进制数是()。

A、1111110B、1111111C、1000000D、100000017、⼗六进制数10H转换为⼋进制是()。

A、10B、2C、20D、168、1KB表⽰()。

A、1024位B、1000位C、1024字节D、1000字节9、以下不正确的标识符是()。

适⽤专业考试⽅式(闭卷) 考试时间为分钟A、scoreB、_abcC、x+yD、Hello10、⼗进制数107转换成⼆进制数是()。

A. 01101011B. 10001101C.0110 1101D. 1110 110111、⼆进制数1011011转换为⼗进制数是()。

A、91B、87C、107D、12312、若x、i、j和k都是int型变量,则计算下⾯的表达式后,x的值为()。

x=(i=4,j=16,k=32)A、4B、16C、32D、5213、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是()。

《C程序设计》期末复习练习题及参考答案(3)

《C程序设计》期末复习练习题及参考答案(3)

《C程序设计》期末复习练习题及参考答案(3)《C程序设计》期末复习练习题及参考答案(3)一、单项选择题1.若有定义int (*p)[4],则标识符p是一个。

A)指向整型变量的指针变量B)指向函数的指针变量√C)指向有四个整型元素的一维数组的指针变量D)指针数组名,有四个元素,每个元素均为一个指向整型变量的指针2.下列对字符串的定义中,错误的是:。

√A) char str[7] = "FORTRAN";B) char str[] = "FORTRAN";C) char *str = "FORTRAN";D) char str[] = {'F','O','R','T','R','A','N',0};3.针对下面程序段,下面哪些说法是正确的?#include <stdio.h>void Swap(int *x, int *y);main()1{ int a, b;a = 5;b = 9;Swap(&a, &b);printf("a=%d,b=%d",a,b);}void Swap(int *x, int *y){ int *pTemp;*pTemp = *x;*x = *y;*y = *pTemp;}A) 程序运行结果为乱码;B) 程序运行后将导致程序崩溃;C) 程序编译时出错导致程序无法运行;√ D) 程序执行了危险的操作;4.已知学生记录描述为:struct student{ int no;char name[20];char sex;struct{ int year;char month[15];2int day;}birth;};struct student s;设变量s中的生日是1984年11月11日,下列对生日的正确赋值方式是_____A) s.birth.year = 1984; s.birth.month = "11"; s.birth.day = 11;B) s.birth.year = 1984; s.birth.month = 11; s.birth.day = 11;√ C) s.birth.year = 1984; strcpy(s.birth.month, "11"); s.birth.day = 11;D) s.birth.year = 1984; strcpy(s.birth.month, 11); s.birth.day = 11;5. 要使下面程序的输出1, 2, 34,则从键盘输入的数据格式应为。

3套 《C语言程序设计》试卷+参考答案

3套 《C语言程序设计》试卷+参考答案

一、选择填空:(每题1.5分,共15分)1.以下可以正确表示字符型常数的是。

(A) “a”(B) ‘297’ (C) ‘\t’ (D)“\n”2. typedef struct{ char name[10];int age;char interests[20];} student;以上语句中 student 是:(A)结构体变量,有存储空间 (B)结构体数据类型,无存储空间(C)结构体变量,无存储空间 (D)结构体数据类型,有存储空间3.函数:void f(void){int i = 12, j;for(j=0; j<20; j++)i++;}当f执行完退出后,i的值为_____ _____(A) 12 (B) 32 (C) 29 (D) 无定义4.若有以下说明: int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为6的表达式是(A)*p+6 (B)*(p+6) (C)*p+=5(D)p+55.以下代码执行后,result的值为:#define FIVE 2+3result = FIVE * FIVE(A) 11 (B) 13 (C) 25 (D)106.已知函数定义的形式如下:struct data *f(void){……}则函数f:(A) 没有参数,返回值是一个结构体(B)有一个参数void, 返回值是一个结构体(C)没有参数,返回值是一个结构体指针(D)有一个参数void, 返回值是一个结构体指针7.下列说法中,不正确的是_ ____(A)函数中可以没有return语句。

(B)所有的函数都不能嵌套定义,但可以相互调用。

(C)函数的实参应与其对应的形式参数类型一致。

(D)函数可以不加函数返回值类型标识符。

8.一个C程序的执行是。

(A)从本程序的main函数开始,到main函数结束(B)从本程序文件的第一个函数开始,到本程序文件最后一个函数结束(C)从本程序的main函数开始,到本程序文件的最后一个函数结束(D)从本程序文件的第一个函数开始,到本程序的main函数结束9.在C语言的算术运算符中只能用于整型数的运算符是(A)* (B)/ (C)++ (D)%10 在下列选项中,没有构成死循环的程序段是(A)int i=100;while (1) {i=i%100+1;if(i>=100) break;}(B)for(;;);(C)int k=1000;do{++k;} while (k>=1000);(D)int s=36while(s); --s;二、写出下列程序的运行结果:(共35分)1.(8分)int funa(int *a) { a[0] ++; }int funb(int b[]) { b[1] += 5; }main(){int a[5] = {2,3,4,5,6};int b[5] = {2,3,4,5,6};int *p, i;p = &a[0];(*p)++;funb(p);for(i = 0; i <5; i++)printf("%d,",a[i]);p = &b[1];funa(p);funb(p);for(i = 0; i < 5; i++)printf("%d,",b[i]);}运行结果:2、(6分)main(){char a[]="programming", b[]="language";char *p1,*p2;int i;p1=a; p2=b;for(i=0; *(p1+i)!=’\0’&&*(p2+i)!=’\0’;i++)if(*(p1+i)==*(p2+i)) printf("%c",*(p1+i)); }运行结果是:3、(8分)int f(int n){if (n==1){return 1;}else{return 2 * f(n/2);}}运行结果: f(20)的值是多少?4、(6分)void change (int *a, int *b){int x =* a;*a = *b; *b = x;printf(“%d %d “, *a, *b)';}void main(){int x=10,y=25;change (&x, &y);printf(“%d %d “, x, y)';}运行结果:5、(5分)已知字母A的ASCII码为十进制的65,下面程序的输出是void main(){char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}答案三、程序填空(每空2分,共38分)1、下面是一个求数组元素之和的程序。

fx0355《C语言程序设计》综合练习题适用于专升本:计算机科学与技术 (1)

fx0355《C语言程序设计》综合练习题适用于专升本:计算机科学与技术 (1)

《C语言程序设计》综合练习题一、单项选择题(共80题,每小题2分)(1)计算机语言不包括(C)。

A. 机器语言B. 汇编语言C. 智能语言D. 高级语言(2)C语言属于(D)。

A. 机器语言B. 汇编语言C. 智能语言D. 高级语言(3)printf语句的作用是(D)。

A. 写入文件B. 读入数据C. 记录数据D. 黑屏终端打印信息(4)下列关于C语言程序说法错误的是(A)。

A. main函数不是必须的B. 函数可以没有返回C. void表示函数没有返回值D. main函数是必须的(5)下列程序段的作用是(B)。

int a,b,sum;a=123;b=456;sum=a+b;A.对a、b初始化B. 实现123+456求和C.赋值D. 实现两数相减(6)printf语句中使用%d的作用是(C)。

A. 实现十进制输入B. 实现浮点数输出C. 实现十进制输出D. 无实际意义(7)下列不属于C关键字的是(C)。

A. whileB. forC. MapD. continue(8)下列变量命名合法的是(D)。

A. 123B. 9_qC. +1D. abc(9)下列关于C语言程序说法错误的是(A)。

A. 可以有多个main函数B. 程序由一个或多个源文件组成C. 程序应包含注释D. 程序可以没有输出(10)下列关于程序设计任务说法错误的是(A)。

A. 首先设计算法B. 其次设计算法C. 然后编写程序D. 最后编写文档(11)下列不属于算法的特征的是(C)。

A. 确定性B. 有穷形C. 二义性D. 可行性(12)下列说法正确的是(A)。

A. 算法+数据结构=程序B. 算法可以无限循环C. 算法只能用C语言实现D. 算法只能用Java语言实现(13)下列不属于算法的是(B)。

A. 成绩换算B. 打印字符串C. 求最小公倍数D. 求最大公约数(14)下列关于求1*2*…*5说法错误的是(D)。

A. 可以设计一个算法求解B. 可以使用wile循环C. 可以使用for循环D. 用循环解决效率不高(15)算法一般不可以用什么表示(C)。

浙大《C程序设计》练习题 数据类型与表达式

浙大《C程序设计》练习题 数据类型与表达式

第5章数据类型与表达式1.已有如下定义和输入语句,若要求a,b,c,d可得到的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是,其中”└┘”表示空格。

int a,b;char c,d;scanf("%d%c%d%c",&a,&c,&b,&d);A. 10A└┘20B<回车>B. 10└┘A└┘20└┘B<回车>C. 10A20B<回车>D. 10A20└┘B<回车>2.执行语句:printf("The program\'s name is c:\\tools\book.txt");后的输出是。

A. The program's name is c:tools book.txtB. The program's name is c:\tools book.txtC. The program's name is c:\\tools book.txtD. The program's name is c:\toolook.txt3. 设有语句char a='\72'; 则变量a______。

A. 包含1个字符B. 包含2个字符C. 包含3个字符D. 说明不合法4. 不合法的C语言赋值语句为______。

A. ++a;B. n1 =(n2 =(n3= 0));C. a = b== c;D. k = a + b=1;5.正确的语句是______。

A. int x=y=z=0;B. int z =(x+y)++;C. x=+3==2;D. x%=2.5;6. 设a,b,c均定义为int 型,且已赋于大于1 的数,能正确表达1/(abc)的表达式是______。

A. 1/a*b*cB. 1/(a*b*c)C. 1.0/a*b*cD. 1.0/a/b/c7.若变量已正确定义,与语句if(a>b)k=0;else k=1;等效的是______。

《C程序设计》练习题4

《C程序设计》练习题4

《C程序设计》练习题一一.选择题1.以下选项中属于C语言的数据类型是()。

A. 复合型B. 双精度型C. 逻辑型D. 集合型2.以下说法中正确的是()。

A. C语言程序总是从第一个函数开始执行B. 在C语言程序中,要调用的函数必须在main()函数中定义C. C语言程序总是从main()函数开始执行D. C语言程序中的main()函数必须放在程序的开始部分3.选出下列标识符中不是合法的标识符的是()。

A. hot_doB. cat1C. _priD. 2ab4.下列描述中不正确的是()。

A.字符型数组中能存放字符串。

B.可以对字符型数组进行整体输入、输出。

C.可以对整型数组进行整体输入、输出。

D.不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。

5.表达式:10!=9的值是()。

A. trueB. 非零值C. 0D. 16.能正确表示a和b同时为正或同时为负的逻辑表达式是()。

A.(a>=0||b>=0)&&(a<0 ||b<0) B.(a>=0 && b>=0)&&(a<0 && b<0) C.(a+b>0) &&(a+b<=0) D. a*b>07.C语言中,合法的字符型常数是()A.‘A’ B.“A” C. 65 D. A8.设有数组定义:char array[]=”China”; 则数组所占的空间是()A.4个字节 B.5个字节 C.6个字节 D.7个字节9.若变量c为char类型,能正确判断出c为小写字母的表达式是()A.’a’<=c<=’z’ B.(c>=’a’) || (c<=’z’)C.(‘a’<=c) and (‘z’>=c) D.(c>=’a’) && (c<=’z’)10.设有定义:long x=-123456L; 则以下能够正确输出变量x值的语句是()A.printf(“x=%d\n”,x) B.printf(“x=%ld\n”,x)C.printf(“x=%8dl\n”,x) D.printf(“x=%LD\n”,x);11.指出下面正确的输入语句()A.scanf(“a=b=%d”,&a,&b);B. scanf(“%d,%d”,&a,&b) ;C.scanf(“%c”,c) ; D. scanf(“% f%d\n”,&f) ;12.C语言源程序的基本单位是()。

《C程序设计》练习及答案

《C程序设计》练习及答案

《C程序设计》练习及答案选择题部分第一章c语言概述选择题1、一个c程序的继续执行从______。

a、本程序的main函数开始,到main函数的结束b、本程序文件的第一个函数已经开始,至本程序文件的最后一个函数的完结c、本程序文件的main已经开始,至本程序文件的最后一个函数的完结d、本程序文件的第一个函数已经开始,至本程序文件的main函数的完结2、以下描述恰当的就是______。

a、在c程序中main函数必须位于程序的最前面b、c程序的每行中只能写一条语句c、c语言本身没有输入输出语句d、在对一个c程序展开编程的过程中,可以辨认出注解中的错误3、以下描述不恰当的就是______。

a、一个c源程序可由一个或多个函数组成b、一个c源程序必须包含一个main函数c、c程序的基本组成单位是函数d、在c程序中,注解表明就可以坐落于一条语句的后面4、c语言规定,在一个源程序中,main函数的位置______。

a、必须在最为已经开始b、必须在系统调用的库函数的后面c、可以任一必须在最后5、一个c语言程序是由______。

a、一个主程序和若干子程序共同组成b、函数共同组成c、若干过程共同组成d若干子程序共同组成、、d(acdcb)第三章数据类型、运算符与表达式(红色显示的部分为参考答案)1、如果x、i、j和k都就是int型变量,则排序下面表达式后,x的值______。

x=(i=4,j=16,k=32)a.4b.16c.32d.522、设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是______。

a.7b.8c.6d.23、以下四组选项中,均不是c语言关键字的选项就是______。

a.defineiftypeb.getccharprintfc.includescanfcased.whilegopow4、下列四组选项中,均是c语言关键字的选项是______。

a.autoenumincludeb.switchtypedefcontinuec.signedunionscanfd.ifstructtype5、下列四组选项中,均是不合法的用户标识符的选项是______。

《C语言程序设计》习题及解答1-4章

《C语言程序设计》习题及解答1-4章
}
参考答案
一、选择题(1)B
(2)C
(3)C
(4)B
(5)B
(6)D
(7)D
(8)C
(9)C
(10)D
(11)B
(12)D
(13)D
(14)C
(15)A
二、填空题【1】2
【5】32767
【2】-2
【6】6.000000
【3】scanf
【7】49
【4】printf
第三章习题
一、单项选择题
1.下面不属于C语言的数据类型是【】。
int x=-32769;
printf("%d",x);
4.执行下列程序的输出结果是【6】。
main( )
{
float a=1,b;
b=++a*++a;
printf("%f\\n",b);
}
5.执行下列程序的输出结果是【7】。
main( )
{
int x=5,y;
y=++x*++x;
printf("y=%d\\n",y);
本题正确答案为B。
二、填空题
1.若以下程序的输出结果是13,请填空。
main( )
{ int x=016;
printf("%d\\n",【1】); }
分析:在C语言中以0开头的数字是八进制数,016相当于十进制数14,执行printf语句时,输出项应为x的值减1。
本题正确答案为【1】--x或x-=1。
A)整型
B)实型
C)逻辑型
D)双精度实型
分析:和其它高级语言相比,C语言中没有逻辑型数据,也没有逻辑型变量。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《面向对象程序设计》练习题库(红字为自己出的题,题量是根据拷贝过来的原考试题的6倍确定的)一、填空题1.面向对象的四大特性是 。

2.程序设计语言是通过 支持程序设计方法的。

3.类的用户是 的程序单元。

4.构造函数的基本作用是 。

5.对象在作用域中 定可见。

6.使用友员的主要目的是 。

7.C++规定常对象只能调用它的 函数。

8.当类中声明有 数据成员时,程序员必须定义拷贝构造函数。

9. 是 继承。

10.在程序运行中才确定操作所针对的对象是 联编。

11.C++实现面向对象四大特性的机制是 。

12.C++提供有 三层抽象机制。

13.类的用户是 的程序单元。

14.析构函数的基本作用是 。

15.对象不可见, 定对象的生存期结束。

16.使用友员破坏了 。

17.C++规定常成员函数不能更新对象的 。

18.当类中声明有 数据成员时,程序员必须定义赋值操作。

19. 是 继承。

20.在编译过程中确定了操作所针对的对象是 联编。

21.继承是指 。

22.多态性是指 。

23.构成C++语言的基本元素是 。

24.C++语言中的抽象包括 。

25.表达式中的类型转换有 。

26.结构体是 。

27.形参的作用是 。

A B CA B C28.内联函数是。

29.重载函数时通过来区分。

30.代码重用的目的就是。

31.在C++里,有两种模板:。

32.面向对象程序设计方法的核心是。

33.在面向过程的结构化程序设计中,程序的模块是由构成的;函数是逻辑上相关的与的封装,用于完成特定的功能。

34.在面向对象程序设计中,程序模块是由构成,类是逻辑上相关的与的封装,它是对所要处理的问题的抽象描述。

35.类和对象的关系是。

36.模板类的成员函数必须是_______。

37.一个类模板说明自身不产生代码,它指定类的________,当____________时,模板才根据_____________产生代码。

38.国际上已经有标准的标记方法,称为。

39.变量和对象的生存期是。

40.函数与数据的关系包括。

41.类的静态数据成员是类的数据成员的一种特例,采用关键字声明。

42.友元函数是在类声明中由关键字修饰的非成员函数。

43.在说明引用时用修饰,被说明的引用为常引用。

44.预处理指令 C++语言的一部分。

45.数组A[10][5][15]一共有元素。

46.*称为运算符,是一个元操作符,用于访问指针所指向的对象的值;&称为运算符,是一个元操作符,用来得到一个对象的地址。

47.如果一个数组的每个元素都是指针变量,这个数组就是数组。

48.声明数组之后,对指针元素是必不可少的。

49.在设计程序时,如果某个函数中以指针或引用作为形参都可以达到同样目的,则使用会使程序的可读性更好些。

50.调用函数的通常形式"函数名(参数表)"的实质就是。

51.this指针是。

52.我们把在程序运行过程中申请和释放的称为堆对象。

53.派生新类的过程一般包括吸收已有类的成员、调整已有类成员和三个步骤。

54.由原有的类产生新类时,原有的类称为产生的新类称为。

55.类的继承方式有三种。

56.若要求既能实现成员隐蔽,又能方便继承,应采用继承方式。

57.派生类的数据成员是由共同组成。

58.构造派生类的对象时,就要对基类数据成员、新增数据成员和进行初始化。

59.C++有两种技术来保证成员标识的唯一性:。

60.在类的派生层次结构中,基类的成员和派生类新增的成员都具有类作用域二者的关系是。

61.我们将建立对象时所指定的类称为当时的类。

62.在多继承情况下,虚基类关键字的作用范围是只对起作用。

63.要使派生类具有其基类的所有功能,派生类应用继承方式继承基类。

64.在赋值兼容的前提下,如果要使基类、派生类分别以不同的方式来响应相同的消息应该采用方法。

65.C++对多态的支持主要是和虚函数。

66.面向对象的多态性可以分为四类:重载多态、强制多态、包含多态和参数多态。

前面两种统称为多态,而后面两种也称为多态。

67.包含多态使用来实现。

68.运算符重载的实质就是重载。

69.运算符有两种重载形式:重载为类的函数和重载为类的函数。

70.如果希望通过指向派生类的基类指针,能够访问到派生类的成员,实现运行过程中的多态,应采用。

71.带有纯虚函数的类是。

72.群体可分为两个大类:。

73.数组类是访问方式的群体。

74.链表是一种动态数据结构,可以用来表示顺序访问的群体。

75.顺序容器的访问分为两种。

76.容器类库中向量和队列提供访问,而列表提供访问。

77.接口是指容器的。

78.标准类库的堆栈是使用来实现的。

79.是一种抽象,它负责在数据的生产者和数据的消费者之间建立联系,并管理数据的流动。

80.三个最重要的输入流类是。

81.通常是用throw关键字产生的一个对象,用来表明出现了一些意外的情况。

82.Windows程序中替代main()函数的是函数。

83.操作系统的每一部分和其他部分以及应用程序之间,是通过进行通信的。

二、简答题84.类A、B、C、D、E、F、G的继承结构如图(a)所示。

要求:①写出结构中每一个类的构造函数初始化列表示意形式②写出当G og;时构造函数的调用顺序。

(用类名代表相应类的构造函数)A AB85.已知类Point的定义与实现如下,请指出当Rectangle类分别以公有、私有方式继承Point时,main函数中的错误操作,并简要说明原因。

class Point{ public:Point (float xx = 0, f1oat yy = 0 ) { set(xx,yy); }void Move(float xoff, f1oat yoff) { X + = xoff; Y + = yoff; } float GetX() { return X; }float GetY() { return Y; Iprivate:float X, Y;protected:void set(float xx,float yy){ X=xx;Y=yy;}};①公有继承:class Rectangle: public Point{ public:void InitR(float x, float y, float w, float h){ set(x,y);W = w;H = h; }float GetH() { return H; }f1oat GetW() { return W; }private:f1oat W, H;};#include <iostream .h>#include <math .h>void main(){ Rectangle rect;rect .InitR(2,3,20,l0 );rect .Move (3, 2 );rect .set(4, 8);cout << "The data of rect (X, Y,W, H):" << endl;cout << rect .GetX() <<","<< rect .GetY() <<","<< rect .GetW() <<","<< rect .GetH() <<endl;}②私有继承:class Rectangle: private Point{ public:void InitR(float x, float y, float w, float h){ set(x,y);W = w;H = h; }float GetH() { return H; }f1oat GetW() { return W; }private:f1oat W, H;};#include <iostream .h>#include <math .h>void main(){ Rectangle rect;rect .InitR(2,3,20,l0 );rect .Move (3, 2 );rect .set(4, 8);cout << "The data of rect (X, Y,W, H):" << endl;cout << rect .GetX() <<","<< rect .GetY() <<","<< rect .GetW() <<","<< rect .GetH() <<endl;}86.二维数组a与指针变量p的声明如下:int a[2][3];int **p=a;在没有对p做任何操作的前提下,请写出用指针p标识数组元素a[0][1]和a[1][2]的两种标识形式。

87.欲定义一函数f,其功能是:在SqList类型线性表L的第i个元素的前面,插入新元素e。

(L的元素类型为ET。

)请写出该函数定义的首部。

88.类A 、B 、C 、D 、E 、F 、G 的继承结构如图(a )所示。

要求:① 写出结构中每一个类的构造函数初始化列表示意形式② 写出当G og ;时构造函数的调用顺序。

(用类名代表相应类的构造函数)89.已知类Point 的定义与实现如下,请指出当Rectangle 类分别以公有、私有方式继承Point 时,main 函数中的错误操作,并简要说明原因。

class Point{ public:Point (float xx = 0, f1oat yy = 0 ) { set (xx ,yy ); }void Move(float xoff, f1oat yoff) { X + = xoff; Y + = yoff; } float GetX() { return X; }float GetY() { return Y; Iprivate:float X, Y;protected :void set (float xx ,float yy ){ X=xx ;Y=yy ;}};① 公有继承:class Rectangle: public Point{ public:void InitR(float x, float y, float w, float h){ set(x,y);W = w;H = h; }float GetH() { return H; }f1oat GetW() { return W; }AB C DA G FE 图 (a)private:f1oat W, H;};#include <iostream .h>#include <math .h>void main(){Rectangle rect;rect .InitR(2,3,20,l0 );rect .Move (3, 2 );rect .set(4, 8);cout << "The data of rect (X, Y,W, H):" << endl; cout << rect .GetX() <<","<< rect .GetY() <<","<< rect .GetW() <<","<< rect .GetH() <<endl; }②私有继承:class Rectangle: private Point{ public:void InitR(float x, float y, float w, float h) { set(x,y);W = w;H = h; }float GetH() { return H; }f1oat GetW() { return W; }private:f1oat W, H;};#include <iostream .h>#include <math .h>void main(){ Rectangle rect;rect .InitR(2,3,20,l0 );rect .Move (3, 2 );rect .set(4, 8);cout << "The data of rect (X, Y,W, H):" << endl; cout << rect .GetX() <<","<< rect .GetY() <<","<< rect .GetW() <<","<< rect .GetH() <<endl;}90.二维数组a与指针变量p的声明如下:int a[3][4];int *p=a[0];在没有对p做任何操作的前提下,请写出用指针p标识数组元素a[0][1]、a[1][2]和a[2][3]的标识形式。

相关文档
最新文档