求94年全国计算机等级考试二级C语言笔试!

打印一篇文章打印这篇文章关闭窗口。

1994年4月全国计算机等级考试二级笔试试卷C语言

作者:龙牌文章来源:龙牌点击数45更新时间:2005-11-10文章入口:江涛编辑:江涛

一、选择题(1-30,1,31-45,2,***60)

以下四个选项(a),b),c)和d)只有一个是正确的。请将答题卡上相应位置的正确选项涂黑。答案不在试卷上计分。

(1)二进制数101110转换成等价的八进制数1。

1 A) 45 B) 56 C) 67 D) 78

(2) CPU由2个组成。

2 A)内部存储器和控制器b)控制器和算术单元

c)内存和运算单元d)内存、控制器和运算单元

(3) DOS是IBM PC系列微型计算机及其兼容机的三磁盘操作系统。

3 A)多用户多任务,b)单用户单任务,c)分时,d)分布式。

(4)MS-DOS操作系统启动后,4已经存储在内存中。

4 A)COMMAND.COM B)DISKCOPY.COM C)FORMAT.COM D)CCCC.EXE

(5)让驱动器B中软盘上的目录结构如下图所示。

如果当前目录是F2,命令复制PROG。磁盘A根目录下的BAS文件到磁盘B的F3子目录是5。

5 A)复制程序。BAS B: B) COPY A:PROG。BAS B:\

c)复制A:\PROG。BAS B:\F3 D)复制A:PROG。BAS B:\F3\

(6)下面四组DOS命令中,意义完全相同的是6。

6 A)拷贝和磁盘拷贝B)压缩和磁盘拷贝

c)删除和研发D)重命名和重新命名

(7)防止软盘感染病毒的有效方法是7。

7 A)不要把软盘和有毒软盘放在一起b)在写保护缝隙上贴胶带。

c)保持机房整洁d)定期格式化软盘。

(8)双面高密度5英寸软盘的容量为8。

8 A)360 kb B)720 kb C)1.2 MB D)1.44 MB

(9)在FOXBASE中,可以使用的两种变量是9。

9 A)内存变量和字段变量b)全局变量和局部变量

c)字段变量和简单变量d)记忆变量和自动变量

(10)创建新子目录的DOS命令是10。

10 A)创建B)研发C) MD D) CD

(11)在C语言中,如果后面的变量都是int类型,那么输出结果就是11。

sum = pad = 5;pAd = sum ++ pAd ++ pAd ++ pAd;

printf("%d\n ",pad);

11 A) 7 B) 6 C) 5 D) 4

(12)以下程序的输出是12。

#包括

主()

{ int i=010,j = 10;

printf("%d,%d\n ",+ +i,j--);}

12 A) 11,10 B) 9,10 C) 010,9 D) 10,9

(13)已知在ASCII码中,字母A的序号是65,下面的程序输出结果是13。

#包括

主()

{ char c1='A ',c2 = ' Y

printf("%d,%d\n ",c1,C2);}

13A)错误消息b) 65,90c) a,y d) 65,89由于非法输出格式而被输出。

(14)指针S指向的字符串长度是14。

char *s="\\ "名称\\地址\ n ";

14a)19b)15c)18d)解释不合法。

(15)提供了描述int(* ptr)[m];其中标识符ptr是15。

指向整数变量的M个指针

b)指向m个整数变量的函数指针

c)指向具有m个整数元素的一维数组的指针。

d)一维指针数组,有m个指针元素,每个指针元素只能指向一个整数。

(16)语句while(!e);条件进来了!e相当于16。

16 A)E = = 0 B)E!=1 C)E!=0 D)~E

(17)以下程序的输出是17。

#包括

主()

{ printf("%d\n ",NULL);}

17 A)不确定(未定义的因变量)B)0 C)-1 D)1

(18)以下函数调用语句包含18个参数。

func((exp1,exp2),(exp3,exp4,exp 5));

18 A) 1 B) 2 C) 4 D) 5

(19)有以下语句:

char a=3,b=6,c;

c=a^b<;& lt2;

那么c的二进制值就是19。

19 A)00011011 B)00010100 C)00011100D)00100

(20)下面的程序有错误(每个程序前面的数字是行号)。

1 #包括

2主()

3 {

4 float a[3]={0,0 };

5 int I;

6 for(I = 0;我& lt3;i + + ) scanf("%d ",& ampa[I]);

7 for(I = 1;我& lt3;i++)a[0]= a[0]+a[I];

8 printf("%f\n ",a[0]);

9 }

20 A)否b)第4行c)第6行d)第8行

