二级题库(C语言)------ 第三套题

本文探讨了计算机中整数的存储与运算方式(补码),操作系统中文件名到地址的转换(文件目录),链表查找的时间复杂性,循环队列元素数量,二叉树的后序遍历,对象构成要素,软件工程三要素,数据库管理阶段特点,实体关系模型,结构化编程,C语言表达式,常量定义,数组和指针,字符输出,逻辑运算,条件语句,字符数组,函数参数,指针操作,数组运算,字符串操作,typedef用法,链表操作,位运算,输入格式,字符处理,函数值返回,数组操作,字符串连接,字符处理,typedef理解,链表操作,程序输出,文件内容,函数功能实现,字符串处理,类型定义,指针交换,数组索引,数组复制,文件I/O,字符转换,运算符优先级,函数声明,字符数组长度,字符串操作结果,函数调用,数组排序,数据结构应用,编程语言概念,计算机基础概念

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第三套题


1、整数在计算机中存储和运算通常采用的格式是( )。

A、原码

B、补码

C、反码

D、偏移码

2、在操作系统中,将文件名转换为文件存储地址的结构是(  )。

A、路径名

B、PCB表

C、文件目录

D、文件名

3、在长度为n的有序链表中进行查找,最坏情况下需要比较的次数为(  )。

A、n-1

B、n/2

C、n

D、与有序顺序表的对分查找相同

4、循环队列的存储空间为Q(1:50)。经过一系列正常的入队与退队操作后,front=rear=25。后又成功地将一个元素入队,此时队列中的元素个数为(  )。

A、1

B、50

C、26

D、2

5、设二叉树的前序序列为ABCDEF,中序序列为ABCDEF,则该二叉树的后序序列为(  )。

A、ABCDEF

B、FEDCBA

C、DEFCBA

D、CBAFED

6、不属于对象构成成份的是(  )。

A、标识

B、属性

C、方法(或操作)

D、规则

7、软件工程的三要素是(  )。

A、方法、工具和环境

B、方法、工具和过程

C、方法、平台和管理

D、方法、工具和文档

8、关于数据库管理阶段的特点,下列说法中错误的是(  )。

A、数据独立性差

B、数据的共享性高,冗余度低,易扩充

C、数据真正实现了结构化

D、数据由DBMS统一管理和控制

9、学校的每个社团都有一名团长,且一个同学可同时担任多个社团的团长,则实体团长和实体社团间的联系是(  )。

A、一对一

B、一对多

C、多对一

D、多对多

10、如果定义班级关系如下:班级(班级号,总人数,所属学院,班级学生)则使它不满足第一范式的属性是(  )。

A、所属学院

B、班级号

C、总人数

D、班级学生

11、以下关于结构化程序设计的叙述中正确的是

A、结构化程序使用goto语句会很便捷

B、在C语言中,程序的模块化是利用函数实现的

C、一个结构化程序必须同时由顺序、分支、循环三种结构组成

D、由三种基本结构构成的程序只能解决小规模的问题

12、对于一个正常运行的C程序,以下叙述中正确的是

A、程序的执行总是从main函数开始,在程序的最后一个函数中结束

B、程序的执行总是从程序的第一个函数开始, 在main函数结束

C、程序的执行总是从main函数开始

D、程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束

13、以下选项中能表示合法常量的是

A、1,200

B、1.5E2.0

C、'\'

D、"\007"

14、以下定义语句中正确的是

A、int a=b=0;

B、char  A=65+1,b='b';

C、float  a=1,*b=&a,*c=&b;

D、double a=0.0; b=1.1;

15、若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是

A、x+1=y

B、++x,y=x--

C、x=x+10=x+y

D、double(x)/10

16、若变量已正确定义为int型,要通过语句
 scanf("%d,%d,%d",&a,&b,&c); 
给a赋值1、给b赋值2、给 c赋值3,以下输入形式中错误的是(注:□代表一个空格符)

A、1,2,3<回车>

B、□□□1,2,3 <回车>

C、1,□□□2,□□□3<回车>

D、1□2□3<回车>

