南开21秋学期《程序设计基础(上)》在线作业[正确答案]单选题答案
21秋学期(1709、1803、1809、1903、1909、2003、2009、2103、2109)《程序设计基础(上)》在线作业
试卷总分:100 得分:100
一、单选题 (共 25 道试题,共 50 分)
1.下面定义的一维字符型数组中,存储的数据不是字符串的为##。
A.char s[]="abc";
B.char s[]={'a', 'b', 'c', '\0'};
C.char s[]={'a', 'b', 'c'};
D.char s[20]="abc";
正确选项:--------
2.已知“int *p; fun(p);”,其中,函数fun没有返回值,且其形参定义为引用调用方式,则下列给出的fun函数原型中正确的是##。
A.void fun(int a[]);
正确选项:--------
B.void fun(int *&a);
正确选项:--------
C.void fun(int &a[]);
D.void fun(int &*a);
正确选项:--------
3.下面关于数组的描述中,错误的是##。
A.数组的长度必须在定义数组时指定,且数组中所有元素的数据类型必须相同
B.如果定义一维数组时提供了初始化列表,则数组的长度可以省略
C.如果定义二维数组时提供了初始化列表,则数组的列下标可以省略
D.如果定义二维数组时提供了初始化列表,则数组的行下标可以省略
4.下面关于c++语言的描述错误的是( )
A.C++语言支持数据封装
B.C++语言中引入友元没有破坏封装性
C.C++语言允许函数名和运算符重载
D.C++语言支持动态联编
正确选项:--------
5.已知函数原型"void fun(int &a);",则下列关于fun函数的调用形式,正确的是##。
正确选项:--------
A.int x=3;fun(x);
B.const int y=3;fun(y);
C.fun(3);
D.以上三种都正确
6.已知fun()函数的函数原型为“void fun(int x, double y=3.5, char z='#');”,则下面的函数调用中,不合法的调用是##。
正确选项:--------
A.f(1);
B.f(2, 4.2);
C.f(3, 3.7, '*')
D.f(0, , '#')
正确选项:--------
7.在表示存储器的容量时,1MB的准确含义是( )字节。
A.1000K
B.1024*1024
C.512*512
D.2048*2048
8.表达式的100+43.6*'a'数据类型是( )。
A.float
B.double
C.long double
D.错误的表达式
9.十六进制数ABH 变换为等值的十进制数是( )。
A.17
B.161
C.21
D.171
正确选项:--------
10.十进制数123变换为等值的二进制数是( )。
A.1111000
B.1111010
C.1111011
D.1111100
11.在一个非零的二进制数后增加一个0后的数是原来的( )倍。
A.1倍
B.2倍
C.3倍
D.4倍
12.对于语句“ cout<<x<<endl;”错误的是描述是( )。
A.“cout”是一个输出流对象
正确选项:--------
B.“endl”的作用是输出回车换行
正确选项:--------
C.“x”是一个变量
D.“<<”称作提取运算符
13.下面关于循环语句的叙述中,正确的是##。
A.for循环只能用于循环次数已知的情况
B.for循环与while循环一样,都是先执行循环体后判断条件
C.for循环体内不能出现while语句
D.无论哪种循环,都可以从循环体内转移到循环体外
正确选项:--------
14.已知程序段: int a[3][4],*p[3]={a[0], a[1], a[2]},**pp=p,i; for (i=0; i<12; i++) a[i/4][i%4]=i; 则pp[1][2]的值是##。
A.3
B.4
C.5
D.6
15.在访问一维数组中的某个元素时,不可以用##指定待访问元素的下标。
A.整型常量
B.整型变量
C.整型表达式
D.浮点型常量
16.已知函数调用“char str[2][10]={"abc", "def"}; fun(str);”,则下列给出的fun()函数原型中正确的是##。
A.void fun(char (*p)[2]);
B.void fun(char (*p)[10]);
C.void fun(char *p[2]);
正确选项:--------
D.void fun(char **p);
正确选项:--------
17.如果需要一个变量来记录函数的调用次数,那么这个变量不能定义为##。
A.局部变量
B.全局变量
C.静态局部变量
D.静态全局变量
18.下面关于break语句的描述中,不正确的是##。
A.break语句用于if语句中将退出该if语句
B.break语句用于循环体内将退出该循环
C.break语句用于switch语句中将退出该switch语句
D.break语句在一个循环体内可以多次出现
19.C++语言对c语言做了很多改进,C++语言相对于C语言的最根本的变化是( )。
A.引进了类和对象的概念
B.允许函数重载,并允许设置缺省参数
C.规定函数说明符必须用原型
D.增加了一些新的运算符
20.计算机系统中采用补码运算的目的是( )。
A.与手工运算方式保持一致
B.减少存储空间
C.简化计算机的设计
D.提高运算的精度
正确选项:--------
21.下列函数原型中,正确的是##。
A.void fun(int a=10, int b, int c);
B.void fun(int a=10, int b=5, int c);
C.void fun(int a, int b=5, int c=8);
D.void fun(int, int=5, int);
22.已知“int a=2, b=3, &r=a; r=b; r=5; cout<<a<<","<<b;”,则输出结果为##。
A.2,5
B.2,3
C.5,3
D.5,5
正确选项:--------
23.以下各选项中,非法的变量名是( )。
A.No_1
B.No123
C.2name
D.sumOfStudent
正确选项:--------
24.已知“int a[2][3], b=fun(a);”,则fun()函数原型为##。
正确选项:--------
A.void fun(int (*p)[2]);
B.void fun(int (*p)[3]);
正确选项:--------
C.int fun(int (*p)[2]);
D.int fun(int (*p)[3]);
正确选项:--------
25.计算机的存储器中,一个字节有( )个二进制位组成。
A.1
B.2
C.4
D.8
南开21秋学期《程序设计基础(上)》在线作业[正确答案]多选题答案
二、判断题 (共 25 道试题,共 50 分)
26.已知“char s[]="hello";”,则使用“cout<<s;”可以在屏幕上输出“hello”
正确选项:--------
27.已知“int a[2][]={{1,2,3},{4,5,6}};”,则二维数组a的列下标为3。
28.下面程序段不能实现求n!功能。 int i, p,n; cin>>n; for(i=1,p=1; i<=n; i++) p*=i;
29.ASCII 码是一种字符编码,而汉字的各种输入方法也是一种字符编码。
30.用C++表示数学表达式“0<=x<=100 ”的形式是“0<=x<=100”。
31.如果在定义一维数组时给出了初始化列表,则用于指定数组长度的常量表达式可以省略。
32.已知“char s[20];”,则语句“strcpy(s, "abc");”与“s="abc";”的作用相同。
33.一个C++程序一般由多个函数组成。这些函数只能是用户根据需要自己编写的函数——用户自定义函数。
正确选项:--------
34.switch语句中的default分支不可以缺省。
正确选项:--------
35.将数组名作为函数实参,表示将数组首地址传递给函数,在函数中可以通过该首地址操作数组中的元素并更改元素的值。
36.面对问题,需要找出解决问题的方法,我们把这种能够在有限的步骤内解决问题的过程和方法称为程序。
37.以下程序段的功能是计算10! int n=1,i=1; while(i<=10); n=n*i++; cout<<n;
38.逻辑型参与算数运算或关系运算时,true被转换成1,false被转换成0。
39.在循环语句的或部分必须有改变循环条件、使表达式最终成为假的语句,否则永远为真,造成无法退出循环,即所谓的“死循环”。
正确选项:--------
40.+i与 &[i]等价
41.数据类型的定义,如结构体、枚举等类型的定义等一般放在用户自定义的头文件中。
42.puts()函数与cout功能类似,但puts()函数输出字符串后会自动换行,而cout不会自动换行。
43.函数的函数体需要用一对花括号“{}”括起来。
44.功能相近的函数才有必要重载,互不相关的函数进行重载会降低程序的可读性。
45.具有不同作用域的变量可以同名,在访问时优先访问具有较小作用域的变量。