第一章 计算机程序设计导论
一、简答题
1.请简述计算机程序设计语言的发展历程。
答:迄今为止计算机程序设计语言的发展经历了机器语言、汇编语言、高级语言等阶
段,C 语言是一种面向对象的编程语言,也属于高级语言。
2.什么是算法,请举例设计一个算法。
答:算法可以理解为有基本运算及规定的运算顺序所构成的完整的解题步骤。或者看
成按照要求设计好的有限的确切的计算序列,并且这样的步骤和序列可以解决一类问题。
求两个数的最大公约数设两个变量M 和N
1.如果M
2.M 被N 除,得到余数R
3.判断R 0,正确则N 为最大公约数否则进行下一步
4.将N 赋值给M,将R 赋值给N,重复第一步
3.请叙述算法都有哪些特性。
答:①有穷性②群定性③有效性④有零个或多个输入⑤有一个或多个输入
4.请叙述什么是结构化程序设计以及结构
答:①只要有几种简单类型的借口,就可以构成任意复杂的程序。这样可以使程序设计
规范化,便于用工程的方法来机型软件生产, 由顺序结构,选择结构,循环结构这三种基
本结构组成的程序就是结构化程序。
二、算法设计题
1.设计算法求1+2+3+…+100 的和。
#include
#include
main(){
int I,S 0;
for(I 1;I< 100;I++) //求1-100 的和
S S+I;
printf("%d\n",S);
system("pause");
}
2.已知两个自然数M 和N, 请设计算法输出它们的
最小公倍数。
#include
#include
#include
int fmax(int m,int n) //求最大公约数
{int r;
r m%n;
while(r! 0)
{m n;n r;r m%n;}
return n;
}
int fmin(int m,int n) //最小公倍数 两个数的积除两个数的最大公约数
{return m*n/fmax(m,n);}
main()
{ int a,b;
scanf("%d%d",&a,&b);
printf("fminis:%d\n",fmin(a,b));
system("pause");}
3.已知一个自然数N,请设计算法输出它所有真
约数的和。
#include
#include
int f(int x)
{
int n 0,i,k 1,flag 1;
while(flag) //求一个数的约数
{
flag 0;
for(i k;x%i;i++);
k i+1;
if(x! i) //判断是否到这个数本身
{
flag 1;
n+ i;//将约数累加到n 中
}
}
returnn;//是这个数本身时返回值为n
}
int main()
{
int m;
scanf("%d",&m);
printf("真约数之和 %d\n",f(m));
system("pause");}
4.设计算法求出10000 以内所有孪生素数对。
#include
#include
int f(int x) //判断一个数是否为素数
{
int i;
for(i 2;x%i;i++);
if(x i)
returnx;
else
return0;
}
main()
{
int i,j 1,m 1,n 3; //n 3 n永远为m 前一个素数
for(i 5;i<10000;i++) //因为最小的孪生素数对从为3,5
{
if(f(i) 0) //如果i 非素数跳