linux系统下用C语言实现小学算术运算测试程序

合集下载

总结在Linux终端中进行算术运算的6种方式

总结在Linux终端中进行算术运算的6种方式
2、 使 用 let命 令
使用let命令后,可以直接跟表达式,不用加双括号。
let a=1+2 echo $a let b=$a*3 echo $b let c=$b/4 echo $c
3、 使 用 expr命 令
类似于let命令,expr命令除了计算表达式,还将提供的表达式的值打印到标准输出。以及使用expr进行比较,增加变量值和查找字符串长度。
-l 用于精确到小数(默认小数点也非常多,这里只介绍其用于算数运算。
awk 'BEGIN { a = 10; b = 3; print "(a + b) = ", (a + b) }' awk 'BEGIN { a = 10; b = 3; print "(a - b) = ", (a - b) }' awk 'BEGIN { a = 10; b = 3; print "(a * b) = ", (a * b) }' awk 'BEGIN { a = 10; b = 3; print "(a / b) = ", (a / b) }' awk 'BEGIN { a = 10; b = 3; print "(a % b) = ", (a % b) }'
expr 3 + 5 expr 15 % 3 expr 5 \* 3 expr 5 - 3 expr 20 / 4 NUM=$(( 1 + 2)) echo $NUM NUM=$(expr $NUM + 2) echo $NUM
需要注意的是使用expr命令时,数字与运算符之间要用空格隔开。并且”*“需用转义符“\”标注。 expr 还可以用来比较大小,当表达式求值为false时,expr将打印值0,否则打印1。

linux系统下用C语言实现小学算术运算测试程序

linux系统下用C语言实现小学算术运算测试程序

在linux系统下用C语言实现小学算术运算测试程序XX大学软件学院小学算术运算测试程序1、题目与要求我计划编写的题目是:小学算术运算测试程序。

制作一个可供小学数学运算的程序:10 以内加减法,能根据输入题数出题,判断题是否正确,最后计算分数。

并用 make 工程管理器编译,编写 makefile 文件。

2、内容及主要任务小学算术运算测试程序:要求完成 10 以内的加减运算。

能根据用户输入的想要练习的题目数自行出题。

用户输入答案后可以判断正误,并能给出算对及算错的题目数,最后计算出分数。

同时,对于用户算错的题目会发出报警声,提示用户注意,同时给出正确结果。

做完一次测试后用户可决定是否继续进行下一次测试。

3、题目设计意义通过本课题的毕业设计,熟悉了关于 linux 下 C 语言的系统软件程序设计,可以比较深入的了解和掌握 WINSOCK 控件基本属性、方法和事件,理解网络聊天通信的概念,输控制协议(TCP)进行数据交流,初步掌握网络聊天通信程序的设计方法。

并能巩固和扩展大学期间的学习内容,进行项目的设计开发训练,更好的适应社会的需求。

随着计算机网络技术的快速发展,人们的交流方式越来越多,传统的通信方式在速度和可靠性方面已经很难满足人们的需要,即时通信系统已成为人们的新宠。

同时,即时通信系统对现代企业也有着重大意义,它为诸企业开拓了网络应用的新领域。

自从它诞生以来,以实时交互、资费低廉等优点,受到广大个人用户的喜爱,已经成为网络生活中不可或缺的一部分。

本着学以致用的原则,本人开发了这套多点聊天系统,以满足网络用户的通讯需求。

该系统具有操作简单、界面友好、功能专一等特点。

本报告就系统的开发过程做了详细的介绍,并对系统的原理、总体设计等方面做了深入细致的讨论。

4、主要内容本程序共分为五个模块:出题模块、答题模块、检查计分模块、评分模块和评价模块;下面分别对这五个模块的算法做一下介绍。

(1)出题模块:一个答题系统自然而然首先就是要有题目且能够根据条件出题;在本模块中,首先设了一个含有 15 个指针的指针数组,指针数组里的每个指针都指向了相应题号的 1 选择题,这样就实现了对题目的储存;然后用 scanf 函数来实现从键盘上输入题号,用 if 语句控制输题的范围;题号不在 1--15 的范围内就提示选题出错;在输入题号的过程中输入相同题号是在所难免的;但是在答题系统中输入相同题号显然没有意义,所以另外设了一个静态一维数组来储存已输过的题号;且数组的第一个元素初始化为 0,然后每输入一个题号就赋给这个数组,同时用 for 语句来使当前的题号一一与储存在一维数组中已输过的题号进行比较,如题号有相同,就提示重答,重答的功能是通过对出题模块函数的递归调用来实现的,如题号没有相同,就通过输入的题号借助指针数组里的指针找到与题号对应的选择题, puts 函数来实现对选择题的输出;用最后用 return 语句将其他模块返回来每道题的小分数返回到主函数中(在主函数中调用出题模块函数)。

实验1:Linux下C语言编程实践

实验1:Linux下C语言编程实践

实验1 linux c语言编程实践一、实验目的1.掌握Linux环境下C程序的编辑、编译、运行等操作;2.掌握多文件的编译及连接;3.初步掌握gdb调试方法;二、实验任务与要求1.在Linux环境下C程序的编辑、编译与运行;2.多文件的编译及连接;3.应用gdb调试程序;三、实验工具与准备计算机PC机,Linux Ubuntu操作系统四、实验步骤与操作指导1.调试下列程序。

程序通过创建一个小型函数库,它包含两个函数,然后在一个示例程序中调用其中一个函数。

这两个函数分别是pro1和pro2。

按下面步骤生成函数库及测试函数库。

步骤1 为两个函数分别创建各自的源文件(将它们分别命名为pro1.c和pro2.c)。

[root@localhost root]# vi pro1.c#include <sdtio.h>void pro1(int arg){printf(“hello:%d\n”,arg) ;}[root@localhost root]# vi pro2.c#include <sdtio.h>void pro2(char *arg){printf(“您好:%s\n”,arg) ;}步骤2 分别编译这两个文件,生成要包含在库文件中的目标文件。

这通过调用带有-c 选项的gcc编译器来实现,-c选项的作用是阻止编译器创建一个完整的程序,gcc将把源程序编译成目标程序,文件名为以.o结尾。

如果此时试图创建一个完整的程序将不会成功,因为还未定义main函数。

[root@localhost root]# gcc -c pro1.c pro2.c[root@localhost root]# ls *.opro1.o pro2.o步骤3 现在编写一个调用pro2函数的程序。

首先,为库文件创建一个头文件lib.h。

这个头文件将声明库文件中的函数,它应该被所有希望使用库文件的应用程序所包含。

小学算术运算C语言课程设计报告

小学算术运算C语言课程设计报告

C语言课程设计报告题目:小学算术运算测试设计者:XXXX专业班级:13级通信2班学号:XXXX指导教师: XXXX2014年6 月14 日河南理工大学计算机学院目录1 题目与要求………………………………………………1.1 问题提出………………………………………………………1.2 本系统涉及的知识点…………………………………………1.3 功能要求………………………………………………………2 功能设计…………………………………………………2.1 算法设计………………………………………………………2.2 部分模块流程图………………………………………………3 程序代码设计……………………………………………………4 C程序设计总结……………………………………………………5 结束语………………………………………………………………参考文献………………………………………………………………附录……………………………………………………………………1 题目与要求1.1 问题提出本人计划制作一个可供小学数学运算程序:10以内加减法,能根据输入题数出题,判断做题是否正确。

正确的给鼓励,错误的发出警报,并给出正确答案,最后计算分数。

1.2 本系统涉及的知识点循环、函数、结构1.3 功能要求1、能根据输入要测试的题目数,输出相应数目的试题。

2、能判断正误,错误的报警,并给出正确答案。

3、能计算出得分。

2 功能设计2.1 算法设计1、本程序实现的功能要求:利用for循环和switch完成的主菜单。

2、进入第一步出现如下信息:用户输入要练习的题数。

第二步:输出算术式子用户输入结果进行测试。

第三步:输出测试结果屏幕显示出本次测试的基本情况。

2.2 部分模块流程图3 程序代码设计输入模块1)函数原形:switch(op)2)功能:利用结构体完成10以内的加减法的出题。

