1、【
单选题
】
下列选项中不属于软件生命周期开发阶段任务的是( )。
[1分]
、
软件测试
、
概要设计
、
软件维护
、
详细设计
答案:
2、【
单选题
】
以下程序的输出结果是( )。
main()
{ char st[20]="hello\0\t\\\";
printf("%d%d\n",strlen(st).sizeof(st));
}
[1分]
、
9 9
、
5 20
、
13 20
、
20 20
答案:
3、【
单选题
】
若ch为char型变量,k为int型变量(已知字符a的ASCII码是97),则执行下列语句后输出的结果为( )。
cb='b';
k=10;
printf("%X,%o,”,ch,ch,k);
printf("k=%%d\n",k);
[1分]
、
因变量类型与格式描述符的类型不匹配,输出无定值
、
输出项与格式描述符个数不符,输出为0值或不定值
、
62,142,k=%d
、
62,142,k=%10
答案:
4、【
单选题
】
若变量均已正确定义并赋值,以下合法的C语言赋值语句是( )。
[1分]
、
x=y==5;
、
X=n%2.5:
、
x+n=i;
、
x=5=4+1:
答案:
5、【
单选题
】
数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是( )。
[1分]
、
DB包含DBS和DBMS
、
DBMS包含DB和DBS
、
DBS包含DB和DBMS
、
没有任何关系
答案:
6、【
单选题
】
在数据库设计中,将E—R图转换为关系模式的过程属于( )。
[1分]
、
需求分析阶段
、
逻辑设计阶段
、
概念设计阶段
、
物理设计阶段
答案:
7、【
单选题
】
设有如下关系表:
则下列操作中正确的是( )。
[1分]
、
T=R∩S
、
T=R∪S
、
T=R×S
、
T=R/S
答案:
8、【
单选题
】
源程序的文档不包括( )。
[1分]
、
符合号名的命名要有实际意义
、
正确的文档形式
、
良好的视觉组织
、
正确的程序注释
答案:
9、【
单选题
】
下列程序的运行结果是( )。
#include
main()
{ int a=2,b=3,c=4:
if(a<B)
if(b<0)C=0:
else c++;
printf("%d\n",c);
}
[1分]
答案:
10、【
单选题
】
若希望下列的程序运行后输出25,程序空白处的正确选项是( )。
main()
{ int i,j=50,a[]={7,4,10,5,8};
for( )
j+=a[i];
printf("%d",j-40);
}
[1分]
、
i=l;i<4;++i
、
i=1;i<3;++i
、
i=4;i>2;i--
、
i=2;i<4;++i
答案:
11、【
单选题
】
若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是( )。
[1分]
、
bdgcefha
、
gdbecfha
、
bdgaechf
、
gdbehfca
答案:
12、【
单选题
】
若要用函数fopen打开一个新的二进制文件,该文件要既能读也能写,则应以( )方式打开文件。
[1分]
、
"wb"
、
"wb+"
、
"rb+"
、
"rb"
答案:
13、【
单选题
】
有以下程序:
#include
main( )
{ char cl='1',c2='2';
cl=getchar( );c2=getchar( );putchar(c1);putcha:
(c2);
}
当程序运行时输入a<回车>后,下列叙述中正确的是( )。
[1分]
、
变量c1被赋予字符a,c2被赋予回车符
、
程序将等待用户输入第2个字符
、
变量c1被赋予字符a,c2中仍是原有字符2
、
变量c1被赋予字符a,c2中将无确定值
答案:
14、【
单选题
】
若有以下说明,则( )不是对strcpy库函数正确的调用。
strcpy库函数用于复制一个字符串:char*strl="abCd",str2[10],*str3="hijklmn",*str4[2],*str5="aaaa";
[1分]
、
strcpy(str2,strl)
、
strcpy(str3,strl)
、
strcpy(strl,str2)
、
strcpy(str5,strl)
答案:
15、【
单选题
】
设有以下定义和语句:
char str[2O]="Program",*P:
p=str:
则以下叙述中正确的是( )。
[1分]
、
*p与stf[0]的值相等
、
str与P的类型完全相同
、
str数组长度和P所指向的字符串长度相等
、
数组str中存放的内容和指针变量P中存放的内容相同
答案:
16、【
单选题
】
若有下列定义,则对a数组元素地址的正确引用是( )。
int a[5],*p=a;
[1分]
、
p+5
、
*a+1
、
&a+1
、
&a[0]
答案:
17、【
单选题
】
下述程序的输出结果是( )。
#define N 20
void fun(int a[],int n,int m)
{ int i,j;
for(i=m;i>n;i--)a[i+1]=a[i];
}
main( )
{ int i,a[N]={1,2,3,4,5,6,7,8,9,10};
fun(a,2,9);
for(i=0;i<5;i++)printf("%d",a[i]);
}
[1分]
、
10234
、
12344
、
12334
、
12234
答案:
18、【
单选题
】
有以下函数
int aaa(char*s)
{char*t=s;
while(*t+t);
t--:
return(t-s);
}
以下关于aaa函数的功能叙述正确的是( )。
[1分]
、
求字符串S的长度
、
比较两个串的大小
、
将串S复制到串t
、
求字符串S所占字节数
答案:
19、【
单选题
】
有如下程序:
#include
main()
{ FILE*fp1;
fp1=fopen("f1.txt","w");
fprintf(fp1,"abe");
fclose(fp1);
}
若文本文件f1.txt中原有内容为:good。则运行以上程序后文件f1.txt中的内容为( )。
[1分]
、
goodabc
、
abcd
、
abc
、
abcgood
答案:
20、【
单选题
】
为了避免在嵌套的条件语句if else中产生二义性,C语言规定,else子句总是与( )配对。
[1分]
、
缩排位置相同if
、
其前面最近的if
、
其后面最近的if
、
同一行上的if
答案:
21、【
单选题
】
设x=011050,则x=x&01252的值是( )。
[1分]
、
0000001000101000
、
1111110100011001
、
0000001011100010
、
1100000000101000
答案:
22、【
单选题
】
有下列程序:
fun(int X,int y){return(x+y);}
main()
{ int a=1,b=2,c=3,sum;
sum=fun((a++,b++,a+b),c++);
printf("%d\n",sum);
}
执行后的输出结果是( )。
[1分]
答案:
23、【
单选题
】
下列叙述中错误的是( )。
[1分]
、
一种数据的逻辑结构可以有多种存储结构
、
数据的存储结构与数据的处理效率无关
、
数据的存储结构与数据的处理效率密切相关
、
数据的存储结构在计算机中所占的空间不一定是连续的
答案:
24、【
单选题
】
有以下程序
#include
void fun(int n,int*p)
( int f1,f2;
if(n==1|| n==2)*p=1;
else
{ fun(n-1,&f1);fun(n-2,&f2);
*p=f1+f2;
}
}
main()
{ int s;
fun(3,&s);printf("%d",s);
}
程序的运行结果是( )。
[1分]
答案:
25、【
单选题
】
以三级模式为框架形成的3种数据库中,真实存在于计算机外存的数据库是( )。
[1分]
、
概念数据库
、
用户数据库
、
物理数据库
、
逻辑数据库
答案:
26、【
单选题
】
下列能正确定义且赋初值的语句是( )。
[1分]
、
int n1=n2=1;
、
char C=99;
、
float f=f+1;
、
double x=1.2E5.6;
答案:
27、【
单选题
】
下列工具中为需求分析常用工具的是( )。
[1分]
答案:
28、【
单选题
】
以下程序的输出结果是( )。
main()
{char str[]1-10]={"china","beijing"),*p=str;
printf("%s\n",p+10);
}
[1分]
、
China
、
Beijing
、
ng
、
ing
答案:
29、【
单选题
】
关系数据库管理系统能实现的专门关系运算包括( )。
[1分]
、
排序、索引、统计
、
选择、投影、连接
、
关联、更新、排序
、
显示、打印、制表
答案:
30、【
单选题
】
下列程序中函数sort( )的功能是对数组a中的数据进行由大到小的排序。
#include
void sort(int a[],int ll)
{ int i,j,t;
for(i=0;i<N-1;I++)
for(j=j+1+1;j<N;J++)
if(a[i]<A[J])
{t=a[i];a[i]=a[j];a[j]=t;
}
}
main( )
{ int a[10]一{1,2,3,4,5,6,7,8,9,10},i;
sort(&a[1],7);
for(i=0;i<10;i++)printf("%d,",a[i]);
}
程序运行后的输出结果是( )。
[1分]
、
1,2,3,4,5,6,7,8,9,10,
、
10,9,8,7,6,5,4,3,2,1,
、
1,8,7,6,5,4,3,2,9,10,
、
1,2,10,9,8,7,6,5,4,3,
答案:
31、【
单选题
】
以下程序的输出结果是( )。
int f(int A)
{ return a%2; }
main()
{int s[8]={1,3,5,2,4,6},i,d=0;
for(i=0;f(s[8]);i++)d+=s[i];
printf("%d\n",d);
}
[1分]
答案:
32、【
单选题
】
下列程序的执行结果是( )。
#include
main()
{ int a,b,c;
a=b=2,c=I;
c=(a++)-1;printf("%d,0Ad",a,c);
c+=-a+++(++b);printf("%d,%d",a,c);
)
[1分]
、
3,14,1
、
3,14,2
、
2,04,1
、
2,14,1
答案:
33、【
单选题
】
若有定义:“int*P,x=0,*p,p=&x;”,则语句“printf("%d\n",*p);”的输出结果是( )。
[1分]
答案:
34、【
单选题
】
对下述程序的判断中,正确的是( )。
#include
main( )
{ char*p,s[256];
p=s ;
while(strcmp(s,"the end"))
{ printf("Input the strin9:");
gets(s);
while(*p)
putchar(*p++);
}}
[1分]
、
此程序循环接收字符串并输出,直到接收到字符串“the end”为止
、
此程序循环接收字符串,接收到字符串“the end”则输出,否则程序终止
、
此程序循环接收字符串并输出,直到接收字符串“the end”为止,但因为代码有错误,程序不能正常工作
、
此程序循环接收字符串并将其连接在一起,直到接收字符串“the end”为止,输出连接在一起的字符串
答案:
35、【
简答题】
下列给定程序的功能是:读入一个整数n(2<=n<= 5000),打印它的所有为素数的因子。例如,若输入整数1234,则应输出:2,617。
请修改程序中的错误,使程序能得出正确的结果。
注意:不要改动main()函数,不能增选或删行,也不能匿改程序的结构。
试题程序:
#include
#include
//****found****
Prime(int m);
{
int j,P;
p=1;
//****found****
for(j=2;j<M;J++)
if!(m%j)
{
p=0;
break;
}
return(p);
int i,n;
printf("\nplease enter an integer number between2
and 5000:");
scanf("%d",&n);
printf("\n\nThe prime factor(s)of%d is(are):",n):
for(i=2;i<N;I4+)
if((!(n%i))&&(Prime(i)))
printf("%4d,",i);
printf("\n");
}
[24分]
解析:
(1)错误:Prime(int m);正确:Prime(int m)(2)错误:if(!(m%j)正确:if(!(m%j))
36、【
简答题】
请编写函数proc(),该函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。
例如,若字符串数组中的M个字符串为:
ABCD
BCDEFG
CDEFGHI
则合并后的字符串内容应该是ABCDBCDEFGCDEF—GHl。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。
试题程序:
#include
#include
#define M 3
#define N 20
void proc(char arr[M][N],char*b)
{
}
void main()
{
char str[M][N]={"ABCD","BCDEFG","
CDEFGHI"},i;
char arr[100]={"#############
#####");
printf("The string:\n");
for(i=0;i<M;I++)
puts(str[i]);
printf("\n");
proc(str,arr);
printf("The A string:\n");
printf("%s",arr);
printf("\n\n");
}
[18分]
解析:
void proc(char arr[M][N],char*b)
{
int i,j,k=0;
for(i=0;i<M;i++) //i表示其行下标
for(j=0;.rr[i][j]!='\0 ';j++)//由于每行的个数不等,因此用a#i##j#!='\0 '来作为循环结束的条件
b[k++]=arr[il[j]; //把二维数组中的元素茄到b的一维数组中,
b[k]='\0'; //最后把b赋'\0'作为字符串结束的标志
}