📅  最后修改于: 2020-10-23 14:02:36             🧑  作者: Mango
#include
int main()
{
typedef char (*(*arrfptr[4])())[20];
arrfptr y;
return 0;
}
正确的选项是(b)。
说明:
语句typedef char(*(* arrfptr [4])())[20];表示arfptr是一个3函数指针数组,它将返回一个20维数组,其数据类型为char。
因此,“ x”是三个函数指针的数组。
正确的选项是(a)。
说明:
在C中,返回函数停止的函数的执行,并返回具有值到调用函数的控制。通过立即跟随调用,在调用函数开始执行。
#include
main()
{
struct { int y;} var = {4}, *a = &var;
printf("%d %d %d",var.y,a->y,(*a).y);
}
正确的选项是(c)。
说明:
使用指针访问结构元素的两种可能方法是使用*或->(箭头运算符)。
因此,程序的输出为4 4 4。
#include
main()
{
int a[3] = {1,,2};
printf("%d", a[a[0]]);
}
正确的选项是(d)。
说明:
在程序中,无效语法用于初始化数组。因此,在程序的输出中会发生编译错误。
#include
main()
{
int j;
char s[] = "javaTpoint";
for(j=0; s[j]; ++j);
printf("%d \n", j);
j=0;
while(s[j++]);
printf("%d ", j);
}
正确的选项是(c)。
说明:
在while循环中,打印不正确的字符串长度是因为在检查’\ 0’之后,while循环变量’i’会增加,因此比字符串的长度多1。
因此,只有for循环才能打印正确的字符串长度。