C++程序设计基础(第5版)(上)
习题与解答
第1章练习题
同步练习1.1
一、选择题
1.一个最简单的C++程序,可以只有一个( )。(A )库函数(B )自定义函数(C )main 函数(D )空函数
2.函数名是( ),用于识别和调用函数。
(A )关键字(B )标识符(C )常数(D )语句3.用C++语言编写的源程序要成为目标程序必须要经过( )。(A )解释(B )汇编(C )编辑(D )编译4.C++程序中的简单语句必须以( )结束。
(A )冒号(B )分号(C )空格(D )花括号5.程序中把表达式“a+0.5”写为“a*0.5”,是( )错误。(A )编译(B )连接(C )运行
(D )逻辑
【解答】C
B
D
B
D
二、程序练习
用一个简单问题,练习程序的书写格式。(1)问题
输入一个摄氏温度值,转换输出华氏温度值。转换公式为:
9
32
5
F C =+式中,F 是华氏温度值,C 是摄氏温度值。想一想,应该如何正确把转换公式写成C++表达式。
(2)分析
首先,分析本问题需要的数据表示和数据处理。
数据:摄氏温度C ,华氏温度F 。处理:
输入C ;计算F ;
输出C和F。
然后,逐步细化:① 说明变量C和F;② 显示提示输入摄氏温度值的信息;③ 从键盘输入C的值;
④ 通过转换公式计算F的值;⑤ 以清晰的说明输出C和F。
(3)编写代码
简单程序语法格式:
程序与外部连接表示
主函数
程序中需要连接系统的输入/输出流类库。使用VC 2010,要用宏指令包含头文件,使用标准名空间的using语句。主函数定义包括函数头和函数体。
程序框架:
#include<iostream>
using namespace std;
int main()
{
//语句序列
}
根据以上分析写出一个完整的程序,并在集成开发环境编译执行。运行结果如下:
请输入摄氏温度 C:
26.5
摄氏温度 C=26.5
华氏温度 F=79.7
【解答】
#include<iostream>
using namespace std;
int main()
{
double C,F;
cout<<"请输入摄氏温度 C:\n";
cin>>C;
F=(9.0/5)*C+32;
cout<<"摄氏温度 C="<<C<<endl;
cout<<"华氏温度 F="<<F<<endl;
}
想一想
把程序中的语句
F=(9.0/5)*C+32;
改为
F=(9/5)*C+32;
测试一下,程序计算结果将会有什么错误?想想为什么?
同步练习1.2
1.在下列选项中,全部都是C++关键字的选项为( )。
(A)while IF Static(B)break char go
(C)sizeof case extern(D)switch float integer 2.按C++标识符的语法规定,合法的标识符是( )。
(A)_abc(B)new(C)π(D)"age"
3.在C++语句中,两个标识符之间( )不能作为C++的分隔符。
(A)数字(B);(C):(D)+ 4.可以用于命名变量的标识符是( )。
(A)3x(B)const(C)name_2(D)a 5.说明变量a是整型变量的正确语句是( )。
(A)int a;(B)inta;(C)Int a;(D)INTa;
【解答】C A A C A
同步练习1.3
一、选择题
1.下列正确的八进制整型常量表示是( )。
(A)0a0(B)015(C)080(D)0x10 2.下列错误的十六进制整型常量表示是( )。
(A)0x11(B)0xaf(C)0xg(D)0x1f 3.在下列选项中,全部都合法的浮点型数据的选项为( )。
(A)-1e3.5 15. 2e-4(B)12.34 -1e+5 0.1E-12
(C)0.2e-2 -12345. e-5(D)5.0e(1+4) 0.1 8e+2 4.在下列选项中,正确的字符常量为( )。
(A)"a"(B)'name'(C)a(D)'\101' 5.下列选项中,结果等于false的是( )。
(A)1<3(B)1=3(C)1==3(D)1!=3【解答】B C B D C
二、程序练习
sizeof运算可以求一个数据或数据类型所要求的字节数。例如:
sizeof(int) 结果为4
sizeof(3.14)结果为8
编写程序,显示以下数据类型要求的字节数:
char short int int long int double long double
【解答】
#include<iostream>
using namespace std;
int main()
{
cout<<"sizeof(char)="<<sizeof(char)<<endl;
cout<<"sizeof(short int)="<<sizeof(short int)<<endl;
cout<<"sizeof(int)="<<sizeof(int)<<endl;
cout<<"sizeof(long int)="<<sizeof(long int)<<endl;
cout<<"sizeof(double)="<<sizeof(double)<<endl;
cout<<"sizeof(long double)="<<sizeof(long double)<<endl;
}
同步练习1.4
一、选择题
1.在下列语句选项中,( )不能交换变量a和b的值。
(A)t=b; b=a; a=t;(B)a=a+b; b=a-b; a=a–b;
(C)t=a; a=b; b=t;(D)a=b; b=a;
2.关于下列语句,叙述错误的是( )。
int i=10, *p=&i;
(A)p的值为10(B)p指向整型变量i
(C)*p表示变量i的值(D)p的值是变量i的地址
3.有以下变量说明,下面不正确的赋值语句是( )。
int a=5, b=10, c; int *p1 = &a, *p2 = &b;
(A)*p2 = b;(B)p1 = a;
(C)p2 = p1;(D)c = *p1 *(*p2);
4.有以下变量说明,下面正确的语句是( )。
int a=10, b; int &pa=a, &pb=b;
(A)&pb = a;(B)pb = pa;(C)pb = &pa;(D)*pb = *pa;
5.执行下面语句序列后,a和b的值分别为( )。
int a=5, b=3, t;
int &ra=a;
int &rb=b;
t=ra; ra=rb; rb=t;
(A)3和3(B)3和5(C)5和3(D)5和5
【解答】D A B B B
二、程序练习
阅读以下程序,分析下面语句序列中每个字符“*”和“&”的含义,并写出输出结果。
#include <iostream>
using namespace std;
int main()
{ int a=10, b=20;
int *p=&a, *q=&b;
*p =*p* *q;
整型常量合法要求int & ra = a;
ra=a;
int *& rt = q;
*rt = 30;
cout<<"a="<<a<<"\nb="<<b<<"\n*p="<<*p<<"\n*q="<<*q
<<"\nra="<<ra<<"\n*rt="<<*rt<<endl;
}
【解答】
int main()
{
int a=10, b=20;
int *p = &a, *q = &b;//*为指针类型说明符,&是取址运算符
*p = *p **q;//第1、2、4个*为间址运算符,第3个是算数乘运算符
int & ra = a;//&是引用说明符
ra=a;
int * & rt = q;//*指针说明符,&引用说明符
*rt = 30;//*间址运算符
//字符串中的*是字符,其他是间址运算符
cout<<"a="<<a<<"\nb="<<b<<"\n*p="<<*p<<"\n*q="<<*q
<<"\nra="<<ra<<"\n*rt="<<*rt<<endl;
}
程序运行结果:
同步练习1.5
一、选择题
1.假设有说明 int a=0; double x=5.16; 则在以下语句中,( )属于编译错误。
(A)x=a/x;(B)x=x/a;(C)a=a%x;(D)x=x*a;
2.在下列运算符中,( )优先级最高。
(A)<=(B)*=(C)+(D)* 3.在下列运算符中,( )优先级最低。
(A)! (B)&&(C)!=(D)? : 4.已知int i=1, j=2; 则表达式 i+++j 的值为( )。
(A)1(B)2(C)3(D)4 5.已知int i=1, j=2; 则表达式 ++i+j 的值为( )。
(A)1(B)2(C)3(D)4 6.在下列表达式选项中,( )是正确。
(A)++(a++)(B)a++b(C)a+++b(D)a++++b 7.已知int i=0, j=1, k=2; 则逻辑表达式 ++i || --j && ++k 的值为( )。
(A)0(B)1(C)2(D)3 8.执行下列语句后,x和y的值是( )。
int x, y;
x = y = 1; ++x || ++y;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论