3)变量及类型:int a:整形变量,存放产生10以内的随机数。

int number:整形变量,用来统计错误的题数。

用c语言编写加减乘除程序

用c语言编写加减乘除程序

用c语言编写加减乘除程序加减乘除是数学上最基本的四则运算,而用计算机语言实现这些运算则是计算机科学最基本的知识之一。

在c语言中,实现四则运算需要使用基本的算术运算符,并需要注意数据类型的匹配。

加法运算是最简单的四则运算之一,使用c语言执行加法运算的方法是,用“+”符号分隔两个运算数并用“=”符号赋值给结果变量。

例如,将两个整数相加并输出结果,代码如下:```#include <stdio.h>int main(){int a = 5, b = 7, sum;sum = a + b;printf("The sum of %d and %d is %d", a, b, sum);}```这段代码将输出结果:“The sum of 5 and 7 is 12”,其中sum 变量存储了a和b两个变量的和。

减法运算的实现方法与加法运算类似,只需将运算符改为“-”即可,例如:```#include <stdio.h>int main(){int a = 5, b = 7, diff;diff = a - b;printf("The difference between %d and %d is %d", a, b, diff);}```这段代码将输出结果:“The difference between 5 and 7 is -2”,其中diff变量存储了a和b两个变量的差。

乘法运算可以使用“*”符号来实现,例如:```#include <stdio.h>int main(){int a = 5, b = 7, prod;prod = a * b;printf("The product of %d and %d is %d", a, b, prod);return 0;```这段代码将输出结果:“The product of 5 and 7 is 35”,其中prod变量存储了a和b两个变量的积。

