100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 全国计算机等级考试题库二级C操作题100套(第95套)

全国计算机等级考试题库二级C操作题100套(第95套)

时间:2021-12-16 01:25:35

相关推荐

全国计算机等级考试题库二级C操作题100套(第95套)

第95套:

给定程序中,函数fun的功能是:计算N×N矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回。注意:要求先累加主对角线元素中的值,然后累加反向对角线元素中的值。例如,若N=3,有下列矩阵:

1 2 3

4 5 6

7 8 9

fun函数首先累加1、5、9,然后累加3、5、7,函数的返回值为30。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

给定源程序:

#include <stdio.h> #define N 4 fun(int t[][N], int n) {int i, sum; ___1___; for(i=0; i<n; i++) sum+=___2___ ; for(i=0; i<n; i++) sum+= t[i][n-i-___3___] ; return sum; } main() {int t[][N]={21,2,13,24,25,16,47,38,29,11,32,54,42,21,3,10},i,j; printf("\nThe original data:\n"); for(i=0; i<N; i++) {for(j=0; j<N; j++) printf("%4d",t[i][j]); printf("\n"); } printf("The result is: %d",fun(t,N)); }

解题思路:

第一处:变量sum是用来存放主对角线元素和反向对角线元素之和,要对其进行初始化,所以应填:sum=0。

第二处:对主对角线元素值累加,所以应填:t[i][i]。

第三处:对反向对角线元素值累加,所以应填:t[i][n-i-1]。

例如,若给m输入 -100,给n输入90,则函数求得的一个根值为2.000。

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

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

给定源程序:

#include <stdio.h> #include <math.h> double funx(double x) {return(2*x*x*x-4*x*x+3*x-6); } double fun( double m, double n) {int r; r=(m+n)/2; while(fabs(n-m)<0.001) {if(funx(r)*funx(n)<0) m=r; else n=r; r=(m+n)/2; } return r; } main( ) {double m,n, root; printf("Enter m n : \n"); scanf("%lf%lf",&m,&n); root=fun( m,n ); printf("root = %6.3f\n",root); }

解题思路:

第一处:变量r应该定义为实数型double或浮点型float变量。

第二处:while必须先满足条件,才做循环体的内容,所以应改为:while(fabs(m-n)>0.001)。

假定输入的字符串中只包含字母和号。请编写函数fun,它的功能是: 除了字符串前导和尾部的号之外,将串中其它*号全部删除。形参h已指向字符串中第一个字母,形参p已指向字符串中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。

例如,字符串中的内容为:ABCDEFG*******,删除后,字符串中的内容应当是:ABCDEFG****。在编写函数时,不得使用C语言提供的字符串

函数。

注意: 部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括中填入你编写的若干语句。

给定源程序:

#include <stdio.h> void fun( char *a, char *h,char *p ) {} main() {char s[81],*t, *f; printf("Enter a string:\n");gets(s); t=f=s; while(*t)t++; t--; while(*t=='*')t--; while(*f=='*')f++; fun( s , f,t ); printf("The string after deleted:\n");puts(s); NONO(); }

解题思路:

本题是考察字符串的操作。

把r指针左边的字符仍存放字符串a首地址开始的位置上。把r指针和p指针中间的字符进行判断,其字符是否是’’,如果不是’’,则把这些字符放到第1步操作字符串a的后面。把p指针右边的字符放到第2步操作字符串a的后面。最后给字符串a加上结束符。

参考答案:

void fun( char *a, char *h,char *p ) {int j=0; char *q=a; while(*q && q < h) a[j++] = *q++ ; while(*h && *p && h < p) {if(*h != '*') a[j++] = *h ; h++; } while(*p) a[j++] = *p++ ; a[j] = 0 ; }

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。