c++习题集1

合集下载

单片机应用技术(c语言知识版第3版)[王静霞]习题集标准答案

单片机应用技术(c语言知识版第3版)[王静霞]习题集标准答案

习题 11.1 单项选择题(1) A (2)C (3)C1.2 填空题(1)硬件系统、软件系统(2)时钟电路、复位电路(3)XTAL1、XTAL2、RESET、EA(4)晶振1.3 问答题什么是单片机?它由哪几部分组成?什么是单片机应用系统?答:单片微型计算机(Single Chip Microcomputer)简称单片机,是指集成在一个芯片上的微型计算机,它的各种功能部件,包括CPU(Central Processing Unit)、存储器(memory)、基本输入/输出(Input/Output,简称I/O)接口电路、定时/计数器和中断系统等,都制作在一块集成芯片上,构成一个完整的微型计算机。

单片机应用系统是以单片机为核心,配以输入、输出、显示等外围接口电路和控制程序,能实现一种或多种功能的实用系统。

1.4 上机操作题(1)参考程序:#include <reg51.h> //包含头文件reg51.h,定义了51单片机的专用寄存器//函数名:delay//函数功能:实现软件延时//形式参数:无符号整型变量i,控制空循环的循环次数//返回值:无void delay(unsigned int i) //延时函数{unsigned int k;for(k=0;k<i;k++);}void main() //主函数{while(1){P1=0x00;delay(20000); //调用延时函数,实际参数为20000P1=0xff;delay(20000); //调用延时函数,实际参数为20000}}(2)参考程序:#include <reg51.h> //包含头文件reg51.h,定义了51单片机的专用寄存器//函数名:delay//函数功能:实现软件延时//形式参数:无符号整型变量i,控制空循环的循环次数//返回值:无void delay(unsigned int i) //延时函数{unsigned int k;for(k=0;k<i;k++);}void main() //主函数{while(1){P1=0x55;delay(20000); //调用延时函数,实际参数为20000P1=0xff;delay(20000); //调用延时函数,实际参数为20000}}习题 22.1 单项选择题(1)C (2)A (3)A (4)A (5)A (6)D (7)C (8)A (9)A (10)C 2.2 填空题(1)外部程序存储器、外部数据存储器、内部程序存储器、内部数据存储器(2)程序存储器(3)工作寄存器组、位寻址区、用户RAM(4)1us、2us(5)按键复位、上电复位(6)2、高2.3 回答题(1)P3口的第二功能是什么?答:P3口各引脚的第二功能如下表。

2022年9月C语言一级等级考试真题(附答案代码)

2022年9月C语言一级等级考试真题(附答案代码)

青少年软件编程(C语言)等级考试试卷(一级)分数:100 题数:51.指定顺序输出依次输入3个整数a、b、c,将他们以c、a、b的顺序输出。

时间限制:1000内存限制:65536输入一行3个整数a、b、c,以空格分隔。

0 < a,b,c < 108输出一行3个整数c、a、b,整数之间以一个空格分隔。

样例输入样例输出2. 成绩判定给定一门课的考试分数,如果分数大于等于60,则该门课成绩合格,记为"P", 否者成绩不合格,记为"F"。

时间限制:1000内存限制:65536输入一个整数s,表示这门课的分数.(0 ≤ s ≤ 100)输出如果成绩合格,输出字母P,否者输出字母F。

样例输入样例输出3. 简单排序依次输入3个整数a、b、c,将他们从小到大的顺序输出。

时间限制:1000内存限制:65536输入一行3个整数a、b、c,以空格分隔。

0 < a,b,c < 108输出一行3个整数,即将a、b、c从小到大排序的3个整数,整数之间以一个空格分隔。

样例输入样例输出4.数字求和给定一个正整数a,以及另外的5个正整数,问题是:这5个整数中,小于a的整数的和是多少?时间限制:3000内存限制:65536输入输入一行,只包括6个小于100的正整数,其中第一个正整数就是a。

