小工具知识网

当前位置: 首页 > 行业知识 > 寒假作业Day 02

行业知识

寒假作业Day 02

2026-10-31 16:03:48 来源:互联网转载

这���第二天的作业,fighting!

Day 02

一、选择题

首先char* s[6]是指针数组,也就是其存储的都是这些字符串的地址,其实际上的类型为char**,而fun函数传入了s数组的首地址。而后续fun函数中打印字符,p[i]即*(p+i),我们也从之前的分析中发现了这个其实也就是一个二维数组,所以for循环打印的就是每行的字符串,也就是按照顺序打印0~3下标的字符串,故答案为ABCDEFGHIJKLMNOP

B可以转化为D,而B一看就知道是正确的,所以B和D可以表示a[1][1];而A,+5跳过五个元素的地址,故1 2 3 0 1,最后变成a[1][1];而C,&a[1]指的是第一行的地址,+1会跳过一整行元素,地址会变成a[2]这一行的首地址

void (*s[5])(int) 是C语言中的一个声明,它定义了一个名为 s 的数组,该数组包含5个元素,每个元素都是一个指向函数的指针。这些函数接受一个 int 类型的参数,并返回 void 类型。

这样的声明常常用于回调函数、函数表或其他需要动态或灵活地引用函数的场景。

举个例子:

#include     void printInt(int x) {      printf("%d\n", x);  }    int main() {      void (*s[5])(int);  // 声明一个包含5个函数指针的数组        s[0] = printInt;  // 将第一个元素设置为指向printInt函数        s[0](10);  // 使用数组中的第一个函数指针调用函数,输出10        return 0;  }

故结果很明显,答案为函数指针数组

这里定义的是一个10行30列的二维指针数组,其中的每个元素都是指针,而指针大小在64位操作系统上的大小是8个字节,所以sizeof(k)的大小为10308=2400,选D

现在,让我们分析每个选项:

A: f(a);

a 是一个整数数组,当数组作为函数参数传递时,它会被转换为指向其第一个元素的指针,即 int* 类型。这与 f 所期望的 int** 类型不匹配。

B: f(b);

b 是一个二维整数数组。当二维数组作为函数参数传递时,它会被转换为指向其第一行的指针,即 int (*)[4] 类型。这与 f 所期望的 int** 类型不匹配。

C: f(q);

q 是一个整数指针数组,每个元素都是一个指向 b 的某一行的指针。这与 f 所期望的 int** 类型匹配,因为 q 的类型实际上是 int* [3],它会被转换为指向其第一个元素的指针,即 int**。

D: f(&a);

&a 是数组 a 的地址,其类型是 int (*)[4],即指向包含 4 个整数的数组的指针。这与 f 所期望的 int** 类型不匹配。

综上所述,只有选项 C: f(q); 是合法的调用。

二、编程题

第一个只出现一次的字符

int FirstNotRepeatingChar(char* str ) {    // write code here    int a[128]={0};    int i=0,t;    for(i=0;str[i]!='

判定字符是否唯一

';i++) { t=str[i]; a[t]++; } for(i=0;str[i]!='
bool isUnique(char* astr){    int a[128]={0};    int i=0,t;    for(i=0;astr[i]!='';i++)    {        t=astr[i];        a[t]++;    }    for(i=0;astr[i]!='';i++)    {        t=astr[i];        if(a[t]!=1)        {            return false;        }    }    return true;}
';i++) { t=str[i]; if(a[t]==1) { return i; } } return -1;}

首先ASCII码值一共有128个,我们创建一个拥有128个元素的数组,并将其所有元素初始化为0;下一步我们遍历原数组,创建一个int型变量t用来存储原数组的每个元素值,并让数组a对应位置值+1;接下来再遍历一次数组,如果这个元素出现了几次,那么a[t]绝对不等于1,而以顺序遍历,所以第一个为1的值,其下标t一定是str中第一个只出现一次的值

这里我们可以使用上面的方法,是可以解决的,其实就是换了一个判断条件

上一篇:轻松下载iHSNS教程,一步步操作指南!

下一篇:WordPress任务平台对接宝典,一键整合,高效管理轻松实现!