题目:
某次考试有20个单项选择题,下面是这20个题的正确答案:
1.B 6.A 11.B 16.C
2.D 7.B 12.C 17.C
3.A 8.A 13.D 18.B
4.A 9.C 14.A 19.D
5.C 10.D 15.D 20.A
采用数组存储上述20个标准答案,要求用户输入考生的答案,并采用另外一个数组存储。输入考生的20个答案以后,程序显示该生是否通过考试(答对题数≥12个算通过,否则不通过),并显示考生答错的题数和题号。
输入有效性检验:只能接受A、B、C、D4个字符。
代码:
#include<iostream>
using namespace std;
int main()
{
char *rightAnswer,*answer;
int num=0,count;
rightAnswer=new char[20];
answer=new char[20];
//存储正确答案
rightAnswer[2]=rightAnswer[3]=rightAnswer[5]=rightAnswer[7]=rightAnswer[13]=rightAnswer[19]='A';
rightAnswer[0]=rightAnswer[6]=rightAnswer[10]=rightAnswer[17]='B';
rightAnswer[4]=rightAnswer[8]=rightAnswer[11]=rightAnswer[15]=rightAnswer[16]='C';
rightAnswer[1]=rightAnswer[9]=rightAnswer[12]=rightAnswer[14]=rightAnswer[18]='D';
//输入并存储学生答案
cout<<"请输入学生答案:";
for(count=0;count<20;count++)
{
cin>>answer[count];
if(answer[count]!='A'&&answer[count]!='B'&&answer[count]!='C'&&answer[count]!='D')
cout<<"错误!"; //输入有效性检验
}
for(count=0;count<20;count++)
{
if(rightAnswer[count]!=answer[count])
{
num=num+1;
cout<<(count+1)<<" ";
}
}
cout<<endl;
if(num<=8)
cout<<"通过"<<endl;
else
cout<<"不通过"<<endl;
cout<<"答错"<<num<<"道题";
delete []rightAnswer;
delete []answer;
return 0;
}