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次反弹多高?