一、填空题(本大题共7小题,每空1分,共10分)
1、冯·诺依曼体系结构的计算机由存储器、( )、( )、输入设备和输出设备五部分组成。
2、程序语句“int a =0, b, c; b=++a; c=(++b)+(a++);”执行后,变量c的值是( )。
3、常用的流程跳转语句有goto语句、break语句、( )语句和( )语句。
4、程序语句“char c =‘A’; c=c>=‘A’&&c<=‘Z’?c+32:c; cout << c;”执行后,在设备上输出的结果是( )。
5、在表达式“u = i--, a *= ++j”中,共有( )个运算符,其中优先级最低的运算符是( )。
6、静态局部变量存储在内存区域的( )区。
7、程序语句“int a=5, b=2; double d = a / b; cout << d +1.5;”执行后,在设备上输出的结果是( )。
二、简答题(本大题共3小题,每小题10分,共30分)
8、已知如下程序代码,请按照要求回答问题。
#include<iostream>
using namespace std;
int main()
{
int s = 0, n = 12345;
while (n > 0)
{
s += n % 10;
n /= 10;
}
cout << s;
return 0;
}
(1)请画出程序中变量s和n的内存变化过程图(每次变化)。
(2)while循环中的条件表达式“n > 0”共执行多少次?
9、已知如下计算机表达式,请按照要求回答问题。
a += !b || x>=y && m != n + c++
(1)画出计算机表达式的计算顺序图。
(2)画出计算机表达式的计算序列图。
10、已知short int数据类型的变量占2个字节。读下面的程序,写出程序的输出结果。
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
unsigned short us = 65535;
us = us + 2;
cout << "unsigned short:";
cout << hex << us << "," << dec << us << endl;
signed short ss = 32767;
ss = ss + 2;
cout << "signed short:";
cout << hex << ss << "," << dec << ss << endl;
return 0;
}
三、编程题(本大题共1小题,每小题15分,共15分)
11、使用C++语言分支语句编写程序,能够实现如下分段函数,并满足题目要求(15分)。
(1)画出程序流程图。(5分)
(2)在程序中,对于输入的每一个x值,计算并输出y的值。(10分)
四、程序设计题(本大题共1小题,每小题20分,共20分)
12、使用C++语言编写程序,能够求斐波那契数列的第n项的值,并满足题目要求(20分)。
(1)使用循环结构编写自定义函数fib1(int)。(4分)
(2)使用递归思想编写自定义函数fib2(int)。(4分)
(3)在main()函数中分别调用fib1函数和fib2函数,对于10~20范围内的所有整数,程序能够依次计算并输出结果。(8分)
(4)用图示方式说明函数fib2(5)的调用过程,并标注函数的实参和返回值。(4分)
五、程序分析题(本大题共1小题,每小题25分,共25分)
13、使用C++语言循环语句编写程序,能够依据如下公式求ln2的近似值,并满足题目要求。
(1)使用2种不同方法分解出数列的通项公式,并推导出相应的递推公式。(10分)
(2)画出程序流程图。(5分)
(3)选择一种递推公式编写程序,在程序中输出ln2的近似值,精确到小数点后5位。(10分)