首页 > 其他分享 >实验4

实验4

时间:2023-11-13 17:48:09浏览次数:33  
标签:word int len 单词 ++ 实验 printf

任务1

1. int型数组a,在内存中是连续存放的,每个元素占用4个内存字节单元,数组名a对应的值,和&a[0]一样
2. char型数组b,在内存中是连续存放的,每个元素占用1个内存字节单元,数组名b对应的值,和&b[0]一样

3. int型二维数组a,在内存中按行连续存放,每个元素占用4个内存字节单元
    数组名a的值、a[0]的值、 &a[0][0]的值,在数字字面值上一样
4. char型二维数组b,在内存中按行连续存放,每个元素占用1个内存字节单元
    数组名b的值、b[0]的值、 &b[0][0]的值,在数字字面值上一样
5. 对于二维数组,a[0], a[1]的值之间相差4
    b[0]和b[1]的值,它们之间相差1
    相差一个sizeof(int)和sizeof(char)

任务2

因为test1中,view代表一个一维数组
而在test2中代表一个二维数组,view[x]则是一个一维数组

任务3

 1 #include <stdio.h>
 2 #define N 80
 3 int count(char x[]);
 4 int main() {
 5     char words[N + 1];
 6     int n;
 7     while (gets(words) != NULL) {
 8         n = count(words);
 9         printf("单词数: %d\n\n", n);
10     }
11     return 0;
12 }
13 int count(char x[]) {
14     int i;
15     int word_flag = 0; // 用作单词标志,一个新单词开始,值为1;单词结束,值为0
16     int number = 0; // 统计单词个数
17     for (i = 0; x[i] != '\0'; i++) {
18         if (x[i] == ' ')
19             word_flag = 0;
20         else if (word_flag == 0) {
21             word_flag = 1;
22             number++;
23         }
24     }
25     return number;
26 }

 

 

task3_2

 

 1 #include <stdio.h>
 2 #define N 1000
 3 int main() {
 4     char line[N];
 5     int word_len; // 记录当前单词长度
 6     int max_len; // 记录最长单词长度
 7     int end; // 记录最长单词结束位置
 8     int i;
 9     while (gets(line) != NULL) {
10         word_len = 0;
11         max_len = 0;
12         end = 0;
13         i = 0;
14         while (1) {
15             // 跳过连续空格
16             while (line[i] == ' ') {
17                 word_len = 0; // 单词长度置0,为新单词统计做准备
18                 i++;
19             }
20             // 在一个单词中,统计当前单词长度
21             while (line[i] != '\0' && line[i] != ' ') {
22                 word_len++;
23                 i++;
24             }
25             // 更新更长单词长度,并,记录最长单词结束位置
26             if (max_len < word_len) {
27                 max_len = word_len;
28                 end = i; // end保存的是单词结束的下一个坐标位置
29             }
30             // 遍历到文本结束时,终止循环
31             if (line[i] == '\0')
32                 break;
33         }
34         // 输出最长单词
35         printf("最长单词: ");
36         for (i = end - max_len; i < end; ++i)
37             printf("%c", line[i]);
38         printf("\n\n");
39     }
40     return 0;
41 }

 

 

 

任务4

 1 #include <stdio.h>
 2 #include <math.h>
 3 #define N 100
 4 void dec_to_n(int x, int n); // 函数声明
 5 int main() {
 6     int x;
 7     printf("输入一个十进制整数: ");
 8     while (scanf("%d", &x) != EOF) {
 9         dec_to_n(x, 2); // 函数调用: 把x转换成二进制输出
10         dec_to_n(x, 8); // 函数调用: 把x转换成八进制输出
11         dec_to_n(x, 16); // 函数调用: 把x转换成十六进制输出
12         printf("\n输入一个十进制整数: ");
13     }
14     return 0;
15 }
16 
17 void dec_to_n(int x, int n) {
18     char s[10] = { 0 };
19     int a[10];
20     int cnt = 0;
21     while (x > 0) {
22         a[cnt] = x % n;
23         x /= n;
24         cnt++;
25     }
26     for (int i = 0; i < cnt; i++) {
27         s[i] = a[i] + 48;
28         if (s[i] == ':') {
29             s[i] = 'A';
30         }
31         else if (s[i] == ';') {
32             s[i] = 'B';
33         }
34         else if (s[i] == '<') {
35             s[i] = 'C';
36         }
37         else if (s[i] == '=') {
38             s[i] = 'D';
39         }
40         else if (s[i] == '>') {
41             s[i] = 'E';
42         }
43         else if (s[i] == '?') {
44             s[i] = 'F';
45         }
46     }
47 
48     for (int cntt = cnt - 1; cntt >= 0; cntt--) {
49         printf("%c", s[cntt]);
50     }
51     printf("\n");
52 
53 }

 

