C上机试卷第二套.doc_第1页
C上机试卷第二套.doc_第2页
C上机试卷第二套.doc_第3页
C上机试卷第二套.doc_第4页
C上机试卷第二套.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二套一、 程序填空(每空6分,共30分)用全局变量编程模拟显示一个数字式时钟,然后上机验证。请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。注意:不得增行或删行,也不得更改程序的结构!#include int hour, minute, second; /* 定义全局变量 */void update()second+;if (second = 60) ;minute+;if ( )minute = 0;hour+;if (hour = 24)hour = 0 ;void display()printf( r, hour, minute, second);void delay()int t;for (t=0; t100000000; t+);/* 用循环体为空语句的循环实现延时 */void main()int i;hour = minute = second = 0;for(i=0; i1000000; i+) /* 利用循环结构,控制时钟运行的时间 */update(); /* 更新时、分、秒显示值 */display(); /* 显示时分秒 */delay(); /* 模拟延迟时间为1秒 */二、 程序改错题:(每处10分,共30分)下列给定程序中函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。例如,若num1和num2分别为49和21,则输出的最大公约数为7;若num1和num2分别为27和81,则输出的最大公约数为27。请改正程序中的错误,使它能得出正确结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构。#include int fun(int a,int b) int r,t; if(ab) /*found*/ t=a; b=a; a=t; /*found*/r=a/b; while(r!=0) a=b; b=r; r=a%b; /*found*/ return(a);void main() int num1, num2,a; printf(Input num1 num2: ); scanf(%d%d,&num1,&num2); printf(num1= %d num2= %dnn,num1,num2); a=fun(num1,num2); printf(The maximun common divisor is %dnn,a);三、编写计算最大公约数的函数Ged(),在主函数中调用该函数计算并输出从键盘任意输入的两整数的最大公约数。(40分)第二套参考答案一、 程序填空(每空6分,共30分)用全局变量编程模拟显示一个数字式时钟,然后上机验证。请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。注意:不得增行或删行,也不得更改程序的结构!#include int hour, minute, second; /* 定义全局变量 */void update()second+;if (second = 60)second = 0; minute+;if (minute = 60)minute = 0;hour+;if (hour = 24)hour = 0; void display()printf(%2d:%2d:%2dr, hour, minute, second); void delay()int t;for (t=0; t100000000; t+);/* 用循环体为空语句的循环实现延时 */void main()int i;hour = minute = second = 0; for(i=0; i1000000; i+) /* 利用循环结构,控制时钟运行的时间 */update(); /* 更新时、分、秒显示值 */display(); /* 显示时分秒 */delay(); /* 模拟延迟时间为1秒 */二、程序改错题:(每处10分,共30分)下列给定程序中函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。例如,若num1和num2分别为49和21,则输出的最大公约数为7;若num1和num2分别为27和81,则输出的最大公约数为27。请改正程序中的错误,使它能得出正确结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构。错误:#include int fun(int a,int b) int r,t; if(ab) /*found*/ t=a; b=a; a=t; /*found*/r=a/b; while(r!=0) a=b; b=r; r=a%b; /*found*/ return(a);void main() int num1, num2,a; printf(Input num1 num2: ); scanf(%d%d,&num1,&num2); printf(num1= %d num2= %dnn,num1,num2); a=fun(num1,num2); printf(The maximun common divisor is %dnn,a);正确:#include int fun(int a,int b) int r,t; if(ab) /*found*/ t=a; a=b; b=t; /*found*/r=a%b; while(r!=0) a=b; b=r; r=a%b; /*found*/ return(b);void main() int num1, num2,a; printf(Input num1 num2: ); scanf(%d%d,&num1,&num2); printf(num1= %d num2= %dnn,num1,num2); a=fun(num1,num2); printf(The maximun common divisor is %dnn,a);三、编写计算最大公约数的函数Ged(),在主函数中调用该函数计算并输出从键盘任意输入的两整数的最大公约数。(40分)穷举法:#include int Gcd(int a, int b);int main()int a, b, c;printf(Input a,b:);scanf(%d,%d, &a, &b);c = Gcd(a,b);if (c != -1)printf(Greatest Common Divisor of %d and %d is %dn, a, b, c);elseprintf(Input number should be positive!n);return 0;/* 函数功能:计算a和b的最大公约数,输入负数时返回-1 */int Gcd(int a, int b)int i, t;if (a = 0 | b = 0)return -1;t = a 0; i-)if (a % i = 0 & b % i = 0) return i;return 1;辗转相除法:#include int Gcd(int a, int b);int main()int a, b, c;printf(Input a,b:);scanf(%d,%d, &a, &b);c = Gcd(a,b);if (c != -1)printf(Greatest Common Divisor of %d and %d is %dn, a, b, c);elseprintf(Input number sh

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论