《二级C语言上机编程题库》.doc
文本预览下载声明
题目1
请编写一个函数jsValue(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入数组xx传回。 int isP(int m)
{int i;
for(i=2;im;i++)
if(m % i==0)return 0;
return 1;
}
void num(int m,int k,int xx[])
{ int s=0;
for(m=m+1;k0;m++)
if(isP(m)) { xx[s++]=m; k--;}}
☆ 题目2
已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。 void jsVal()
{ int i,j,qw,bw,sw,gw;
for(i=0;iMAX;i++)
{qw=a[i]/1000; bw=a[i]/100%10;
sw=a[i]%100/10; gw=a[i]%10; if(qwqw%2==0bw%2==0sw%2==0gw%2==0) b[cnt++]=a[i];}
for(i=0;icnt-1;i++)
for(j=i+1;jcnt;j++)
if(b[i]b[j]) { qw=b[i]; b[i]=b[j]; b[j]=qw;}}
★题目3
函数ReadDat( )实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中;请编制函数StrOR( ),其函数的功能是:以行为单位依次把字符串中所有小写字母o左边的字符串内容移到该串的右边存放,然后把小写字母o删除,余下的字符串内容移到已处理字符串的左边存放,之后把已处理的字符串仍按行重新存入字符串数组xx中。
void StrOR(void)
{int i,righto,j,s,k;
char tem[80];
for(i=0;imaxline;i++)
for(j=strlen(xx[i])-1;j=0;j--)
{ k=0;
memset(tem,0,80);
if(xx[i][j]==o)
{righto=j;
for(s=righto+1;sstrlen(xx[i]);s++)
tem[k++]=xx[i][s];
for(s=0;srighto;s++)
if(xx[i][s]!=o)
tem[k++]=xx[i][s];
strcpy(xx[i],tem);}
else continue;} }
★题目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
void StrOL(void)
{ int i,j,k,s,m,strl;
char str[80];
for(i=0;imaxline;i++)
{ strl=strlen(xx[i]);
memset(str,0,80);
s=k=0;
for(j=strl-1;j=0;j--)
{if(isalpha(xx[i][j])) k++; else { for(m=1;m=k;m++)
str[s++]=xx[i][j+m];
k=0; }
if(!isalpha(xx[i][j]))
str[s++]= ; }
for(m=1;m=k;m++)
str[s++]=xx[i][j+m];
str[s]=\0;
strcpy(xx[i],str); }}
☆题目5(整数排序题)
在文件in.dat中有200个正整数,且每个数均在1000至9999之间。函数ReadDat()读取这200个数存放到数组aa中。请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小进行升序排列,然后取出满足此条件的前10个数依次存入数组bb中,如果后三位的数值相等,则按原先的数值进行降序排列。最后调用函数WriteDat(
显示全部