三程序填空题.docx

上传人:b****2 文档编号:2469211 上传时间:2022-10-29 格式:DOCX 页数:17 大小:21.32KB
下载 相关 举报
三程序填空题.docx_第1页
第1页 / 共17页
三程序填空题.docx_第2页
第2页 / 共17页
三程序填空题.docx_第3页
第3页 / 共17页
三程序填空题.docx_第4页
第4页 / 共17页
三程序填空题.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

三程序填空题.docx

《三程序填空题.docx》由会员分享,可在线阅读,更多相关《三程序填空题.docx(17页珍藏版)》请在冰豆网上搜索。

三程序填空题.docx

三程序填空题

PART1程序填空题

1.以下程序按每行5个数的格式输出1至n范围内能被7或17整除的整数,并求出其和。

如输入:

50

则输出:

714172128

34354249

Sum=247

源程序:

#include

voidmain()

{

inti,n,ct=0,sum=0;

scanf("%d",&n);

for(i=1;i<=n;i++)

if(____

(1)_____)

{

printf("%d\t",i);

_____

(2)_______;

ct++;

if(___(3)______)

printf("\n");

}

printf("\nSum=%d\n",sum);

}

2.以下程序输入10个整数到a数组,找到并输出其中最大的整数及其下标。

如输入:

80290150520330-160-9902009

则输出:

a[3]=520

源程序:

#include

#defineN10

intget_max_index(inta[],intn)

{

inti,k=0;

for(i=1;i

if(____

(1)____)

k=i;

return______

(2)_____;

}

voidmain()

{

inti,k,a[N];

for(i=0;i

scanf("%d",&a[i]);

k=_______(3)______;

printf("a[%d]=%d\n",k,a[k]);

}

3.以下程序从文件“student.txt”读取学生的学号、姓名、平时成绩和考试成绩,从键盘上输入平时成绩在总成绩中所占比重,计算每个学生的总成绩(四舍五入为整数)后输出到屏幕上。

文件的最后一行为0表示学生数据结束。

设文件student.txt的内容为

101Zhao9558

103Qian7581

105Sun9991

107Li8067

0

运行时键盘输入:

0.1

则屏幕输出:

101Zhao955862

103Qian758180

105Sun999192

107Li806768

源程序:

#include

voidcalc(FILE*fp,floatx)

{

intnum,score1,score2;

floatscore3;

charname[20];

while(!

feof(fp))

{/*文件还有未读数据时*/

num=0;

fscanf(fp,"%d%s%d%d",&num,name,&score1,&score2);

if(num>0)

{/*学生数据有效时*/

score3=score1*x+score2*(1-x);/*计算总成绩*/

printf("%3d%-7s%3d%3d%3d\n",num,name,score1,

score2,______

(1)______);/*总成绩四舍五入为整数*/

}

}

}

voidmain()

{

FILE*fp;

floatx;

fp=fopen("student.txt","r");

if(____

(2)____)/*如果文件打开失败*/

{

printf("FileOpenError!

\n");

return;

}

scanf("%f",&x);

calc(____(3)____);/*调用calc函数*/

fclose(____(4)____);/*关闭文件*/

}

4.下面程序实现的功能是打印n以内的水仙花数,水仙花数是指其本身的值等于每一位数字的立方和,例如:

153是一个水仙花数,153=1*1*1+5*5*5+3*3*3.

如输入:

400

则输出:

1153370371

#include

voidmain()

{

intn,digit,k,m,s;

scanf("%d",&n);

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.以下函数intsum(intx[],intnum)计算数组x前num个元素之和。

在主函数中,输入10个任意整数和下标index1、index2的值(设1<=index1<=index2<=9),调用sum()函数计算index1元素到第index2元素的和,并输出结果。

如输入:

13257964810

24

则输出:

Sum=14

例示说明:

下标从2至4的元素为2、5、7,其累加为14

源程序:

#include

intsum(intx[],intnum)

{

inti,s=0;

for(i=0;____

(1)____;i++)

s=____

(2)____;

returns;

}

voidmain()

{

inti,index1,index2,result;

intx[10];

for(i=0;i<10;i++)

scanf("%d",&x[i]);

scanf("%d%d",&index1,&index2);

result=sum(x+index1,____(3)____);

printf("Sum=%d\n",result);

}

6.以下程序从文件“student.txt”读取学生的学号、姓名、平时成绩和考试成绩(学生已按学号从小到大排序),从键盘上输入一个新学生的信息,按学号顺序将数据插入到学生表中,并生成新的文本文件“studentC.txt”。

文件的最后一行为0表示学生数据结束。

设文件student.txt的内容为

101Zhao9558

103Qian7581

105Sun9991

107Li8067

0

运行时键盘输入:

104Chen8090

则生成新文件studentC.txt的内容为:

101Zhao9558

103Qian7581

104Chen8090

105Sun9991

107Li8067

0

源程序:

#include

voidmain()

{

FILE*fp1,*fp2;

intfnum,fscore1,fscore2;

charfname[20];

intnum,score1,score2;

charname[20];

intflag;

fp1=fopen("student.txt",____

(1)____);

fp2=fopen("studentC.txt","w");

if(fp1==NULL||fp2==NULL)

{

printf("FileOpenError!

\n");

return;

}

scanf("%d%s%d%d",&num,name,&score1,&score2);

_______

(2)______;

while

(1)

{

fnum=0;

fscanf(fp1,"%d%s%d%d",&fnum,fname,&fscore1,&fscore2);

if(fnum==0)

break;

if(flag==1&&num<=fnum)

{

flag=0;

fprintf(fp2,"%3d%-7s%3d%3d\n",num,name,

score1,score2);

}

fprintf(fp2,"%3d%-7s%3d%3d\n",fnum,fname,

fscore1,fscore2);

}

if(____(3)____)

fprintf(fp2,"%3d%-7s%3d%3d\n",num,name,score1,score2);

fprintf(fp2,____(4)____);

fclose(fp1);

fclose(fp2);

}

7.以下程序输入n和n个大于1的正整数,输出其中素数。

如输入:

51993113715

则输出:

191137

例示说明:

先输入n为5,再输入5个正整数,输出5个整数中的素数

#include

voidmain()

{

intn,a,i,j,ct;

scanf("%d",&n);

for(i=0;____

(1)____;i++)

{

______

(2)______;

scanf("%d",&a);

for(j=2;j

if(____(3)____)

ct++;

if(ct==0)

printf("%d",a);

}

printf("\n");

}

8.以下程序输入一个10进制整数,转换为16进制,计算16进制的各个位数,并从高位到低位依次输出。

如输入:

687

则输出:

2AF

例示说明:

10进制687等于16进制2AF,输出时2、A、F中间包含空格

源程序:

#include

voidmain()

{

inta[10],i,n;

scanf("%d",&n);

for(i=0;n>0;i++)

{

a[i]=____

(1)____;

n/=16;

}

for(i--;____

(2)____;____(3)____)

printf("%X",a[i]);

}

9.以下程序从文件“student.txt”读取学生的学号、姓名、平时成绩和考试成绩,再从键盘上输入一个成绩,将所有考试成绩达到或超过该成绩的学生数据写到新的文本文件“studentD.txt”。

文件的最后一行为0表示学生数据结束。

设文件student.txt的内容为

101Zhao9558

103Qian7581

105Sun9991

107Li8067

0

运行时键盘输入:

80

则生成新文件studentD.txt的内容为:

103Qian75

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1