任务5

 

标签:word,int,len,单词,++,实验,printf
From: https://www.cnblogs.com/ccoocc/p/17829690.html

相关文章

  • 实验4
    实验1.1代码1#include<stdio.h>2#defineN434voidtest1(){5inta[N]={1,9,8,4};6inti;78printf("sizeof(a)=%d\n",sizeof(a));910for(i=0;i<N;++i)11printf("......
  • Tmux 实验
    Tmux实验实验简介本实验将介绍如何使用Tmux工具Tmux逻辑对象Tmux是一个终端复用工具,它允许用户在单个终端窗口中创建多个会话并在其间切换。会话(session)表示终端中的一个完整工作环境窗口(window)是不同工作环境或任务的切换窗格(pane)是窗口的进一步划分房子可......
  • 实验4 C语言数组应用编程
    一、实验目的能正确使用c语法规则定义、初始化、访问、输入/输出一维/二维数值型数组能正确使用c语法规则定义、初始化、访问、输入/输出一维/二维字符数组能正确使用数组作为函数参数能熟练使用常用的字符串处理函数针对具体问题场景,能灵活用数组组织数据,应用、设计算法编......
  • 实验4
    taks11#include<stdio.h>2#defineN434voidtest1(){5inta[N]={1,9,8,4};6inti;78//输出数组a占用的内存字节数9printf("sizeof(a)=%d\n",sizeof(a));1011//输出int类型数组a中每个元素的地址、值......
  • .Net实验一 语言基础
    一、实验目的熟悉VisualStido.NET实验环境;掌握控制台程序的编写方法;掌握C#程序设计语言的语法基础;掌握控制语句和数组的使用。二、实验要求根据题目要求,编写C#程序,并将程序代码和运行结果写入实验报告。三、实验内容编写一个控制台应用程序,输入三角形或者长方形边长,计......
  • GDB 实验
    实验一:安装并简单使用GDB预备工作安装sudoaptinstallgdbbuild-essentialgcc配置必做#格式配置if!grep-qi'kernel.core_pattern'/etc/sysctl.conf;thensudosh-c'echo"kernel.core_pattern=core.%p.%u.%s.%e.%t">>/etc/sysctl.conf'......
  • 大型数据库实验六
    实验六--熟悉Hive的基本操作1、创建一个内部表,字段分隔符为英文逗号2、创建一个外部分区表dividends(分区字段为exchange和symbol),字段分隔符为英文逗号3、从stocks.csv向stocks导入数据4、创建一个未分区的外部表dividends_unpartitioned,并从dividends.csv向其中导入数据......
  • 大数据实验二
    实验环境:(1)操作系统:Linux(2)Hadoop版本:3.1.3;(3)JDK版本:1.8;(4)JavaIDE:实验内容与完成情况:(一)编程实现以下功能,并利用Hadoop提供的Shell命令完成相同任务:(1) 向HDFS中上传任意文本文件,如果指定的文件在HDFS中已经存在,则由用户来指定是追加到原有文件末尾还是覆盖原有的文件; ......
  • 实验3
        ......
  • 实验十二
    在计算机主机(Mainframe)中,只需要按下主机的开机按钮(on()),即可调用其他硬件设备和软件的启动方法,如内存(Memory)的自检(check())、CPU的运行(run())、硬盘(HardDisk)的读取(read())、操作系统(OS)的载入(load()),如果某一过程发生错误则计算机启动失败。实验要求:1.提交类图;2.......