2024.02.15作业

一.选择题

1.变量的指针,其含义是指该变量的   B         

A)值               B)地址             C)名               D)一个标志

2.已有定义int k=2;int *ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是 B   

A)k=*ptr1+*ptr2     B)ptr2=k            C)ptr1=ptr2          D)k=*ptr1*(*ptr2)

3.若有说明:int *p,m=5,n;以下程序段正确的是       D       

A)p=&n ;                                B)p = &n ;

      scanf(“%d”,*p);                        scanf(“%d”,&p);                                     

C)scanf(“%d”,&n);                 D)p = &n ;

      *p=n ;                                       *p = m ;

4.已有变量定义和函数调用语句:int a=25;print_value(&a);下面函数的输出结果是       D       

void print_value(int *x)

{  printf(“%d\n”,++*x); }

A)23               B)24               C)25               D)26

5.若有说明:int *p1, *p2,m=5,n;以下均是正确赋值语句的选项有哪些  C         

A)p1=&m; p2=&p1 ;         B)p1=&m; p2=&n; *p1=*p2 ;

C)p1=&m; p2=p1 ;          D)p1=&m; *p1=*p2 ;

6.若有语句:int *p,a=4;和p=&a;下面均代表地址的一组选项是  D           

A)a,p,*&a           B)&*a,&a,*p        C)*&p,*p,&a        D)&a,&*p,p

7.下面判断正确的是  D           

A)char *a=”china”; 等价于 char *a; *a=”china” ;

B)char str[10]={“china”}; 等价于 char str[10]; str[ ]={“china”;}  

C)char *s=”china”; 等价于 char *s; s=”china” ;

D)char c[4]=”abc”,d[4]=”abc”; 等价于 char c[4]=d[4]=”abc” ;

8.下面程序段中,for循环的执行次数是     B      。

char *s=”\ta\018bc”     \01等价于\1 0表示八进制前导符,\01  --\08  都是2个字节   \09就是3个字节

for (  ; *s!=’\0’ ; s++)  printf(“*”) ;

A)2                B)7                C)6                D)5

9.下面能正确进行字符串赋值操作的是   B         

A)char s[5]={“ABCDE”};  

B)char s[5]={‘A’,’B’,’C’,’D’,’E’};

C)char *s ; s=”ABCDE” ;                  D)char *s; scanf(“%s”,s) ;

10.下面程序段的运行结果是    D        

char *s=”abcde” ;

s+=2 ; printf(“%d”,s);

A)cde              B)字符’c’           C)字符’c’的地址     D)98

11.设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是      B        

A)c=*p1+*p2        B)p2=c             C)p1=p2            D)c=*p1*(*p2)

12.设有程序段:char s[ ]=”china”; char *p ; p=s ;则下面叙述正确的是       D      

A)s和p完全相同

B)数组s中的内容和指针变量p中的内容相等

C)s数组长度和p所指向的字符串长度相等

D)*p与s[0]相等

13.以下与库函数strcpy(char *p1,char *p2)功能不相等的程序段是      C        

A)strcpy1(char *p1,char *p2)

   { while ((*p1++=*p2++)!=’\0’) ; }

B)strcpy2(char *p1,char *p2)

   { while ((*p1=*p2)!=’\0’) { p1++; p2++ } }

C)strcpy3(char *p1,char *p2)

   { while (*p1++=*p2++) ; }

D)strcpy4(char *p1,char *p2)

   { while (*p2) *p1++=*p2++ ; }

14.下面程序段的运行结果是      C      

   char a[ ]=”language” , *p ;

   p=a ;

   while (*p!=’u’) { printf(“%c”,*p-32); p++ ; }

A)LANGUAGE       B)language            C)LANG             D)langUAGE

16.以下与库函数strcmp(char *s,char *t)功能相等的程序段是      A        

A)strcmp1(char *s,char *t)

   {  for ( ; *s++=*t++; )

if (*s= =’\0’)

 return 0 ;

return (*s-*t) ;

   }

B)strcmp2(char *s,char *t)

   {  for ( ; *s++=*t++; )

        if (!*s) return 0 ;

return (*s-*t) ;

   }

C)strcmp3(char *s,char *t)

   {  for ( ; *t= =*s; )

        { if (!*t) return 0 ; t++ ; s++ ; }

return (*s-*t) ;

   }

D)strcmp4(char *s,char *t)

   {  for ( ; *s==*t; s++, t++ )

        if (!*s) return 0 ;

return (*t-*s) ;

   }

17.以下说明不正确的是     B        