17、以下不能输出字符A的语句是(注:字符A的ASCII码值为65,字符a的ASCII码值为97)

A、printf ("%c \n", 'a'-32);

B、printf ("%d \n", 'A');

C、printf ("%c \n", 65);

D、printf ("%c \n", 'B'-1);

18、若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是

A、1

B、0

C、2

D、不知道a的值,不能确定

19、设有定义:
int  a=1,b=2,c=3;
以下语句中执行效果与其他三个不同的是

A、if(a>b) {c=b,a=b,b=c;}

B、if(a>b) {c=a,a=b,b=c;}

C、if(a>b) c=a;a=b;b=c;

D、if(a>b) {c=a;a=b;b=a;}

20、有以下程序
 #include <stdio.h>
 main()

    int y=10;
    while(y--);  
    printf("y=%d\n", y);
}
程序执行后的输出结果是

A、y=0

B、y=-1

C、y=1

D、while构成无限循环

21、有以下程序   
#include <stdio.h>
main()
{
  int i,j;
  for(i=1;i<4;i++)
  {
    for(j=i;j<4;j++) printf("%d*%d=%d",i,j,i*j);
   printf("\n");
  }
}
程序运行后的输出结果是

A、
1*1=1 1*2=2 1*3=3

2*2=4 2*3=6

3*3=9

B、
1*1=1 1*2=2 1*3=3

2*1=2 2*2=4

3*1=3

C、
1*1=1 

1*2=2 2*2=4

1*3=3 2*3=6 3*3=9

D、
1*1=1

2*1=2 2*2=4

3*1=3 3*2=6 3*3=9

22、有以下程序
#include <stdio.h>
main()
{  
int    i=5;
do
{    
  if (i%3==1)
    if  (i%5==2)
   {printf("*%d",i);break;}
      i++;
}while(i!=0);
 printf("\n");
}
程序的运行结果是

A、*2*6

B、*3*5

C、*5

D、*7

23、有以下程序
#include <stdio.h>
double f (double x);
main()
{  
double a=0; 
int i;
for(i=0;i<30;i+=10) a+=f((double)i);
printf("%3.0f\n",a);
}
double f(double x)
{return x*x+1;}
程序运行后的输出结果是

A、500

B、401

C、503

D、1404

24、若有以下函数首部
    int fun(double x[10], int *n)
则下面针对此函数的函数声明语句中正确的是

A、int  fun(double  , int );

B、int  fun(double *,  int *);

C、int  fun(double *x, int n);

D、int  fun(double x, int *n);

25、有以下程序
#include <stdio.h>
main()

    int m=1,n=2,*p=&m,*q=&n,*r;
    r=p; p=q; q=r;
    printf("%d,%d,%d,%d\n",m,n,*p,*q);
}
程序运行后的输出结果是

A、2,1,1,2

B、1,2,1,2

C、2,1,2,1

D、1,2,2,1

26、若有以下定义
:int x[10],*pt=x;
则对x数组元素的正确引用是

A、pt+3

B、*&x[10]

C、*(pt+10)

D、*(x+3)

27、有以下程序
 #include <stdio.h>
 main()

  int i,s=0,t[]={1,2,3,4,5,6,7,8,9};
   for(i=0;i<9;i+=2) s+=*(t+i);
       printf("%d\n",s);
}
程序执行后的输出结果是

A、20

B、25

C、45

D、36

28、有以下程序
#include <stdio.h>
#define N 4
void fun(int a[][N],int b[])

 int i;for(i=0;i<N;i++) b[i]=a[i][i];
}
main()
{  
  int x[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},y[N],i;
  fun(x, y);
  for(i=0;i<N;i++) printf("%d,",y[i]);
  printf("\n");
 }
程序的运行结果是

A、1,0,7,0,

B、1,2,3,4,

C、1,4,5,9,

D、3,4,8,10,

29、设有定义:
char *c;
以下选项中能够使c正确指向一个字符串的是

A、char str[ ]="string"; c=str;

B、scanf("%s",c);

C、c=getchar( );

D、*c="string";

30、若有定义语句:
char s[10]="1234567\0\0";则strlen(s)的值是

