C + +程序设计单元练习卷5(1-7章)
一单选题
1.以下叙述不正确的是()。
A)一个C++源程序必须包含一个main函数
B)在C++程序中,注释说明只能位于一条语句的后面
C)一个C++源程序可由一个或多个函数组成
D)C++程序的基本组成单位是函数
2.下面标识符中正确的是()。
A)_abc B)3ab C)int D)+ab 3.下面的()均是C++语言的整型常量。
A)0xffff 和 611 B)01b 和 0xa1
C)986.012 和 0667 D)2e4 和 0x
4.运算符 +、<=、=、% 中,优先级最低的运算符是()
A)+ B)<= C)= D)%
5. 设变量a是整型,f是实型,i是双精度型,则表达式10+’a’+i*f
值的数据类型是()。
A)int B)float C)double D)不确定6. 若有以下定义,则能使值为3的表达式是()。
int k=7,x=12;
A)x%=(k%=5) B)x%=k-k%5 C)(x%=k)-(k%=5) D)x%=(k-k%5) 7. x,i,j,k 都是int型变量,则计算下面表达式后x的值为()。
x=(i=4,j=16,k=32)
A)4 B)16 C)32 D)52
8. 若变量已正确说明为int类型,要给a,b,c输入数据,
以下正确的输入语句是()。
A)read(a,b,c); B)cin>>a,b,c;
C)cin>>a>>b>>c; D)cin>>a=>>b=>>c=;
9. 以下不正确的是()。
A)语句for(i=0;;i++)表示无限循环
B)for(;;)表示无限循环
C)for()也表示无限循环
D)while(1)表示无限循环
10.设有程序段
int k=10;
while(k=0) k=k-1;
A)是死循环B)循环执行10次
C)循环语句一次也不执行D)循环语句执行一次
11. 设a,b和c都是int型变量,且a=3,b=4,c=5;则以下表达式中值为0的是()。
A)a&&b B)a<=b
C)a||b+a&&b-c D)!((a
12.C++语言中while和do-while循环的主要区别是()。
A)do-while的循环体至少无条件执行一次
B)while的循环控制条件比do-while的循环控制条件严格
C)do-while允许从外部转到循环体内
D)do-while的循环体不能是复合语句
13. 以下程序的输出结果是()。
int main( )
{int w=4,x=3,y=2,z=1;
cout<<(w A)4 B)3 C)2 D)1 14.下面程序的输出结果是()。 #include #include?string.h? int main( ) { char a[]=?welcome?,b[]=?well?; strcpy(a,b); cout< } A)wellome B)well om C)well D)well we 15.有说明 int a[][3]={0,2,4,6,8,1,3},则数组中第一维的大小是( ) A)2 B)3 C)4 D)不确定16. 如果一个函数无返回值,定义时它的函数类型应是()。 A)任意B)int C)void D)无17. 下面程序的输出结果为()。 #include?iostream.h? int f(int a) { int b=0; static int c=3; b++;c++; return(a+b+c); } int main( ) { int a=2,I; for(I=0;I<3;I++) cout< } A)7 B)7 C)7 D)7 8 7 10 9 9 7 13 11 18. 要求函数的功能是交换x和y中的值,且通过正确调用返回交换结果。能正确执行此功能的函数是( )。 A)funa(int *x,int *y) B)funb(int x,int y) { int *p=new int ; { int t; p=*x; t=x; *x=*y; x=y; *y=*p; } y=t; } C)func(int *x,int *y) D)fund(int x,int y) { *x=*y; { *x=*x+*y; *y=*x; *y=*x-*y; } *x=*x-*y; } 19.下面程序段的运行结果是()。 char str[]=?ABC?,*p=str; cout<<*(p+3)< A)67 B)0 C) 字符’C’的地址 D)字符’C’ 20.若已定义char s[10];则在下面表达式中不表示s[1]的地址是() A)s+1 B)s++ C)&s[0]+1 D)&s[1] 21.设有如下定义,下面关于ptr正确叙述是()。 int (*ptr)(); A)ptr是指向一维数组的指针变量 B)ptr是指向int 型数据的指针变量 C)ptr是指向函数的指针,该函数返回一个int型数据 D)ptr是一个函数名,该函数的返回值是指向int型数据的指针 22.C++语言中函数返回值的类型是由()决定的。 A)return语句中的表达式的类型 B)该函数的实参类型 C)调用函数时的调用语句决定的 D)定义函数时所指定的函数类型 23. 下列结构体定义,正确的是()。 A)B) record { struct record { int no; int no; char num[16]; char num[16]; float score ; float score ; } ; } C)D) struct record { struct record { int no; int no char num[16]; char num[16] float score ; } ; float score } 24. 以下程序的输出结果是() char *p=?abcdefgh? p+=3; cout< A)8 B)7 C) 6 D)5 25. 在定义一个共用体变量时,系统为其分配存储空间的原则是()。 A)按所有成员需要的存储空间总和分配。 B)按成员中占存储空间最大者分配。 C)按成员占存储空间最小者分配。 D)按第一个成员所需的存储空间分配。 二、填空题 1.C++源程序的扩展名是______________。 2.C++程序的三种基本结构是顺序、___ ___和__________。 3.已知字母A的ASCII码为十进制数65,ch为字符变量,则ch=’A’+’8’-‘3‘的值为。 4.若有函数调用语句 fun(a+b,(y=9,x),37),则其实参的个数是。 5.设a=3,b=4,则执行b=(a++)+b;后a的值为,b的值为。 6. int *p[10]表示p是_____________。 7.若有定义static int a[3][4]={{1,2},{1},{4,6,8,10}},则初始化后 a[1][2]和a[2][1]的值分别为、。 7.C++语言的注释可采用或。 8. 请写出判断整型变量x为偶数且不小于100的表达式: 。 9. 函数的形参在未被调用之前分配空间,函数的形参的个数和要和实参的相同。 10. ?A?与‘A’的区别是:前者表示的是,占用个 内存空间,后者表示的是,占用个内存空间。11.设 #define a(x) x*x cout< 上述程序段运行结果为。 三、阅读程序 (1) #include using namespace std; void main() { int a; cout< cin>>a; Switch(a %2) { case 0: cout< default: cout< } } 如果输入数为6,则输出结果为什么? (2) 下面程序的输出结果是什么? #include using namespace std; void main( ) { int i=1; while(i<=15) if(++i%3!=2) continue; else cout< cout<\n?; } (3) 下面程序的输出结果是什么? #include using namespace std; void main( ) { int a[3][3]={{1,2},{3,4},{5}}; int sum=0; for (int i=1;i<3;i++) for(int j=0;j<=i;j++) sum+=a[i][j]; cout< } (4)以下程序的输出结果是什么? #include using namespace std; void main() { int a[3]={10,15,20}; int *p1=a,*p2=&a[1]; *p1=*(p2-1)+5; *(p1+1)=*p1-5;