C程序设计第一章习题
第1章程序设计和c语言试题及答案

第1章程序设计和c语言试题及答案1. 程序设计和C语言概述1.1 程序设计的概念1.2 C语言的特点1.3 C语言的发展历史2. C语言的基本语法2.1 变量和数据类型2.2 运算符和表达式2.3 控制语句2.4 函数3. C语言的数组和指针3.1 一维数组3.2 二维数组3.3 指针的概念3.4 指针与数组的关系4. 结构体和联合体4.1 结构体的定义和使用4.2 联合体的定义和使用4.3 结构体和联合体的嵌套5. 文件操作5.1 文件的打开和关闭5.2 文件的读写操作5.3 文件的定位和错误处理6. C语言的高级特性6.1 预处理指令6.2 宏定义6.3 内联函数6.4 引用7. 常见错误和调试技巧7.1 语法错误7.2 逻辑错误7.3 调试工具的使用8. 综合应用题8.1 编写一个程序,实现学生信息管理系统8.2 编写一个程序,实现图书管理系统8.3 编写一个程序,实现简单的计算器9. 参考答案9.1 程序设计和C语言概述1.1 程序设计是使用计算机语言来解决特定问题的过程。
1.2 C语言是一种结构化编程语言,具有高效、灵活、可移植的特点。
1.3 C语言起源于20世纪70年代,由Dennis Ritchie在贝尔实验室开发。
9.2 C语言的基本语法2.1 变量是用来存储数据的内存位置,数据类型决定了变量可以存储的数据类型。
2.2 运算符用于执行数学和逻辑运算,表达式是由变量、常量和运算符组成的式子。
2.3 控制语句包括条件语句和循环语句,用于控制程序的执行流程。
2.4 函数是一段可以重复使用的代码块,可以有参数和返回值。
9.3 C语言的数组和指针3.1 一维数组是相同数据类型的元素集合,可以通过索引访问。
3.2 二维数组是数组的数组,可以表示矩阵或表格数据。
3.3 指针是存储变量地址的变量,可以用来间接访问数据。
3.4 指针可以指向数组,通过指针访问数组元素可以提高效率。
9.4 结构体和联合体4.1 结构体是不同数据类型的元素的集合,可以定义复杂的数据结构。
C语言程序设计-第1-7章选择、填空习题及答案

习题一一、选择题1.C程序的基本单位是(A)。
A.函数B.文件C.语句D.字符2.C程序中的变量(B)。
A.不用说明B.先说明后引用C.先引用后说明D.引用和说明顺序无关3.变量的说明在(B)。
A.执行语句之后B.执行语句之前C.执行语句当中D.位置无关4.C语言是一种(C)。
A.机器语言B.符号语言C.高级语言D.面向对象的语言二、填空题1.一个C程序总是从主函数开始执行。
2.结构化程序由顺序、选择、循环三种基本结构构成。
3.一个C程序只有一个名为main的主函数。
4.C程序中的每个语句以分号结束。
5.C程序中,函数由函数首部和函数体组成。
6.每个基本结构有一个入口和一个出口,没有死循环和死语句。
7.算法是计算机解决问题所依据的步骤。
习题二一、选择题1.下列数据中属于字符串常量的是( B)。
A.ABC B."ABC" C.'abc' D.'A'2.在计算机内存中,'\n'占用的字节数是( C)。
A.4 B.3 C.1 D.23.字符串"ABC"在内存中占用的字节数是( D)。
A.6 B.8 C.3 D.44.在C语言中,合法的长整型常数是( B)。
A.568701400 B.0L C.0.03546287 D.2.654e115.char型常量在内存中存放的是( A)。
A.ASCII代码值B.BCD代码值C.十进制代码值D.内码值6.下列各项中正确的标识符是( D)。
A.?bb B.a=8 C. b.βD.b_47.下列不正确的转义字符是( D)。
A.\\ B.\ 0 C.\" D.0x48.设整型变量a、b的值均为5,则表达式(m=n=a++)/(n=b-2)的值为( B)。
A.0 B.1 C.2 D.39.设a的值为5,执行下列语句后,b的值不为2的是( C)。
A.b=a/2 B.b=6-(--a) C.b=a%2 D.b=(float)a/2 10.执行语句x=(a=3,b=a--)后,x、a、b的值依次是( C)。
C语言程序设计习题一

