C语言测试题

时间:2024-09-27 11:28:03 雪桃 试题 我要投稿
  • 相关推荐

C语言测试题

  在平平淡淡的日常中,我们会经常接触并使用试题,借助试题可以更好地考查参试者所掌握的知识和技能。你知道什么样的试题才能切实地帮助到我们吗?下面是小编收集整理的C语言测试题,欢迎大家借鉴与参考,希望对大家有所帮助。

C语言测试题

  C语言测试题 1

  (1)下面关于算法说法错误的是_______。

  a.算法最终必须由计算机程序实现

  b.为解决某问题的算法同为该问题编写的程序含义是相同的

  c.算法的可行性是指指令不能有二义性

  d.以上几个都是错误的

  (2)下面说法错误的是______.

  a.算法原地工作的含义是指不需要任何额外的辅助空间

  b.在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法

  c.所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界

  d.同一个算法,实现语言的级别越高,执行效率就越低

  (3)在下面的.程序段中,对x的赋值语句的频度为_____。

  for (int i; i

  { for (int j=o; j

  { x:=x+1;

  } }

  a.0(2n) b.0(n) c.0(n2) d.O(log2n)

  (4)下面说法正确的是______。

  a.数据元素是数据的最小单位;

  b.数据元素是数据的最小单位;

  c.数据的物理结构是指数据在计算机内的实际存储形式

  d.数据结构的抽象操作的定义与具体实现有关

  (5)下面说法正确的是_______。

  a.在顺序存储结构中,有时也存储数据结构中元素之间的关系

  b.顺序存储方式的优点是存储密度大,且插入、删除运算效率高

  c.数据结构的基本操作的设置的最重要的准则是,实现应用程序与存储结构的独立

  d.数据的逻辑结构说明数据元素之间的顺序关系,它依赖于计算机的储存结构

  C语言测试题 2

  (1)下面说法错误的是_____。

  a.静态链表既有顺序存储的优点,又有动态链表的优点。所以,它存取表中第i个元素的时间与i无关。

  b.静态链表中能容纳的元素个数的`最大数在表定义时就确定了,以后不能增加。

  c.静态链表与动态链表在元素的插入、删除上类似,不需做元素的移动。

  d.静态链表就是一直不发生变化的链表。

  (2)在双向链表指针p的结点前插入一个指针q的结点操作是______。

  a.p->Llink=q; q->Rlink=p; p->Llink->Rlink=q; q->Llink=q;

  b.p->Llink=q; p->Llink->Rlink=q; q->Rlink=p; q->Llink=p->Llink;

  c.q->Rlink=p; q->Llink=p->Llink; p->Llink->Rlink=q; p->Llink=q;

  d.q->Llink=p->Llink; q->Rlink=q; p->Llink=q; p->Llink=q;

  (3)下面说法正确的是______。

  a.顺序存储结构的主要缺点是不利于插入或删除操作;

  b.线性表采用链表存储时,结点和结点内部的存储空间可以是不连续的;

  c.顺序存储方式插入和删除时效率太低,因此它不如链式存储方式好;

  d.顺序存储方式只能用于存储线性结构。

  (4)下面说法正确的是______。

  a.线性表只能用顺序存储结构实现。

  b.为了很方便的插入和删除数据,可以使用双向链表存放数据。

  c.顺序存储方式的优点是存储密度大,且插入、删除运算效率高。

  d.链表是采用链式存储结构的线性表,进行插入、删除操作时,在链表中比在顺序存储结构中效率高。

  (5)下面说法正确的是_________。

  a.数据元素是数据的最小单位。

  b.队列逻辑上是一个下端口和上端能增加又能减少的线性表。

  c.任何一个递归过程都可以转换成非递归过程。

  d.只有那种使用了局部变量的递归过程在转换成非递归过程时才必须使用栈。

  C语言测试题 3

  1: 第1题请编写函数fun,其功能使:将两个两位正整数a b合并形成一个整数放在c中。合并的方式使:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的千位和十位上。

  答案:

  void fun(int a,int b,long *c)

  {*c=(b/10)*1000+(a/10)*100+(b%10)*10+a%10;}

  2: 第2题请编写一个函数fun,它的功能使:计算n门课程的平均分,计算结果作为函数值返回。

  答案:

  float fun(float *a,int n)

  {float ave=0.0;

  int i;

  for(i=0;i

  ave+=a;

  ave/=n;

  return ave;}

  3: 第3题假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能使:将字符串尾部的*号全部删除,前面和中间的*号不删除。

  答案:

  void fun(char *a)

  {int i=0;

  char *p,*q;

  p=q=a;

  while(*p)

  p++;

  p--;

  while(*p==‘*’)

  p--;

  while(q<=p)

  {a=*q;

  i++;

  q++;}

  a=‘’;}

  4: 第4题请编写函数fun,其功能是:将两个两位数的正整数a b合并形成一个整数放在c中,合并的方式是:将a数的十位和个位数依次放在c的个位和百位上,b数的`十位和个位数依次放在c数的千位和十位上。

  答案:

  void fun(int a,int b,long *c)

  {c=(b/10)*1000+(a%10)*100+(b%10)*10+a/10;}

  5: 第5题 n名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:求出平均分,由函数值返回。

  答案:

  double fun(strec *h)

  {double aver=0.0;

  while(h!=null)

  {aver+=h->s;

  hy=h->next;}

  aver/=n;

  return aver;}

  6: 第6题请编写函数fun,计算并输出给定10个数的方差。

  答案:

  double fun(double x[10])

  {int i,j;

  double s=0.0,s1=0.0;

  for(i=0;i<10;i++)

  s1+=x;

  s1/=10;

  for(j=0;j<10;j++)

  s+=(x[j]-s1)*(x[j]-s1);

  s/=10;

  s=pow(s,0.5);

  return s;}

  7: 第7题请编写函数fun,其功能是:将两个两位数的正整数a b合并形成一个整数放在c 中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的个位和百位上。

  答案:

  void fun(int a,int b,long *c)

  {*c=(a/10)*1000+(a%10)*10+(b%10)*100+b/10;}

  C语言测试题 4

  (1) 下述_____是顺序存储结构的优点。

  a.存储密度大

  b.插入运算方便

  c.删除运算方便

  d.可方便地用于各种逻辑结构的存储表示

  (2)下面关于线性表的叙述中,错误的`是_____。

  a.线性表采用顺序存储,必须占用一片连续的存储单元

  b.线性表采用顺序存储,便于进行插入和删除操作

  c.线性表采用链接存储,不必占用一片连续的存储单元

  d.线性表采用链接存储,便于插入和删除操作

  (3) 某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用_______存储方式最节省时间。

  a.顺序表 b.双链表 c.带头结点的双循环链表 d.单循环链表

  (4)静态链表中指针表示的是______。

  a.内存地址 b.数组下标 c.下一元素地址 d.左、右孩子地址

  (5)下面的叙述不正确的是_______。

  a.线性表在链式存储时,查找第i个元素的时间同i的值成正比

  b.线性表在链式存储时,查找第i个元素的时间同i的值无关

  c.线性表在顺序存储时,查找第i个元素的时间同i 的值成正比

  d.线性表在顺序存储时,查找第i个元素的时间同i的值无关

  C语言测试题 5

  (1)算法的时间复杂度是指_______。

  A)执行算法程序所需要的时间

  B)算法程序的长度

  C)算法执行过程中所需要的基本运算次数

  D)算法程序中的指令条数

  答案:C

  评析:所谓算法的时间复杂度,是指执行算法所需要的计算工作量。

  (2)下列叙述中正确的是________。

  A)线性表是线性结构B)栈与队列是非线性结构

  C)线性链表是非线性结构D)二叉树是线性结构

  答案:A

  评析:一般将数据结构分为两大类型:线性结构与非线性结构。线性表、栈与队列、线性链表都是线性结构,而二叉树是非线性结构。

  (3)下面关于完全二叉树的叙述中,错误的是_________。

  A)除了最后一层外,每一层上的结点数均达到最大值

  B)可能缺少若干个左右叶子结点

  C)完全二叉树一般不是满二叉树

  D)具有结点的完全二叉树的深度为[log2n]+1

  答案:B

  评析:满二叉树指除最后一层外每一层上所有结点都有两个子结点的二叉树。完全二叉树指除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺少右边的若干子结点(叶子结点)的二叉树。

  C语言笔试题答案篇

  (1)结构化程序设计主要强调的是_________。

  A)程序的规模B)程序的易读性

  C)程序的执行效率D)程序的可移植性

  答案:B

  评析:结构化程序设计主要强调的是结构化程序清晰易读,可理解性好,程序员能够进行逐步求精、程序证明和测试,以保证程序的正确性。

  (2)在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是________。

  A)概要设计B)详细设计C)可行性分析D)需求分析

  答案:D

  评析:需求分析是对待开发软件提出的需求进行分析并给出详细定义,即准确地确定软件系统的功能。编写软件规格说明书及初步的用户手册,提交评审。

  (3)数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是_________。

  A)控制流B)加工C)数据存储D)源和潭

  答案:A

  评析:数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。数据流图中的主要图形元素有:加工(转换)、数据流、存储文件(数据源)、源和潭。

  (4)软件需求分析一般应确定的是用户对软件的__________。

  A)功能需求B)非功能需求C)性能需求D)功能需求和非功能需求

  答案:D

  评析:软件需求分析中需要构造一个完全的系统逻辑模型,理解用户提出的每一功能与性能要求,是用户明确自己的任务。因此,需求分析应确定用户对软件的功能需求和非功能需求。

  C语言笔试题答案篇

  (1)下述关于数据库系统的叙述中正确的是________。

  A)数据库系统减少了数据冗余

  B)数据库系统避免了一切冗余

  C)数据库系统中数据的一致性是指数据类型的一致

  D)数据库系统比文件系统能管理更多的数据

  答案:A

  评析:由数据的共享自身又可极大地减少数据冗余性,不仅减少了不必要的`存储空间,更为重要的是可以避免数据的不一致性。所谓数据的一致性是指在系统中同一数据的不同出现应保持相同的值。

  (2)关系表中的每一横行称为一个________。

  A)元组B)字段C)属性D)码

  答案:A

  评析:在关系数据库中,关系模型采用二维表来表示,简称“表”。二维表是由表框架及表元组组成。在表框架中,按行可以存放数据,每行数据称为元组。

  (3)数据库设计包括两个方面的设计内容,它们是________。

  A)概念设计和逻辑设计B)模式设计和内模式设计

  C)内模式设计和物理设计D)结构特性设计和行为特性设计

  答案:A

  评析:数据库设计可分为概念设计与逻辑设计。概念设计的目的是分析数据间内在语义关联,在此基础上建立一个数据的抽象模型。逻辑设计的主要工作是将ER图转换为指定的RDBMS中的关系模型。

  (4)请读程序:

  #include

  main

  {

  int a;float b,c;

  scanf(“%2d%3P%4f’,&a,&b,&C);

  printf(” a=%d,b=%ec。%f ”,a,b,C);

  }

  若运行时从键盘上输入9876543210l,则上面程序的输出结果是________。

  A)a=98,b=765,c=432 1

  B)a=1 0,b=432,c=8765

  C)a=98,b=765.000000,c=432 1.000000

  D)a=98,b=765.0,c=432 1.0

  答案:C

  评析:scanf把用户从键盘录入的数字的第1、2位存入整型变量a;把第3、4、5位存入单精度实型变量b,把第6、7、8、9位存入单精度实型变量c,用户录入的第10位被scanf遗弃。这时变量a、b、c的值分别为:98、765.000000、4321.000000。

  (5)一个良好的算法由下面的基本结构组成,但不包括__________。

  A)顺序结构B)选择结构C)循环结构D)跳转结构

  答案:D

  评析:1966年,Bohra和Jacopini提出了以下三种基本结构,用这三种基本结构作为表示一个良好算法的基本单元:1、顺序结构;2、选择结构;3、循环结构。

  (6)请选出以下程序的输出结果________。

  #include

  sub(x,y,z)

  int x,y,星符号z:

  {星符号z变化,所以此次函数被调用后,a的值为y-x=-5,同理可知,在sub(7,a,&b)后,b的值发生变化,其值为-5-7=-12,在sub(a,b,&C)后,c的值发生变化,其值为-12-(-5)=-7。

  (7)下面程序在屏幕上的输出是________。

  main

  {

  printf(”ab c”);

  }

  A)ab c B)a c C)abc D)ab c

  答案:B

  评析:c语言中允许使用一种特殊形式的字符常量,、就是以一个“”开头的字符序列,这样的字符称为“转义字符”。常用的转义字符有: ,换行;,水平制表;,退格;,回车。

  (8)若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是_______。

  A)pb=&x; B)pb=x; C)星符号pb=星符号、/)还包括自增自减运算符(++、–),在c语言解析表达式时,它总是进行贪婪咀嚼,这样,该表达式就被解析为i++ ++ +i,显然该表达式不合c语言语法。

  (10)若要用下面的程序片段使指针变量p指向一个存储整型变量的动态存储单元

  int星符号int) D)(int星符号)

  答案:D

  评析:不论p是指向什么类型的指针变量,都可以通过强制类型转换的方法使之类型一致,强制类型转换的格式为(数据类型+)。

  (11)下面程序输出的结果是__________。

  main

  {

  int i=5,J=9,x;

  x=(I==j?i:(j=7));

  printf(” %d,%d”,I,J);

  }

  A)5,7 B)5,5 C)语法错误D)7,5

  答案:A

  评析:条件表达式的一般形式为:表达式I?表达式2:表达式3;先求解表达式1,若为真则求解表达式2;若表达式l的值为假,则求解表达式3。本题中先判断i==j,不等,执行j=7;然后执行x=7。故本题为A。

【C语言测试题】相关文章:

c语言练习试题11-14

c语言试题及答案02-25

c语言实践报告03-14

c语言面试题及答案02-27

C语言实验报告11-08

c语言学习心得09-23

c语言心得体会05-12

c语言学习总结通用03-03

c语言实验报告01-18