c语言基础1-10章练习题题库测试题带答案
- 格式:doc
- 大小:478.18 KB
- 文档页数:70
1. 概念填空题
1.1用 编写的程序称为“源程序”。计算机 (能/不能)直接识别源程序,必须将其翻译成二进制代码才能在机器上运行。一旦编译成功,目标程序就可以反复执行。
1.2 C++的程序由一个或多个 组成,其中一定有一个称为主函数的 函数。在组成程序的函数中,它是程序执行的 ,也是程序运行的 。对函数的描述由“{ }”中的语句序列完成,每个语句以 符号结束。C++程序 大小写。
1.3布尔型数值只有两个: , 。在C++的算术运算式中,分别当作 , 。
1.4字符由 括起来,字符串由 括起来。字符只能有 个字符,字符串可以有
个字符。空串的表示方法为 。
1.5 &&与||表达式按 的顺序进行计算,以&&连接的表达式,如果左边的计算结果为 ,右边的计算就不需要进行了,整个逻辑表达式的结果为 。以||连接的表达式,如果左边的计算结果为 ,就能得到整个逻辑表达式的结果为 。
1.6 >>运算符将一个数右移n位,相当于将该数 2n,<
1.7 前置++、--的优先级 于后置++、--。
2. 概念填空题
1.1用高级语言编写的程序称为“源程序”。计算机不能(能/不能)直接识别源程序,必须将其翻译成二进制代码才能在机器上运行。一旦编译成功,目标程序就可以反复执行。
1.2 C++的程序由一个或多个 函数 组成,其中一定有一个称为主函数的 main 函数。在组成程序的函数中,它是程序执行的 入口 ,也是程序运行的 结束点 。对函数的描述由“{ }”中的语句序列完成,每个语句以 ; 符号结束。C++程序 区别 大小写。
1.3布尔型数值只有两个: true , false 。在C++的算术运算式中,分别当作 1 , 0 。
1.4字符由 ‘ 括起来,字符串由 “ 括起来。字符只能有 1 个字符,字符串可以有 0-多个 个字符。空串的表示方法为 NULL 。
1.5 &&与||表达式按 优先级 的顺序进行计算,以&&连接的表达式,如果左边的计算结果为 false ,右边的计算就不需要进行了,整个逻辑表达式的结果为 false 。以||连接的表达式,如果左边的计算结果为 true ,就能得到整个逻辑表达式的结果为 true 。
1.6 >>运算符将一个数右移n位,相当于将该数 缩小 2n,<
1.7 前置++、--的优先级 高于 于后置++、--。
编程题
1 输入平面上某点横坐标x和纵坐标y,若该点在由图2-10表示的方块区域内,则输出1;否则输出0。
22-2-20 #include
#include
using namespace std;
int main(){
double x,y;
cin>>x>>y;
if(abs(x)<=2 && abs(y)<=2)cout<<1<
else cout<<0<
return 0;
}
2定邮寄包裹的计费标准如下表,输入包裹重量以及邮寄距离,计算出邮资。
重量(克) 邮资(元/件)
15
30
45
60
75及以上 5
9
12
14(每满1000公里加收1元)
15(每满1000公里加收1元)
*重量在档次之间按高档靠
#include
using namespace std;
int main(){
int s,l,w;//s表示邮资,l表示距离,w表示重量
cin>>l>>w;
if(w<=15)s=5;
else if(w<=30)s=9;
else if(w<=45)s=12;
else if(w<=60)s=14+l/1000;
else s=15+l/1000;
cout<
return 0;
}
3.某地发生了一件谋杀案,警察通过确定杀人凶手必为4个嫌疑犯中的一个。以下为4个嫌疑犯的会供词。A说:不是我;B说:是C;C说:是D;D说:C在胡说。已知3个人说了真话,1个人说的是假话。现在请根据这些信息,写一个程序来确定谁是凶手。
#include
#include
using namespace std;
int main()
{
char killer;
for (killer = 'A'; killer <= 'D'; killer++)
if (((killer != 'A') + (killer == 'C') + (killer == 'D') + (killer != 'D')) == 3) //三真一假,进行逻辑判断
cout<<"Killer is "<
return 0;
}
4 求一个大于指定数n的最小素数,n由键盘输入。
#include
#include
using namespace std;
int main(){
int n,i,k;
cin>>n;
while(1){
k=(int)sqrt(++n);
i=1;
while (++i<=k){
if (n%i==0)
break;
}
if(i>k){
cout<
break;
}
}
return 0;
}
5 将100元换成20元、10元和5元的组合,共有多少种组合方法?
#include
using namespace std;
int main(){
int i,j,k,count=0;
for(i=0;i<=10;i++)//i是10元张数,j是5元张数,k是1元张数
for(j=0;j<=20;j++){
k=100-10*i-5*j;
if(k>=0){
cout<
count++;
}
}
cout<
return 0;
}
6 编程求1000以内的所有完数。完数指的是一个数恰好等于它的所有因子之和。例如6=1+2+3, 6就是一个完数。
#include
using namespace std;
int main(){
int i,a,sum_yz; //sum_yz是a的因子和
for(a=1;a<1000;a++){
sum_yz=0;
for(i=1;i
//求因子运算未改变循环控制变量a的值,否则要用另一个变量b来代替a来参加运算
if (a==sum_yz) cout<
}
return 0;
}
7.求4个不同的整数,其平方和等于200。
#include
#include
using namespace std;
int main(){
int a,b,c,d;
for(a=1;a<=14;a++)
for(b=a+1;b<=14;b++)
for(c=b+1;c<=14;c++)
for(d=c+1;d<=14;d++)
if(a*a+b*b+c*c+d*d==200)
cout<
return 0;
}
8 从键盘输入一个整数,判断该数是否为回文数。所谓的回文数就是从左到右读与从右向左读都是一样的数。例如7887、23432是回文数。
#include
using namespace std;
int main(){
int a,b,c;
cin>>a;
b=0;
for(c=a;c;){
b=b*10+c%10;
c/=10;
}
if(a==b)
cout<
cout<
return 0;
}
9 编写一程序,按下列公式求,精确到最后一项绝对值小于10-6。
71513114=121111)(inii
#include
using namespace std;
int main(){
double s=0,i=1;
int p=1;
do{
s=s+p*1/i;
i+=2;
p*=-1;
}while(1/i>=1e-6);
cout<<4*s<
return 0;
}
10 用迭代法编程求ax的近似值。求平方根的迭代公式为:)(211nnnxaxx
#include
#include
using namespace std;
int main(){
double a,x0,x1;
cout<<"输入初始值";
cin>>a;
x0=a/2;
x1=(x0+a/x0)/2;
do{
x0=x1;
x1=(x0+a/x0)/2;
}while(fabs(x0-x1)<1e-6);
cout<<"根为 "<
return 0;
}
11 一球从100米高度落下,每次落地后反跳回原来高度的一半,再落下。编程求它在第10次落地时,共经过多少米?第10次反弹多高?