从键盘分两行输入整形数据列表L1和L2,列表元素间用空格分 连接列表L1和L2生成新的列表L3,在L3的末尾添加一个整形数据123,删除L3中的第一个数据,输出最后的L3列表。
时间: 2023-06-02 19:06:44 浏览: 94
这是一个编程问题,我可以帮你解答。以下是Python代码实现:
```python
# 从键盘输入整形数据列表L1和L2,用空格分隔,转换为list类型
L1 = list(map(int, input().split()))
L2 = list(map(int, input().split()))
# 将L1和L2合并为L3
L3 = L1 + L2
# 在L3的末尾添加一个整形数据123
L3.append(123)
# 删除L3中的第一个数据
del L3[0]
# 输出最后的L3列表
print(L3)
```
你可以将以上代码复制到Python编译器中运行,输入L1和L2的值,程序就会输出最终的列表L3。
相关问题
汇编语言编程设计输出九九乘法表,从键盘输入选项,查找对应结果并标记输出,数据的
定义使用十进制数,按照从小到大的顺序存放在内存中。
以下是汇编代码实现:
```assembly
.model small
.stack 100h
.data
option db ?
num1 db ?
num2 db ?
result db ?
.code
mov ax, @data
mov ds, ax
; 输出九九乘法表
mov cx, 9
mov bx, 1
L1:
mov num1, bx
mov cx, 9
mov bx, 1
L2:
mov num2, bx
mul num1 ; AX = num1 * num2
mov result, al
mov dl, num1
add dl, 30h ; 将数字转换为字符
mov ah, 02h ; DOS中断21h,输出一个字符
int 21h
mov ah, 02h ; 输出乘号
mov dl, '*'
int 21h
mov dl, num2
add dl, 30h ; 将数字转换为字符
mov ah, 02h ; 输出一个字符
int 21h
mov ah, 02h ; 输出等号
mov dl, '='
int 21h
mov dl, result
add dl, 30h ; 将数字转换为字符
mov ah, 02h ; 输出一个字符
int 21h
mov ah, 02h ; 输出空格
mov dl, ' '
int 21h
inc bx
cmp bx, 10
jne L2
mov ah, 02h ; 输出换行符
mov dl, 0dh
int 21h
mov dl, 0ah
int 21h
inc num1
cmp num1, 10
jne L1
; 从键盘输入选项并查找对应结果并标记输出
mov ah, 01h ; DOS中断21h,等待输入一个字符
int 21h
sub al, 30h ; 将字符转换为数字
mov option, al
mov cx, 9
mov bx, 1
L3:
mov num1, bx
mov cx, 9
mov bx, 1
L4:
mov num2, bx
mul num1 ; AX = num1 * num2
mov result, al
cmp result, option
je FOUND
inc bx
cmp bx, 10
jne L4
inc num1
cmp num1, 10
jne L3
jmp NOTFOUND
FOUND:
mov dl, num1
add dl, 30h ; 将数字转换为字符
mov ah, 02h ; 输出一个字符
int 21h
mov ah, 02h ; 输出乘号
mov dl, '*'
int 21h
mov dl, num2
add dl, 30h ; 将数字转换为字符
mov ah, 02h ; 输出一个字符
int 21h
mov ah, 02h ; 输出等号
mov dl, '='
int 21h
mov dl, option
add dl, 30h ; 将数字转换为字符
mov ah, 02h ; 输出一个字符
int 21h
mov ah, 02h ; 输出空格
mov dl, ' '
int 21h
jmp END
NOTFOUND:
mov ah, 02h ; 输出字符串"Not found"
mov dx, offset notfound
int 21h
jmp END
END:
mov ah, 4ch ; DOS中断21h,程序结束
int 21h
notfound db 'Not found$'
end
```
在程序中,首先实现了输出九九乘法表的功能。然后,从键盘输入选项,并在九九乘法表中查找对应的结果。如果找到了,则输出标记后的结果;否则,输出字符串"Not found"。
7-1 两个有序链表序列的合并 分数 20 作者 DS课程组 单位 浙江大学 已知两个非降序链表序列S1与S2,设计函数构造出S1与S2合并后的新的非降序链表S3。 输入格式: 输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。 输出格式: 在一行中输出合并后新的非降序链表,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL。用C语言做
以下是C语言实现的代码:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct Node *PtrToNode;
struct Node {
int Data;
PtrToNode Next;
};
typedef PtrToNode List;
List ReadList(); // 读取链表
List Merge(List L1, List L2); // 合并链表
void PrintList(List L); // 输出链表
int main()
{
List L1, L2, L3;
L1 = ReadList();
L2 = ReadList();
L3 = Merge(L1, L2);
PrintList(L3);
return 0;
}
List ReadList()
{
int n;
scanf("%d", &n);
List L = (List)malloc(sizeof(struct Node)); // 头结点
L->Next = NULL;
PtrToNode rear = L; // rear指向链表最后一个结点
while (n != -1) {
PtrToNode newNode = (PtrToNode)malloc(sizeof(struct Node));
newNode->Data = n;
newNode->Next = NULL;
rear->Next = newNode;
rear = newNode;
scanf("%d", &n);
}
return L;
}
List Merge(List L1, List L2)
{
List L3 = (List)malloc(sizeof(struct Node)); // 头结点
L3->Next = NULL;
PtrToNode rear = L3; // rear指向链表最后一个结点
PtrToNode p1 = L1->Next, p2 = L2->Next;
while (p1 && p2) {
if (p1->Data < p2->Data) {
rear->Next = p1;
p1 = p1->Next;
rear = rear->Next;
} else {
rear->Next = p2;
p2 = p2->Next;
rear = rear->Next;
}
}
// 将未加入链表的节点加入到L3中
if (p1) {
rear->Next = p1;
} else {
rear->Next = p2;
}
// 释放L1和L2的头结点
free(L1);
free(L2);
return L3;
}
void PrintList(List L)
{
if (L->Next == NULL) {
printf("NULL");
} else {
PtrToNode p = L->Next;
while (p) {
printf("%d ", p->Data);
p = p->Next;
}
}
}
```
在主函数中,先调用`ReadList()`读取输入的两个链表,然后调用`Merge()`合并两个链表,最后调用`PrintList()`输出合并后的链表即可。
在`ReadList()`函数中,首先读入第一个数字n,然后创建一个头结点和一个指向头结点的指针L,rear指向链表最后一个结点。接着循环读入数字,创建一个新节点,将其加入到链表尾部,并将rear指向新节点。当读入-1时,停止循环,返回头结点L。
在`Merge()`函数中,首先创建一个头结点和一个指向头结点的指针L3,rear指向链表最后一个结点。再定义两个指针p1和p2,分别指向L1和L2的第一个节点。循环比较p1和p2所指节点的值,将较小的节点加入到L3中,并将指向该节点的指针向后移动一位。重复该过程,直到p1和p2中有一个到达了链表尾部。若此时还有节点未加入L3中,则直接将其加入到L3的尾部。最后释放L1和L2的头结点,并返回L3。
在`PrintList()`函数中,如果链表为空,则输出NULL,否则循环遍历链表中的每个节点,输出节点的值。