求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)问