A)char a[10]=”china” ;                         

B)char a[10],*p=a; p=”china”;

C)char *a; a=”china” ;                          

D)char a[10]; a=”china”; 

18.设有说明语句:char a[]=”It is mine”;char *p=”It is mine”;则以下不正确的叙述是       D       

A)a+1表示的是字符t的地址                   

B)p指向另外的字符串时,字符串的长度不受限制

C)p变量中存放的地址值可以改变

D)a中只能存放10个字符

19.若已定义char s[10];则在下面表达式中不表示s[1]的地址是       B      

A)s+1               B)s++              C)&s[0]+1            D)&s[1]

20.若有定义:int a[5],*p=a;则对a数组元素的正确引用是       D       

A)*&a[5]            B)a+2              C)*(p+5)              D)*(a+2)

21.若有定义:int a[5],*p=a;则对a数组元素地址的正确引用是      D      

A)p+5               B)*a+1             C)&a+1              D)&a[0]

22.若有定义:int a[2][3];则对a数组的第i行第j列元素值的正确引用是   A    

A)*(*(a+i)+j)         B)(a+i)[j]             C)*(a+i+j)          D)*(a+i)+j  

23.若有定义:int a[2][3];则对a数组的第i行第j列元素地址的正确引用是   D    

A)*(a[i]+j)           B)(a+i)              C)*(a+j)          D)a[i]+j

24.若有程序段:int a[2][3],(*p)[3]; p=a;则对a数组元素地址的正确引用是    C    

A)*(p+2)            B)p[2]               C)p[1]+1             D)(p+1)+2

25.若有程序段:int a[2][3],(*p)[3]; p=a;则对a数组元素的正确引用是      C      

A)(p+1)[0]           B)*(*(p+2)+1)        C)*(p[1]+1)           D)p[1]+2

26.若有定义:int a[5];则a数组中首元素的地址可以表示为      C      

A)&a               B)a+1               C)a                  D)&a[1]

27.若有定义:int (*p)[4];则标识符p      C      

A)是一个指向整型变量的指针

B)是一个指针数组名

C)是一个指针,它指向一个含有四个整型元素的一维数组

D)定义不合法

28.以下与int *q[5];等价的定义语句是     C      

A)int q[5]           B)int *q              C)int *(q[5])           D)int (*q)[5]

29.以下正确的说明语句是       B      

A)int *b[]={1,3,5,7,9} ;

B)int a[5],*num[5]={&a[0],&a[1],&a[2],&a[3],&a[4]};

C)int a[]={1,3,5,7,9}; int *num[5]={a[0],a[1],a[2],a[3],a[4]};

D)int a[3][4],(*num)[4] ; num[1]=&a[1][3];

30.若有定义:int b[4][6],*p,*q[4];且0≤i<4,则不正确的赋值语句是     A     

A)q[i]=b[i];         B)p=b;               C)p=b[i];              D)q[i]=&b[0][0]

32.若要对a进行自减运算,则a应有下面说明       D      

A)int p[3]; int *a=p;          B)int k; int *a=&k;             C)char *a[3]            D)int b[10]; int *a=b+1;

33.以下选项中,对指针变量p的正确操作是    B     

A)int a[3], *p; p=&a;      B)int a[5], *p; p=a;       

C)int a[5];int *p=a=100;             

D)int a[5]; int *p1,*p2=a;  *p1=*p2;

                                                        

34.若有定义:int x[10]={0,1,2,3,4,5,6,7,8,9},*p1;则数值不为3的表达式是   C   

A)x[3]                        B)p1=x+3,*p1++

C)p1=x+2,*(p1++)               D)p1=x+2,*++p1

35.下面程序段的输出是       C      

int a[ ]={2,4,6,8,10,12,14,16,18,20,22,24},*q[4],k;

for (k=0; k<4; k++) q[k]=&a[k*3];

printf(“%d\n”,q[3][0]);

A)22               B)16                C)20                  D)输出不合法

36.若要对a进行自增运算,则a应具有下面说明      D       

A)int a[3][2];                   B)char *a[ ]={“12”,”ab”};

C)char (*a) [3]                D)int b[10], *a=b;

37.若有定义int a[4][6];则能正确表示a数组中任一元素a[i][j](i,j均在有效范围内)地址的表达式       A      

A)&a[0][0]+6*i+j      B)&a[0][0]+4*j+i

C)&a[0][0]+4*i+j      D)&a[0][0]+6*j+I

38.下面程序的运行结果是      B       

main ( )

