第1题

算法空间复杂度的度量方法是

A. 
算法程序的长度
B. 
算法所处理的数据量
C. 
执行算法所需要的工作单元
D. 
执行算法所需要的存储空间
共 1 分

第2题

下列叙述正确的是

A. 
在C程序中main函数的位置是固定的
B. 
c程序中所有函数之间都可以相互调用
C. 
每个c程序文件中都必须要有一个main函数
D. 
在c程序的函数中不能定义另一个函数
共 1 分

第3题

下面选项中关于文件指针概念的叙述正确的是

A. 
文件指针就是文件位置指针,表示当前读写数据的位置
B. 
文件指针指向文件在计算机中的存储位置
C. 
文件指针是程序中用FILE定义的指针变量
D. 
把文件指针传给fscanf函数,就可以向文本文件中写入任意的字符
共 1 分

第4题

下列选项中不属于结构化程序设计原则的是

A. 
可封装
B. 
自顶向下
C. 
模块化
D. 
逐步求精
共 1 分

第5题

若有以下程序

1
2
3
4
5
6
7
8
9
10
11
12
13
#include<stdio.h>
main()
{
    int a=1,b=2,c=3,d=4,r=0;
    if(a!=1);
    else r=1;
    if(b==2) r+=2;
    else;
    if(c!=3) r+=3;
    else;
    if(d==4) r+=4;
    printf("%d\n",r);
 }

则程序的输出结果是

A. 
10
B. 
6
C. 
7
D. 
3
共 1 分

第6题

以下不能用于描述算法的是

A. 
程序语句
B. 
E-R图
C. 
伪代码和流程图
D. 
文字叙述
共 1 分

第7题

某带链栈初始状态为top=bottom=NULL,经过一系列正常的入栈与退栈操作后,top=10,bottom=20。该栈中的元素个数为

A. 
不确定
B. 
10
C. 
1
D. 
0
共 1 分

第8题

有以下程序

1
2
3
4
5
6
7
8
9
#include<stdio.h>
main()
{
    int a=0,b=0,c=0,d=0;
    if(a=1) b=1;
    c=2;
    else d=3;
    printf("%d,%d,%d,%d\n",a,b,c,d);
 }

程序运行后输出结果是

A. 
0,0,0,3
B. 
1,1,2,0
C. 
编译有错
D. 
0,1,2,0
共 1 分

第9题

以下数组定义中错误的是

A. 
int x[] [3]={0};
B. 
int x[2][3]={{1,2},{3,4},{5,6}};
C. 
int x[][3]={{1,2,3},{4,5,6}};
D. 
int x[2][3]={1,2,3,4,5,6};
共 1 分

第10题

以下叙述中正确的是

A. 
程序必须包含所有三种基本结构才能成为算法
B. 
如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能表达准确
C. 
只有简单的算法才能在有限的操作步骤之后结束
D. 
我们所写的每条c语句,经过编译最终将转换成二进制的机器指令
共 1 分

第11题

软件详细设计产生的图如下图所示,则该图是

Snipaste_2021-04-12_01-14-57.png

A. 
N-S图
B. 
PAD图
C. 
程序流程图
D. 
E-R
共 1 分

第12题

若有以下程序

1
2
3
4
5
6
7
#include<stdio.h>
main()
{
    int c;
    c=13|5;
    printf("%d\n",c);
 }

则程序的输出结果是

A. 
15
B. 
18
C. 
13
D. 
5
共 1 分

第13题

以下选项中,没有编译错误的是

A. 
char str3[]={'d', 'e ','b','u','g','\0'};
B. 
char str1[5]="pass",str2[6]; str2=str1
C. 
char name[10];name="china";
D. 
char str4[];str4="hello world";
共 1 分

第14题

设顺序表的长度为n,下列算法中,最坏情况下比较次数等于n(n-1)/2的是

A. 
快速排序
B. 
堆排序
C. 
顺序查找
D. 
寻找最大项
共 1 分

第15题

下列关于数据库特点的说法中正确的是

