1算法分析的目的是.docx
《1算法分析的目的是.docx》由会员分享,可在线阅读,更多相关《1算法分析的目的是.docx(24页珍藏版)》请在冰点文库上搜索。
1算法分析的目的是
-、选择题
1.算法分析的目的是( )
A.找出数据结构的合理性
B.找出算法中输入和输出之间的关系
C.分析算法的易懂性和可靠性
D.分析算法的效率以求改进
【参考答案】D
2.在单链表中,增加头结点的目的是( )
A.方便运算的
B.使单链表至少有一个结点
C.标识表结点中首结点的位置
D.说明单链表是线性表的链式存储实现
【参考答案】A
3.软件开发离不开系统环境资源的支持,其中必要的测试数据属于( )
A.硬件资源 B.通信资源 C.支持软件 D.辅助资源
【参考答案】D
4.分布式数据库系统不具有的特点是( )
A.数据分布性和逻辑整体性 B.位置透明性和复制透明性
C.分布性 D.数据冗余
【参考答案】D
5.下列数据模型中,具有坚实理论基础的是( )
A.层次模型 B.网状模型 C.关系模型 D.以上3个都是
【参考答案】C
6.栈底到栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是( )
A.ABCED B.DCBEA C.DBCEA D.CDABE
【参考答案】B
7.在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率,现在,与程序的效率相比,人们更重视程序的( )
A.安全性 B.一致性 C.可理解性 D.合理性
【参考答案】C
8.软件开发的结构化生命周期方法将软件生命周期划分成( )
A.定义、开发、运行维护
B.设计阶段、编程阶段、测试阶段
C.总体设计、详细设计、编程调试
D.需求分析、功能定义、系统设计
【参考答案】A
9.在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有( )
A.特定的数据模型 B.数据无冗余
C.数据可共享 D.专门的数据管理软件
【参考答案】A
10.实体是信息世界中广泛使用的一个术语,它用于表示( )
A.有生命的事物 B.无生命的事物
C.实际存在的事物 D.一切事物
【参考答案】C
11.下面叙述中正确的是( )
A.C语言编译时不检查语法
B.C语言的子程序有过程和函数两种
C.C语言的函数可以嵌套定义
D.C语言的函数可以嵌套调用
【参考答案】D
12.以下叙述中正确的是( )
A.构成C程序的基本单位是函数
B.可以在一个函数中定义另一个函数
C.main()函数必须放在其他函数之前
D.所有被调用的函数一定要在调用之前进行定义
【参考答案】A
13.下列程序段的输出结果是( )
inta=1234;
floatb=123.456;
doublec=12345.54321;
printf(″%2d,%2.1f,%2.1f″,a,b,c);
A.无输出 B.12,123.5,12345.5
C.1234,123.5,12345.5 D.1234,123.4,1234.5
【参考答案】C
14.设有以下程序段
intx=0,s=0;
while(!
x!
=0)s+=++x;
printf(″%d″,s);
则( )
A.运行程序段后输出0
B.运行程序段后输出1
C.程序段中的控制表达式是非法的
D.程序段执行无限次
【参考答案】B
15.以下程序段的描述,正确的是( )
x=-1;
do
{x=x*x;}while(!
x);
A.是死循环 B.循环执行两次
C.循环执行一次 D.有语法错误
【参考答案】C
16.下列程序执行后的输出结果是( )
voidfunc1(inti);
voidfunc2(inti);
charst[]=″hello,friend!
″;
voidfunc1(inti)
{printf(″%c″,st[i]);
if(i<3){i+=2;func2(i);}
}
voidfunc2(inti)
{printf(″%c″,st[i]);
if(i<3){i+=2;func1(i);}
}
main()
{inti=0;func1(i);printf(″\n″);}
A.hello B.hel C.hlo D.hlm
【参考答案】C
17.以下程序的输出结果是( )
#include
voidprt(int*x,int*y,int*z)
{printf(″%d,%d,%d\n″,++*x,++*y,*(z++));}
main()
{inta=10,b=40,c=20;
prt(&a,&b,&c);
prt(&a,&b,&c);
}
A.11,42,31 B.11,41,20
12,22,41 12,42,20
C.11,21,40 D.11,41,21
11,21,21 12,42,22
【参考答案】B
18.下列程序执行后的输出结果是( )
main()
{inta[3][3],*p,i;
p=&a[0][0];
for(i=1;i<9;i++)p[i]=i+1;
printf(″%d\n″,a[1][2]);
}
A.3 B.6 C.9 D.随机数
【参考答案】B
19.下列程序执行后的输出结果是( )
main()
{chararr[2][4];
strcpy(arr,″you″);strcpy(arr[1],″me″);
arr[0][3]=′&′;
printf(″s\n″,arr);
}
A.you&me B.you C.me D.err
【参考答案】A
20.有以下程序
intf(intn)
{if(n==1)return1;
elsereturnf(n-1)+1;
}
main()
{inti,j=0;
for(i=1;i<3;i++)j+=f(i);
printf(″%d\n″,j);
}
程序运行后的输出结果是( )
A.4 B.3 C.2 D.1
【参考答案】B
21.以下对结构体类型变量的定义中,不正确的是( )
A.typedefstructaa B.#defineAAstructaa
{intn; AA{intn;
floatm; floatm;
}AA; }tdl;
AAtdl;
C.struct D.struct
{intn; {intn;
floatm; floatm;
}aa; }tdl;
structaatdl;
【参考答案】C
22.若有以下程序
#include
voidf(intn);
main()
{voidf(intn);
f(5);
}
voidf(intn)
{printf(″%d\n″,n);}
则以下叙述中不正确的是( )
A.若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f
B.若在主函数前对函数f进行说明,则在主函数和其后的其他函数中都可以正确调用函数f
C.对于以上程序,编译时系统会提示出错信息:
提示对f函数重复说明
D.函数f无返回值,所以可用void将其类型定义为无返回值型
【参考答案】C
23.有以下程序
#include
main()
{FILE*fp;inti=20,j=30,k,n;
fp=fopen(″d1.dat″,″w″);
fprintf(fp,″%d\n″,i);fprintf(fp,″%d\n″,j);
fclose(fp);
fp=fopen(″d1.dat″,″r″);
fscanf(fp,″%d%d″,&k,&n);printf(″%d%d\n″,k,n);
fclose(fp);
}
程序运行后的输出结果是( )
A.2030 B.2050 C.3050 D.3020
【参考答案】A
24.下面4个选项中,均是不合法的用户标识符的选项是( )
A.AP_0 B.floatla0_A
C.b-agotoint D._123tempint
【参考答案】C
25.能正确表示逻辑关系:
“a≥10或a≤0”的C语言表达式是( )
A.a>=10ora<=0 B.a>=0|a<=10
C.a>=10&&a<=0 D.a>=10||a<=0
【参考答案】D
26.若有说明:
int*p,m=5,n;以下正确的程序段是( )
A.p=&n;scanf(″%d″,&p;) B.p=&n;scanf(″%d″,*p)
C.scanf(″%d″,&n);*p=n; D.p=&n;*p=m;
【参考答案】D
27.有如下程序
main()
{
inta=2,b=-1,c=2;
if(a
if(b<0)c=0;
elsec++;
printf(″%d\n″,c);
}
该程序的输出结果是( )
A.0 B.1 C.2 D.3
【参考答案】C
28.有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。
下面程序是求这堆零件总数,在划线处应填入的选项是( )
#include
main()
{
inti;
for(i=100;i<200;i++)
if((i-2)%4==0)
if(!
((i-3)%7))
if(〖CD#5〗)
printf(″%d″,i);
}
A.i%9=5 B.i%9!
=5 C.(i-5)%9!
=0 D.(i-5)%9==0
【参考答案】D
29.下面程序段的运行结果是( )
chara[]=″lanuage″,*p;
p=a;
while(*p!
=′u′){printf(″%c″,*p-32);p++;}
A.LANGUAGE B.language C.LAN D.langUAGE
【参考答案】C
30.以下不正确的定义语句是( )
A.doublex[5]={2.0,4.0,6.0,8.0,10.0};
B.inty[5.3]={0,1,3,5,7,9};
C.charc1[]={′1′,′2′,′3′,′4′,′5′};
D.charc2[]={′\x10′,′\xa′,′\x8′};
【参考答案】B
31.当说明一个结构体变量时系统分配给它的内存是( )
A.各成员所需内存量的总和
B.结构中第一个成员所需内存量
C.成员中占内存量最大者所需的容量
D.结构中最后一个成员所需内存量
【参考答案】A
32.函数fun的返回值是( )
fun(char*a,char*b)
{
intnum=0,n=0;
while(*(a+num)!
=′\0′)num++;
while(b[n]){*(a+num)=b[n];num++;n++;}
returnnum;
}
A.字符串a的长度 B.字符串b的长度
C.字符串a和b的长度之差 D.字符串a和b的长度之和
【参考答案】D
33.下列程序的输出结果是( )
main()
{
inta[5]={2,4,6,8,10},*p,**k;
p=a;
k=&p;
printf(″%d″,*(p++));
printf(″%d\n″,**k);
}
A.4 B.22 C.24 D.46
【参考答案】C
34.下列函数的运行结果是( )
main()
{
inti=2,p;
intj,k;
j=i;
k=++i;
p=f(j,k);
printf(″%d″,p);
}
intf(inta,intb)
{
intc;
if(a>b)c=1;
elseif(a==b)c=0;
elsec=-1;
return(c);
}
A.-1 B.1 C.2 D.编译出错,无法运行
【参考答案】A
35.有如下程序
#defineN 2
#defineM N+1
#defineNUM 2*M+1
main()
{
inti;
for(i=1;i<=NUM;i++)printf(″%d\n″,i);
}
该程序中的for循环执行的次数是( )
A.5 B.6 C.7 D.8
【参考答案】B
36.现有如下程序段
#include″stdio.h″
intfun(intk,int*m)
{〖ZK(〗if(k%3)*m=k*k;
else*m=k/3;}〖ZK)〗
main()
{〖ZK(〗int(*p)(int,int*),m;
p=fun;
(*p)(78,&m)
printf(″%d\n″,m);}〖ZK)〗
则程序段的输出结果为( )
A.24 B.25 C.26 D.27
【参考答案】C
37.阅读程序段,则执行后的输出结果为( )
#include″stdio.h″
typedefunion{longx[2];
inty[4];
charz[8];
}atx;
typedefstructaa{longx[2];
inty[4];
charz[8];
}stx;
main()
{printf(″union=%d,structaa=%d\n″,sizeof(atx),sizeof(stx));}
A.union=8,structaa=8 B.union=8,structaa=24
C.union=24,structaa=8 D.union=24,structaa=24
【参考答案】B
38.阅读下面程序,程序实现的功能是(a123.txt在当前盘符下已经存在)( )
#include″stdio.h″
voidmain()
{〖ZK(〗FILE*fp;
inta[10],*p=a;
fp=fopen(″a123.txt″,″w″);
while(strlen(gets(p))>0)
{〖ZK(〗fputs(a,fp);
fputs(″\n″,fp);〖ZK)〗
}
fclose(fp);〖ZK)〗
}
A.从键盘输入若干行字符,按行号倒序写入文本文件a123.txt中
B.从键盘输入若干行字符,取前2行写入文本文件a123.txt中
C.从键盘输入若干行字符,第一行写入文本文件a123.txt中
D.从键盘输入若干行字符,依次写入文本文件a123.txt中
【参考答案】D
39.下列常数中不能作为C语言常量的是( )
A.0xabc C.32 D.0747
【参考答案】B
40.已知intt=6,s;则执行语句s=(++t)+(t++);后,s的值是( )
A.12 B.13 C.14 D.15
【参考答案】C
41.下列说法中正确的是( )
A.一个C程序是从命令行开始执行的
B.C程序中有些执行语句不用分号(;)结束
C.分号不是C语句的一部分,是C语句之间的分隔符
D.命令行必须用“#”开头,最后不能加“;”号,命令行不是C程序中的语句
【参考答案】D
42.有如下程序段
#include″stdio.h″
main()
{inta=10,b=50,c=30;
a=a>30?
1:
2;
b=b>30?
1:
2;
c=c>30?
1:
2;
printf(″%d,%d,%d\n″,a,b,c);}
则执行结果为( )
A.2,1,2 B.1,2,1 C.1,1,2 D.2,1,1
【参考答案】A
43.若有定义intk=10;,则下列程序的输出结果为( )
do{
printf(″%d″,k--);}while(!
k);
A.9 B.10 C. D.没有输出
【参考答案】B
44.下列程序的运行结果是( )
#include″stdio.h″
main()
{inta,b,m;
for(a=5;a>=1;a--)
{m=0;
for(b=a;b<=5;b++)
m=m+a*b;}
printf(″%d\n″,m);}
A.30 B.15 C.20 D.10
【参考答案】B
45.下列说法中不正确的是( )
A.C语言规定,不能在一个函数的内部再定义函数
B.在没有声明函数返回值类型的情况下,默认的函数返回值类型为int型
C.函数的类型可以是整型、实型、字符型,但不能是指针型
D.函数可以没有形参,但函数名后的一对圆括号不能省略
【参考答案】C
46.阅读如下程序段,则程序段的执行后的输出结果为( )
#include″stdio.h″
main()
{charc;
inti;
charcount();
intp(char);
for(i=0;i<30;i++)c=count();
p(c);}
charcount()
{charstr=′A′;
str+=1;
return(str);}
p(charc)
{putchar(c);
putchar(′\n′);}
A.A B.B C.a D.b
【参考答案】B
47.现有下列程序段
#include″stdio.h″
voidJFT(int*a,int*b,int*c,int*d,int*e)
{inti,j,k,m;
for(i=0;i<*a;i++)
for(j=0;j<*b;j++)
for(k=0;k<*c;k++)
for(m=0;m<*d;m++)*e++;}
main()
{inta=10,b=10,c=10,d=10,e=0;
JFT(&a,&b,&c,&d,&e);
printf(″%d\n″,e);}
则程序段的输出结果是( )
A.10000 B.1000 C.1000 D.0
【参考答案】D
48.阅读下列程序段,则程序段实现的功能是( )
#include″stdio.h″
main()
{intk[10];
intj;
for(j=0;j<10;j++)
scanf(″%d″,&k[j]);
for(j=9;j>=0;j--)
printf(″%d″,k[j]);}
A.输入10个数据的顺序输入并输出
B.输入10个数据的逆序存放
C.输入10个数据的逆序输出
D.以上叙述均错误
【参考答案】C
49.阅读下面程序,则程序的输出结果为( )
#include″stdio.h″
main()
{intc[]={1,2,3,4,5,6};
int*p;
p=c;
printf(″%d,″,*p);
printf(″%d\n″,*++p);}
A.1,2 B.2,1 C.1,1 D.2,2
【参考答案】A
50.阅读下面程序,则执行后的结果为( )
#include″stdio.h″
#include″string.h″
#defineN10
#defineM10
char*find(char(*a)[M],intn)
{char*q;inti;
q=a[0];
for(i=0;i if(strcmp(a[i],q)<0)q=a[i];
returnq;}
main()
{chars[N][M]={″tomeetme″,″you″,″and″,″he″,″china″};
char*p;
intn=5,i;
p=find(s,n);
puts(p);}
A.he B.and C.you D.tomeetme
【参考答案】B
二、填空题
1