二级C语言笔试模拟19.docx
《二级C语言笔试模拟19.docx》由会员分享,可在线阅读,更多相关《二级C语言笔试模拟19.docx(25页珍藏版)》请在冰豆网上搜索。
![二级C语言笔试模拟19.docx](https://file1.bdocx.com/fileroot1/2023-2/2/42dadee5-f187-4ea0-92c7-cc5087c87021/42dadee5-f187-4ea0-92c7-cc5087c870211.gif)
二级C语言笔试模拟19
二级C语言笔试模拟19
一、选择题
1、算法的时间复杂度是指( )。
A)算法的长度t
B)执行算法所需要的时间
C)算法中的指令条数
D)算法执行过程中所需要的基本运算次数
2、下列描述中正确的是______。
A)软件工程只是解决软件项目的管理问题
B)软件工程主要解决软件新产品的生产率问题
C)软件工程的主要思想是强调在软件开发过程中需要应用工程化原则
D)软件工程只是解决软件开发中的技术问题
3、软件开发的结构化生命周期方法将软件生命周期划分成
A)定义、开发、运行维护 B)设计阶段、编程阶段、测试阶段
C)总体设计、详细设计、编程调试 D)需求分析、功能定义、系统设计
4、下列叙述中,不属于软件需求规格说明书的作用的是( )。
A)便于用户,开发人员进行理解和交流
B)反映出用户问题的结构,可以作为软件开发工作的基础和依据
C)作为确认测试和验收的依据
D)便于开发人员进行需求分析
5、下列叙述中正确的是( )。
A)软件交付使用后还需要进行维护 B)软件一旦交付使用就不需要再进行维护
C)软件交付使用后其生命周期就结束 D)软件维护是指修复程序中被破坏的指令
6、下列所述中,是软件调试技术的是( )。
A)错误推断 B)集成测试 C)回溯法 D)边界值分析
7、将E-R图转换到关系模式时,实体与实体间的联系可以表示成( )
A)属性 B)关系 C)键 D)域
8、数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是______。
A)DB包含DBS和DBMS
B)DBMS包含DB和DBS
C)DBS包含DB和DBMS
D)没有任何关系
9、有三个关系R、S和T如下:
由关系R和S通过运算得到关系T,则所使用的运算为______。
(A)并
(B)自然连接
(C)笛卡尔积
(D)交
10、下列叙述中错误的是______。
(A)一个C语言程序只能实现一种算法
(B)C程序可以由多个程序文件组成
(C)C程序可以由一个或多个函数组成
(D)一个C函数可以单独作为一个C程序文件存在
11、若变量已正确定义并赋值,则以下符合C语言语法的表达式是( )。
A)a=a+7; B)a=7+b+c,a++
C)int(12.3%4) D)a=a+7=c+b
12、下列程序的输出结果是( )。
main()
{ inta=1,b=2;
printf("%d,%d\n",--a,++b);
}
A)1,2 B)1,3 C)0,2 D)0,3
13、现有格式化输入语句,scanf("x=%d,sumy=%d,linez=%dL",&x,&y,&z);,已知在输入数据后,x,y,z的值分别是12,34,45,则下列选项中是正确的输入格式的是
A)12,34,45<Enter>
B)x=12,y=34,z=45<Enter>
C)x=12C,sumy=34,z=45<Enter>
D)x=12,sumy=34,line2=45<Enter>
[注]:
“”表示空格,<Enter>表示回车
14、下列叙述中错误的是
A)在C程序中,逗号运算符的优先级最低
B)在C程序中,APH和aph是两个不同的变量
C)若a和b类型相同,执行赋值表达式a=b后b中的值将放入a中,而b中的值不变
D)从键盘输入数据时,对于整型变量只能输入整型数值,实型变量只能输入实型数值
15、下列程序的输出结果是
main()
{doubled=3.2;intx,y;
x=1.2;y=(x+3.8)/5.0;
printf("%d\n",d*y);}
A)3 B)3.2 C)0 D)3.07
16、在VisualFoxPro中,如果希望跳出SCAN…ENDSCAN循环语句、执行ENDSCAN后面的语句,应使用______。
A)LOOP语句 B)EXIT语句 C)BREAK语句D)RETURN语句
17、下列程序的输出结果是( )。
#include<stdio.h>
voidmain()
{ inta=0,b=1,c=2;
if(++a>0‖++b>0)
++C;
printf("%d,%d,%d",a,b,C);
}
A)0,1,2 B)1,2,3 C)1,1,3 D)1,2,2
18、下列能正确定义且赋初值的语句是( )。
A)intn1=n2=10; B)charc=32;
C)floatf=f+1.1; D)doublex=12.3E2.5;
19、若变量已正确定义,有以下程序段:
inta=3,b=5,c=7;
if(a>b) a=b;c=a;
if(c!
=a) c=b;
printf("%d,%d,%d\n",a,b,c);
其输出结果是______。
A)程序段有语法错 B)3,5,3 C)3,5,5 D)3,5,7
20、对以下程序段的描述中,正确的是
x=-1:
do
{x=x*x;}
while(!
x);
A)是死循环 B)循环执行两次 C)循环执行一次 D)有语法错误
21、有以下程序
#include<stdio.h>
main()
{
intx=8;
for(;x>0;X--)
{
if(x%3){printf("%d,",x--);continue;}
printf("%d,",--x);
}
}
程序的运行结果是( )。
A.7,4,2 B.8,7,5,2 C.9,7,6,4 D.8,5,4,2
22、下列程序的输出结果是( )。
#include<stdio.h>
main()
{ inta=0,i;
for(i=1;i<5;i++)
{ switch(i)
{ case0:
case3:
a+=1;
case1:
case2:
a+=2;
default:
a+=3;
}
printf("%d",A);
}
A)19 B)18
C)6 D)8
23、有以下结构体说明和变量定义,相应的链表如图所示:
struetnode
{ intdata;
struetnode*next;
*p,*q,*r;现将q所指结点多链表中删除,同时要保持链表的连续,以下不能完成指定操作的语句是( )。
A)p->next=q->next; B)p->next=p->next->next;
C)p->next=r; D)p=q->next
24、有以下程序
#include <stdio.h>
main()
{ int a[]={1,2,3,4},y,*p=&a[3];
--p; y=*p;printf("y=%d\n",y);
}
程序的运行结果是
A)y=0 B)y=1 C)y=2 D)y=3
25、下列程序执行后的输出结果是( )。
#include<stdio.h>
voidfunc1(inti);
voidfunc2(inti);
charst[]="hello,friend!
";
voidfuncl(inti)
{ printf("%c",st[i]);
if(i<3){i+=2;func2(i);}
}
voidfunc2(inti)
{ printf("%c",st[i]);
if(i<3){i+=2;funcl(i);}
}
main()
{ inti=0;
funcl(i);printf("\n");
}
A)hello B)hel C)hlo D)hlm
26、有以下函数:
fun(char*a,char*b)
{ while((*a!
='\0')&&(*b!
='\0')&&(*a==*b))
{ a++;b++;}
return(*a-*b);
}
该函数的功能是______。
A)计算a和b所指字符串的长度之差
B)将b所指字符串连接到a所指字符串中
C)将b所指字符串连接到a所指字符串后面
D)比较a和b所指字符串的大小
27、若有以下程序段:
structst
{intn;
int*m;};
inta=2,b=3,c=5;
structsts[3]=({101,&a},{102,&c},{103,&b}};
main()
{structst*p;
p=s;
…}
则以下表达式中值为5的是( )。
A)(p++)->m B)*(p++)->m C)(*p).m D)*(++p)->m
28、有以下程序
#include<stdio.h>
main()
{FILE*fp;inti,a[6]={1,2,3,4,5,6};
fp=fopen("d3.dat","w+b");
fwrite(a,sizeof(int),6,fp);
fseek(fp,sizeof(int)*3,SEEK_SET);/*该语句使读文件的位置指针从文件头向后移动3个int型数据*/
fread(a,sizeof(int),3,fp);fclose(fp);
for(i=0;i<6;i++)printf("%d,",a[i]);
}
程序运行后的输出结果是
A)4,5,6,4,5,6, B)1,2,3,4,5,6, C)4,5,6,1,2,3, D)6,5,4,3,2,1,
29、若有定义语句:
char*s1="OK",*s2="ok";,以下选项中,能够输出"OK"的语句是( )。
A)if(strcmp(s1,s2)==0)puts(s1); B)if(strcmp(s1,s2)!
=0)puts(s2);
C)if(strcmp(s1,s2)==1)puts(s1,); D)if(strcmp(s1,s2)!
=0)puts(s1);
30、下列程序的运行结果是( )。
#include<stdio.h>
#include<string.h>
main()
{ char*s1="abDuj";
char*s2="ABdUG";
intt;
t=strcmp(s1,s2);
printf("%d",t);
}
A)正数 B)负数 C)零 D)不确定的值
31、对下述程序的判断中,正确的是( )。
#include<stdio.h>
voidmain()
{char*P,s[256];
p=s;
while(strcmp(s,"theend"))
{printf("Inputthestring:
");
gets(s);
while(*P)
putchar(*p++);}}
A)此程序循环接收字符串并输出,直到接收到字符串“theend”为止
B)此程序循环接收字符串,接收到字符串“theend”则输出,否则程序终止
C)此程序循环接收字符串并输出,直到接收字符串“theend”为止,但因为代码有错误,程序不能正常工作
D)此程序循环接收字符串并将其连接在一起,直到接收字符串“theend”为止,输出连接在一起的字符串
32、假定int类型变量占用两个字节,若有定义:
intx[10]={0,2,4};则数组x在内存中所占字节数是( )。
A)3 B)6 C)10 D)20
33、有以下程序
main()
{ charstr[][10]=("China","Beijing"),*p=str;
printf("%s\n",p+10);
}
程序运行后的输出结果是______。
A)China B)Beijing C)ng D)ing
34、以下叙述中正确的是______。
A)全局变量的作用域一定比局部变量的作用域范围大
B)静态(statiC)类别变量的生存期贯穿于整个程序的运行期间
C)函数的形参都属于全局变量
D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值
35、C语言允许函数类型缺省定义,此时函数值隐含的类型是( )。
A)float B)int C)long D)double
36、有以下程序:
#include<stdio.h>
inta=1;
intfun(intc)
{staticinta=2;
c=c+1;
return(a++)+c;
}
main()
{ inti,k=0;
for(i=0;i<2;i++){inta=3;k+=f(a);}
k+=a;
printf("%d\n",k);
}
程序的运行结果是______。
A)14 B)15 C) 16 D)17
37、表达式~0x11的值是( )。
A)0xFFEE B)0x71 C)0x0071 D)0xFFE1
38、下面的程序段运行后,输出结果是
inti,j,x=0;
staticinta[8][8];
for(i=0;<3;++)
for(j=0;<3;j++)
a[i][j]=2*i+j;
for(i=0;<8;++)
x+=a[i][j];
printf("%d",x);
A)9 B)不确定值 C)0 D)18
39、有以下程序:
#include<stdio.h>
main()
{FILE*pf;
char*s1="China",*s2="Beijing":
pf=fopen("abc.dat","wb+");
fwrite(s2,7,1,pf);
rewind(pf); /*文件位置指针回到文件开头*/
fwrite(s1,5,1,pf);
fclose(pf);
}
以上程序执行后abc.dat文件的内容是( )。
A)China B)Chinang C)ChinaBeijingD)BeijingChina
40、有下列程序:
#include<stdio.h>
main()
{FILE*pf;
char*s1="China",*s2="Beijing";
pf=fopen("abc.dat","wb+");
fwrite(s2,7,1,pf);
rewind(pf);/*文件位置指针回到文件开头*/
fwrite(s1,5,1,pf);
fclose(pf);
}
以上程序执行后abc.dat文件的内容是( )。
A.China B.Chinang C.ChinaBeijing D.BeijingChina
二、填空题
41、算法的复杂度主要包括______复杂度和空间复杂度。
42、42.在树形结构中,树根结点没有 。
43、软件测试分为白箱(盒)测试和黑箱(盒)测试。
等价类划分法属于______测试。
44、44.深度为5的满二叉树有 个叶子结点。
45、按照逻辑结构分类,结构可以分为线性结构和非线性结构,栈属于______。
46、46.请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。
(double,double);
main()
{ doublex,y;
scanf("%lf%lf",&x,&y);
printf("%1f\n",max(x,y));
}
doublemax(doublea,doubleb)
{ return(a>b?
a:
b); }
47、在数据库系统中,实现各种数据管理功能的核心软件称为______。
48、栈的3种基本运算是:
入栈、退栈和______。
49、以下程序运行后的输出结果是______。
main( )
{ inta=2,b=3,c=4;
a*=16+(b++)-(++c);
printf("%d",a);
}
50、表达式(int)((double)(5/2)+2.5)的值是______。
51、程序时输入1234567,则输出结果是______。
#include
main()
{ inta=1,b;
scanf("%2d%2d",&a,&b);
printf("%d %d\n",a,b);
}
52、表达式1/2*(int)3.7/(int)(2.4*(1.5+2.5))值的数据类型为______。
53、53.将以下程序段写成三目运算表达式:
。
if(a>b) max=a;
elsemax=b;
54、54.函数delete(s,i,n)的作用是从字符串s中删除从第i个字符开始的n个字符,请填空。
voiddelete(chars[],inti,intn)
{intj,k,length=0;
while(s[length])
;
-i;
j=i;
}
If( )
{ k=i+n;
if(i+n<=length)
while(k<length)
s[j++]=s[k++];
s[j]='\0';}
55、下列程序运行后的输出结果是______。
#include<stdio.h>
main()
{ chars[20];
scanf("%S",S);
printf("%s",s);
}
运行程序,输入HOWAREYOU。
答案:
一、选择题
1、D
[解析]算法的时间复杂度,是指执行算法所需要的工作量,可以用算法在执行过程中所需基本运算的执行次数来度量算法的工作量。
2、C
[解析]软件工程是解决软件项目的管理、软件开发过程中的技术、软件产品的生产率等问题,它的主要思想是强调在软件开发过程中需要应用工程化原则。
3、A
[解析]通常,将软件产品从提出、实现、使用维护到停止使用的过程称为软件生命周期。
它可以分为软件定义、软件开发及软件运行维护3个阶段。
4、D
[解析]软件需求规格说明书有以下几个方面的作用:
①便于用户、开发人员进行理解和交流。
②反映出用户问题的结构,可以作为软件开发工作的基础和依据。
③作为确认测试和验收的依据。
5、A
[解析]软件的运行和维护是指将已交付的软件投入运行,并在运行使用中不断地维护,根据新提出的需求进行必要而且可能的扩充和删改。
而软件生命周期是指软件产品从提出、实现、使用维护到停止使用的整个过程。
6、C
[解析]软件调试技术包括强行排错法、回溯法和原因排除法。
边界值分析、错误推断都是黑盒测试的方法。
7、B
[解析]将E-R图转换成指定RDBMS中的关系模式是数据库逻辑设计的主要工作。
从E-R图到关系模式的转换是比较直接的,实体和联系都可以表示成关系。
8、C
[解析]数据库系统(DBS)是由数据库(DB)、数据库管理系统(DBMS)、数据库管理员(人员)、硬件平台(硬件)、软件平台(软件)五个部分构成的运行实体。
9、D 10、A
11、B
[解析]选项A)是一个C语句,不是表达式;选项B)是利用一个逗号表达式给a赋值;选项C)中的“%”求余运算符要求两个运算对象都必须是整型;选项D)中,不能用表达式给表达式赋值,但是变量可以给自身赋值,例如:
a=a+1。
12、D
[解析]本题主要考查自加(++)、自减(--)运算符的使用。
“++i,--i”在使用i之前,先使i的值加1或者减1,然后再使用i此时的值参与运算;“i++,i--”是在使用i参与表达式运算之后,再使i的值加1或者减1。
本题中--a和++b是先执行a减1和b加1操作,再输出表达式的值。
13、D
[解析]若在scanf的格式化控制串中插入了其他字符,则在输入时要求按一一对应的位置原样输入这些字符。
格式化输入函数必须严格按照双引号里面的格式进行输入。
在格式化输出函数中,格式控制串中除了合法的格式说明外,可以包含任意的合法字符。