A. 
数据能共享且独立性高
B. 
数据能共享但数据冗余很高
C. 
能保证数据完整性但降低了安全性
D. 
数据独立性高但不能实现共享
共 1 分

第16题

设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a,&c2);

语句变量a1,a2赋值为数值10,20,为变量c1,c2赋字符X,Y。以下所示的输入形式中正确的是

A. 
10 X20 Y
B. 
10 X 20 Y
C. 
10X 20Y
D. 
10 X 20 Y
共 1 分

第17题

对长度为10的线性表进行冒泡排序,最坏的情况下需要比较的次数为

A. 
9
B. 
10
C. 
45
D. 
90
共 1 分

第18题

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

A. 
0
B. 
2
C. 
1
D. 
不知道a的值,不能确定
共 1 分

第19题

设一颗度为3的树,其中度为2,1,0的结点数分别为3,1,6.该树种度为3的结点 数为

A. 
1
B. 
2
C. 
3
D. 
不可能有这样的树
共 1 分

第20题

以下选项中与if(a==1) a=b;else a++;语句功能不同的switch语句是

A. 
switch(a==1) {case 0: a=b;break; case 1:a++;}
B. 
switch(a) {case 1: a=b;break; default:a++;}
C. 
switch(a) {default:a++;break; case 1: a=b;}
D. 
switch(a==1) {case 1: a=b;break; case 0:a++;}
共 1 分

第21题

在以下给出的表达式中,与while(E)中的(E)不等价的表达式是

A. 
(E>0||E<0)
B. 
(!E==0)
C. 
(E!=0)
D. 
(E==9)
共 1 分

第22题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
int fun(int(*s)[4],int n,int k)
{
  int m,i;
  m=s[0][k];
  for(i=l;i<n;i++)
    if(s[i][k]>m) m=s[i][k];
  return m;
}
main()
{
  int a[4][4]={1,2,3,4),{11,12,13,14},{21,22,23,24},{31,32,33,34};
  printf("%d\n",fun(a,4,0));
}

程序的运行结果是

A. 
31
B. 
34
C. 
4
D. 
32
共 1 分

第23题

某二叉树的中序序列为DCBAEFG,后序序列为DCBGFEA,则该二叉树的深度为

A. 
5
B. 
4
C. 
3
D. 
2
共 1 分

第24题

设一棵树的度为3,其中没有度为2的结点,且叶子结点数为6。该树中度为3的结点数为

A. 
1
B. 
2
C. 
3
D. 
不可能有这样的树
共 1 分

第25题

1
2
3
4
5
6
7
8
9
#include main()
{
  int x=1,y=0,a=0,b=0;
  switch(x){
    case 1:switch(y)
      {case 0:a++;break;case 1:b++;break;}
    case 2:a++;b++;break;}
  printf("a=%d,b=%d\n",a,b);
}

程序运行后的输出结果是

A. 
a=1,b=1
B. 
a=1,b=0
C. 
a=2,b=1
D. 
a=2,b=2
共 1 分

第26题

1
2
3
4
5
6
7
8
9
10
11
void f(int b[])
{
   int i;
   for(i=2;i<6;i++)
   b[i]*=2}
main()
{
  int a[10]={1,2,3,4,5,6,7,8,9,10},i;
  f(a);
  for(i=0;i<10,i++)  printf("%d,",a[i])
}

程序运行后的输出结果是

A. 
1,2,3,4,5,6,7,8,9,10,
B. 
1,2,3,4,10,12,14,16,9,10,
C. 
1,2,6,8,10,12,7,8,9,10,
D. 
1,2,6,8,10,12,14,16,9,10,
共 1 分

第27题

设循环队列为Q(1:m),初始状态为front=rear=m。现经过一系列的入队与退队运算后,front=rear=1,则该循环队列中的元素个数为

 

A. 
1
B. 
2
C. 
m-1
D. 
0或m
共 1 分

第28题

