}
main()
{intaa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(&aa[3],5);
for(i=0;i<10;i++)printf("%d,",aa[i]);
printf("\n");
}
程序运行后的输出结果是(B)
A)1,2,3,4,5,6,7,8,9,10,B)10,9,8,7,6,5,4,3,2,1,
C)1,2,3,8,7,6,5,4,9,10,D)1,2,10,9,8,7,6,5,4,3,
27、下面程序的文件名为t.exe,在DOS下输入的命令行参数如下:
ttomeetme<回车>
则程序输出的结果是(A)
#include"stdio.h"
main(argc,argv)
intargc;char*argv[];
{inti;
printf("%d\n",argc);
}
A)3B)4C)2D)以上答案都不正确
28、若有说明:
inta[][4]={0,0};则下面不正确的叙述是(D)
A)数组a的每个元素都可得到初值0
B)二维数组a的第一维大小为1
C)当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小
D)只有元素a[0][0]和a[0][1]可得到初值,其余元素均得不到确定的初值
29、下列程序的运行结果是(B)
voidfun(int*a,int*b)
{int*k;
k=a;a=b;b=k;
}
main()
{inta=3,b=6,*x=&a,*y=&b;
fun(x,y);
printf("%d%d",a,b);
}
A)63B)36C)编译出错D)00
30、请选出不正确的程序段(D)
A)int*p;
scanf("%d",p);
…
B)int*s,k;
*s=100;
…
C)int*s,k;
char*p,c;
s=&k;
p=&c;
*p=’a’;
…
D)int*s,k;
char*p,e;
s=&k;
p=&e;
s=p;
*s=1;
…
31、下面程序的执行结果是(A)
#defineSUM(X)X*X
main()
{
inta=6;inti=1,j=2;
a+=SUM(i+j)/SUM(i+j);
printf("%d\n",a);
}
A)15B)2C)7D)0
32、在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是(B)
A)地址传递
B)单向值传递
C)由实参传形参,再由形参传实参
D)传递方式由用户指定
33、下面程序应能对两个整型变量的值进行交换。
以下正确的说法是(C)
main()
{
Inta=10,b=20;
printf("
(1)a=%d,b=%d\n",a,b);
swap(&a,&b);
printf("
(2)a=%d,b=%d\n",a,b);
}
swap(intp,intq)
{
intt;
t=p;p=q;q=t;
}
A)该程序完全正确
B)该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可
C)该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针(执行语句不变)即可
D)以上说法都不对
34、有以下程序
#include
structNODE
{intnum;structNODE*next;};
main()
{
structNODE*p,*q,*r;
p=(structNODE*)malloc(sizeof(structNODE));
q=(structNODE*)malloc(sizeof(structNODE));
r=(structNODE*)malloc(sizeof(structNODE));
p->num=10;q->num=20;r->num=30;
p->next=q;q->next=r;
printf("%d\n",p->num+q->next->num);
}
程序运行后的输出结果是(D)
A)10B)20C)30D)40
35、假定当前盘符下有两个文本文件,如下
文件名a1.txta2.txt
内容123#321#
则下面程序段执行后的结果为(A)
#include"stdio.h"
voidfc(FILE*p)
{charc;
while((c=fgetc(p))!
=′#′)putchar(c);
}
main()
{FILE*fp;
fp=fopen("a1.txt","r");
fc(fp);
fclose(fp);
fp=fopen("a2.txt","r");
fc(fp);
fclose(fp);
putchar(′\n′);
}
A)123321B)123C)321D)以上答案都不正确
二、填空题(每空2分,共计30分)
1、栈和队列通常采用的存储结构是顺序存储.
2、在关系模型中,把数据看成一个二维表,每一个二维表称为一个关系.
3、数据库保护分为:
安全性控制、_完整性控制____、并发性控制和数据的恢复。
4、通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。
5、在最坏情况下,堆排序需要比较的次数为___nlog2n______。
6、以下程序的输出结果是:
_8,10_____
main()
{ inti=010,j=10;
pirntf("%d,%d\n",i,j);
}
7、下列程序的输出结果为__12__。
main()
{ intx=3,y=5;
printf("%d",x=(x--)*(--y));
}
8、以下程序段中,错误的行号是__④___。
①#include
②main()
③{charstr[14];str[]={"IloveChina"};
④printf("%s",str);
⑤}
9、将以下程序写成三目运算表达式是__max=(a>b?
a:
b)。
if(a>b)max=a;
else max=b;
10、下面程序的功能是输出数组s中最大元素的下标,请填空。
main()
{intk,p,s[]={1,-9,7,2,-10,3};
for(p=0,k=p;p<6;p++)
if(s【p】>s【k】)__k=p;___
printf("%d\n",k);
}
11、下面程序的运行结果是__12_____。
unsignedfun6(unsignednum)
{unsignedk=1;
do{k*=num%10;num/=10;}while(num);
returnk;
}
main()
{unsignedn=26;
printf("%d\n",fun6(n));
}
12、设有以下定义和语句,则*(*(p+2)+1)的值为60。
inta[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
13、阅读下列程序,则程序的输出结果为_30x_。
#include"stdio.h"
structty
{intdata;
charc;
};
main()
{structtya={30,′x′};
fun(a);
printf("%d%c",a.data,a.c);
}
fun(structtyb)
{b.data=20;
b.c=′y′;
}
14、以下程序的输出结果是_100010__。
#defineN10
#defines(x)x*x
#definef(x)(x*x)
main()
{inti1,i2;
i1=1000/s(N);i2=1000/f(N);
printf("%d%d\n",i1,i2);
}
15、下面程序把从终端读入的文本(用@作为文本结束标志)输出
到一个名为bi.dat的新文件中,请填空。
#include"stdio.h"
FILE*fp;
{ charch;
if((fp=fopen(”bi.dat”,”w”))==NULL)exit(0);
while((ch=getchar())!
='@')fputc(ch,fp);
fclose(fp);
}
全国计算机等级考试二级C语言模拟试卷
(二)
一、选择题(每题2分,共70分)
1、线性表的顺序存储结构和线性表的链式存储结构分别是(B)
A)顺序存取的存储结构、顺序存取的存储结构
B)随机存取的存储结构、顺序存取的存储结构
C)随机存取的存储结构、随机存取的存储结构
D)任意存取的存储结构、任意存取的存储结构
2、下列数据结构中,按先进后出原则组织数据的是(B)
A)线性链表B)栈
C)循环链表D)顺序表
3、结构化程序设计主要强调的是(D)
A)程序的规模
B)程序的效率
C)程序设计语言的先进性
D)程序易读性
4、对象实现了数据和操作的结合,是指对数据和数据的操作进行(C)
A)结合B)隐藏
C)封装D)抽象
5、下列叙述中,不属于测试的特征的是(D)
A)测试的挑剔性
B)完全测试的不可能性
C)测试的可靠性
D)测试的经济性
6、下列选项中,不属于模块间耦合的是(C)
A)数据耦合B)同构耦合
C)异构耦合D)公用耦合
7、下列叙述中,正确的是(A)
A)用E-R图能够表示实体集间一对一的联系、一对多的联系和多对多的联系
B)用E-R图只能表示实体集之间一对一的联系
C)用E-R图只能表示实体集之间一对多的联系
D)用E-R图表示的概念数据模型只能转换为关系数据模型
8、在数据管理技术的发展过程中,可实现数据共享的是(C)
A)人工管理阶段
B)文件系统阶段
C)数据库系统阶段
D)系统管理阶段
9、假设参加计算机等级考试的学生关系R,参加英语等级考试的学生关系S。
求既参加了计算机等级考试又参加了英语等级考试的学生,应当进行的运算是(C)
A)R-S
B)R+S
C)R∩S
D)R∪S
10、数据库(DB)、数据库系统(DBS)和数据库管理系统(DBMS)之间的关系是(B)
A)DB包括DBS和DBMS
B)DBS包括DB和DBMS
C)DBMS包括DB和DBS
D)3者属于平级关系
11、以下说法错误的是(C)
A)高级语言都是用接近人们习惯的自然语言和数学语言作为语言的表达形式
B)计算机只能处理由0和1的代码构成的二进制指令或数据
C)C语言源程序经过C语言编译程序编译之后生成一个后缀为.EXE的二进制文件
D)每一种高级语言都有它对应的编译程序
12、下面各选项中,均是C语言标识符的选项组是(C)
A)forchinatoB)long_123short56_do
C)voidunion_342D)text.txt_023_3ew
13、以下符合C语言语法的实型常量是(C)
A)1.2E0.5
B)3.14159E
C).5E-3
D)E15
14、若以下选项中的变量已正确定义,则正确的赋值语句是(C)
A)x1=26.8%3;
B)1+2=x2;
C)x3=0x12;
D)x4=1+2=3;
15、已知intk=10,m=3,n;则下列语句输出结果是(B)
printf("%d\n",n=(k%m,k/m));
A)2B)3C)4D)5
16、以下程序的运行结果为(C)
#include"stdio.h"
main()
{intm,n;
for(m=0,n=10;mprintf("%d,%d\n",m,n);
}
A)6,7B)7,6C)9,7D)7,9
17、下列程序的输出结果是(B)
#include"stdio.h"
main()
{inti,a=0,b=0;
for(i=1;i<10;i++)
{if(i%2==0)
{a++;
continue;
}
b++;}
printf("a=%d,b=%d",a,b);}
A)a=4,b=4B)a=4,b=5C)a=5,b=4D)a=5,b=5
18、若intk=8;则执行下列程序后,变量k的正确结果是(D)
main()
{intk=8;
switch(k)
{case9:
k+=1;
case10:
k+=1;
case11:
k+=1;break;
default:
k+=1;
}
printf("%d\n",k);
}
A)12B)1C)10D)9
19、阅读下面程序,则执行后的输出结果为(D)
#include"stdio.h"
fun(inta,intb)
{ints;
s=a*b/2;
printf("%d\n",s);
}
main()
{inta=10,b=16;
fun(a,b);
}
A)10B)16C)160D)80
20、以下描述错误的是(D)
A)C程序中,函数可以直接或间接的调用自己
B)函数调用时,函数名必须与所调用的函数名字完全一致
C)函数说明语句中的类型必须与函数返回值的类型一致
D)实参数可以与形参个数不一致
21、阅读下面程序,则执行后的结果为(C)
#include"stdio.h"
main()
{fun3(fun1(),fun2());}
fun1()
{intk=20;
returnk;
}
fun2()
{inta=15;
returna;
}
fun3(inta,intb)
{intk;
k=(a-b)*(a+b);
printf("%d\n",k);}
A)0B)184C)175D)编译不通过
22、阅读下面程序,执行后的结果为(C)
#include"stdio.h"
voidfun(int*a,int*b)
{intk;
k=5;
*a=k;
*b=*a+k;
}
main()
{int*a,*b,x=10,y=15;
a=&x;
b=&y;
fun(a,b);
printf("%d,%d\n",*a,*b);
}
A)10,15B)5,15C)5,10D)15,10
23、下列程序的输出结果是(C)
#include"stdio.h"
#defineM(x,y)x%y
main()
{inta,m=12,n=100;
a=M(n,m);
printf("%d\n",a--);
}
A)2B)3C)4D)5
24、阅读下面程序,则程序段的功能是(B)
#include"stdio.h"
main()
{intc[]={23,1,56,234,7,0,34},i,j,t;
for(i=1;i<7;i++)
{t=c[i];j=i-1;
while(j>=0&&t>c[j])
{c[j+1]=c[j];j--;}
c[j+1]=t;
}
for(i=0;i<7;i++)
printf("%d",c[i]);
putchar(′\n′);
}