三、程序填空题

上传人:kms****20 文档编号:40522006 上传时间:2018-05-26 格式:DOC 页数:19 大小:51KB
返回 下载 相关 举报
三、程序填空题_第1页
第1页 / 共19页
三、程序填空题_第2页
第2页 / 共19页
三、程序填空题_第3页
第3页 / 共19页
三、程序填空题_第4页
第4页 / 共19页
三、程序填空题_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《三、程序填空题》由会员分享,可在线阅读,更多相关《三、程序填空题(19页珍藏版)》请在金锄头文库上搜索。

1、三、程序填空题三、程序填空题PART 1 程序填空题1. 以下程序按每行 5 个数的格式输出 1 至 n 范围内能被 7 或 17 整除的整数,并求出其和。如输入:50则输出:7 14 17 21 2834 35 42 49Sum=247源程序:#include void main()int i, n, ct=0, sum=0;scanf( “%d“, for ( i=1; i#define N 10int get_max_index( int a, int n )int i, k=0;for ( i=1; ivoid calc( FILE *fp, float x )int num, sco

2、re1, score2;float score3;char name20;while ( !feof(fp) ) /* 文件还有未读数据时 */num = 0;fscanf( fp, “%d%s%d%d“, if ( num 0 ) /* 学生数据有效时 */score3 = score1 * x + score2 * (1-x);/* 计算总成绩 */printf( “%3d %-7s %3d %3d %3dn“, num, name, score1,score2, _(1)_ ); /* 总成绩四舍五入为整数 */void main()FILE *fp;float x;fp = fopen

3、( “student.txt“, “r“ );if ( _(2)_ )/* 如果文件打开失败 */printf( “File Open Error!n“ );return;scanf( “%f“, calc( _(3)_ );/* 调用 calc 函数 */fclose( _(4)_ );/* 关闭文件 */4. 下面程序实现的功能是打印 n 以内的水仙花数,水仙花数是指其本身的值等于每一位数字的立方和,例如: 153 是一个水仙花数, 153=1*1*1+5*5*5+3*3*3.如输入:400则输出:1 153 370 371#include void main()int n, digit,

4、 k, m, s;scanf( “%d“, for ( k=1; _(1)_; k+ )s = 0;m = k;while ( m != 0 )digit = _(2)_;s = s + digit*digit*digit;m = m/10;if ( _(3)_ )printf( “%d “, s );5. 以下函数 int sum(int x, int num)计算数组 x 前 num 个元素之和。在主函数中,输入 10 个任意整数和下标 index1、index2的值(设 1int sum( int x, int num ) int i, s=0; for ( i=0; _(1)_; i+

5、 )s = _(2)_;return s;void main() int i, index1, index2, result;int x10;for ( i=0; ivoid main( )FILE *fp1, *fp2;int fnum, fscore1, fscore2;char fname20;int num, score1, score2;char name20;int flag;fp1 = fopen( “student.txt“, _(1)_ );fp2 = fopen( “studentC.txt“, “w“ );if ( fp1=NULL | fp2=NULL )printf(

6、 “File Open Error!n“ );return;scanf( “%d%s%d%d“, _(2)_;while ( 1 )fnum = 0;fscanf( fp1, “%d%s%d%d“, if ( fnum = 0 )break;if ( flag=1 scanf( “%d“, for ( i=0; _(1)_; i+ )_(2)_;scanf( “%d“, for( j=2; jvoid main()int a10, i, n;scanf( “%d“, for ( i=0; n0; i+ )ai = _(1)_;n /= 16;for ( i-; _(2)_; _(3)_ )pr

7、intf( “%X “, ai );9. 以下程序从文件“student.txt“读取学生的学号、姓名、平时成绩和考试成绩,再从键盘上输入一个成绩,将所有考试成绩达到或超过该成绩的学生数据写到新的文本文件“studentD.txt“。文件的最后一行为 0 表示学生数据结束。设文件 student.txt 的内容为101 Zhao95 58103 Qian75 81105 Sun 99 91107 Li 80670运行时键盘输入:80则生成新文件 studentD.txt 的内容为:103 Qian 75 81105 Sun 99 910例示说明:student.txt 中考试成绩在 80 分以

8、上的 Qian 与 Sun 信息写到 studentD.txt源程序:#include void select( FILE *fp1, FILE *fp2, int x )int num, score1, score2;char name20;while ( 1 )num = 0;fscanf( fp1, “%d%s%d%d“, if ( num = 0 )_(1)_;if ( _(2)_ )fprintf( fp2, “%3d %-7s %3d %3dn“, num, name, score1, score2 );fprintf( fp2, “0“ );void main()FILE *fp

9、1, *fp2;int x;fp1 = fopen( “student.txt“, “r“ );fp2 = fopen( “studentD.txt“, _(3)_ );if ( fp1=NULL | fp2=NULL ) /* 文件打开失败 */printf( “File Open Error!n“ );return;scanf( “%d“, select( _(4)_ );fclose( fp1 );fclose( fp2 );PART2 程序调试题调试要求:下列各程序有 3 处错误,请按题中的功能要求,在不改变程序结构(不增加、删除语句,不调整语句顺序)的情况下调试并修改该程序(在所修改

10、语句后加/*/字样的注释),使其运行能得到正确的结果。1. 程序调试题 1功能说明:程序计算并输出 1! + 2! + . + n!(1 至 n 阶乘的累加和) ,其中函数 fact(n)计算 n!的值,返回类型为 double。如输入:10则输出:1!+2!+.+10!=4037913原程序:#include double fact( int n )int i;double result = 1;for ( i=1; ivoid main()int i, n=0;char str80;gets(str80);for ( i=0; stri!=0; i+ )if ( stri=0 scanf(

11、 “%d“, printf( “%d=1“, n );for ( i = 2; i void str_to_upper( char *s )while ( *s = 0 )if ( *s=a | *sint sumx( int a0, d, n )int i, k, s=0;k = a0;for ( i=0; iint length( char *p )char *q, *r;for ( q=p; *q!=0 | *q!=A; q+ );for ( r=q; *r!=0 r+ );return r-q;void main()char str81;int n;gets( str0 );n = l

12、ength( str );printf( “Length=%cn“, n );PART 3 编程题1. 编程求下列序列的累加和,累加 n 项,正整数 n 从键盘输入。s=2/1+3/2+5/3+8/5+13/8+21/13+.2. 编写程序,求出一个给定整数的所有质因子。输出格式如72=2*2*2*2*3*3。3. 编写判断素数的函数。调用该函数,计算并输出区间n,m内所有的素数及素数的和。正整数 n 和 m 从键盘输入。4. 寻找满足下列条件的 4 位整数:(1)无重复数字;(2)千位数字非 0;(3)能整除它的各位数字和的平方。求这样的数中最小一个数是多大?最大一个数是多大?5. 将一个正

13、整数 n(长整型)输出成千分位形式,即从个位数起,每三位之间加一个逗号,例如,将 7654321 输出成 7,654,321。6. 输入 10 个数,将 10 个整数按升序排列输出,并且奇数在前,偶数在后。如果输入的 10 个数是 10 9 8 7 6 5 4 3 2 1,则输出 1 3 5 7 9 2 4 6 8 10。7. 输入一个日期(年、月、日) ,计算从当年 1 月 1 日起到这一天的天数。8. 一个整数等于该数所有因子之和,则称该数是一个完数。例如6=1+2+3,28=1+2+4+7+14,6 和 28 都是完数,输出三位数中所有的完数。9. 写一函数,它有三个字符串参数,第一个是

14、目的串,第二个是源串,第三个是字符表,其功能是把源串中所有由字符表指出的字符复制到目的串中,函数值是得到的目的串的长度。例如,如果源串为“ABCDAEFAC“,字符表为“ABC“,结果目的串为“ABCAAC“,函数值为 6。10. 根据要求显示不同特征的图形。从键盘读入一个 19 的数字字符(或一个 AI 的字母) ,而后显示出具有如下特征的图形。例如,当输入数字字符 4 时,显示图形如下:1121123211234321当输入字母 D 时,显示图形如下:AABAABCBAABCDCBA11. 编写程序实现,已知今天星期几,求 n 天后星期几。输入的信息是数值型,输出的结果要翻译成英语星期的单

15、词。12. 开灯问题:有从 1n 依次编号的 n 个同学和 n 盏灯。1 号同学将所有的灯都关掉;2 号同学将编号为 2 的倍数的灯都打开;3 号同学则将编号为 3 的倍数的灯作相反处理(该号灯如打开的,则关掉;如关闭的,则打开) ;以后的同学都将自己编号的倍数的灯,作相反处理。问经 n 个同学操作后,哪些灯是打开的?13. 三位老师对某次数学竞赛进行了预测。他们的预测如下:甲说:学生 A 得第一名,学生 B 得第三名。乙说:学生 C 得第一名,学生 D 得第四名。丙说:学生 D 得第二名,学生 A 得第三名。竞赛结果表明,他们都说对了一半,说错了一半,并且无并列名次,试编写程序输出 A、B、C、D 各自的名次。14. 编程验证:任一个充分大的偶数(4) ,总可以分解为两个素数之和。15. 青年歌手参加歌曲大奖赛,有 10 个评委对她进行打分,试编程求这位选手的平均得分(去掉一

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号