试题一:已知数据文件IN.DAT中存有300个四位数,并已调用读函数READDAT()把这些数存入数组A中。请编制一函数Svalue(),其功能是:求出所有这些四位数是素数的个数CNT,再求出所有满足此条件的四位数平均值PJZ1,以及不满足条件的四位数平均值PJZ2,最后调用写函数WRITEDAT()把结果CNT,PJZ1,PJZ2输出 到OUT.DAT文件。
例如:5591是素数,则该数满足条件计算平均值PJZ1,且个数CNT=CNT+1.
9812是非素数,则该数不满足条件计算平均值PJZ2。
注意:部分源程序已给出。
程序中已定义数组:a[300],已定义变量:cnt,pjz1,pjz2.
请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。
---------------------
PROG1.C
#include 《stdio.h》
int a[300],cnt=0;
double pjz1=0.0,pjz2=0.0;
int isP(int m)
{
int i;
for(i=2;i《m;i++)
if(m%i==0)return 0;
return 1;
}
void jsvalue()
{
}
main()
{
int i;
readDat();
jsvalue();
writeDat();
printf(“cnt=%d\n满足条件的平均值pzj1=%7.21f\n不满足条件的平均值pzj2=%7.21f\n”,cnt,pjz1,pjz2);
system(“pause”);
}
readDat()
{
FILE *fp;
int i;
fp=fopen(“in.dat”,“r”);
for(i=0;i《300;i++)fscanf(fp,“%d”,&a[i]);
fclose(fp);
}
writeDat()
{
FILE *fp;
int i;
fp=fopen(“out.dat”,“w”);
fprintf(fp,“%d\n%7.21f\n%7.21f\n”,cnt,pjz1,pjz2);
fclose(fp);
}
/*标准答案如下
void jsvalue()
{int I;
for (I=0;I《300;I++)
if (isP(a[I])) {pjz1+=a[I];cnt++;}
else pjz2+=a[I];
pjz1=pjz1/cnt;
pjz2=pjz2/(300-cnt);
}
www.lexue88.com
试题二:已知数据文件IN.DAT中存有200个四位数, 并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:若一个四位数的个位数字上的值减去千位数字上的值减去百位数字上的值再减去十位数字上的值,并且此四位数是偶数,则统计出满足此条件的个数cnt, 并把这些四位数按从小到大的顺序存入数组b中。最后main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
注意: 部分源程序存在文件PROG1.C文件中。
程序中已定义数组: a[200], b[200], 已定义变量: cnt
请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。
-------------------------
PROG1.C
#include 《stdio.h》
#define MAX 200
int a[MAX], b[MAX], cnt = 0;
void jsVal()
{
}
void readDat()
{ int i ;
FILE *fp ;
fp = fopen(“in.dat”, “r”) ;
for(i = 0 ; i 《 MAX ; i++) fscanf(fp, “%d”, &a[i]) ;
fclose(fp) ;
}
void main()
{ int i ;
readDat() ;
jsVal() ;
printf(“满足条件的数=%d\n”, cnt) ;
for(i = 0 ; i 《 cnt ; i++) printf(“%d ”, b[i]) ;
printf(“\n”) ;
writeDat() ;
system(“pause”);
}
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[i]) ;
fclose(fp) ;
}
void jsVal() /*标准答案*/
{int I,thou,hun,ten,data,j;
for(I=0;I《300;I++) /*答案有误,应为for(I=0;I《MAX;I++)*/
{thou=a[I]/1000; hun=a[I]%1000/100;
ten=a[I]%100/10; data=a[I]%10;
if (data-thou-hun-ten》=0&&a[I]%2!=1) {b[cnt]=a[I];cnt++;}
}
for(I=0;I《cnt-1;I++)
for(j=I+1;j《cnt;j++)
if(b[I]》b[j])
{data=b[I];b[I]=b[j];b[j]=data;}
}
www.lexue88.com
试题三:函数READDAT()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组XX中;请编制函数SORTCHARA(),其函数功能是:以行为单位对字符按从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串数组XX中,最后调用函数WRITEDAT()把结果XX输出到文件OUT1.DAT 。
例:原文:dAe,BfC.
CCbbAA
结果:,.ABCdef
AACCbb
原始数据文件存放的格式是: 每行的宽度均小于80个字符, 含标点符号和空格。
注意: 部分源程序存放在PROG1.C中。
请勿改动主函数main( )、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
-----------------
PROG1.C
#include 《stdio.h》
#include 《string.h》
#include 《conio.h》
char xx[50][80] ;
int maxline = 0 ; /* 文章的总行数 */
int ReadDat(void) ;
void WriteDat(void) ;
void ConvertCharA(void)
{
}
void main()
{ clrscr() ;
if(ReadDat()) {
printf(“数据文件IN.DAT不能打开!\n\007”) ;
return ;
}
ConvertCharA();
WriteDat() ;
system(“pause”);
}
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 《 maxline ; i++) {
printf(“%s\n”, xx[i]) ;
fprintf(fp, “%s\n”, xx[i]) ;
}
fclose(fp) ;
}
/*标准答案*/
void ConvertCharA(void)
{int I,j,k,strl;
char ch;
for(I=0;I《maxline;I++)
{strl=strlen(xx[I]);
for(j=0;j《strl-1;j++)
for(k=j+1;k《strl;k++)
if(xx[I][j]》xx[I][k])
{ch=xx[I][j];
xx[I][j]=xx[I][k];
xx[I][k]=ch;}
}
}
www.lexue88.com
试题四:函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS5.DAT中。
替代关系:f(p)=p*11mod 256 (p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)值小于等于32或f(p)对应的字符是小写字母,则该字符不变,否则将f(p)所对应的字符进行替代。
注意:部分源程序已给出。原始数据文件存放的格式是:每行的宽度均小于80个字符。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
------------------------------
PROG1.C
#include《stdio.h》
#include《string.h》
#include《conio.h》
#include《ctype.h》
unsigned char xx[50][80];
int maxline=0;/*文章的总行数*/
int ReadDat(void);
void WriteDat(void);
void encryptChar()
{
}
void main()
{
clrscr();
if(ReadDat()){
printf(“数据文件ENG.IN不能打开!\n\007”);
return;
}
encryptChar();
WriteDat();
system(“pause”);
}
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(“ps5.dat”,“w”);
for(i=0;i《maxline;i++){
printf(“%s\n”,xx[i]);
fprintf(fp,“%s\n”,xx[i]);
}
fclose(fp);
}
/*标准答案*/
void encryptChar()
{int I;
char *pf;
for(I=0;I《maxline;I++)
{pf=xx[I];
while(*pf!=0)
{ if ((*pf*11%256》=‘a’&&*pf*11%256《=‘z’)||*pf*11%256《=32)
{pf++;continue;}
*pf=*pf*11%256;
pf++;} }
}
或者:
void encryptChar()
,计算机三级考试网络技术上机考前必看的五题tag: 计算机等级考试,计算机等级考试试题,全国计算机等级考试试题,计算机等级考试