您现在的位置: 中国IT实验室 >> 计算机等级考试 >> 最新试题 >> 文章正文
全国计算机等级考试三级C语言上机题1-10

ChinaITLab收集整理  2006-3-11  保存本文  推荐给好友  QQ上看本站  收藏本站


 

 for(j=i+1;j<200;j++) if(aa[i]%1000>aa[j]%1000||aa[i]%1000==aa[j]%1000&&aa[i] for(i=0;i<10;i++)
 bb[i]=aa[i];
}

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[i]);
 fclose(in);
 }

writeDat()
{
 FILE *out;
 int i;

 clrscr();
 out=fopen("out.dat","w");
 for(i=0; i<10; i++){
 printf(" %d",bb[i]);
 fprintf(out,"%d\n",bb[i]);
 }
 fclose(out);
}


☆题目6
在文件in.dat中有200个正整数,且每个数均在1000至9999之间。函数ReadDat()读取这200个数存放到数组aa中。请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小进行降序排列,然后取出满足此条件的前10个数依次存入数组b中,如果后三位的数值相等,则按原先的数值进行升序排列。最后调用函数WriteDat()把结果bb输出到文件out.dat中。
例:处理前 9012 5099 6012 7025 8088
 处理后 5099 8088 7025 6012 9012
 注意:部分源程序已给出。
  请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
#include
#include
#include

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[i]%1000aa[j])
 {data=aa[i];aa[i]=aa[j];aa[j]=data;}
 for(i=0;i<10;i++)
 bb[i]=aa[i];
}

void main()
{
readDat();
jsSort();
writeDat();
system("pause");
}

readDat()
{
FILE *in;
int i;

in=fopen("in.dat","r");
for(i=0; i<200; i++) fscanf(in,"%d,",&aa[i]);

fclose(in);
}

writeDat()
{
FILE *out;
int i;
clrscr();
out=fopen("out.dat","w");
for(i=0; i<10; i++){
printf("i=%d,%d\n",i+1,bb[i]);
fprintf(out,"%d\n",bb[i]);
}
fclose(out);
}


☆题目7
已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT6.DAT中。
 部分源程序存在文件prog1.c中。
  请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
#include
#include
#include
#include
#include

#define MAX 100
typedef struct{
 char dm[5]; /*产品代码*/
 char mc[11]; /*产品名称*/
 int dj; /*单价*/
 int sl; /*数量*/
 long je; /*金额*/
}PRO;
PRO sell[MAX];
void ReadDat();
void WriteDat();

void SortDat()
{int i,j;
 PRO xy;
 for(i=0;i<99;i++)
 for(j=i+1;j<100;j++)
 if(strcmp(sell[i].dm,sell[j].dm)<0||strcmp(sell[i].dm,sell[j].dm)==0&&sell[i].je {xy=sell[i]; sell [i]=sell[j]; sell[j]=xy;}
}

void main()
 {
 memset(sell,0,sizeof(sell));
 ReadDat();
 SortDat();
 WriteDat();
 }

void ReadDat()
{
 FILE *fp;
 char str[80],ch[11];
 int i;

 fp=fopen("IN.DAT","r");
 for(i=0;i<100;i++){
 fgets(str,80,fp);
 memcpy(sell[i].dm,str,4);
 memcpy(sell[i].mc,str+4,10);
 memcpy(ch,str+14,4);ch[4]=0;
 sell[i].dj=atoi(ch);
 memcpy(ch,str+18,5);ch[5]=0;
 sell[i].sl=atoi(ch);
 sell[i].je=(long)sell[i].dj*sell[i].sl;
 }
 fclose(fp);
}

void WriteDat(void)
{
 FILE *fp;
 int i;

 fp=fopen("OUT6.DAT","w");
 for(i=0;i<100;i++){
 printf("%s %s %4d %5d %5d\n", sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);
 fprintf(fp,"%s %s %4d %5d %5d\n", sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);
 }
 fclose(fp);
}



★题目8 函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS1.DAT中。
  替代关系:f(p)=p*11 mod 256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)值小于等于32或大于130,则该字符不变,否则将f(p)所对应的字符进行替代。(注意中间变量用无符号整型),部分源程序存在文件prog1.c中。原始数据文件存放的格式是:每行的宽度均小于80个字符。
  请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
#include
#include
#include
#include

unsigned char xx[50][80];
int maxline=0;/*文章的总行数*/

int ReadDat(void);
void WriteDat(void);

