C基础测试
C语言单元测试题第一章基础练习题
第一章基础练习题一、填空题1、C语言是在70 年代初问世的。
一九七八年由美国电话电报公司(A T&T)贝尔实验室正式发表了C语言。
后来由美国国家标准协会(American National Standards Institute)在此基础上制定了一个C 语言标准,于一九八三年发表。
通常称之为ANSI C。
2、目前最流行的C语言有以下几种:Microsoft C 或称MS C ,Borland Turbo C 或称TurboC ,A T&T C ,这些C语言版本不仅实现了ANSI C标准,而且在此基础上各自作了一些扩充,使之更加方便、完美。
9 种控制语句,程序书写自由,主要用小写字母表示,压缩了一切不必要的成分。
Turbo C扩充了11个关键字:asm _cs _ds _es _ss cdecl farhuge i nterrupt near pascal注意:在C语言中,关键字都是小写的。
4、运算符丰富。
共有34 种。
C把括号、赋值、逗号等都作为运算符处理。
从而使C 的运算类型极为丰富,可以实现其他高级语言难以实现的运算。
5、C源程序的结构特点1>.一个C语言源程序可以由一个或多个源文件组成。
2>.每个源文件可由一个或多个函数组成。
3>.一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。
4>.每个函数由两部分组成:说明部分与函数体,其中说明部分主要包括返回类型、函数名、形参例表。
函数体包括:说明部分与执行部分。
在C语言中函数的定义是并列的,而函数的调用可嵌套。
5>.每一个说明,每一个语句都必须以分号结尾。
但预处理命令,函数头和花括号“}”之后不能加分号。
6>.标识符,关键字之间必须至少加一个空格以示间隔。
若已有明显的间隔符,也可不再加空格来间隔。
6、从书写清晰,便于阅读,理解,维护的角度出发,在书写程序时应遵循以下规则:1>.一个说明或一个语句占一行。
C语言程序设计基础测试题-答案
C语言程序设计基础测试题一、单选[1] 下面叙述中错误的是____。
A. 复合语句中定义的函数只在该复合语句中有效B. return( )语句中的括号中,可以是变量,常量或有确定值的表达式C. 形式参数也是局部变量D. 主函数中定义的变量在整个程序中都是有效的[2] 下列说法中正确的是____。
A.带参数的宏定义中的参数是没有类型的B.宏展开将占用程序的运行时间C.宏定义命令是C语言中的一种特殊语句D.使用#include命令包含的头文件必须以“.h"为后缀[3] 若函数的形参为一维数组,则下列说法中正确的是____。
A.调用函数时的对应实参必为数组名B.形参数组可以不指定大小C.形参数组的元素个数必须等于实参数组的元素个数D.形参数组的元素个数必须多于实参数组的元素个数[4] 系统的标准输出设备是____。
A.键盘B.硬盘C.内存D.显示器[5] 下面叙述中正确的是____。
A.全局变量在定义它的文件中的任何地方都是有效的B.全局变量在程序的全部执行过程中一直占用内存单元C. C语言的switch语句中case后可为常量或表达式或有确定值的变量及表达式D. 说明函数时必须明确其参数类型和返回类型[6] C程序的基本结构单位是____。
A.文件B.语句C.函数D.表达式[7] 对于定义,char *aa[2]={"abcd","ABCD"},选项中说法正确的是____。
A.aa数组元素的值分别是"abcd"和"ABCD"B.aa是指针变量,它指向含有两个数组元素的字符型一维数组C.aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址D.aa数组的两个元素中各自存放了字符'a'和'A'的地址[8] 任何一个C语言的可执行程序都是从____开始执行的。
A.程序中的第一个函数B.main( )函数的入口处C.程序中的第一条语句[9] 操作系统的作用是()。
C++基础测试
(A)char a(10) (B) int a[] (C)int k=5,a[k] (D)char a[]={‘a’,’b’,’c’}
8、下面不能够判断字符串S是空串的是()
(A) if (S[0]==0) (B) if(strlen(S)==0)
(C) if(strcmp(S,””)==0) (D)if(S==’\0’)
#include"iostream.h"void main(){int t(int );
int x;
x=t(5);
cout<<x<<endl;
}
int t(int a)
{
if(a>0)
return a*t(a-2);
else
return 1;
}
请写出输出结果:
4、完成以下程序,实现求11的11次方的个十百位上的数字之和。
}
9、char x[5]={‘a’,’b’,’\0’,’c’,’\0’} 输出的结果是()
(A)’a’’b’ (B)ab (C) ab c (D)abc
10、设有下面和程序段
char a[3],b[]="China"
a=b;
cout<<a;
则()
(A)编译出错 (B)运行后将输出Ch (C) 运行后将输出Chi (D)运行后将输出Chian
2/1,3/2,5/3,8/5,13/8,21/13,. . .
#include <iostream.h>
void main()
{
int I,m,n,k;
float s=0;
m=1;n=2;
大一计算机专业C语言期中测试试题
《程序设计基础》期中考试试卷班级姓名学号一、填空题(每题1分,共5分)1.上机运行C程序大致分四个步骤,分别是编辑、编译、和运行。
2.结构化程序设计方法的基本思想是自顶向下,逐步细化,和结构化编码。
3.C语言的控制结构有:顺序结构、和循环结构。
4.算法特点包括确定性、可行性、输入、输出和5. 77的2字节补码是,-77的2字节补码表示为(用十六进制表示)二、选择题(每题1分,共15分)1.判断下面标识符中哪个是C语言中合法的用户定义标识符()A. 2a1bB. a%bdC. _123D. char2.设有以下定义int a=0; double b=1.25; char c=‟A‟; #define M 2则下面语句中错误的是( )A. a--;B. b--;C. c--;D. M--;3.有两条语句:static char x[]=”abcde”;static char y[]={…a‟,‟b‟,‟c‟,‟d‟,‟e‟};则下列说法中正确的是( )A. 数组x和数组y长度相同B.数组x长度大于数组y长度C. 数组x长度小于数组y长度D. 以上三种说法均错误;4.设整型变量a=13,则经运算a+= a/=a%=5后,a的值为()A. 17.333B. 17C. 0D. 25. 已知:int n,i=1,j=2;执行语句n=i<j?i++:++j;后,i和j的值是( ).A. 1,2B. 1,3C. 2,2D. 2,36.有函数定义如下:当自变量x<0时y=-1;当x=0时y=0;当x>0时y=1;以下程序片段能实现该函数功能的是( ):A. if(x>=0)B. y=-1;C. if(x>=0)D. y=0;if(x>0) y=1; if(x!=0) if(x>0) y=1; if(x>=0) else y=-1; if(x>0) y=1 ; else y=0; if(x>0) y=1;else y= 0; else y=0; else y= -1; else y=-1;7.当a=2,b=1,c=3,d=4,m和n值为1时,(m=a>b)||(n=c>d)的值是( )A. TRUEB. FALSEC. 1D.08.在C语言程序中,以下说法正确的是( )A. main函数内部可嵌套定义子函数B. main函数必须出现在所有函数之前C. main函数必须出现在所有函数之后D. main函数是程序执行的入口9.关于局部变量和全局变量说法正确的是():A. 在main函数中定义的变量都为全局变量B. 当全局变量与局部变量同名时,全局变量起作用C. 当全局变量与局部变量同名时,局部变量起作用D. 以上说法都不正确10.下列关于switch和break语句的讨论中,只有()是正确的。
C语言综合测试
20、在 c 语言程序中,下列程序运行的结果为()(选择一项)
#include<stdio.h>
void main()
{
int a=777,b=999;
printf(“%d\n“,a,b);
}
A)出现错误
B)777
C)999
D)777 999
21、在 C 语言中,下列关于条件语句的描述中,正确的是()(选择两项)
char a;
int b;
float c;
double d;
A)float
B)int
C)char
D)double
4、分析如下 C 语言代码片段,输出结果为( ).(选择一项)
void main()
{
int i=2,j;
j=i++;
printf("%d,%d",i,j);
}
A)2,2
B)2,3
C)3,2
break;
case 2:
printf(“?”);
break;
default:
printf(“$”);
}
}
在 C 语言中,执行上面程序后,输出是( ) (选择一项)
A)!
B)?
C)$
D)无输出
39、有如下 C 语言程序,则程序运行后的输出结果为()(选择一项)
#include <stdio.h>
void main()
{
char ch;
ch='a'+3;
putchar(ch);
}
A)a+3
B)100
C)c
D)d
13、在 C 语言中,能使整型变量 i=2 输出为 002 的语句是()(选择一项)
专升本计算机基础测试题(CS01)
专升本计算机基础测试题(CS01)1.第一台电子计算机ENIAC每秒钟运算速度为() [单选题] *A.5000次(正确答案)B.5万次C.50万次D.5亿次2.第二代计算机的电子器件是() [单选题] *A.电子管B.集成电路C.晶体管(正确答案)D.大规模集成电路3.编译程序将高级语言程序翻译成与之等价的机器语言,前者称为源程序,后者称为() [单选题] *A.工作程序B.机器程序C.临时程序D.目标程序(正确答案)4.在Windows中快捷方式的扩展名为() [单选题] *A.sysB.lnk(正确答案)C.iniD.ico5.在Windows中将某个程序项移动到一个打开的文件夹中,应() [单选题] * A.单击鼠标左健B.双击鼠标左健C.拖曳(正确答案)D.单击或双击右键6.在“窗口”菜单中,若选中带有“…”的菜单项,将() [单选题] *A.表示该项被选中B.弹出下一级菜单C.表示不选该项D.弹出一个对话框(正确答案)7.为了获得Windows的帮助信息,可以需要帮助的时候按() [单选题] *A. F1(正确答案)B.F5C.F7D.F128.在Word中,说法不正确的是() [单选题] *A.可以进行图文混排B.是文字处理软件C.具有逻辑分析和计算能力(正确答案)D.具有英文的拼写和语法检查能力9.在Word操作过程中能够显示总页数、节号、页号、页数等信息的是() [单选题] *A.菜单栏B.格式工具栏C.状态栏(正确答案)D.常用工具栏10.新建一个Word文档。
默认的段落样式为() [单选题] *A.强调B.正文(正确答案)C.标题D.无间隔11.Word具有分栏的功能,关于分栏的说法中正确的是() [单选题] *A.各栏的宽度可以不同(正确答案)B.最多可以设4栏C.各栏的栏宽必须相等D.各栏之间的间距是固定12.在Excel中,当希望使标题位于5列表格中间,可使用对齐方式中的() [单选题] *A.合并及居中(正确答案)B.分散对齐C.居中对齐D.居中13.在Excel中,全选按钮位于Excel窗口的() [单选题] *A.工具栏B.左上角,行号和列标相汇处(正确答案)C.编辑栏中D.底部,状态栏中14.在Excel市,公式“=SUM(B2,C3:E4)”的含义是(D) [单选题] *A.=B2+C3+E4B.=B2+C3+C4+D3+D4C.=B2+C3+C4+E3+E4D.=B2+C3+C4+D3+D4+E3+E4(正确答案)15.Excel中提供的图表类型大致可分为嵌入图表和() [单选题] *A.柱形图图表B.拆线图图表C.条形图图表D.图表工作表(正确答案)16网络病毒主要传播途径的是() [单选题] *A.MP3音乐B.电子邮件(正确答案)C.Word文档D.光盘17.若U盘染有病毒,为了防止该病毒传染计算机系统,正确的措施是() [单选题] *A.删除U盘上的所有文件B.给该U盘加上写保护C.将该U盘重新格式化(正确答案)D.将U盘存放一段时间后再使用18.加强网络安全的最重要的基础措施是() [单选题] *A.安装杀毒软件(正确答案)B.设计有效的网络安全策略C.加强安全教育D.选择更安全的操作系统19.信息安全技术的核心和关键是() [单选题] *A.密码技术(正确答案)B.网关技术C.漏洞扫描技术D.防火墙技术20.多媒体计算机内部只能处理() [单选题] *A.文字信息B.多媒体信息C.模拟信息D.数字信息(正确答案)二、多项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的五个备选项中至少有两个是符合题目要求的,错涂、多涂、少涂、未涂均无分。
c++基础考试
c++基础考试
C++基础考试一般会考察以下知识点:
1.C++的基本语法:包括变量、数据类型、运算符、控制流程语句等。
2.函数和程序流程:包括函数的定义和调用、参数传递、局部变量和全
局变量等。
3.数组和指针:包括数组的定义和使用、指针的概念和操作、动态内存
分配等。
4.面向对象编程:包括类和对象的概念、构造函数和析构函数、继承和
多态等。
5.标准库和算法:包括标准库中的常用函数和类、算法的实现和应用等。
考试形式通常为笔试或机试,考试时间一般为2小时左右。
考试难度因考试级别和考试机构而异,一般来说,C++基础考试的难度相对较低,但也需要考生具备一定的编程基础和逻辑思维能力。
java基础测试题
java基础测试题一、选择题1. Java中用于创建新对象的关键字是()。
A. newB. classC. thisD. super2. 下列哪个选项是Java语言中的保留字?()。
A. runB. importC. helloD. method3. 在Java中,如果需要导入ng包中的类,需要使用()语句。
A. import ng.*B. import static ng.*C. Both A and BD. None of the above4. 假设有一个名为“Employee”的类,它有一个名为“name”的字符串变量,那么在该类的构造函数中初始化“name”变量的语句是()。
A. String name;B. name = null;C. = "default";D. name = "default";5. 在Java中,用于创建数组的语法是()。
A. type[] arrayName = new type[arraySize];B. type arrayName[] = new type[];C. Both A and B are correctD. None of the above二、填空题1. 在Java中,所有的类都是继承自__________类的。
2. 如果需要在Java程序中使用面向对象编程的特性,需要导入的包是__________。
3. 在Java中,用__________关键字可以定义一个类。
4. 一个Java类中可以有多个方法,但是必须有一个特殊的方法被称为__________,它是程序执行的起点。
5. 当一个对象不再被使用时,垃圾回收器会自动回收其占用的内存,这个机制称为__________。
三、判断题1. Java中所有的类都必须继承自一个父类。
()2. Java语言支持多重继承。
()3. 一个Java类可以有多个构造函数,它们通过参数的不同来区分。
基础C测试AB卷
《C语言基础》试卷(A)一、判断题(10分)根据C程序设计的有关概念,判断以下表述的正确性。
对的在括号内填上“√”,错的填上“×”。
(共10分,每小题1分)()1.在C源程序中将语句“if(x==5) y++;”误写作“if(x=5) y++;”,将导致编译错误。
()2.设变量定义为 char s[]= ”hello”,则数组s 中有6个元素。
()3.若表达式sizeof(int)的值为2,则int类型数据可以表示的最大整数为 216-1。
()4.C的double类型数据可以精确表示任何实数。
()5.函数原型为“void sort(float a[],int n)”,调用该函数时,形参数组a被创建,实参数组各元素的值被复制到a数组各元素中。
()6.“B“和”B”在内存中的表示没有区别。
()7.a是一维数组名,数组元素a[1]还可以写作“*(a++)”。
()8.若文件打开方式为”w”而该文件已经存在,则文件中原有数据被清空。
()9.p为指向字符串的指针变量,*p表示所指的字符串。
()10.表达式(15>>2)&2 的值是2。
二、单项选择题(共20分,每小题2分)1.C语言规定函数的返回值的类型是由()。
A.return语句的表达式所决定B.调用该函数时的主调函数返回值类型所决定C.调用该函数时系统临时决定D.在定义该函数时所指定的函数返回值类型所决定2.C语言在判断逻辑值时,以()作为逻辑“真”值。
A.true B.t 或 y C.非0值 D.数值03.设有定义:char s[12]={”string”};则printf(”%d”,strlen(s));的输出是( )。
A.6 B.7 C.11 D.124.设ch是char型变量,其值为’A’,则表达式:ch = (ch>=’A’ && ch<=’Z’)?(ch+32):ch 的值是()。
A.’A’ B.’a’ C.’Z’ D.’z’5.设int i,j,*p=&j;以下正确的语句是()。
C语言在线测试题目及答案
C语言在线测试题目及答案SANY GROUP system office room 【SANYUA16H-SANYHUASANYUA8Q8-第一章、第二章、第三章第一题、单项选择题(每题1分,5道题共5分)1、在以下关于C语言的叙述中,正确的说法是: BA、C语言比汇编语言快B、C语言比BASIC语言快C、C语言比BASIC语言和汇编语言都快D、C语言比BASIC语言慢2、在C语言中,不正确的常量是: BA、0xf6B、0876C、.5e-6D、 3e 23、属于低级语言的计算机语言是( )。
BA、机器语言B、汇编语言C、Java语言D、Pascal语言4、对于链接,正确的说法为()。
DA、链接是将源程序和库函数链接到一起,生成可执行程序。
B、链接是将源程序、目标程序和其他源程序链接到一起,生成可执行程序。
C、链接是将源程序、库函数和其他源程序链接到一起,生成可执行程序。
D、链接是将目标程序、库函数和其他目标程序链接到一起,生成可执行程序。
5、下列不能表示常量大写英文字母A的是()。
BA、常量:‘A’B、常量:“A”C、常量:‘\x41’D、常量:‘\101’第二题、多项选择题(每题2分,5道题共10分)1、对于16位系统中,C语言中整数 -8在内存中的错误存储形式是: BCDA、1111 1111 1111 1000B、1000 0000 0000 0000C、1000 0000 0000 1000D、1111 1111 1111 01112、下列关于C语言用户标识符的叙述中,不正确的叙述是: ACDA、用户标识符中可以出现下划线和中划线(减号)B、用户标识符中不可以出现中划线,但可以出现下划线C、用户标识符中可以出现下划线,但不可以放在用户标识符的开头D、用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头3、关于C语言程序的语句,正确的说法是( )。
BDA、一条语句只能占一行B、一行可以书写多条语句C、语句的结束标识符是句号D、建议每条语句占一行4、与汇编程序相比,C语言程序的优点包括( )。
C++基础1级基础水平测试题
C++基础1级基础水平测试题一、单项选择题1.在每个 C++程序中都必须包含有这样一个函数,该函数的函数名为( ) [单选题]A.main(正确答案)B.MAIND. function2.C++语言中的每条基本语句以()作为结束符 [单选题]A、回车符B、;(正确答案)C、。
D、/3.C++中执行该指令cout<<"2+3";正确的结果是() [单选题]A、出错B、5C、2+3(正确答案)D、3+24.C++中运行以下编码其结果是:()return 0;cout<<2+3; [单选题]A、5(正确答案)B、无结果C、2+3D、语法错误5.以下变量命名格式错误的是() [单选题]A、xm_B、2A(正确答案)C、ABCD、nj_26.阅读程序写结果#include <iostream>using namespace std;int main(){cout<<"99+1=";cout<<100;return 0;}最后输出的结果是?() [单选题]A、99+1=B、99+1=100(正确答案)C、99D、1007.运行下面程序会出现的结果是()#include <iostream>using namespace std;int main(){cout<<"23";return 0;} [单选题]A、6B、23(正确答案)C、32D、38.运行下面程序会出现的结果是()#include <iostream>using namespace std;int main(){cout<<(3>4);return 0;} [单选题]A、0(正确答案)B、1C、3>4D、报错,无法运行9.下列()不是非法的标识符。
[单选题]A.3yB.5BC.99ZG2D.p7y(正确答案)10.实验中学的操场,长200米,宽100米,求操场的周长是多少米?括号内应该填入哪个代码?()#include <iostream>using namespace std;int main(){int a,b,c;a=200;b=100;c=_________________ ;cout<<c;return 0;} [单选题]A.abB.a/bC.(a+b)2(正确答案)D.(a+b)/211.int的数据类型是什么?() [单选题]A.整型(正确答案)B.字符型C.浮点型D.双浮点型12.假设a=0;a++;++a;a=?() [单选题]A.a=0B.a=1C.a=2(正确答案)D.a=313.假设a=123,b=456,编写代码a=b;那么a=?() [单选题]A.123B.456(正确答案)D.12345614.倘若想要计算a乘以b的值,下列哪一行代码可以得到正确的值?() [单选题]A.cout<<ab<<endl;(正确答案)B.cout<<"ab"<<endl;C.cout<<axb<<endl;D.cout<<a<<<<b<<endl;15.#include<iostream>using namespace std;int main(){int sum;sum=0;sum=sum+1;sum=sum+2;sum=sum+3;sum=sum+4;out<<"1+2+3+4="<<sum<<endl;return 0;}请问,sum的值是?() [单选题]A.2B.7C.9D.10(正确答案)16.n=n2的简写方式为?( ) [单选题]A.n=2(正确答案)C.2n=D. 2=n17.C++中的单行注释如何编写?() [单选题]A.//(正确答案)B./ /C.///D./18.为了让计算机完成一个完整的任务而编写的一串指令序列称为()。
C语言模拟测试题一及答案
模拟题一一、选择题1.下列说法正确的是()。
A)main函数必须放在C程序的开头B)main函数必须放在C程序的最后C)main函数可以放在C程序的中间部分,但在执行C程序时是从程序开头执行的D)main函数可以放在C程序的中间部分,但在执行C程序时是从main函数开始的2.C语言中不能用来表示整常数的进制是()。
A)十进制B)十六进制C)八进制D)二进制3.在下面几组数据类型中, 全为最常用的基本数据类型的是哪一组:()。
A)整型实型字符型B)整型数组指针C)数组结构体共用体D)指针逻辑型空类型4.C语言规定标识符由()等字符组成。
A)字母数字下划线B)中划线字母数字C)字母数字逗号D)字母下划线中划线5.若有说明语句:char c= ‘\64’ ; 则变量C包含()。
A)1个字符B)2个字符C)3个字符D)说明不合法,C值不确定6.若有如下定义:int a=2,b=3; float x=3.5,y=2.5; 则表达式:(float)(a+b)/2+(int)x%(int)y的值是()。
A)2.500000 B)3.500000 C)4.500000 D)5.0000007.设有如下定义和执行语句,其输出结果为()。
int a=3,b=3;a = --b + 1; printf(“%d %d”,a,b);A)3 2 B)4 2 C)2 2 D)2 38.以下表达式: 2+’a’+i*f, 其中i为整型变量,f为float型变量,则表达式的最终数据类型为()。
A)int B)float C)char D)double9.C语言中,运算对象必须是整型数的运算符是()。
A)%B)\C)% 和\D)**10.有如下语句:printf(“%s,%5.3s\n”,“COMPUTER”,“COMPUTER”);执行语句后的最终结果为()。
A)COMPUTER ,CMP . B)COMPUTER, CMP.C)COMPU, CMP. D)COMPU, CMP .11.能正确表示x的取值范围在[0,100]和[-10,-5]内的表达式是()。
《C语言程序》测试题及答案
c++程序设计本科一、判断题错误的在后面写“F”,正确的写“T”,每题1分1. 程序是描述算法的编程工具;T2. 将函数模板与某个具体数据类型连用,就产生了模板函数,称这个过程为函数模板实例化 ; T3. C++语言中,用来为对象初始化的特殊成员函数称为构造函数;用于在对象撤销时执行一些清理任务的特殊成员函数称为析构函数; T4. 逐条翻译并执行的翻译程序称为编译程序; F5. 把所有类组织在一个树形结构中,这时所有类,不管它们之间的差别有多大,都有一个共同的相关类,这种结构被称为类树;类群是由一些彼此密切相关的类和类族组成的;F6. 如果在定义一个类时,该类继承了多个基类的特征,那么这个继承关系称为多重继承;T7. 不同对象可以调用相同名称的函数,并可导致完全相同的行为的现象称为多态性;F8.形式参数表是用括号分隔的变量说明列表,变量称为函数的形式参数,有时也简称为形参; F9..在C++语言中,只要在声明函数原型时形式参数的个数或者对应的类型不同,两个或更多的函数就可以共用同一个名字;这种在同一作用域中允许多个函数使用同一函数名的措施被称为重载; T8.C++的作用域分辨:可以迫使编译器“看到”当前作用域的外层部分,存取那些被隐藏的名字;这是由作用域分辨操作符实现的,这一过程叫做作用域分辨;T11.说明函数原型时不需要指明每个函数参数的名字,只需要说明每个参数的类型和返回值类型就可以了;T12.所有的表达式都有值;F13.程序的编译是以文件为单位的,因此将程序分到多个文件中可以减少每次对程序修改所带来的编译工作量;T14.类的静态数据成员需要在定义每个类的对象时进行初始化;F15.基类中被说明为protected和private的成员只能被其派生类的成员函数访问,不能被其它的函数访问;F16.当将一个类S定义为另一个类A的友元类时,类S的所有成员函数都可以直接访问类A的所有成员;T17.当函数的返回值是数组类型的,传递的是数组第一个元素的地址;F18.如果派生类的成员函数的原型与基类中被定义为虚函数的成员函数原型相同,那么,这个函数自动继承基类中虚函数的特性;T19.字符串’hello,world”在内存中存放时,占用11个字节的空间;F20. 用new动态申请的内存空间,必须用delete来释放 ;T21、变量必须先定义或说明,后使用;T23、常量不能作为左值使用;T23、头文件中一般存放着变量和常量的定义、函数的原型以及类的定义;F24、类的友元函数可以直接访问该类的所有成员;T25、派生类的成员函数可以直接访问基类的所有成员;F26、一个类可以作为另一个类的友元类;T27、函数的参数和返回值类型可以是简单数据类型,也可以是指什、引用、数组和类;F28、在基类中被说明为虚函数的类的成员函数必须在每个派生类中说明为虚函数,才能具有多态的特征;F29、下面两个语句是等价的: Fchar str ="hello,world";char str11="hello,world";30、用new动态申请的内存是在堆中分配的,而不是在栈中分配的; T31.静态联编所支持的多态性称为编译时的多态性; T32.如果一个类中至少有一个实函数,则称这个类为抽象类 ; F33.用于在对象消失时执行一些清理任务的函数叫虚函数; F34. C++源程序文件的缺省扩展名为cpp T35. 由C++源程序文件编译而成的目标文件的缺省扩展名为lik F36. 由C++目标文件连接而成的可执行文件的缺省扩展名为obj F37. 编写C++程序一般需经过的几个步骤依次是编辑、编译、连接、调试 T38. 标识符default then while全是保留字 F39. 能作为C++程序的基本单位是语句 T40. 程序中主函数的名字为任意标识符 F二、填空题每题3分1. 假定x=5,y=6,则执行表达式y+=x--计算后,x和y的值分别为_____4_____和___11_______;2. C++常数0x145对应的十进制值为____325______;3. C++常数0345对应的十进制值为____229______;4. 十进制常数245对应的十六进制的C++表示为____0xF5 F大小写均可_____5. 十进制常数245对应的八进制的C++表示为___0365 F大小写均可_______;6. signed char类型的值域范围是_-128_______至_____+127_____之间的整数;7. int和float类型的数据分别占用___4______和______4____个字节;8. float和double类型的数据分别占用_____4____和__ 8______个字节;9. bool和char类型的数据分别占用____1_____和_____1___个字节;10. unsigned short int和int类型的长度分别为___2______和____4____;11. 字符串“This\’s a book.\n”的长度为___15_______;12. 字符串“\nThis\’s a pen\n\n”的长度为_____15_____;13. 在C++中存储字符串“abcdef”至少需要___7_____个字节;14. 在C++中存储字符串“a+b=c”至少需要__6______个字节;14.假定x和y为整型,其值分别为16和5,则x%y和x/y的值分别为_____1_____和______3____;15.若while循环的“头”为”whilei++<=10”,并且i的初值为0,同时在循环体中不会修改i的值,则循环体将被重复执行__11____次后正常结束;17. 若do循环的“尾”为”while++i<10”,并且i的初值为0,同时在循环体中不会修改i 的值,则循环体将被重复执行____10__次后正常结束;18. 当在程序中执行到__break______语句时,将结束本层循环类语句或switch语句的执行;19. 当在程序中执行到____continue____语句时,将结束所在循环语句中循环体的一次执行;20. 在程序中执行到____ return ____语句时,将结束所在函数的执行过程,返回到调用该函数的位置;21.在程序执行完__ 主或main_____函数调用后,将结束整个程序的执行过程,返回到C++集成开发窗口;22. 元素类型为int的数组a10共占用___40_____字节的存储空间;23. 元素类型为double的二维数组a46共占用___192_____字节的存储空间;24. 元素类型为char的二维数组a1030共占用___300_____字节的存储空间;25. 存储字符’a’和字符串”a”分别需要占用____1____和_____2___个字节;26. 空串的长度为___0_____,存储它需要占用___1_____个字节;27. 字符串”\’a\’xy=4\n”的长度为__7______;28. 字符串”a:\\xxk\\数据”的长度为__11__;29. 用于存储一个长度为n的字符串的字符数组的长度至少为___ n+1_____;30. 若a是一个字符数组,则从键盘上向该数组输入一个字符串的表达式为_ cin>>a___;31. C++是将源程序_一次翻译成目标程序_____,然后再执行,这种翻译程序称为编译程序;32. 联合的若干数据成员使用地址___同一___,占据的内存是联合中占内存最大的数据成员所占用的内存;33. 作用域分辨操作符的一般形式为类名::类标识符 ,作用域分辨不仅可用于类中,而且可以用在____函数调用__ 时;34. 将关键词const写在 ___函数头___ 之后, __函数体____, 之前,说明该函数是一个const成员函数;35. C++是在 ___标准C语言___ 的基础上,引入面向对象概念而扩充形成的混合型面向对象语言;36. 在动态联编中,直到 _程序运行_____ 时才能确定调用哪个函数;静态联编是在程序编译时进行的;37. 类型转换函数 ___不能___ 带有参数,当被派生类继承并被说明为 ___虚函数___ 时,可以定义多个转换函数;38. 继承是 ___对象___ 的一个特点,继承支持 ___层次___ 类概念39. C++的 __作用域____ 规则能保证编译器调用正确的成员函数;40. 在C++中,声明构造函数和析构函数时, _不能_____使用const或volatile关键词;41. 只能用类运算符来重载的运算符是:_=_____,______,______,___->___;42. 应该养成将所有extern说明放到__头文件____ 中去的习惯,对于自己编写的函数,必须自己给出 __函数类型____ 说明;43. 结构是 ___类___, 的一种特例,其中成员在缺省情况下是_公有的_____ ;44. 当使用delete删除一个对象时,delete隐含着对 __析构函数____ 函数的一次调用,如果这个函数为虚函数,则这个调用采用___动态___联编;45. const放在函数前面使常量成员返回 __常量对象____ ;如果定义一个const对象,则只能访问该对象的const 成员函数;46.在面向对象的程序设计中,一切都是围绕着___类___ 展开的;47.析构造函数是和___类___同名的函数;48.指向基类的对象的指针变量也可以指向___派生类______的对象;49.若多继承时,多个基类中拥有一个同名的成员,则__不能_______用调整访问权限确定对该成员的访问50.多继承情况下,派生类的构造函数的执行顺序取决于__继承_______派生类时所指定的各基类的顺序;51.构造函数___不能__被继承,析构函数______不能______被继承;52.___多___继承情况下,派生类中对基类成员的访问会出现二义性;解决二义性的方法是______成员名限定法______、___支配规则__和__虚基类___53.垂直访问时,保护成员的访问控制权限与______公有___成员相同;54.派生类可以调用其____基类_____中不具备的数据和操作;55.利用继承能够实现___软件复用______;这种实现缩短了程序的开发时间,促使开发人员复用已经测试和调试好的高质量软件;56.当撤消一个含有基类和子对象成员的派生类对象时,将首先完成___派生类___的析构函数定义体的执行,接着完成______子对象成员______的析构函数定义体的执行,最后完成___基类___的析构函数定义体的执行;57.如果类Alpha继承了类Beta,则类Alpha称为___派生___类,类Beta称为__基___类58.对基类数据成员的初始化必须在派生类构造函数中的____成员初始化列表_____处执行;59.在派生类中使用基类的成员,可以显示地使用__成员名限定符_______来使用基类成员60.当将基类指针转换为派生类指针时,由于编译器认为这种操作是危险的,所以必须要使用____强制类型转换_____;61.多继承可以视为是___单继承___的扩展,派生类及其基类可用一个___有向无环图DAG___表示;62. 继承是___对象___的一个特点,继承支持___层次___类概念;63.若需要定义一个标识符常量,并且使C++能够进行类型检查,则应在定义语句的开始使用保留字const .64.逻辑表达式x>3&&x<10 的相反表达式为x<=3||x>=10 .65.逻辑表达式a>b ||b = =5的相反表达式为a<=b&&b=5 .66.假定一个二维数组的定义为”char a56;”,则该数组所含元素的个数为30 ,所占存储空间的字节数为30 .67.变量分为全局和局部两种, 全局变量没有赋初值时,将由系统自动置为0.68.假定a是一个一维数组,则ai对应的存储地址以字节为单位为a+isizeof ai69.假定一个结构类型的定义为”struct A{int a,b;Ac;};”, 则该类型的大小为12字节.70.假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为p->b .三、单选题每题2分,在下列各题的备选答案中,选出一个正确答案,并将其号码填写在题目后面的括号内;A 1. C++源程序文件的缺省扩展名为 ;A. cppB. exeC. objD. likC 2. 由C++源程序文件编译而成的目标文件的缺省扩展名为 ;A. cppB. exeC. objD. likB 3. 由C++目标文件连接而成的可执行文件的缺省扩展名为 ;A. cppB. exeC. objD. likB 4. 编写C++程序一般需经过的几个步骤依次是 ;A. 编译、编辑、连接、调试B. 编辑、编译、连接、调试C. 编译、调试、编辑、连接D. 编辑、调试、编辑、连接B 5. 以下标识符中不全是保留字的是 ;A. case for intB. default then whileC. bool class longD. goto return charC 6. 能作为C++程序的基本单位是 ;A. 字符B. 语句C. 函数D. 源程序文件A 7. 程序中主函数的名字为 ;A. mainB. MAINC. MainD. 任意标识符D 8. C++程序的基本模块为 ;A. 表达式B. 标识符C. 语句D. 函数B 9. 可用作C++语言用户标识符的一组标识符是 ;A. void define +WORDB. a3_b3 _123 YNC. for -abc CaseD. 2a DO sizeofD 10. 存储以下数据,占用存储字节最多的是 ;A. 0B. ‘0’C. “0”D.D 11. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用 符号作为分隔符;A. 空格或逗号B. 逗号或回车C. 逗号或分号D. 空格或回车C 12. 设”int a=12;”,则执行完语句”a+=aa;”后,a 的值是 ;A. 12B. 144C. 156D. 288D 13. 假设在程序中 a 、b 、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式abc1的表达式是 ; A. abc B. 1/abc C. 1/a/b/floatc D. a/b/cD 14. 设”int a=15,b=26;”,则”cout<<a,b;”的输出结果是 ;A. 15B. 26,15C. 15,26D. 26C 15. 设x 是一个bool 型的逻辑量,y 的值为10,则表达式 x && y 的值为 ;A. 1B. 0C. 与x 值相同D. 与x 值相反A 16. x>0 && x<=10的相反表达式为 ;A. x<=0 || x>10B. x<=0 && x>10C. x<=0 || x<=10D. x>0 && x>10B 17. x>0 || y==5的相反表达式为 ;A. x<=0 || y=5B. x<=0 && y=5C. x>0 || y=5D. x>0 && y==5 A 18.设x和y均为bool量,则x && y为真的条件是 ;A. 它们均为真B. 其中一个为真C. 它们均为假D. 其中一个为假C 19.设x和y均为bool量,则x || y为假的条件是 ;A. 它们均为真B. 其中一个为真C. 它们均为假D. 其中一个为假B 20. 字符串”a+b=12\n”的长度为 ;A. 6B. 7C. 8D. 9B 21. 假定下列x和y均为int型变量,则不正确的赋值为 ;A. x+=y++B. x++=y++C. x=++yD. ++x=++yC 22. 下列的符号常量定义中,错误的定义是 ;A. const M=10;B. const int M=20;C. const char ch;D. const bool mark=true;C23. 循环语句“forint i=0; i<n; i++ cout<<ii<<’ ’;”中循环体执行的次数为 ;A. 1B. n-1C. nD. n+1B 24. 在下面循环语句中循环体执行的次数为 ;forint i=0; i<n; i++ifi>n/2 break;A. n/2B. n/2+1C. n/2-1D. n-1D 25. 在下面循环语句中内层循环体S语句的执行总次数为 ;forint i=0; i<n; i++forint j=i; j<n; j++ S;A. n2B. n+1/2C. nn-1/2D. nn+1/2C 26. 在下面循环语句中循环体执行的次数为 ;int i=0,s=0; whiles<20 {i++; s+=i;}A. 4B. 5C. 6D. 7A 27. 在下面循环语句中循环体执行的次数为 ;int i=0; do i++; whileii<10;A. 4B. 3C. 5D. 2A 28. 当处理特定问题时的循环次数已知时,通常采用来解决;A. for循环B. while循环C. do循环D. switch语句C 29. 循环体至少被执行一次的语句为 ;A. for循环B. while循环C. do循环D. 任一种循环B 30. switch语句能够改写为语句;A. forB. ifC. doD. whileD 31. do语句能够改写为语句;A. 复合B. ifC. switchD. whileC 32. 在下面的一维数组定义中,哪一个有语法错误;A. int a={1,2,3};B. int a10={0};C. int a;D. int a5;D 33. 在下面的字符数组定义中,哪一个有语法错误; ;A. char a20=”abcdefg”;B. char a=”x+y=55.”;C. char a15;D. char a10=’5’;C 34. 在下面的二维数组定义中,正确的是 ;A. int a5;B. int a5;C. int a3={{1,3,5},{2}};D. int a10;C 35. 假定一个二维数组的定义语句为“int a34={{3,4},{2,8,6}};”,则元素a12的值为 ;A. 2B. 4C. 6D. 8A 36. 假定一个二维数组的定义语句为“int a34={{3,4},{2,8,6}};”,则元素a21的值为 ;A. 0B. 4C. 8D. 6B 37. 若定义了函数 double function, 则函数function的返回值为 ;A. 实数型B.实数的地址C.指向函数的指针D.函数的地址B 38. 以下说法中正确的是 ;A. C++程序总是从第一个定义的函数开始执行B. C++程序总是从main函数开始执行C. C++函数必须有返回值,否则不能使用函数D. C++程序中有调用关系的所有函数必须放在同一个程序文件中C 39. 以下叙述中不正确的是 ;A. 在一个函数中,可以有多条return语句B. 函数的定义不能嵌套,但函数的调用可以嵌套C. 函数必须有返回值D. 不同的函数中可以使用相同名字的变量A 40. 函数重载是指 ;A. 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同B. 两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同C. 两个以上的函数名字不同,但形参的个数或类型相同D. 两个以上的函数取相同的函数名,并且函数的返回类型相同C 41. 以下关于函数模板叙述正确的是 ;A. 函数模板也是一个具体类型的函数B. 函数模板的类型参数与函数的参数是同一个概念C. 通过使用不同的类型参数,函数模板可以生成不同类型的函数D. 用函数模板定义的函数没有类型C 42. 下列的调用方式是引用调用;A. 形参和实参都是变量B.形参是指针,实参是地址值C. 形参是引用,实参是变量D.形参是变量,实参是地址值A 43. 为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择 ;A. 内联函数B.重载函数C.递归函数D.函数模板B 44. 函数原型语句正确的是 ;A. int Functionvoid a; Function int;C. int Functiona; intdouble a;B 45. C++中函数返回值的类型是由决定的;A. return语句中表达式的类型B.该函数定义时的类型C.调用函数时的调用语句D.系统根据结果A 46. 以下函数的返回结果是 ;int functionchar x {char p=x; whilep++; returnp-x-1;}A. 求字符串的长度B.将字符串x连接到字符串p后面C. 将字符串x复制到字符串p中D.将字符串x反向存放B 47. 函数调用funcexp1,exp2,exp3,exp4,exp5中所含实参的个数为个;C. 4D. 5B 48. 设有如下函数定义int fchar s {char p=s;whilep=’\0’ p++;returnp-s;}在主函数中用cout<<f“good”调用上述函数, 则输出结果为 ;A. 3B. 4C. 5D. 6C 49. 以下正确的函数原型语句是 ;A. double funint x,int yB. double funint x;int yC. double funint,int;D. double funint x,y;B 50. 以下正确的说法是 ;A. 用户调用标准库函数前,必须重新定义B. 用户可以重新定义标准库函数,若如此,该函数将失去原有含义C. 系统不允许用户重新定义标准库函数D. 用户调用标准库函数前,不必使用预编译命令将该函数所在文件包括到用户源文件中D 51. 函数调用不可以 ;A. 出现在一个表达式中B. 出现在执行语句中C. 作为一个函数的实参D. 作为一个函数的形参B 52. 以下正确的描述是 ;A. 函数的定义可以嵌套,函数的调用不可以嵌套B. 函数的定义不可以嵌套,函数的调用可以嵌套C. 函数的定义和函数的调用均可以嵌套D. 函数的定义和函数的调用均不可以嵌套A 53. 若用数组名作为函数调用的实参,传递给形参的是 ;A. 数组的首地址B. 数组中第一个元素的值C. 数组全部元素的值D. 数组元素的个数D 54. 以下错误的描述是 ;A. 被调用函数中可以不用return语句B. 被调用函数中可以用多个return语句C. 被调用函数中,如果有返回值,就一定要有return语句D. 被调用函数中,一个return语句可返回多个值给调用函数C 55. 以下正确的描述是 ;A. 不允许设置参数的默认值B. 设置参数的默认值只能在定义函数时设置C. 设置参数的默认值时,应该设置右边的参数D. 设置参数的默认值时,应该全部参数都设置D 56. 采用重载函数的目的是 ;A. 实现共享B. 减少空间C. 提高速度D. 使用方便,提高可读性C 57. 将两个字符串连接起来组成一个字符串时,选用函数;A. strlenB. strcapC. strcatD. strcmpB 58. 以下叙述中正确的是 ;A. 使用define可以为常量定义一个名字,该名字在程序中可以再赋另外的值B. 使用const定义的常量名有类型之分,其值在程序运行时是不可改变的C. 在程序中使用内联函数使程序的可读性变差D. 在定义函数时可以在形参表的任何位置给出缺省形参值C 59. 下面的标识符中, 是文件级作用域;A. 函数形参B.语句标号C.外部静态类标识符D.自动类标识符D 60. 以下叙述不正确的是 ;A. 宏替换不占用运行时间B. 宏名无类型C. 宏替换只是字符替D. 宏名必须用大写字母表示D 61. C++语言的编译系统对宏命令的处理是 ;A. 在程序运行时进行B. 在程序连接时进行C. 和C++程序的其它语句同时进行编译D. 在对源程序中其它成分正式编译之前进行B 62. 当include后面的文件名用双引号括起来时,寻找被包含文件的方式是 ;A. 直接按系统设定的标准方式搜索目录B. 先在源程序所在目录搜索,再按系统设定的标准方式搜索目录C. 仅仅搜索源程序所在目录D. 搜索当前逻辑盘上的所有目录A 63. 当include后面的文件名用尖括号括起来时,寻找被包含文件的方式是 ;A. 直接按系统设定的标准方式搜索目录B. 先在源程序所在目录搜索,再按系统设定的标准方式搜索目录C. 仅仅搜索源程序所在目录D. 搜索当前逻辑盘上的所有目录C 64. 在下面存储类中, 对象的可见性与生存期不一致;A. 外部类B. 自动类C. 内部静态类D. 寄存器类A 65. 在下面存储类中, 的对象不是局部变量;A. 外部静态类B. 自动类C. 函数形参D. 寄存器类C 66. 关于局部变量,下面说法正确的是 ;A. 定义该变量的程序文件中的函数都可以访问B. 定义该变量的函数中的定义处以下的任何语句都可以访问C. 定义该变量的复合语句中的定义处以下的任何语句都可以访问D. 定义该变量的函数中的定义处以上的任何语句都可以访问C 67. 文件包含命令中被包含的文件的扩展名 ;A. 必须是.hB. 不能是.hC. 可以是.h或.cppD. 必须是.cppB 68. 预处理命令在程序中都是以符号开头的;A. B. C. & D.B 69. 设array为一个数组,则表达式sizeofarray/sizeofarray0的结果为 ;A. array数组首地址B. array数组中元素个数C. array数组中每个元素所占的字节D. array数组占的总字节数C 70. 用new运算符创建一个含10个元素的一维整型数组的正确语句是 ;A. int p=new a10;B. int p=new float10;C. int p=new int10;D. int p=new int10={1,2,3,4,5}A 71. 下列给字符数组赋初值时,正确的是 ;A. char s1=”abcdef”;B. char s24=”abcd”;C. char s323={“abc”,”xyz”};D. char s44={‘a’,’x’,’s’,’t’};D 72. 设有定义“static int data56;”,设该数组在静态存储区中的起始地址为十进制的100,若每个int型数占4个字节,则数组元素data23的地址为 ;A. 115B 73. 假定变量m定义为“int m=7;”,则定义变量p的正确语句为 ;A. int p=&m;B. int p=&m;C. int &p=m;D. int p=m;D 74. 假定k是一个double类型的变量,则关于变量p的正确定义语句为 ;A. double p=&k;B. int p=&k;C. double &p=k;D. char p=”Thank you”;A 75. 变量s的定义为“char s=”Hello world”;”,要使变量p指向s所指向的同一个字符串,则应选取 ;A. char p=s;B. char p=&s;C. char p;p=s;D. char p; p=&s;C 76. 关于void 指针,下列说法正确的是 ;A. void 指针就是未指向任何数据的指针B. void 指针就是已定义而未初始化的指针C. 指向任何类型数据的指针可直接赋值给一个void 指针D. void 指针值可直接赋给一个非void 指针D 77. 假定一条定义语句为“int a10, x, pa=a;”,若要把数组a中下标为3的元素值赋给x,则不正确的语句为 ;A. x=pa3;B. x=a+3;C. x=a3;D. x=pa+3;D 78. 假定有定义“int b10; int pb;”,则不正确的赋值语句为 ;A. pb=b;B. pb=&b0;C. pb=new int;D. pb=b5;C79. 假定p是具有double类型的指针变量,则表达式++p使p的值以字节为单位增加 ;A. 1B. 4C. sizeofdoubleD. sizeofpC 80. 假定p指向的字符串为”string”,则cout<<p+3的输出结果为 ;A. stringB. ringC. ingD. i四、问答题每题10分1.为什么称C++语言是混合型面向对象的语言答:一般真正的向对象语言具有抽象、封装、继承和多态性等特征,完全由一组抽象的对象组成,因此没有全局函数;而C++是在标准C语言的基础上引入“面向对象”概念而扩充形成的,严格地讲,它不是完全由一组抽象的对象类组成;因为C++程序中还有像main这样的全局函数,因此称它为混合型面向对象语言;2. 下面是一个联合的定义:Class CU {union {int ivalue;float fvalue;}下面是类C的定义:class C : public A, private B{private:int c;public:void setCint x, int y {c=x; setBy;}void showC {showB ; cout << c << endl;}};讨论类C属于何种方式的继承及其派生方法对访问基类成员的影响;答:类C是多重继承,它从类A 公有派生,因此,类A的公有保护的成员在类C中仍是公有的保护的;类C从类B私有派生,类B的所有成员在类C中是私有的;6. C++ 的流库预定义了哪几个流与这几个流所联结的具体设备是什么答:它们是cin、cout、cerr和clog,与C++的流类库预定义的四个流所联结的具体设备为:cin 与标准输入设备相关联cout 与标准输出设备相关联cerr 与标准错误输出设备相关联非缓冲方式clog 与标准错误输出设备相关联缓冲方式7. 在使用C++时,是否应仍然保持C语言的习惯及思维方式为什么答:不行;做为C语言的超集,C++在技术上是和C完全兼容的, 但它在概念上是和C语言完全不同的,因此,使用者应该学会按C++自己的方式来使用它,掌握C++的思维方式、设计方法和习惯;8.C++中有哪些机制可以实现命名常量答:第一个方法是定义const数据类型,它不但说明了数据,而且声明它是常量,即它的值不能改变;另外一个办法就是利用枚举;9. 简述模板类的动态特征;答:从类系的动态性能角度来看,模板类具有更多的动态特征;一旦完成一个继承类系的设计,它能处理的数据和处理数据的方法就确定了,除非新继承一个类来完成新的功能;模板类在设计完成之后,可以处理的数据类型却可以不断增加,并且模板类的实例可在编译时刻初始化,从而具有更好的灵活性;10 .简述静态成员的特性,然后就作用域与全局变量进行比较答:作为类的静态成员,它的特征是不管类创建了多少个对象,其静态成员都只有一个副本,这个副本为类的所有对象共享;类的静态成员不同于全局变量,全局变量的作用于为整个程序,静态成员只能在类的对象中有效;11.用指针或引用调用虚函数与通过对象访问虚函数的区别是答:使用一个基类型的指针或引用调用一个虚函数时候,c++使用动态联编,而通过对象访问时候,则使用静态联编;12. 多重继承的构造顺序一般可分为4步,下面给出这4个步骤:答:1: 任何虚拟基类的构造函数按照它们被继承的顺序构造;2: 任何非虚拟基类的构造函数按照它们被继承的顺序构造;3: 任何成员对象的构造函数按照它们声明的顺序构造;4: 类自己的构造函数;13. 在C++中,应该使用什么语句来动态分配和释放内存答:. new,delete14. 下面的程序的正确的输出结果是什么include <>include <>class base{。
2020年智慧树知道网课《程序设计基础(C语言)入门篇》课后章节测试满分答案
第一章测试1【单选题】(10分)下列哪一个不是C语言的的主要特点()。
A.数据类型丰富B.运算符丰富C.语言简洁、紧凑、方便、灵活D.能完成任何功能2【单选题】(10分)一个C语言程序总是从()函数开始。
A.mainB.scanfC.maxD.printf3【单选题】(10分)计算机高级语言程序的运行方法有编译执行和解释执行两种,下列叙述中正确的是()。
A.C语言程序仅可以编译执行B.C语言程序既可以编译执行又可以解释执行C.C语言程序仅可以解释执行4【单选题】(10分)下列叙述中正确的是()。
A.C语言程序中每一行只能写一条语句B.每个C语句必须以分号结束C.C语言程序的只有一个函数D.C语句必须在一行内写完5【判断题】(10分)程序是一组计算机能识别和执行的指令集合。
A.错B.对6【判断题】(10分)计算机语言是一种只有计算机才能识别的语言。
A.对B.错7【判断题】(10分)一个C语言程序是由一个或多个函数组成的,其中必须包含一个函数,函数名是main。
A.错B.对8【单选题】(10分)C语句是以()表示结束A.句号B.回车C.逗号D.分号9【判断题】(10分)C语言区分大小写。
A.对B.错10【判断题】(10分)C语言只有一个标准。
A.对B.错第二章测试1【单选题】(10分)算法的特点不包括()。
A.确定性B.有穷性C.可行性D.多个输入2【单选题】(10分)算法的有穷性是指()。
A.算法的程序所处理的数据量是有限的B.算法只能被有限的用户使用C.算法的程序运行时间是有限的D.算法包含的操作步骤是有限的3【单选题】(10分)在计算机中,算法是指()。
A.加工方法B.排序方法C.解答方案的准确而完整的描述D.查询方法4【判断题】(10分)算法的特点包括穷性、确定性、可行性、有一个或多个输入和有一个或多个输出。
A.对B.错5【判断题】(10分)在程序设计中,符合结构化原则的三种基本控制结构是顺序结构、选择结构、循环结构。
c语言理论考试要点 (1)
C语言理论考试要点学习C语言后面的知识,不要忘了回头弄清遗留下的问题和加深理解前面的知识,这是我们学生最不易做到的,然而却又是最重要的。
比如:在C语言中最典型的是关于结构化程序设计构思,不管是那种教材,一开始就强调这种方法,这时也许你不能充分体会,但是学到函数时,再回头来仔细体会,温故知新,理解它就没有那么难了。
学习C语言就是要经过几个反复,才能前后贯穿,积累应该掌握的C知识。
C语言学得好的学生都是知难而上,不轻易放弃的强者。
等级考试分优秀、合格、不合格三档。
江苏省计算机二级考试成绩分为:大学计算机信息基础20分C语言理论部分40分C语言上机考试40分证书分:合格、优秀两种,没有期限通过准考证在网上查询成绩,大约考完后50天可查。
期末复习以理论为主,上机为次;暑假开始以上机为主,理论为次。
二级C语言等级考试没有通过的98%以上是因为上机未达线。
目前我校C语言等级考试通过率为40%左右。
仔细研究大纲和样题,大纲提到的知识点和库函数要熟练掌握。
常用算法默写后对照,再默写再对照。
不要不肯动笔,多做归纳总结,包括知识点的归纳和算法的归纳。
大学计算机信息基础占20分,要作适当复习。
C语言理论部分占40分,上机占40分。
C语言理论题大多数是数组以后的内容,但要熟练运用前面表达式、数据类型、三种基本结构等知识。
选择题需要记忆的知识包括计算机基础知识、基本概念。
这些内容看似不起眼,但如果不适当加以记忆,考试时因此失分十分可惜。
我们可以在理解的基础上归纳整理,适当记忆。
近年大学计算机信息基础考得比较实用、如:优盘、数量级、存取速度、通讯技术、网络知识。
每年必考的知识点如下:➢循环嵌套➢字符数组的输入输出、插入或删除、或排序、或重新组合➢函数参数的传递,传值和传址的不同、函数的定义和返回值➢变量的作用域(选择题,全局变量和局部变量的区别,如:05春25题)➢变量的存储类型(填空题,如:04春填空第9题,每次调用函数,静态变量y保留上次调用时的值;C是全局变量,&b对应指针sum传址,b和*sum值一致;a单向传值给x,x的值不影响a)➢指针传址、指针数组、指针处理二维数组、指针处理字符串数组和字符串、指针处理结构体和链表(填空题)、指针与结构体结合(填空题)笔试只有选择题和填空题两种题型。
C语言基础知识测试题全面完整
基础知识测试题一.单项选择题1.以下不正确的C语言标识符是(D )A. ABCB. abcC.2.以下正确的C语言标识符是( C)A. %xB. a+bC. a123D. test!3.一个C语言程序的执行是从(A )。
A. main( )函数开始,直到main( )函数结束B. 第一个函数开始,直到最后一个函数结束C. 第一个语句开始,直到最后一个语句结束D. main( )函数开始,直到最后一函数结束4.在C语言程序中,main(C )的位置()。
A. 必须作为第一个函数B.必须作为最后一个函数C.任意D.必须放在它所调用的函数之后5.一个C语言程序是由(B )。
A. 一个主程序和若干个子程序组成B.一个或多个函数组成C.若干过程组成D.若干子程序组成6.C语言源程序的基本单位是(B)。
A. 过程B. 函数C. 子程序D. 标识符7.编辑程序的功能是(A)。
A. 建立并修改程序C.将C源程序编译成目标程序D.调试程序E.命令计算机执行指定的操作8.C编译程序是(D)。
A. C语言程序的机器语言版本B. 一组机器语言指.D. 将C源程序编译成目标程序的程序F. 由制造厂家提供的一套应用软件B9.不属于字符型常量的是( D )A.'A'B."B"C.'\n'D.'\x72'10 .设char ch; 以下正确的赋值语句是:(B )A.ch='123';B.ch='\xff';C.ch='\08';D.ch="\";11 .以下使i的运算结果为4的表达式是(D )A.int i=0,j=0;(i=3,(j++)+i);B.int i=1,j=0;j=i=((i=3)*2);C.int i=0,j=1;(j==1)?(i=1):(i=3);D.int i=1,j=1;i+=j+=2;A12 .若t为double类型,表达式t=1,t+5,t++的值是(D)A.1B.6.0 CC13.设整型变量m,n,a,b,c,d均为1,执行“(m=a>b)&&(n=a>b)”后m,n的值是( B)A.0,0B.0,1C.1,0D.1,1B14 .执行语句“x=(a=3,b=a--)”后,x,a,b的值依次为(CA.3,3,2B.3,2,2C.3,2,3D.2,3,2B15 .若a=1,b=2,c=3,d=4,则条件表达式a<b?a:a<d?c:d的值为(A )A.1B.2 C16 .设int n=7;则++n+1= =9的结果是(C )17 .设a=2,b=2;则++a+b的结果是(d),a的结果是(b),b的结果是(a)A.2B.3 C18 .设a=2,则执行b=a==!a;语句后,b的结果是( A)A.0B.1 C19 .设有以下语句,则c的二进制值是()char a=3,b=6,c;c=a^b<<2;A.00011011B.00010100 C20 .在C语言类型说明中,int、char、short等类型的长度是( A )A.固定的B.由用户自己定义的C.任意的D.与机器字的长度有关的二.填空题1.C语言中的标识符只能由三种字符组成,它们是、、。
函数入门基础测试题及答案
函数入门基础测试题及答案一、选择题1. 函数(function)是数学中的一种关系,其中每个元素都有一个相对应的元素。
请问以下哪项不是函数的特性?A. 唯一性B. 有序性C. 多元性D. 唯一确定性答案:B2. 如果一个函数的定义域是实数集,那么这个函数被称为:A. 奇函数B. 偶函数C. 定义域函数D. 无限函数答案:C3. 函数f(x) = x^2 + 3x + 2在x=-1处的值是:A. 0B. 1C. 4D. 6答案:C二、填空题4. 函数y = f(x)中,自变量是_________,因变量是_________。
答案:x;y5. 如果一个函数满足f(x) = f(-x),那么这个函数被称为_________函数。
答案:偶函数三、解答题6. 已知函数f(x) = 2x - 3,请找出f(5)的值。
答案:将x=5代入函数f(x) = 2x - 3,得到f(5) = 2*5 - 3 =10 - 3 = 7。
7. 判断函数f(x) = x^2是否为奇函数或偶函数,并说明理由。
答案:函数f(x) = x^2是偶函数。
理由是对于所有x属于其定义域,都有f(x) = f(-x),即x^2 = (-x)^2。
四、计算题8. 计算函数f(x) = x^3 - 6x^2 + 11x - 6在x=2, x=3, x=4时的值。
答案:- 当x=2时,f(2) = 2^3 - 6*2^2 + 11*2 - 6 = 8 - 24 + 22 -6 = 0。
- 当x=3时,f(3) = 3^3 - 6*3^2 + 11*3 - 6 = 27 - 54 + 33 - 6 = 0。
- 当x=4时,f(4) = 4^3 - 6*4^2 + 11*4 - 6 = 64 - 96 + 44 - 6 = 6。
五、证明题9. 证明函数f(x) = x^2 + 2x + 1是一个奇函数。
答案:要证明f(x)是奇函数,我们需要证明对于所有x属于其定义域,都有f(-x) = -f(x)。
全国计算机二级C语言考试答题策略及技巧
全国计算机二级C语言考试答题策略及技巧(一)笔试可考虑以下做题顺序(仅供参考)1、先做公共基础题,选择题(1)-(10),填空题(1)-(5)空。
2、接下来完成C语言的基础题,选择题(11)-(20),1分题,考核一些基本概念,如标识符是否合法、整型/实型常量、运算符与表达式、简单输入输出格式控制、if、switch语句、for、while、do while等的简单应用。
3、再接着完成选择题(21)-(40),这20个选择题尤其是后10个选择题,都有一定难度,都会给定一段代码,根据代码做选择,因此,需要读懂C的简单代码然后做了选择。
4、最后完成填空题(6)-(15)空。
也需读得懂C程序,还需判断出题意图,才能填好空。
难度较高。
(二)机试题目顺序为:程序填空题,程序修改题,程序设计题。
按顺序完成即可。
1、程序填空题在源代码中会给出需填空的地方,如s->data=___1___; 通常还是比较简单。
解题方法:先读懂源程序,了解程序的功能,然后试着边填空边调试,分析输出结果,以找到正确的解。
程序填空题的特点和注意事项:(1)程序填空的试题中通常包含三个空需要填写。
(2)试题中用"******found******/"来提示且在下一行或下二行注明填空的位置及编号,如___1___。
(3)程序填空考核对程序的整体把握,出题点可能是:for循环语句的初始化或条件判断、函数返回值、if语句的条件判断、链表中指针如何移动、文件操作相关函数的参数等。
(4)特别要注意的是:只能在填空的位置填写语句或表达式,不要增行或删行,不要改动程序行的顺序,更不要改动程序的结构。
程序填空时,建议按以下步骤进行:(1)首先仔细审题,了解试题的要求,看清楚试题给出的输入和输出例示,以便检验程序运行的结果是否正确。
(2)审视"/******found******/"所在函数,根据题义理解程序所采用的基本算法,做到心里有数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C基础补习考试题
一、简答题(每题4分,部分题3分,共70分)
1、C中的内存有四种,代码段,数据段,栈,堆;请问:全局变量、static 修饰的局部变量、字符串常量、普通的局部变量、malloc开辟内存、函数分别是存储在什么内存当中的,并且分别说明什么时候开辟内存,什么时候销毁内存。
(4分)
2、运行char a[] = ”abc”后,内存会开辟几块内存,这此内存共占多少个字节?(4分)
3、运行char *p = ”abc”后,内存会开辟几块内存,这此内存共占多少个字节? (4分)
4、简述const的作用?至少写两种? (4分)
5、int *(*p)[3];那么指针p的偏移量是多少字节?(4分)
6、头文件中的ifndef/define/endif 干什么用?(4分)
7、#include <filename.h> 和#include “filename.h” 有什么区别?(4分)
8、以下代码的的打印结果相同吗?(4分)
char a1[]=”abc”,char a2[]=”abc”,printf(“%p\n”,a1);printf(“%p\n”,a2);
9、以下代码的的打印结果相同吗?(4分)
c har *s1 =”abc”, char *s2 =”abc”,printf(“%p\n”,s1); printf(“%p\n”,s2);
10、char x = 1; char y = x<<7; 请问y是正数还是负数? (4分)
11、char x = 1; char y =~x;请问y是正数还是负数?(4分)
12、int x=0; int y=0; int z = (x++, y=x++, y=++x) ;请问z的值是多少?(3分)
13、int x=0; int y=0; int r = x&&y++; 请问y的值是多少?(3分)
14、static 修饰全局变量与函数时的作用是什么?(4分)
15、char *s1 = “abc”; char *s2=”xyz”; *s1 = *s2;以上代码有错吗?如果有错,请说明理由。
(4分)
16、int a[6]={1,2,3,4,5,6}; printf(“%d\n”,*((int *)(&a+1)-1)); 打印结果是什么?(4分)
17、int a[2][3]={1,2,3,4,5,6},printf(“%d”, * ( (int *) (&a+1) - 3 ) );打印结果是什么?(4分)
18、以下打印结果是不是全部相同?(4分)
int a[2][3];
printf(“%p\n”,&a[0][0]);//int :4
printf(“%p\n”, a); //3 int :12
printf(“%p\n”a[0]); //int :4
printf(“%p\n”&a); //6 int :24
二、指出以下程序的错误(每题5分,共30分)
void getMemory(char *p)
{
p = (char *)malloc(100);
}
void test(void)
{
char *str = NULL;
getMemory(str);
strcpy(str, "hello world");
printf(str);
} char *getMemory(void)
{
char p[] = "hello world";
return p;
}
void test(void)
{
char *str = NULL;
str = getMemory();
printf(str);
}
void getMemory(char **p, int num) {
*p = (char *)malloc(num);
}
void test(void)
{
char *str = NULL;
getMemory(&str, 100);
strcpy(str, "hello");
printf(str);
} void test(void)
{
char *str = (char *) malloc(100);
strcpy(str, “hello”);
free(str);
if(str != NULL)
{
strcpy(str, “world”);
printf(str);
}
}
void fun(char* str1, char* str2) {
*str1 = *str2;
}
void test()
{
char *str1="ABC\n";
char *str2="BCD\n";
fun(str1, str2);
printf(str1);
} void f1(char *p)
{
p = (char *)malloc(100);
}
int test()
{
char *str = NULL;
f1(&str);
strcpy(str, "hello world");
printf(str);
}。