“商品”与“顾客”两个实体集之间的联系一般是( )
一对一
一对多
多对一
多对多
定义学生选修课程的关系模式:SC(S#,Sn,C#,Cn,G)则该关系的主键为( )
C#
S#
S#,C#
S#,C#,G
有以下程序
#include <stdio.h>
#define S(x)4*(x)*x+1
void main()
{
int k=5, j=2;
printf("%d\n",S(k+j));
}
程序运行后的输出结果是( )
197
143
33
28
某二叉树的前序序列为ABDFHCEG,中序序列为HFDBACEG。该二叉树的后序序列为( )
HFDBGECA
ABCDEFGH
HGFEDCBA
ACEGBDFH
下列叙述中正确的是( )
存储空间连续的数据结构一定是线性结构
存储空间不连续的数据结构一定是非线性结构
没有根结点的非空数据结构一定是线性结构
具有两个根结点的数据结构一定是非线性结构
带链栈空的条件是( )
top=bottom=NULL
top=-1且bottom=NULL
top=NULL且bottom-1
top=bottom=-1
若有以下程序
#include <stdio.h>
int *f(int*s, int*t)
{
int k;
if (*s<*t)
{
k=*s; *s=*t; *t=k;
}
return s;
}
main()
{
int i=3,j=5,*p=&i,*q=8&j,*r;
r=f(p,q);
printf("%d,%d,%d,%d,%d\n",I,j,*p,*q,*r);
}
则程序的输出结果是( )
3,5,5,3,5
3,5,3,5,5
5,3,5,3,5
5,3,3,5,5
不能正确表示数学式的表达式是( )
a*b/c
a/c*b
a/b*c
a*(b/c)
下列叙述中正确的是( )
存储空间不连续的所有链表一定是非线性结构
结点中有多个指针域的所有链表一定是非线性结构
能顺序存储的数据结构一定是线性结构
带链的栈与队列是线性结构
由关系R1和R2得到关系R3的操作是( )
交
并
笛卡尔积
等值连接
设二叉树的前序序列为ABDEGHCFJ,中序序列为DBGEHACIFJ。则后序序列为( )
DGHEBIJFCA
JIHGFEDCBA
GHIUDEFBCA
ABCDEFGHU
有以下程序
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');
}
ABEF
CDEF
ABCD
CDAB
在结构化程序设计中,模块划分的原则是( )
各模块应包括尽量多的功能
各模块的规模应尽量大
各模块之间的联系应尽量紧密
模块内具有高内聚度、模块间具有低耦合度
与数学表达式x≥y≥z对应的C语言表达式是( )
(x>=y>=z)
(x>=y)&&(y>=z)
(x>=y):y>=z)
(x>=y)l(y>=x)
sizeof(double)是( )
一个双精度型表达式
一个整型表达式
一个不合法的表达式
一种函数调用
若有以下程序
#include <stdio.h>
int k=7, m=5;
void f(int **s)
{
int *t=&k;
s=&t;
*s=&m;
printf("9%d,%d,%d,",k,*t,**s);
}
main()
{
int i=3,*p=&i,**r=&p;
f(r);
printf("%d,%d,%d\n",i,*p,**r);
}
则程序的输出结果是( )
7,5,7,3,3,3,
7,5,7,3,5,7,
7,5,5,3,3,3,
7,7,5,3,3,3,
有以下程序
int d=1;
void fun (int p)
{
int d=5;
d+=p++;
printf("%d",d);
}
main()
{
int a=3;
fun(a);
d+=a++;
printf("%d\n", d);
}
程序的输出结果是( )
9 6
9 4
8 4
8 5
有三个关系R,S和T如下图所示,则由关系R和S得到关系T的操作是( )
并
交
投影
自然连接
在数据库中存储的是( )
数据的操作
数据模型
操作信息
数据以及数据之间的联系
在关系A(S,SN,D)和B(D,CN,NM)中,A的主关键字是S,B的主关键字是D,则D是A的( )
外键(码)
候选键(码)
主键(码)
候选键或主键
有以下程序
#include <stdio.h>
main(){
int a=0, b=0;
/* 给a赋值a=10;b=20;给b赋值*/
printf("a+b=%d\n",a+b);/*输出计算结果*/}
程序运行后的输出结果是( )
a+b=30
a+b=10
出错
a+b=0
若已建立以下链表结构,指针p、s分别指向如图所示结点
则不能将s所指节点插入到链表未尾的语句组是( )
s->next=\0;p=p->next;p->next=s;
p=p->next;s->next=p;p->next=s;
p=p->next;s->next=p->next;p->next=s;
p=(*p).next;(*s).next=(*p).next;(*p).next=s;
设栈的存储空间为S(1:50),初始状态为top=51。现经过一系列正常的入栈与退栈操作后,top=50,则栈中的元素个数为( )
1
0
50
49
某二叉树共有399个结点,其中有199个度为2的结点,则该二又树中的叶子结点数为( )
不存在这样的二叉树
200
198
199
有以下程序
#include <stdio.h>
void fun (char**p)
{
++p;
printf("%s\n",*p)}
main()
{
char*a[]=("Morning", "Afternoon", "Evening", "Night");
fun(a);
}
程序的运行结果是( )
fternoon
Morning
orning
Afternoon
若有定义:
double a=22;
int i=0,k=;
则不符合C语言规定的赋值语句是( )
i=(a+k)<=(i+k);
a=a++,i++;
i=a%11;
i=!a;
以下选项中叙述错误的是( )
在C程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内
C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值
C程序函数中定义的自动变量,系统不自动赋确定的初值
C程序函数的形参不可以说明为static型变量
以下叙述中错误的是( )
函数的返回值类型不能是结构体类型,只能是简单类型
只要类型相同,结构体变量之间可以整体赋值
可以通过指针变量来访问结构体变量的任何成员
函数可以返回指向结构体变量的指针
设有宏定义:#define IsDIV(k,n)((k%n==1)?1:0)且变量m已正确定义并赋值,则宏调用:IsDIV^(m,5)&&IsDIV(m,7)为真时所要表达的是( )
判断m是否能被5和7整除
判断m被5或者7整除是否余1
判断m被5和7整除是否都余1
判断m是否能被5或者7整除
软件生命周期是指( )
软件的实现和维护
软件的工程实施阶段
软件的开发与管理
软件产品从提出、实现、使用维护到停止使用退役的过程
软件生存周期中,解决软件“怎么做”的阶段是( )
软件设计
需求分析
软件测试
可行性研究
以下叙述中正确的是( )
下面的语句用赋初值方式来定义字符串,其中,\0是必须的char str10={'s',t,'r,1,\0;}
有定义语句:char str10="str1";,数组str1将包含4个元素
字符串常量"str1"的类型是:字符串数据类型
字符数组的每个元素可存放一个字符,并且最后一个元素必须是\0”字符
有以下程序
#include <stdio.h>
main()
{
int c[6]={10,20,30,40,50,60},*p,*s;
p=C;
s=&c[5];
printf("%d\n",sp) ;
}
程序运行后的输出结果是( )
50
6
5
60
若有以下程序
#include <stdio.h>
main()
{
char c1, c2;
c1='C'+'18'-13;
C2='19'-0;
printf("%c%d\n", c1, c2);
}
则程序的输出结果是( )
H 9
H'9'
F'9'
表达式不合法输出无定值
若在定义语句:int a,b,c,*p=&c;接着执行以下选项中的语句,则能正确执行的语句是( )
scanf("%d%d%d",a,b,c);
scanf("%d",a,b,c);
scanf("%d",p);
scanf("%d",&p);
软件需求规格说明的内容应包括( )
E-R模型
算法详细设计
软件的主要功能
软件总体结构
一名员工可以使用多台计算机,每台计算机只能由一名员工使用,则实体员工和计算机间的联系是( )
一对多
多对多
多对一
一对一
下面属于系统软件的是( )
浏览器
数据库管理系统
人事管理系统
天气预报的app
有以下程序
#include <stdio.h>
#define SUB(X,Y)(X+1)*Y
main()
{
int a=3,b=4;
printf("%d\n",
SUB(a++,b++));
}
程序运行后的输出结果是( )
20
12
16
25
软件生命周期中的活动不包括( )
市场调研
需求分析
软件测试
软件测试
给定程序中,函数fun的功能是建立一个NxN的矩阵。矩阵元素的构成规律是:最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值全部为3,.…依次类推。
例如,若N=5,生成的矩阵为:
11111
12221
12321
12221
11111
#include <stdio.h>
#include <stdlib.h>
#define N 5
/**********found**********/
void fun(int (*a)__(1)__)
{
int i, j, k, m;
if(N%2==0)
{
m=N/2 ;
}
else
{
m=N/2+1;
}
for(i=0; i<m; i++)
{
/**********found**********/
for(j=__(2)_ ; j<N-i; j++)
{
a[i][j]=a[N-i-1][j]=i+1;
}
for(k=i+1; k<N-i; k++)
{
/**********found**********/
a[k][i]=a[k][N-i-1]=__(3)__;
}
}
}
main()
{
int x[N][N]={0},i,j;
fun(x);
printf("\nThe result is:\n");
for(i=0; i<N; i++)
{
for(j=0; j<N; j++)
{
printf("%3d",x[i][j]);
}
printf("\n");
}
system("pause");
}
函数fun的功能是:将十进制正整数m转换成k(2sks9)进制数,并按高位到低位顺序输出。
例如,若输入8和2,则应输出1000(即+进制数8转换成二进制表示是1000)。
请改正程序中的错误,使它能得出正确的结果。
#include <stdio.h>
#include <stdlib.h>
void fun(int m, int k);
{
int aa[20], i;
for(i = 0; m; i++)
{
/**********found**********/
aa[i] = m/k;
m /= k;
}
for(; i; i--)
{
/**********found**********/
printf("%d",aa[i]);
}
}
main()
{
int b, n;
printf("\nPlease enter a number and a base:\n");
scanf("%d %d", &n, &b);
fun(n, b);
printf("\n");
system("pause");
}
编写一个函数fun,从num个字符串中找出最长的一个字符串,并通过形参指针max传回该串地址。(注意:主函数中用****作为结束输入的标志。)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void fun(char(*a)[81], int num, char **max)
{
int i, maxlen;
maxlen=strlen(a[0]);
for(①)
{
if(②)
{
③
*max=a[i];④
}
}
main()
{
char ss[10][81], *ps;
void NONO();
int n, i=0;
printf("输入若干个字符串:");
gets(ss[i]);
puts(ss[i]);
while(!strcmp(ss[i],"****")==0)
{
i++;
gets(ss[i]);
puts(ss[i]);
}
n=i;
fun(ss, n, &ps);
printf("\nmax=%s\n", ps);
NONO();
}
void NONO ()
{/* 请在此函数内打开文件,输入测试数据,
调用函数,输出数据,关闭文件。 */
char ss[20][81], *ps;
int n, i=0;
FILE *rf, *wf;
rf=fopen("in.dat","r");
wf=fopen("out.dat","w");
fgets(ss[i], 81, rf);
while(!strncmp(ss[i],"****",4)==0)
{
i++;
fgets(ss[i], 81, rf);
}
n=i;
fun(ss, n, &ps);
fprintf(wf, "%s", ps);
fclose(rf);
fclose(wf);
system("pause");
}