新视野二级C上机编程题做题方法和技巧.docx

上传人:b****2 文档编号:554927 上传时间:2023-04-29 格式:DOCX 页数:96 大小:1.89MB
下载 相关 举报
新视野二级C上机编程题做题方法和技巧.docx_第1页
第1页 / 共96页
新视野二级C上机编程题做题方法和技巧.docx_第2页
第2页 / 共96页
新视野二级C上机编程题做题方法和技巧.docx_第3页
第3页 / 共96页
新视野二级C上机编程题做题方法和技巧.docx_第4页
第4页 / 共96页
新视野二级C上机编程题做题方法和技巧.docx_第5页
第5页 / 共96页
新视野二级C上机编程题做题方法和技巧.docx_第6页
第6页 / 共96页
新视野二级C上机编程题做题方法和技巧.docx_第7页
第7页 / 共96页
新视野二级C上机编程题做题方法和技巧.docx_第8页
第8页 / 共96页
新视野二级C上机编程题做题方法和技巧.docx_第9页
第9页 / 共96页
新视野二级C上机编程题做题方法和技巧.docx_第10页
第10页 / 共96页
新视野二级C上机编程题做题方法和技巧.docx_第11页
第11页 / 共96页
新视野二级C上机编程题做题方法和技巧.docx_第12页
第12页 / 共96页
新视野二级C上机编程题做题方法和技巧.docx_第13页
第13页 / 共96页
新视野二级C上机编程题做题方法和技巧.docx_第14页
第14页 / 共96页
新视野二级C上机编程题做题方法和技巧.docx_第15页
第15页 / 共96页
新视野二级C上机编程题做题方法和技巧.docx_第16页
第16页 / 共96页
新视野二级C上机编程题做题方法和技巧.docx_第17页
第17页 / 共96页
新视野二级C上机编程题做题方法和技巧.docx_第18页
第18页 / 共96页
新视野二级C上机编程题做题方法和技巧.docx_第19页
第19页 / 共96页
新视野二级C上机编程题做题方法和技巧.docx_第20页
第20页 / 共96页
亲,该文档总共96页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

新视野二级C上机编程题做题方法和技巧.docx

《新视野二级C上机编程题做题方法和技巧.docx》由会员分享,可在线阅读,更多相关《新视野二级C上机编程题做题方法和技巧.docx(96页珍藏版)》请在冰点文库上搜索。

新视野二级C上机编程题做题方法和技巧.docx

新视野二级C上机编程题做题方法和技巧

新视野教育•二级C语言上机编程题做题方法和技巧总结

一、字符串操作

(一)删除*号

1、编程题中涉及“删除*号”的相关题目:

8、9、19、45、54、57、61、65、77、90、92、100

2、编程题第8题的操作过程

(1)题目:

假设输入的字符串中只包含字母和“*”号。

请编写函数fun,它功能是:

除了字符串前导的*号之外,将串中其他*号全部伤处。

例如,字符串中的内容:

****A*BC*DEF*G*******,删除后,字符串中的内容应当是:

****ABCDEFG。

(2)分析:

题目的含义可以解析为将中间和尾部的*号全部删除,剩余前导*号和字母。

1前导*号:

指第一个字母以前的字母,例如****A*BC*DEF*G*******中的前导*有4个;

2尾部*号:

指最后一个字母以后的字母,例如****A*BC*DEF*G*******中的尾部*有7个;

3中间*号:

除了前导和尾部*号以外的*号。

(3)【步骤1】打开“编程题”题目,分析NONO函数

NONO()

