1994年二级笔试试题CWord文档格式.docx
《1994年二级笔试试题CWord文档格式.docx》由会员分享,可在线阅读,更多相关《1994年二级笔试试题CWord文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
}
【12】A)11,10B)9,10C)010,9D)10,9
(13)已知在ASCII代码中,字母A的序号为65,以下程序的输出的结果是【13】。
{charc1='
A'
c2='
Y'
;
c1,c2);
【13】A)因输出格式不合法,输出错误信息B)65,90C)A,YD)65,89
(14)指针s所指字符串的长度为【14】。
char*s="
\\"
Name\\Address\n"
【14】A)19B)15C)18D)说明不合法
(15)设有说明int(*ptr)[m];
其中的标识符ptr是【15】。
【15】A)M个指向整型变量的指针
B)指向M个整型变量的函数指针
C)一个指向具有M个整型元素的一维数组的指针
D)具有M个指针元素的一维指针数组,每个元素都只能指向整型量
(16)语句while(!
E);
中的条件!
E等价于 【16】。
【16】A)E==0B)E!
=1C)E!
=0D)~E
(17)以下程序的输出结果是 【17】 。
{printf("
NULL);
【17】A)不确定的(因变量无定义)B)0C)-1D)1
(18)以下函数调用语句中含有【18】个实参。
func((exp1,exp2),(exp3,exp4,exp5));
【18】A)1B)2C)4D)5
(19)设有以下语句:
chara=3,b=6,c;
c=a^b<
<
2;
则c的二进制值是【19】。
【19】A)00011011B)00010100C)00011100D)00011000
(20)下面的程序中【20】有错误(每行程序前面的数字是行号)。
1#include<
2main()
3{
4floata[3]={0,0};
5inti;
6for(i=0;
i<
3;
i++)scanf("
%d"
&
a[i]);
7for(i=1;
i++)a[0]=a[0]+a[i];
8printf("
%f\n"
a[0]);
9}
【20】A)没有B)第4行C)第6行D)第8行
(21)设有语句inta=3;
则执行了语句a+=a-=a*a;
后,变量a的值是 【21】。
【21】A)3B)0C)9D)-12
(22)以下的for循环【22】。
for(x=0,y=0;
(y!
=123)&
&
(x<
4);
x++);
【22】A)是无限循环B)循环次数不定C)执行4次D)执行3次
(23)设有语句chara='
\72'
则变量a【23】 。
【23】A)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法
(24)以下程序的输出结果是 【24】。
math..h>
{inta=1,b=4,c=2;
floatx=10..5,y=4.0,z;
z=(a+b)/c+sqrt((double)y)*1.2/c+x;
pritnf("
z);
【24】A)14.000000B)015.400000C)13.700000D)14.900000
(25)sizeof(double)是 【25】。
【25】A)一种函数调用B)一个双精度型表达式
C)一个整型表达式D)一个不合法的表达式
(26)C语言中 【26】。
【26】A)不能使用do-while语句构成的循环
B)do-while语句构成的循环必须用break语句才能退出
C)do-while语句构成的循环,当while语句中的表达式值为非零时结束循环
D)do-while语句构成的循环,当while语句中的表达式值为零时结束循环
(27)以下程序的输出结果是【27】。
string.h>
{charstr[12]={'
s'
'
t'
r'
i'
n'
g'
};
strlen(str));
【27】A)6B)7C)11D)12
(28)以下程序的输出结果是 【28】。
{inta=2,c=5;
a=%%d,b=%%d\n"
a,c);
【28】A)a=%2,b=%5B)a=2,b=5C)a=%%d,b=%%dD)a=%d,b=%d
(29)以下程序的输出结果是 【29】。
#include<
{inta,b,d=241;
a=d/100%9;
b=(-1)&
(-1);
a,b);
【29】A)6,1B)2,1C)6,0D)2,0
(30)以下程序的输出结果是 【30】。
{inti;
for(i=1;
=5;
i++){if(i%2)printf("
*"
);
elsecontinue;
printf("
#"
}
$\n"
【30】A)*#*#*#$B)#*#*#*$C)*#*#$D)#*#*$
(31)以下for语句构成的循环执行了【31】次。
#defineN2
#defineMN+1
#defineNUM(M+1)*M/2
{inti,n=0;
=NUM;
i++);
{n++;
n);
\n"
【31】A)5B)6C)8D)9
(32)设有以下语句,则 【32】 不是对a数组元素的正确引用,其中0≤i<
10。
inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;
【32】A)a[p-a]B)*(&
a[i])C)p[i]D)*(*(a+i))
(33)有以下程序:
#defineN6
{charc[N];
inti=0;
for(;
N;
c[i]=getchar(),i++);
for(i=0;
i<
putchar(c[i]),i++);
输入以下三行,每行输入都是在第一列上开始,<
CR>
代表一个回车符:
a<
b<
cdef<
程序的输出结果是【33】。
【33】A)abcdefB)aC)aD)a
bbb
ccdcdef
d
e
f
(34)以下程序调用findmax函数求数组中值最大的元素在数组中的下标,请选择填空。
findmax(s,t,k)
int*s,t,*k;
{intp;
for(p=0,*k=p;
p<
t;
p++)
if(s[p]>
s[*k])_________;
{inta[10],i,k;
10;
i++)scanf("
findmax(a,10,&
k);
printf("
k,a[k]);
【34】A)k=pB)*k=p-sC)k=p-sD)*k=p
(35)有以下程序:
#include<
unionpw
charch[2];
}a;
{a.ch[0]=13;
a.ch[1]=0;
a.i);
程序的输出结果是 【35】。
(注意:
ch[0]在低字节,ch[1]在高字节。
)
【35】A)13B)14C)208D)209
(36)有以下程序:
{intc;
while((c=getchar())!
='
\n'
{switch(c-'
2'
{case0:
case1:
putchar(c+4);
case2:
break;
case3:
putchar(c+3);
case4:
putchar(c+2);
}}
从第一列开始输入以下数据,<
代表一个回车符。
2743<
程序的输出结果是 【36】 。
【36】A)668977B)668966C)6677877D)6688766
(37)以下程序的输出结果为 【37】。
{char*alpha[6]={"
ABCD"
"
IJKL"
MNOP"
QRST"
UVWX"
char**p;
inti;
p=alpha;
for(i=0;
4;
i++)printf("
%s"
p[i]);
【37】A)ABCDEFGHIJKLB)ABCDC)ABCDEFGHIJKLMNOPD)AEIM
(38)以下程序的输出结果是 【38】。
#defineFUDGE(y)2.84+y
#definePR(a)printf("
(int)(a))
#definePRINT1(a)PR(a);
putchar('
{intx=2;
PRINT1(FUDGE(5)*x);
【38】A)11B)12C)13D)15
(39)以下程序的输出结果是【39】。
{inti=1,j=3;
i++);
{inti=0;
i+=j*2;
%d,%d"
i,j);
【39】A)1,6,3,1,3B)1,6,3,2,3C)1,6,3,6,3D)1,7,3,2,3
(40)以下程序的输出结果是 【40】。
{intk=4,m=1,p;
p=func(k,m);
%d,"
p);
p=func(k,m);
func(a,b)
inta,b;
{staticintm=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
【40】A)8,17B)8,16C)8,20D)8,8
(41)设有以下语句:
charstr[4][12]={"
aaa"
bbbb"
ccccc"
dddddd"
},
*strp[4];
inti;
i++)strp[i]=str[i];
【41】 不是对字符串的正确引用,其中0≤k<
4。
【41】A)strpB)str[k]C)strp[k]D)*strp
(42)设有以下语句:
charstr1[]="
string"
str2[8],*str3,*str4="
则 【42】不是对库函数strcpy的正确调用,此库函数用业复制字符串。
【42】A)strcpy(str1,"
HELLO1"
B)strcpy(str2,"
HELLO2"
C)strcpy(str3,"
HELLO3"
D)strcpy(str4,"
HELLO4"
(43)C语言中形参的缺省存储类别是 【43】 。
【43】A)自动(auto)B)静态(static)C)寄存器(register)D)外部(extern)
(44)设有以下语句:
structst{intn;
structst*next;
staticstructsta[3]={5,&
a[1],7,&
a[2],9,'
\0'
},*p;
p=&
a[0];
则表达式 【44】的值是6。
【44】A)p++->
nB)p->
n++C)(*p).n++D)++p->
n
(45)以下四个程序中, 【45】不能对两个整型变量的值进行交换。
【45】A)#include<
{inta=10,b=20;
swap(&
a,&
b);
%d%d\n"
swap(p,q)
int*p,*q;
{
int*t;
t=(int)malloc(sizeof(int));
t=p;
*p=*q;
*q=*t;
}
B)#include<
inta=10,b=20;
swap(&
intp,q;
t=*p;
*q=t;
C)#include<
{
int*a,*b;
*a=10,*b=20;
swap(a,b);
*a,*b);
intt;
D)#include<
intx=&
a,y=&
b;
swap(x,y);
二、填空题(每空2分,共40分)
请将每空的正确答案写在答题卡1-20序号后的横线上,答在试卷上不得分。
(1)结构化程序设计所规定的三种基本控制结构是【1】结构.选择结构和循环结构。
(2)在七位ASCII码中,除了表示数字、英文大小写字母外,还有【2】个其它符号。
(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语言程序将磁盘中的一个文件复制到另一个文件中,两个文件名在命令行中给出。
#include<
main(argc,argv)
intargc;
char*argv[];
{FILE*f1,*f2;
charch;
if(argc<
【11】)
Parametersmissing!
exit(0);
if(((f1=fopen(argv[1],"
r"
))==NULL)||((f2=fopen(argv[2],"
w"
))==NULL))
Cannotopenfile!
while(【12】)fputc(fgetc(f1),f2);
fclose(f1);
fclose(f2);
(12)以下程序中的trap函数是一个用梯形法求定积分的通用函数。
梯形法求定积分的公式为:
n-1a-b
s=((f(a)+f(b))/2+∑f(a+i*h))*h,h=|----|
i=1n
其中,n为积分小区间数。
以下程序调用trap函数求定积分,被积函数是:
f(x)=x*x+3*x+2,且n=1000,a=0,b=4。
3include<
math.h>
doubletrap(fun,a,b)
double(*fun)(),a,b;
{doublet,h;
inti,n=1000;
t=0.5*((*fun)(a)+(*fun)(b));
h=fabs(a-b)/(double)(n);
for(i=1;
=n-1;
i++)t=t+【13】;
t=t*h;
return(t);
doublemypoly(x)
doublex;
{return(x*x+3.0*x+2.0);
{doubley,(*pf)();
pf=【14】;
y=trap(pf,0.0,4.0);
y);
(13)以下程序求a数组中的所有素数的和,函数isprime用来判断自变量是否为素数。
素数是只能被1和本身整除且大于1的自然数。
{inti,a[10],*p=a,sum=0;
Enter10num:
10;
i++)
if(isprime(*(p+【15】))==1){printf("
*(a+i));
sum+=*(a+i);
\nThesum=%d\n"
sum);
isprime(x)
intx;
for(i=2;
=x/2;
if(x%i==0)return(0);
【16】;
(14)以下程序调用invert函数按逆序重新放置a数组中元素的值。
a数组中的值在main函数中读入。
#defineN10
invert(s,i,j)
int*s,i,j;
{intt;
if(i<
j){t=*(s+i);
*(s+j)=(s+j);
*(s+j)=t;
invert(s,【17】,j-1);
}}
{inta[N],i;
N;
a+【18】);
invert(a,0,N-1);
a[i]);
(15)以下程序建立了一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入数据为-1时,表示输入结束(链表头结点的data域不放数据,表空的条件是ph->
next==NULL).
structlist{intdata;
structlist*next;
【19】creatlist()
{structlist*p,*q,*ph;
inta;
ph=(structlist*)malloc(sizeof(structlist));
p=q=ph;
Inputanintegernumber,enter-1toend:
scanf("
a):
while(a!
=-1)
{p=