上半年计算机等考二级C语言真题及答案.docx
- 文档编号:5547891
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:23
- 大小:23.21KB
上半年计算机等考二级C语言真题及答案.docx
《上半年计算机等考二级C语言真题及答案.docx》由会员分享,可在线阅读,更多相关《上半年计算机等考二级C语言真题及答案.docx(23页珍藏版)》请在冰点文库上搜索。
上半年计算机等考二级C语言真题及答案
2010年C语言试题及答案
一、选择题(1-30每小题1分,31-45每小题2分,共60分)
下列各题A),B),C),D)四个选项,只有一个选项是正确的,请将正确的选项在答题卡相应位置上涂黑。
答在试卷上不得分。
(1)二进制数101110转换为等值的八进制数是( )。
A.45
B.56
C.67
D.78
(2)CPU是由( )组成的。
A.内存储器和控制器
B.控制器和运算器
C.内存储器和运算器
D.内存储器、控制器和运算器
(3)DOS是为IBMPC系列微型计算机及其兼容机所配置的( )磁盘操作系统。
A.多用户多任务
B.单用户单任务
C.分时
D.分布式
(4)启动MS-DOS操作系统后,( )已驻留内存。
A.COMMAND.COM
B.DISKCOPY.COM
C.FORMAT.COM
D.CCCC.EXE
(5)设驱动器B中软盘上的目录结构如下图所示。
设当前目录为F2,则把A盘根目录下的PROG.BAS文件复制到B盘F3子目录中的命令是 ( )。
A.COPYPROG.BASB:
B.COPYA:
PROG.BASB:
\
C.COPYA:
\PROG.BASB:
\F3
D.COPYA:
PROG.BASB:
\F3\
(6)下面四组DOS命令中,意义完全相同的一组是( )。
A.COPY和DISKCOPY
B.COMP和DISKCOMP
C.DEL和RD
D.RENAME和REN
(7)防止软盘感染病毒的有效方法是( )。
A.不要把软盘和有毒软盘放在一起
B.在写保护缺口上贴上胶条
C.保持机房清洁
D.定期对软盘格式化
(8)双面高密度5英寸软磁盘的容量是 ( )。
A.360KB
B.720KB
C.1.2MB
D.1.44MB
(9)在FOXBASE中,可以使用的两类变量是 ( )。
A.内存变量和字段变量
B.全局变量和局部变量
C.字段变量和简单变量
D.内存变量和自动变量
(10)建立一个新子目录的DOS命令是( )。
A.CREATE
B.RD
C.MD
D.CD
(11)在C语言中,如果下面的变量都是int类型,则输出的结果是( )。
sum=pad=5;pAd=sum++,pAd++,++pAd;
printf("%d\n",pad);
A.7
B.6
C.5
D.4
(12)以下程序的输出结果是( )。
#include
main()
{inti=010,j=10;
printf("%d,%d\n",++i,j--);}
A.11,10
B.9,10
C.010,9
D.10,9
(13)已知在ASCII代码中,字母A的序号为65,以下程序的输出的结果是( )。
#include
main()
{charc1=’A’,c2=’Y’;
printf("%d,%d\n",c1,c2);}
A.因输出格式不合法,输出错误信息
B.65,90
C.A,Y
D.65,89
(14)指针s所指字符串的长度为( )。
char*s="\\"Name\\Address\n";
A.19
B.15
C.18
D.说明不合法
(15)设有说明int(*ptr)[m];其中的标识符ptr是( )。
A.M个指向整型变量的指针
B.指向M个整型变量的函数指针
C.一个指向具有M个整型元素的一维数组的指针
D.具有M个指针元素的一维指针数组,每个元素都只能指向整型量
(16)语句while(!
E);中的条件!
E等价于 ( )。
A.E==0
B.E!
=1
C.E!
=0
D.~E
(17)以下程序的输出结果是 ( ) 。
#include
main()
{printf("%d\n",NULL);}
A.不确定的(因变量无定义)
B.0
C.-1
D.1
(18)以下函数调用语句中含有( )个实参。
func((exp1,exp2),(exp3,exp4,exp5));
A.1
B.2
C.4
D.5
(19)设有以下语句:
chara=3,b=6,c;
c=a^b<<2;
则c的二进制值是( )。
A.00011011
B.00010100
C.00011100
D.00011000
(20)下面的程序中( )有错误(每行程序前面的数字是行号)。
1#include
2main()
3{
4floata[3]={0,0};
5inti;
6for(i=0;i<3;i++)scanf("%d",&a[i]);
7for(i=1;i<3;i++)a[0]=a[0]+a[i];
8printf("%f\n",a[0]);
9}
A.没有
B.第4行
C.第6行
D.第8行
(21)设有语句inta=3;则执行了语句a+=a-=a*a;后,变量a的值是 ( )。
A.3
B.0
C.9
D.-12
(22)以下的for循环( )。
for(x=0,y=0;(y!
=123)&&(x<4);x++);
A.是无限循环
B.循环次数不定
C.执行4次
D.执行3次
(23)设有语句chara=’\72’;则变量a( ) 。
A.包含1个字符
B.包含2个字符
C.包含3个字符
D.说明不合法
(24)以下程序的输出结果是 ( )。
#include
#include
main()
{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("%f\n",z);}
A.14.000000
B.015.400000
C.13.700000
D.14.900000
(25)sizeof(double)是 ( )。
A.一种函数调用
B.一个双精度型表达式
C.一个整型表达式
D.一个不合法的表达式
(26)C语言中 ( )。
A.不能使用do-while语句构成的循环
B.do-while语句构成的循环必须用break语句才能退出
C.do-while语句构成的循环,当while语句中的表达式值为非零时结束循环
D.do-while语句构成的循环,当while语句中的表达式值为零时结束循环
(27)以下程序的输出结果是( )。
#include
#include
main()
{charstr[12]={’s’,’t’,’r’,’i’,’n’,’g’};
printf("%d\n",strlen(str));}
A.6
B.7
C.11
D.12
(28)以下程序的输出结果是 ( )。
#include
main()
{inta=2,c=5;
printf("a=%%d,b=%%d\n",a,
C.;}
A.a=%2,b=%5
B.a=2,b=5
C.a=%%d,b=%%d
D.a=%d,b=%d
(29)以下程序的输出结果是 ( )。
#include
main()
{inta,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,
B.;}
A.6,1
B.2,1
C.6,0
D.2,0
(30)以下程序的输出结果是 ( )。
#include
main()
{inti;
for(i=1;i<=5;i++){if(i%2)printf("*");
elsecontinue;printf("#");}
printf("$\n");}
A.*#*#*#$
B.#*#*#*$
C.*#*#$
D.#*#*$
(31)以下for语句构成的循环执行了( )次。
#include
#defineN2
#defineMN+1
#defineNUM(M+1)*M/2
main()
{inti,n=0;
for(i=1;i<=NUM;i++);
{n++;printf("%d",n);}
printf("\n");}
A.5
B.6
C.8
D.9
(32)设有以下语句,则 ( ) 不是对a数组元素的正确引用,其中0≤i<10。
inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;
A.a[p-a]
B.*(&a[i])
C.p[i]
D.*(*(a+i))
(33)有以下程序:
#include
#defineN6
main()
{charc[N];inti=0;
for(;i for(i=0;i 输入以下三行,每行输入都是在第一列上开始,代表一个回车符:
a
b
cdef
程序的输出结果是( )。
A.abcdef
B.a
C.a
D.a
bbb
ccdcdef
d
e
(34)以下程序调用findmax函数求数组中值最大的元素在数组中的下标,请选择填空。
#include
findmax(s,t,k)
int*s,t,*k;
{intp;for(p=0,*k=p;p if(s[p]>s[*k])( );}
main()
{inta[10],i,k;
for(i=0;i<10;i++)scanf("%d",&a[i]);
findmax(a,10,&k);
printf("%d,%d\n",k,a[k]);}
A.k=p
B.*k=p-s
C.k=p-s
D.*k=p
(35)有以下程序:
#include
unionpw
{inti;charch[2];}a;
main()
{a.ch[0]=13;a.ch[1]=0;printf("%d\n",a.i);}
程序的输出结果是 ( )。
(注意:
ch[0]在低字节,ch[1]在高字节。
)
A.13
B.14
C.208
D.209
(36)有以下程序:
#include
main()
{intc;
while((c=getchar())!
=’\n’)
{switch(c-’2’)
{case0:
case1:
putchar(c+4);
case2:
putchar(c+4);break;
case3:
putchar(c+3);
case4:
putchar(c+2);break;}}
printf("\n");}
从第一列开始输入以下数据,代表一个回车符。
2743
程序的输出结果是 ( ) 。
A.668977
B.668966
C.6677877
D.6688766
(37)以下程序的输出结果为 ( )。
main()
{char*alpha[6]={"ABCD","IJKL","MNOP","QRST","UVWX"};
char**p;inti;
p=alpha;
for(i=0;i<4;i++)printf("%s",p[i]);printf("\n");}
A.ABCDEFGHIJKL
B.ABCD
C.ABCDEFGHIJKLMNOP
D.AEIM
(38)以下程序的输出结果是 ( )。
#include
#defineFUDGE(y)2.84+y
#definePR(
A.printf("%d",(int)(
A.)
#definePRINT1(
A.PR(
A.;putchar(’\n’)
main()
{intx=2;PRINT1(FUDGE(5)*x);}
A.11
B.12
C.13
D.15
(39)以下程序的输出结果是( )。
#include
main()
{inti=1,j=3;
printf("%d",i++);
{inti=0;i+=j*2;printf("%d,%d",i,j);}
printf("%d,%d\n",i,j);}
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)以下程序的输出结果是 ( )。
#include
main()
{intk=4,m=1,p;
p=func(k,m);printf("%d,",p);p=func(k,m);printf("%d\n",p);}
func(a,
B.
inta,b;
{staticintm=0,i=2;
i+=m+1;m=i+a+b;return(m);}
A.8,17
B.8,16
C.8,20
D.8,8
(41)设有以下语句:
charstr[4][12]={"aaa","bbbb","ccccc","dddddd"},
*strp[4];
inti;
for(i=0;i<4;i++)strp[i]=str[i];
( )不是对字符串的正确引用,其中0≤k<4。
A.strp
B.str[k]
C.strp[k]
D.*strp
(42)设有以下语句:
charstr1[]="string",str2[8],*str3,*str4="string";
则 ( )不是对库函数strcpy的正确调用,此库函数用业复制字符串。
A.strcpy(str1,"HELLO1");
B.strcpy(str2,"HELLO2");
C.strcpy(str3,"HELLO3");
D.strcpy(str4,"HELLO4");
(43)C语言中形参的缺省存储类别是 ( ) 。
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];
则表达式 ( )的值是6。
A.p++->n
B.p->n++
C.(*p).n++
D.++p->n
(45)以下四个程序中, ( )不能对两个整型变量的值进行交换。
A.#include
main()
{inta=10,b=20;swap(&a,&
B.;
printf("%d%d\n",a,
B.;
}
swap(p,q)
int*p,*q;
{
int*t;
t=(int)malloc(sizeof(int));
t=p;*p=*q;*q=*t;}
B.#include
main()
{
inta=10,b=20;
swap(&a,&
B.;
printf("%d%d\n",a,
B.;
}
swap(p,q)
intp,q;
{
int*t;
t=*p;*p=*q;*q=t;
}
C.#include
main()
{
int*a,*b;
*a=10,*b=20;
swap(a,
B.;
printf("%d%d\n",*a,*
B.;
}
swap(p,q)
int*p,*q;
{
intt;
t=*p;*p=*q;*q=t;
}
D.#include
main()
{
inta=10,b=20;
intx=&a,y=&b;
swap(x,y);
printf("%d%d\n",a,
B.;
}
swap(p,q)
int*p,*q;
{
intt;
t=*p;*p=*q;*q=t;
}
二、填空题(每空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)
int argc; char *argv[];
{ FILE *f1,*f2; char ch;
if(argc< 【11】 )
{ printf("Parameters missing!
\n"); exit(0); }
if( ((f1=fopen(argv[1],"r")) = = NULL)||((f2=fopen(argv[2],"w")) = = NULL))
{ printf("Can not open file!
\n"); exit(0);}
while( 【12】 )fputc(fgetc(f1),f2);
fclose(f1); 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。
#include
3include
double trap(fun,a,b)
double (*fun)(),a,b;
{ double t,h;
int i,n=1000;
t=0.5*((*fun)(a)+(*fun)(b)); h=fabs(a-b)/(double)(n);
for(i=1;i<=n-1;i + + ) t=t+ 【13】 ;
t=t*h; return(t); }
double mypoly(x)
double x;
{ return(x*x+3.0*x+2.0); }
main()
{ double y,(*pf)(); pf= 【14】 ;
y=trap(pf,0.0,4.0); printf("%f\n",y); }
(13) 以下程序求a数组中的所有素数的和,函数isprime用来判断自变量是否为素数。
素数是只能被1和本身整除且大于1的自然数。
#include
main()
{ int i,a[10],*p=a,sum=0;
printf("Enter 10 num:
\n");
for(i=0;i<10;i + + ) scanf("%d",&a[i]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 上半年 计算机 二级 语言 答案