1
2
3
4
5
6
7
8
9
#include <stdio.h>
#include <string.h>
void main()
{
  char str[20]={"One*World","One*Dream!"};
  *p=str[1];
  printf("%d,",strlen(p));
  printf("%s\n",p);
}

程序运行后的输出结果是

A. 
9,One*Dream!
B. 
10,One*Dream!
C. 
9,One*World
D. 
10,One*World
共 1 分

第29题

以下能正确定义字符串的语句是

A. 
char str="\×43";
B. 
char str[]="\0";
C. 
char str=";
D. 
char str[]={'\064'}
共 1 分

第30题

有以下程序段

1
2
3
4
struct st{int x;int *y;} *pt;
int a[]={1,2},b[]={3,4};
struct st c[2]={10,a,20,b};
pt=c;

以下选项中表达式的值为11的是

A. 
pt->x
B. 
*pt->y
C. 
++pt->x
D. 
(pt++)->x
共 1 分

第31题

以下叙述中正确的是

A. 
当用scanf从键盘输入数据时,每行数据在没按下回车键(Enter键)前,可以任意修改
B. 
花括号对只能用来表示函数的开头和结尾,不能用于其他目的
C. 
空语句就是指程序中的空行
D. 
复合语句在语法上包含多条语句,其中不能定义局部变量
共 1 分

第32题

有以下程序

1
2
3
4
5
6
#include <stdio.h>
int fun(char*s){
char*p=s;
while(*p!=0)p++;
return(p-s);}
main() {printf("%d\n",fun("goodbey!"));}

程序的输出结果是

A. 
6
B. 
8
C. 
0
D. 
7
共 1 分

第33题

设循环队列的存储空间为Q(1:50),初始状态为front=rear=50。经过一系列正常的操作后,front-1=rear。为了在该队列中寻找值最大的元素,在最坏情况下需要的比较次数为

A. 
0
B. 
1
C. 
48
D. 
49
共 1 分

第34题

结构化程序设计原则强调的是

A. 
自顶向下
B. 
可封装性
C. 
可复用性
D. 
可恢复性
共 1 分

第35题

以下叙述中正确的是

A. 
C语言程序总是从最前面的函数开始执行
B. 
C语言程序总是从main函数开始执行
C. 
C语言程序中main函数必须放在程序的开始位置
D. 
C语言程序所调用的函数必须放在main函数的前面
共 1 分

第36题

以下叙述中正确的是

A. 
打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖
B. 
在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据
C. 
C语言中的文件是流式文件,因此只能顺序存取数据
D. 
当对文件的读操作完成之后,必须将它关闭,否则可能导致数据丢失
共 1 分

第37题

下面属于整数类的实例是

A. 
0X518
B. 
0.518
C. 
"-518"
D. 
518E-2
共 1 分

第38题

下列叙述中正确的是

A. 
对数据进行压缩存储会降低算法的空间复杂度
B. 
算法的优化主要通过程序的编制技巧来实现
C. 
算法的复杂度与问题的规模无关
D. 
数值型算法只需考虑计算结果的可靠性
共 1 分

第39题

要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是

A. 
while(ch=getchar()='N')printf("%c",ch);
B. 
while(ch=getchar()=="N")printf("%c",ch);
C. 
while(ch=getchar())!='N')printf("%c",ch);
D. 
whilet(ch=getchar())=='N')printf("%c",ch);
共 1 分

第40题

若有以下程序

1
2
3
4
5
6
7
main()
{
  int a=-2,b=0;
  while(a++)
      ++b;
  printf("%d,%d\n",a,b);
  }

则程序的输出结果是

A. 
0,2
B. 
1,2
C. 
1,3
D. 
2,3
共 1 分

第41题

函数fun()的功能是:在有n个元素的结构体数组std中,查找有不及格科目的学生,找到后输出学生的学号;函数的返回值是有不及格科目的学生人数。例如,主函数中给出了4名学生的数据,则程序运行的结果为:

学号:N1002    学号:N1006

共有2位学生有不及格科目

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
    char num[8];
    double score[2];
