DS作业0-C语言基础知识复习(含指针与链表)

这篇具有很好参考价值的文章主要介绍了DS作业0-C语言基础知识复习(含指针与链表)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

判断题:
1.直接访问就是直接利用变量的地址直接进行访问。T

2.可以用一个指针变量指向一个函数,然后通过该指针变量调用此函数。T

3.int (*p)[4]它表示p是一个指针数组,它包含4个指针变量元素。F
(是int类型数组,里面有4个指针变量元素)
4.结构体变量可以作数组元素。T

5.函数名代表该函数的入口地址。因此,可用函数名给指向函数的指针变量赋值。T

6.结构体成员的类型必须是基本数据类型。F
(可有指针变量)
7.指针数组的每个元素都是一个指针变量。T

8.结构体类型本身不占用内存空间,结构体变量占用内存空间。T

9.char *s="C Language";表示s是一个指向字符串的指针变量,把字符串的首地址赋予s。T

10.结构体成员的类型必须是基本数据类型。F

单选题:
1.若p1、p2都是整型指针,p1已经指向变量x,要使p2也指向x, ( )是正确的。
A.p2 = p1;
B.p2 = **p1;
C.p2 = &p1;
D.p2 = *p1;

2.设变量定义为 int a[2]={1,3}, *p=&a[0]+1;,则*p的值是( )。
A.2
B.3
C.4
D.&a[0]+1

3.根据声明int a[10], *p=a; ,下列表达式错误的是( )。
A.a[9]
B.p[5]
C.a++
D.*p++

4.已知表头元素为c的单链表在内存中的存储状态如下表所示:
现将f存放于1014H处,并插入到单链表中,若f在逻辑上位于a和e之间,则a、e、f的“链接地址”依次是:

A.1010H, 1014H, 1004H

B.1010H, 1004H, 1014H

C.1014H, 1010H, 1004H

D.1014H, 1004H, 1010H

5.根据声明int (*p)[10], p是一个( )。
A.数组
B.指针
C.函数
D.数组的元素

6.若定义pf为指向float类型变量f的指针,下列语句中__是正确的。
A.float f, *pf = f;
B.float f, *pf = &f;
C.float *pf = &f, f;
D.float f, *pf =0.0;

7.若变量已正确定义并且指针p已经指向某个变量x,则(*p)++相当于____。
A.p++
B.x++
C.*(p++)
D.&x++

8.若p1、p2都是整型指针,p1已经指向变量x,要使p2也指向x, ____是正确的。
A.p2=p1
B.p2=**p1
C.p2=&p1
D.p2=*p1

9.链表不具有的特点是:
A.插入、删除不需要移动元素
B.方便随机访问任一元素
C.不必事先估计存储空间
D.所需空间与线性长度成正比

10.设h为不带头结点的单向链表。在h的头上插入一个新结点t的语句是:
A.h=t; t->next=h->next;
B.t->next=h->next; h=t;
C.h=t; t->next=h;
D.t->next=h; h=t;

11.在单链表中,若p所指的结点不是最后结点,在p之后插入s所指结点,则执行
A.s->next=p; p->next=s;
B.s->next=p->next; p=s;
C.s->next=p->next; p->next=s;
D.p->next=s; s->next=p;

12.线性表若采用链式存储结构时,要求内存中可用存储单元的地址
A.必须是连续的
B.连续或不连续都可以
C.部分地址必须是连续的
D.一定是不连续的

13.线性表L在什么情况下适用于使用链式结构实现?
A.需不断对L进行删除插入
B.需经常修改L中的结点值
C.L中含有大量的结点
D.L中结点结构复杂

14.以下scanf函数调用语句中不正确的是__。

struct pupil {
    char name[20];
    int age;
    int sex;
} pup[5], *p=pup;

A.scanf("%s", pup[0].name);
B.scanf("%d", &pup[0].age);
C.scanf("%d", p->age);
D.scanf("%d", &(p->sex));

15.下列程序段的输出是____。

int c[]={1, 3, 5};
int *k=c+1;
printf("%d", *++k);


A.3
B.4
C.5
D.6

16.对于如下说明,语法和语义都正确的赋值是_____。

int c, *s, a[]={1, 3, 5};

A.c=*s;
B.s[0]=a[0];
C.s=&a[1];
D.c=a;

17.设有如下定义的链表,则值为7的表达式是()。

struct st{
      int n;
      struct st  *next;
} a[3] = {5, &a[1], 7, &a[2], 9, NULL}, *p = &a;

A.p->n
B.(p->n)++
C.++p->n
D.p->next->n

18.下列语句定义 x 为指向 int 类型变量 a 的指针,正确的是()。
A.int a, *x = a;
B.int a, *x = &a;
C.int *x = &a, a;
D.int a, x = a;

19.若有以下说明,且0<=i<10,则对数组元素的错误引用是()。

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

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

20.下面定义结构变量的语句中错误的是()。
A.struct student{ int num; char name[20]; } s;
B.struct { int num; char name[20]; } s;
C.struct student{ int num; char name[20]; }; struct student s;
D.struct student{ int num; char name[20]; }; student s;

