《程序设计基础(上)》20春期末考核答卷
程序设计基础(上)20春期末考核-00001试卷总分:100 得分:95一、单选题 (共 15 道试题,共 30 分)1.以下不正确的if语句形式是#。A.if(x>y);B.if(x=0)x+=y;C.if(X!y)cin>>xD.if(xy) else cin>>y; x+; y+;答案:B2.已知“char *s="mybook"”,则strlen(s)的值为#。A.4B.6C.7D.不确定答案:B3.下列函数原型中,错误的是#。A.int fun(int, int);B.void fun(int x,y);C.int fun(int x, int y);D.void fun();答案:B4.已知“char *s="mybook"”,则下列语句正确的是#。A.strcpy(s,"hello");B.strcat(s, "hello");C.s="hello"D.以上均不正确答案:C5.计算机中存储数据的最小单位是( )。A.字节B.位C.字D.KB答案:B6.十进制数123变换为等值的二进制数是( )。A.1111000B.1111010C.1111011D.1111100答案:C7.下面关于数组的描述中,错误的是#。A.数组的长度必须在定义数组时指定,且数组中所有元素的数据类型必须相同B.如果定义一维数组时提供了初始化列表,则数组的长度可以省略C.如果定义二维数组时提供了初始化列表,则数组的列下标可以省略D.如果定义二维数组时提供了初始化列表,则数组的行下标可以省略答案:C8.表达式的100+43.6*a数据类型是( )。A.floatB.doubleC.long doubleD.错误的表达式答案:B9.表达式sqrt(b*b-4*a*c)>=0 && a!=0是( )表达式。A.算术B.关系C.逻辑D.函数答案:C10.在计算机中采用二进制,是由于( )。A.硬件成本低B.系统稳定C.运算简单D.上述3个原因答案:D11.已知“char s="university"”,则使用“cout<<s3;”会在屏幕上输出#。A.nB.iC.vD.iversity答案:C12.下面定义变量语句中,错误的是( )。A.int x(10), y(10);B.int x=y=10;C.int x=10, y=10;D.int x=10, y=x;答案:B13.在C+中,表示一条语句结束的符号是( )。A.B./C./*D.;答案:D14.对于相同类型的指针变量,不能进行的运算是#A.*B.=C.-D.>答案:A15.下列关于函数的描述中,错误的是#。A.在一个源文件中定义的外部函数可以在其他源文件中调用,静态函数不可以B.使用static关键字可以将一个函数定义为静态函数C.在一个源文件中定义的内联函数不能在其他源文件中调用D.函数的外部声明中可以省略extern关键字答案:C二、判断题 (共 20 道试题,共 40 分)16.switch语句中的default分支不可以缺省。答案:错误17.SP结构化程序设计方法也称面向过程的程序设计方法,反映了过程性编程的方法,根据执行的操作来设计一个程序。答案:正确18.对于有默认值的形参,如果在调用函数时给出了相应的实参,也会使用形参。答案:错误19.可以定义函数指针变量指向函数的首地址,并使用函数指针变量代替函数名进行函数调用答案:正确20.已知“char s20;”,则语句“strcpy(s, "abc");”与“s="abc"”的作用相同。答案:错误21.if语句的执行过程是:首先计算的值,如果其值为“true”(非0),表示满足某种条件,执行,否则,表示不满足某种条件,不执行而直接执行分支语句后下面的语句。答案:正确22.在C+中,对结构体变量中成员的访问既可以逐个进行、也可以整体进行。答案:错误23.switch语句中的各的值可以相同,与条件表达式应为同一数据类型。答案:错误24.已知“char s="hello"”,则使用“cout<<s;”可以在屏幕上输出“hello”答案:正确25.用new动态分配的内存必须用delete释放,否则会产生内存泄漏。答案:正确26.已知“char s="hello"”,则使用“cout<<s3;”可以在屏幕上输出“llo”答案:错误27.NULL为系统定义的一个常量,其值为0,表示是一片无效的不可访问的内存。答案:正确28.while语句中的“测试条件”表达式和for语句中的表达式2都能缺省。答案:错误29.? 如果一个指针指向的内存空间中存储的是常量,则只能使用该指针获取内存空间中的数据,而不能使用该指针修改内存空间中的数据。答案:正确30.关键字是组成编程语言词汇表的标识符,用户可以用他们标识其他实体。答案:错误31.逻辑运算符的优先级从高到低分别是逻辑非、逻辑或和逻辑与。答案:错误32.C+中的命名空间是为了解决C+中的变量、函数的命名冲突的问题而设置的。答案:正确33.C+中的函数分为两类:一类是用户根据待求解问题的需要自己定义的函数;另一类是系统提供的标准函数,即库函数。答案:正确34.一个二维数据可以看作是由多个一维数据构成,使用二维数组可以存储一个二维数据或多个一维数据。答案:正确35.只有返回引用的函数可以作为赋值语句的左值。答案:正确三、主观填空题 (共 5 道试题,共 10 分)36.运算符的结合性分为两类:#和#。答案:左结合性、右结合性37.表达式x<0?-x:x的功能是#。答案:求x的绝对值38.十六进制数B7对应的二进制数是#。答案:1011011139.程序流程图中的#表示处理,#表示输入输出。答案:矩形框、平行四边形框40.程序流程图中的#表示处理,#表示判断。答案:矩形框、菱形框四、问答题 (共 1 道试题,共 10 分)41.下面程序的运行结果是什么?#include <iostream>using namespace std;int main() char a210="Xyccw"," XYcCw " int i; for (i=0; i<5; i+) if(a0i!=a1i) break; if (i=5) cout<<"两个字符串相同"<<endl; else if (a0i>a1i) cout<<"较大的字符串为:"<<a0<<endl; else cout<<"较大的字符串为:"<<a1<<endl; return 0;答案:较大的字符串为:Xyccw五、简答题 (共 1 道试题,共 10 分)42.请设计“求斐波那契数列”的递归算法,并用C+代码写出求前10项斐波那契数列的完整程序。答案:求斐波那契数列(1,1,2,3,5,8,13,)第n项的的值的递归算法如下:<br>如果n=1或n=2<br> 斐波那契数列的值为1<br> 否则<br> 斐波那契数列的值为第n-1项与第n-2项和<br>C+参考程序如下:<br>int Fib(int n) /函数定义<br><br> if ( n=1 、 n=2 )<br> return 1;<br> else<br> return Fib(n-1)+Fib(n-2); /函数的递归调用<br><br>int main()<br><br> for (int i=1;i<=10;i+)<br> cout<<Fib(i)<<endl;<br> return 0;<br><br><br>