本周作业头:
这个作业属于那个课程
C语言程序设计II
这个作业要求在哪里
https://edu.cnblogs.com/campus/zswxy/computer-scienceclass1-2018/homework/2828
我在这个课程的目标是
学会运用数组和字符串
这个作业在那个具体方面帮助我实现目标
运用了数组和字符串
参考文献
c语言书和c primer plus
基础作业
7-1 英文单词排序 (25 分)
本题要求编写程序,输入若干英文单词,对这些单词按长度从小到大排序后输出。如果长度相同,按照输入的顺序不变。
输入格式:
输入为若干英文单词,每行一个,以#作为输入结束标志。其中英文单词总数不超过20个,英文单词为长度小于10的仅由小写英文字母组成的字符串。
输出格式:
输出为排序后的结果,每个单词后面都额外输出一个空格。
输入样例:
blue
red
yellow
green
purple
输出样例:
red blue green yellow purple
实验代码#include<stdio.h>
include<string.h>
include<stdlib.h>
struct Data {
char data[10];
int len;
}s[20];
int comp( const void *a ,const void b)
{
return ((struct Data )a).len - ((struct Data *)b).len;
}
int main()
{
int i, t;
char ch;
for(i = 0; 1; i ++) {
scanf("%s", s[i].data);
s[i].len = strlen(s[i].data);
if(strcmp(s[i].data, "#") == 0) {
break;
}
}
qsort(s, i, sizeof(s[0]), comp);
for(t = 0; t < i; t ++) {
printf("%s ", s[t].data);
}
return 0;
}
截图
思维导图https://www.edrawsoft.cn/viewer/public/s/b8074909658903
2-1预习作业
下列语句定义 x 为指向 int 类型变量 a 的指针,正确的是()。 (2分)
int a, *x = a;
int a, *x = &a;
int *x = &a, a;
int a, x = a;
作者: 张泳
单位: 浙江大学城市学院
2-2
int *p 的含义是 (2分)
p是一个指针, 用来存放一个整型数
p是一个指针, 用来存放一个整型数据在内存中的地址
p是一个整型变量
以上都不对
作者: 李廷元
单位: 中国民用航空飞行学院
2-3
如果有定义:int m, n = 5, *p = &m; 与m = n 等价的语句是 () 。 (1分)
m = *p;
*p = *&n;
m = &n;
m = **p;
作者: 张泳
单位: 浙江大学城市学院
2-4
变量的指针,其含义是指该变量的( )。 (1分)
值
地址
名
一个标志
作者: 张泳
单位: 浙江大学城市学院
2-5
有如下程序段
int p,a=10,b=1;
p=&a; a=p + b;
执行该程序段后,a的值是 (2分)
12
11
10
作者: 李廷元
单位: 中国民用航空飞行学院
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;
}
5
6
10
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;
}
5, 9
6, 10
5, 10
6, 9
7-1 统计一行文本的单词个数 (15 分)
本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
输入格式:
输入给出一行字符。
输出格式:
在一行中输出单词个数。
输入样例:
Let's go to room 209.
输出样例:
5
代码#include<stdio.h>
include<string.h>
int main()
{
int i,len,num;
char zf[1000];
gets(zf);
len =strlen(zf);
if (zf[0]==' ')
num=0;
else
num=1;
for(i=0;i<len-1;i++)
{
if(zf[i]==' '&&zf[i+1] !=' ')
num++;
}
printf("%d",num);
return 0;
}
思维导图https://www.edrawsoft.cn/viewer/public/s/b8074909658903