问答题 [说明] 本程序中预设了若干个用户名和口令。用户输入正确的用户名后,可以查找对应的口令,一旦输入结束标记“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。