一些关于C++的练习题
之前在学校的一些练习题~
大家可以做一下~
(有错误答案的话评论区@我 三克油)
选择
一、选择题
1、求“ab c \ \ 12\n”字符串的长度( C )
(A) 5 (B) 6 © 7 (D) 8
2、C++语言规定:在一个源程序中,main函数的位置( C )。
A.必须在最开始 B.必须在系统调用的库函数的后面
C.可以任意 D.必须在最后
3、在每个C++程序中都必须包含有这样一个函数,该函数的函数名为( A )。
A.main B.MAIN
C.name D.function
4、当需要对标准输入/输出设备进行输入/输出操作时,应在文件开始使用#include预处理命令,使之包含( A )头文件。
A.iostream.h B.stdlib.h
C.fstream.h D.strstream.h
5、若a=-14,b=3,则条件表达式a<b?a:b+1的值为( A )。
A.-14B.-13C.3D.4
6、字符串常量 ”\tMyNane\103” 的长度是:( B )
(A) 6 (B) 8 © 12 (D) 14
3、设x=7,执行语句y=++x,则y等于( D )
(A) 6 (B) 7 © 9 (D) 8
7、下列字符列中,合法的长整型常量是:( D )
(A) 4.18e3 (B) 0.46793 © 4L (D) 956738
8、在C++中,char类型数据在内存的存储形式是:( D )
(A) 原码 (B) 反码 © 补码 (D) ASCII码
9、若a是int类型变量,则表达式a=25/3%3的值是:( B )。
A) 3 B) 2 C) 1 D) 0
10、设有变量定义 int i, j; 与表达式 i0 && j0 等价的表达式是:( B )
(A) i||j (B) !i&&!j © !i==!j (D) i==j
11、设变量int a = 5; 下列哪个表达式计算后,使得变量b的值等于2 ?( A )
(A) b=a/2 (B) b=6-(a–) © b=a%2 (D) b=a>3?3:2
12、if…else中为避免嵌套出现二义性,C++规定else子句总与( B )
(A)其之前最近的if语句
(B)其之前最近且尚未配对的if语句
(C)缩排位置相同的if语句
(D)其之后最近的if语句
13、逻辑运算符两侧运算对象的数据( D )
(A)只能是逻辑型数据 (B)只能是整型数据
(C)只能是整型或字符型数据 (D)可以是任何类型的数据
14、设变量x,y,a,b,c,d的值为1,计算表达式(x=a!=b)&&(y=c!=d)后,变量x,y的值分别是:( B )
(A) 0,0 (B) 0,1 © 1,0 (D) 1,1
15、若a是int类型变量,则计算表达式a=1000%999的值是( B )。
A) 0 B) 1 C) 2 D) 3
16、已知 int x=1, y=0; 执行下面程序段后,y的值为( C )。
if(x) { if (x>0) y=1; } else y = -1 ;
(A)-1 (B)0 © 1 (D)不确定
17、 已知 int x=1, y=0, w ; 执行下面程序段后,w的值为( A )。
if(x) if(y) w=x&&y; else w=y;
(A)0 (B)-1 ©1 (D)不确定
18、语句while(w) … 中的表达式w的等价表示是:( C )
(A) w0 (B) w1 © w!=0 (D) w!=1
19、语句while(a>b) a–; 等价于( D )。
(A)if(a>b)a–; (B)do{a–}while(a>b);
©for(a>b)a–; (D) for(;a>b; a–);
20、已知int i=0,x=0; 下面while语句执行时循环次数为( D )。
while( x || i ) { x ++ ; i ++ ; }
(A) 3 (B) 2 © 1 (D) 0
21、执行语句 x=1; while(++x<7)cout<<’*’; 后输出结果是:( A )
(A) ***** (B) ****** © ******* (D) ********
22、C++中循环语句while和do …while的主要区别是( A )
(A)do…while的循环体至少无条件执行一次
(B)while的循环控制条件和do…while的循环控制条件的控制条件的控制方式是相反的
(C)do …while允许从外部转到循环体内,while不允许
(D)while的循环体不能复合语句
23、若有以下程序段:
for(m=1;m<=100;m++)
{
cin>>y;
if(y<0)
continue;
cout<<m;
}
则下面正确的说法是( D )
(A)当y<0时整个循环结束 (B)当y>=0时什么也不输出
(C)cout语句永远也不执行 (D)最多输出100个非负整数
24、假定a为一个字符型(char)数组,则元素a[8]的地址比该数组的首地址大( B ) 个字节。
A.4 B.8 C.16 D.32
25、语句“while(!x)…”等价于( A )
(A)while(x0)… (B) while(x!=1)… © while(x!=0)… (D) while(x1)…
26、一维数组a正确定义是( D )。
(A)char a(10) (B) int a[] ©int k=5,a[k] (D)char a[]={‘a’,’b’,’c’}
27、char x[5]={‘a’,’b’,’\0’,’c’,’\0’} ; cout<<x;输出的结果是( B )
(A)’a’’b’ (B)ab © ab c (D)abc
28、在"int a[ ][3]={
{1},{3,2},{4,5,6},{0}};"中,a[2][2]的值是( C)。
A.1 B.0 C.6D.2
29、设有下面和程序段
char a[3],b[]=“China”
a=b;
cout<<a;
则( A )
(A)编译出错 (B)运行后将输出Ch © 运行后将输出Chi (D)运行后将输出Chian
30、判断字符串s1是否大于字符s2的是( A )
(A)if(strcmp(s1,s2)>0) (B)if(strcmp(s1,s2))
(C)if(strcmp(s2,s1)>0) (D)if(s1>s2)
31、下面关于C++字符数组的叙述中,错误的是( C )。
(A)字符数组可以放字符串
(B)字符数组的字符可以整体输入、输出
(C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值
(D)可以用关系运算符对字符数组比较大小
32、以下正确的描述是( B )。
A.函数的定义可以嵌套,但函数的调用不可以嵌套。
B.函数的定义不可以嵌套,但函数的调用可以嵌套。
C.函数的定义和函数的调用均不可以嵌套。
D.函数的定义和函数的调用均可以嵌套。
33、若有数组名作为函数调用的实参,则传递给虚参的是( A )
(A)数组的首地址 (B)数组第1个元素的值
(C)数组中全部元素的值 (D)数组元素的个数
34、下列字符列中可以作为“字符串常量”的是( B )。
A. ABC B. ″ABC″ C. ’abc’ D. ’a’
35、下面各语句中能正确进行赋字符串操作的语句是( B )。
A. char s[5] = {“ABCDE”};
B. char s[5] = {‘A’,’B’,’C’,’D’,’E’};
C. char *s; s = “ABCDE”;
D. char *s; scanf(“%s”, s);
36、以下正确的函数原型声明语句是( C )
(A)int fun(int a,b); (B)float fun(int a;int b);
(C)double fun( ); (D)int fun(char a[][],b);
38、变量的指针,其含义是指该变量的( B )。
A) 值 B) 地址
C) 名 D) 一个标志
39、变量的引用,其含义是指该变量的( C )。
A.值 B.类型 C.别名 D.地址
40、有如下代码段:
int p,a[10]={1,3,4,5,7,8,10,12,15,16};
p=&a[5];
则(p-1)的值为( C )。
A)1 B) 4C) 7 D) 10
41、设有数组定义:char array[]=”China”;则数组array所占的空间为( C )。
A) 4个字节 B) 5个字节 C) 6个字节 D) 7个字节
42、已有定义“int a=5,&ra=a;”则下叙述中,错误的说法是( C )。
(A)ra是变量a的引用 (B)ra的值为5
(C)ra是a的地址值 (D)执行“ra=10;”后变量a的值也变为10
43、若有定义“int c[5],*p=c;”,则以下对数组c元素地址的正确引用是( D )
(A)p+5 (B)c++ ©&c+1 (D)&c[0]
44、若有以下定义
int a[10] = {1,2,3,4,5,6,7,8,9,10}, *p = a;
则不能表示a数组元素的表达式是( B )。
A. *p B. a[10] C. *a D. a[p-a]
45、设有定义“int a = 3, b, p = &a;”则下列语句中使b不为3的语句是( D )。
A. b = &a; B. b = p; C. b = a; D. b = a;
46、设 int x = 1, y = 3 , 能正确表示代数式3x|x-y|的C+