二级C语言笔试320真题无答案.docx
《二级C语言笔试320真题无答案.docx》由会员分享,可在线阅读,更多相关《二级C语言笔试320真题无答案.docx(18页珍藏版)》请在冰豆网上搜索。
二级C语言笔试320真题无答案
二级C语言笔试-320
(总分100,考试时间90分钟)
一、选择题
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。
1.能正确表示逻辑关系""a≥10或a≤0""的C语言表达式是______。
A.a>=10ora<=0B.a>=0|a<=10
C.a>=10&&a<=0D.a>=10||a<=10
2.有如下程序段:
#include<stdio.h>
#defineMax(a,B)a>b?
a:
b
main()
inta=5,b=6,c=4,d;
d=c+Max(a,B);
printf("%d",D);
其输出结果为______。
A.10B.5
C.6D.编译错误
3.若变量已正确定义并赋值,下面符合C语言的表达式是______。
A.a:
=b+1B.a=b=c+2
C.int18.5%3D.a=a+7=c+b
4.有如下函数调用语句
func(rec1,rec2+rec3,(rec4,rec5));
该函数调用语句中,含有的实参个数是______。
A.3B.4
C.5D.有语法错误
5.有如下程序段
int *p,a=10,b=1;
p=&a;a=*p+b;
执行该程序段后,a的值为______。
A.12B.11
C.10D.编译出错
6.检查软件产品是否符合需求定义的过程称为______。
A.确认测试B.集成测试
C.验证测试D.验收测试
7.有以下函数定义:
voidfun(intn,doublex)……
若以下选项中的变量都已正确定义并赋值,则对函数fun正确调用语句是______。
A.fun(inty,doublem);B.k=fun(10,12.5);
C.fun(x,n);D.voidfun(n,x);
8.下面一组中都是C语言关键字的是______。
A.doubleIntfor
B.mainwhilegoto
C.volatilebreakstatic
D.mallocsizeofnew
9.有如下程序段
int a=14,b=15,x;
char c='A';
x=(a&&B) &&(c<'B');
执行该程序段后,x的值为______。
A.trueB.false
C.0D.1
10.下面程序的输出结果是______。
main()
charstr[10],c='a';
inti=0;
for(;i<5;i++)
str[i]=C++;
printf("%s",str);
A.abcdeB.a
C.不确定D.bcdef
11.C语言运算对象必须是整型的运算符是______。
A.%=B./
C.=D.<=
12.有以下程序:
int*f(int*x,int*y)
if(*x<*y)returnx;
elsereturny;
main()
inta=7,b=8,*p,*q,*r;
p=&a;q=&b;
r=f(p,q);
printf("%d,%d,%d\n",*p,*q,*r);
程序运行后输出结果是______。
A.7,8,8B.7,8,7
C.8,7,7D.8,7,8
13.下述关于C语言文件的操作的结论中,正确的是______。
A.对文件操作必须先关闭文件B.对文件操作必须先打开文件
C.对文件操作顺序无要求D.对文件操作前必须先测文件是否存在,然后再打开文件
14.以下叙述不正确的是______。
A.分号是C语言的必要组成部分B.C程序的注释可以写在句的后面
C.函数是C程序的基本单位D.主函数的名字不一定用main表示
15.在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送______。
A.调用语句B.命令
C.口令D.消息
16.若变量a、i已正确定义,且i已正确赋值,合法的语句是______。
A.a=1B.++i;
C.a=a++=5;D.a=int(i);
17.将E-R图转换到关系模式时,实体与联系都可以表示成______。
A.属性B.关系
C.键D.域
18.若已建立如下图所示的单向链表结构:
在该链表结构中,指针p、s分别指向图中所示结点,则不能将s所指的结点插入到链表末尾仍构成单向链表的语句组是______。
19.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是______。
A.1B.2
C.2.0D.2.5
20.设有声明语句char a='\72';,则变量a______。
A.包含1个字符B.包含2个字符
C.包含3个字符D.声明不合法
21.有如下程序
main()
chars[][5]="abc","de","fgh";
printf("%c",s[2][6]);
其输出为______。
A.不确定B.编译错误
C.gD.输出null字符
22.假设在turboc2.0采用small模式编译如下程序
main()
chara[4]='a','b';
char*b="abc";
printf("%d,%d",sizeof(
A.,sizeof(B.);
&n
C.4,3D.2,2
23.执行语句for(i=1;i++<4;);后变量i的值是______。
A.3B.4
C.5D.不定
24.下列关键字中,不属于C语言变量存储类别的是______。
A.registerB.auto
C.externD.public
25.有如下程序
main()
inty=3,x=3,z=1;
printf("%d%d\n",(++x,y++),z+2);
运行该程序的输出结果是______。
A.34B.42
C.43D.33
26.下面不属于软件设计原则的是______。
A.抽象B.模块化
C.自底向上D.信息隐蔽
27.有如下程序
main()
charch[2][5]="6937","8254",*p[2];
int i,j,s=0;
for(i=0;i<2;i++) p[i]=ch[i];
for(i=0;i<2;i++)
for(j=0;p[i][j]>,'\0';j+=2)
s=10*s+(p[i][j]-'0');
printf("%d\n",s);
该程序的输出结果是______。
A.69825B.63825
C.6385D.693825
28.在C语言中,函数中变量的隐含存储类别是______。
A.autoB.static
C.externD.无存储类别
29.算法一般都可以用______控制结构组合而成。
A.循环、分支、递归B.顺序、循环、嵌套
C.循环、递归、选择D.顺序、选择、循环
30.有如下程序
main()
intx=1,a=0,b=0;
switch(x)
case0:
b++;
case1:
a++;
case2:
a++;b++;
printf("a%d,b=%d\n",a,B);
该程序的输出结果是______。
A.a=2,b=1B.a=1,b=1
C.a=1,b=0D.a=2,b=2
31.有如下程序:
main()
inta[3][3]=1,2,3,4,5,6,i,j,s=0;
for(i=1;i<3;i++)
for(j=0;j<=i;j++)
s+=a[i][j];
printf("%d\n",s);
该程序的输出结果是______。
A.18B.19
C.20D.21
32.数据的存储结构是指______。
A.数据所占的存储空间量B.数据的逻辑结构在计算机中的表示
C.数据在计算机中的顺序存储方式D.存储在外存中的数据
33.已经定义ch为字符型变量,以下赋值表达式中错误的是______。
A.ch='\'B.ch=62+3
C.ch=NULLD.ch='\xaa'
34.运行以下程序后,如果从键盘上输入6514<回车>,则输出结果为______。
main()
intm,n;
printf("Enterm,n:
");
scanf("%d%d",&m,&n);
while(m!
=n)
while(m>n)m-=n;
while(n>m)n-=m;
printf("m=%d\n",m);
A.m=3B.m=2
C.m=1D.m=0
35.有如下程序
main()
int i,sum;
for(i=1;i<=3;sum++)sum+=i;
printf("%d\n",sum);
该程序的执行结果是______。
A.6B.3
C.死循环D.0
36.有如下程序
main()
floatx=2.0,y;
if(x<0.0)y=0.0;
elseif(x<10.0)y=1.0/x;
elsey=1.0;
printf("%f\n",y);
该程序输出结果是______。
A.0.000000B.0.250000
C.0.500000D.1.000000
37.下列函数定义中,会出现编译错误的是______。
A.max(intx,inty,int*z)
B.intmax(intx,y)
*z=x>y?
x:
y; intz;
z=x>y?
X:
y;
returnz;
C.max(intx,inty)
D.intmax(intx,inty)
intz; returnx>y?
x:
y;
z=x>y?
x:
y;
return(z);
38.有如下程序
intfunc(inta,intB)
return(a+B);
main()
intx=2,y=5,z=8,r;
r=func(func(x,y),z);
printf("%d\n",r);
该程序的输出结果是______。
A.12B.13
C.14D.15
39.有以下程序段:
main()
inta=5,*b,**c;
c=&b;b=&a;
程序在执行了c=&b;b=&a;语句后,表达式**c的值是______。
A.变量a的地址B.变量b中的地址
C.变量a中的值D.变量b的地址
40.有如下说明:
inta[10]=1,2,3,4,5,6,7,8,9,10,*p=a;
则数值为9的表达式是______。
A.*p+9B.*(p+8)
C.*p+=9D.p+8
41.在关系数据库中,用来表示实体之间联系的是______。
A.树结构B.网结构
C.线性表D.二维表
42.有以下函数
char *fun(char*p)
return p;
该函数的返回值是______。
A.无确切的值B.形参p中存放的地址值
C.一个临时存储单元的地址D.形参p自身的地址值
43.下列工具中为需求分析常用工具的是______。
A.PADB.PFD
C.N-SD.DFD
44.设有下列二叉树:
对此二叉树中序遍历的结果为______。
45.有如下程序:
long fib(int n)
if(n>2) return(fib(n-1)+fib(n-2));
else return
(2);
main()
printf("%ld\n",fib(3));
该程序的输出结果是______。
A.2B.4
C.6D.8
46.有如下程序
main()
intx=3;
do
printf("%d",x--);
while(!
x);
该程序的执行结果是______。
A.321B.3
C.不输出任何内容D.陷入死循环
47.若有以下定义:
int t[3][2];,能正确表示t数组元素地址的表达式是______。
A.&t[3][2]B.t[3]
C.t[1]D.*t[2]
48.下面程序运行后的输出结果是______。
structabc
inta,b,c;
main()
structabcs[2]=1,2,3,4,5,6;
intt=-s[0].a+s[1].b;
printf("%d\n",t);
A.5B.6
C.7D.8
49.有如下程序:
#define n 2
#define m N+1
#define NUM 2*m+1
main()
inti;
for(i=1;i<=NUM;i++)printf("%d\n",i);
该程序中的for循环执行的次数是______。
A.5B.6
C.7D.8
50.索引属于______。
A.模式B.内模式
C.外模式D.概念模式
二、填空题
请将每一个空的正确答案写在答题卡的【1】至【20】序号的横线上,答在试卷上不得分。
1.在运算过程中,能够使空表与非空表的运算统一的结构是 【1】 。
2.软件工程研究的内容主要包括:
【2】 技术和软件工程管理。
3.与结构化需求分析方法相对应的是 【3】 方法。
4.关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、 【4】 和自定义完整性。
5.数据模型按不同的应用层次分为三种类型,它们是 【5】 数据模型、逻辑数据模型和物理数据模型。
6.表示""整数x的绝对值大于5""时值为""真""的C语言表达式是 【6】 。
7.以下程序的输出结果是 【7】 。
main()
unsignedshorta=65536;intb;
printf("%d\n",b=A);
8.若有定义inta=10,b=9,c=8;,接着顺序执行下列语句,变量b中的值是 【8】 。
c=(a-=(b-5));
c=(a%11)+(b=3);
9.以下程序运行后的输出结果是 【9】 。
main()
intp=30;
printf("%d\n",(p/3>0?
p/10:
p%3));
10.函数pi的功能是根据以下近似公式求π值:
(π*π)/6=1+1/(2*2)+1/(3*3)+…+1(n*n)
现在请你在下面的函数中填空,完成求π的功能。
#include “math.h"
doubles=0.0; longi;
for(i=1;i<=n;i++)s=s+ 【10】 ;
return(sqrt(6*s));
11.函数pi的功能是根据以下公式近似求得的:
pi*pi/6=1+1/(2*2)+1/(3*3)+…+1/(n*n)
请在下面的函数中填空,完成求pi的功能。
#include<math.h>
doublepi(longn)
doubles=0.0,longi;
for(i=1;i<=n;i++)s=s+ 【11】 ;
return(sqrt(6*s));
12.若输入字符串:
abcde↓,则以下while循环体将执行 【12】 次。
while((ch=getchar())=='e')printf("*");
13.以下函数用来求出两整数之和,并通过形参将结果传回,请填空。
voidfunc(intx,inty, 【13】 z)
*z=x+y;
14.若有以下定义,则不移动指针p,且通过指针p引用值为98的数组元素的表达式是 【14】 。
intw[10]=23,54,10,33,47,98,72,80,61, *p=w;
15.设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部 【15】 。
要求形参名为b。
main()
doubles[10][22];
int n;
fun(s);
16.有以下程序:
intf(intn)
if(n==1)return1;
elsereturnf(n-1)+1;
main()
inti,j=0;
for(i=1;i<3;i++)j+t(i);
printf("%d\n",j);
程序运行后的输出结果是 【16】 。
17.以下程序的输出结果是 【17】 。
voidfun()
static int a=0;
a+=2; printf("%d",A);
main()
int cc;
for(cc=1;cc<4;cc++)fun();
printf("\n");
18.实现程序可将磁盘中的一个文件复制到另一个文件中,两个文件的文件名在可执行命令的命令行中(相当于copy命令),假定文件在当前目录下。
请补全程序。
#include<stdio.h>
voidmain(intargc,char*argv[])
FILE*f1,*f2;
if(argc< 【18】 )
printf("parametererror!
\n");exit(0);
f1=fopen(argv[1],"r");
f2=fopen(argv[2],"w");
while( 【19】 )fputc(fgetc(f1),f2);
fclose(f1);
fclose(f2);
`
19.以下程序的输出结果是 【20】 。
#define MAX(x,y) (x)>(y)?
(x):
(y)
main()
inta=5,b=2,c=3,d=3,t;
t=MAX(a+b,c+D)*10;
printf("%d\n",t);