输出输出一行,给出一个正整数,是5个数中小于a的数的和。

样例输入样例输出5. 数1的个数给定一个十进制正整数n,写下从1到n的所有整数,然后数一下其中出现的数字“1”的个数。

例如当n=2时,写下1,2。

这样只出现了1个“1”;当n=12时,写下1,2,3,4,5,6,7,8,9,10,11,12。

这样出现了5个“1”。

时间限制:1000内存限制:65536输入正整数n。

1 <= n <= 10000。

输出一个正整数,即“1”的个数。

样例输入样例输出参考程序1. 指定顺序输出答案:#include<stdio.h>int main(){int a = 0;int b = 0;int c = 0;scanf("%d",&a);scanf("%d",&b);scanf("%d",&c);printf("%d %d %d",c,a,b);return 0;}2. 成绩判定#include<stdio.h>int main(){int s = 0;scanf("%d",&s);if(s>=60){printf("P");}else{printf("F");}return 0;}3. 简单排序#include<stdio.h>int main(){int a = 0;int b = 0;int c = 0;scanf("%d",&a);scanf("%d",&b);scanf("%d",&c);int i = 0;if(c<b){i=c;c=b;b=i;}if(b<a){i=a;a=b;b=i;}if(c<b){i=c;c=b;b=i;}printf("%d %d %d",a,b,c); return 0;}4. 数字求和#include<stdio.h>int main(){int a = 0;int sum = 0;int b = 0;scanf("%d",&a);for(int i=1;i<=5;i++){scanf("%d",&b);if(b<a){sum+=b;}}printf("%d",sum);return 0;}5. 数1的个数#include<stdio.h>int main(){int n = 0;int sum = 0;scanf("%d",&n);for(int i=1;i<=n;i++){if(i==10000){sum+=1;}if((i%10000)/1000==1){ sum+=1;}if((i%1000)/100==1){ sum+=1;}if((i%100)/10==1){ sum+=1;}if((i%10)/1==1){sum+=1;}}printf("%d",sum);return 0;}。

c语言第一次作业程序题pta

c语言第一次作业程序题pta

5-1 统计学生平均成绩与及格人数 (15分)本题要求编写程序,计算学生们的平均成绩,并统计及格(成绩不低于60分)的人数。

题目保证输入与输出均在整型范围内。

输入格式:输入在第一行中给出非负整数N,即学生人数。

第二行给出N个非负整数,即这N位学生的成绩,其间以空格分隔。

输出格式:按照以下格式输出:其中平均值精确到小数点后一位。

输入样例:输出样例:int main(){int n,i,count=0,a[10000];double sum=0,aver;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=0;i<n;i++){if(a[i]>=60)count++;sum=sum+a[i];}if(n!=0)aver=sum/n;printf("average = %.1f\ncount = %d\n",aver,count);}5-3 大炮打蚊子(15分)现在,我们用大炮来打蚊子:蚊子分布在一个M\times N M×N格的二维平面上,每只蚊子占据一格。

向该平面的任意位置发射炮弹,炮弹的杀伤范围如下示意:其中,X为炮弹落点中心,O为紧靠中心的四个有杀伤力的格子范围。

若蚊子被炮弹命中(位于X格),一击毙命,若仅被杀伤(位于O格),则损失一半的生命力。

也就是说,一次命中或者两次杀伤均可消灭蚊子。

现在给出蚊子的分布情况以及连续k发炮弹的落点,给出每炮消灭的蚊子数。

输入格式:第一行为两个不超过20的正整数M和N,中间空一格,表示二维平面有M行、N列。

接下来M行,每行有N个0或者#字符,其中#表示所在格子有蚊子。

接下来一行,包含一个不超过400的正整数k,表示发射炮弹的数量。

最后k行,每行包括一发炮弹的整数坐标x和y(0\le≤x<<M,0\le≤y<<N),之间用一个空格间隔。

c语言习题集及答案