/**********found**********/
} __(1)__;
int fun(STU std[ ], int n)
    int i,k=0;
    for(i=0; i<n;i++)
    {
        /**********found**********/
        if(std[i].score[0]<60 __(2)__ std[i].score[1]<60)
        {
            k++;
            printf("学号:%s ",std[i].num);
        }
    }      
    /**********found**********/
    return __(3)__;
}
main()
{
    STU std[4]={"N1001",76.5,82.0,"N1002",53.5,73.0, 
                        "N1005",80.5,66.0,"N1006",81.0,56.0};
    printf("\n共有%d位学生有不及格科目\n", fun(std,4));
    system("pause");
}
1. 
2. 
3. 
共 18 分

第42题

函数fun()的功能是:判断整数n是否是“完数”。当一个数的因子之和恰好等于这个数本身时,就称这个数为“完数"。例如:6的因子包括1、2、3,而6=1+2+3,所以6是完数。如果是完数,函数返回值为1,否则函数返回值为0。

数组a中存放的是找到的因子,变量k中存放的是因子的个数。请改正函数fun中指定部位的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <stdio.h>
#include <stdlib.h>
int fun(int n, int a[], int *k)
{
    int m=0, i, t;
    t=n;
    for(i=1; i<n; i++)
    {
        if(n%i==0)
        {
            a[m]=i;
            m++;
            t=t-i;
        }
    }
    /**********found**********/
    k=m;
    /**********found**********/
    if(t=0)
    {
        return 1;
    }
    else 
    {
        return 0; 
    }
}
main()
{
    int n, a[10], flag, i, k;
    printf("请输入一个整数:");  
    scanf("%d",&n);
    flag=fun(n,a,&k);
    if(flag)
    {
        printf("%d是完数,其因子是:",n);
        for(i=0;i<k;i++) 
        {
            printf(" %d ",a[i]);
        }
        printf("\n");
    }
    else
    {
        printf("%d不是完数\n",n);
    }
    system("pause");
}

 

1. 
2. 
共 18 分

第43题

请编写函数fun(),其功能是:在形参指针所指的4个整数中找出最大值和最小值,最大的放在a中,最小的放在d中。

注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括中的标号处填入所编写的若干语句。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <stdio.h>
#include <stdlib.h>
void NONO();
void fun(int *a,int *b,int *c,int *d)
{
    int t;
    if(1)
    {
      2;3;4;
    }
    if(5)
    {
      6;7;8;
    }
    if(9)
        {
             10;11;12;
        }
        if(13)
        {
             14;15;16;
        }
        if(17)
        {
             18;19;20;
        }
        if(21)
        {
             22;23;24;
        }
     
}
main()
{
    int a, b, c, d;
    printf("请输入4个整数:");
    scanf("%d %d %d %d",&a,&b,&c,&d);
    printf("原始顺序:%d,%d,%d,%d\n",a,b,c,d);
    fun(&a,&b,&c,&d);
    printf("处理后顺序:%d,%d,%d,%d\n",a,b,c,d);
    NONO();
}
void NONO()
{/*本函数用于打开文件,输入数据,
 调用函数,输出数据,关闭文件。*/
    FILE *rf,*wf;
    int i, a, b, c, d;
    rf=fopen("in.dat","r");
    wf=fopen("out.dat","w");
    for(i=0; i<8; i++)
    {
        fscanf(rf,"%d %d %d %d",&a,&b,&c,&d);
        fun(&a,&b,&c,&d);
        fprintf(wf,"a=%d,d=%d\n",a,d);
    }
    fclose(rf);
    fclose(wf);
    system("pause");
}

 

1. 
2. 
3. 
4. 
5. 
6. 
7. 
8. 
9. 
10. 
11. 
12. 
13. 
14. 
15. 
16. 
17. 
18. 
19. 
20. 
21. 
22. 
23. 
24. 
更多请戳http://www.gtalent.cn/exam/interview/Nh1BpnSbvkM0fiqL