C课程设计:小学生测验程序

C课程设计:小学生测验程序

C课程设计:小学生测验程序面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。

功能要求:(1)电脑随机出10道题,每题10分,程序结束时显示学生得分;(2)确保算式没有超出1~2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的;(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;(4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;(5)总成绩90以上显示“SMART”,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRY AGAIN”。

题目3 运动会比赛计分系统要求:初始化输入:N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数各项目名次取法有如下几种:取前5名:第一名得分7分,第二名得分5,第三名得分3,第四名得分2,第五名得分1;取前3名:第一名得分5,第二名得分3,第三名得分2;功能要求:(1)系统以菜单方式工作(2)由程序提醒用户填写比赛结果,输入各项目获奖运动员信息。

(3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩(4)查看参赛学校信息和比赛项目信息等。

#include<stdio.h>#include<time.h>#include<stdlib.h>main(){int i,j,a,b,c,score[10],trueV alue,sum=0;srand((unsigned)time(NULL));for(i=0;i<10;i++){for(a=rand()%51,b=rand()%51;a+b>50 || a+b<0 || a-b>50 || a-b<0; a=rand()%51,b=rand()%51)/*表示运算数的范围不超过50*/c=rand()%3;for(j=0;j<3;j++){ /*表示输入答案的3次机会*/if(c==1){printf("%d:%d+%d=",i+1,a,b);trueValue=a+b;scanf("%d",&score[i]);if(score[i]!=trueValue){printf("答案错误,请重新输入.\n");score[i]=0;}else{if(j==0){score[i]=10;}else if(j==1){score[i]=7;}else{score[i]=5;}break;}}else{printf("%d:%d-%d=",i+1,a,b);trueValue=a-b;scanf("%d",&score[i]);if(score[i]!=trueValue){printf("答案错误,请重新输入.\n");score[i]=0;}else{if(j==0){score[i]=10;}else if(j==1){score[i]=7;}else{score[i]=5;}break;}}}if(score[i]==0){printf("正确答案是:%d\n",trueValue);}sum=sum+score[i];}printf("你的成绩是:%d\n",sum); if(sum>90){printf("SMART.\n");}else if(sum>=80){printf("GOOD.\n");}else if(sum>=70){printf("OK.\n");}else if(sum>=60){printf("PASS.\n");}else{printf("TRY AGAIN\n");}return 0;}。

C语言课程设计-小学生数学测试

C语言课程设计-小学生数学测试

C语言课程设计报告《c语言课程设计报告》学院:物理与电子信息学院年级专业:09级电子信息工程2班学号:姓名:安徽师范大学物理与电子信息学院College of Physics and Electronic Information, Anhui Normal University同组人员:指导老师:完成日期:2010年6月21日目录一、所选课题二、设计要求三、程序具体分工四、课题分析与设计五、程序介绍六、源程序代码七、程序调试八、流程图九、实验总结2C语言课程设计报告安徽师范大学物理与电子信息学院College of Physics and Electronic Information, Anhui Normal University 3十、参考文献一、所选课题小学生数学测试二、设计要求1、可选择题型(加,减,乘,除);2、两个数随机产生,若选择加减运算,则产生两位数,且被减数大于减数,若选择乘法运算,则产生一位数,若选择除法运算则被除数能被整除,且除数不能为零。

3、每次在输入答案后应判断对错,并给出是否继续测试的提示,若答案错误,应给出正确答案;4、最后给出评分。

三、程序具体分工乘除部分由我完成,界面和加减测试部分由徐磊完成。

四、课题分析与设计本程序是非数值计算型算法设计,我们设计出了小学生数学测试软件的基本功能,并设计了简单的界面。

本程序主要考察针对小学生该怎样设计程序:例如小学生只进行两位数之间的加减法,只进行一位数与两位数之间的乘法,除法只能是整除等。

课题要求我们设计个可以进行加、减、乘法的程序,但我们设计的这个小学生数学测试软件也不仅实现了加、减、乘法的测试,还实现了除法的测试。

五、程序介绍程序应包括<stdio.h>和<stdlib.h>两个头文件,其中存放库函数,而产生随机数的函数则存放在头文件中。

另外程序有五个函数,分别为void menu(); /*主菜单函数*/ void add() ;/*加法函数*/ void sub();/*减法函数*/ void mul();/*乘法函数*/ void div1();/*除法函数*/,还有产生随机数函数在程序中直接调用。

C语言课程设计-小学生算术四则运算测试系统

C语言课程设计-小学生算术四则运算测试系统

武汉理工大学华夏学院课程设计报告书课程名称: C语言程序设计题目:小学生算术四则运算测试系统系名:信息工程系专业班级:计算机1102班*名:**学号:***********指导教师:2011年6月24 日课程设计任务书学生姓名:徐立专业班级:计算机1102指导教师:工作单位:信息工程系设计题目:小学生算术四则运算测试系统初始条件:选择结构(if语句),变量的定义,输入.输出函数,产生随机函数,goto语句要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)主要任务:1.为小学生出题(分别进行+、-、*、÷等不同运算)2.学生做题后,进行评阅;3.学生每做一题后,评阅时给出“答题正确,很好”或“答题错误,重做”等字样;4.加、减、乘、除运算功能可以自由选择实现;5.运算数值可以控制在两位(或三位)数的四则运算范围内。

设计报告撰写格式要求:论文需要有以下必须章节:第一章需求分析(包含系统主要完成具体任务、系统模块设计)第二章系统实现(包含开发环境、模块流程图)第三章系统调试与测试第四章结束语(包含总结、心得)附录(源代码)标题编号要统一,例如:第三章编目为:3、3.1 、3.1.1 最多使用三级标题项目编号统一为先是1 然后是(1)再其次是①。

章节一级标题使用2号、黑体加粗、居中对齐,二级标题使用小2,黑体,三级标题使用小3,黑体,正文统一使用小4,宋体。

论文必须要有目录论文装订顺序:封面->任务书->正文->封底时间安排:6月20日上午布置题目、宣讲课程设计要求6月20日下午学生选题、查阅资料和参考资料6月21日---6月23日上午完成课程设计6月23日下午验收学生程序6月24日验收学生报告指导教师签字:年月日系主任签字:年月日目录1.需求分析 (4)1.1系统主要完成具体任务 (4)1.2系统模块设计 (4)1.3模块具体说明 (4)2.系统实现 (5)2.1开发环境 (5)2.2模块流程图 (5)3.系统调试与测试 (6)3.1启用界面 (6)3.2加法界面 (6)3.3减法界面 (7)3.4乘法界面 (7)3.5除法界面 (8)3.6推出界面 (8)4.结束语 (9)5.总结 (9)附件:主要源程序代码 (9)1.需求分析1.1系统主要完成具体任务编写小学算术运算测试系统,要求完成两位数的加,减,乘,除四则预算。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在linux系统下用C语言实现小学算术运算测试程序XX大学软件学院小学算术运算测试程序1、题目与要求我计划编写的题目是:小学算术运算测试程序。

制作一个可供小学数学运算的程序:10 以内加减法,能根据输入题数出题,判断题是否正确,最后计算分数。

并用 make 工程管理器编译,编写 makefile 文件。

2、内容及主要任务小学算术运算测试程序:要求完成 10 以内的加减运算。

能根据用户输入的想要练习的题目数自行出题。

用户输入答案后可以判断正误,并能给出算对及算错的题目数,最后计算出分数。

同时,对于用户算错的题目会发出报警声,提示用户注意,同时给出正确结果。

做完一次测试后用户可决定是否继续进行下一次测试。

3、题目设计意义通过本课题的毕业设计,熟悉了关于 linux 下 C 语言的系统软件程序设计,可以比较深入的了解和掌握 WINSOCK 控件基本属性、方法和事件,理解网络聊天通信的概念,输控制协议(TCP)进行数据交流,初步掌握网络聊天通信程序的设计方法。

并能巩固和扩展大学期间的学习内容,进行项目的设计开发训练,更好的适应社会的需求。

随着计算机网络技术的快速发展,人们的交流方式越来越多,传统的通信方式在速度和可靠性方面已经很难满足人们的需要,即时通信系统已成为人们的新宠。

同时,即时通信系统对现代企业也有着重大意义,它为诸企业开拓了网络应用的新领域。

自从它诞生以来,以实时交互、资费低廉等优点,受到广大个人用户的喜爱,已经成为网络生活中不可或缺的一部分。

本着学以致用的原则,本人开发了这套多点聊天系统,以满足网络用户的通讯需求。

该系统具有操作简单、界面友好、功能专一等特点。

本报告就系统的开发过程做了详细的介绍,并对系统的原理、总体设计等方面做了深入细致的讨论。

4、主要内容本程序共分为五个模块:出题模块、答题模块、检查计分模块、评分模块和评价模块;下面分别对这五个模块的算法做一下介绍。

(1)出题模块:一个答题系统自然而然首先就是要有题目且能够根据条件出题;在本模块中,首先设了一个含有 15 个指针的指针数组,指针数组里的每个指针都指向了相应题号的 1 选择题,这样就实现了对题目的储存;然后用 scanf 函数来实现从键盘上输入题号,用 if 语句控制输题的范围;题号不在 1--15 的范围内就提示选题出错;在输入题号的过程中输入相同题号是在所难免的;但是在答题系统中输入相同题号显然没有意义,所以另外设了一个静态一维数组来储存已输过的题号;且数组的第一个元素初始化为 0,然后每输入一个题号就赋给这个数组,同时用 for 语句来使当前的题号一一与储存在一维数组中已输过的题号进行比较,如题号有相同,就提示重答,重答的功能是通过对出题模块函数的递归调用来实现的,如题号没有相同,就通过输入的题号借助指针数组里的指针找到与题号对应的选择题, puts 函数来实现对选择题的输出;用最后用 return 语句将其他模块返回来每道题的小分数返回到主函数中(在主函数中调用出题模块函数)。

(2)答题模块:出完题后自然是从键盘上输入答案了,在本模块中,提示输入答案后,用scanf 函数来实现使从键盘上输入的一个答案选项(A、B、C、D) 赋给一个用来记录答案的字符变量;用 return 语句将这个变量返回到出题模块中。

(3)检查计分模块:输入答案选项后,就要判断答案的正确性和计分了,在本模块中,要设一个字符数组来储存每道题的正确答案; if 语句来控制在答题模块中输入的答案是否为用 A、B、C、D 中的某一个;若不是,就提示选的答案不在答案范围内,若是,根据在出题模块中输的题号使在答题模块中输入的答案选项与储存正确答案数组中的相应答案选项相比较,若相同,就提示答案正确,与此同时用变量记录下这道题所得的小分,否则,就提示答案错误并给出当前题目的正确答案,不计分; return 语句将得分返回到出题系统中(在出题模用块函数中调用检查计分模块函数)。

(4)评分模块:做完题后,就要根据做题的对错个数来评分;在本模块中,首先就要提示题目全做完, switch 语句根据总小分来选择性地选出 11 个不同的分数中的一个分数,用并且打印出该分数 (在主函数中调用评分模块函数) 。

(5)评价模块:最后一步就是要根据不同的总得分段来给出不同的评语,在本模块中用 if 语句根据不同的总分数段来打印出不同的评语(在主函数中调用评价模块函数) 。

主函数将这五个模块直接地或间接地联系在一起,使它们构成本程序,现在就来介绍主函数的算法。

主函数对出题模块函数、评价模块函数进行了调用;首先提示开始答题,为了要答 10 次题,就要设一个 for 语句来控制对出题模块函数调用的次数,即需要答一定次数的题,与此同时用一个变量来累加由出题模块函数返回来每道题的小分数;接下来分别对评分模块函数和评价模块函数进行调用。

以上就是对本程序算法的介绍。

5、程序结构及主要过程(1)本程序共包含了顺序结构、选择结构、循环结构三种在 C 程序中的主要结构,其中穿插了数组(一维数组、字符数组)、指针 (指针数组)、函数调用(递归调用)等知识,该程序覆盖了本学期所学的除结构体外的大部分知识。

(2)本程序结构和过程思路如下:为了要答题,首先要有题目,设一个指针数组来实现;把相应的题目调出,应用指针的功能实现;调出题目后,就要给用户答题了,用一个输入函数实现;再经过系统的判断,用一个字符数组储存正确答案结合判断语句实现;最后累加计分,用循环结构实现。

(3)总之,该程序的总体结构和过程很好的体现了现在所提倡的对一个程序结构模块化的思想。

6、程序模块功能说明本程序一共有五个模块,它们分别是:出题模块(question_out()),答题模块 (answer()),检查计分模块(check()),评分模块(count()),评价模块(assessment()),现在就来分别介绍这五个模块的功能。

(1)出题模块(question_out()):这一模块主要负责对题目的储存和调出这两个功能。

(2)答题模块(answer()):这一模块主要负责将用户端的答案通过键盘输入到系统。

(3)检查计分模块(check()):这一模块主要负责检查判断用户所提供的答案是否正确并根据它来记录每题所的总分。

(4)评分模块(count()):这一模块主要负责统计总得分并打印。

(5)评价模块(assessment()) :这一模块主要负责根据给出的总得分打印相应的评语。

总之这五个模块都有着各自的功能且互相联系,五者在程序中缺一不可。

7、makefile 介绍(1)Makefile 文件介绍 Makefile 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile 定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile 就像一个Shell 脚本一样,其中也可以执行操作系统的命令。

(2)makefile 主要功能 Make 工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间的相互关系并自动维护编译工作。

而makefile文件需要按照某种语法进行编写,文件中需要说明如何编译各个源文件并连接生成可执行文件,并要求定义源文件之间的依赖关系。

makefile 文件是许多编译器--包括 Windows NT下的编译器--维护编译信息的常用方法,只是在集成开发环境中,用户通过友好的界面修改makefil 文件而已。

(3)自动化编译 Makefile 带来的好处就是——“自动化编译” ,一旦写好,只需要一个make 命令,整个工程完全自动编译,极大的提高了软件开发的效率。

make 是一个命令工具,是一个解释 makefile 中指令的命令工具,一般来说,大多数的IDE 都有这个命令,比如:Delphi的make,Visual C++的 nmake,Linux下GNU 的make。

可见,makefile 都成为了一种在工程方面的编译方法。

8、makefile 规则makefile 中的规则是这样的:TARGET … : DEPENDENCIES … COMMAND … 目标(TARGET)程序产生的文件,如可执行文件和目标文件;目标也可以是要执行的动作,如“clean” 。

依赖(DEPENDENCIES)是用来产生目标的输入文件,一个目标通常依赖于多个文件。

命令(COMMAND)是 make 执行的动作,一个可以有多个命令,每个占一行。

注意:每个命令行的起始字符必须为 TAB 字符!有依赖关系规则中的命令通常在依赖文件变化时负责产生 target 文件,make 执行这些命令更新或产生target。

规则可以没有依赖关系,如包含target “clean”的规则。

规则解释如何和何时重做该规则中的文件,make 根据依赖关系执行产生或更新目标;规则也说明如何和何时执行动作。

有的规则看起来很复杂,但都符合上述模式。

makefile 中的规则描述如何生成特定的文件,即规则的目标。

规则列出了目标的依赖文件,指定生成或更新目标的命令。

规则的次序是不重要的,除非是确定缺省目标:缺省目标是第一个 makefile 中的第一个规则;如果第一个规则有多个目标,第一个目标是缺省的。

有两个例外:以’.’开头的目标不是缺省目标;模式规则对缺省目标没有影响。

通常我们所写的地一个规则是编译整个或 makefile 中指定的所有程序。

9、Makefile 文件main:main.o input.o chuti.ogcc main.o input.o chuti.o -o mainmain.o:main.c myhead.hgcc -c main.cinput.o:main.cgcc -c input.cchuti.o:main.cgcc -c chuti.c10、源程序#include <stdio.h>#include <math.h>void function( ){int index,itest_total,N=200;intiflag,num1,num2,itotal,iarrsum[200],iarranswer[200],iarrop[4];itotal=0;printf("请输入题数:\n");scanf("%d",&itest_total);for(index=0;index<itest_total;index++){iflag=rand()%4+1;switch(iflag){case 1:num1=rand()%10;num2=rand()%10;iarrsum[index]=num1+num2;printf("%d+%d=\n",num1,num2);break;case 2:num1=rand()%10;num2=rand()%10;iarrsum[index]=num1-num2;printf("%d-%d=\n",num1,num2);break;case 3:num1=rand()%10;num2=rand()%10;iarrsum[index]=num1*num2;printf("%d*%d=\n",num1,num2);break;case 4:num1=rand()%10;num2=rand()%10;4 iarrsum[index]=num1/num2;printf("%d/%d=\n",num1,num2);break;default:break;}}printf("依次输入每题的答案:\n");for(index=0;index<itest_total;index++){scanf("%d",&iarranswer[index]);getchar();if(iarranswer[index]==iarrsum[index])itotal++;}}printf("正确率:%f%%\n",100.0*((itotal*1.0)/itest_total));}int main(){char flag; //开始有一轮测试,以后根据用户的输入开始新一轮测试或结束测试;do{function();printf("请输入'Y'表示开始新一轮测试,其他字母表示结束测试:\n");scanf("%c",&flag);}while(flag!= 'Y');return 0; }11、结果分析这是一个小学数学运算测试程序,要求完成 10 以内的加减运算。

相关文档
最新文档