{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。

*/

FILE*in,*out;

inti;chars[81];

in=fopen("D:

\\k01\\24010001\\in.dat","r");

out=fopen("D:

\\k01\\24010001\\out.dat","w");

 

for(i=0;i<10;i++){

fscanf(in,"%s",s);

fun(s);

fprintf(out,"%s\n",s);

}

fclose(in);

fclose(out);

}

1FILE*in,*out;/*定义了两个文件类型的指针变量in和out*/知识点参照课本P115页相关理论知识,文件指针的定义:

FILE*指针变量名;

2inti;chars[81];/*定义了一个整型的变量i,用来表示循环的递增;定义了一个字符类型的一维数组s,用来存放后面题目中数据。

*/

3in=fopen("D:

\\k01\\24010001\\in.dat","r");/*in是文件指针,用来指向文件“in.dat”。

fopen("D:

\\k01\\24010001\\in.dat","r");以“r”读的方式打开“in.dat”文件*/知识点参照课本P115页相关理论知识,打开文件的定义:

fopen(文件名,文件使用方式);

D:

\\k01\\24010001\\in.dat打开的文件为in.dat,其中D:

\\k01\\24010001\\是文件存储的路径,“r”为文件打开的方式“读”,即只能读取里面的数据,不能往里面写入数据。

4out=fopen("D:

\\k01\\24010001\\out.dat","w");/*out是文件指针,用来指向文件“out.dat”。

fopen("D:

\\k01\\24010001\\out.dat","w")以”w”写的方式打开“out.dat”文件*/

5for(i=0;i<10;i++)/*循环语句,该循环将执行10次*/

6fscanf(in,"%s",s);/*从in文件所指向的数据源文件in.dat中读取一行字符串数据给一维数组s,(顺便说下为什么知道是读取一行字符串数据,是因为%s格式是用来控制字符串的,因此不难判断),通过循环语句,将读取10行数据进行处理,该题目总共40分,因此每行就是4分。

*/

7fun(s);/*调用函数fun,传入实参s,从题目得知fun函数要完成的事情是:

将中间和尾部的*号全部删除,剩余前导*号和字母。

*/

8fprintf(out,"%s\n",s);/*printf在第二章学习的时候知道是输出的意思,fprintf的意思是将数据输出到out指针指向的文件中,以“%s\n”格式方式输出,输出的数据是s,同学们一定要注意,此时的s是修改过的s,即是删除*号后的字符串。

*/

9fclose(in);/*关闭文件指针in。

*/

10fclose(out);/*关闭文件指针out,文件打开后要将其关闭。

*/

(4)【步骤2】根据考生文件夹【考试文件夹D:

\K01\24010001】打开“in.dat”文件。

1在桌面上双击“我的电脑”图标,然后依次双击“D盘”,双击“K01”文件夹,双击“2401001”文件夹。

2显示文件夹的扩展名,如果打开文件“24010001”文件夹后显示“in.dat”文件为“in”文件,则说明系统隐藏了“文件的扩展名”,考试必须将之显示出来方能继续做题。

首先单击菜单栏中的“工具”,然后选择“文件夹选项”,单击“查看”,在“高级设置”中将“隐藏已知文件扩展名”前面的勾去掉,最后单击“确定”,此时“in.dat”中的后缀已经显示出来。

3用“文本文件”的方式打开“in.dat”文件。

首先选中“in.dat”文件,然后右击选择“打开方式”,在“打开方式”中选择“记事本”打开“in.dat”。

(5)【步骤3】在考生文件夹下建立“out.dat”文件

(6)【步骤4】根据题目要求将正确答案填入“out.dat”文件中。

本题目的要求将中间和尾部的*号全部删除,剩余前导*号和字母。

将新字符串存放到“out.dat”文件中,做题的时候细心些,共10行,写错一行扣4分。

(7)【步骤5】保存“out.dat”文件,进行评分(注意:

考试的时候没有评分环节!

)单击菜单栏中的“文件”,选择“保存”即可保存“out.dat”文件。

关闭“in.dat”、“out.dat”等文件后进行评分。

在“答题界面”单击“评分”按钮即可显示所得分数!

3、同类型题目列举:

第9题题目:

将字符串中的前导*号全部移动到字符串的尾部。

第19题题目:

将字符串尾部的*号全部删除,前面和中间的*号不删除。

第45题题目:

只删除字符串前导和尾部的*号,串中字母之间的*号不能删除。

第54题题目:

将字符串中的前导*号全部删除,中间和尾部的*号不删除。

第57题题目:

除了字符串前导和尾部*号之外,将串中其他*号全部删除。

第61题题目:

删除字符串中的所有的*号。

第65题题目:

除了字符串前导的*号之外,将串中其他*号全部删除。

4、编程题中涉及“删除*号”的相关题目:

10、71、93

5、编程题第10题的操作过程

(1)题目:

将字符串的前导*号不得多于n个;若多于n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。

例如,字符串中的内容:

*******A*BC*DEF*G****,若n的值为4,删除后,字符串中的内容应当是:

****A*BC*DEF*G****。

若n的值为8,则字符串任为:

*******A*BC*DEF*G****。

(2)分析:

将前导*号按照n的值进行舍去或不变,改变后将新的字符串存放在“out.dat”文件中即可。

(3)【步骤1】打开“编程题”题目,分析NONO函数

NONO()

{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。

*/

FILE*in,*out;

inti,n;chars[81];

in=fopen("D:

\\k01\\24010001\\in.dat","r");

out=fopen("D:

\\k01\\24010001\\out.dat","w");

for(i=0;i<10;i++){

fscanf(in,"%s",s);

fscanf(in,"%d",&n);

fun(s,n);

fprintf(out,"%s\n",s);

}

fclose(in);

fclose(out);

}

1FILE*in,*out;/*定义了两个文件类型的指针变量in和out*/

2inti;chars[81];/*定义了一个整型的变量i,用来表示循环的递增;定义了一个字符类型的一维数组s,用来存放后面题目中数据。

*/

3in=fopen("D:

\\k01\\24010001\\in.dat","r");/*in是文件指针,用来指向文件“in.dat”。

fopen("D:

\\k01\\24010001\\in.dat","r");以“r”读的方式打开“in.dat”文件*/

4out=fopen("D:

\\k01\\24010001\\out.dat","w");/*out是文件指针,用来指向文件“out.dat”。

fopen("D:

\\k01\\24010001\\out.dat","w")以”w”写的方式打开“out.dat”文件*/

5for(i=0;i<10;i++)/*循环语句,该循环将执行10次*/

6fscanf(in,"%s",s);/*从in文件所指向的数据源文件in.dat中读取一行字符串数据给一维数组s*/

7fscanf(in,"%d",&n);/*从in文件所指向的数据源文件in.dat中读取一个整型“%d”数据给一维数组s*/

8fun(s,n);/*调用函数fun,从题目得知fun函数要完成的事情是:

将字符串的前导*号不得多于n个;若多于n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。

*/

9fprintf(out,"%s\n",s);/*fprintf的意思是将数据输出到out指针指向的文件中,以“%s\n”格式方式输出,输出的数据是s,同学们一定要注意,此时的s是修改过的s。

*/

10fclose(in);/*关闭文件指针in。

*/

11fclose(out);/*关闭文件指针out,文件打开后要将其关闭。

*/

(4)【步骤2】根据考生文件夹【考试文件夹D:

\K01\24010001】打开“in.dat”文件。

1在桌面上双击“我的电脑”图标,然后依次双击“D盘”,双击“K01”文件夹,双击“2401001”文件夹。

2显示文件夹的扩展名,如果打开文件“24010001”文件夹后显示“in.dat”文件为“in”文件,则说明系统隐藏了“文件的扩展名”,考试必须将之显示出来方能继续做题。

首先单击菜单栏中的“工具”,然后选择“文件夹选项”,单击“查看”,在“高级设置”中将“隐藏已知文件扩展名”前面的勾去掉,最后单击“确定”,此时“in.dat”中的后缀已经显示出来。

3用“文本文件”的方式打开“in.dat”文件。

首先选中“in.dat”文件,然后右击选择“打开方式”,在“打开方式”中选择“记事本”打开“in.dat”。

(5)【步骤3】在考生文件夹下建立“out.dat”文件

(6)【步骤4】根据题目要求将正确答案填入“out.dat”文件中。

按照题目要求将每一行字符串和n作比较,如果大于n则删除多于的*号,否则什么也不变,将改动过后的新字符串存放在“out.dat”文件中,注意n就不输出到“out.dat”文件中了!

(7)【步骤5】保存“out.dat”文件,进行评分(注意:

考试的时候没有评分环节!

)单击菜单栏中的“文件”,选择“保存”即可保存“out.dat”文件。

关闭“in.dat”、“out.dat”等文件后进行评分。

在“答题界面”单击“评分”按钮即可显示所得分数!

二、字符串操作

(二)简单的字符操作

1、编程题中涉及“简单的字符操作”的相关题目:

26

2、编程题第26题的操作过程

(1)题目:

编写一个函数,从num个字符串中找出最长的一个字符串,并通过形参指针max传回该串地址。

(注意:

主函数中用****作为结束输入的标志)

(2)分析:

该题只需要从几个字符串中找到最长的字符串,放到“out.dat”文件中即可。

(3)【步骤1】打开“编程题”题目,分析NONO函数

NONO()

{

/*请在此函数内打开文件,输入测试数据,调用fun函数,

输出数据,关闭文件。

*/

charss[20][81],*ps;

intn,i=0;

FILE*rf,*wf;

rf=fopen("D:

\\k01\\24010001\\in.dat","r");

wf=fopen("D:

\\k01\\24010001\\out.dat","w");

fgets(ss[i],81,rf);

while(!

strncmp(ss[i],"****",4)==0)

{

i++;

fgets(ss[i],81,rf);

}

n=i;

fun(ss,n,&ps);

fprintf(wf,"%s",ps);

fclose(rf);

fclose(wf);

}

1FILE*rf,*wf;/*定义了两个文件类型的指针变量rf和wf*/

2charss[20][81],*ps;/*定义了一个20行81列的二维字符类型的数组,定义了一个字符类型的指针ps*/

3rf=fopen("D:

\\k01\\24010001\\in.dat","r");/*rf是文件指针,用来指向文件“in.dat”。

fopen("D:

\\k01\\24010001\\in.dat","r");以“r”读的方式打开“in.dat”文件*/

4wf=fopen("D:

\\k01\\24010001\\out.dat","w");/*wf是文件指针,用来指向文件“out.dat”。

fopen("D:

\\k01\\24010001\\out.dat","w")以”w”写的方式打开“out.dat”文件*/

5fgets(ss[i],81,rf);/*fgets(ss[i],81,rf);的含义是从rf所指向的文件“in.dat”中读入一个字符串到数组ss中*/

6while(!

strncmp(ss[i],"****",4)==0)/*比较字符串ss[i]和“*****”前4个字符是否相等,如果相等则返回为0,即已经到结尾(题目中说字符串以****结尾),在没有结束的情况下,执行循环体里面的语句。

*/

7i++;fgets(ss[i],81,rf);/*fgets(ss[i],81,rf);的含义是从rf所指向的文件“in.dat”中读入一个字符串到数组ss中,通过循环实现将所有的字符串读入到ss数组中*/

8fun(ss,n,&ps);/*调用函数fun,从题目得知fun函数要完成的事情是:

找出最长的字符串,其中最长字符串通过形参max传回给指针ps。

*/

9printf(wf,"%s",ps);/*fprintf的意思是将数据输出到out指针指向的文件中,以“%s\n”格式方式输出,输出的数据是ps,同学们一定要注意,此时的ps是最长的字符串。

*/

10fclose(in);/*关闭文件指针in。

*/

11fclose(out);/*关闭文件指针out,文件打开后要将其关闭。

*/

(4)【步骤2】根据考生文件夹【考试文件夹D:

\K01\24010001】打开“in.dat”文件。

1在桌面上双击“我的电脑”图标,然后依次双击“D盘”,双击“K01”文件夹,双击“2401001”文件夹。

2显示文件夹的扩展名,如果打开文件“24010001”文件夹后显示“in.dat”文件为“in”文件,则说明系统隐藏了“文件的扩展名”,考试必须将之显示出来方能继续做题。

首先单击菜单栏中的“工具”,然后选择“文件夹选项”,单击“查看”,在“高级设置”中将“隐藏已知文件扩展名”前面的勾去掉,最后单击“确定”,此时“in.dat”中的后缀已经显示出来。

3用“文本文件”的方式打开“in.dat”文件。

首先选中“in.dat”文件,然后右击选择“打开方式”,在“打开方式”中选择“记事本”打开“in.dat”。

(5)【步骤3】在考生文件夹下建立“out.dat”文件。

(6)【步骤4】根据题目要求将正确答案填入“out.dat”文件中。

将“in.dat”中最长的字符串复制后在“out.dat”中粘贴即可,非常简单,不要错了!

(7)【步骤5】保存“out.dat”文件,进行评分(注意:

考试的时候没有评分环节!

)单击菜单栏中的“文件”,选择“保存”即可保存“out.dat”文件。

关闭“in.dat”、“out.dat”等文件后进行评分。

在“答题界面”单击“评分”按钮即可显示所得分数!

3、

编程题中涉及“简单的字符操作”的相关题目:

37、59

4、编程题第59题的操作过程

(1)题目:

将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。

例如,如输入字符串“-1234”,则函数把它转换为整数值-1234

(2)分析:

将“in.dat”文件中的数字字符串中的数字赋值后,放到“out.dat”文件中即可。

(3)【步骤1】打开“编程题”题目,分析NONO函数

NONO()

{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。

*/

FILE*fp,*wf;

inti;

chars[20];

longn;

fp=fopen("D:

\\k01\\24010001\\in.dat","r");

wf=fopen("D:

\\k01\\24010001\\out.dat","w");

for(i=0;i<10;i++){

fscanf(fp,"%s",s);

n=fun(s);

fprintf(wf,"%ld\n",n);

}

fclose(fp);

fclose(wf);

}

1FILE*fp,*wf;/*定义了两个文件类型的指针变量fp和wf*/

2chars[20];/*定义了一个一维字符数组*/

3fp=fopen("D:

\\k01\\24010001\\in.dat","r");/*fp是文件指针,用来指向文件“in.dat”。

fopen("D:

\\k01\\24010001\\in.dat","r");以“r”读的方式打开“in.dat”文件*/

4wf=fopen("D:

\\k01\\24010001\\out.dat","w");/*wf是文件指针,用来指向文件“out.dat”。

fopen("D:

\\k01\\24010001\\out.dat","w")以”w”写的方式打开“out.dat”文件*/

5for(i=0;i<10;i++)/*控制循环,共循环10次,那么就意味着每个正确答案4分*/

6fscanf(fp,"%s",s);/*从fp所指向的文件“in.dat”文件中读入一个“%s”,即一个字符串给数组s*/

7n=fun(s);/*调用函数fun,从题目得知fun函数要完成的事情是:

将一个数字字符串转换为一个整数。

并将函数返回的值赋值给变量n*/

8fprintf(wf,"%ld\n",n);/*fprintf的意思是将数据输出到out指针指向的文件中,以“%ld\n”格式方式输出,输出的数据是n,同学们一定要注意,此时的n是整数不是字符串。

*/

9fclose(in);/*关闭文件指针in。

*/

10fclose(out);/*关闭文件指针out,文件打开后要将其关闭。

*/

(4)【步骤2】根据考生文件夹【考试文件夹D:

\K01\24010001】打开“in.dat”文件。

1在桌面上双击“我的电脑”图标,然后依次双击“D盘”,双击“K01”文件夹,双击“2401001”文件夹。

2显示文件夹的扩展名,如果打开文件“24010001”文件夹后显示“in.dat”文件为“in”文件,则说明系统隐藏了“文件的扩展名”,考试必须将之显示出来方能继续做题。

首先单击菜单栏中的“工具”,然后选择“文件夹选项”,单击“查看”,在“高级设置”中将“隐藏已知文件扩展名”前面的勾去掉,最后单击“确定”,此时“in.dat”中的后缀已经显示出来。

3用“文本文件”的方式打开“in.dat”文件。

首先选中“in.dat”文件,然后右击选择“打开方式”,在“打开方式”中选择“记事本”打开“in.dat”。

(5)【步骤3】在考生文件夹下建立“out.dat”文件。

(6)【步骤4】根据题目要求将正确答案填入“out.dat”文件中。

将“in.dat”中全部数据复制后在“out.dat”中粘贴即可,非常简单,不要错了!

(7)【步骤5】保存“out.dat”文件,进行评分(注意:

考试的时候没有评分环节!

)单击菜单栏中的“文件”,选择“保存”即可保存“out.dat”文件。

关闭“in.dat”、“out.dat”等文件后进行评分。

在“答题界面”单击“评分”按钮即可显示所得分数!

5、编程题中涉及“简单的字符操作”的相关题目:

30

6、编程题第30题的操作过程

(1)题目:

统计一行字符串中单词的个数,作为函数值返回。

(2)分析:

数“in.dat”文件中的每行单词的个数,然后将个数放到“out.dat”文件中即可。

提醒考生:

注意fprintf的格式!

(3)【步骤1】打开“编程题”题目,分析NONO函数

NONO()

{/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。

*/

FILE*rf,*wf;inti,num;charline[N],*p;

rf=fopen("D:

\\k01\\24010001\\in.dat","r");

wf=fopen("D:

\\k01\\24010001\\out.dat","w");

 

for(i=0;i<10;i++){

fgets(line,N,rf);

p=strchr(line,'\n');

if(p!

=NULL)*p=0;

num=fun(line);

fprintf(wf,"%d\n",num);

}

fclose(rf);fclose(wf);

}

1FILE*rf,*wf;/*定义了两个文件类型的指针变量rf和wf*/

2charline[N];/*定义了一个一维字符数组*/

3rf=fopen("D:

\\k01\\24010001\\in.dat","r");/*rf是文件指针,用来指向文件“in.dat”。

fopen("D:

\\k01\\24010001\\in.dat","r");以“r”读的方式打开“in.dat”文件*/

4wf=fopen("D:

\\k01\\24010001\

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2