在设备驱动程序(函数)Dev_drv1中,对指针ptr的说明如下:【C语文代码】int Dev_drv1(int arg1,int arg2 ){struct node {int ID;char name [20];int range;} ;struct node *ptr;/*其他局部变量声明,略*/ptr = (struct node *)malloc(sizeof(struct node)*100);/*其他程序代码,略*/}设int为32位整数,char占8位。当对指针ptr赋完值后的值为0x3751CO,若再执行一条“ptr++;”语句,此时ptr的值为多少? (用十六进制表示)。

在设备驱动程序(函数)Dev_drv1中,对指针ptr的说明如下:

【C语文代码】

int Dev_drv1(int arg1,int arg2 )

{

struct node {

int ID;

char name [20];

int range;

} ;

struct node *ptr;

/*其他局部变量声明,略*/

ptr = (struct node *)malloc(sizeof(struct node)*100);

/*其他程序代码,略*/

}

设int为32位整数,char占8位。当对指针ptr赋完值后的值为0x3751CO,若再执行一条“ptr++;”语句,此时ptr的值为多少? (用十六进制表示)。


相关考题:

下列说法不正确的是A.int *fun();----fun是一个返回int指针的函数B.int (*fun)();---fun是一个返回int指针的函数C.int (*array[5])();----array是一个有5个元素的数组,每一个元素都是一个函数指针,指向一个返回int的函数D.int (*fun(int))(int);----fun是带有一个int参数的函数,返回值是一个函数指针,这个指针指向带有一个int参数并返回int的函数

下列程序中函数reverse()的功能是将a所指数组中的内容进行逆置。includevoid reverse(i 下列程序中函数reverse()的功能是将a所指数组中的内容进行逆置。 #include<stdio.h> void reverse(int a[],int n) { int i,t; for(i=0;i<n/2,i++) { t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;} } main() { int b[10]={1,2,3,4,5,6,7,8,9,10};int i,s=0; reverse(b,A.ptr是一个返回值是血的函数B.ptr是指向int型数据的指针变量C.ptr是指向函数的指针,该函数返回一个int型数据D.ptr是一个函数名,该函数的返回值是指向血型数据的指针

设有如下定义:int(*ptr);则以下叙述中正确的是( )。A.ptr是指向一维组数的指针变量B.ptr是指向int型数据的指针变量C.ptr是指向函数的指针,该函数返回一个int型数据D.ptr是一个函数名,该函数的返回值是指int型数据的指针

语句int(*ptr)();的含义是A.ptr是指向一个维数组的指针变量B.ptr是指向int型数据的指针变量C.ptr是指向函数的指针,该函数返回一个int型数据D.ptr是一个函数名,该函数的返回值是指向int型数据的指针

设有如下定义,则以下叙述中正确的是______。 int(*ptr)();A.ptr是指向一维数组的指针变量B.ptr是指向int型数据的指针变量C.ptr是指向函数的指针,该函数返回一个int型数据D.ptr是一个函数名,该函数的返回值是指向int型数据的指针

写出下列代码的输出内容#includeint inc(int a){return(++a);}int multi(int*a,int*b,int*c){return(*c=*a**b);}typedef int(FUNC1)(int in);typedef int(FUNC2)(int*,int*,int*);void show(FUNC2 fun,int arg1, int*arg2){INCp=inc;int temp =p(arg1);fun(temp,arg1, arg2);printf("%d\n",*arg2);}main(){int a;show(multi,10,a);return 0;}

下列有关指针的用法中错误的是( )。A.int i;int *ptr=i;B.inti;int *ptr;i=*ptr;C.int *ptr;ptr=0;D.int i=5;int *ptr;*ptri;

(C语言)假设有如下定义方式int(**ptr)();,则以下叙述中正确的是A、ptr是指向一维数组的指针变量B、ptr是指向int型数据的指针变量C、ptr是指向函数的指针的指针,该函数返回一个int型数据 我是应届生D、ptr是一个函数名,该函数的返回值是指向int型数据的指针

下面函数的功能是______。 exchange(int*ptr1,*ptr2) { int*ptr; ptr=-ptr1; ptr1=ptr2; ptr2=ptr; }A.交换*ptr1和*ptr2的值B.无法改变*ptr1和*ptr2的值C.可能造成系统故障,因为使用了空指针D.交换*ptr1和*pb2的地址

语句int(*ptr)的含义是( )。A.ptr是一个返回值为int的函数B.ptr是指向int型数据的指针变量C.ptr是指向函数的指针,该函数返回一个int型数据D.ptr是一个函数名,该函数的返回值是指向int型数据的指针

在整型指针变量ptr1、ptr12的定义中,错误的是 ______。A.int x, *ptr1, ptr2;B.int*ptrl, x, *ptr2;C.int x,*ptrl=x,*ptr2;D.int*ptr1, x,*ptr2=x;

对于以下函数声明void fun(int array[4],int+ptr);以下叙述中正确的是( )。A.array,ptr都是指针变量B.调用fun函数时,实参的值将逐一复制给arrayC.调用fun函数时,array按值传送,ptr按地址传送D.array是数组,ptr是指针,它们的性质不同

下列说法不正确的足( )。A.int*ptr;//指针指向整形数据B.char*ptr;//指针的类型是字符型指针C.int**ptr;//指针的类型是双重指针D.int(*ptr)[3];//是一一个指针数组,数组共有三个元素,而三个元素是int型指针

下列有关指针的用法中错误的是( )。A.int i;int*ptr=i;B.int i;int*ptr;i=*ptr;C.int*ptr;ptr=0;D.int i=5;int*ptr;*ptri;

语句int(*ptr)()的含义是( )。A.ptr是一个返回值是血的函数B.ptr是指向int型数据的指针变量C.ptr是指向函数的指针,该函数返回一个血型数据D.ptr是一个函数名,该函数的返回值是指向int型数据的指针

在说明int const *ptr;中,ptr应是( )。A.指向常量的指针B.指针常量C.指针常数D.常指针

设有定义:int(* ptr)( ); 则以下叙述中正确的是 ( )A.ptr是指向一维数组的指针变量B.ptr是指向int型数据的指针变量C.ptr是指向函数的指针,该函数返回一个int数据D.prt是一个函数名,该函数的返回值是指向int型数据的指针

试题三(共15分)阅读以下说明和C代码,填充代码中的空缺,将解答填入答题纸的对应栏内。【说明1】下面的函数countChar(char *text)统计字符串text中不同的英文字母数和每个英文字母出现的次数(英文字母不区分大小写)。【C代码1】Int countchar(char*text){int i,sum=O; /*sum保存不同的英文字母数*/char *ptr;int c[26]={0}; /*数组c保存每个英文字母出现的次数*//*c[0]记录字母A或a的次数,c[1]记录字母B或b的次数,依此类推*/ptr=(1); /* ptr初始时指向字符串的首字符*/while (*ptr) {if (isupper (*ptr) )c[*ptr一’A’]++;else if (islower (*ptr) )c[*ptr一’a’]++;(2); /*指向下一个与字符*/}for ( i=0. i26; i++ )If(3)sum++;return sum;}【说明2]将下面C代码2中的空缺补全后运行,使其产生以下输出。f2: f2:f2:2f3: f3:1【C代码2]include stdio . hint fl (int (*f) (int)) .int f2 (int) ;int f3 (int) ;int main (){Printf(“%d\n”,f1(4))Printf(“%d\n”,f1(5))return 0;}int fl(int (*f) (int) }{int n=O;/*通过函数指针实现函数调用,以返回值作为循环条件*/While(6) n++return n;}int f2 (int n){printf (f2: ) ;return n*n-4;}int f3 (int n){printf (f3: ) ;return n-1}

