九月九日.

1.用变量a给出下面的定义

a)一个整型数:

int a

b)一个指向整型数的指针:

int *a

c)一个指向指针的的指针,它指向的指针是指向一个整型数:

int **a

d)一个有10个整型数的数组:

int a[10]

e)一个指向有 10个整型数数组的指针:

int (*a)[10]

2.在 int a = 3, int *p = &a;中,*p 的值是( )  

A.变量 a 的地址值;

B.无意义;

C.变量 p 的地址值;

D.3

3.下列定义中,( )是定义了一个指向数组的指针p。

A.int(*p)[7]

B.int *p[7]

C.(int *)p[7]

D.int *p[]

4.有以下说明语句,则正确的赋值语句是()。

int a[5][5]; int *p, **q;

int a[5][5]转换成指针类型为 int (*)[5]

A. p = a;

B. q = *a;

C. q = a;

D. p = *a;

5.设 char *s1, *s2; 分别指向两个字符串,可以判断字符串 s1 和 s2 是否相等的表达式为( )

A. s1 = s2

B. s1 == s2

C. strcpy(s1, s2) == 0;

D. strcmp(s1, s2) == 0;

6.求 n 的值。n=______。

int a[20];

char *p1 = (char *)a;

将int类型a数组强转为char*类型

char *p2 = (char *)(a+5);

int类型a+5 移动了20字节

int n = p2-p1;

20

7.若有说明int(*p)[3],以下叙述正确的是( )

A. p是指针数组  //数组指针

B. (*p)[3]和 *p[3]等价

//前者是数组指针,后者是指针数组不等价

C.p是指向一维数组中任何一个元素的指针

//指针只能指向一个地址

D. p是指向含有3个整形元素的一维数组的指针

8.设数组a[5]=(10,20,30,40,50],已知指针p指向a[1],则表达式*++p的值是 ( )

等价于 ++p;*p

A. 31 B. 30  C. 21 D. 20

9.有以下程序段,执行后,mul的值为( )

int a[] = {1, 3, 5, 7, 9};

int mul, *data, x;

mul=1;

data=&a[1];

for(x=0; x<3; x++)   

{

    mul *= *(data+x);  1*3*5*7=105

}

printf("%d\n", mul);

A. 945  B. 315  C. 105  D. 15

10.在32位计算机系统上,以下代码的输出结果是什么?

int *a;

char *b;

char c[20];

printf("%d, %d, %d", sizeof(a),  sizeof(b), sizeof(c));

32位操作系统指针的字节大小为4  所以结果为4,4,20

11.有以下定义:

int a[]={1, 2, 3, 4, 5, 6, 7, 8 ,9 ,10}, *p = a

下列哪个表达式的值为3:( )

A.p += 2, *(p++) B. p += 2, *++p

A地址由a[0]移到a[2],先解引用再偏移 值为3

B 地址由a[0]移到a[2],先偏移后解引用 值为4

C. p += 3, *p++ D. p += 2, ++*p

C地址由a[0]移到a[3],先解引用再偏移 值为4

D地址由a[0]移到a[3],先解引用后自增 值为5

12.若已定义:int a[6], *p = a, 不能表示 a[1] 地址的表达式是:

A.p+1 B. a+1 C. a++ D. ++p

a++表示的还是a[0]

13..有定义: int x, *p;能使指针变量P指向变量x的语句是:________

A. *p=&x; B. p=&x;  C. *p=x; D. p=*&x;

A *p已经解引用不能等于地址

C 将x赋值给*p 但不会使p指向x

D p=*&x等同于p=x x不是地址

14.若有说明int a=2, *p=&a, *q=p;则以下非法的赋值语句是( )。

A. p=q B. *p=*q  C. a=*q  D. q=a

A p指向a的地址 q指向p p=q都指向a的地址

B 将*q赋值给*p 同时q也指向p

C 将*q赋值给a

15.请写出输出结果

int main()

{

    int a[10] = {0};

    int *p = a;

    int *q = &a[6];

    printf("%d\n", q-p);

    printf("%d\n", (int)q - (int)p);

}

p=a+0 q=a+6  所以q-p=6

将pq强转成int类型  由他们的地址值相减相差24个字节

(int)q-(int)p=24

16.下面的程序输出的结果是__________ 

#include <stdio.h>

int a[] = {0, 2, 4, 6, 8};

main()

{

    int i;

    int *p = a;

    for(i = 0; i < 4; i++) a[i] = *p++;

    printf("%d\n", a[2]);

}

4

17.数组声明为:short a[3][4],引用第3行第1列的元素写作________。

a. **(a+2) b. *(*a+2) c. a[3][1] d. *(a[3]+1)