(21)有语句int a = 3;然后执行语句a+= a-= a * a;之后变量A的值就是21。

21 A)3 B)0 C)9 D)-12

(22)以下为循环22。

for(x=0,y = 0;(y!= 123);& amp(x & lt4);x++);

22A)它是一个无限循环;b)循环次数不确定;c)执行4次;d)执行3次。

(23)有一个语句char a = ' \ 72然后变量a 23。

23A)包含1个字符b)包含2个字符c)包含3个字符d)表示非法。

(24)下面这个程序的输出是24。

#包括

#包括

主()

{ int a=1,b=4,c = 2;

浮点x=10..5,y=4.0,z;

z =(a+b)/c+sqrt((double)y)* 1.2/c+x;

pritnf("%f\n ",z);}

24A)14.000000 B)015.400000 C)13.700000D)14.900000

sizeof(double)是25。

25 A)函数调用b)双精度表达式

c)整数表达式d)非法表达式。

(26) 26在C语言中。

26 A) do-while语句不能用于循环。

B)由B)do-while语句形成的循环必须中断才能退出。

C)由C)do-while语句形成的循环,当while语句中的表达式值不为零时循环结束。

d)由do-while语句形成的循环,当while语句中的表达式值为零时结束。

(27)下面这个程序的输出是27。

#包括

#包括

主()

{ char str[12]={'s ',' t ',' r ',' I ',' n ',' g ' };

printf("%d\n ",strlen(str));}

27 A)6 B)7 C)11D)12

以下程序的输出是28。

#包括

主()

{ int a=2,c = 5;

printf("a=%%d,b=%%d\n ",a,c);}

28A) a=%2,b=%5 B) a=2,b=5 C) a=%%d,b=%%d D) a=%d,b=%d

(29)下面程序的输出是29。

#包括

主()

{ int a,b,d = 241;

a = d/100% 9;

b =(-1);& amp(-1);

printf("%d,%d\n ",a,b);}

29 A) 6,1 B) 2,1 C) 6,0 D) 2,0

以下程序的输出是30。

#包括

主()

{ int I;

for(I = 1;我& lt=5;i++){ if(I % 2)printf(" * ");

否则继续;printf(" # ");}

printf(" $ \ n ");}

30 A)* # * # * # $ B)# * # * # * $ C)* # * # $ D)# * # * $

(31)下列for语句形成的循环执行了31次。

#包括

#定义N 2

#定义M N+1

#定义编号(M+1)*M/2

主()

{ int i,n = 0;

for(I = 1;我& lt= NUMi++);

{ n++;printf("%d ",n);}

printf(" \ n ");}

31 A) 5 B) 6 C) 8 D) 9

(32)如果提供了以下语句,则32不是对数组元素的正确引用,其中0 ≤ i

int a[10]={0,1,2,3,4,5,6,7,8,9},* p = a;

32 A)A[p-A]B)*(& amp;a[i]) C) p[i] D) *(*(a+i))

(33)有以下程序:

#包括

#定义N 6

主()

{ char c[N];int I = 0;

for(;我

for(I = 0;我

输入以下三行,每行从第一列开始,代表一个回车符:

a

b

cdef

程序的输出是33。

33 A)abcdef B)A)C)A)D)A)

b b b

cdef

d

e

f

(34)下面的程序调用findmax函数来查找数组中具有最大值的元素的下标。请填空。

#包括

findmax ( s,t,k)

int *s,t,* k;

{ int p;for(p=0,* k = p;p

if(s[p]& gt;s[* k])_ _ _ _ _ _ _ _ _;}

主()

{ int a[10],I,k;

for(I = 0;我& lt10 ;i + + ) scanf("%d ",& ampa[I]);

findmax ( a,10,& ampk);

printf ( "%d,%d\n ",k,a[k]);}

34 A) k=p B) *k=p-s C) k=p-s D) *k=p

(35)有以下程序:

#包括

联合pw

{ int I;char ch[2];} a;

主()

{ a . ch[0]= 13;a . ch[1]= 0;printf("%d\n ",a . I);}

程序的输出是35。(注意:ch[0]在低位字节,ch[1]在高位字节。)

35 A)13 B)14 C)208D)209

(36)有以下程序:

#包括

主()

{ int c;

while((c=getchar())!='\n ')

{开关(c-'2 ')

{案例0:

案例1:putchar(c+4);

案例二:putchar(c+4);打破;

案例三:putchar(c+3);

案例四:putchar(c+2);打破;} }

printf(" \ n ");}

从第一列输入以下数据,该列表示回车。

2743

程序的输出是36。

36 A)668977 B)668966 C)6677877D)6688766

