第四章 阅读程序

第一课 模拟策略

【NOIP2011】(累加)

例:

  1. #include <iostream>
  2. using namespace std;
  3. int main(){
  4. int i,n,m,ans;
  5. cin>>n>>m;
  6. i=n;
  7. ans=0;
  8. while (i<=m){
  9. ans+=i;
  10. i++;
  11. }
  12. cout<<ans<<endl;
  13. return 0;
  14. }

360截图20250812204621958.jpg

答案:× × √ √ B A

解析: 360截图20250812205130993.jpg

第二课 字符处理

【NOIP2009】(二分字符排序)

例:

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. const int maxn=50;
  4. void getnext(char str[]){
  5. int l=strlen(str),i,j,k,temp;
  6. k=l-2;
  7. while (k>=0 && str[k]>str[k+1]) k--;
  8. i=k+1;
  9. while (i<l && str[i]>str[k]) i++;
  10. temp=str[k];
  11. str[k]=str[i-1];
  12. str[i-1]=temp;
  13. for (i=l-1;i>k;i--){
  14. for (j=k+1;j<i;j++){
  15. if (str[j]>str[j+1]){
  16. temp=str[j];
  17. str[j]=str[j+1];
  18. str[j+1]=temp;
  19. }
  20. }
  21. }
  22. return ;
  23. }
  24. int main(){
  25. char a[maxn];
  26. int n;
  27. cin>>a>>n;
  28. while (n>0){
  29. getnext(a);
  30. n--;
  31. }
  32. cout<<a<<endl;
  33. return 0;
  34. }

360截图20250813161402228.jpg

答案:× √ √ √ A B

解析: 360截图20250813161619313.jpg