南开21秋学期《程序设计基础(上)》在线作业[答案]答案
21秋学期(1709、2103、2109、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< 正确答案:----- 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.静态全局变量 正确答案:----- 21.下面关于break语句的描述中,不正确的是##。 A.break语句用于if语句中将退出该if语句 B.break语句用于循环体内将退出该循环 C.break语句用于switch语句中将退出该switch语句 D.break语句在一个循环体内可以多次出现 正确答案:----- 19.C++语言对c语言做了很多改进,C++语言相对于C语言的最根本的变化是( )。 A.引进了类和对象的概念 B.允许函数重载,并允许设置缺省参数 C.规定函数说明符必须用原型 D.增加了一些ABC运算符 正确答案:----- 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); 正确答案:-----