{  int x[5]={2,4,6,8,10}, *p, **pp ;

   p=x , pp = &p ;

   printf(“%d”,*(p++));

   printf(“%3d”,**pp);

}

A)4  4            B)2  4              C)2  2                D)4  6

39.若有定义int x[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; int (*p)[3]=x ; 则能够正确表示数组元素x[1][2]的表达式是      D       

A)*((*p+1)[2])                           B)(*p+1)+2

C)*(*(p+5))                             D)*(*(p+1)+2)

40.若有说明:char *language[]={“FORTRAN”,”BASIC”,”PASCAL”,”JAVA”,”C”};则language[2]的值是       B      

A)一个字符        B)一个地址          C)一个字符串          D)一个不定值

41.设有定义:char *cc[2]={“1234”,”5678”};则正确的叙述是     A       

A)cc数组的两个元素中各自存放了字符串”1234”和”5678”的首地址

B)cc数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址

C)cc是指针变量,它指向含有两个数组元素的字符型一维数组

D)cc元素的值分别维”1234”和”5678”

  1. 请说明二维数组行偏移,列偏移。(7分)  *(*(a+i)+j)

例如:int arr[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}

Int (*p)[4]=arr;

假设arr首地址是 0x1020    指针p自身的地址是0x600

请回答:

arr+1 地址是:0x1030

arr[0]+2 地址是 0x1028

*(arr+2)+3的地址是  0x104C

p+2的地址是  0x1040

*(p+1)的地址是  0x1030

*(p+1)+1的地址是  0x1034

&p+2的地址是  0x610

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/683620.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据接收程序

#include<reg51.h> //包含单片机寄存器的头文件 sbit pPSW^0; /***************************************************** 函数功能&#xff1a;接收一个字节数据 ***************************************************/ unsigned char Receive(void) { unsigned…

寒假作业2月14号

指针练习 1、选择题 1.1、若有下面的变量定义&#xff0c;以下语句中合法的是&#xff08; A &#xff09;。 int i&#xff0c;a[10]&#xff0c;*p&#xff1b; A&#xff09; pa2; B&#xff09; pa[5]; C&#xff09; pa[2]2; D&#xff09; p&(i…

116. 填充每个节点的下一个右侧节点指针

给定一个 完美二叉树 &#xff0c;其所有叶子节点都在同一层&#xff0c;每个父节点都有两个子节点。二叉树定义如下&#xff1a; struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每个 next 指针&#xff0c;让这个指针指向其下一个右侧节点。如果找不到…

Flink理论—容错之状态

Flink理论—容错之状态 在 Flink 的框架中&#xff0c;进行有状态的计算是 Flink 最重要的特性之一。所谓的状态&#xff0c;其实指的是 Flink 程序的中间计算结果。Flink 支持了不同类型的状态&#xff0c;并且针对状态的持久化还提供了专门的机制和状态管理器。 Flink 使用…

7 大 Android 数据恢复软件,可轻松找回丢失的数据

每年&#xff0c;由于各种原因&#xff0c;数百万人从他们的 Android 设备中丢失数据。它可能像意外删除文件一样简单&#xff0c;也可能像系统崩溃一样复杂。在这种情况下&#xff0c;拥有高效的数据恢复工具可以证明是救命稻草。Mac 用户尤其需要找到与其系统兼容的软件。好消…

不止于浏览器:掌握Node.js,开启全栈开发新篇章!

介绍&#xff1a;Node.js是一个基于Chrome V8引擎的JavaScript运行时环境&#xff0c;特别适合构建高性能的网络服务器和实时应用。具体介绍如下&#xff1a; 服务器端JavaScript&#xff1a;Node.js的核心优势之一是在服务器端运行JavaScript&#xff0c;这使得前端开发者可以…

如何利用SpringSecurity进行认证与授权

目录 一、SpringSecurity简介 1.1 入门Demo 二、认证 ​编辑 2.1 SpringSecurity完整流程 2.2 认证流程详解 2.3 自定义认证实现 2.3.1 数据库校验用户 2.3.2 密码加密存储 2.3.3 登录接口实现 2.3.4 认证过滤器 2.3.5 退出登录 三、授权 3.1 权限系统作用 3.2 授…

第10章 智能租房——用户中心

学习目标 掌握用户注册功能的逻辑,能够独立编写代码实现用户注册功能 掌握用户中心页展示功能的逻辑,能够实现在用户中心页上展示账号信息、收藏记录和浏览记录 掌握用户登录与退出的逻辑,能够实现用户登录与退出功能 掌握账号信息修改的逻辑,能够实现账号信息修改功能 掌握…

