计算机二级C语言考试公共基础知识(7)

2020-02-21 23:20

填空2:将字符串中的数字字符\到\的个数都保存在数组bb[10]中。*p-'0'实现将数字字符转换成对应的数字。

填空3:由于奇数数字字符的个数存于bb[1]、bb[3]、bb[5]、bb[7]、bb[9]中,所以for循环的目的是将这些元素分别赋给num[0]、num[1]、num[2]、num[3]、num[4]。 7、

#include #include #include void main() {

int x,y,z,t; system(\

printf(\ scanf(\ if(【1】) {

t=x; x=y; y=t;

}/*交换x,y的值*/ if(【2】) {

t=z; z=x; x=t;

}/*交换x,z的值*/ if(【3】) {

t=y; y=z; z=t;

}/*交换z,y的值*/

printf(\

printf(\}

【参考答案】

31

(1) x>y (2) x>z (3) y>z 【解题思路】

填空1:由最后的输出函数printf()可以推测,变量x中存放最小的数,变量y中存放中间的数,变量z中存放最大的数。如果x>y,则将两数进行交换。 填空2:如果x>z,则将两数进行交换。 填空3:如果y>z,则将两数进行交换。 8、 9、

程序改错题: 1、

#include #include #include double fun(int m) {double y=1.0; int i;

/*************found**************/ for(i=2;i

/*************found**************/ y-=1/(i*i); return(y); }

void main() {int n=5;

system(\

printf(\}

【参考答案】

(1)for(i=2;i<=m; i++)

32

(2)y-=1.0/(i*i); 【考点分析】

本题考查:for循环语句的循环条件;变量数据类型的强制转换。 【解题思路】

该题是一道简单的计算题,循环条件for(i=2;i

#include #define N 20

int fun(int n, int *a)

/*************found**************/ { int i,j,k,sum; sum=0;

for(k=3,i=0;i

/*************found**************/ if(sum%4=2) a[j++]=sum; }

/*************found**************/ return j; }

void main()

{int a[N],d,n,i;

printf(\scanf(\ d=fun(n,a);

printf(\

for(i=0;i

【参考答案】

(1)int i,j=0,k,sum; (2)if(sum%4==2) (3)return j++; 【考点分析】

本题考查:变量初始化;if语句条件表达式,区别\=\和\==\;return语句完成函数值的

33

返回。

【解题思路】

(1)变量j用于控制数组下标,使用前应初始化为0。

(2)这里混淆了\==\与\=\区别,\==\是比较运算符,\=\是赋值运算符。 (3)因为数组的下标值是从0开始的,所以要返回数组元素的个数时应将下标值加1。 3、

#include #define N 100

int fun(int *s, int n) {

int i,j,k,a,b,c; j=0;

for(i=100; i

/*************found**************/ k=n; a=k; k/=10;

/*************found**************/ b=k/10; c=k/10;

if(a==b && a==c)

s[j++]=i; }

return j; }

void main() {

int a[N], n,num=0, i; do {

printf(\ scanf(\ }

while(n > 1000); num= fun(a,n);

34

printf(\ for(i=0; i

【参考答案】 (1)k=i; (2)b=k; 【解题思路】

(1)i是当前要被判断的数,因为i是循环变量,所以将i的值赋给k再进行运算。

(2)b是存放十位上的数,但前面已经除以了一个10,即原数的十位已经变成了个位,所以这里用求余就可以了。 4、

#include #include double fun(int n) {

double result=1.0; while(n>1&&n<170)

/*************found**************/ result*=--n;

/*************found**************/ return; }

void main() {int n;

system(\

printf(\ scanf(\

printf(\}

【参考答案】

(1)result*=n--; (2)return result; 【解题思路】

该题采用循环语句计算n的阶乘。当n大于1且小于170时,令result与n相乘,同时n自动减1,循环至n=2(n=1时无须相乘)。最后将阶乘的积result返回给主调函数。

35


计算机二级C语言考试公共基础知识(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:Adghgga中小企业财务管理现状及对策

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: