首页 | 考研 | MBA | 专升本 | 成考 | 自考 | 高考 | 中考 | 出国 | 外语 | 电脑 | 公务员 | 司法 | 财考 | 资格考试 | 论文写作
 淘学考试计算机正文
 
全国计算机等级考试三级C语言上机题1-5
 
 
编辑:xujie 时间:2007-11-27 来源:淘学考试网 推荐好友



☆题目1

请编写一个函数jsvalue(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入数组xx传回。
最后调用函数writeDat()读取10组数据,分别得出结果且把结果输出到文件out.dat中。
部分源程序存在文件prog1.c中。
例如:若输入17 5 则应输出:19,23,29,31,37。
请勿改动主函数main()和写函数writeDat()的内容。
#include <conio.h>
#include <stdio.h>
void readwriteDat();

int isP(int m)
{
int i;
for(i=2;i<m;i++)
if(m % i==0)return 0;
return 1;
}

void num(int m,int k,int xx[])
{ int s=0;
for(m=m+1;k>0;m++)
if(isP(m)) { xx[s++]=m; k--;}
}

main()
{
int m,n,xx[1000];
clrscr();
printf("\nPlease enter two integers:");
scanf("%d%d",&m,&n);
num(m,n,xx);
for(m=0;m<n;m++)
printf("%d ",xx[m]);
printf("\n");
readwriteDat();
}

void readwriteDat()
{
int m,n,xx[1000], i;
FILE *rf,*wf;

rf=fopen("in.dat","r");
wf=fopen("out.dat","w");
for(i=0;i<10;i++){
fscanf(rf,"%d %d",&m,&n);
num(m,n,xx);
for(m=0;m<n;m++)fprintf(wf,"%d ",xx[m]);
fprintf(wf,"\n");
}
fclose(rf);
fclose(wf);
}

☆题目2

已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。最后main( )函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
注意:部分源程序存在文件prog1.c中。
程序中已定义数组:a[200],b[200],已定义变量:cnt
请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
#include <stdio.h>
#define MAX 200
int a[MAX], b[MAX], cnt = 0

void jsVal()
{ int i,j,qw,bw,sw,gw;
for(i=0;i<MAX;i++)
{ qw=a/1000; bw=a/100%10;
sw=a%100/10; gw=a%10;
if(qw&&qw%2==0&&bw%2==0&&sw%2==0&&gw%2==0) b[cnt++]=a;
}
for(i=0;i<cnt-1;i++)
for(j=i+1;j<cnt;j++)
if(b<b[j]) { qw=b; b=b[j]; b[j]=qw;}
}

void readDat()
{
int i
FILE *fp
fp = fopen("in.dat", "r")
for(i = 0 i < MAX i++) fscanf(fp, "%d", &a)
fclose(fp)
}

void main()
{
int i
readDat()
jsVal()
printf("满足条件的数=%d\n", cnt)
for(i = 0 i < cnt i++) printf("%d ", b)
printf("\n")
writeDat()
}

writeDat()
{
FILE *fp
int i
fp = fopen("out.dat", "w")
fprintf(fp, "%d\n", cnt)
for(i = 0 i < cnt i++) fprintf(fp, "%d\n", b)
fclose(fp)
}

★题目3

函数ReadDat( )实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中;请编制函数StrOR( ),其函数的功能是:以行为单位依次把字符串中所有小写字母o左边的字符串内容移到该串的右边存放,然后把小写字母o删除,余下的字符串内容移到已处理字符串的左边存放,之后把已处理的字符串仍按行重新存入字符串数组xx中。最后main()函数调用函数WriteDat()把结果xx输出到文件OUT5.DAT中。

原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
注意:部分源程序存放在文件prog1.c中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
#include <stdio.h>
#include <string.h>
#include <conio.h>

char xx[50][80]
int maxline = 0 /* 文章的总行数 */

int ReadDat(void)
void WriteDat(void)

void StrOR(void)
{int i,righto,j,s,k;
char tem[80];
for(i=0;i<maxline;i++)
for(j=strlen(xx)-1;j>=0;j--)
{ k=0;
memset(tem,0,80);
if(xx[j]=='o')
{righto=j;
for(s=righto+1;s<strlen(xx);s++)
tem[k++]=xx[s];
for(s=0;s<righto;s++)
if(xx[s]!='o')
tem[k++]=xx[s];
strcpy(xx,tem);
}
else continue;
}
}

void main()
{
clrscr()
if(ReadDat()) {
printf("数据文件IN.DAT不能打开!\n\007")
return
}
StrOR()
WriteDat()
}

int ReadDat(void)
{
FILE *fp
int i = 0
char *p

if((fp = fopen("IN.DAT", "r")) == NULL) return 1
while(fgets(xx, 80, fp) != NULL) {
p = strchr(xx, '\n')
if(p) *p = 0
i++
}
maxline = i
fclose(fp)
return 0
}

void WriteDat(void)
{
FILE *fp
int i

clrscr()
fp = fopen("OUT5.DAT", "w")
for(i = 0 i < maxline i++) {
printf("%s\n", xx)
fprintf(fp, "%s\n", xx)
}
fclose(fp)
}

★题目4

函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数StrOL(),其函数的功能是:以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT6.DAT中。
例如:原文:You He Me
I am a student.
结果:Me He You
student a am I
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
部分源程序存在文件prog1.c中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <ctype.h>

char xx[50][80];
int maxline=0;/*文章的总行数*/

int ReadDat(void);
void WriteDat(void);

void StrOL(void)
{ int i,j,k,s,m,strl;
char str[80];
for(i=0;i<maxline;i++)
{ strl=strlen(xx);
memset(str,0,80);
s=k=0;
for(j=strl-1;j>=0;j--)
{ if(isalpha(xx[j])) k++;
else { for(m=1;m<=k;m++)
str[s++]=xx[j+m];
k=0;
}
if(!isalpha(xx[j]))
str[s++]=' ';
}
for(m=1;m<=k;m++)
str[s++]=xx[j+m];
str[s]='\0';
strcpy(xx,str); }
}

void main()
{
clrscr();
if(ReadDat()){
printf("数据文件IN.DAT不能打开!\n\007");
return;
}
StrOL();
WriteDat();
}

int ReadDat(void)
{
FILE *fp;
int i=0;
char *p;

if((fp=fopen("IN.DAT","r"))==NULL) return 1;
while(fgets(xx,80,fp)!=NULL){
p=strchr(xx,'\n');
if(p)*p=0;
i++;
}
maxline=i;
fclose(fp);
return 0;
}

void WriteDat(void)
{
FILE *fp;
int i;

clrscr();
fp=fopen("OUT6.DAT","w");
for(i=0;i<maxline;i++){
printf("%s\n",xx);
fprintf(fp,"%s\n",xx);
}
fclose(fp);
}

☆ 题目5

在文件in.dat中有200个正整数,且每个数均在1000至9999之间。函数ReadDat()读取这200个数存放到数组aa中。请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小进行升序排列,然后取出满足此条件的前10个数依次存入数组bb中,如果后三位的数值相等,则按原先的数值进行降序排列。最后调用函数WriteDat()把结果bb输出到文件out.dat中。
例:处理前 6012 5099 9012 7025 8088
处理后 9012 6012 7025 8088 5099
部分源程序存在文件prog1.c中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
#include <stdio.h>
#include <string.h>
#include <conio.h>

int aa[200],bb[10];

void jsSort()
{
int i,j,data;
for(i=0;i<199;i++)
for(j=i+1;j<200;j++) if(aa%1000>aa[j]%1000||aa%1000==aa[j]%1000&&aa<aa[j]) {data=aa;aa=aa[j];aa[j]=data;}
for(i=0;i<10;i++)
bb=aa;
}

void main()
{
readDat();
jsSort();
writeDat();
}

readDat()
{
FILE *in;
int i;

in=fopen("in.dat","r");
for(i=0; i<200; i++) fscanf(in,"%d,",&aa);
fclose(in);
}

writeDat()
{
FILE *out;
int i;

clrscr();
out=fopen("out.dat","w");
for(i=0; i<10; i++){
printf(" %d",bb);
fprintf(out,"%d\n",bb);
}
fclose(out);
}

 

 

 相 关 内 容



.

  推荐课程
 
 
 
 
 
 
  资讯动态
  综合辅导
  热文排行
版权信息 - 关于我们 - 联系方式 - 服务承诺 - 客户投诉 - 广告服务 - 网站合作 - 会员服务 - 友情链接 - 站长统计3
1 不良信息
举报中心
文明办网文明上网举报电话:15964542668
举报邮箱:topej@163.com
2 网络110
报警服务
服务热线:15964542668 电子邮件:guoyong@topej.com 服务 QQ:350125289
淘学之家(www.topej.com)旗下网站 ICP注册号:鲁ICP备07016860号