以下程序的输出是37。

主()

{ char *alpha[6]={"ABCD "," IJKL "," MNOP "," QRST "," UVWX " };

char * * p;int I;

p =α;

for(I = 0;我& lt4;i + + ) printf("%s ",p[I]);printf(" \ n ");}

37A)ABCDEFGHIJKL B)ABCD C)ABCDEFGHIJKLMNOP D)AEIM

以下程序的输出是38。

#包括

#定义软糖(y) 2.84+y

# define PR(a) printf("%d ",(int)(a))

#定义print 1(a)PR(a);putchar('\n ')

主()

{ int x = 2;print 1(FUDGE(5)* x);}

38 A)11 B)12 C)13D)15

以下程序的输出是39。

#包括

主()

{ int i=1,j = 3;

printf("%d ",i++);

{ int I = 0;I+= j * 2;printf("%d,%d ",I,j);}

printf("%d,%d\n ",I,j);}

39 A) 1,6,3,1,3 B) 1,6,3,2,3 C) 1,6,3,6,3 D) 1,7,3,2,3

以下程序的输出是40。

#包括

主()

{ int k=4,m=1,p;

p=func(k,m);printf("%d ",p);p=func(k,m);printf("%d\n ",p);}

func(a,b)

int a,b;

{ static int m=0,I = 2;

I+= m+1;m = I+a+b;返回(m);}

40 A) 8,17 B) 8,16 C) 8,20 D) 8,8

(41)有以下语句:

char str[4][12]={"aaa "," bbbb "," ccccc "," dddddd"},

* strp[4];

int I;

for(I = 0;我& lt4;i++)strp[I]= str[I];

41不是对字符串的正确引用,其中0 ≤ k

41 A)strp B)str[k]C)strp[k]D)* strp

(42)有如下陈述:

char str1[]="string ",str2[8],*str3,* str4 = " string

那么42不是对库函数strcpy的正确调用,这个库函数按行业复制字符串。

42 A) strcpy(str1," hello 1 ");B) strcpy(str2,“hello 2”);

C) strcpy(str3,“hello 3”);D) strcpy(str4,“hello 4”);

(43)C语言中形参的默认存储类别是43。

43A)自动B)静态C)寄存器D)外部

(44)提供以下声明:

struct ST { int n;struct st * next};

静态结构st a[3]={5,ampa[1],7,& ampa[2],9,' \0'},* p;

p = & ampa[0];

表达式44的值是6。

44 A)p + + ->n B) p->n + + C) (*p)。n ++ D)++ p-& gt;n

(45)下面四个程序中,45不能交换两个整型变量的值。

45A)#包括

主()

{ int a=10,b = 20互换(amp一,& ampb);

printf("%d %d\n ",a,b);

}

互换(p,q)

int *p,* q;

{

int * t;

t =(int)malloc(sizeof(int));

t = p;* p = * q;* q = * t;}

B) #包括

主()

{

int a=10,b = 20

互换(amp一,& ampb);

printf("%d %d\n ",a,b);

}

互换(p,q)

int p,q;

{

int * t;

t = * p;* p = * q;* q = t;

}

C) #包括

主()

{

int *a,* b;

*a=10,* b = 20

互换(a,b);

printf("%d %d\n ",*a,* b);

}

互换(p,q)

int *p,* q;

{

int t;

t = * p;* p = * q;* q = t;

}

D) #包括

主()

{

int a=10,b = 20

int x = & ampa,y = & ampb;

swap(x,y);

printf("%d %d\n ",a,b);

}

互换(p,q)

int *p,* q;

{

int t;

t = * p;* p = * q;* q = t;

}

二、填空(每空2分,***40分)

请将正确答案写在答题卡序号1-20后横线上的每一个空白处,该答案不在试卷上计分。

(1)结构化程序设计中规定的三种基本控制结构是1结构、选择结构和循环结构。

(2)在七位ASCII码中,除了数字和英文大小写字母外,还有另外两个符号。

(3)复制B盘BAS子目录中第三个字符为A且没有扩展名的所有文件到C盘ABC子目录的命令是3。

(4)微机中ROM的中文意思是4内存。

(5)启动MS-DOS系统后,可以自动执行的批处理文件是5 .BAT。

(6)设置当前磁盘为c盘,命令删除所有带扩展名的文件。磁盘B的FOX子目录中的TXT是6。

(7)十进制数53被转换成十六进制数7。

(8)数据库管理系统常见的数据模型有三种:层次型、网状型和8。

(9)新买的磁盘,必须经过9次处理,才能存入文件。

(10)在微机中,字符的比较就是比较它们的10码。

