北航程序设计语言原理题目与参考答案
北航网络教育C++程序设计习题1及答案
![北航网络教育C++程序设计习题1及答案](https://img.taocdn.com/s3/m/0e784ad389eb172ded63b762.png)
《C++程序设计》习题1一、单项选择题1. 下面正确的字符常量是()。
A、"a"B、'\\''C、'W'D、D、''2. 声明或定义一个内联函数时,必须在函数开始使用保留字()。
A、StaticB、ConstC、inlineD、extern3. 下列各种函数中,()不是类的成员函数。
A、构造函数B、析构函数C、友元函数D、拷贝构造函数4. 若用数组名作为函数调用的实参,传递给形参的是()。
A、数组的首地址B、数组中第一个元素的值C、数组全部元素的值D、数组元素的个数5. 函数重载是指()。
A、两个或两个以上的函数取相同的函数名,但形参的个数或类型不同B、两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同C、两个以上的函数名字不同,但形参的个数或类型相同D、两个以上的函数取相同的函数名,并且函数的返回类型相同6. 在下面构造函数的声明中,存在着语法错误的是()。
A、BC(int a,int);B、BC(int,int);C、BC(int,int=5);D、D、BC(int x;int y);7. 在一个类中可以对一个操作符进行()重载。
A、1种B、2种以下C、3种以下D、D、多种8. strcmp(str1,str2)<0 表示()。
A、str1的长度小于str2B、str1的长度大于str2C、str1小于str2D、str1的内容小于str2的内容9. 预处理命令在程序中都是以()符号开头的。
A、*B、#C、&D、@10. 由C++源程序文件编译而成的目标文件的默认扩展名是()。
A、cppB、objC、exeD、lik11. 每个类()构造函数。
A、只能有一个B、只可有公有的C、可以有多个D、只可有缺省的12. 在下面构造函数的声明中,存在着语法错误的是()。
A、BC(int a,int);B、BC(int,int);。
北航《C语言程序设计》答案
![北航《C语言程序设计》答案](https://img.taocdn.com/s3/m/1bb46741e45c3b3567ec8be2.png)
北航《C语言程序设计》在线作业一单选题判断题一、单选题(共15 道试题,共60 分。
)1. 以下叙述中正确的是A. 预处理命令行必须位于源文件的开头B. 在源文件的一行上可以有多条预处理命令C. 宏名必须用大写字母表示D. 宏替换不占用程序的运行时间正确答案:D2. 以下各选项企图说明一种新的类型名,其中正确的是A. typedef v1 int;B. typedef v2=int;C. typedef int v3;D. typedef v4: int;正确答案:C3. C语言对嵌套if语句的规定是:else总是与( )配对。
A. 其之前最近的ifB. 第一个ifC. 其之前最近且不带else的ifD. 缩进位置相同的if正确答案:C4. 已知:#define N 3; 执行语句i=N*3; 后,i=_______.A. 3B. 6C. 9D. 以上均不正确正确答案:C5. 以下选项中可作为C语言合法常量的是A. -8B. -080C. -8e1.0D. -80.0e正确答案:A6. 以下不正确的C语言标识符是_____。
A. ABCB. abcC. a_bcD. ab.c正确答案:D7. 数组int**a[3][4]占据多大空间B. 12C. 48D. 128正确答案:C8. 已知:int x,a,b;下列选项中错误的if语句是______。
()A. if(a=b) x++;B. if(a=<b) x++;C. if(a-b) x++;D. if(x) x++;正确答案:B9. 下列可以正确表示字符型常数的是______。
A. "a"B. …t…C. "n"D. 297正确答案:B10. 表达式:10!=9的值是( )A. trueB. 非零值C. 0D. 1正确答案:D11. 在C语言中,形参的缺省存储类型是( )A. autoB. registerC. staticD. extern正确答案:A12. 设C语言中,一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为_____。
北航1212考试题目批次《C++程序设计》习题题目练习-练习一-(附答案)
![北航1212考试题目批次《C++程序设计》习题题目练习-练习一-(附答案)](https://img.taocdn.com/s3/m/78a7153d011ca300a6c390ef.png)
北航1212考试批次《C++程序设计》复习题一一、客观题单项选择题(本大题共20小题,每小题1.5分,共30分)1、在面向对象的程序设计中,一切都是围绕着___展开的(B)。
A.语言 B.类 C.数据类型 D.结构2、以下关于类和对象的叙述中,正确的是( D)。
A.类和对象间没有联系 B.一个类的成员函数可以任意被调用C.对象是抽象的,而类是具体实现D.一般只有通过具体的对象才能访问类的成员函数3、关于C++语言和C语言的关系的下列描述中,错误的是( D)。
A.C语言是C++语言的一个子集 B.C++语言对C语言做了些改进C.C++语言与C语言兼容 D.C语言和C++语言都是面向对象的语言4、下列函数中,可以为虚函数的是( D )。
A.自定义的构造函数 B.拷贝构造函数 C.静态成员函数D.析构函数5、在一个被调用函数中,关于return语句使用的描述,错误的是( C )。
A.被调用函数中可以不用return语句; B.被调用函数中可以使用多个return语句;C.被调用函数中,一个return语句可以返回多个值给调用函数;D.被调用函数中,如果有返回值,就一定要有return语句;6、若用数组名作为函数调用时的实参,则实际上传递给形参的是(A)A、数组首地址B、数组的第一个元素值C、数组中全部元素的值D、数组元素的个数7、在以下关于C++语言的注释的叙述中,不正确的是(C )A、C++程序中,注释可用“/*”、“*/”形式表示,也可用“//”形式表示B、C++编译器在编译一个程序时,将跳过注释,不对其进行处理C、C++编译器在编译一个程序时,可发现注释中的单词拼写错误D、程序中注释的多少不会影响所生成的可执行文件的长度8、下列关于C++函数的叙述中,正确的是(C)A、每个函数至少要具有一个参数B、每个函数都必须返回一个值C、函数在被调用之前必须先声明D、函数不能自己调用自己9、假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为:(B)。
北航《C语言程序设计》在线作业二满分答案
![北航《C语言程序设计》在线作业二满分答案](https://img.taocdn.com/s3/m/6808e83d2af90242a895e512.png)
北航《C语言程序设计》在线作业二一、单选题(共 10 道试题,共 40 分。
)1. 若用数组名作为函数调用时的参数,则实际上传递给形参的是A. 数组元素的个数B. 数组的第一个元素值C. 数组中全部元素的值D. 数组首地址-----------------选择:D2. 下列关于#include命令的叙述中,错误的是A. #include命令中,文件名可以用双引号或尖括号括起来B. 一个被包含文件中又可以包含另一个被包含文件C. 一个#include命令中可以指定多个被包含文件D. 一个#include命令中只能指定一个被包含文件-----------------选择:C3. 在C程序中,若对函数类型未加说明,则函数的隐含类型为( )A. intB. doubleC. voidD. char-----------------选择:A4. 表达式( )的值是0。
A. 3%5B. 3/5.0C. 3/5D. 3<5-----------------选择:C5. 已知:int a=5; 执行以下的程序段后输出结果为_______.Do { printf(“%dn”,a--); } while (!a);A. 5B. 4C. 陷入死循环D. 5 4 3 2 1-----------------选择:A6. 有以下语句:int b;char c[10];,则正确的输入语句是_______A. scanf("%d%s",&b,&c);B. scanf("%d%s",&b,c);C. scanf("%d%s",b,c);D. scanf("%d%s",b,&c);-----------------选择:B7. 若有定义:int x; 要将x强制转换为双精度型,应该写成A. x(double)B. x(double)C. (double)xD. double(x)-----------------选择:C8. 函数形参与实参之间的传递是“值传递”,以下叙述正确的是( )A. 实参和与其对应的形参共用一个存储单元B. 实参和与其对应的形参各占用独立的存储单元C. 当实参和与其对应的形参同名时才共用一个存储单元D. 形参是形式的,不占用存储单元-----------------选择:B9. 设C语言中,一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为_____。
北航数据结构与程序设计真题 北航991真题及答案
![北航数据结构与程序设计真题 北航991真题及答案](https://img.taocdn.com/s3/m/53267e3db7360b4c2e3f64f0.png)
20XX年“数据结构与C程序设计”(代码991)试题一、单项选择题(本题共20分,每小题各2分)1.对于长度为n的线性表,建立其对应的单链表的时间复杂度为( )。
A.O(1);B.O(log2n);.O(n);D.O(n2)。
2.一般情况下,在一个双向链表中插入一个新的链结点,( )。
A.需要修改4个指针域内的指针;B.需要修改3个指针域内的指针;C.需要修改2个指针域内的指针;D.只需要修改1个指针域内的指针。
3.假设用单个字母表示中缀表达式中的一个运算数(或称运算对象),并利用堆栈产生中缀表达式对应的后缀表达式。
对于中缀表达式A+B*(C/D-E),当从左至右扫描到运算数E时,堆栈中的运算符依次是( )。
(注:不包含表达式的分界符)A.+*/-;B.+*(/-;C.+*-;.+*(-。
4.若某二叉排序树的前序遍历序列为50,20,40,30,80,60,70,则后序遍历序列为( )。
A.30,40,20,50,70,60,80;B.30,40,20,70,60,80,50;C.70,60,80,50,30,40,20;D.70,60,80,30,40,20,50。
5.分别以6, 3, 8, 12, 5, 7对应叶结点的权值构造的哈夫曼(Huffman) 树的深度为( )。
A.6;B.5;C.4;D.3。
6.下列关于图的叙述中,错误的是( )。
A.根据图的定义,图中至少有一个顶点;B.根据图的定义,图中至少有一个顶点和一条边(弧);C.具有n个顶点的无向图最多有n(n-1)/2条边;D.具有n个顶点的有向图最多有n(n-1)条边(弧)。
7.若在有向图G的拓扑序列中,顶点vi在顶点vj之前,则下列4种情形中不可能出现的是( )。
A.G中有弧<vi,vj>;B.G中没有弧<vi,vj>;C.G中有一条从顶点vi到顶点vj的路径;D.G中有一条从顶点vj到顶点vi的路径。
北航2016+c++程序设计+复习题2附答案
![北航2016+c++程序设计+复习题2附答案](https://img.taocdn.com/s3/m/aabc7ff60975f46527d3e146.png)
时,类 A 的析构函数不会被调用
C.实现全局函数时,new 和 delete 通常成对地出现在由一对匹配
的花括号限定的语句块中
D.执行语句 A *P=new A[100] 时,类 A 的构造函数只会被调用
一次
9、C++语言是从早期的 C 语言逐渐发展演变来的,与 C 语言相比,它
在求解问题方法上进行最大改进的是______。(
)
A.面向过程
B.面向对象
C.安全性
D.复用性
10、以下不属于类存取权限是______。(
)
A.public
B.static
C.protected
D.private
11、执行下面语句后,a 和 b 的值分别为______。( )
int a = 5,b = 3,t;
int &ra = a;
int &rb = b;
四、编程题 34、编程:输入三个数,按从小到大的顺序输出。 考核知识点:if 选择结构,最重要的是排序的思想。 35、编程:输入一个三位整数,将它反向输出。 考核知识点:利用算术运算符取一个整数各位上的数值。
};
void main() { B x(5),y(6,7); }
33、下列程序的运行结果是________x=16______________。 #include <iostream.h> void main() { int i, j, x = 0; for( i=0; i<=3; i++ ) { x++; for( j=0; j<=3; j++ ) { if( j % 2 ) continue; x++; } x++; } cout << "x=" << x << endl; }
北京航空航天大学《C语言程序设计》试卷
![北京航空航天大学《C语言程序设计》试卷](https://img.taocdn.com/s3/m/e0f27deb846a561252d380eb6294dd88d0d23d89.png)
北京航空航天大学《C语言程序设计》课程考试试卷注意事项: 1、本试卷满分100分;考试时间:90分钟;考试形式:开卷2、请将答案一律写在答题纸上,试卷上作答无效3、考试结束后,考生将试卷及答题纸一并交回4、请将条形码贴在答题纸的指定位置学习中心______________姓名____________学号____________一、单项选择题(本大题共10小题,每小题2分,共20分)1、设有定义语句“char s[]=”123”;”,则表达式“s[3]”的值是______。
()A.' 1' B.'3'C.'\0' D.存在语法错误2、凡是函数中未指定存储类别的局部变量,其隐含的存储类别为______。
()A.自动(auto) B.静态(static)C.外部(extern) D.寄存器(register)3、已知:char w; int x; float y; double z;,则表达式w*x+z-y结果的类型是______。
()A.float B.charC.int D.double4、当声明一个结构变量时,系统分配给它的内存是______。
()A.各成员所需内存量的总和B.结构中第一个成员所需内存量C.成员中占内存量最大者所需的容量D.结构中最后一个成员所需内存量5、C语言中的简单数据类型包括______。
()A.整型、实型、逻辑型B.整型、实型、字符型C.整型、字符型、逻辑型D.整型、实型、逻辑型、字符型6、合法的数组说明语句是______。
()A.int a[]="string";B.int a[]={0,1,2,3,4,5};C.char a="string";D.char a[5]={'0','1','2','3','4','5,};7、定义int i=1;,执行语句while(i++<5);后,i的值为______。
北航《C语言程序设计》答案
![北航《C语言程序设计》答案](https://img.taocdn.com/s3/m/c14f259370fe910ef12d2af90242a8956becaa68.png)
北航《C语言程序设计》答案北航《c语言程序设计》在线作业一单项选择和判断问题一、单选题(共15道试题,共60分。
)1.以下叙述中正确的是a、预处理命令行必须位于源文件的开头。
B.源文件的一行上可以有多个预处理命令。
C.宏名称必须用大写字母表示d.宏替换不占用程序的运行时间正确答案:d2.以下选项试图描述一个新的类型名称,其中正确的名称是a.typedefv1int;b、typedefv2=int;c、类型定义tv3;d、 typedefv4:int;正确答案:C3.c语言对嵌套if语句的规定是:else总是与()配对。
a.其之前最近的ifb.第一个ifc、其上一个最近的IFD没有其他的,如果具有相同的缩进位置,正确答案是:c4.已知:#definen3;执行语句i=n*3;后,i=_______.a.3b.6c.9d、以上这些都不正确。
正确答案:C5.以下选项中可作为c语言合法常量的是a.-8b.-080c.-8e1.0d.-80.0e正确答案:a6.以下不正确的c语言标识符是_____。
a.abcb.abcc.a_bcd.ab.c正确答案:D7.数组int**a[3][4]占据多大空间a、 64b。
12c。
48d。
一百二十八正确答案:c8.已知:intx,a,B;以下选项中错误的if语句是_;。
()a.if(a=b)x++;b.if (a)=正确答案:b9.以下可以正确表示字符类型常量为___。
a、 \b。
?Tc、 \d.297正确答案:b10.表达式:10=9的值为()a.trueb非零值c.0d一正确答案:d11.在C语言中,形式参数的默认存储类型是()a.autob registerc。
静力学。
外人正确答案:a12.假设在C语言中,一个int数据在内存中占用2个字节,那么无符号int数据的值范围是_u。
a、 0~255b。
0~32767c。
0~65535d.0~2147483647正确答案:c13.有以下声明:intb;charc[10];,正确的输入语句是a.Scanf(\b.Scanf(\c.Scanf(\d.Scanf)(\正确答案:b)14.为了避免嵌套的条件分支语句的二义性,c语言规定,c程序中的else总是与()组成配对关系。
北航研究生课程程序设计语言原理16-17期末试题
![北航研究生课程程序设计语言原理16-17期末试题](https://img.taocdn.com/s3/m/9d5f572643323968011c92c4.png)
1、用EBNF描述以下Python3的语法结构
1)控制语句:包括条件语句(if语句),循环语句(for语句和while语
句),try语句。
假定有语法类<test>表示逻辑表达式,<stuite>表示语
句块,<exprlist>表示算术表达式列表,<test>表示逻辑表达式列表,<except_clause>表示except语句块
2)类声明语句结构:假定<arglist>表示参数列表
2、用Java语言编写读者-写者问题
3、在IMP语言中增加条件表达式和数组变量类型
Expression ::= if Expression then Expression + Register else Expression –Register | let Declaration in Expression | Register
V_name ::= Identifier | V_name[Expression]
Type_denoter ::= int | bool | arry Numberal of Type_denoter
Register ::= x | y
Register表示寄存器,有两个寄存器x,y。
对IMP语言指称语义进行修改和扩充,需要时可自行添加辅助函数。
北航《C++程序设计》复习题一答案完整版
![北航《C++程序设计》复习题一答案完整版](https://img.taocdn.com/s3/m/eb36c8f2c8d376eeaeaa3117.png)
北航《C++程序设计》复习题一一、单选题(共10题,每题2分,共20分)1、在C++语言中,数据封装要解决的问题是______。
(D)A.数据的规范化B.便于数据转换C.避免数据丢失D.防止不同模块之间数据的非法访问2、如果类A被说明成类B的友元,则______。
(D)A.类A的成员即类B的成员B.类B的成员即类A的成员C.类A的成员函数不得访问类B的成员D.类B不一定是类A的友元3、在下列运算符中,______优先级最低。
(D)A.!B.&&C.!=D.?:4、当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为______。
(D)A.ios::inB.ios::outC.ios::in|ios::outD.以上都不对5、以下各选项组中,均是C++语言关键字的一组是______。
(A )A.public operator thisB.shod string staticC.it while >=D.private cout print6、设i=1,j=2,则表达式i+++j的值为______。
(C )A.1B.2C.3D.47、结构化程序设计所规定的三种基本控制结构是(C )A、输入、处理、输出B、树形、网形、环形C、顺序、选择、循环D、主程序、子程序、函数8、在以下关于C++语言的注释的叙述中,不正确的是( C )A、C++程序中,注释可用“/*”、“*/”形式表示,也可用“//”形式表示B、C++编译器在编译一个程序时,将跳过注释,不对其进行处理C、C++编译器在编译一个程序时,可发现注释中的单词拼写错误D、程序中注释的多少不会影响所生成的可执行文件的长度9、C++语言的跳转语句中,对于break和continue说法正确的是(B)A、break语句只应用于循环体中B、continue语句只应用于循环体中C、break是无条件跳转语句,continue不是D、break和continue的跳转范围不够明确,容易产生问题10、下列关于C++函数的叙述中,正确的是(C )A、每个函数至少要具有一个参数B、每个函数都必须返回一个值C、函数在被调用之前必须先声明D、函数不能自己调用自己二、多选题(共10题,每题1分,共10分)1、假定有“struct BOOK{char title[40]; float price;}; BOOK *book;”,则正确的语句为______。
北航1112考试批次《C++程序设计》复习题一(S)
![北航1112考试批次《C++程序设计》复习题一(S)](https://img.taocdn.com/s3/m/9c6224757fd5360cba1adbcd.png)
一、单项选择题1、设x和y均为布尔型变量,则x&&y为真的条件是______。
()A.其中一个为假 B.它们均为假 C.其中一个为真 D.它们均为真2、对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是______。
()A.公有类型 B.私有类型 C.保护类型 D.友元类型3、下面关于break语句的描述中,不正确的是______。
()A.break可以用于循环体内 B.break语句可以在for循环语句中出现多次C.break语句可以在switch语句中出现多次 D.break语句可用于if条件判断语句内4、判断字符串s1和s2是否相等的表达式为______。
()A.s1=s2 B.s1==s2 C.strcmp(s1,s2)==0 D.strcpy(s1,s2)==05、下面关于数组的初始化正确的是______。
()A.char str[]={'a','b','c'} B.char str[2]={'a','b','c'}C.char str[2][3]={{'a','b'},{'e','d'},{'e','f'}} D.char str[3][2]={{‘a’,’b’,’c’},{‘d’,’e’,’f’}} 6、从键盘上输入数据的时候,只有在输入完数据并按下______后,系统才把该行数据存入缓冲区。
()A.空格 B.回车 C.Tab D.空格或回车7、read函数的功能是从输入流中读取______。
()A.一个字符 B.当前字符 C.一行字符 D.指定若干个字符8、对类的构造函数和析构函数描述正确的是______。
()A.构造函数可以重载,析构函数不能重载 B.构造函数不能重载,析构函数可以重载C.构造函数可以重载,析构函数也可以重载 D.构造函数不能重载,析构函数也不能重载9、从键盘的输入中读入一个值,并赋值给x的语句是______。
2019北航 程序与设计 第一次上机题解
![2019北航 程序与设计 第一次上机题解](https://img.taocdn.com/s3/m/988d13323186bceb18e8bb28.png)
092\n"
"\\\'
单引号字符
039\n"
"\\\"
双引号字符
034\n"
"\\?
问号字符
063\n"
"\\0
空字符(NUL)
000\n"
"\\ddd 1到3位八进制数所代表的任意字符\n"
"\\xhh 十六进制所代表的任意字符\n"
"注意:\n1. 斜杠:\"/\"与反斜杠:\"\\\" ,此处不可互换\n"
AC代码
#include <stdio.h>
int main() {
int a, b; scanf("%d %d", &a, &b); printf("%d\n", a * b); return 0; }
D. 诶除闭
解题思路
这道题考察的是简单的输入输出,没有特别的要说的。
AC代码
#include <stdio.h> int main() {
C语言中整数除法默认是丢弃小数部分,例如5/2=2,(-7)/2=-3,所以对于正整数的除法默认就是 向下取整。
AC代码
#include <stdio.h>
int main() {
int sum=0,cnt=0,m; while(1) {
scanf("%d",&m); if(m==-1) break; cnt++; sum+=m; } printf("%d",sum/cnt);
北航14秋《VB语言程序设计》在线作业二答案
![北航14秋《VB语言程序设计》在线作业二答案](https://img.taocdn.com/s3/m/07f7d08fe53a580216fcfefc.png)
北航《VB语言程序设计》在线作业二单选题一、单选题(共25 道试题,共100 分。
只有一个选项是正确的)V 1. 假定在图片框Picture1中装入一个图形,为了清除该图形(注意,清除图形,而不是删除图片框),应采用的正确的方法是()A. 选择图片框,然后按Del键B. 执行语句Picture1=LoadPicture( " " )C. 执行语句Picture1.parent=" "D. 选择图片框,在属性窗口中选择Picture属性,然后按回车键-----------------选择:B2. 滚动条控件的Max属性所设置的是()。
A. 滚动框处于最右位置时,一个滚动条位置的value属性最大设置值B. 单击滚动条和滚动箭头之间的区域时,滚动条中滚动块的最大移动量C. 单击滚动条的箭头区域时,滚动条中滚动块的最大移动量D. 滚动条控件无该属性-----------------选择:A3. 将任意一个正的两数N的个位数与十位数对换的表达式为()。
A. (N-INT(N/10 )*10 )*10+INT(N/10 )B. N- INT(N/10 )*10 )*10+INT(N )/10C. INT(N/10 )+(N-INT(N/10 )D. N- INT(N/10 )*10*10+INT(N/10 )-----------------选择:A4. 将一个窗体设置为MDI子窗体的方法是什么。
A. 将窗体的名称改为MDIB. 将窗体的MDIChild属性设为TrueC. 将窗体的MDIChild属性设为FalseD. 将窗体的Enabled属性设为False-----------------选择:B5. Visual Basic 是一种面向对象的程序设计语言,构成对象的三要素是( )。
A. 属性、事件、方法B. 控件、属性、事件C. 窗体、控件、过程D. 窗体、控件、模块-----------------选择:A6. CommonDialog控件可以显示多少种对话框。
北航14秋《C++程序设计》在线作业二答案
![北航14秋《C++程序设计》在线作业二答案](https://img.taocdn.com/s3/m/636d7727647d27284b7351f0.png)
北航《C++程序设计》在线作业二单选题一、单选题(共25 道试题,共100 分。
)1. 在下列运算符中,优先级最低的是A. ||B. !=C. <D. +-----------------选择:A2. 设”int a=15,b=26;”,则”cout<<(a,b);”的输出结果是____A. 15B. 26,15C. 15,26D. 26-----------------选择:D3. 在c++语言中,main函数默认返回一个_____类型的值A. intB. floatC. charD. void-----------------选择:A4. C++语言的跳转语句中,对于break和continue说法正确的是A. break语句只应用于循环体中B. continue语句只应用于循环体中C. break是无条件跳转语句,continue不是D. break和continue的跳转范围不够明确,容易产生问题-----------------选择:B5. 考虑函数原型void test(int a,int b=7,char="*"),下面的函数调用中,属于不合法调用的是A. test(5);B. test(5,8);C. test(6,"#");D. test(0,0,"*");-----------------选择:C6. 如果变量x,y已经正确定义,下列语句哪一项不能正确将x,y的值进行交换A. x=x+y,y=x-y,x=x-yB. t=x,x=y,y=tC. t=y,y=x,x=tD. x=t,t=y,y=x-----------------选择:D7. 执行语句序列int x; cin>>x; if(x>250) cout<<‘X‘; if(x<250) cout<<‘Y‘; else cout<<。
北航程序设计语言原理题目与参考答案
![北航程序设计语言原理题目与参考答案](https://img.taocdn.com/s3/m/1aa48b1583c4bb4cf7ecd134.png)
} } }
while (signal.availablePermits() > 0) { try { Thread.sleep(50); } catch (Exception e) { e.printStackTrace(); } System.out.println("一名顾客理完发"); if (signal.availablePermits() < 10) { signal.release();//V操作 } }
import java.util.concurrent.Semaphore; public class SleepBarber { public static void main(String[] args) { Semaphore signal = new Semaphore(10);//初始座位数为10 Semaphore sleep = new Semaphore(0);//初始为睡觉状态 Thread barber = new Thread(new Barber(signal, sleep)); barber.start(); try { Thread.sleep(1000); while (true) { Thread customer = new Thread(new Customer(signal, sleep)); customer.start(); Thread.sleep(100); } } catch (Exception e) { e.printStackTrace(); }
public Barber(Semaphore signal, Semaphore sleep) { this.signal = signal; this.sleep = sleep; } } }
北航《C语言程序设计》答案
![北航《C语言程序设计》答案](https://img.taocdn.com/s3/m/b9b4db849fc3d5bbfd0a79563c1ec5da50e2d6a2.png)
北航《C语言程序设计》答案```plaintext一、基本概念和语法1. 在C语言中,什么是标识符?答:标识符是由字母、数字和下划线组成的字符序列,用于给变量、函数等命名。
2. C语言的注释有哪几种形式?答:C语言的注释有单行注释(//)和多行注释(/* */)两种形式。
3. 请简要解释一下C语言中的变量声明和定义的区别。
答:变量声明是为变量分配内存空间,告诉编译器该变量的类型和名称;变量定义是在声明的基础上为变量分配初值。
4. C语言中有哪些基本数据类型?请列举并简要介绍。
答:C语言中有int、float、char、double、void等基本数据类型。
- int类型用于表示整数;- float和double类型用于表示浮点数;- char类型用于表示字符;- void类型用于表示无类型。
5. C语言中的运算符有哪些种类?请简要介绍一下算术运算符和逻辑运算符。
答:C语言中的运算符包括算术运算符、关系运算符、逻辑运算符等。
- 算术运算符用于完成基本的算术运算,如加法(+)、减法(-)、乘法(*)、除法(/)等;- 逻辑运算符用于处理逻辑判断,如与(&&)、或(||)、非(!)等。
二、流程控制语句1. C语言中的条件语句有哪些?请简要介绍if语句和switch语句。
答:C语言中的条件语句有if语句和switch语句。
- if语句用于判断条件是否成立,若条件为真,则执行相应的代码;- switch语句用于根据表达式的值选择执行不同的代码块。
2. 循环语句在C语言中有哪几种形式?请简要介绍while循环和for循环。
答:C语言中的循环语句有while循环、do-while循环和for循环。
- while循环用于在指定条件为真的情况下重复执行一段代码;- for循环结构更加灵活,通过初始化、条件和增量表达式来控制循环次数。
三、函数和数组1. C语言中的函数有哪些特点?请简要介绍函数的定义和调用。
北航1212考试批次《C程序设计》复习题二答案.doc
![北航1212考试批次《C程序设计》复习题二答案.doc](https://img.taocdn.com/s3/m/b8d64191f242336c1fb95ee5.png)
北航1212考试批次《C++程序设计》复习题二一、客观题单项选择题(本大题共20小题,每小题1.5分,共30分)1、下面关于类的说明中,有—个语法错误(C )。
class ss{ int data=3;public:int ss(int x=0);~ss (int x );};A. 1B. 2 C・ 3 D. 42、在每个C++程序中都必须包含有这样一个函数,该函数的函数名为(B )oA. MAINB. mainC. nameD. function3、假定a是一个只允许同一个源程序文件中所有函数都能使用的全局变量,则其存储类别是(C )。
A. externB. registerC. static D・ auto4、C++语言的跳转语句中,对于break和continue说法正确的是(B )。
A. break语句只应用于循环体中;B. continue语句只应用于循环体中;C.break是无条件跳转语句,continue不是;D.break和continue的跳转范围不够明确,容易产生问题;5、将两个字符串连接起来组成一个字符串时,选用—函数。
(B )。
A. strlen( )B. strcat( )C. strcpy( )D. strcmp()6、下面的哪个保留字不能作为函数的返回类型?( C )A、voidB、intC、newD、long7、关于虚函数的描述中,正确的是(C )A、虚函数是一个static类型的成员函数B、虚函数是一个非成员函数C、基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数D、派生类的虚函数与基类的虚函数具有不同的参数个数和类型8、下面函数的功能是(B )。
void fun(char sl[ ], char s2[ ]) { while(s2++=sl++); }A、字符串比较B、字符串复制C、字符串连接D、字符串反向9、在每个C++程序中都必须包含有这样一个函数,该函数的函数名为(A )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5. 程序输出的结果是什么 The Value is 3 The Value is 3 The Value is 4 The Vlaue is 99
五 并发编程
monitor PRINTER:: var num = 0; var printer_available : cond;//当num > 0时,printer_available为真 proc get_printer() is: while num = 0 do wait (printer_available) end; if num > 0 then num = num - 1 endif; end; proc finish_print() is : num = num + 1; if num = 1 then signal (printer_available) endif; end; End PRINTER
} } }
while (signal.availablePermits() > 0) { try { Thread.sleep(50); } catch (Exception e) { e.printStackTrace(); } System.out.println("一名顾客理完发"); if (signal.availablePermits() < 10) { signal.release();//V操作 } }
引用:引用传递的是存储对象,实参必须是变量名或能得出地址的表达式。 执行结果: 传值:2 24 20 | 3 23 30 传名:2 36 20 | 3 23 30 引用:2 24 20 | 3 23 30
传值:0 1 1 传名:1 2 1 引用:1 2 1 值返回引用: 四 面向对象
1. 哪些操作 面向类型的操作:赋值、拼接、类型转换 面向复合对象的操作:构造、赋值、数组索引 2. q 3. 构造了哪些新类型 PassTest{float: ptValue} String[] 4. 代码存在哪些错误 short b = (short)val; stringArray = new String[3]; System.out.println(stringArray[0] + stringArray[1] + stringArray[2] + val); 5. 程序输出的结果是什么 The Value is 3 The Value is 3 The Value is 4 The Vlaue is 99
import java.util.concurrent.Semaphore; public class SleepBarber { public static void main(String[] args) { Semaphore signal = new Semaphore(10);//初始座位数为10 Semaphore sleep = new Semaphore(0);//初始为睡觉状态 Thread barber = new Thread(new Barber(signal, sleep)); barber.start(); try { Thread.sleep(1000); while (true) { Thread customer = new Thread(new Customer(signal, sleep)); customer.start(); Thread.sleep(100); } } catch (Exception e) { e.printStackTrace(); }
}
public static class Barber implements Runnable { Semaphore signal; Semaphore sleep; public void run() { while (true) { synchronized (this) { try { sleep.acquire();//等待sleep } catch (Exception e) { e.printStackTrace(); } while (signal.availablePermits() > 0) { try { Thread.sleep(50); } catch (Exception e) { e.printStackTrace(); }
题目
2019年1月13日 星期日 22:03
一 lambda演算
二 词法作用域 动态作用域
词法作用域 输出结果:17
词法作用域 输出结果:17 动态作用域 输出结果:21
词法作用域输出结果:2 0 2 1 2 1 动态作用域输出结果:2 0 2 1 2 1
三 参数机制
过程调用中的传值、传名和引用三种参数机制的不同点 传值:把实参值复制到形参上,一般实参运行后不会改变。只能返回单个的函数结 果值。 传名:如果在过程中修改了形参的值,就按结合的变元的名字(地址)找出变元值 进行修改。在传明过程中虚实结合时将程序体中所有形参出现的地方均以实参变元 名置换。 引用:引用传递的是存储对象,实参必须是变量名或能得出地址的表达式。 执行结果: 传值:2 24 20 | 3 23 30 传名:2 36 20 | 3 23 30
}
public static class Customer implements Runபைடு நூலகம்able { Semaphore signal;
}
}
public static class Customer implements Runnable { Semaphore signal; Semaphore sleep; public Customer(Semaphore signal, Semaphore sleep) { this.signal = signal; this.sleep = sleep; } public void run() { synchronized (this) { if (signal.tryAcquire()) {//尝试P座位,如果有就进去,没有就 离开 System.out.println("新增一名顾客," + signal.availablePermits()); if (signal.availablePermits() == 9) { sleep.release(); } } else { System.out.println("座椅不够,客户离开"); } } }
public Barber(Semaphore signal, Semaphore sleep) { this.signal = signal; this.sleep = sleep; } } }
七 选择题