A)8 40 B)10 40 C)10,4 D)8,4 16.下面程序的输出结果是 。 main() {int i,j; i=16;j=(i++)+i;printf(“%d”,j); i=15;printf(“%d %d”,++i,i); } A)32 16 15 B)33 15 15 C)34 15 16 D)34 16 15 17.表达式(int)2.1416的值为 。 A)2 B)2.1 C)0 D)3 18.表达式(double)(20/3)的值为 。 A)6 B)6.0 C)2 D)3 19. 若有以下定义, 则正确的赋值语句为 。 int a, b ; float x; A)a=1, b=2, B)b++; C)a=b=5 D)b= int (x) ; 20. .C语言规定标识符由 等字符组成. A)字母 数字 下划线 B)中划线 字母 数字 C)字母 数字 逗号 D)字母 下划线 中划线 21. 若有如下定义:int a=2,b=3; float x=3.5,y=2.5; 则表达式: (float)(a+b)/2+(int)x%(int)y的值是 。 A)2.500000 B)3.500000 C)4.500000 D)5.000000 22. 有如下语句: printf(“%s,%5.3s\n”,“COMPUTER”,“COMPUTER”);执行语句后的最终 结果为 。 A)COMPUTER ,CMP . B)COMPUTER, CMP. C)COMPU, CMP. D)COMPU, CMP 23. 已知ch是字符型变量,下面不正确的赋值语句是: 。 A)ch=‘\0’ B)ch=‘a+b’ C)ch=‘7’+‘9’ D)ch=7+9 24. 若x和y都为float型变量,且x=3.6, y=5.8 执行下列语句后输出结 果为: 。 printf(“%f”,(x,y));
C语言程序设计基础知识 习题一及参考答案

第一章:程序设计基础知识一、单项选择题1、以下( )是面向过程的程序设计语言。
A)机器语言 B)汇编语言 C)高级语言 D)第四代语言2、程序设计一般包含以下四个步骤,其中其中首先应该完成的是( )。
A)设计数据结构和算法B)建立数学模型C)编写程序 D)调试和运行程序3、以下常用算法中适合计算等差级数的算法是( )。
A)枚举法B)递推法 C)分治法 D)排序法4、以下不属于算法基本特征的是( )。
A)有穷性 B)有效性C)可靠性 D)有一个或多各输出5、以下描述中不正确的是( )。
A)程序就是软件,但软件不紧紧是程序。
B)程序是指令的集合,计算机语言是编写程序的工具。
C)计算机语言都是形式化的语言,它有一个语法规则和定义。
D)计算机语言只能编写程序而不能表示算法。
6、下面描述中,正确的是( )A)结构化程序设计方法是面向过程程序设计的主流。
B)算法就是计算方法。
C)一个正确的程序就是指程序书写正确。
D)计算机语言就是编写程序的工具而不是表示算法的工具。
7、下面描述中,不正确的是( )。
A)递归法的关键是必须有一个递归终止的条件。
B)递归算法要求语言具有反复自我调用子程序的能力。
C)对于同一个问题,递推算法比递归算法的执行时间要长。
D)递推算法总可以转换为一个递归算法。
8、N-S图与传统流程图比较,主要优点是( )。
A)杜绝了程序的无条件转移。
B)具有顺序、选择和循环三种基本结构。
C)简单、只管。
D)有利于编写程序。
A)B)C)D)二、填空题1、在流程图符号中,判断框中应该填写的的是________。
(判断条件)2、结构化程序设计是__________应遵循的方法和原则。
(面向过程编程)3、结构化程序必须用__________程序设计语言来编写。
(具有结构化控制语句)4、可以被连续执行的一条条指令的集合称为计算机的________。
(程序)5、只描述程序应该“做什么”,而不必描述“怎样做”的语言被称为________。
C程序设计教程面向对象分册(郑秋生主编)第一章答案

