2012全国计算机二级C语言(C++)上机编程题技巧总结和答案 下载本文

分析:in.dat结合NONO函数中的fscanf函数可以得到,函数将整数3给了m,将字符串:ABCDEFGHIJK给了数组a (6) 打开out.dat

① 将in.dat中第一行中的字符的前3个字母移动到最后

② 依次类推将得到正确的结果。 (7) 保存交卷

第三种类型:数学问题一,将两个数字按照要求合并成一个数字

1、 对应题库中的题目编号:13、38、44、46、63、69、78、88、94、95、96 2、 试题举例:以13题为例

(1) 分析题目:将a中十位和个位数依次放在变量c的百位和个位上,b中的十位和个位依次

放在变量c的十位和千位上

(2) 分析NONO函数:

(3) 在fun函数中输入测试数据,编译,执行,该题函数返回void则无需return语句,在执

行窗口中需要输入12空格45回车后,出现下图结果。

(4) 打开in.dat,fscanf(rf, \第一行中将45给了变量a,将12给了变

量b

(5) 打开out.dat。fprintf(wf, \输出格式一定要注意,

如下图所示,否则不得分。

(6) 保存交卷

第四种类型:数学问题二,二维数组相关类型题目

1、 题库中对应题目编号:15、17、24、26、31、32、40、41、43、50、81 2、 考题举例:以15题为例

(1) 题目分析:将M行N列的二维数组中的数据,按行的顺序依次放到二维数组中 (2) NONO函数:

(3) 在fun函数中输入测试数据,编译,执行,该题函数返回void则无需return语句,

出现下图结果。

(4) 打开in.dat。fscanf(rf, \%d\&mm, &nn) ;从in.dat中第一行输入两个整型数,

第一个3给变量mm表示数组中的行,第二个4给变量nn表示数组中的列。

for(i = 0 ; i < mm ; i++)

for(j = 0 ; j < nn ; j++) fscanf(rf, \将mm*nn个整数放到二维数组w中,即读取二维数组的数据。例如第一行mm为3,nn为4,则应该有一个3行4列的二维数组。

(5) 打开out.dat。根据for(i = 0 ; i < n ; i++) fprintf(wf, \a[i]) ; fprintf(wf,

\;格式进行数据的输出。for(i = 0 ; i < n ; i++) fprintf(wf, \a[i]) ;表示将n个二维数组元素以=的形式输出到out.dat中,以第一个二维数组为例即将

以行的形式进行输出,结果如下:

第一个33前面要加一个空格,因为=要求输出的宽度为3,但是33这个数字只占了2个的宽度,因此必须在33前面加一个空格,依次类推,第二33至55都要在前面加一个空格。输完数据后要记得执行fprintf(wf, \输出一个换行符。将题目中其它的二维数组修改后的结果如下:

(7) 保存交卷

第五种类型:找出数组中的最大值或者最大值所在的下标

1. 题库中对应题目编号:18、29、36、66、83、55 2. 考题举例:以18题为例

(1) 题目要求:求出数组中最大数的下标并存放在k所指的存储单元中 (2) NONO函数:

(3) 在fun函数中输入测试数据,编译,执行,该题函数返回int则需return语句,另外

题目中严格要求k返回的是最大值下标,因此必须给*k初始值0,出现下图结果。

(4) 打开in.dat文件。NONNO函数中:

说明的信息是将10个据通过fscanf函数读入到数组a中,从10个数据中找到最大值及其下标

分析:in.dat可以发现,里面的数据都是10列,总共有10行,因此只要将每一行的最大值及其下标找出来存放在out.dat中即可。 (5) 打开out.dat并清空文件里面的数据

该语句将最大值下标k及其最大值以%d,%d的

形式输出,结合in.dat中的第一行数据不难发现最大值是121,它所在的下标是1(补充:下标是从0开始的),因此将1,121输入到out.dat中的第一行,记得在121后面加上回车进行换行。

(6) 保存交卷

第六种类型:字符串操作三。包括统计单词、字符的个数,比较字符串,转换字符串

1、题库中对应题目编号:26,30,37,40,53,56,59,60,74(比较特殊,多练习) 2、考题举例:以53题为例

(1) 题目要求:求出ss 所指字符串中指定字符的个数,例如字符串:123412132,输入的字符

为:1,则输出为:3。该类型的题目一定要知道哪个字符需要计算个数。

(2) NONO函数:

(3) 在fun函数中输入测试数据,编译,执行,该题函数返回int则需return语句,出现下

图结果。

(4) 打开in.dat文件。

NONO函数中的两个fscanf分别从in.dat中读取两行数据给数组a和数组b,以第一行和第二行数据为例,数组a存储字符串为:hsfgjkdgfdgfdgkfdjgkldf,数组b存储字符为:h,做题时需要从字符串中找出字符h的个数,为1

(5) 打开out.dat文件,并清空里面的数据

首先程序先将*b的值赋值给变量ch,通过in.dat中分析可以得到,*b存放的就是指定的字符,以第一行为例就应该为h。