软件实例分享,门诊处方软件存储模板处方笺教程,个体诊所电子处方开单系统软件教程

软件实例分享&#xff0c;门诊处方软件存储模板处方笺教程&#xff0c;个体诊所电子处方开单系统软件教程、 一、前言 以下软件教程以 佳易王诊所电子处方管理软件V17.0为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 电子处方软件支持病历汇总…

CGAL Mesh分割

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 网格分割是将一个网格分解成更小的、有意义的子网格的过程。该过程用于建模,索具,纹理,形状检索,变形等应用。CGAL为我们提供了一个依赖于形状直径函数(SDF)的算法实现,即给定一个三角形表面网格包围一个3D实体…

B3650 [语言月赛202208] 求和

题目描述 输入一个整数 n(1≤n≤107)&#xff0c;每行输出一个数&#xff0c;表示数字 1 到 i 的和。 比如&#xff0c;当 n5 时&#xff0c; 第 1 行输出一个数字 1&#xff1b; 第 2 行输出数字 3&#xff0c;因为 1 2 3&#xff1b; 第 3 行输出数字 6&#xff0c;因…

创建线程实现火车站多窗口买票问题

1.首先要知道创建线程的方式 &#xff08;1&#xff09;通过继承Thread类的方式 &#xff08;2&#xff09;通过实现runnable的方式 2.多个线程&#xff08;多个窗口&#xff09;卖票这里要考虑线程安全问题&#xff0c;不然会出现错票和重票的问题。这里有上面两种方式实现…

对进程与线程的理解

目录 1、进程/任务&#xff08;Process/Task&#xff09; 2、进程控制块抽象(PCB Process Control Block) 2.1、PCB重要属性 2.2、PCB中支持进程调度的一些属性 3、 内存分配 —— 内存管理&#xff08;Memory Manage&#xff09; 4、线程&#xff08;Thread&#xff09;…

auto关键字详讲

目录 1.问题思考 2.auto关键字介绍 3. 早期auto的缺陷&#xff1a; 4.什么叫自动存储器&#xff1f; 5. c标准auto关键字 5.1auto的使用细节 5.2 auto什么时候不能推导变量的类型呢&#xff1f; 5.3基于范围的for循环 5.3.1范围for的用法 5.3.2 范围for的使用条件 6.…

书生浦语大模型实战营-课程笔记(3)

本节课主要是跟着教程做的&#xff0c;操作的东西放到作业里记录了。 这里主要记录一些视频里讲的非操作性的东西。 RAG外挂知识库&#xff1f;优点是成本低&#xff0c;不用重新训练 RAG的一个整体流程。 涉及了文本相似度匹配&#xff0c;是不是和传统的问答系统&#xff0…

【Linux学习】线程池

目录 23.线程池 23.1 什么是线程池 23.2 为什么需要线程池 23.3 线程池的应用场景 23.4 实现一个简单的线程池 23.4.1 RAII风格信号锁 23.4.2 线程的封装 23.4.3 日志打印 22.4.4 定义队列中存放Task类任务 23.4.5 线程池的实现(懒汉模式) 为什么线程池中需要有互斥锁和条件变…

第三百四十六回

文章目录 1. 概念介绍2. 原理与方法2.1 知识对比2.2 使用方法 3. 示例代码4. 内容总结 我们在上一章回中介绍了"加密包crypto"相关的内容&#xff0c;本章回中将介绍characters包.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 在项目中会遇到获取字…

片上网络NoC(3)——拓扑指标

目录 一、概述 二、指标 2.1 与网络流量无关的指标 2.1.1 度&#xff08;degree&#xff09; 2.1.2 对分带宽&#xff08;bisection bandwidth&#xff09; 2.1.3 网络直径&#xff08;diameter&#xff09; 2.2 与网络流量相关的指标 2.2.1 跳数&#xff08;hop coun…

【深度学习】S2 数学基础 P4 微积分(下)偏导数与链式法则

目录 深度学习与微积分偏导数链式法则 深度学习与微积分 总结来说&#xff0c;深度学习的核心在于优化&#xff1b;优化的重点在于降低损失值&#xff1b;降低损失值需要通过反向梯度下降&#xff1b;而微积分&#xff0c;判断的就是梯度下降的方向和大小。 铺开来说&#xf…

【51单片机】初学者必读的一文【探究定时计数器与中断系统是如何配合起来的?】(9)

前言 大家好吖&#xff0c;欢迎来到 YY 滴单片机系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过单片机的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的…