void encryptChar()
{ int i,j;
 for(i=0;i for(j=0;j if(xx[i][j]*11%256<=32||xx[i][j]*11%256>130) continue;
 else xx[i][j]=xx[i][j]*11%256;
}

void main()
 {
 clrscr();
 if(ReadDat()){
 printf("数据文件ENG.IN不能打开!\n\007");
 return;
 }
 encryptChar();
 WriteDat();
}

int ReadDat(void)
{
 FILE *fp;
 int i=0;
 unsigned char *p;

 if((fp=fopen("eng.in","r"))==NULL) return 1;
 while(fgets(xx[i],80,fp)!=NULL){
 p=strchr(xx[i],'\n');
 if(p)*p=0;
 i++;
 }
maxline=i;
fclose(fp);
return 0;
}

void WriteDat(void)
{
 FILE *fp;
 int i;

 fp=fopen("ps1.dat","w");
 for(i=0;i printf("%s\n",xx[i]);
 fprintf(fp,"%s\n",xx[i]);
 }
 fclose(fp);
}


★☆题目9
函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数SortCharD(),其函数的功能是:以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT2.DAT中。
 例:原文:dAe,BfC.
 CCbbAA
 结果:fedCBA.
 bbCCAA
 原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
 部分源程序存在文件prog1.c中。
 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。
#include
#include
#include

char xx[50][80];
int maxline=0;/*文章的总行数*/

int ReadDat(void);
void WriteDat(void);

void SortCharD(void)
{int i,j,k,strl;
 char ch;
 for(i=0;i {strl=strlen(xx[i]);
 for(j=0;j for(k=j+1;k if(xx[i][j] {ch=xx[i][j]; xx[i][j]=xx[i][k]; xx[i][k]=ch;}
 }
}


void main()
 {
 clrscr();
 if(ReadDat()){
 printf("数据文件IN.DAT不能打开!\n\007");
 return;
 }
 SortCharD();
 WriteDat();
}

int ReadDat(void)
{
 FILE *fp;
 int i=0;
 char *p;

 if((fp=fopen("IN.DAT","r"))==NULL) return 1;
 while(fgets(xx[i],80,fp)!=NULL){
 p=strchr(xx[i],'\n');
 if(p)*p=0;
 i++;
}
maxline=i;
fclose(fp);
return 0;
}

void WriteDat(void)
{
 FILE *fp;
 int i;

 fp=fopen("OUT2.DAT","w");
 for(i=0;i printf("%s\n",xx[i]);
 fprintf(fp,"%s\n",xx[i]);
 }
 fclose(fp);
}


★☆题目10
函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数ConvertCharA(),其函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的下一个字母,如果是字母z,则改写成字母a。大写字母仍为大写字母,小写字母仍为小写字母,其他字符不变。把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT1.DAT中。
 例:原文:Adb.Bcdza
 abck.LLhj
 结果:Aec.Bdeab
 bcdl.LLik
 原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
 部分源程序存在文件prog1.c中。
 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。
#include
#include
#include

char xx[50][80];
int maxline=0;/*文章的总行数*/

int ReadDat(void);
void WriteDat(void);

void ConvertCharA(void)
{ int i,j;
 for(i=0;i { for(j=0;j if(xx[i][j]=='z') xx[i][j]='a';
 else if(xx[i][j]>='a'&&xx[i][j]<='y') xx[i][j]+=1;
 }
}

void main()
 {
 clrscr();
 if(ReadDat()){
 printf("数据文件IN.DAT不能打开!\n\007");
 return;
 }
 ConvertCharA();
 WriteDat();
}

int ReadDat(void)
{
 FILE *fp;
 int i=0;
 char *p;

 if((fp=fopen("IN.DAT","r"))==NULL) return 1;
 while(fgets(xx[i],80,fp)!=NULL){
 p=strchr(xx[i],'\n');
 if(p)*p=0;
 i++;
 }
maxline=i;
fclose(fp);
return 0;
}

void WriteDat(void)
{
 FILE *fp;
 int i;

 clrscr();
 fp=fopen("OUT1.DAT","w");
 for(i=0;i printf("%s\n",xx[i]);
 fprintf(fp,"%s\n",xx[i]);
 }
 fclose(fp);
}

上一页  [1] [2] [3] 





 相关文章  热门文章
应付计算机等级二级考试新大纲:公共基础知识
计算机等级考试三,四级证书
计算机等级考试一,二级证书
2006年4月1日计算机等级考试公共基础知识考
2006年全国计算机等级考试四级考试大纲
2006年全国计算机等级考试三级信息管理技术
2006年全国计算机等级考试二级Access考试大
全国计算机等级考试详细的介绍
全国计算机等级考试四级通关攻略
全国计算机等级考试上机考试应试技巧

 文章评论


认证培训
热门专题       more
相关下载
论坛新帖
博 客