第 1章参照答案一、选择题1.C2.B3.C4.A5.C二、阅读题1.x=2,y=32.x=2,y=3x!=y3.Cstatic::va1=0cs1.vaI=1cs2.val=2cs1.val=4cs2.vaI=4四、改错题#include#includeclass person{public:person(int n,char* nam,char s {num=n;strcpy(name,nam;sex=s;cout<<"Constructor called."<}~person({cout<<"Destructor called."<}void display({cout<<"num: "<cout<<"name: "<cout<<"sex: "<}private:int num;char name[10];char sex;};int main({person s1(10010,"'Wang_li",'f';s1.display( ;person s2(10011,"Zhang_fun",'m'; s2.display( ;return 0;}五、编程题5.1#includeusing namespace std;class CBox{public :CBox(double l=0,double w=0,double h=0; double area(;double volume (;private :double lengh;double width;double high;};CBox::CBox(double l,double w,double h{lengh=l;width=w;high=h;}double CBox::area({return 2*(lengh*width+lengh*high+width*high; }double CBox::volume ({return lengh*width*high;}void main({CBox box1(4,5,6;cout<cout<}5.2#includeusing namespace std;class CPoint{public :CPoint(double a=0,double b=0 {x=a;y=b;}CPoint(CPoint & p{x=p.x;y=p.y;}void print({cout<<"("<}private :double x,y;};class CLine{public:CLine(double x1=0,double y1=0,double x2=0,double y2=0:p1(x1,y1,p2(x2,y2 {}CLine(CPoint x,CPoint y:p1(x,p2(y{}CLine(CLine &lin{p1=lin.p1;p2=lin.p2;}void DrawLine({cout<<"Line form";p1.print(;cout<<"to";p2.print(;cout<}void Linedel({cout<<"delete line"<}void move(CPoint &x,CPoint &y{cout<<"move line"<p1=x;p2=y;}private :CPoint p1,p2;};void main({CPoint point1(1,5,point2(5,8,point3(20,30,point4(40,50; CLine line1(point1,point2;CLine line2(2,3,8,12;line1.DrawLine (;line2.DrawLine (;line2.move(point3,point4;line2.DrawLine (;line2=line1;line2.DrawLine (;line1.Linedel (;}5.3#includeusing namespace std;class CComplex{public:CComplex(double, double;CComplex(CComplex &c; // 复数类的拷贝结构函数申明double GetReal(;double GetImag(;void Print(;private:double real;double imag;};CComplex::CComplex (double r=0.0, double i=0.0{real = r;imag = i;cout<<"调用两个参数的结构函数"<}CComplex::CComplex (CComplex &c // 复数类的拷贝结构函数定义{real = c.real;imag = c.imag;cout<<"调用拷贝结构函数 "<}double CComplex::GetReal({return real;}double CComplex::GetImag({return imag;}void CComplex::Print( // 显示复数值{cout << "(" << real << "," << imag << "" << endl;}CComplex add(CComplex &x,CComplex &y // 一般函数达成两个数的加法,对象作为函数参数 ,{return CComplex(x.GetReal( +y.GetReal( ,x.GetImag (+y.GetImag (;}void main(void{CComplex a(3.0,4.0, b(5.6,7.9;CComplex c(a; //调用复数类的拷贝结构函数cout << "a = ";a.Print(;cout << "b = ";b.Print(;cout << "c = ";c.Print(;cout<<"c=a+b"<c=add(a,b;cout << "c = ";c.Print (;}5.4#include#includeusing namespace std;class CStudent //类申明{public:CStudent(char *,float,float,float; CStudent(CStudent &s;~CStudent(;void display(;friend float avg(CStudent &s; private:char *name;float grad[3];};CStudent::CStudent(char *na,float a,float b,float c {name=new char[strlen(na+1];strcpy(name,na;grad[0]=a;grad[1]=b;grad[2]=c;}CStudent::CStudent(CStudent &s{name=new char[strlen(+1];strcpy(name,;grad[0]=s.grad[0];grad[1]=s.grad [1];grad[2]=s.grad [2];}CStudent::~CStudent({delete []name;}void CStudent::display({int i;cout<<"name:"<for(i=0;i<3;i++cout<<"grad["<}float avg(CStudent &s //一般函数,需要引用私有成员,申明为学生类的友元函数{return (s.grad[0]+s.grad[1] +s.grad[2]/3;}int main({CStudent stud1("张三 ",79,98,82; //定义对象stud1.display(;cout <<"均匀成绩: "<return 0;}5.5#includeusing namespace std;class CString{public :CString(; //缺省结构函数,初始化为空串CString(char ch,int nRepeat;//用一个字符重复n 次,初始化字符串CString(const char*psz; //用一个字符串初始化CString(CString &stringser; // 拷贝结构函数~CString(;int GetLength( const;bool IsEmpty( const;char GetAt(int nindex const;void Setat(int nindex,char ch;void Print(;int compare(CString& string;int compare(const char* pszconst; void Vacate(;private :char *s;};CString::CString({s=NULL;}CString::CString(CString& stringser {s=new char[strlen(stringser.s+1];if(s!=0strcpy(s,stringser.s;}CString::CString(char ch,int nRepeat {s=new char[nRepeat+1];for(int i=0;is[i]=ch;s[nRepeat]='\0';}CString::CString(const char*psz {s=new char[strlen(psz+1];if(s!=0strcpy(s,psz;}int CString::GetLength( const { int i=0; while(s[i]!='\0' i++;return i;}bool CString::IsEmpty( const{if(s==NULLreturn 1;else return0;}void CString::Vacate({s[0]='\0';cout<<"Now have vacated string."<char CString::GetAt(int nindex const {if(nindex>1&&nindex<=GetLength(+1 return s[ nindex-1];elsereturn '0';}void CString::Setat(int nindex,char ch {if(nindex>1&&nindex<=GetLength(+1 s[ nindex-1]=ch;}void CString::Print({cout<}int CString::compare(CString& string {if(strcmp(s,string.s>0return 1;else if(strcmp(s,string.s<0return -1;elsereturn 0;int CString::compare(const char* pszconst {if(strcmp(s,psz>0return 1;else if(strcmp(s,psz<0return -1;else return 0;}CString::~CString({//cout< 析构 :"<if(s!=NULLdelete[]s;}void main({char a[4]="y";char b[4];CString c1("Hellow",c2(c1;cout<<"Stringc1 is:"<<" "; c1.Print(;cout<cout<<"Stringc2 is:"<<" "; c2.Print(;cout<CString c3('b',3;cout<<"Stringc3 is:"<<" "; c3.Print(;cout<cout<<"*******************以下是对串的基本操作 ****************"< int num=c1.GetLength(;char ch;cout<<"c1 的长度是 :"<<" "<ch=c1.GetAt(5;cout<<"获取字符串 c1 中第 "<<5<<" 个字符是 :"<cout<<"下边是插入字符串c1 中一个特别字符 'd'"<c1.Setat(5,'d';cout<<"插入后字符串 c1 变成 :"<<" ";c1.Print(;//////////////////////cout<if(c1.IsEmpty(==1cout<<"String is empty."<elsecout<<"String isn't empty."<cout<<"下边是判断字符串c1 清空 "<c1.Vacate(;cout<<"清空后输出字符串c1:"<<" \n";c1.Print(;cout<<"字符串已被清空 "<cout<<"请按随意键持续 "<cin>>b;///////////////////////////cout<<"****************以下是对串的赋值 ******************"< CString c5=c2;cout<<"String c5=c2 is:"<<" ";c5.Print(;cout<cout<<"****************以下是对串的比较 ******************"< int temp=pare(c3;cout<<"以下比较 c2 与 c3"<if(temp>0cout<<"Stringc2>Stringc3"<else if(temp<0cout<<"Stringc2elsecout<<"Stringc9==Stringc4"<cout<cout<<"以下比较 c2 与随意字符串 Goodboy!"<if(pare("Goodboy!">0cout<<"Stringc2>'Goodboy!'"<else if(pare("Goodboy!"<0cout<<"Stringc2<'Goodboy!"<elsecout<<"Stringc2 =='Goodboy!'"<}。
C程序设计第1-4章习题集

