7-1 英文单词排序 (25 分)
本题要求编写程序,输入若干英文单词,对这些单词按长度从小到大排序后输出。如果长度相同,按照输入的顺序不变。
输入格式:
输入为若干英文单词,每行一个,以#作为输入结束标志。其中英文单词总数不超过20个,英文单词为长度小于10的仅由小写英文字母组成的字符串。
作业属于:字符串,
作业要求:从长到短排列单词。
课程目的:学会使用字符串,
帮我实现目标的地方:
参考文献:C语言程序设计
1.实验代码:
include<stdio.h>
include<string.h>
int main(void)
{
int i,j,n;
char str[20][10],temp[10];
while(1)
{
scanf("%s",str[i]);
if(str[i][0]=='#')
break;
i++;
}
str[i][0]='#';
n=i;
for(i=0;i<n;i++)
{
for(j=1;j<n-i;j++)
{
if(strlen(str[j-1])>strlen(str[j]))
{
strcpy(temp,str[j]);
strcpy(str[j],str[j-1]);
strcpy(str[j-1],temp);
}
}
}
for(i=0;i<n;i++)
{
printf("%s ",str[i]);
}
return 0;
}
2.设计思路:
uploading-image-290542.png
3.本题调试过程中遇到的问题及解决办法:
uploading-image-72252.png
解决办法:问同学,查看书籍。
4.运行结果截图:
预习作业
2-1
下列语句定义 x 为指向 int 类型变量 a 的指针,正确的是()。 (2分)
A.int a, *x = a;
B.int a, *x = &a;
C.int *x = &a, a;
D.int a, x = a;
2-2
int *p 的含义是 (2分)
A.p是一个指针, 用来存放一个整型数
B.p是一个指针, 用来存放一个整型数据在内存中的地址
C.p是一个整型变量
D.以上都不对
2-3
如果有定义:int m, n = 5, *p = &m; 与m = n 等价的语句是 () 。 (1分)
A.m = p;
B.p = *&n;
C.m = &n;
D.m = **p;
2-4
变量的指针,其含义是指该变量的( )。 (1分)
A.值
B.地址
C.名
D.一个标志
2-5
有如下程序段
int p,a=10,b=1;
p=&a; a=p + b;
执行该程序段后,a的值是 (2分)
A.12
B.11
C.10
D.编译出错
2-6
对于下列程序,正确的是() 。 (2分)
void f(int *p)
{
*p = 5;
}
int main(void)
{
int a, *p;
a = 10;
p = &a;
f(p);
printf(“%d”, (*p)++);
return 0;
}
A.5
B.6
C.10
D.11
2-7
执行如下程序段,打印输出的内容是: (2分)
include <stdio.h>
void fun (int c, int d) {
c++;
(d)++;
}
int main ( ){
int a=5, b=9;
fun(a, &b);
printf("%d, %d", a, b);
return 0;
}
A.5, 9
B.6, 10
C.5, 10
D.6, 9
答案:BDBBBCD
挑战作业:不知道做。
二、学习进度统计和学习感悟
学习进度:
学习感悟:感觉心累。
三、描述结对编程和结对编程的有缺点
有点:两个人可以共同交流学习中的知识,取长补短
缺点:对不熟悉的人交流还是有所限制,不在一起很少有时间交流。