首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
函数inputArr(int a[],int n)的功能是输入一组整数(输入0或输入的整数个数达到n时结束)存入数组a,并返回实际输入的整数个数。函数inputArr可以成功编译。但测试函数调用inputArr后,发现运行结果不正确。 请指出错误所
函数inputArr(int a[],int n)的功能是输入一组整数(输入0或输入的整数个数达到n时结束)存入数组a,并返回实际输入的整数个数。函数inputArr可以成功编译。但测试函数调用inputArr后,发现运行结果不正确。 请指出错误所
admin
2011-01-13
83
问题
函数inputArr(int a[],int n)的功能是输入一组整数(输入0或输入的整数个数达到n时结束)存入数组a,并返回实际输入的整数个数。函数inputArr可以成功编译。但测试函数调用inputArr后,发现运行结果不正确。
请指出错误所在的代码行号,并在不增加和删除代码行的情况下进行修改,写出修改正确后的完整代码行,使之符合上述设计意图。
[C函数]
选项
答案
[*]
解析
该函数中出现的错误是编写C程序时的常见错误。scanf是C标准库函数中的格式化输入函数,其原型如下:
int scanf(char *format,...);
使用时,第一个实参是格式控制串,之后的实参是地址1,地址2,……
在本题中,要求以十进制整数格式输入一个整数并存入a[k],数组元素a[k]实质上一个整型变量,必须用“&”求得a[k]的地址作为实参调用scanf函数,因此,第4行出错,正确代码应为“scan"%d",&a[k]);”。
C程序中将相等运算符“==”误用为赋值运算符“=”也是常见的一个错误,由于“=”也是合法的运算符并且C语言中用0和非0来表示逻辑假和逻辑真,因此在应产生逻辑值的地方产生了其他数值也可以,因此该错误通常只能用人工检查和排除。第6行的正确代码应为“if(k=n)break;”。
在该程序中,结束循环的一个条件是k等于n,另一个条件是输入的整数为0。另外,do-while的循环条件为真(非0)时要继续循环,因此,循环条件应该是判断输入的值不等于0。观察循环体中与数组元素有关的部分,如下所示:
scanf("%d",&a[k]);
k++;
也就是说输入为0时存入了a[k],而循环判断条件“a[k]==0”中的a[k]相对于刚存入了0的数组元素来说已经是a[k+1]了,因此正确的条件为“a[k-1]!=0”。
转载请注明原文地址:https://kaotiyun.com/show/h6jZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
纸张与()是使用喷墨打印机所需的消耗品。
某单位的统计报表比较多,采用表号(报表的编号)的好处是______。
()不属于信息污染。
要使Word能自动提醒英文单词的字母拼写是否正确,应设置Word的(47)选项功能。
数据分析报告的编写原则中不包括(70)。
在Word编辑状态下,有些英文单词或汉字下面会自动加上红色或绿色的波浪型细下划线。以下叙述中,“波浪型细下划线(44)”是错误的。
假设100个数据的平均值为82.31,其中有10个数据又发生了如下增减变化:+3.52,+2.87,-4.13,+5.34,-2.87,+2.50,-3.52,+4.23,-5.04,+0.10,则新的平均值变为(26)。
在统计学中,用来衡量一个样本中各个数据波动大小的量是______。
下列关于防火墙的叙述中,不正确的是(17)。
下列选项中,准确表达“甲和乙不可能都参加考试”含义的是(35)。
随机试题
休克患者补液1500ml后,动态监测中心静脉压值为25cmH2O,表示
患者男性,25岁,2个月前出现左下腹痛,腹泻,排黏液脓血便,每日4~6次,排便后腹痛缓解。四肢关节疼痛。查体:腹软,腹部未及包块,左下腹压痛,可能的诊断是
合同义务转移的效力包括()。
稳定性与适应性相结合原则是指()及其形式既要有相对的稳定性,又要与环境相适应,随环境的重大变化而调整。
下列关于价格策略的说法不正确的有()。
四班三运转轮休制的循环周期不可能为()。
所谓信息系统集成是指()。
“卡路里”是热量单位,物理学上规定,(),简称“卡”,在汉语中,把“千卡”称为“大卡”。
学校食堂里,肉类有鸡肉、猪肉、牛肉、羊肉、鱼肉;蛋类有鸡蛋、咸鸭蛋、鹅蛋、松花蛋;蔬菜有白菜、菠菜、花菜。小华每天中午都去食堂吃饭,都点三个不同的菜,其中至少包括肉类、蛋类、蔬菜中的两种,问至少经过多少天,可以确定小华有两天点的菜完全相同?
事务一旦提交,对数据库的修改就是永久的是指()。
最新回复
(
0
)