A、7

B、8

C、9

D、10

31、有以下程序
#include <stdio.h>
#include <string.h>
 main()

  char p[20]={'a','b','c','d'},q[]="abc",r[]="abcde";
  strcat(p,r);    
  strcpy(p+strlen(q),q);
  printf("%d\n",strlen(p));
}
程序运行后的输出结果是

A、11

B、9

C、6

D、7

32、有以下程序( 说明:字母A的ASCII码值是65 ) 
#include <stdio.h>
void fun(char *s)

  while(*s)
  { if( *s%2 ) printf("%c",*s);
   s++;
  }
}
main()

 char a[ ]="BYTE";
 fun(a);
 printf("\n");
}
程序运行后的输出结果是

A、BT

B、YE

C、YT

D、BY

33、有以下程序:
#include <stdio.h>
int fun()
{    
 static int x=1;    
 x+=1;    
 return x;
}
main()
{    
 int i,s=1;    
 for(i=1;i<=5;i++) s+=fun();    
 printf("%d\n",s);
}
程序运行后的输出结果是

A、120

B、11

C、6

D、21

34、有以下程序:
#include <stdio.h>
void fun2(char a,char b)
{     
 printf("%c %c",a,b);
}
char a='A',b='B';
void fun1()
{
 a='C';b='D';
}
main()
{      
 fun1( );    
 printf("%c %c ",a,b);     
 fun2('E','F');
}
程序的运行结果是

A、A B E F

B、C D E F

C、A B C D

D、C D A B

35、以下关于typedef的叙述错误的是

A、用typedef可以增加新类型

B、typedef只是将已存在的类型用一个新的名字来代表

C、用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名

D、用typedef为类型说明一个新名,通常可以增加程序的可读性

36、程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s、p、q均已正确定义,并用于指向链表结点,指针变量s总是作为指针指向链表的第一个结点。

若有以下程序段:
q=s;s=s->next;p=s;
while(p->next)p=p->next;
p->next=q;q->next=NULL;
该程序段实现的功能是

A、删除尾结点

B、尾结点成为首结点

C、删除首结点

D、首结点成为尾结点

37、有以下程序:     
#include <stdio.h>     
#define S(x) 4*(x)*x+1     
main()     
{  
 int k=5,j=2;        
 printf("%d\n",S(k+j));     
}
程序运行后的输出结果是

A、33

B、197

C、143

D、28

38、若有以下程序段:
int r=8;    
printf("%d\n",r>>1 );
输出结果是

A、16

B、8

C、4

D、2

39、以下叙述中错误的是

A、gets函数用于从终端读入字符串

B、getchar函数用于从磁盘文件读入字符

C、fputs函数用于把字符串输出到文件

D、fwrite函数用于以二进制形式输出数据到文件

40、有以下程序:
#include <stdio.h>
main() 
{  
   FILE *pf;
   char *s1="China", *s2="Beijing";
   pf=fopen("abc.dat","wb+");
   fwrite(s2,7,1,pf);    
   rewind(pf); /*文件位置指针回到文件开头*/
   fwrite(s1,5,1,pf); 
   fclose(pf);  
}
以上程序执行后abc.dat文件的内容是

A、China

B、Chinang

C、ChinaBeijing

D、BeijingChina

41、使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。
例如,有10个正数:46、30、32、40、6、17、45、15、48、26,平均值为30.500000。
移动后的输出为:46、32、40、45、48、30、6、17、15、26。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。

注意:部分源程序在文件blank1.c中。
不得增行或删行,也不得更改程序的结构!

42、使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。此程序的功能是:读入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此文本行(这里"单词"是指由空格隔开的字符串)。
例如,若输入"I am a student to take the examination",则应输出"I Am A Student To Take The Examination"。
请改正程序中的错误,使程序能得出正确的结果。

注意:部分源程序在文件modi1.c中。
不得增行或删行,也不得更改程序的结构!

同根子题

43、使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,定义了N×N的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的s。例如,若a 数组中的值为: 

则返回主程序后s的值应为3.375。

注意:部分源程序在文件prog1.c中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海棠弯弯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值