阅读以下说明和C语言代码,回答问题1至问题4,将解答填入对应栏内。【说明】在嵌入式操作系统设备管理的实现上,常使用到C语言的函数指针变量,由统一的管理函数调用不同的设备驱动程序。下面的一段C语言代码是驱动管理程序 manage_device调用4个不同设备驱动程序,但没有用到函数指针变量。【C语言代码】/*变量与类型说明*/include "stdio.h"include "stdlib.h"extern int sys_status;extern int Dev_drv1(int arg1, int arg2);extern int Dev_drv2(int arg1, int arg2);extern int Dev_drv3(int arg1, int arg2);extern int Dev_drv4(int arg1, iht arg2);define NOERROR 0type struct {int _fd;} TYP_DEV_TAB;TYP DEV_TAB dev_tab[50]= {101,99, 80, 120,};/*程序代码*/void manage_device(int devid, int arg1, int arg2){ int place ;int ret;for(place=0 ; place<50 ; place++)if dev_tab [place]. fd == devid) break;if(place>=50)printf(" NO DEVICE fd = %d\n ",devid);switch(dev_tab [place]._fd) {case 80:ret = Dev_drv3(int arg1,int arg2);break;case 99:ret = Dev_drv2(int arg1,int arg2);break;case 101:ret = Dev_drv1(int arg1,int arg2);break;case 120:ret = Dev_drv4(int arg1,int arg2);break;}if (ret!=NOERROR)printf(" DEVICE %d error!\n ", devid);}int Dev_drv1(int arg1,int arg2){/*局部变量声明,略*//*驱动程序代码,略*/}int Dev_drv2(int arg1,int arg2){/*局部变量声明,略*//*驱动程序代码,略*/}int Dev_drv3(int arg1,int arg2){/*局部变量声明,略*//*驱动程序代码,略*/}int Dev_drv4(int arg1,int arg2){/*局部变量声明,略*//*驱动程序代码,略*/请用C语言的函数指针变量,对manage_device函数进行改造,完成下面C语言代码中的(1)、(2)、(3)和(4)处的变量说明或语句,将解答填入对应栏内。【C语言代码】/*变量与类型说明*/include "stdio.h"include "stdlib.h"extern int sys_status;extern int Dev_drv1(int arg1, int arg2);extern int Dev_drv2(int arg1, iht arg2);extern int Dev_drv3(int arg1, int arg2);extern int Dev_drv4(int arg1, int arg2);define NOERROR 0typedef struct {int _fd;(1) 函数指针变量说明;/* 变量名用process */} TYP_DEV_TAB;TYP_DEV_TAB dev_tab[50]= {{101, Dev_drv1},{99, Dev_drv2},{80, Dev_drv3},{120, Dev_dry4},};/* 程序 */void manage_device(int devid, int arg1, int arg2){ iht place ;int ret;(2) 函数指针变量说明;/*局部变量,变量名用ProcAction */for(place=0 ; place<50 ; place++) {if(dev_tab [place]._fd == devid) {(3) 语句1;/* 变量名胜ProcAction, 得到具体函数的入口地址 */break;}}if(place>=50)printf("NO DEVICE fd = %d\n",devid);(4) 语句2;if(ret!=NOERROR)printf("DEVICE %d error!", devid);}

设有说明int(*ptr)[M];其中ptr是()。 A.M个指向整型变量的指针B.指向M个整型变量的函数指针C.一个指向具有M个整型元素的一维数组的指针D.具有M个指针元素的一维指针数组,每个元素都只能指向整型量

试题二(共15分)阅读以下说明、C程序代码和问题1至问题3,将解答写在答题纸的对应栏内。【说明1】设在某C系统中为每个字符型数据分配1个字节,为每个整型(int)数据分配4个字节,为每个指针分配4个字节,sizeof(x)用于计算为x分配的字节数。【C代码】#include stdio.h#include string.hint main(){ int arr[5]={10,20,30};char mystr[]="JustAtest\n";char *ptr= mystr;printf("%d%d%d\n", sizeof(int),sizeof(unsigned int),sizeof(arr));printf("%d%d\n",sizeof(char),sizeof(mystr));printf("%d%d%d\n",sizeof(ptr),sizeof(*ptr),strlen(ptr));return 0;}【问题1】(8分)请写出以上C代码的运行结果。【说明2】const是C语言的一个关键字,可以用来定义“只读”型变量。【问题2】(4分)(1)请定义一个“只读”型的整型常量size,并将其值初始化为10;(2)请定义一个指向整型变量a的指针ptr,使得ptr的值不能修改,而ptr所指向的目标变量的值可以修改(即可以通过ptr间接修改整型变量a的值)。注:无需给出整型变量a的定义。【问题3】(3分)某C程序文件中定义的函数f如下所示,请简要说明其中static的作用,以及形参表“const int arr[]”中const的作用。static int f(const int arr[]){/*函数体内的语句省略*/}

设有说明 int (*ptr)();其中标识符ptr是( )。A 是一个指向整形变量的指针B 是一个指针,它指向一个函数值是int的函数C 是一个函数名D定义不合法

阅读以下说明和C代码,填充代码中的空缺,将解答填入答题纸的对应栏内。[说明1]下面的函数countChar(char*text)统计字符串text中不同的英文字母数和每个英文字母出现的次数(英文字母不区分大小写)。[C代码1] int countChar(char *text) { int i,sum=0; /*sum保存不同的英文字母数*/ char *ptr; int c[26]={0); /*数组C保存每个英文字母出现的次数*/ /*c[0]己录字母A或a的次数,c[1]记录字母B或b的次数,依此类推*/ ptr=______; /*ptr初始时指向字符串的首字符*/ while (*ptr) { if (isupper(*ptr) ) c [*ptr-'A']++; else if (islower(*ptr)) c[*ptr-'a']++; ______; /*指向下一个字符*/ } for(i=0;i<26; i++) if(______)sum++; return sum; }[说明2]将下面C代码2中的空缺补全后运行,使其产生以下输出。f2:f2:f2:2 f3:f3:1 [C代码2] #include<stdio.h> int f1(int(*f)(int)); int f2(int); int f3(int); int main() { printf("%d\n",f1(______)); printf("%d\n",f1(______)); return 0; } int f1(int(*f)(int)) { int n=0; /*通过函数指针实现函数调用,以返回值作为循环条件*/ while (______) n++; return n; } int f2(int n) { printf("f2:"); return n*n-4; } int f3(int n) { printf("f3:"); return n-1; }

设有说明int(*ptr)[m];其中的标识符ptr是()A、m个指向整型变量的指针B、指向m个整型变量的函数指针C、一个指向具有m个整型元素的一维数组的指针D、具有m个指针元素的一维指针数组,每个元素都只能指向整型量

在进行基于ARM核的嵌入式系统软件开发时,调用如下函数: int do_something(int arg1,void *arg2,char arg3,int *arg4)这四个参数通过什么方式从调用程序传入被调函数?

问答题在进行基于ARM核的嵌入式系统软件开发时,调用如下函数: int do_something(int arg1,void *arg2,char arg3,int *arg4) 这四个参数通过什么方式从调用程序传入被调函数?

单选题若有函数声明:void fun(float array[],int*ptr);以下叙述正确的是(  )。A函数参数array,ptr都是指针变量B函数参数array不是指针变量,ptr是指针变量C调用函数时,实参数组的值将一一复制给array数组D调用函数时,array是按值传送,ptr是按地址传送