c语言习题集及答案

计算机系统概述一、简答题1.什么是计算机系统?包括哪几部分?答:计算机系统是一种动态实体,用于解决问题以及与它所处的环境进行交互;计算机系统包括硬件、软件和它们管理的数据。

3.简述计算机软件各个时代的主要特征。

答:第一代机器语言编写,第二代高级语言编写,第三代出现操作系统,第四代出现结构程序设计,第五代出现面向对象的程序设计语言。

4.计算机是如何分类的?答:按工作原理和运算方式分为数字电子计算机(Digital Computer)、模拟电子计算机(Analog Computer)和数字模拟混合计算机(Hybrid Computer);按设计目的分为通用计算机和专用计算机;按用途科学计算、工程计算机用的计算机、工业控制用的计算机和数据处理用的计算机;按规模和性能分为巨型机、大型机、小型机、微型机、工作站、服务器、网络计算机和嵌入式计算机等。

5.计算机具有哪些特点?答:运算速度快、精度高;具有逻辑判断功能;具有记忆功能;自动化程度高、通用性强。

6.衡量计算机性能的指标有哪些?答:从几个方面衡量,衡量cpu的指标有字长、时钟周期和主频,衡量内存的指标有内存容量、存取周期,衡量外设的指标有输入输出最高频率。

7.简述计算机主要应用在哪些方面。

答:科学计算、信息传输和信息处理、实时控制、辅助功能(设计/制造/教学)、艺术和娱乐。

8.简述计算机系统抽象分层,及每一层的功能。

答:主要分为七层,信息表示层反映了在计算机上表示信息的方式,它是一个纯概念层;硬件层探讨计算机系统的物理硬件组成;程序设计层负责解决人们的一些问题、用于实现计算的指令以及管理数据;操作系统层用来管理计算机的各种资源,提供人与计算机交互的接口;网络通信层是计算机系统运行的基础,计算机连接到网络上共享信息和资源;应用软件层的重点则是将计算机与一个实际应用领域相结合。

计算机中的信息表示一. 判断题1.二进制数在计算中很重要,因为二进制数可以被转换成以任何数为基数的数。

C-控制图相关知识测试题(答案1)

C-控制图相关知识测试题(答案1)

一、 填空题(每空2.5分,共10分)1. 第一张控制图是美国休哈特W ·A ·Shewhart 在1924年5月16日提出的不合格品率(p )控制图。

2. SPC 是应用统计技术对过程中的各个阶段进行评估和监控,建立并保持过程处于可接受的并且稳定的水平,从而保证产品或服务符合规定的要求的一种质量管理技术。

3. 控制图是对质量特性值进行测定、记录和评估,从而监察过程是否处于控制状态的一种用统计方法设计的图。

