问答题
[说明]
本程序中预设了若干个用户名和口令。用户输入正确的用户名后,可以查找对应的口令,一旦输入结束标记“end”,程序结束。
[C++程序]
#include <iostream. h>
#include <string. h>
class User
{ protected:
char user[10];
char pass[7];
public:
User(char[ ],char[]);
{{U}}(1) {{/U}}{return user;}
{{U}}(2) {{/U}}{return pass;}
};
User::User(char u[],char p[])
{ strcpy(user,u);
strcpy(pass,p); }
void main()
{ User ua[]={User("Li","123456"),User("wang","654321"),User("Song","666666")
char name[10];
while(1)
cout< < "输入用户名:";
cin> >name;
if({{U}} (3) {{/U}}= =0) break;
for(int i=0;i<3;i+ +)
if(strcmp(name,ua[i].getuser()) = =0){
cout< <"密码:" < < ua[i].getpass() < <endl;
{{U}}(4) {{/U}};
if({{U}} (5) {{/U}})cout< <"该用户不存在!" < <endl;
}
}
【正确答案】
【答案解析】(1) char *getuser() (2) char *getpass()
(3) strcmp(name, "end") (4) break
(5) i= =3或i>=3或i>2或其他等效形式
[解析] 由上下文可知,User类中包括数据成员User和pass,分别存储用户名和口令,另有一个构造函数和getuser()、getpass()两个成员函数,分别用于获取用户名和口令。main()中包含一个User类型的数组ua,当用户输入一个用户名后,在ua中查找,若找得到则输出对应的口令,否则输出相应的提示信息。
(1)~(2)由于user和pass属性都是字符串类型,这里的返回值类型为char *;
(3)此处给出了退出程序的判断条件,即输入的用户名等于“end”;
(4)此处的for循环用于查找用户名,若找到了可即刻退出循环;
(5)当输入的用户名不正确时,for循环一直执行直到i等于3。