第1题
算法空间复杂度的度量方法是
算法程序的长度
算法所处理的数据量
执行算法所需要的工作单元
执行算法所需要的存储空间
第2题
下列叙述正确的是
在C程序中main函数的位置是固定的
c程序中所有函数之间都可以相互调用
每个c程序文件中都必须要有一个main函数
在c程序的函数中不能定义另一个函数
第3题
下面选项中关于文件指针概念的叙述正确的是
文件指针就是文件位置指针,表示当前读写数据的位置
文件指针指向文件在计算机中的存储位置
文件指针是程序中用FILE定义的指针变量
把文件指针传给fscanf函数,就可以向文本文件中写入任意的字符
第4题
下列选项中不属于结构化程序设计原则的是
可封装
自顶向下
模块化
逐步求精
第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); } |
则程序的输出结果是
10
6
7
3
第6题
以下不能用于描述算法的是
程序语句
E-R图
伪代码和流程图
文字叙述
第7题
某带链栈初始状态为top=bottom=NULL,经过一系列正常的入栈与退栈操作后,top=10,bottom=20。该栈中的元素个数为
不确定
10
1
0
第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); } |
程序运行后输出结果是
0,0,0,3
1,1,2,0
编译有错
0,1,2,0
第9题
以下数组定义中错误的是
int x[] [3]={0};
int x[2][3]={{1,2},{3,4},{5,6}};
int x[][3]={{1,2,3},{4,5,6}};
int x[2][3]={1,2,3,4,5,6};
第10题
以下叙述中正确的是
程序必须包含所有三种基本结构才能成为算法
如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能表达准确
只有简单的算法才能在有限的操作步骤之后结束
我们所写的每条c语句,经过编译最终将转换成二进制的机器指令
第11题
软件详细设计产生的图如下图所示,则该图是
N-S图
PAD图
程序流程图
E-R
第12题
若有以下程序
1
2
3
4
5
6
7
|
#include<stdio.h> main() { int c; c=13|5; printf ( "%d\n" ,c); } |
则程序的输出结果是
15
18
13
5
第13题
以下选项中,没有编译错误的是
char str3[]={'d', 'e ','b','u','g','\0'};
char str1[5]="pass",str2[6]; str2=str1
char name[10];name="china";
char str4[];str4="hello world";
第14题
设顺序表的长度为n,下列算法中,最坏情况下比较次数等于n(n-1)/2的是
快速排序
堆排序
顺序查找
寻找最大项
第15题
下列关于数据库特点的说法中正确的是
数据能共享且独立性高
数据能共享但数据冗余很高
能保证数据完整性但降低了安全性
数据独立性高但不能实现共享
第16题
设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a,&c2);
语句变量a1,a2赋值为数值10,20,为变量c1,c2赋字符X,Y。以下所示的输入形式中正确的是
10 X20 Y
10 X 20 Y
10X 20Y
10 X 20 Y
第17题
对长度为10的线性表进行冒泡排序,最坏的情况下需要比较的次数为
9
10
45
90
第18题
若a是数值型,则逻辑表达式(a==1)||(a!=1)的值为
0
2
1
不知道a的值,不能确定
第19题
设一颗度为3的树,其中度为2,1,0的结点数分别为3,1,6.该树种度为3的结点 数为
1
2
3
不可能有这样的树
第20题
以下选项中与if(a==1) a=b;else a++;语句功能不同的switch语句是
switch(a==1) {case 0: a=b;break; case 1:a++;}
switch(a) {case 1: a=b;break; default:a++;}
switch(a) {default:a++;break; case 1: a=b;}
switch(a==1) {case 1: a=b;break; case 0:a++;}
第21题
在以下给出的表达式中,与while(E)中的(E)不等价的表达式是
(E>0||E<0)
(!E==0)
(E!=0)
(E==9)
第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)); } |
程序的运行结果是
31
34
4
32
第23题
某二叉树的中序序列为DCBAEFG,后序序列为DCBGFEA,则该二叉树的深度为
5
4
3
2
第24题
设一棵树的度为3,其中没有度为2的结点,且叶子结点数为6。该树中度为3的结点数为
1
2
3
不可能有这样的树
第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=1,b=1
a=1,b=0
a=2,b=1
a=2,b=2
第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]) } |
程序运行后的输出结果是
1,2,3,4,5,6,7,8,9,10,
1,2,3,4,10,12,14,16,9,10,
1,2,6,8,10,12,7,8,9,10,
1,2,6,8,10,12,14,16,9,10,
第27题
设循环队列为Q(1:m),初始状态为front=rear=m。现经过一系列的入队与退队运算后,front=rear=1,则该循环队列中的元素个数为
1
2
m-1
0或m
第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); } |
程序运行后的输出结果是
9,One*Dream!
10,One*Dream!
9,One*World
10,One*World
第29题
以下能正确定义字符串的语句是
char str="\×43";
char str[]="\0";
char str=";
char str[]={'\064'}
第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的是
pt->x
*pt->y
++pt->x
(pt++)->x
第31题
以下叙述中正确的是
当用scanf从键盘输入数据时,每行数据在没按下回车键(Enter键)前,可以任意修改
花括号对只能用来表示函数的开头和结尾,不能用于其他目的
空语句就是指程序中的空行
复合语句在语法上包含多条语句,其中不能定义局部变量
第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!" ));} |
程序的输出结果是
6
8
0
7
第33题
设循环队列的存储空间为Q(1:50),初始状态为front=rear=50。经过一系列正常的操作后,front-1=rear。为了在该队列中寻找值最大的元素,在最坏情况下需要的比较次数为
0
1
48
49
第34题
结构化程序设计原则强调的是
自顶向下
可封装性
可复用性
可恢复性
第35题
以下叙述中正确的是
C语言程序总是从最前面的函数开始执行
C语言程序总是从main函数开始执行
C语言程序中main函数必须放在程序的开始位置
C语言程序所调用的函数必须放在main函数的前面
第36题
以下叙述中正确的是
打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖
在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据
C语言中的文件是流式文件,因此只能顺序存取数据
当对文件的读操作完成之后,必须将它关闭,否则可能导致数据丢失
第37题
下面属于整数类的实例是
0X518
0.518
"-518"
518E-2
第38题
下列叙述中正确的是
对数据进行压缩存储会降低算法的空间复杂度
算法的优化主要通过程序的编制技巧来实现
算法的复杂度与问题的规模无关
数值型算法只需考虑计算结果的可靠性
第39题
要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是
while(ch=getchar()='N')printf("%c",ch);
while(ch=getchar()=="N")printf("%c",ch);
while(ch=getchar())!='N')printf("%c",ch);
whilet(ch=getchar())=='N')printf("%c",ch);
第40题
若有以下程序
1
2
3
4
5
6
7
|
main() { int a=-2,b=0; while (a++) ++b; printf ( "%d,%d\n" ,a,b); } |
则程序的输出结果是
0,2
1,2
1,3
2,3
第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" ); } |
第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" ); } |
第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" ); } |