二、 判断题(每小题2分,共10分1. 计量值控制图中的控制总体均值的图与控制波动的图必须联合使用,这是由于计量值数据一般服从正态分布,而描述正态分布的分布参数平均值(μ)与标准差(σ)是相互独立的。

-—------—--——-------—————--( √ )2. 控制图的上下控制界限一般定在公差上下限的数值上。

----——-—--————---————---—--————-—----—-———--——-—-——( × )3. 当控制图表明过程处于一种受控状态时,过程就会输出符合规范的产品。

———-—--———-———----————-—-—-( × )4. 质量特性有波动是正常现象,无波动是虚假现象;彻底消灭波动是不可能的,但减少波动是可能的;控制过程就是要把波动限制在允许的范围内,超出范围就要设法减少波动并及时报告,迟到的报告有可能引发损失,是一种失职行为。

——————-—————--—--—-----———----——-————----—---—-—————--———--—————-—————--——--——-——-( √ )5. 在X 图中有15个连续点在±1σ控制界限内,这一过程处于完全稳定状态,应尽量保持这种状态.-—-—(×)三、 单项选择题(每小题2分,共24分)1. R X -控制图应用中( A )。

A. 应先分析R 图,待判稳后再分析X 图B. 应先分析X 图,待判稳后再分析R 图 C 。

C语言期末练习题-1

C语言期末练习题-1

C语言期末练习题-1一、阅读程序,选择输出结果1.下面程序的运行结果是_______。

b#includeint main( ){ char m ;m = 'B' + 32 ;printf( "%c\n" , m ) ;return 0 ;}2.下面程序的运行结果是_______。

0#includeint main( ){ int x = 3 , y = 5 ;printf( "%d\n" , x / y ) ;return 0 ; }3.下面程序的运行结果是_______。

x=1 y=2 *sum*=310 squared is :100 #includeint main( ){ int x = 1 , y = 2 ;printf( "x=%d y=%d *sum*=%d\n" , x , y , x + y ) ; printf( "10 squared is : %d\n" , 10 * 10 ) ;return 0 ; }4.下面程序的运行结果是_______。

x+y+z=48运行时从键盘输入:25 13 10↙。

#includeint main( ){ int x , y , z ;scanf( "%d%d%d" , &x , &y , &z ) ;printf( "x+y+z=%d\n" , x + y + z ) ;return 0 ; }5.下面程序的运行结果是_______。

55,,A 运行时从键盘输入:55 A B↙。

#includeint main( ){ int k = 0 ; char c1 = 'a' , c2 = 'b' ; scanf("%d%c%c" , &k , &c1 , &c2 ) ; printf( "%d,%c,%c\n" , k , c1 , c2 ) ; return 0 ;}6.下面程序的运行结果是_______。

C语言程序设计实验与习题(1-4)

C语言程序设计实验与习题(1-4)

ffB v vbvv bgbb实验一C程序运行环境及简单程序的运行2.程序改错并调试改正后的程序⑴下列程序的功能为:计算x*y的值并将结果输出,程序中有8处错误,尝试改正并上机调试之(程序以文件名sy1_2.cpp#include <stdio.h>void main{ int x=2;y=3;aA=x*yprint ("a=%d",a);printf(‘\n’);}⑵下列程序的功能为:输入圆的半径,计算圆面积并将结果输出;程序中有9处错误,尝试改正并上机调试之(程序以文件名sy1_3.cpp存盘)。

#include stdio.h;int mian();float r; area;printf("input r:\n"); scanf("%f",r);area=3.14159r*r;printf("r=%f , area=%f\n"3.编写程序并上机调试⑴输入三个整数a、b、c,显示出其中的最大值。

4.分析与总结⑴总结C程序的结构和书写规则。

⑵阅读:附件1-C语言程序的跟踪调试。

特别提示:当程序在编译时发现很多错误,此时应从上到下逐一改正,或改一个错误,就重新再编译,因为有时一个错误会引起很多错误信息。

12习题一一、选择题参考答案:1~5 C B A C D 6~10 C C A C B 11~14 A A C B二、综合题绘制NS 算法流程图。

(1)输入10个数,求其中的最大值。

(2)输入3个数,将它们升序排列输出。

(3)输入2个数,求它们的最大公约数。

(4)输入一元二次方程的系数a 、b 、c ,判断其根。

实验二顺序结构程序设计1.阅读程序,尝试写出程序的运行结果,然后输入并调试程序,对照其实际输出与分析的结果是否一致,若不一致,请找出原因。

⑴以下程序用于测试C中不同类型数据所占内存字节数,运行并体会sizeof运算符的使用方法。

01C++语言程序设计习题集(顺序结构和简单分支结构)-ok

01C++语言程序设计习题集(顺序结构和简单分支结构)-ok

顺序结构程序设计习题1、【变量自增运算问题】题目描述:键盘输入整型变量A的值,输出A增加10、再减少30、扩大20倍、缩小5倍后的值。

(要求采用算术复合赋值运算)输入格式:5 输出格式:-602、【交换变量问题】题目描述:键盘输入两个整型变量A、B的值,利用中间变量C交换A、B的值并输出。

输入格式:1 2 输出格式:2 1思考:交换其它数据类型变量的值问题。

3、【三位数数位和问题】题目描述:从键盘输入一个三位的自然数M,分离出它的百位、十位与个位上的数字并求和输出。

输入格式:523 输出格式:104、【大写转小写问题】题目描述:键盘输入一个大写字母,要求改用小写字母输出。

输入格式:A 输出格式:a思考:小写转大写问题。

5、【温度计数转换问题】题目描述:输入一摄氏温度,编程输出华氏温度。

已知:华氏温度转换为摄氏温度的计算公式如下:C=(F-32)5/9;其中,F表示华氏温度,C表示摄氏温度。

输入格式:0 输出格式:326、【长度计数转换问题】题目描述:编程实现输入千米数,输出显示其英里数。

已知:1英里=1.60934千米(用符号常量)。

输入格式:1 输出格式:0.6213简单的分支结构程序设计1、【数字比较问题】题目描述:从键盘上输入两个整型数,比较其大小,并输出显示其中较小的数。

输入格式:20 -30 输出格式:-30思考:输出其中较大的数。

2、【绝对值问题】题目描述:从键盘输入一个浮点型数x,要求不使用系统函数,输出其绝对值。

输入格式:-10.1 输出格式:10.115 153、 【打折问题】题目描述:国庆期间,某超市购物优惠规定:所购物品不超过100元时,按九折付款,如超过100元,超过部分按8折收费,请编一程序完成超市自动计费的工作。

输入格式:90 输出格式:81110 984、 【分段函数问题】题目描述:有一函数如下所示,要求已知x 值时,输出y 值。

输入格式:0.1 输出格式:0.18 1315 105、 【勾股定理】题目描述:输入三角形的三边(整型数据,且数据由小到大排列),利用勾股定理 (商高定理、韦达定理)判断它是否是直角三角形。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C++程序设计模拟试卷(一)一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。

错选、多选或未选均无分。

1. 编写C++程序一般需经过的几个步骤依次是()A. 编辑、调试、编译、连接B. 编辑、编译、连接、运行C. 编译、调试、编辑、连接D. 编译、编辑、连接、运行答案:B解析:经过编辑、编译、连接和运行四个步骤。

编辑是将C++源程序输入计算机的过程,保存文件名为cpp。

编译是使用系统提供的编译器将源程序cpp生成机器语言的过程,目标文件为obj,由于没有得到系统分配的绝对地址,还不能直接运行。

连接是将目标文件obj转换为可执行程序的过程,结果为exe。

运行是执行exe,在屏幕上显示结果的过程。

2. 决定C++语言中函数的返回值类型的是()A. return语句中的表达式类型B. 调用该函数时系统随机产生的类型C. 调用该函数时的主调用函数类型D. 在定义该函数时所指定的数据类型答案:D解析:函数的返回值类型由定义函数时的指定的数据类型决定的。

A项的表达式的值要转换成函数的定义时的返回类型。

3. 下面叙述不正确的是()A. 派生类一般都用公有派生B. 对基类成员的访问必须是无二义性的C. 赋值兼容规则也适用于多重继承的组合D. 基类的公有成员在派生类中仍然是公有的答案:D解析:继承方式有三种:公有、私有和保护。

多继承中,多个基类具有同名成员,在它们的子类中访问这些成员,就产生了二义性,但进行访问时,不能存在二义性。

赋值兼容规则是指派生类对象可以当作基类对象使用,只要存在继承关系,所以单继承或多继承都适用。

基类中的公有成员采用私有继承时,在派生类中变成了私有成员,所以D项错误。

4. 所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是()A. 类B. 对象C. 函数体D. 数据块答案:A解析:类即数据和操作的组合体,数据是类的静态特征,操作是类具有的动作。

5. 在公有派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的()A. 私有成员B. 公有成员C. 保护成员D. 保护成员或私有成员答案:A解析:在派生类中基类的保护或者基类公有都可以直接访问,基类的私有成员只能是基类的成员函数来访问。

所以选择A项。

6. 对基类和派生类的关系描述中,错误的是()A. 派生类是基类的具体化B. 基类继承了派生类的属性C. 派生类是基类定义的延续D. 派生类是基类的特殊化答案:B解析:派生类的成员一个是来自基类,一个来自本身,所以派生类是基类的扩展,也是基类的具体化和特殊化,派生类是对基类扩展。

B项基类不能继承派生类成员,所以错误。

7. 关于this指针使用说法正确的是()A. 保证每个对象拥有自己的数据成员,但共享处理这些数据的代码B. 保证基类私有成员在子类中可以被访问。

C. 保证基类保护成员在子类中可以被访问。

D. 保证基类公有成员在子类中可以被访问。

答案:A解析: this指针是隐藏的,可以使用该指针来访问调用对象中的数据。

基类的成员在派生类中能否访问,与继承方式有关,与this没有关系。

所以选择A项。

8. 所谓多态性是指()A. 不同的对象调用不同名称的函数B. 不同的对象调用相同名称的函数C. 一个对象调用不同名称的函数D. 一个对象调用不同名称的对象答案:B解析:多态性有两种静态多态性和动态多态性,静态多态性是指调用同名函数,由于参数的不同调用不同的同名函数;动态多态性是指不同对象调用同名函数时,由于对象不同调用不同的同名函数。

多态性肯定具有相同的函数名,所以选择B项。

9. 一个函数功能不太复杂,但要求被频繁调用,则应把它定义为()A. 内联函数B. 重载函数C. 递归函数D. 嵌套函数答案:A解析:内联函数特征代码少,频繁调用,执行效率高。

重载函数解决统一接口的问题;递归是子程序调用,程序调用要耗费很多空间和时间,循环/迭代都比递归有效率得多,递归只是从形式上,逻辑比较简洁。

嵌套函数即反复调用,速度较慢。

所以选择A项。

10. 下面函数模板定义中不正确的是()A. AB. BC. CD. D答案:A解析: A项中F是一个返回Q类型的值,而return中用返回类型作为返回值错误。

所以选择A项。

11. 假设ClassY:publicX,即类Y是类X的派生类,则说明一个Y类的对象时和删除Y类对象时,调用构造函数和析构函数的次序分别为()A. X,Y;Y,XB. X,Y;X,YC. Y,X;X,YD. Y,X;Y,X答案:A解析:派生类构造函数必须对这三类成员进行初始化,其执行顺序:调用基类构造函数;调用子对象的构造函数;派生类的构造函数体。

析构函数在执行过程中也要对基类和成员对象进行操作,但它的执行过程与构造函数正好相反,即对派生类新增普通成员进行清理;调用成员对象析构函数,对派生类新增的成员对象进行清理;调用基类析构函数,对基类进行清理,所以选择A项。

12. 适宜采用inline定义函数情况是()A. 函数体含有循环语句B. 函数体含有递归语句C. 函数代码少、频繁调用D. 函数代码多、不常调用答案:C解析:内联函数具有程序代码少、频繁调用和执行效率高的特征,所以选择C项。

13. 假定一个类的构造函数为A(int aa,int bb) {a=aa--;b=a*bb;},则执行A x(4,5);语句后,x.a和x.b的值分别为()A. 3和15B. 5和4C. 4和20D. 20和5答案:C解析: a=4,因为后减,b的值与a、bb相关,b=4*5=20,而与aa没有任何关系。

14. 在类中说明的成员可以使用关键字的是()A. publicB. externC. cpuD. register答案:A解析:extern用于声明外部变量的。

register声明寄存器类型变量。

无cpu类型。

它们都不能声明类成员。

public声明为公有访问权限,所以选择A项。

15. 下列不能作为类的成员的是()A. 自身类对象的指针B. 自身类对象C. 自身类对象的引用D. 另一个类的对象答案:B解析:类的定义,如果有自身类对象,使得循环定义,B项错误。

在类中具有自身类的指针,可以实现链表的操作,当然也可以使用对象的引用。

类中可以有另一个类的对象,即成员对象。

所以选择B选项。

16. 使用地址作为实参传给形参,下列说法正确的是()A. 实参是形参的备份B. 实参与形参无联系C. 形参是实参的备份D. 实参与形参是同一对象答案:D解析:地址作为实参,表示实参与形参代表同一个对象。

如果实参是数值,形参也是普通变量,此时形参是实参的备份。

所以选择D项。

17. 下列程序的输出结果是()#include <iostream.h>void main(){int n[][3]={10,20,30,40,50,60};int (*p)[3];p=n;cout<<p[0][0]<<","<<*(p[0]+1)<<","<<(*p)[2]<<endl;}A. 10,30,50B. 10,20,30C. 20,40,60D. 10,30,60答案:B解析:如果数组元素都是相同类型的指针,则称这个数组为指针数组。

指针数组一般用于处理二维数组。

声明的格式为:<数据类型><(*变量名)><[元素个数]>。

p表示指向数组n的行指针。

如果将指针的初始化(*p)[3]=b;地址的等价形式:p+i p[i]*(p+i)都表示b数组第i+1行的第1个元素的首地址。

*(p+i)+jp[i]+j &p[i][j]都表示b数组第i+1行、第j+1列元素的地址。

值的等价形式:*(*(p+i)+j) *(p[i]+j) p[i][j]都表示b数组第i+1、第j+1列元素的值。

所以题目分别访问p[0][0],p[0][1],p[0][2]。

18. 在C++中,使用流进行输入输出,其中用于屏幕输入()A. cinB. cerrC. coutD. clog答案:A解析: (1)标准输入流cin:istream类的对象。

(2)标准输出流cout:ostream类的对象。

(3)非缓冲型标准出错流cerr:ostream类的对象。

(4)缓冲型标准出错流clog:ostream类的对象19. 假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为()A. x.aB. x.a()C. x->aD. (*x).a()答案:B解析:对象访问成员的方式为:对象名.成员。

指针可以有两种:(*对象指针).成员或者对象指针->成员。

A选项是访问数据成员,B项是访问成员函数。

20. 关于对象概念的描述中,说法错误的是()A. 对象就是C语言中的结构变量B. 对象代表着正在创建的系统中的一个实体C. 对象是类的一个变量D. 对象之间的信息传递是通过消息进行的答案:A解析: A对象在C++中才有,包括数据和操作两项,而C中的变量只有数据,没有操作。

所以A项错误。

二、填空题(本大题共20小题,每小题1分,共20分)请在每小题的空格中填上正确答案。

错填、不填均无分。

1. 每个对象都是所属类的一个___。

答案:实例[解析]类是对象的抽象,对象是类的一个实例。

2. 表达式cout<<end1 还可表示为___。

答案:‘\n’[解析]endl与字符常量‘\n’等价。

3. 在C++中,访问一个指针所指向的对象的成员所用的指向运算符是___。

答案:->[解析]指针使用成员有两种方法:“->”指向运算符和“.”成员访问运算符。

4. 假如一个类的名称为MyClass,使用这个类的一个对象初始化该类的另一个对象时,可以调用___构造函数来完成此功能。

答案:复制或拷贝复制或拷贝构造函数就是用对象初始化新的对象。

三、改错题(本大题共5小题,每小题2分,共10分)下面的类定义中有一处错误,请用下横线标出错误所在行并给出修改意见。

1. #include <iostream.h>class Test{private:int x,y=20;public:Test(int i,int j){x=i,y=j;}int getx(){return x;}int gety(){return y;}};void main(){Test mt(10,20);cout<<mt.getx()<<endl;cout<<mt.gety()<<endl;}答案:int x,y=20;在类内部不能对数据成员直接赋值。

相关文档
最新文档