2013年9月份国家计算机等级考试二级c语言题库(共100套)61-80

上传人:自*** 文档编号:78870568 上传时间:2019-02-15 格式:DOC 页数:67 大小:315KB
返回 下载 相关 举报
2013年9月份国家计算机等级考试二级c语言题库(共100套)61-80_第1页
第1页 / 共67页
2013年9月份国家计算机等级考试二级c语言题库(共100套)61-80_第2页
第2页 / 共67页
2013年9月份国家计算机等级考试二级c语言题库(共100套)61-80_第3页
第3页 / 共67页
2013年9月份国家计算机等级考试二级c语言题库(共100套)61-80_第4页
第4页 / 共67页
2013年9月份国家计算机等级考试二级c语言题库(共100套)61-80_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《2013年9月份国家计算机等级考试二级c语言题库(共100套)61-80》由会员分享,可在线阅读,更多相关《2013年9月份国家计算机等级考试二级c语言题库(共100套)61-80(67页珍藏版)》请在金锄头文库上搜索。

1、第六十一套请补充main函数,该函数的功能是:输出一个矩阵,要求非对角线上的元素赋值为0,对角线元素赋值为1。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在main函数的横线上填入所编写的若干表达式或语句。 试题程序: #include #include #define N 10void main() int bbNN; int I,j,n; system(CLS); printf( nInput n:n); scanf(%d,&n); for(I=0;In;I+)for(j=0;jn;j+)【1】;if(I=j)bbIj=【2】;if(【3】)bbIj=1;

2、printf( n* the result * n); for(I=0;In;I+) printf( nn);for(j=0;jn;j+)printf(%4d,bbIj); 【参考答案】 (1) bbij=0 (2) 1 (3) j=n-1-i 【考点分析】 本题考查: 二维数组元素赋值。 【解题思路】 填空1:本题的解题思路是先将所有元素置0,然后再将对角线上的元素置1,所以此空是先将当前元素置0。 填空2:如果当前元素的下标i和j相等,则此元素是主对角线元素,要将它赋值为1。 填空3:如果当前元素的下标i和j满足关系j=n-1-i,则此元素也是对角线元素,也要将它赋值为1。 【解题宝典】

3、对于n*n二维数组,通过二维数组元素的下标来表示数组对角线上的元素,即数组的行列下标相等。 下列给定的程序中,fun函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写(这里的单词是指有空格隔开的字符串)。例如,若输入: I am a student to take the examination 则应输出:I aM A studenT tO takE thE examinatioN 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #include #include #include #inc

4、lude void fun(char *p) int k=0; for ( ;*p;p+) if (k) /*found*/ if (p= ) k=0;/*found*/ *p=toupper( *(p-1); else k=1;void main()char chrstr64; int d; system(CLS); printf(nPlease enter an English sentence within 63 letters: ); gets(chrstr); d=strlen(chrstr); chrstrd= ; chrstrd+1=0; printf(nBofore chang

5、ing:n %s,chrstr); fun(chrstr); printf(nAfter changing:n %s,chrstr);【参考答案】 (1)错误:if(p= ) 正确:if(*p= ) (1) 错误:*p=toupper(*(p-1); 正确:*(p-1)=toupper(*(p-1); 【考点分析】 本题考查:toupper函数的用法,该函数功能是将小写字母转换为大写字母;指针型变量。 【解题思路】 本题比较简单,重点考查toupper函数的用法,该函数是将ch字符转换成大写字母,较多地应用了字符串处理函数。 请编写一个函数int fun(int *s,int t,int *k

6、),用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。 例如,输入如下整数: 876 675 896 101 301 401 980 431 451 777 则输出结果为6,980。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include #include #include int fun(int *s,int t,int *k) void main() FILE *wf; int a10= 876,675,896,101,301,401,980,431,451,777,k; syste

7、m(CLS); fun(a, 10, &k); printf(%d, %dn , k, ak);/*/ wf=fopen(out.dat,w); fprintf (wf,%d, %d, k, ak); fclose(wf);/*/【参考答案】 int fun(int *s,int t,int *k) int i; *k=0; /*k所指的数是数组的下标值*/ for(i=0;it;i+) if(s*ksi) *k=i; /*找到数组的最大元素,把该元素的下标赋给k所指的数*/ return s*k; /*返回数组的最大元素*/ 【考点分析】 本题考查:数组下标;求数组中最大值的算法。 【解题思

8、路】 本题中直接使用指针变量k,但在使用时要注意对k的指针运算,此外,一开始应让*k的值为数组中的某一下标值,即*k=0。 第六十二套给定程序中,函数fun的功能是:计算矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回。 注意:要求先累加主对角线元素中的值,然后累加反向对角线元素中的值。 例如,若N=3,有下列矩阵: 1 2 3 4 5 6 7 8 9 函数fun首先累加1、5、9,然后累加3、5、7,函数的返回值为30。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。 试题程序: #include #def

9、ine N 4/*found*/fun(int tN,int n) int I,sum; 【1】; for(I=0;In;I+) sum+=【2】; for(I=0;In;I+) sum+=tIn-I-【3】; return sum;main() int i,j,tN=21,2,13,24,25,16,47,38,29,11,32,54,42,21,3,10; printf(nThe original data:n); for(i=0;iN;i+) for(j=0;jN;j+)printf(%4d,tij);printf(n); printf(nThe result is:%d,fun(t,N

10、);【参考答案】 (1) sum=0 (2) tii (3) 1 【考点分析】 本题考查:变量初始化;n*n矩阵对角线下标的表示;累加操作。 【解题思路】 填空1:显然,首先初始化和为0。 填空2:从例题中我们可以了解,主对角线元素的行和列下标是相同的,那么填入tii。 填空3:对于反向对角线元素的行和列的下标,它们的关系是相加和为n-1,应填入1。 下列给定程序中,函数fun的功能是:从整数1到55之间,选出能被3整除且有一位上的数是5的数,并把这些数放在b所指的数组中,这些数的个数作为函数值返回。规定,函数中a1放个位数,a2放十位数。 请改正程序中的错误,使程序能得出正确的结果。 注意:

11、不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include /*found*/int fun(int *b); int k,a1,a2,I=0;/*found*/ for(k=10;k=55;k+) a2=k/10;a1=k-a2*10;if(k%3=0 & a2=5)| (k%3=0 & a1=5)bI=k;I+; /*found*/ return k;void main() int a100,k,m; m=fun(a); printf(The result is: n); for(k=0;km;k+)printf(%4d,ak); printf(n); 【参

12、考答案】 (1)错误:int fun(int *b);正确:int fun(int *b) (2)错误:for (k=10;k=55;k+) 正确:for(k=1;k=55;k+) (3)错误:return k;正确:return i; 【考点分析】 本题考查:函数定义,需根据题意并按照其一般形式定义;指针型变量;for循环变量的取值范围;return语句。 【解题思路】 (1)简单语法错误。 (2)从题目可知,选取的是1 55之间的数,所以应该从1开始判断。 (3)根据题意,返回能被3整除的数的个数,程序中由i来计算,所以返回的是i。假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串中前部的*号不得多余n个;若多余n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。 例如,字符串中的内容为*A*BC*DEF*G*,若n的值为2,删除后,字符串中的内容则应当是*A*BC*D

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号