算法空间复杂度的度量方法是( )
算法程序的长度
算法所处理的数据量
执行算法所需要的工作单元
执行算法所需要的存储空间
下列叙述正确的是( )
在C程序中main函数的位置是固定的
c程序中所有函数之间都可以相互调用
每个c程序文件中都必须要有一个main函数
在c程序的函数中不能定义另一个函数
下面选项中关于文件指针概念的叙述正确的是( )
文件指针就是文件位置指针,表示当前读写数据的位置
文件指针指向文件在计算机中的存储位置
文件指针是程序中用FILE定义的指针变量
把文件指针传给fscanf函数,就可以向文本文件中写入任意的字符
下列选项中不属于结构化程序设计原则的是( )
可封装
自顶向下
模块化
逐步求精
若有以下程序
#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
以下不能用于描述算法的是( )
程序语句
E-R图
伪代码和流程图
文字叙述
某带链栈初始状态为top=bottom=NULL,经过一系列正常的入栈与退栈操作后,top=10,bottom=20。该栈中的元素个数为( )
不确定
10
1
0
有以下程序
#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
以下数组定义中错误的是( )
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};
若有以下程序
#include<stdio.h>
main()
{
int c;
c=13|5;
printf("%d\n",c);
}
则程序的输出结果是( )
15
18
13
5
以下叙述中正确的是( )
程序必须包含所有三种基本结构才能成为算法
如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能表达准确
只有简单的算法才能在有限的操作步骤之后结束
我们所写的每条c语句,经过编译最终将转换成二进制的机器指令
以下选项中,没有编译错误的是( )
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";
设顺序表的长度为n,下列算法中,最坏情况下比较次数等于n(n-1)/2的是( )
快速排序
堆排序
顺序查找
寻找最大项
软件详细设计产生的图如下图所示,则该图是( )
N-S图
PAD图
程序流程图
E-R
下列关于数据库特点的说法中正确的是( )
数据能共享且独立性高
数据能共享但数据冗余很高
能保证数据完整性但降低了安全性
数据独立性高但不能实现共享
设变量均已正确定义,若要通过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
设一颗度为3的树,其中度为2,1,0的结点数分别为3,1,6.该树种度为3的结点数为( )
1
2
3
不可能有这样的树
以下选项中与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++;}
对长度为10的线性表进行冒泡排序,最坏的情况下需要比较的次数为( )
9
10
45
90
若a是数值型,则逻辑表达式(a==1)||(a!=1)的值为( )
0
2
1
不知道a的值,不能确定
在以下给出的表达式中,与while(E)中的(E)不等价的表达式是( )
(E>0||E<0)
(!E==0)
(E!=0)
(E==9)
#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
某二叉树的中序序列为DCBAEFG,后序序列为DCBGFEA,则该二叉树的深度为( )
5
4
3
2
设一棵树的度为3,其中没有度为2的结点,且叶子结点数为6。该树中度为3的结点数为( )
1
2
3
不可能有这样的树
#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
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,
设循环队列为Q(1:m),初始状态为front=rear=m。现经过一系列的入队与退队运算后,front=rear=1,则该循环队列中的元素个数为( )
1
2
m-1
0或m
#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
以下能正确定义字符串的语句是( )
char str="\×43";
char str[]="\0";
char str=";
char str[]={'\064'};
有以下程序段
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
以下叙述中正确的是( )
当用scanf从键盘输入数据时,每行数据在没按下回车键(Enter键)前,可以任意修改
花括号对只能用来表示函数的开头和结尾,不能用于其他目的
空语句就是指程序中的空行
复合语句在语法上包含多条语句,其中不能定义局部变量
有以下程序
#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
设循环队列的存储空间为Q(1:50),初始状态为front=rear=50。经过一系列正常的操作后,front-1=rear。为了在该队列中寻找值最大的元素,在最坏情况下需要的比较次数为( )
0
1
48
49
结构化程序设计原则强调的是( )
自顶向下
可封装性
可复用性
可恢复性
以下叙述中正确的是( )
C语言程序总是从最前面的函数开始执行
C语言程序总是从main函数开始执行
C语言程序中main函数必须放在程序的开始位置
C语言程序所调用的函数必须放在main函数的前面
以下叙述中正确的是( )
打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖
在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据
C语言中的文件是流式文件,因此只能顺序存取数据
当对文件的读操作完成之后,必须将它关闭,否则可能导致数据丢失
×该题未答
下列叙述中正确的是( )
对数据进行压缩存储会降低算法的空间复杂度
算法的优化主要通过程序的编制技巧来实现
算法的复杂度与问题的规模无关
数值型算法只需考虑计算结果的可靠性
下面属于整数类的实例是( )
0X518
0.518
"-518"
518E-2
要求通过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);
若有以下程序
main()
{
int a=-2,b=0;
while(a++)
++b;
printf("%d,%d\n",a,b);
}
则程序的输出结果是( )
0,2
1,2
1,3
2,3
函数fun()的功能是:在有n个元素的结构体数组std中,查找有不及格科目的学生,找到后输出学生的学号;函数的返回值是有不及格科目的学生人数。例如,主函数中给出了4名学生的数据,则程序运行的结果为:
学号:N1002 学号:N1006
共有2位学生有不及格科目
#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");
}
函数fun()的功能是:判断整数n是否是“完数”。当一个数的因子之和恰好等于这个数本身时,就称这个数为“完数"。例如:6的因子包括1、2、3,而6=1+2+3,所以6是完数。如果是完数,函数返回值为1,否则函数返回值为0。
数组a中存放的是找到的因子,变量k中存放的是因子的个数。请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#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");
}
请编写函数fun(),其功能是:在形参指针所指的4个整数中找出最大值和最小值,最大的放在a中,最小的放在d中。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括中的标号处填入所编写的若干语句。
#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");
}