2015高考C语言题 下载本文

#include #include

int abstract(char s[],int frica[][2]) {

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

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

void sort(int frica[][2],int n) {

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

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

int main() {

char s[]=\ int frica[10][2],i,n; FILE *fp;

if((fp=fopen(\ {

printf(\ exit(0); }

n=abstract(s,frica); sort(frica,n); for(i=0;i

printf(\ fprintf(fp,\ }

printf(\ fprintf(fp,\ fclose(fp); getch(); return 0; }

答案:int i,k,sum; sum=0;

for(k=i=0;s[i];i++) {

if(isdigit(s[i])) {

sum=sum*10+s[i]-'0';

if(s[i+1]=='/' || s[i+1]==' ') {

frica[k/2][k%2]=sum; k++; sum=0; } } }

return k/2;

int i,j,t;

for(i=0;i

if(frica[j][0]*frica[j+1][1]>frica[j+1][0]*frica[j][1]) {

t=frica[j][0];frica[j][0]=frica[j+1][0];frica[j+1][0]=t; t=frica[j][1];frica[j][1]=frica[j+1][1];frica[j+1][1]=t; } }

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

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

主函数main()的char s[]中为测试数据,保存了形如 \字符 串。将字符串中类似\这样的子串视为一个学生的语文 和数学成绩,将其转换为整数59和63,其中59为语文成绩, 63为数学成绩。将这两个成绩分别保存在二维数组score的第 一列和第二列。并根据总成绩和语文成绩的大小,对score数 组进行降序排序。

编写函数:

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

2.编写函数void sort(int score[][2],int n),对score数 组中n个成绩进行降序排序,排序依据是:先按总成绩降序排 序,如总成绩相同,则再按语文成绩降序排序。

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

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

#include #include #include #include

int abstract(char s[],int score[][2]) {

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

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

void sort(int score[][2],int n) {

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

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

int main(){

char s[]=\ int score[10][2],i,n; FILE *fp;

if((fp=fopen(\ {

printf(\ exit(0);

}

n=abstract(s,score); sort(score,n); for(i=0;i

printf(\ fprintf(fp,\ }

printf(\ fprintf(fp,\ fclose(fp); return 0; }

答案:int i,k,sum; for(k=i=0;s[i];i++) {

if(isdigit(s[i])) {

sum=0;

for(;isdigit(s[i]);i++) sum=sum*10+s[i]-'0'; if(s[i]==',') score[k][0]=sum; else

score[k++][1]=sum; } }

return k;

int i,j,t; int s1,s2;

for(i=0;i

s1=score[j][0]+score[j][1]; s2=score[j+1][0]+score[j+1][1];

if(s1

t=score[j][0];score[j][0]=score[j+1][0];score[j+1][0]=t; t=score[j][1];score[j][1]=score[j+1][1];score[j+1][1]=t; }