习题(第1-4章)一.选择题1.以下叙述正确的是()。
A.C语言的源程序不必通过编译就可以直接运行。
B.C语言中的每条可执行语句最终都将被转换成二进制的机器指令。
C.C语言源程序经编译形成的二进制代码可以直接运行。
D.C语言中的函数不可以单独进行编译。
2.一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是()。
A.有0个或多个输入。
B.有0个或多个输出。
C.有穷性。
D.可行性。
3.以下叙述中正确的是()。
A.C语言比其它语言高级。
B.C语言可以不用编译就能被计算机识别执行。
C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式。
D.C语言出现的,具有其它语言的一切优点。
4.C语言中用于结构化程序设计的3种基本结构是()。
A.顺序结构、选择结构、循环结构B.if、switch、breakC.for、while、do-whileD.if、for、continue5.为解决某一特定问题而设计的指令序列称为()。
A.文档B. 语言C. 程序D. 系统6.用高级程序设计语言编写的程序称为()。
A.目标程序B. 可执行程序C. 源程序D. 伪代码7.能将高级语言编写的源程序转换成目标程序的是()。
A.编辑程序B. 编译程序C. 驱动程序D. 链接程序8.下列叙述中,正确一条是()。
A.计算机语言中,只有机器语言属于低级语言。
B.高级语言源程序可以被计算机直接执行。
C.C、C语言属于高级语言。
D.机器语言是所用机器无关的。
9.一个C程序的执行是从()。
A.本程序的main函数开始,到main函数结束B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一个函数开始,到本程序main函数结束10.以下叙述正确的是()。
A.在C程序中,main函数必须位于程序的最前面B.C程序的每行中只能写一条语句C.C语言本身没有输入输出语句D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误11.以下叙述不正确的是()。
c语言程序设计习题1-4章练习