(11)下面的C语言程序将磁盘上的一个文件复制到另一个文件,两个文件名在命令行给出。

#包括

主(argc,argv)

int argcchar * argv[];

{ FILE *f1,* f2char ch

if(argc & lt;11 )

{ printf("缺少参数!\ n ");退出(0);}

if((f 1 = fopen(argv[1]," r))= = NULL)| |((F2 = fopen(argv[2]," w)))= =

NULL))

{ printf("无法打开文件!\ n ");退出(0);}

while(12)fputc(fgetc(f 1),F2);

fclose(f 1);fclose(F2);}

(12)下面程序中的trap函数是用梯形法求定积分的通用函数。定积分梯形法的公式为:

n-1 a-b

s=((f(a)+f(b))/2+∑ f(a+i*h))*h,h=| - |

i=1 n

其中n是集成单元的数量。下面程序调用trap函数求定积分,被积函数为:

F(x)=x*x+3*x+2,而n=1000,a=0,b=4。

#包括

3包括

双重陷阱(乐趣,a,b)

double (*fun)(),a,b;

{双t,h;

int i,n = 1000;

t=0.5*(乐趣)(a)+(*乐趣)(b);h = fabs(a-b)/(double)(n);

for(I = 1;我& lt= n-1;i++)t = t+13;

t = t * h;返回(t);}

双mypoly(x)

双x;

{ return(x * x+3.0 * x+2.0);}

主()

{ double y,(* pf)();pf = 14;

y=trap(pf,0.0,4.0);printf("%f\n ",y);}

(13)以下过程求数组A中所有素数之和,用函数isprime判断自变量是否为素数。质数是只能被1和它本身整除并且大于1的自然数。

#包括

主()

{ int i,a[10],*p=a,sum = 0;

printf(" Enter 10 num:\ n ");

for(I = 0;我& lt10;i + + ) scanf("%d ",& ampa[I]);

for(I = 0;我& lt10;i + +)

if(is prime(*(p+15))= = 1){ printf(" % d " ,*(a+I));sum+= *(a+I);}

printf(" \ n sum = % d \ n ",sum);}

isprime(x)

int x;

{ int I;for(I = 2;我& lt= x/2;i + +)

if(x%i = = 0)返回(0);16 ;}

(14)以下程序调用invert函数以逆序重新定位数组中元素的值。数组中的值是在main函数中读取的。

#包括

#定义编号10

反转(s,I,j)

int *s,I,j;

{ int t;如果(我

主()

{ int a[N],I;

for(I = 0;我

invert(a,0,N-1);

for(I = 0;我

printf(" \ n ");}

(15)以下程序建立了一个带有头节点的单向链表。链表节点中的数据通过键盘输入。当输入数据为-1时,表示输入结束(链表头节点的数据)

字段不放数据,表为空的情况是ph-& gt;next = = NULL)。

#包括

结构列表{ int data结构列表* next};

19创建列表()

{结构列表*p,*q,* phint a;

ph=(结构列表*) malloc(sizeof(结构列表));

p = q = phprintf("输入整数,回车–1结束:\ n ");

scanf("%d ",& amp答:

而(a!=-1)

{ p =(struct list *)malloc(sizeof(struct list));

p->;数据= a;q->;next = p;20 = p;scanf("%d ",& ampa);}

p->;next = ' \ 0返回(ph);}

主()

{ struct list * headhead = creat list();}

[结束]

1994全国计算机等级考试二级笔试

c语言参考答案

选择题([1]-[30] 1每选项,[31]-[45] 2每选项,***60)。

(1)B(2)B(3)B(4)A(5)C(6)D(7)B(8)C(9)A(10)C

(11)C(12)B(13)D(14)B(16)A(17)B(18)B(19)A(20)C

(21)D(22)C(23)A(24)C(25)C(26)D(27)A(28)D(29)B(30)A

(31)C(32)D(33)C(34)D(35)A(36)A(37)C(38)B(39)B(40)A

(41)A (42)C (43)A (44)D (45)C

填空(每空2分,***40分)

(1)序列

(2)66

(3)复制b: \ bas \ a *。c: \ ABC(或COPY B:\BAS\A*。,C:\ABC)。

(4)只读

(5)AUTOEXEC

(6)DEL B:\FOX\*。文本文件(textfile)

(7)35

(8)关系

(9)格式化(或初始化、格式化)

(10)ASCII码

(11)3

(12)!Feof(f1)或feof(f1)==0。

(13)(*fun)(a+i*h)

(14) mypoly

我是

(16)返回1或返回(1)

(17)i+1

我是

(19)结构列表*

(20)问