当前位置: 首页icon 51CTO软考 > 软考资讯 >考试科目 >2021年5月程序员模拟题下午(二)之四

2021年5月程序员模拟题下午(二)之四

作者:wx611cbc2c011022023-12-06 01:00:15
备考咨询 刷题指导
添加专属学姐
下载资料 2024上半年软考备考资料+考试大纲
下载按钮 下载
引号

摘要:对于【程序员】软考考试而言,试题无疑是最重要的学习资料之一。在软考备考过程中,吃透试题、掌握试题所考知识点、熟悉试题的出题思路,对我们提升分数的效果是最明显的,通过对试题的反复练习,还可以查漏补缺。今天,给大家带来【2021年5月程序员模拟题下午(二)】部分试题的详解,一起来看看吧~1、【问题 2】函数inputArr(int a[], int n)的功能是输入一组整数

引号
摘要:对于【程序员】软考考试而言,试题无疑是最重要的学习资料之一。在软考备考过程中,吃透试题、掌握试题所考知识点、熟悉试题的出题思路,对我们提升分数的效果是最明显的,通过对试题的反复练习,还可以查漏补缺。今天,给大家带来【2021年5月程序员模拟题下午(二)】部分试题的详解,一起来看看吧~



1、【问题 2】函数inputArr(int a[], int n)的功能是输入一组整数(输入0或输入的整数个数达到n时结束)存入数组 a,并返回实际输入的整数个数。函数 inputArr 可以成功编译。但测试函数调用inputArr后,发现运行结果不正确。请指出错误所在的代码行号,并在不增加和删除代码行的情况下进行修改,写出修改正确后的完整代码行,使之符合上述设计意图。【C 函数】
答案:

【问题2】
1.jpg


答题解析:

【问题2】该函数中出现的错误是编写 C程序时的常见错误。scanf 是 C标准库函数中的格式化输入函数,其原型如下:

int scanf(char *format ,...);

使用时,第一个实参是格式控制串,之后的实参是地址1,地址 2,…

在本题中,要求以十进制整数格式输入一个整数并存入 a[k] ,数组元素a[k]实质上一个整型变量,必须用"&"求得 a[k]的地址作为实参调用 scanf 函数,因此,第 4行出错,正确代码应为"scanf("%d&a[k]);"。

C程序中将相等运算符"="误用为赋值运算符"="也是常见的一个错误,由于“=”也是合法的运算符并且 C语言中用 0 和非 0来表示逻辑假和逻辑真,因此在应产生逻辑值的地方产生了其他数值也可以,因此该错误通常只能用人工检查和排除。第 6 行的正确代码应为"if (k==n)break;"。

在该程序中,结束循环的一个条件是k等于n,另一个条件是输入的整数为0。另 外,do-whi1e的循环条件为真(非0)时要继续循环,因此,循环条件应该是判断输入的值不等于 0。观察循环体中与数组元素有关的部分,如下所示:

scanf("%d",&a[k]);

k++;

也就是说输入为 0 时存入了a[k],而循环判断条件"a[k]==0"中的 a[k]相对于刚存入了0的数组元素来说已经是a[k+l] 了,因此正确的条件为 "a[k-l]!=0"。



查看完整试题>>>


代理合作学习群