1. 程序改错题 【问题描述】在如下程序中,找出错误并修改(每个*提示行下方有一处错误)。程序的功能:从用户处获得一个不包含大写英文字母的输入,如果用户输入中含大写英文字母,则要求用户再次输入,直至满足条件为止,并打印输出这个输入。 while True: N = input("请给出一个不包含大写英文字母的输入: ") flag = True #*********found************** for c in eval(N): if c in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ': flag = False break #*********found************** if flag: continue print(N)
时间: 2023-06-29 17:13:21 浏览: 290
修改后的代码如下:
```python
while True:
N = input("请给出一个不包含大写英文字母的输入: ")
flag = True
for c in N:
if c in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ':
flag = False
break
if flag:
print(N)
break
```
修改说明:
1. 第11行需要缩进,否则`print(N)`语句会在循环外执行。
2. 在第11行后面加上`break`语句,以跳出循环。这是因为当输入符合条件时,需要输出并结束程序,否则程序会一直循环下去。
相关问题
1、改错题:在改错时,不得删除改错标志(如:“/***1***/”等),请在该改错标志下方的下一行,根据程序功能改错;调试运行程序,且不得加行、减行、加句、减句。 程序功能:(源程序14_1.c) 将一个 char 型数的高 4 位和低 4 位分离,分别输出,如 22(二进制:00010110)输出为 1 和 6。 源程序(有错误的程序) #include <stdio.h> void main() { char a,b1,b2,c; scanf("%d",&a); /****** 1 ******/ b1=a<<4; /*b1 存放高 4 位*/ c=~(~0<<4); /****** 2 ******/ b2=a|c; /*b2 存放低 4 位*/ printf("%d,%d",b1,b2);
程序改错如下:
```c++
#include <stdio.h>
void main() {
char a, b1, b2, c;
scanf("%hhd", &a); // 1. 修正读入格式符为 %hhd
b1 = a >> 4; // 2. 修正位运算符为右移
c = ~(~0 << 4);
b2 = a & c; // 3. 修正位运算符为按位与
printf("%d,%d", b1, b2);
}
```
修改说明:
1. 由于 a 是 char 类型,应该使用 %hhd 格式符进行读入。
2. 高 4 位应该是右移操作,而不是左移。
3. 低 4 位应该是按位与操作,而不是按位或操作。
同时,由于要求不得加行、减行、加句、减句,因此只能在原来的代码基础上进行修改。
任务描述 实验教材p179 6.3.2节 1.程序改错与跟踪调试 请按教材中的线下完成跟踪
这个任务的主要目的是让学生通过实验教材p179 6.3.2节的内容,学习程序改错与跟踪调试的方法。学生需要按照教材中的指导,完成对程序错误的定位和修复工作。
首先,学生需要仔细阅读教材中相关的理论知识,了解程序改错与跟踪调试的基本原理和方法。然后,根据教材中提供的案例或示例程序,学生需要逐步跟踪程序的执行流程,找出程序中的错误并进行修复。在这个过程中,学生需要使用调试工具和技术,如断点调试、变量追踪等,来辅助定位和解决程序的问题。
在完成跟踪调试工作后,学生需要按照教材要求,对整个修复过程进行总结和反思。他们需要分析在跟踪调试过程中遇到的困难和挑战,总结出解决问题的方法和经验。同时,他们还需要总结出在今后的学习和工作中,如何更好地进行程序改错与跟踪调试的建议和思考。
通过这个实验任务,学生能够提高他们在程序改错与跟踪调试方面的能力和技术,更好地掌握相关知识和方法。这对于他们今后的学习和工作都有着重要的意义。
阅读全文