20秋学期(1709、1803、1809、1903、1909、2003、2009 )《程序设计基础(上)》在线作业
试卷总分:100 得分:100
一、单选题 (共 25 道试题,共 50 分)
1.已知“int a[5]={10,20,30,40,50}, *p1, *p2; p1=&a[2]; p2=&a[4];”,则p2-p1的值是##。
A.2
B.3
C.20
D.30
2.下列函数原型中,错误的是##。
A.int fun(int, int);
B.void fun(int x,y);
C.int fun(int x, int y);
D.void fun();
3.二进制数 1011+1001=( )。
A.10l00
B.1010l
C.11010
D.10010
4.下面合法的用户自定义标识符是( )。
A.No_1
B.int
C.30years
D.a *s
5.在C++中,表示一条语句结束的符号是( )。
A.[
B.//
C./*
D.;
6.已知“char a[]=”abcd”,*p=a+2;”,则语句“cout<<p;”会在屏幕上输出##。
A.bcd
B.c
C.cd
D.d
7.对于相同类型的指针变量,不能进行的运算是##
A.*
B.=
C.-
D.>
8.在32位计算机系统中,已知“int a[2][3]; fun(a);”,fun函数的形参变量名为p,则在fun()函数体中通过sizeof(p)计算得到的结果为##。
A.4
B.6
C.12
D.24
9.设i,j,k都是变量,下面不正确的赋值表达式是( )。
A.i++
B.i=j=k
C.i=j==k
D.i+j=k
10.已知“char s[]=”hello”;”,则下面叙述中正确的是##。
A.数组s的长度为5
B.元素s[2]的值为’e’
C.使用“cin>>s;”可以将从键盘上键入的字符串保存在数组s中
D.使用“int t[]=s;”可以定义数组t、并用s中各元素的值初始化t中的各元素
11.已知字母“a”的ASCII码是97,则字母“f”的ASCII码是( )。
A.100
B.101
C.102
D.103
12.假设堆内存分配均成功,则下面程序段完全正确的是##。
A.int *p=new int(3);cout<<*p;delete p;
B.int *p=new int[3];for(int i=0;i<3;i++)*p++=i;delete []p;
C.int *p=new int[3];for(int i=0;i<3;i++,p++) {*p=i; cout<<*p;}delete []p;
D.以上程序段均正确
13.计算机系统中采用补码运算的目的是( )。
A.与手工运算方式保持一致
B.减少存储空间
C.简化计算机的设计
D.提高运算的精度
14.下列有关内联函数的描述中,错误的是##。
A.内联函数必须在定义处加上inline关键字,否则就是普通的函数
B.内联函数必须是一个小函数,不能包含循环、switch等语句
C.一个函数中如果包含循环、switch等语句,则将其定义为内联函数时编译器会报错
D.在编译程序时,系统会直接将调用内联函数的地方用内联函数中的语句体做等价替换,从而省去运行程序时函数调用所额外消耗的时间
15.已知“int *p=new int[5];”,若堆内存分配成功,则指针p所指向的内存空间大小为##字节。
A.5
B.10
C.20
D.不确定
16.下面关于for循环的正确描述是##。
A.for循环只能用于循环次数已经确定的情况
B.for循环是先执行循环体语句,后判断表达式
C.在for循环中,不能用break语句跳出循环体
D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
17.已知“char s[]=”南开大学”;”,则数组s的长度为##。
A.4
B.5
C.8
D.9
18.在C++中,函数体是由一对( )括起来的部分。
A.{、}
B.、[、]
C.
D.(、)
19.若整型变量a、b、c、d、m、n、k的值均为1,运行表达式(m=a>=b)&&(n=c<=d)||(k=0)后,m、n、k的值是( )。
A.0,0,0
B.1,1,1
C.1,1,0
D.0,1,1
20.二进制数1001101011转换为等值的八进制数是( )。
A.4651
B.1153
C.9AC
D.26B
21.自定义头文件中一般不包含##。
A.数据类型的定义
B.全局变量的定义
C.符号常量的定义
D.内联函数的定义
22.下列对有关带默认形参值的函数的描述中,正确的是##。
A.只能在函数定义时设置默认形参值
B.只能在函数声明时设置默认形参值
C.函数调用时,必须使用默认的形参值,不能给出新的实参值
D.默认形参值必须严格按照从右至左的顺序进行指定
23.下面定义变量语句中,错误的是( )。
A.int x(10), y(10);
B.int x=y=10;
C.int x=10, y=10;
D.int x=10, y=x;
24.已知“enum Color{Red, Green, Blue}; Color co;”,则下列语句正确的是##。
A.co=0;
B.co=Blue;
C.co=Green+1;
D.co++;
25.表达式的100+43.6*’a’数据类型是( )。
A.float
B.double
C.long double
D.错误的表达式
二、判断题 (共 25 道试题,共 50 分)
26.在循环语句的或部分必须有改变循环条件、使表达式最终成为假的语句,否则永远为真,造成无法退出循环,即所谓的“死循环”。
27.一个二维数据可以看作是由多个一维数据构成,使用二维数组可以存储一个二维数据或多个一维数据。
28.已知“char s[20];”,则语句“strcpy(s, “abc”);”与“s=”abc”;”的作用相同。
29.在C++中,用一对双引号将字符括起来表示字符常量。其中双引号只是字符与其他部分的分隔符,不是字符的一部分。
30.在日常生活中完成一项较复杂的任务时,我们通常会将任务分解成若干个子任务,通过完成这些子任务逐步实现任务的整体目标。
31.用new动态分配的内存必须用delete释放,否则会产生内存泄漏。
32.定义数组时,数组的数据类型必须是C++中基本数据类型
33.函数的函数头包括和。
34.编译预处理命令末尾以分号结束。
35.*(+i)与[i]等价
36.已知“int a[2][]={{1,2,3},{4,5,6}};”,则二维数组a的列下标为3。
37.多文件结构的程序可以使程序结构清晰,便于管理和查找。
38.strlen(“abc”)与sizeof(“abc”)的运算结果相同。
39.关系表达式值的数据类型为逻辑型。
40.已知“double a, *p=&a;”,其中“&”是取地址运算符。
41.已知“char s[]=”hello”;”,则使用“cout<<s[3];”可以在屏幕上输出“llo”
42.在C++中,要对double型的二般数组进行访问,可以整体进行,例如: double a[3][4]; cin>>a;
43.C++编译器总是将else与其前面最近的那个if匹配成一个if … else结构。
44.对于多路选择问题,不可以直接使用C++提供的if或if…else语句,通过多次判断来完成问题的求解。
45.设计迭代算法,要先要确定需要重复的操作或操作集合,然后确定需要进行多少次这样的循环。
46.下面程序段不能实现求n!功能。 int i=1, p=1,n; cin>>n; while(i<=n) { p*=i; ++i; }
47.具有不同作用域的变量可以同名,在访问时优先访问具有较小作用域的变量。
48.计算机中用两个字节来存放一个汉字的编码。
49.不考虑溢出情况,下面语句不是“死循环”。 int a=3379; while(a++%2+3%2) a++;
50.在C++中,无论是符号常量还是变量,都必须“先定义,后使用”。
转载请注明:奥鹏作业之家 » 南开20秋学期(1709、1803、1809、1903、1909、2003、2009 )《程序设计基础(上)》在线作业【标准答案】