c语言过程化程序设计方法,C语言程序设计

一、选择题

1、C++源程序文件的扩展名是:______

A)

.CPP B)

.C C)

.DLL D) .EXE

2、程序中主函数的名字为______。

A)

main B)

MAIN C)Main D) 任意标识符

3、C++的合法注释是______。

A) /*This is a C

program/* B) // This is

a C program

C) “This is a C

program” D)

/This is a C program/

4、C++程序从上机到得到结果的几个操作步骤依次是______。

A) 编译、编辑、连接、运行B)

编辑、编译、连接、运行

C) 编译、运行、编辑、连接D)

编辑、运行、编辑、连接

答案:1 A 2 A

3 B 4B

二、简答题

1、C与C++语言的关系是什么?

答案:C++包含了整个C,C是建立C++的基础。C++包括C的全部特征、属性和优点,同时添加了对面向对象编程(OOP)的完全支持。

2、结构化程序设计与面向对象程序设计有什么异同点?

答案:

结构化的程序设计的主要思想是功能分解并逐步求精。面向对象程序设计的本质是把数据和处理数据的过程当成一个整体——对象。

3、C++程序开发步骤:

答案:

建立一个工程;

编辑或者导入源文件;

编译源文件,产生目标代码;

目标代码和其他库文件连接为可执行文件。

运行可执行文件。

第二章

数据类型和表达式习题答案

一、选择题

(1)B (2)C

(3)B (4)B

(5)BD

二、简答题

1、下列变量名不合法的有哪些?为什么?

A12-3、 123、 m123、 _

123、 While

答案:

A12-3:

变量名中不能有‘-‘符号

123: 变量名不能一数字开始

_ 123、、 While变量名合法。

2、下列表达式不正确的有哪些?为什么?

int a=’a’;

char

c=102; char c="abc";

char

c=’\n’;

答案: char

c="abc";是不正确的,因为"abc"是字符串不能赋值给字符变量。

3、分析常量和变量的异同点?

答案:

常量是常数或代表固定不变值的名字,常量的内容初始化以后一直保持不变。变量的内容可以在运行过程中随时改变。变量要占用固定的内存地址,常量一般不占用内存,但是用const定义的常量也要占用内存。

4、字符串"ab\\\n"在机器中占多少字节?

答案: 5个字节。分别是’a’;’b’;’\\’;’\n’;’\0’这五个字符。

5、运算结果2.5。

第三章 C++流程控制习题答案

一、选择题

(1)C (2)A

(3)D (4)C

(5)C

1、C++语言中while和do-while循环的主要区别是_________。

答案:do-while的循环体至少无条件执行一次

2、过程化程序的有哪三种基本控制结构?

答案:

顺序结构、分支结构、循环结构

3、C++用于构成分支结构的语句有哪些?构成循环结构的语句有哪些?

答案: if…else和switch语句用于分支结构。

for、while、do…while语句用于循环结构。

4、以下程序执行的结果是什么?

void main(

)

{ int x = 3;

do

cout<

while(!(--x));

}

答案: 1 -2

三、编程题(部分习题)

编程题3

#include

void main()

{

float b;int

a;

cout<

cin>>b;

a=b/1000;

switch(a)

{

case

0:cout<

case

1:cout<

case

2:cout<

case

3:

case

4:cout<

default:cout<

}

}

编程题4题

1: 1 2: 2 3: 6

4: 24 5: 120 6: 720

#include

#include

void main()

{

int

n,k;

double s;

for(n=1;n<=6;n++)

{

s=1.0;

for

(k=1;k<=n;k++)

s=s*k;

cout<

if(n%3==0)

cout<

}

}

编程题6

1.1+(1+2)+(1+2+3).....

#include

void main()

{

int

n,i,d,sum;

sum=0;d=0;i=1;

cin>>n;

for(i=1;i<=n;i++)

{

d=d+i;

sum =sum+d;

}

cout<

}

编程题10题.

迭代法求根号a。求平方根的公式为:xn+1=1/2(xn+a/xn),要求前后求出的x的差的绝对值小于10e-5。

#include

#include

void main()

{

double a, x1,x2;;

cin>>a;

x1=a;

while(1)

{

x2=(x1+a/x1)/2;

if(fabs(x1-x2)<1E-5) break;

x1=x2;

}

cout<

}

第四章

函数

//P91

四、编程题

(1)编写一个函数,将华氏温度转换为摄氏温度。公式为C=(F-32)*5/9。

#include

float swap(float x)

{

float

y;

y=(x-32)*(5.0/9);

return

(y);

}

void main()

{

float

f,p;

cout<

cin>>f;

p=swap(f);

cout<

}

(2)编写一个函数判断一个数是否为素数,并在主函数中通过调用该函数求出所有三位数的素数。

方法一、采用返回BOOL型,true表示是素数,false表示不是素数

#include

bool Prime(int m)

{

int i;

bool

flag;

flag=true;

for(i=2;i<=m-1;i++)

if(m%i==0)

{

flag=false;

break;

}

return

flag;

}

void main()

{

int n;

for(n=100;n<1000;n++)

{

if(Prime(n)==true)cout<

}

}

方法二 采用返回整型,1表示是素数,0表示不是素数

#include

int sh(int m)

{

int x;

int

flag=1;

for(x=2;x

if(m%x==0)

{flag=0; break;

}

return(flag);

}

void main()

{

int i;

for(i=101;i<=999;i++)

if(sh(i))

cout<

}

(3)编写一个递归函数求满足以下条件的最大制值n:

#include

int gui_add(int sum,int

n)

{

sum=sum+n*n;

if

(sum>1200)return n;

gui_add(sum,n+1);

}

void main()

{

cout<

}

//满足条件的最大制值n:14

(4)编写一递归函数将所输入的5个字符按相反的顺序排列出来。(递归)

#include 

void shuru(int n)

{

char

c;

if(n==0)return;

cin>>c;

n--;

shuru(n); // shuru(n-1);

cout<

}

void main()

{

shuru(5);

}

(5)使用函数重载的方法定义两个重名函数,分别求出整型数的两点间的距离和浮点型数的两点间距离。

(6)求方程ax2+bx+c=0的根,用三个函数分别求当b2-4ac大于0,等于0和小于0时的根,并输出结果。要求从主函数输入a,b,c的值。

(7)编写一个函数,调用该函数能够打印一个由指定字符组成的n行金字塔。其中,指定打印的字符和行数n分别由两个形参表示。

#include

#include

void print(int n,char p)

{

int i,j;

for (i=1;i<=n;i++)

{

cout <

for (j=1;j<2*i;j++)

cout<

cout<

}

}

void main()

{

int m;char l;

cout<

cin>>m;

cout<

cin>>l;

print(m,l); //不能cout<

}

(8)编写一个判断完数的函数。“完数”是指一个数恰好等于它的因子之和,例如6=1+2+3,6就是完数。

#include

bool jin(int n)

{

int s=0,i;

for(i=1;i

if(n%i==0)s=i+s;

if(s==n)return true;

else return false;

}

void main()

{

int n;

cout<

cin>>n;

if(jin(n)==true)

cout<

else

cout<

}

(9)编写一个将十进制数转换为二进制数的函数。(递归)

#include

void convert_to_B(int n)

{

if(n==0)

return;

else

convert_to_B(n/2);

cout<

}

void main()

{

int

n;

cout<

cin>>n;

cout<

convert_to_B(n);

cout<

}

(10)编写一个函数,功能为求两个正整数m和n的最大公约数。

最大公约数,最小公倍数函数

#include

int f(int x,int y)

//最大公约数函数

{

int t;

if(x

while(y!=0)

{

t=x%y;x=y;y=t;}

return x;

}

int g(int x,int y)

//最小公倍数函数

{

int t;

t=f(x,y);

return

(x*y/t);

}

main()

{ int a,b,max,min;

scanf("%d%d",&a,&b);

max=f(a,b);

min=g(a,b);

printf("==",max,min);}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值