首页 › 答案 › 题库 › 知到智慧树 › 未分类

智慧树知到《程序设计基础》章节测试答案

智慧树知到《程序设计基础》章节测试答案
第一章单元测试
1、以下可以作为C++自定义标识符的是:
A.dollar$
B.break
C.sqrt
D.123
正确答案:sqrt
2、下列选项中合法的用户标识符是:
A.()2Text
B.10ng
C.
A.dat
D.3Dmax
正确答案:()2Text
3、以下各选项组中,均可作为自定义标识符的组是:
A.No1; Cout; a
B.public ()No1;this
C.shod ;No.1 ;sta
D.i ;while; >;=
正确答案:No1; Cout; a
4、以下说明语句中,正确的是:
A.int a,break
B.int x,%y
C.int For,INT
D.int a.cpp
正确答案:int For,INT
5、以下不符合C++语法规则的数值常量是:
A.2E1.4
B.0Xab23
C.2.1E3
D.034
正确答案:2E1.4
6、存储下列数据,占用存储字节最多的是:
A.";0"
B.0
C.0.0
D.';0'
正确答案:0.0
7、执行语句unsigned a=-1;auto c=a;后,c的类型为:
A.long
B.unsigned
C.char
D.int
正确答案:unsigned
8、在VC++中,基本数据类型所占字节长度,正确的是:
A.char<;int<;double<;float
B.char<;short<;int<;double
C.char<;short<;float<;int
D.char<;int<;float<;double
正确答案:char<;short<;int<;double
9、以下说明语句中,不存在语法错误的是()。
A.float X3-Dmax
B.int 10long
C.char X.txt[20]
D.int()2int
正确答案:int()2int
10、以下选项中,不能将字母A的ASCII码保存到变量ch的语句是:
A.char x=’A’
B.char x= ";A"
C.char x=65
D.char x=’\101’
正确答案:char x= ";A"
第二章单元测试
1、以下运算符中运算对象一定不能是double类型的是:
A.=
B.%
C./
D.<;=
正确答案:%
2、设有语句:char x=6,y=10;int z; z=(x^y)<;<;2; 则z的值是:
A.-4
B.-52
C.3
D.48
正确答案:48
3、设有int s=-2; 则执行表达式s++||++s后s的值为:
A.1
B.-2
C.0
D.-1
正确答案:-1
4、设有int a=3,b=2,x=4; 则cout<;<;(a<;x<;b)输出为:
A.0
B.1
C.3
D.5
正确答案:1
5、若有声明int m=7,n=4;float a=38.4,b=6.4,x;则执行语句x=m/2*n+a/b+1/2;后,x的值为:
A.20
B.20.5
C.18.5
D.18
正确答案:18
6、若有int a=1,b=2,c=3,d=4; 则表达式b<;a?
A.c<;d?
C.d的值为(运算符?:的结合性为从左向右):
A.2
B.3
C.1
D.4
正确答案:3
7、执行下面语句:; int i = -5; cout<;<;-(i++)<;<;";"; cout<;<;i<;<;endl;输出结果是下面哪一个?
A.5;-4
B.5; -5
C.4;-4
D.4;-5
正确答案:5;-4
8、尝试执行下面语句:unsigned int i = 2; int j = -3; cout<;<;(i*j)<;<;endl;输出结果是下面哪一个?
A.-6
B.编译出错,无输出
C.6
D.一个无符号整数
正确答案:一个无符号整数
9、下列字符串常量表示中,错误的是()。
A.";\";yes\";or\"
B.";ABCD\t\\"
C.";abcdef\0"
D.";\\Right\";"
正确答案:";\";yes\";or\"
10、设int a=5,b;,执行以下代码后,b的值不为2的是:
A.b=a/2
B.b=6-(a--)
C.b=a^7
D.b=a>;>;1
正确答案:b=6-(a--)
第三章单元测试
1、执行以下语句:for(int k=43210;k=k/10;cout<;<;k%10); 其输出结果是:
A.43210
B.01234
C.4321
D.1234
正确答案:1234
2、执行程序段:int x,y; x=3; do {; y=x--; if(!y) {cout<;<;';#'; continue;}; cout<;<;';#'; } while((x=1)||(x=2))。
A.将输出##
B.将进入死循环
C.含有不合法的控制表达式
D.将输出###
正确答案:将进入死循环
3、执行程序段:int x=6; do {; if(x%3) {cout<;<;';#'; continue;}; } while(x--)。
A.将输出##
B.将输出####
C.将输出#
D.将输出###
正确答案:将输出####
4、执行以下语句,输出结果是int x=3; do{; cout<;<;(x-=2)<;<;"; "; }while(!--x)。
A.3 0
B.1
C.0 -1
D.0 -2
正确答案:0 -2
5、执行程序段; int k=5,n=0; while(k--); switch(k); {; case 1:case 3:n+=1;break; default:n+=2; case 2:case 4:n+=3;break; }后,n和k的值分别为:
A.13 -1
B.10 -1
C.8 0
D.10 0
正确答案:13 -1
6、以下语句段执行结果:int a=2,b=0;while(!b--)cout<;<;a--<;<;'; ';<;<;b。
A.没有输出
B.1 -1
C.2 -1
正确答案:2 -1
7、在下列选项中,没有构成死循环的语句段是:
A.int k=1000;do{k;}while(k>;1000)
B.int i=100;while(1){i=i%100;if(i>;=100)break;}
C.int s=3;while(s);--s
D.for()
正确答案:int k=1000;do{k;}while(k>;1000)
8、以下说法正确的是:
A.执行do-while语句时,可能不执行循环体语句。
B.for语句如果第2个表达式为空,则必然进入死循环。
C.do-while语句总能用while或for语句实现
D.while语句中,循环体语句可能是一条语句,也可能没有语句。
正确答案:do-while语句总能用while或for语句实现
9、下面程序输出是:using namespace std;#include <;iostream>;int t(){; static int i;; i+=5;; return i;} int main(void){; cout <;<; t() <;<; ';\t';; cout <;<; t() <;<; ';\n';return 0;}
A.0 5
B.5 10
C.随机数
D.5 5
正确答案:5 10
10、以下关于文件包含的描述中正确的是_____
A.#include 后面的文件名用双引号(";";)括起和尖括号(<;>;)括起完全等效
B.每个C++程序必须包含预处理命令:#include <;iostream.h>
C.用#include 所包含的文件称为头文件,必须以.h作为扩展名
D.#include 命令行可以出现在源程序中需要的任意行
正确答案:#include 命令行可以出现在源程序中需要的任意行
第四章单元测试
1、设有“#define M(a,b,c) a*b-c”,执行“cout<;<;M(2+3,2+3,4);”输出为
A.7
B.0
C.21
D.1
正确答案:7
2、若有宏:#define AA 10#define D(x) x*x则执行cout<;<;D(1+2)*AA;,输出结果为:
A.50
B.编译出错
C.23
D.90
正确答案:23
3、考虑函数原型void test(int,char=';*';,int=7); 以下合法的函数调用是:
A.test(5,6,";%";)
B.test(5)
C.test(5,";0";)
D.test(5,";&;"; ,6)
正确答案:test(5)
4、下列定义中不正确的是:
A.#define PI 3.1415926
B.#define S345
C.static char c
D.int max(x,y)
正确答案:int max(x,y)
5、以下正确的说法是:
A.用户调用标准库函数前,必须重新定义
B.用户可以重新定义标准库函数,若如此,该函数将失去原有含义
C.用户调用标准库函数前,不必使用预编译命令将该函数所在文件包括到用户源文件中
D.系统不允许用户重新定义标准库函数
正确答案:用户可以重新定义标准库函数,若如此,该函数将失去原有含义
6、要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用:
A.内联函数
B.带缺省值的函数
C.重载函数
D.递归函数
正确答案:内联函数
7、不能作为重载函数的调用的依据是
A.参数类型
B.参数个数
C.函数返回类型
D.函数名称
正确答案:函数返回类型
8、尝试执行下面程序:using namespace std;#include <;iostream>;void f(int n){; if (n/10){ cout<;<;n%10<;<;";,"; f(n/10);}; else; cout<;<;n;}int main(){ f(638); cout<;<;endl; return 0; }输出结果为:
A.6,3,8
B.8,3,6
C.语法错
D.8,3
正确答案:8,3,6
9、下面程序输出是:using namespace std;#include <;iostream>;int t(){; static int i;; i+=5;; return i;} int main(void){; cout <;<; t() <;<; ';\t';; cout <;<; t() <;<; ';\n';return 0;}
A.5 5
B.0 5
C.随机数
D.5 10
正确答案:5 10
10、以下关于文件包含的描述中正确的是_____
A.用#include 所包含的文件称为头文件,必须以.h作为扩展名
B.#include 后面的文件名用双引号(";";)括起和尖括号(<;>;)括起完全等效
C.每个C++程序必须包含预处理命令:#include <;iostream.h>
D.#include 命令行可以出现在源程序中需要的任意行
正确答案:#include 命令行可以出现在源程序中需要的任意行
第五章单元测试
1、执行下面语句,输出结果是()。 int b[3][3] = {0,1,2,0,1,2,0,1,2},t = 1; for(int i = 0; i <; 3; i++); for(int j = i; j <;= i; j++); t += b[i][i] + b[j][j]; cout<;<;t<;<;endl。
A.7
B.6
C.4
D.9
正确答案:7
2、以下正确的数组定义语句是:
A.int b[2][ ]={{1}, {2}}
B.char a[5]={';1';, ';2';, ';3';, ';4';, ';5';, ';\0';}
C.char d[5]=";CHINA"
D.float c[ ][3]={1, 2, 3, 4, 5}
正确答案:float c[ ][3]={1, 2, 3, 4, 5}
3、设有说明性语句:char s[]=";a\’\029";,sizeof(s)的结果是:
A.4
B.3
C.6
D.5
正确答案:5
4、一个数组作为实参调用某个函数,实际传递给形参的值是
A.整个数组。
B.该数组的长度。
C.该数组的首地址。
D.该数组的元素个数。
正确答案:该数组的首地址。
5、设有说明语句:char s[80]=”Hello”; int a[20]={1,2}; 下列选项中,存在语法错误的是()。
A.cin>;>;a
B.cin>;>;s
C.cout<;<;a
D.cout<;<;s
正确答案:cin>;>;a
6、若有说明语句:int y[ ][4]={0,0}; 则下面叙述不正确的是()。
A.只有元素y[0][0]和y[0][1]可得到初值0,其余元素均得不到初值0
B.数组y的每个元素都可得初值0
C.该说明等价于int y[ ][4]={0}
D.二维数组y的行数为1
正确答案:只有元素y[0][0]和y[0][1]可得到初值0,其余元素均得不到初值0
7、设有声明";int p[10]={1,2},i=0;";,以下语句中与";p[i]=p[i+1],i++;";等价的是:
A.i++,p[i-1]=p[i]
B.p[++i]=p[i+1]
C.p[i]=p[i++]
D.p[++i]=p[i]
正确答案:i++,p[i-1]=p[i]
8、设有说明语句:char s[5][5] ={";abc";,";efgh";}; 值为字符g的数组元素是:
A.s[1][2]
B.s[1][3]
C.s[4][4]
D.s[1][4]
正确答案:s[1][2]
9、以下数组声明中正确的是:
A.int a[]
B.int a[2+3]={0}
C.int a[3.14]
D.int a[3]={1,2,3,4}
正确答案:int a[2+3]={0}
10、以下选项中,能正确计算a数组中元素个数的表达式是:
A.sizeof(a[0])/sizeof(a)
B.sizeof(a)/sizeof(a[0])
C.a[0]/sizeof(a)
D.a/sizeof(a)
正确答案:sizeof(a)/sizeof(a[0])
第六章单元测试
1、假设有下面语句:enum tag{Up=1,Down,Left,Right}a;下面哪一条语句不正确:
A.a=(tag)2
B.a=2
C.a=Down
D.a=tag(2)
正确答案:a=2
2、下面哪一条语句不正确:
A.};
Person members[30]
B.Person father
C.enum Gender{female, male};
D.struct Person{; char name[20]
; Gender sex
正确答案:Person father
3、设有以下枚举说明语句:enum weekday{Mon=1,Tues,Wed,Thurs,Fri,Sat,Sun=0}week;下面那一条赋值语句是错误的?
A.week=1
B.week=weekday(1)
C.week=(weekday)1
D.week=Mon
正确答案:week=1
4、设有结构定义及变量声明如下:struct product;{char code[5];float price;}y[4]={";200";,100};以下表达式中正确的是:
A.y[0].code=';a'
B.y.code[0]=';b'
C.y[0].code[0]=45
D.y.price=100
正确答案:y[0].code[0]=45
5、设有语句:struct xy{ int x ; float y; char z ;} example; 下面哪一个叙述错误?
A.struct 是结构类型的关键字
B.x,y,z 都是结构的成员名称
C.xy 是结构类型的名称
D.example 是结构类型的名称
正确答案:example 是结构类型的名称
6、已知有声明“struct data{int y,m;}i={2014,6},j={0};”,以下选项中合法的语句是:
A.j=i
B.cout<;<;i
C.i++
D.j={i.y,i.m}
正确答案:j=i
7、设有以下语句:union Numeric{int i; float f; double d;}u;变量u 所占存储单元的字节数为:
A.16
B.8
C.4
D.2
正确答案:8
8、下面代码的输出结果是 。int main(void){union baby {char name[10];int number;}b={";YangYang";};cout<;<;b.name<;<;"; ";b.number=65;cout<;<;b.name<;<;"; ";<;<;b.number<;<;endl;return 0;}
A.YangYang YangYang 65
B.YangYang A 65
C.YangYang 65 65
D.YangYang 65
正确答案:YangYang A 65
9、有以下语句:struct Point{int x, y;}ps[3]={{1, 2}, {3, 4}};那么ps[1].x 和ps[2].y 的值分别是:
A.3 0
B.1 4
C.1 2
D.3 4
正确答案:3 0
10、设有语句struct mys { int m1; int m2; }; 下面哪一个语句是错误的?
A.mys a1=()
B.mys a0
C.mys a2={5}
D.mys a3{5, 6}
正确答案:mys a1=()
第七章单元测试
1、要使语句p=new double[20];能够正常执行,p应声明为:
A.double *p
B.double &;p
C.double **p
D.double (*p)[20]
正确答案:double *p
2、以下说明语句中正确的是:
A.int *pi,*&;pref=pi
B.int &;refa[10]
C.int a,&;ra=a,&;*refp=&;ra
D.int a,&;ra=a,&;&;ref=ra
正确答案:int *pi,*&;pref=pi
3、以下程序的执行结果是:void f1(int *x){++*x;}void f2(int &;x){x++;}void f3(int x){++x;}int main(){; int a=10;; f1(&;a); f2(a); f3(a);; cout<;<;a;}
A.10
B.11
C.13
D.12
正确答案:12
4、若有语句int a, *(*fun)(int *);fun表示()
A.一个函数名,该函数返回int
B.指向函数的指针,该函数返回int
C.指向函数的指针,该函数返回int*
D.一个函数名,该函数返回int*
正确答案:指向函数的指针,该函数返回int*
5、已知有声明:int; a[][4]={1,2,3,4,5,6,7,8,9,10,11,12,13};若需要引用值为12的数组元素,则下列选项中错误的是:
A.*(a[2]+3)
B.*(a+2)[3]
C.*(*(a+2)+3)
D.a[2][3]
正确答案:*(a+2)[3]
6、有声明:int *a[]={new int{2},new int[4]{3,4,5},new int[3]{6,7,8}};则a[2]的值是:
A.6
B.3
C.值为3的数据地址
D.值为6的数据地址
正确答案:值为6的数据地址
7、关于void 指针,下列说法正确的是:
A.void 指针就是未指向任何数据的指针
B.void 指针就是已定义而未初始化的指针
C.指向任何类型数据的指针可直接赋值给一个void 指针
D.void 指针值可直接赋给一个非void 指针
正确答案:指向任何类型数据的指针可直接赋值给一个void 指针
8、若有如下定义struct; person{; char; name[20];; int; age;} pup[5],*p=pup; 则下列语句中对结构体成员的引用不正确的是:
A.cin>;>;p[0]->;name
B.cin>;>;pup[0].age
C.cin>;>;(*p).age
D.cin>;>;p->;name
正确答案:cin>;>;p[0]->;name
9、以下程序的可执行文件名为abc.exe,位于D盘根目录下,如果在命令行输入:
D.\abc.exe we study cpp language <;回车>;,该程序执行结果是:#include <;iostream.h>;void main(int argc, char *argv[]) {;cout<;<;argc<;<;”; ”<;<;argv[0]<;<;”; “<;<;argv[3]<;<;’\n’;}
A.5; we; language
B.4; we; language
C.5;
D.\abc.exe; cpp
D.4;
D.\abc.exe; cpp
正确答案:5;
D.\abc.exe; cpp
10、假设函数原型和变量说明如下:void f4(int **p);int a[4] = {1,2,3,4};int b[3][4] = {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}};int *q[3] = {b[0],b[1],b[2]};下面哪个调用是合法的?
A.f4(a)
B.f4(&;a)
C.f4(q)
D.f4(b)
正确答案:f4(q)