21.设有如下定义,则对data中的a成员的正确引用是()。

struct sk{ int a; float b; } data, *p=&data;

A.(*p).data.a
B.(*p).a
C.p->data.a
D.p.data.a

22.对于以下变量定义,正确的赋值是()。

int *p[3], a[3];

A.p = a
B.*p = a[0]
C.p = &a[0]
D.p[0] = &a[0]

23.有如下说明:
int a[10]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, *P=a;
则数值为 9 的表达式是( )。
A.*P+9
B.*(P+8)
C.*P+=9
D.P+8
 文章来源地址https://www.toymoban.com/news/detail-763383.html

到了这里,关于DS作业0-C语言基础知识复习(含指针与链表)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【05】STM32·HAL库开发-C语言基础知识 | stdint.h介绍 | 位操作 | 宏定义的使用 | 条件编译 | extern声明 | typdef使用 | 结构体、指针、代码规范介绍。

      stdint.h 是从 C99 中引进的一个标准 C 库的文件,可以在MDK5的安装路径:D:MDK5.34ARMARMCCinclude中找到。   stdint.h 定义了很多类型别名,将有符号的char类型定义别名为int8_t等,使用此套别名有易于移植。   在MDK中需要配置才能支持使用S99标准, 默认是勾选的 。   只

    2024年02月08日
    浏览(33)
  • Java ---基础知识& 期末复习

    1.Java是低级语言还是 高级语言    答:高级语言。 2.Java是面向对象的程序设计语言吗 答:是。 3. Java是编译型的计算机语言还是解释型的计算机语言。 答: 一种说法:Java是编译型的。因为所有的Java代码都是要编译的,.java不经过编译就无法执行。 另一种说法:Java是解释型

    2024年01月16日
    浏览(42)
  • 复习并发编程的基础知识(一)

    目录 进程和线程 并发和并行  如何创建一个线程? 1,继承Thread类  2,实现Runnable接口          3. Callable接口 线程Thread类的一些重要方法  守护线程: 时间长了,并发编程的基础知识总忘,来记录一下: 进程和线程 进程:资源分配的最小单元,什么是资源?CPU,内存,网

    2024年02月08日
    浏览(41)
  • Pytorch基础知识点复习

    本篇博客是本人对pytorch使用的查漏补缺,参考资料来自 深入浅出PyTorch,本文主要以提问的方式对知识点进行回顾,小伙伴们不记得的知识点可以查一下前面的教程哦。   现在并行计算的策略是 不同的数据分布到不同的设备中,执行相同的任务(Data parallelism) 。   它的逻

    2024年01月20日
    浏览(35)
  • Python基础知识大全(适用于全面复习Python语法知识)

    python属于解释型语言 源代码(python)-解释器(逐行解释每一句源代码)-操作系统-cpu java属于编译型语言 源代码(java)-编译器-可执行文件-操作系统-cpu 容易混淆的几种表现形式 元组( ) 和列表[ ] 类似 只是元组不可以修改 这两个有点类似于C语言中的数组 集合 唯一{ } 和字典类似 只

    2024年02月02日
    浏览(39)
  • Java集合基础知识点复习

    主要分为两类: 第一个是Collection 属于单列集合,第二个是Map 属于双列集合在Collection中有两个子接口List和Set。在我们平常开发的过程中用的比较多像list接口中的实现类ArrarList和LinkedList。 在Set接口中有实现类HashSet和TreeSet。 在map接口中有很多的实现类,平时比较常见的是

    2024年04月08日
    浏览(46)
  • Java知识复习(八)Spring基础

    Spring :是一款开源的轻量级 Java 开发框架,旨在提高开发人员的开发效率以及系统的可维护性 Spring主要指Spring Framework,就是指如上图所示的各项功能模块 SpringMVC主要指一种架构,MVC分别是Model模型、View视图、Controller控制器的简写,核心思想就是将数据、显示和业务逻辑分

    2023年04月18日
    浏览(34)
  • java基础知识点复习①

    java是一门开源的面向对象的编程语言,具有面向对象的封装、继承、多态的特点。 封装:将类的某些信息隐藏起来,只提供特定的方法来访问或修改这些隐藏信息,从而防止直接操作类中的某些属性。是通过访问权限修饰符来实现封装的,public——protected——default——pri

    2023年04月22日
    浏览(36)
  • Mysql数据库基础知识总复习

    小亭子正在努力的学习编程,接下来将开启javaEE的学习~~ 分享的文章都是学习的笔记和感悟,如有不妥之处希望大佬们批评指正~~ 同时如果本文对你有帮助的话,烦请点赞关注支持一波, 感激不尽~~ 目录 前言 数据库基础知识 数据,数据库,数据库管理系统,数据库系统 数据

    2024年02月02日
    浏览(41)
  • 计算机网络安全基础知识复习

    计算机安全: 对于一个自动化的信息系统,采取措施确保信息系统资源(包括硬件、软件、固件、信息数据和通信)的完整性,可用性和保密性。 目标/服务: 认证;访问控制;数据保密性;数据完整性,不可否认性,可用性. 安全攻击 :任何危及信息系统安全的行为。 安全机

    2024年02月09日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包