概述
一些关于C++的练习题
之前在学校的一些练习题~
大家可以做一下~
(有错误答案的话评论区@我 三克油)
选择
一、选择题
1、求“ab c 12n”字符串的长度( 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、字符串常量 ”tMyNane103” 的长度是:( 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’,’ ’,’c’,’ ’} ; 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++表达式是( A )。
(A)abs(x-y)3x (B)3x(abs(x-y))
©3x||(x-y) (D)3x(x-y)|| 3x(y-x)
47、下面关于new和delete运算的叙述中,错误的说法是( C )。
(A)由new分配的内存空间是连续的
(B)如果当前内存无足够的空间可分配,则new运算符返回NULL
(C)由new运算符分配的内存空间,当函数执行结束时系统会自动收回
(D)对于程序中的静态数组占用的存储空间不能使用delete来释放
48、设有说明语句
struct abc
{
int m;
float n;
} stype;
则下面错误的叙述是( B )
(A)struct 是定义结构体类型的关键字
(B)stype是结构体类型名
(C)m和n都是结构体成员
(D)stype是结构体变量名
50、一个结构体变量所占用的内存字节数是( D )
(A)结构体中第一个成员所需的内存字节数
(B)结构体中最后一个成员所需的内存字节数
(C)结构体中占用内存最大的成员所需的字节数
(D)结构体中各成员所需的内存字节数和
51、设a和b是两个结构体变量,下面正确的表达式是( A )
(A)a=b (B)a=b+1 ©a>b (D)a==b
52、关于构造函数的叙述中,错误的说法是( B )
(A)构造函数的名称必须为类名
(D)构造函数最多只能有一个
(C)创建对象时自动执行构造函数
(D)构造函数无任何函数类型
53、C++中类有两种用法,一种是类的实例化,即生成类对象,另一种是通过( B )派生出新的类
(A)复用 (B)继承 (C)重载 (D)封装
54、派生类对象的构造顺序是先调用:( B )。
A.派生类的构造函数B.基类的构造函数
C.内嵌对象的构造函数 D.友元类的构造函数
55、派生类对象的析构造顺序是先调用:( A )。
A.派生类的析构造函数B.基类的析构造函数
C.内嵌对象的析构造函数 D.友元类的析构造函数
56、假定AB为一个类,则执行"AB a(4),b[4],*p[5]”语句时,自动调用该类构造函数的次数为( B )。
A.4 B.5 C.8 D.13
57、派生类的成员函数不能访问基类的( C )。
A) 所有成员 B) 公有成员
C) 私有成员 D) 保护成员
58、类的构造函数的作用是( A )。
A) 对象的初始化 B) 删除对象时的清理任务
C) 与一般成员函数一样 D) 类的初始化
59、类的析构造函数的作用是( B )。
A) 对象的初始化 B) 删除对象时的清理任务
C) 与一般成员函数一样 D) 类的初始化
60、类的构造函数的作用是( A )。
A) 对象的初始化 B) 删除对象时的清理任务
C) 与一般成员函数一样 D) 类的初始化
61、类的析构造函数的作用是( B )。
A) 对象的初始化 B) 删除对象时的清理任务
C) 与一般成员函数一样 D) 类的初始化
62、作用域运算符::的功能是(D )。
A 标识作用域的级别 B 指出作用域的范围
C 给定作用域的大小 D 标识某个成员是属于哪个类
63、派生类的对象对它的基类成员中( A )是可以访问的。
A. 公有继承的公有成员 B. 公有继承的私有成员
C. 公有继承的保护成员 D. 私有继承的公有成员
64、设置虚基类的目的是( B )。
A. 简化程序B. 消除二义性
C. 提高运行效率 D. 减少目标代码
65、下面程序的运行结果为 ( C )
#include<iostream.h>
using namespace std;
class A { public:
A( ){cout<<"1";}
~A( ){cout<<"2";}
};
class B:public A
{ public:
B( ) {cout<"3";}
~B( ){cout<<"4";}
};
int main( ) { B b;return 0; }
A.1234
B.1324
C.1342
D.3142
66、C++中,主函数的个数是( B ) 个。
A. 2个 B.1个
C. 任意个 D. 10个
67、下列关于C++注释的叙述中错误的是( D )。
A. 以“/”开头并以“/”结尾的字符串为C++的注释符
B. 注释可以出现在任何位置,用以提示和注释程序的意义
C. 程序编译时,不对注释作任何处理
D. 程序编译时,需要对注释进行处理
68、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=‘A’+‘6’-‘3’后,c2中的值为 ( A )。
A. D B. 68 C. 不确定的值 D. C
69、设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为( D ) 。
A. float B. char C. int D double
70、以下程序段,当输入“3”并回车后,屏幕上显示的内容是( C )。
int ch ;
ch = getchar () ;
putchar (ch) ;
A. 2 B. 1
C. 3 D. 0
70、以下程序的输出结果是( C ) 。
char c1, c2;
c1=65;
c2 = 65 + 32 + 1 ;
cout<<c1<<c2 ;
A. a, B B. A, B
C. A, b D. a, b
71、判断char型变量ch是否为大写字母的正确表达式是( C )。
A) ‘A’<=ch<=‘Z’ B) (ch>=‘A’)&(ch<=‘Z’)
C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch)
72. 以下程序的运行结果是( B ) 。
main()
{ int a,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
cout<<a<<”,”<<b<<endl;
}
A) 6,1 B) 2,1 C) 6,0 D) 2,0
73. 已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是( B )。
if(x>y) z=x; x=y; y=z;
A) x=10, y=20, z=30 B) x=20, y=30, z=30
C) x=20, y=30, z=10 D) x=20, y=30, z=20
74. 若运行时给变量x输入12,则以下程序的运行结果是( D )。
main()
{ int x,y;
cin>>x;
y=x>12 ? x+10 : x-12;
cout<<y<<endl;
}
A) 4 B) 3 C) 2 D) 0
75、以下由while构成循环的次数是 ( D )。
int i = 1 ;
while ( i == 1 )
i++;
A. 执行无限次 B. 语法错
C. 一次也不执行 D. 执行1次
76、若有说明语句:int a[ 2 ][ 3 ] ={ 0 };,则下面正确的叙述是 ( C ) 。
A. 此语句说明不正确
B. 只有a[0 ][ 0]可以得到初值0
C.数组中的每个元素可以得到初值0
D.数组中的每个元素可以得到初值,但不一定为0
77、若有以下语句,则下面 ( B ) 是正确的描述。
char x [ ] = “12345”;
char y [ ] = { ‘1’, ‘2’, ‘3’, ‘4’, ‘5’ };
A.x数组和y数组的长度相同 B.x数组的长度大于y数组的长度
C. x数组等价于y数组 D.x数组的长度小于y数组的长度
78、在数组中,数组名表示 ( A ) 。
A. 数组第一个元素的首地址 B.数组第一个元素的首地址
C.数组所有元素的首地址 D.数组最后一个元素的首地址
79、在C语言中,二维数组元素在内存中的存放顺序是 ( A ) 。
A. 按行存放 B. 按列存放
C. 由用户决定 D. 由编译器确定
80、被调用函数调用结束后,返回到 ( A ) 。
A. 主调用函数中该被调用函数调用语句处
B. 主函数中该被调用函数调用语句处
C. 主调用函数中该被调用函数调用语句的前一条语句 D. 主调用函数中该被调用函数调用语句的后一条语句
81、有关数组名作为函数参数说法错误的是 (C ) 。
A. 用数组名作为函数参数时,要求形参和实参类型相同
B. 用数组名作为函数参数时,实参传给形参的是数组的首地址
C. 用数组名作为函数参数时,实参将数组各元素的值传给形参
D. 用数组名作为函数参数时,实参和形参共享同一数组
82、在函数内部定义的变量称为 B 。
A. 全局变量 B. 局部变量
C. 外部变量 D. 静态变量
83、静态变量的说明符为 B 。
A. auto B. static
C. extern D. register
84、变量的指针,其含义是指该变量的_B______.
A. 值 B. 地址
C. 名 D. 一个标志
85.若有以下定义,则不能对a数组元素的正确引用是___B____.
int a[5],p=a;
A.&a[5] B. a+2 C. *(p+5) D. *(a+2)
86.若有以下定义,则p+5表示___A____.
int a[10],*p=a;
A. 元素a[5]的地址 B. 元素a[5]的值
C. 元素a[6]的地址 D. 元素a[6]的值
87、若有定义:int a;,则定义一个指针p,使其可以指向变量a的赋值语句是( C )。
A. int p = a; B.int *p = a;
C. int *p = &a; D.int p = *a;
88、以下正确的叙述是( A )。
A. 数组名实际上是此数组的首地址,所以数组名相当于一个指针变量
B. 若定义数组a[2][3],则a+1和 *(a+1)完全相等
C. 若定义数组a[2][3],则++a和 a[1]完全等价
D. 某函数的形参为一个数组,则调用此函数时只能将数组名作为对应的实参
89、若有以下定义:int n, *p; ,则正确的赋值表达式是( A )。
A. p = &n; B.p = n;
C. *p = &n; D.*p = *n;
90、以下程序执行后,x 值为 ( B )。
main ()
{ int *p, x;
x = 20; p = &x; x = *p + 5;
cout<<x;
}
A. 20 B.25
C. 15 D.5
91、下列程序的运行结果是 ( A )。
void fun ( int *a, int *b )
{ int *k;
k = a; a = b; b = k; }
main ()
{ int a = 3, b = 6, *x = &a, *y = &b;
fun ( x, y );
cout<<a<<b<<endl; }
A. 3 6 B.6 3
C. 编译出错 D.0 0
92、以下程序段的执行结果是 ( B )。
char a[ ] = “Program”;
char * ptr;
ptr = a;
for ( ptr = a; ptr < a + 7; ptr += 2 ) putchar ( *ptr );
A. Program B.Porm
C. 有语法错误 D.Por
93、以下对结构体变量stu1中成员age的非法引用是__B______.
struct student
{int age;
int num;
}stu1,*p;
p=&stu1;
A. stu1.age B. student.age
C. p->age D. (*p).age
94、设有以下说明语句:
srruct ex
{
int x ;
int y ;
int z ;
}example ;
由以下叙述中不正确的是( B ) 。
A. struct是结构体类型的关键字 B. example是结构体类型名
C. x, y, z都是结构体成员名 D. struct ex 是结构体类型
95、若有以下结构体定义,则( B ) 是正确的引用或定义。
struct example
{
int x ;
int y ;
} v2 ;
A. example.x=10 ; B.example v2; v2.x =10;
C. struct v2; v2.x = 10; D.struct example v2 = { 10 };
96、以下程序的运行结果是 ( B )。
main ()
{ struct sample {
int x ;
int y ; }a[ 2 ] = { 1, 2, 3, 4 };
cout<< a[0].x +a[0].y * a[1].y <<endl;
}
A. 7 B.9
C. 13 D.16
97、编写C++程序一般需经过的几个步骤依次是( B )
A. 编辑、调试、编译、连接 B. 编辑、编译、连接、运行
C. 编译、调试、编辑、连接 D. 编译、编辑、连接、运行
98、适宜采用inline定义函数情况是( C )
A. 函数体含有循环语句
B. 函数体含有递归语句
C. 函数代码少、频繁调用
D. 函数代码多、不常调用
99、下面对于友元函数描述正确的是( C )。
A.友元函数的实现必须在类的内部定义
B.友元函数是类的成员
C.友元函数破坏了类的封装性和隐藏性
D.友元函数不能访问类的私有成员
100、下面选项中不属于面向对象程序设计特征的是( C ) 。
A.继承性 B多态性 C相似性 D封装性
填空
二、填空题
1、若有定义int m=5,y=2;则计算表达式y+=y-=m*=y后的y值是【-16】。
2、 若s是int型变量,且s=6,则表达式s%2+(s+1)%2的值为【1】。
3、若有定义:char c=‘ 10’;则变量c中包含的字符个数为【1】。
4、已知字母a的ASCII码为十进制数97,且设ch为字符型变量,
则表达式ch=‘a’+‘8’-‘3’的值为【f】。
4、有定义int a;则“a是偶数”的表达式是【a%2==0】 。
5、下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束
循环。请填空。
int n=0,c;
c=getchar();
while( 【c!=’n】’)
{
if(【c>=’0’&&c<=’9’ 】)
n++;
c=getchar();
}
6、下面程序的功能是用"辗转相除法"求两个正整数的最大公约数。请填空。
#include
main()
{int r,m,n;
cin>>m>>n;
if(m<n)
【r=m;m=n;n=r;】;
r=m%n;
while®
{m=n;n=r;【r= m%n】;}
cin<<n<<endl;
}
7、若有定义:double x[3][5];则x数组中行下标的下限为___0_,列下标的上限为____4_____.
8、下面程序以每行4个数据的形式输出a数组,请填空。
#define N 20
main()
{int a[N],i;
for(i=0;i<N;i++)
cin>> a[i] ;
for(i=0i<N;i++)
{if (【i%4==0】__)
【cout<<endl;】
cout<<a[i];
}
cout<<endl;
}
9、 下面程序可求出矩阵a的主对角线上的元素之和,请填空。
main()
{int a[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(【ij||i+j2】)
【sum=sum+a[i][j]】;
cout<<sum<<endl;
}
10、若有定义:int a[]={2,4,6,8,10,12},p=a;则(p+1)的值是_4___. (a+5)的值是___12______.
11、若有以下定义:int a[2][3]={2,4,6,8,10,12};则a[1][0]的值是__8___.
12、下面程序的运行结果是___254______.
#include
main()
{int a,s,n,count;
a=2;s=0;n=1;count=1;
while(count<=7){n=na;s=s+n;++count;}
cout<<s<<endl;
}
12、int n=0; while(n= =1)n++; while循环执行次数是 【0次】 。
13、面向对象程序设计有四个主要特点,即抽象、封装、【继承__】和【多态性】。
14、非成员函数应声明为类的【友元__】函数才能访问这个类的private成员。
14、派生类中的成员不能直接访问基类中的【私有__】成员。
15、在用class定义一个类时,数据成员和成员函数的默认访问权限是【private】。
16、在字长为32位的机器中,sizeof(char)=【1】字节,sizeof(unsigned int)=【 4 】字节.
17、C++语法规定,任何变量在使用前必须先【定义】;变量有两个值,一个是变量本身的值,另一个是变量的【地址值】。
18、C++中任何一个数组的名字是一个【常量】指针,该指针的值是该数组【首元素】的地址。
19、函数调用时的参数传递主要分为单向传递和【双向】传递,前者的特点是【形参的改变不影响实参】。
20、函数重载时要求同名函数的参数【个数】或【类型】不同,否则无法确定是哪个函数。
21、静态数据成员是类的所有对象中【共享】的成员,静态数据成员初始化与一般数据成员初始化【不同】。
22、在类中必须声明成员函数的【 原型 】,成员函数的【 实现 】部分可以写在类外。
23、如果需要在被调函数运行期间,改变主调函数中实参变量的值,则函数的形参应该是【 引用 】类型或【 指针 】类型。
24、【 抽象 】类只能作为基类使用,而不能声明它的对象。
25、通过一个【 常 】对象只能调用它的常成员函数,不能调用其他成员函数。
26、拷贝构造函数的形参必须是【 本类对象的引用 】。
27、已知pow(a,b)的值为a的b次方,则数学表达式对应的C++表达式为【2*pow(x,5)】。
28、每个字符指针变量占用内存的【4】个字节的存储空间。
29、假定一维数组的定义为"int a[8]”,则该数组所含元素的个数为【8】。
30、若whi1e循环语句的头部为”while(i++<=10)”,若i的初值为0,同时在循环体中不会修改i的值,则其循环体将被重复执行【11】次后正常结束。
31、在C++中,函数的参数有两种传递方式,它们是地址传递和【值传递】。
32、 C++中比C语言更高级的两种代码复用的方式:【继承】,【模板】 。
33、在C++类中,有一种不能定义对象的类,这样的类只能被继承,称之为【抽象类】,定义该类至少具有一个【纯虚函数】。
34、C语言中没有字符串类型,字符串是通过字符数组来表示的,每一个字符串都有一个结尾字符【 】,C++中字符串类型是【string】。
34、执行下列代码: string str=“Hello World!”; cout<<str; 程序的输出结果是【Hello World!】 。
35、 完成以下程序,实现求任意一个3位正整数各位数字之和。
#include
using namespace std;
void main()
{
int s,m;
cin>>m;
s=________+m/10%10+m/100;
cout<<s;
}
答案:m%10
36、完成以下程序,实现求任一个非负整数的算术平方根。
#include
#include
using namespace std;
void main()
{
int x;
double y;
cout<<“请输入一个非负整数:”;
cin>>x;
_____________;
cout<<“平方根:”<<y<<endl;
}
答案:y=sqrt(x)
37.完成以下程序,实现判断某年是否是闰年的功能。
#include
using namespace std;
void main()
{
int x;
bool leap;
cin>>x;
leap=false;
if(x%40&& x%100!=0||x%4000) leap=true;
if ( _______ ) cout<<x<<“年是闰年”<<endl;
else cout<<x<<“年是平年”<<endl;
}
关键字:选择结构
答案:leap
leap==true
leap!=false
- 完成以下程序,实现判断某年是否是闰年的功能。
#include
using namespace std;
void main()
{
int x;
bool leap;
cin>>x;
leap=false;
if(x%4==0&& x%100!=0|| __________ ) leap=true;
if (leap) cout<<x<<“年是闰年”<<endl;
else cout<<x<<“年是平年”<<endl;
}
关键字:选择结构
答案:x%400==0
39、完成以下程序,实现判断数x是否为偶数的功能。
#include
using namespace std;
main()
{
int x;
cout<<“请输入一个数:”;
cin>>x;
if (_______________) cout<<“是偶数!”;
else cout<<“不是偶数。”<<endl;
}
关键字:选择结构
答案:x%2==0
40、 完成以下程序,实现下列分数序列的前15项之和。
2/1,3/2,5/3,8/5,13/8,21/13,. . .
#include
using namespace std;
void main()
{
int I,m,n,k;
float s=0;
m=1;n=2;
for(I=1;I<=15;I++)
{
s=s+1.0*n/m;
k=m;
m=n;
}
cout<<”s=”<<s<<endl;
}
关键字:循环结构
答案:n=k+n;
41、完成以下程序,实现下列分数序列的前15项之和。
2/1,3/2,5/3,8/5,13/8,21/13,. . .
#include
using namespace std;
void main()
{
int I,m,n,k;
float s=0;
m=1;n=2;
for(I=1;I<=15;I++)
{
k=m;
m=n;
n=k+n;
}
cout<<”s=”<<s<<endl;
}
关键字:循环结构
答案:s=s+1.0*n/m;
42、 完成下面程序,使其输出l0,并在退出运行时正确释放分配给指针的存储空间。
#include
using namespace std;
void main()
{
int *a,*p;
a=new int;
*a=10;
p=a;
cout<<*p<<endl;
__________;
}
关键字:数组与指针
答案:
delete(a)
delete§
43、完成下面程序,使其输出30,并在退出运行时正确释放分配给指针的存储空间。
#include
using namespace std;
void main()
{
int *a,*p;
a=________ int;
*a=30;
p=a;
cout<<*p<<endl;
delete§;
}
关键字:数组与指针
答案:new
44、完成以下程序,实现两个变量的交换。
#include
using namespace std;
void main()
{
void swap(int *x,int *y);
int i,j;
cout<<“输入两个整数:”;
cin>>i>>j;
swap(&i,&j);
cout<<“i=”<<i<<" j="<<j<<endl;
}
void swap(_________)
{
int p;
p=*x;
*x=*y;
*y=p;
}
关键字:数组与指针
答案:int x,inty
45、完成以下程序,实现两个变量的交换。
#include
using namespace std;
void main()
{
void swap(int *x,int *y);
int i,j;
cout<<“输入两个整数:”;
cin>>i>>j;
swap( );
cout<<“i=”<<i<<" j="<<j<<endl;
}
void swap(int x,inty)
{
int p;
__________
*x=*y;
*y=p;
}
关键字:数组与指针
*答案: &i,&j
p=x;
46. 输入10个数,使用选择排序,按升序排序。
#include
using namespace std;
int main()
{
int a[10];
int i,j,t,k;
cout<<“Input 10 number:”<<endl;
for(i=0;i<10;i++)
;
for(j=0;j<9;j++) //共进行九轮比较
{
k=j;
for(i=j+1;i<10;i++) //每轮中找出最小值下标
if(a[i]<a[k]) ;
t=a[j];
; //每轮中的最小值与a[j]交换
a[k]=t;
}
cout<<“the sorted numbers:”<<endl;
for(i=0; ;i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}
答案:cin>>a[i]
k=i;
a[j]=a[k]
i<10
47、编写程序,从键盘输入一个整数,判断是否为水仙花数,在下划线处填上正确的语句。
#include
using namespace std;
int main()
{
int a,b,c,num
cout<<“输入一个三位数:”<<endl;
cin>>num;
a=num/100; //求百位数
b= ; //求十位数
c= ; //求个位数
if( )
cout<<num<<“是水仙花数”<<endl;
else
cout<<num<<”不是水仙花数”<<endl;
return 0;
}
答案:num/10%10
num%10
aaa+bbb+ccc= =num
读程序写结果
三、读程序写结果
1、下面程序段的运行结果是__8_____.
i=1;s=3;
do{s+=i++;
if(s%7==0)continue;
else ++i;
}while(s<15);
cout<<i;
2、
#include
using namespace std;
void main()
{
int x,y,z;
x=2/47;
y=2/47.0;
z=int(2/4.0*7);
cout<<“x=”<<x<<" y=“<<y<<” z="<<z<<endl;
}
请写出输出结果。
答案:x=0 y=0 z=3
3、
#include
using namespace std;
void main()
{
int x,y,z;
x=3;
y=++x;
z=x;
cout<<“x=”<<x<<" y=“<<y<<” z="<<z<<endl;
}
请写出输出结果。
答案:x=4 y=4 z=4
4、
#include
using namespace std;
void main()
{
int x,y,z;
x=3;
y=x++;
z=x;
cout<<“x=”<<x<<" y=“<<y<<” z="<<z<<endl;
}
请写出输出结果。
答案:x=4 y=3 z=4
5、
#include
using namespace std;
void main()
{
int x,y,z;
x=3;
y=x++;
z=x;
cout<<“x=”<<x<<" y=“<<y<<” z="<<z<<endl;
}
请写出输出结果。
答案:x=4 y=3 z=4
6.
#include
using namespace std;
void main()
{
int x,y,z;
x=3;y=5;
x=x+y;
y=x-y;
x=x-y;
cout<<“x=”<<x<<" y="<<y<<endl;
}
请写出输出结果。
答案:x=5 y=3
#include
using namespace std;
void main()
{
float a,b,c,t;
a=7;b=3;c=15;
if (a>b) { t=a;a=b;b=t; }
if (a>c) { t=a;a=c;c=t; }
if (b>c) { t=b;b=c;c=t; }
cout<<a<<“,”<<b<<“,”<<c<<endl;
}
请写出输出结果。
答案:3,7,15
#include
using namespace std;
void main()
{
float x,y;
x=-5;
if (x<0) y= -1;
else;
if (x<=10) y=x;
else y=x*x+1;
cout<<“x=”<<x<<" y="<<y<<endl;
}
请写出输出结果。
关键字:选择结构
答案:x=-5 y=-5
#include
using namespace std;
void main()
{
char c;
cin>>c;
if(c>=’a’ && c<=’u’) c=c+5;
else if(c>=’v’&&c<=’z’) c=c-21;
cout<<c<<endl;
}
当输入b时,请问输出的内容是( )。
关键字:选择结构
答案:g
#include
using namespace std;
void main()
{
int c;
cin>>c;
if(c>=8 || c<=3) c=c+5;
else c=c-21;
cout<<c<<endl;
}
当输入2时,请问输出的内容是( )。
关键字:选择结构
答案:7
#include
using namespace std;
void main()
{
int i=0;
while(++i)
{
if(i==10) break;
if(i%3!=1) continue;
cout<<i;
}
}
请写出输出结果。
关键字:循环结构
答案:147
#include
using namespace std;
void main()
{
int a,b;
for(a=1,b=2; b<50;)
{
cout<<a<<’ ‘<<b<<’ ';
a=a+b;
b=a+b;
}
}
请写出输出结果。
关键字:循环结构
答案:1 2 3 5 8 13 21 34
#include
using namespace std;
void main()
{
for(int i=1,s=0;i<20;i++) {
if(i%20 || i%30) continue;
cout<<i<<’ ';
s+=i;
}
cout<<s<<endl;
}
请写出输出结果。
关键字:循环结构
答案:1 5 7 11 13 17 19 73
#include
using namespace std;
void main()
{
int i=1;
do{
i++;
cout<<++i<<” ”;
if(i= =7) break;
}while(i= =3);
}
请写出输出结果。
关键字:循环结构
答案:3 5
#include
using namespace std;
void main()
{
int i,t,sum=0;
for(t=i=1;i<10;)
{
sum+=t;
++i;
if(i%3==0)
t=-i;
else
t=i;
}
cout<<“sum=”<<sum;
}
请写出输出结果。
关键字:循环结构
答案:sum=9
#include
using namespace std;
void main()
{
int i,n,d[10]={1,2,3,4,5,6,7,8,9,10};
i=n=1;
while(i<10)
{
if(n==1)
i+=4;
else
i-=2;
if(i<10)
cout<<d[i]<<" ";
n=1-n;
}
}
请写出输出结果。
关键字:数组与指针
答案:6 4 8 6 10 8
#include
using namespace std;
int a[8]={36,25,20,43,12,70,66,35};
void main()
{
int s0,s1,s2;
s0=s1=s2=0;
for(int i=0; i<8; i++) {
switch(a[i]%3) {
case 0: s0+=a[i];break;
case 1: s1+=a[i];break;
case 2: s2+=a[i];break;
}
}
cout<<s0<<’ ‘<<s1<<’ '<<s2<<endl;
}
请写出输出结果。
关键字:数组与指针
答案:114 138 55
#include
using namespace std;
void main()
{
int a[]={1,3,5,7,9};
int *p,*q,k;
p=&a[0];
q=&a[4];
for(;q-p>0;p++,q–)
{
k=*p;
*p=*q;
*q=k;
}
for(k=0;k<4;k++)
cout<<a[k]<<" ";
cout<<endl;
}
请写出输出结果。
关键字:数组与指针
答案:9 7 5 3
#include
using namespace std;
void main( )
{
int a[3][3]={{1,3,5},{7,9,11},{13,15,17}};
int *p;
for(p=a[0];p<a[0]+9;p++)
cout<<p<<" ";
cout<<endl;
}
请写出输出结果。
关键字:数组与指针
答案:1 3 5 7 9 11 13 15 17
20.
#include
using namespace std;
main()
{
int x[3][3],i,j;
for (i=0;i<3;i++)
for (j=0;j<3;j++)
((x+i)+j)=i-j;
for (i=0;i<3;i++)
for (j=0;j<3;j++) cout<<x[i][j]<<” ”;
}
请写出输出结果。
关键字:数组与指针
答案:0 -1 -2 1 0 -1 2 1 0
21.
#include
using namespace std;
int sum(int n)
{int c=0;
do{ c+=n%10; n/=10; } while(n);
return c;
}
main()
{
cout<<sum(1234)<<‘t’<<sum(4567)<<endl;
}
请写出输出结果。
关键字:函数
答案:10 22
22.
#include
using namespace std;
void main()
{
int t(int );
int x;
x=t(5);
cout<<x<<endl;
}
int t(int a)
{
if(a>0)
return at(a-2);
else
return 1;
}
请写出输出结果。
关键字:函数
答案:15
#include
using namespace std;
#define N 5
void fun();
void main()
{
for (int i=1;i<N;i++)
fun();
}
void fun ()
{
static int a;
int b=2;
cout<<(a+=3,a+b)<<" ";
}
请写出输出结果。
关键字:函数
答案:5 8 11 14
24.
#include
using namespace std;
#define N 5
int f1(int a);
void main()
{
int a(N);
cout<<f1(a)<<endl;
}
int f1(int a)
{
return(a==0)?1:af1(a-1);
}
请写出输出结果。
关键字:函数
答案:120
25.
#include
using namespace std;
int fac(int a);
void main()
{
int s(0);
for(int i(1);i<=3;i++)
s+=fac(i);
cout<<s<<endl;
}
int fac(int a)
{
static int b=1;
b=a;
return b;
}
请写出输出结果。
关键字:函数
答案:9
26、#include <iostream.h>
using namespace std;
class base
{
public:
base(){cout<<“Construction base class.n”;}
~base(){cout<<“Destruction base class.n”;}
};
class derive:public base
{
public:
derive(){cout<<“Construction derived class.n”;}
~derive(){cout<<“Destruction derived class.n”;}
};
int main()
{
derive op;
return 0;
}
答案:Construction base class.
Construction derived class.
Destruction derived class.
Destruction base class.
27、#include
using namespace std;
class A { public:
A(){cout<<“1”;}
~A(){cout<<“2”;} };
class B:public A
{ public:
B(){cout<<“3”;}
~B(){cout<<“4”;} };
int main()
{ B b;return 0; }
答案:1342
最后
以上就是冷艳飞机为你收集整理的C++练习题(附答案)选择填空读程序写结果的全部内容,希望文章能够帮你解决C++练习题(附答案)选择填空读程序写结果所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复