【PAT (Basic Level) Practice】——【简单模拟】1076 Wifi密码

该博客介绍了一个编程题目,要求编写程序将一系列选择题的答案转换为WiFi密码,其中每个正确答案对应一个数字(A-1,B-2,C-3,D-4)。输入包含题目数量及每个题目的选项,输出为转换后的密码。提供的代码实现了该功能,并成功获得了满分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一【题目难度】

  • 乙级

二【题目编号】

  • 1076 Wifi密码 (15 分)

三【题目描述】

  • 下面是微博上流传的一张照片:“各位亲爱的同学们,鉴于大家有时需要使用 wifi,又怕耽误亲们的学习,现将 wifi 密码设置为下列数学题答案:A-1;B-2;C-3;D-4;请同学们自己作答,每两日一换。谢谢合作!!~”—— 老师们为了促进学生学习也是拼了…… 本题就要求你写程序把一系列题目的答案按照卷子上给出的对应关系翻译成 wifi 的密码。这里简单假设每道选择题都有 4 个选项,有且只有 1 个正确答案。
    在这里插入图片描述

四【题目示例】

  • 输入格式:
    输入第一行给出一个正整数 N(≤ 100),随后 N 行,每行按照 编号-答案 的格式给出一道题的 4 个选项,T 表示正确选项,F 表示错误选项。选项间用空格分隔。

  • 输出格式:
    在一行中输出 wifi 密码。

  • 输入样例:
    8
    A-T B-F C-F D-F
    C-T B-F A-F D-F
    A-F D-F C-F B-T
    B-T A-F C-F D-F
    B-F D-T A-F C-F
    A-T C-F B-F D-F
    D-T B-F C-F A-F
    C-T A-F B-F D-F

  • 输出样例:
    13224143

五【解题思路】

  • 这个题目还是比较简单的,只需要扫描输入,按照对应的结果输出即可。只是有一个坑点,我们需要用 g e t c h a r ( ) getchar() getchar()函数吸收多余的空格和换行,否则会导致结果出错

六【最终得分】

  • 15分

七【代码实现】

#include<stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    getchar();
    for(int i = 0;i<n;i++)
    {
        for(int j = 0;j<4;j++)
        {
            char no,answer;
            scanf("%c-%c",&no,&answer);
            getchar();
            if(answer == 'T')
            {
                if(no == 'A')
                {
                    printf("1");
                }
                else if(no == 'B')
                {
                    printf("2");
                }
                else if(no == 'C')
                {
                    printf("3");
                }
                else if(no == 'D')
                {
                    printf("4");
                }
            }
        }
    }
    return 0;
}

八【提交结果】

在这里插入图片描述

### 关于PAT Basic Level Practice的测试点及题目解析 #### 题目难度分级 PAT(Programming Ability Test)是由浙江大学举办的计算机程序设计能力考试,分为不同级别。其中乙级即Basic Level主要面向初学者,考察基本编程技能[^1]。 #### 测试点特点 对于PAT Basic Level中的某些特定题目而言,其测试点设置较为严格。例如,在处理字符串匹配类问题时,需要注意算法逻辑中何时应当终止循环以防止不必要的重复计算;而在涉及数值运算的问题里,则可能因为边界条件而增加复杂度[^3]。 #### 编程语言的选择影响 值得注意的是,尽管大部分简单题目可以作为学习某种新语言的良好实践材料,但在实际操作过程中可能会遇到由于所选语言特性而导致难以通过全部测试点的情况。比如Java在面对部分效率敏感型试题时表现不佳,这可能是由于该语言本身的执行速度相对较慢以及内存管理方式等因素造成的。因此有时不得不转而采用其他更适合解决此类问题的语言版本来完成解答[^2]。 ```cpp #include<bits/stdc++.h> using namespace std; int a[100000]; int c=1; void getPrime(){ int flag=0; for(int i=2;i<105000;i++){ flag=1; for(int j=2;j<=sqrt(i);j++){ if(i%j==0){ flag=0; break; } } if(flag==1) a[c++]=i; } } int main(){ int m,n,i,t=1; scanf("%d %d",&m,&n); getPrime(); for(i=m;i<=n;i++){ if(t%10==1){ printf("%d",a[i]); t++; }else{ printf(" %d",a[i]); t++; } if((t-1)%10==0) printf("\n"); } return 0; } ``` 上述C++代码展示了如何实现一个简单的质数打印功能,并且针对输出格式进行了特殊处理以满足特定要求。这段代码很好地体现了编写高效解决方案的重要性,尤其是在应对像PAT这样的在线评测系统时[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IronmanJay

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值