2015高考C语言题(4)

2019-03-03 20:46

题目:int find(char a[],char b[],int c[])统计字符串a中出 现字符串b的次数,并将字符串b每次在字符串a中出现的起 始下标依次保存在数组c中。

例如:若字符串a为\ 字符串b为\,字符串b在a中出现2次,起始下标依 次为10,33。若字符串a为\字符串b为 \,字符串b在a中出现3次,起始下标依次为6,7,13。

请改正程序中的错误,使它能得出正确的结果。

--------------------------------------------------------- 注意:不得增行或删行,也不得更改程序的结构。

--------------------------------------------------------*/ #include #include

int find(char a[],char b[],int c[]) {

int i,j,n=0; i=0; while(a[i]) { j=0;

while(a[i]==b[j]&&a[i]&&b[j]) {

i++;j++; }

if(b[j]=='\\0') {

/*******************FOUND*******************/ c[n]=i; n++; }

/*******************FOUND*******************/ i=j; }

/*******************FOUND*******************/ return n-1; }

int main() {

char a[80]=\

char b[10]=\ int c[80]; int i,n;

printf(\ puts(a);

printf(\ puts(b); n=find(a,b,c); if(n) {

printf(\ printf(\

for(i=0;i

printf(\ return 0; } 答案:

=======(答案1)======= c[n]=i-j;

=========或========= c[n]=i-strlen(b);

=======(答案2)======= i=i-j+1;

=========或========= i+=1-j;

=========或========= i+=-j+1;

=========或========= i=i+1-j;

=========或========= i=-j+i+1;

=========或========= i=-j+1+i

=========或========= i=1+i-j;

=========或========= i=1-j+i;

=======(答案3)======= return n;

=========或========= return (n);

三、程序设计 共5题 (共计150分)

第1题 (30.0分) 题号:543 难度:中 第1章 /*------------------------------------------------------- 【程序设计】

---------------------------------------------------------

c语言中实数有小数表示法和科学表示法两种形式。 例如:

小数表示法的实数203400.0,用科学表示法为2.034e5,其中 2.034称为尾数,5称为阶码;

小数表示法的实数-0.00769,用科学表示法为-0.769e-2,其 中-0.769称为尾数,-2称为阶码。

主函数main()中二维数组double sci[N][3]为测试数据。sci 数组各行前两列保存了用科学表示法表示的实数的尾数和阶 码,程序先将sci数组中用科学表示法表示的实数转换成小数 表示法表示的实数,再依据小数表示法的实数大小,对sci数 组进行升序排序。

编写函数:

1.编写函数void change(double sci[][3]),根据sci数组前 两列的尾数和阶码,计算出小数表示法的实数,将其保存在 sci数组的第三列。

2.编写函数void sort(double sci[][3]),依据sci数组中第 三列,即小数表示法表示的实数大小进行升序排序。

在函数中不允许使用系统提供的任何库函数。

--------------------------------------------------------- 注意:请勿改动主函数main()中的任何语句。

---------------------------------------------------------*/

#include #include #include #define N 5

void change(double sci[][3]) {

/**********Program**********/

/********** End **********/ }

void sort(double sci[][3]) {

/**********Program**********/

/********** End **********/ }

int main() {

double sci[N][3]={{4.76,2},{-9.007,-4},{6.789,0},{-0.8145,3},{9.007,-4}}; int i; FILE *fp;

if((fp=fopen(\ {

printf(\ exit(0); }

change(sci); sort(sci); for(i=0;i

printf(\ fprintf(fp,\ }

fclose(fp); getch(); return 0; }

答案: int i; double j,k; for(i=0;i

sci[i][2]=sci[i][0];

k=sci[i][1]>=0 ?sci[i][1]:-sci[i][1]; for(j=0;j

sci[i][2]=(sci[i][1]< 0 ? sci[i][2]*0.1 : sci[i][2]*10); }

int i,j; double t;

for(i=0;i

if(sci[j][2]>sci[j+1][2]) {

t=sci[j][0];sci[j][0]=sci[j+1][0];sci[j+1][0]=t; t=sci[j][1];sci[j][1]=sci[j+1][1];sci[j+1][1]=t; t=sci[j][2];sci[j][2]=sci[j+1][2];sci[j+1][2]=t; } }

第2题 (30.0分) 题号:544 难度:中 第1章 /*------------------------------------------------------- 【程序设计】

---------------------------------------------------------

主函数main()的char s[]中为测试数据,保存了形如 \字符串。将字 符串中类似\这样的子串视为一个分数,将其转换为整数 9和4,其中9为分子,4为分母。将分子分母分别保存在二维 数组frica的第一列和第二列。并根据分数值的大小,对数组 frica进行升序排序。

编写函数:

1.编写函数int abstract(char s[],int frica[][2]),将字 符串s中类似\这样的子串转换成两个整数,分别存放在 frica数组的第一列和第二列,函数返回这样的子串个数(即 分数个数)。

2.编写函数void sort(int frica[][2],int n),根据分数值 大小,对frica数组中n个分数进行升序排序。

--------------------------------------------------------- 注意:请勿改动主函数main()中的任何语句。

---------------------------------------------------------*/

#include #include


2015高考C语言题(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:大道之行——文圣拳发展之路——卢飞宏

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: