题目
以下程序是顺序查找 ,[填空1] 应填() #include<stdio.h> int main(void) ( int i,key; int x[10] = { 2,3,24,56,46,7,87,89,9,6 ); printf ( "key =?" ); scanf("%d", &key ); i = 0; while( [填空1]&&i<10) ( [ 填空 2 ]; ) if( i<10 ) printf( "%d" in "%dn", key , i ); else printf( "not found" ); return 0; A key == x[i] B key != x[i]C key = x[i] D key<x[i]
以下程序是顺序查找 ,[填空1] 应填()
#include<stdio.h>
int main(void) {
int i,key;
int x[10] = { 2,3,24,56,46,7,87,89,9,6 };
printf ( "key =?" );
scanf("%d", &key );
i = 0;
while( [填空1]&&i<10) {
[ 填空 2 ];
}
if( i<10 )
printf( "%d" in "%d\n", key , i );
else printf( "not found" );
return 0;
A key == x[i]
B key != x[i]
C key = x[i]
D key<x[i]
题目解答
答案
本题的答案是B。
填空1应填选项B,即 key != x[i]。因为这个while循环的条件是只要key不等于当前数组元素x[i],就继续循环。如果找到了相等的元素,循环就会停止。所以填选项B表示只有key和当前数组元素不相等时才继续循环,符合要求。
解析
步骤 1:理解程序逻辑
程序的目的是在数组x中查找用户输入的key值。如果找到,输出key值和其在数组中的位置;如果未找到,输出"not found"。程序使用了while循环来遍历数组,直到找到key值或遍历完数组。
步骤 2:分析while循环条件
while循环的条件是两个条件的逻辑与(&&):一个是[填空1],另一个是i<10。i<10确保循环不会超出数组的边界。[填空1]需要确保循环在找到key值时停止。
步骤 3:选择正确的填空1
选项A(key == x[i])表示当key等于当前数组元素时,循环停止。这与程序逻辑相反,因为程序需要在找到key时停止循环。选项B(key != x[i])表示当key不等于当前数组元素时,循环继续。这符合程序逻辑,因为程序需要在找到key时停止循环。选项C(key = x[i])是赋值操作,不是比较操作,不符合逻辑。选项D(key < x[i])表示当key小于当前数组元素时,循环继续。这不符合程序逻辑,因为程序需要在找到key时停止循环,而不是在key小于当前数组元素时停止。
程序的目的是在数组x中查找用户输入的key值。如果找到,输出key值和其在数组中的位置;如果未找到,输出"not found"。程序使用了while循环来遍历数组,直到找到key值或遍历完数组。
步骤 2:分析while循环条件
while循环的条件是两个条件的逻辑与(&&):一个是[填空1],另一个是i<10。i<10确保循环不会超出数组的边界。[填空1]需要确保循环在找到key值时停止。
步骤 3:选择正确的填空1
选项A(key == x[i])表示当key等于当前数组元素时,循环停止。这与程序逻辑相反,因为程序需要在找到key时停止循环。选项B(key != x[i])表示当key不等于当前数组元素时,循环继续。这符合程序逻辑,因为程序需要在找到key时停止循环。选项C(key = x[i])是赋值操作,不是比较操作,不符合逻辑。选项D(key < x[i])表示当key小于当前数组元素时,循环继续。这不符合程序逻辑,因为程序需要在找到key时停止循环,而不是在key小于当前数组元素时停止。