int a=1,b=2,c=3,d=4,k;
k=a>b?a:c>d?c:d
4.已知:int a=5;则执行a+=a-=a*a;语句后,a的值为【6】。
5.下面程序的运行结果是x=【7】,y=【8】。
main( )
{ float x=4.9;int y;
y=(int)x;
char ch;
scanf("%c",&ch);
ch=(ch>=′A′&&ch<=′Z′)?(【1】):ch
printf("【2】\\n",ch);
2.下面程序段的执行结果是x=【3】,y=【4】。
inta=3,b=5,x,y;
x=a+1,b+6;
y=(a+1,b+6);
printf("x=%d,y=%d",x,y);
B)11.000000,12.000000,13
C)11.0000000,12,13
D)11,12.000000,13
15.执行以下程序后x的值为【】。
unsigned int x=65535;
printf("%d\\n",x);
A) 65535B)1C)有错误D)-1
二、填空题
1.下面程序段的功能是输出大写字母对应的小写字母的ASCII码,请填空。
12.执行下面程序段,给x、y赋值时,不能作为数据分隔符的是【】。
int x,y;
scanf("%d%d",&x,&y);
A)空格B)Tab键C)回车D)逗号
13.下面合法的语句是【】。
C++程序设计第一章函数编程题

6-1 工作备忘录的生成(链表) (10 分)bool s2(const Student &s1, const Student &s2) um;}6-4 二维数组(海绵城市)(7 分)scanf("%s\n",a[i].name);scanf("%lf",&a[i].price);}for(j=0;j<n;j++){if(a[j].price>a[max].price)max=j;}for(k=0;k<n;k++){if(a[k].price<a[min].price)min=k;}printf("highest price: %.1f, %s\n",a[max].price,a[max].name );printf("lowest price: %.1f, %s\n",a[min].price,a[min].name);return 0;}#include <iostream>using namespace std;struct Book{char name[50];float price;};int main(){int bookCnt;cin >> bookCnt;Book *book = new Book[bookCnt];for(int i = 0; i < bookCnt; i++){();(book[i].name, 50);cin >> book[i].price;}int maxIndex = 0, minIndex = 0;for(int i = 1; i < bookCnt; i++){if(book[i].price > book[maxIndex].price) maxIndex = i;if(book[i].price < book[minIndex].price) minIndex = i;}printf("highest price: %.1f, %s\n", book[maxIndex].price, book[maxIndex].name); printf("lowest price: %.1f, %s\n", book[minIndex].price, book[minIndex].name);}7-3 二进制数转十进制数(20 分)#include<string>#include<cmath>using namespace std;int main(){string s;cin>>s;int n,sum=0;n=();for(int i=0;i<n;i++){sum=sum+(s[i]-'0')*pow(2,(n-i-1)); }cout<<sum<<endl;}using namespace std;int main(){string s;cin >> s; //输入二进制序列,用字符串表示int weight = 1;int len = (); // len 表示二进制数的位数int sum = (len-1) - '0'; //最后一位数字int pos = len-1;while(pos > 0){pos--;weight = weight * 2;sum = sum + (pos) - '0') * weight;}cout << sum << endl;return 0;}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.什么是程序?什么是程序设计?
程序,就是一组计算机能识别和执行的指令。
根据计算机软件设计人员的需要,使计算机执行特定的操作,来满足人们的需要。
2.为什么需要计算机语言?高级语言的特点?
人和计算机交流需要一种计算机和人都能识别的语言。
高级语言很接近于人们习惯使用的自然语言和数学语言;程序中用到的语句和指令是英文
单词表示的,程序中所用的运算符和运算表达式和人恩日常所用的数学式子差不多,很容
易理解;程序运行的结果用英文和数字输出,十分方便。高级语言功能性很强,且不依赖
于具体及其,用它写出的程序对任何型号的计算机都适用(或只须作很少的修改)。
3.正确理解以下名词及其含义:
(1)源程序 目标程序 可执行程序
源程序:是指未经编译的,按照一定的程序设计语言规范书写的,人类可读的文本文件。
通常由高级语言编写。
目标程序:又称为“目的程序”,为源程序经编译可直接被计算机运行的机器码集合,在
计算机文件上以.obj作扩展名----由语言处理程序(汇编程序,编译程序,解释程序)将源
程序处理(汇编,编译,解释)成与之等价的由机器码构成的,计算机能够直接运行的程
序,该程序叫目标程序。目标代码尽管已经是机器指令,但是还不能运行,因为目标程序
还没有解决函数调用问题,需要将各个目标程序与库函数连接,才能形成完整的可执行程
序。
可执行程序:在计算机科学上,指一种内容可被电脑解释为程序的电脑文件。通常可执行
文件内,含有以二进制编码的微处理器指令,也因此可执行文件有时称为二进制档。这些
二进制微处理器指令的编码,于各种微处理器有所不同,故此可执行文件多数要分开不同
的微处理版本。一个电脑文件是否为可执行文件,主要由操作系统的传统决定。例如根据
特定的命名方法(如扩展名为exe)或文件的元数据信息(例如UNIX系统设置“可运行”
权限)。
(2)程序编辑程序编译程序连接
程序编辑:指将完成一件工作所需要的步骤,也就是算法,用计算机所能识别的语言,按照一
定的程序结构翻译出来,并可被计算机执行的编写代码的全过程.该程序编辑形式(能通过编
译、 链接生成最终程序(一般是可执行文件)的源代码文件。
程序编译:是用户使用编译程序对其个人编制的源程序进行编译的过程。
程序连接:把所有编译后得到的目标模块连接装配起来,再与函数库相连接成一个整体的
过程。
(3)程序 程序模块 程序文件
程序:一组计算机能识别和执行的指令。
程序模块(program module):即可由汇编程序、编译程序、装入程序或翻译程序作为一个整
体来处理的一级独立的、可识别的程序指令。 它是大型程序指令的一个组成部分。 在
Windows中,术语“模块”一般是指任何能被装入内存中运行的可执行代码和数据的集合。
更明确地讲,模块指的就是一个。EXE文件(又称为应用程序模块),或一个动态链接库
(DLL — Dynamic Linking Library,又被称为动态链接库模块或DLL模块),或一个设备驱动
程序,也可能是一个程序包含的能被另一个程序存取的数据资源。模块一词也被用于特指
自包含的一段程序。
程序文件:
(4)函数主函数被调用函数库函数
函数:指一段在一起的、可以做某一件事儿的程序。也叫做子程序、(OOP中)方法。
一个较大的程序一般应分为若干个程序块,每一个模块用来实现一个特定的功能。所有的
高级语言中都有子程序这个概念,用子程序实现模块的功能。在C语言中,子程序的作用
是由一个主函数和若干个函数构成。由主函数调用其他函数,其他函数也可以互相调用。
同一个函数可以被一个或多个函数调用任意多次。
在程序设计中,常将一些常用的功能模块编写成函数,放在函数库中供公共选用。要善于
利用函数,以减少重复编写程序段的工作量。
函数分为全局函数、全局静态函数;在类中还可以定义构造函数、析构函数、拷贝构造函
数、成员函数、友元函数、运算符重载函数、内联函数等。
主函数:主函数是可执行程序的入口函数。当操作系统加载可执行程序到内存中,并且为
可执行程序开辟进程空间后,系统调用的可执行程序内的第一个函数,其它各函数、方法
的调用,都从主函数开始驱动。这样整个程序的运行轨迹就像一种栈。
被调用函数:由一个函数调用另一个函数,则称第二个函数为被调用函数。
库函数(Library function):是把函数放到库里,供别人使用的一种方式。方法是把一些常
用到的函数编完放到一个文件里,供不同的人进行调用。调用的时候把它所在的文件名用
#include<>加到里面就可以了。一般是放到lib文件里的。
(5)程序调试 程序测试
程序调试:将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法
错误和逻辑错误的过程。这是保证计算机信息系统正确性的必不可少的步骤。编完计算机
程序,必须送入计算机中测试。根据测试时所发现的错误,进一步诊断,找出原因和具体
的位置进行修正。
程序测试(program testing):是指对一个完成了全部或部分功能、模块的计算机程序在正式
使用前的检测,以确保该程序能按预定的方式正确地运行。软件的正确性尚未得到根本的
解决,软件测试仍是发现软件错误和缺陷的主要手段。为了发现系统中的错误,应竭力设
计能暴露错误的测试用例。测试用例是有测试数据和预期结果构成的。一个好的测试用例
是极有可能发现至今为止尚未发现的错误的测试用例。