b 第一行第三列

c越界

d 越界

18.指针变量p1和p2类型相同,要使p1,p2指向同一个变量,正确的是________。

a. p2=*&p1 b. p2=**p1 c. p2=&p1 d. p2=*p1

19.下列哪个引用是不正确的? 

int a[10]={0. 1, 2, 3, 4, 5, 6, 7, 8, 9}, *p=a;

A. a[p-a]; B. *(&a) C. p; D. *(*(a+i));

A p和a地址相同 相当于a[0]

B *&抵消 数组名a 相当于数组的首地址

C p指向a数组

20.下面程序的结果是多少? 

p1=(unsigned char *)0x801000;

p2=(unsigned long *)0x810000;

请问:

p1+5=0x801005

p2+5=0x810028

p1 是unsigned char* 类型  每次偏移一个字节

p2是unsigned long*类型  每次偏移8个字节 

21.请写出以下程序输出内容。(小端环境) 

void main()

{

    int a[4] = {1, 2, 3, 4};

    int *p1 = (int *)(&a +1);

    int *p2 = (int *)((char *)a + 1);

    printf("0x%x, 0x%x", *(p1-1), *p2);

}

&a是指向整个数组的指针,+1偏移16个字节

p1-1向前偏移四个字节 所以*(p1-1)=4

先将a强转成char*类型 偏移一个字节 也就是a[0]的第二个字节

int*要操作四字节 所以·结果为0x02 00 00 00

22.用 C 语言编程,向内存0xff9527地址上存入一个整型数0x123 
#include <stdio.h>

int main()
{
    int *p=0xff9527;
        *p=0x123;
}

实际这种是无法编译通过的

内容概要:本文详细探讨了制造业工厂中两条交叉轨道(红色和紫色)上的自动导引车(AGV)调度问题。系统包含2辆红色轨道AGV和1辆紫色轨道AGV,它们需完成100个运输任务。文章首先介绍了AGV系统的背景和目标,即最小化所有任务的完成时间,同时考虑轨道方向性、冲突避免、安全间隔等约束条件。随后,文章展示了Python代码实现,涵盖了轨道网络建模、AGV初始化、任务调度核心逻辑、电池管理和模拟运行等多个方面。为了优化调度效果,文中还提出了冲突避免机制增强、精确轨道建模、充电策略优化以及综合调度算法等改进措施。最后,文章通过可视化与结果分析,进一步验证了调度系统的有效性和可行性。 适合人群:具备一定编程基础和对自动化物流系统感兴趣的工程师、研究人员及学生。 使用场景及目标:①适用于制造业工厂中多AGV调度系统的开发与优化;②帮助理解和实现复杂的AGV调度算法,提高任务完成效率和系统可靠性;③通过代码实例学习如何构建和优化AGV调度模型,掌握冲突避免、路径规划和电池管理等关键技术。 其他说明:此资源不仅提供了详细的代码实现和理论分析,还包括了可视化工具和性能评估方法,使读者能够在实践中更好地理解和应用AGV调度技术。此外,文章还强调了任务特征分析的重要性,并提出了基于任务特征的动态调度策略,以应对高峰时段和卸载站拥堵等情况。
内容概要:本文介绍了一个使用MATLAB编写的基于FDTD(时域有限差分)方法的电磁波在自由空间中传播的仿真系统。该系统采用了ABC(吸收边界条件)和正弦脉冲激励源,并附有详细的代码注释。文中首先介绍了关键参数的选择依据及其重要性,如空间步长(dx)和时间步长(dt),并解释了它们对算法稳定性和精度的影响。接着阐述了电场和磁场的初始化以及Yee网格的布局方式,强调了电场和磁场分量在网格中的交错排列。然后详细讲解了吸收边界的实现方法,指出其简单而有效的特性,并提醒了调整衰减系数时需要注意的问题。最后,描述了正弦脉冲激励源的设计思路,包括脉冲中心时间和宽度的选择,以及如何将高斯包络与正弦振荡相结合以确保频带集中。此外,还展示了时间步进循环的具体步骤,说明了磁场和电场分量的更新顺序及其背后的物理意义。 适合人群:对电磁波传播模拟感兴趣的科研人员、高校学生及工程技术人员,尤其是那些希望深入了解FDTD方法及其具体实现的人群。 使用场景及目标:适用于教学演示、学术研究和技术开发等领域,旨在帮助使用者掌握FDTD方法的基本原理和实际应用,为后续深入研究打下坚实基础。 阅读建议:由于本文涉及较多的专业术语和技术细节,建议读者提前熟悉相关背景知识,如电磁理论、MATLAB编程等。同时,可以通过动手实践代码来加深理解和记忆。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值