计算机二级C语言试题库Word文档下载推荐.docx

上传人:b****5 文档编号:20834757 上传时间:2023-01-25 格式:DOCX 页数:45 大小:44.11KB
下载 相关 举报
计算机二级C语言试题库Word文档下载推荐.docx_第1页
第1页 / 共45页
计算机二级C语言试题库Word文档下载推荐.docx_第2页
第2页 / 共45页
计算机二级C语言试题库Word文档下载推荐.docx_第3页
第3页 / 共45页
计算机二级C语言试题库Word文档下载推荐.docx_第4页
第4页 / 共45页
计算机二级C语言试题库Word文档下载推荐.docx_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

计算机二级C语言试题库Word文档下载推荐.docx

《计算机二级C语言试题库Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《计算机二级C语言试题库Word文档下载推荐.docx(45页珍藏版)》请在冰豆网上搜索。

计算机二级C语言试题库Word文档下载推荐.docx

fun(inta,intb)

{if(a>

b)return(a);

elsereturn(b);

{intx=3,y=8,z=6,r;

r=fun(fun(x,y),2*z);

r);

A)3B)6C)8D)12

7有以下程序

int*f(int*x,int*y)

{if(*x<

*y)

returnx;

returny;

{inta=7,b=8,*p,*q,*r;

p=&

a;

q=&

b;

r=f(p,q);

%d,%d,%d\n"

*p,*q,*r);

A)7,8,8B)7,8,7C)8,7,7D)8,7,8

8以下能正确地定义整型变量a,b和c并为其赋初值5的语句是

A)inta=b=c=5;

B)inta,b,c=5;

C)a=5,b=5,c=5;

D)a=c=b=5;

9若二维数组a有m列,则在a[i][j]前的元素个数为

A)j*m+iB)i*m+jC)i*m+j-1D)i*m+j+1

10下面程序段是输出两个字符串中对应相等的字符。

请选择填空

charx[]=”programming”;

chary[]=”Fortran”;

inti=0;

while(x[i]!

=’\0’&

&

y[i]!

=’\0’)

if(x[i]==y[i])printf(“%c”,[]);

elsei++;

A)x[i++]B)y[++i]C)x[i]D)y[i]

11若使用一维数组名作函数实参,则以下正确的说法是

A)必须在主调函数中说明次数组的大小

B实参数组类型与形参数组类型可以不匹配

C在被调函数中,不需要考虑形参数组的大小

D实参数组名与形参数组名必须一致

12以下程序的正确运行结果是

#inclued

{intk=4,m=1,p;

p=func(k,m);

printf(“%d”,p);

printf(“%d\n”,p);

func(inta,intb)

{staticintm=0,i=2;

i+=m+1;

m=i+a+b;

return(m);

A)8,17B)8,16C)8,20D)8,8

13若有说明:

int*p,m=5,n;

以下正确的程序段是

A)p=&

n;

scanf(“%d”,&

p);

B)p=&

scanf(“%d”,*p);

C)scanf(“%d”,&

n);

*p=n;

D)p=&

*p=m;

14执行以下程序后,a和b的值为

{inta,b,k=4,m=6,*p1=&

k,*p2=&

m;

a=p1==&

b=(-*p1)/(*p2)+7;

printf(“a=%d\n”,a);

printf(“b=%d\n”,b);

A)-1,5B)1,6C)0,7D)4,10

15若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应是

A)”ab+”B)”wb+”C)”rb+”D”ab”

16根据定义和数据的输入方式,输入语句的正确形式为

已有定义:

floatf1,f2;

数据的输入方式:

4.52

3.5

A)scanf(“%f,%f”,&

f1,&

f2);

B)scanf(“%f%f”,&

C)scanf(“%3.2f%2.1f”,&

D)scanf(“%3.2f%2.1f”,&

17分析以下程序运行结果

#include

intfunc(intn){

if(n==1)

return1;

return(n*func(n-1));

voidmain(){

intx;

x=func(5);

printf(“%d\n”,x);

A)100B)5C)1D)120

18分析以下程序运行结果

inty=2,a=1;

while(y--!

=-1){

do{

a*=y;

a++;

}while(y--);

printf(“%d,%d\n”,a,y);

A)1,-2B)2,1C)1,0D)2,-1

19下面程序段的运行结果是

chara[7]=”abcdef”;

charb[4]=”ABC”;

strcpy(a,b);

printf(“%c”,a[5]);

A)空格B)\0C)eD)f

20下面是对s的初始化,其中不正确的是

A)chars[5]={“abc”};

B)chars[5]={‘a’,’b’,’c’};

C)chars[5]=””;

D)chars[5]=”abcdef”;

21执行语句for(i=1;

i++<

4;

);

后变量i的值是

A)3B)4C)5D)不定

22以下程序段

x=-1;

do

{x=x*x;

while(!

x);

A)是死循环B)循环执行二次

C)循环执行一次D)有语法错误

23若有以下定义和语句:

iniondata

charc;

floatf;

}a;

intn;

则以下语句正确的是

A)a=5;

B)a={2,’a’,1.2};

C)printf(“%d\n”,a);

D)n=a;

24下面程序的运行结果是

{

structcmplx{intx;

inty;

}cnum[2]={1,3,2,7};

printf(“%d\n”,cnum[0].y/cnum[0].x*cunm[1].x);

A)0B)1C)3D)6

25以下程序的运行结果是

{intk=4,a=3,b=2,c=1;

printf(“\n%d\n”,k}

A)4B)3C)2D)1

二填空

1若有以下定义,则计算表达式y+=y-=m*=以后y的值是_____

intm=5,y=2;

2若有定义:

intb=7;

floata=2.5,c=4.7;

:

则下面表达式的值为_____

a+(int)(b/3*(int)(a+c)/2)%4

3有inta=3,b=4,c=5;

则以下表达式的值为_____

!

(a+b)+c-1&

b+c/2

4条件”2或x<

-10”的c语言表达式是_____

5以下程序的功能是判断输入的年份是否是闰年.请在[]内填入正确内容

{inty,f;

y);

if(y%400==0)f=1;

elseif([5])f=1;

else[6];

if(f)printf(“%dis”,y);

elseprintf(“%disnot”,y);

printf(“aleapyear\n”);

6下面程序的功能是计算100至1000之间有多少个数其各位数字之和是5。

请填空

main(0

{inti,s,k,count=0;

for(i=100;

=1000;

{s=0;

k=i;

while([7]){s=s+k%10;

k=[8];

if(s!

=5)[9];

elsecount++;

printf(“%d”,count);

7下面程序将二维数组a的行和列元素呼唤后存到另一个二维数组b中。

{inta[2][3]={{1,2,3},{4,5,6}};

intb[3][2],I,j;

printf(“arraya:

\n”);

=1;

{for(j=0;

[10];

j++)

{printf(“%5d”,a[i][j]);

[11];

printf(“\n”);

printf(“arrayb:

[12];

j<

printf(“%5d”,b[i][j]);

8以下search函数的功能是利用顺序查找法从数组a的10个元素中对关键字m进行查找。

顺序查找法的思路是:

从第一个元素开始,从前向后依次与关键字你叫,直到找到此元素或查找到数组尾部时结束。

若找到,返回此元素的下标;

若仍未找到,则返回值-1。

intsearch(inta[10],intm)

{intI;

=9;

i++)if([1])return(i);

return(-1);

{inta[13],m,i,no;

……

no=search([14]);

if([15])printf(“\nOKFOUND!

%d”,no+1);

elseprintf(“\nSorryNotFound!

”);

9若有定义:

inta[]={2,4,6,8,10,12},*p=a;

则*(p+1)的值是[16],*(a+5)的值是[17]

10将任意输入的一个偶数n分解为两个素数之和,并给出各种分解方法

intn,i;

intcheck(intx);

}while(n%2!

=0);

for(i=3;

=n/2;

if(check(i)&

[18])

printf(“%d=%d+%d\n”,n,i,n-i);

intcheck(intx)

inti;

for(i=2;

iif([19])return(0);

return

(1);

11函数调用语句:

fgets(buf,n,fp);

从fp指向的文件中读入[20]个字符放到buf字符数组中。

函数值为[21]

12设数组a包括10个整型元素。

下面程序的功能是求出a中各相邻元素的和,并将这些和存在数组b中,按每行3个元素的形式输出。

{inta[10],b[10],i;

10;

a[i]);

for([22];

[23]

for(i=1;

{printf(“%3d”,b[i]);

if([24]==0)printf(“\n”);

13如果以下程序输入的是wearestudents,则输出的结果是[25]

#include“stdio.h”

voidmain()

{chars[81],*p;

printf(“Inputasentence:

gets(s);

for(p=s;

*p;

p++)

if(*p==32)//空格键的ASCII值是32

{if(*(p+1)!

=32)printf(“\n”);

elseputchar(*p);

05年9月等级考试二级C语言考前密卷2

选择题

(1)~(10)每小题2分,(11)-(50)每小题1分,共60分)

  下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

  

(1)算法分析的目的是________。

  A)找出数据结构的合理性   B)找出算法中输入和输出之间的关系

  C)分析算法的易懂性和可靠性 D)分析算法的效率以求改进

  答案:

D

  评析:

算法分析是指对一个算法的运行时间和占用空间做定量的分析,一般计算出相应的数掌级,常用时间复杂度和空间复杂度表示。

分析算法的目的就是要降低算法的时间复杂度和空间复杂度,提高算法的执行效率。

  

(2)n个顶点的强连通图的边数至少有________。

  A)n-1  B)n(n-1)  C)n   D)n+l

C

在有向图中,若任意两个顶点都连通,则称该图是强连通图,这样的有向图的形状是环状,因而至少应有n条边。

  (3)已知数据表A中每个元素距其最终位置不远,为节省时间,应采用的算法是________。

  A)堆排序  B)直接插入排序 C)快速排序 D)直接选择排序

B

当数据表A中每个元素距其最终位置不远,说明数据表A按关键字值基本有序,在待排序序列基本有序的情况.下,采用插入排序所用时间最少,故答案为选项B。

  (4)用链表表示线性表的优点是________。

  A)便于插入和删除操作     B)数据元素的物理顺序与逻辑顺序相同

  C)花费的存储空间较顺序存储少 D)便于随机存取

A

链式存储结构克服了顺序存储结构的缺点:

它的结点空间可以动态申请和释放;

它的数据元素的逻辑次序靠结点的指针来指示,不需要移动数据元素。

故链式存储结构下的线性表便于插入和删除操作。

  (5)下列不属于结构化分析的常用工具的是________。

  A)数据流图  B)数据字典  C)判定树  D)PAD图

结构化分析的常用工具有数据流图、数据字典、判定树和判定表。

而PAD图是常见的过程设计工具中的图形设计。

  (6)软件开发的结构化生命周期方法将软件生命周期划分成________。

  A)定义、开发、运行维护

  B)设计阶段、编程阶段、测试阶段

  C)总体设计、详细设计、编程调试

  D)需求分析、功能定义、系统设计

通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。

它可以分为软件定义、软件开发及软件运行维护三个阶段。

  (7)在软件工程中,白盒测试法可用于测试程序的内部结构。

此方法将程序看做是________。

  A)循环的集合 B)地址的集合 C)路径的集合 D)目标的集合

软件的白盒测试方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。

  (8)在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有________。

  A)数据无冗余    B)数据可共享

  C)专门的数据管理软件  D)特定的数据模型

在文件系统中,相互独立的记录其内部结构的最简单形式是等长同格式记录的集合,易造成存储空间大量浪费,不方便使用。

而在数据库系统中,数据是结构化的,这种结构化要求在描述数据时不仅描速数据本身,还要描述数据间的关系,这正是通过采用特定的数据模型来实现的。

  (9)分布式数据库系统不具有的特点是________。

  A)分布式          B)数据冗余

  C)数据分布性和逻辑整体性  D)位置透明性和复制透明性

分布式数据库系统具有数据分布性、逻辑整体性、位置透明性和复制透明性的特点,其数据也是分布的;

但分布式数据库系统中数据经常重复存储,数据也并非必须重复存储,主要视数据的分配模式而定。

若分配模式是一对多,即一个片段分配到多个场地存放,则是冗余的数据库,否则是非冗余的数据库。

  (10)下列说法中,不属于数据模型所描述的内容的是________。

  A)数据结构 B)数据操作  C)数据查询  D)数据约束

数据模型所描述的内容有3个部分,它们是数据结构、数据操作和数据约束。

数据操作主要是描述在相应数据结构上的操作类型与操作方式;

数据模型中的数据约束主要描述数据结构内数据间的语法、语义联系,它们之间的制约与依存关系,以及数据动态变化的规则,以保证数据的正确、有效与胡容。

  (11)在结构化程序设计中,限制使用goto语句的原因是________。

  A)提高程序的执行效率

  B)提高程序的清晰性和可靠性

  C)便于程序的合成

  D)该语句对任何结构的程序都不适用

在c语言中,限制使用goto语句,其目的是为了提高程序的清晰性与可靠性,一般来说,除了从多重循环中跳出,一般不使用goto语句。

  (12)以下选项中合法的实型常数是________。

  A)5E2.0  B)E-3  C).2E0  D)1.3E

以指数形式表示实数时,字母e(或E)之前必须有数字,且e后面指数必须为整数。

  (13)下列叙述中,正确的是________。

  A)C语言中既有逻辑类型也有集合类型

  B)c语言中没有逻辑类型但有集合类型

  B)C语言中有逻辑类型但没有集合类型

  B)C语言中没有逻辑类型也没有集合类型

在c语言中只提供了整型、浮点型、字符型这几种基本类型,c语言没有提供逻辑类型,在c中一般用整型来表示逻辑类型。

在自定义类型中,c提供了struct,enum及union类型,但没有提供集合类型,在pascal中提供了集合类型set。

  (14)已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量’\10l’是________。

  A)字符A  B)字符a  C)字符e  D)非法的常量

八进制101转换为十进制即为65,而字母A的ASCII码是65,所以用八进制表示的字符常量’\101’是A。

  (15)设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是________。

  A)6.500000 B)6  C)5.500000  D)6.000000

各类数值型数据在进行混合运算时,不同类型的数据要先转换成同一类型,然后进行运算。

转换的规则为:

总是转换为精度更大的数据类型,字符数据转换为整数,short型转为int型,float型数据在运算时转换成双精度型,以提高运算精度。

  (16)以下四个选项中不能看作一条语句的是________。

  A){;

}  B)a=0,b:

0,c=0;

 C)if(a>

0);

  D)if(b==0)m=l;

n=2;

选项A为空语句,选项B是一个由逗号运算符表达式形成的语句,选项c为一个条件语句,选项D有两个分号,是由两个语句构成,不能看成一条语句。

  (17)已知i、j、k为int型变量,若从键盘输入:

1,2,3↙,使i的值为l、j的值为2、k的值为3,以下选项中正确的输入语句是________。

  A)scanf("

%2d%2d%2dtt,&

i,&j,&

k);

  B)scanf("

%d %d %d"

,&

i,&j,&k);

  C)scanf("

%d,%d,%dfI,&i,&j,&k);

  D)scanf("

i=%d,j=%d,k=%d-t,&

i,&

j,&

如果在"

格式控制"

字符串中除了格式说明以外还有其它字符,则在输入数据时应输入与这些字符相同的字符。

  (18)关于goto语句的使用,下面正确的是________。

  A)goto2;

   B)gotog;

  C)gotog:

   D)goto2;

  2:

exit(0);

  g:

exit(O);

  2exit(0);

在c中,goto语句后面的标号的命名规则与c语言中标识符的命名规则相同,在goto语句后面的标号后不要加"

"

号,在某一行上添加标号时,在标号的后面要添加"

号。

  (19)若有以下程序:

  main()

  {intk=2,i=2,m;

  m=(k+=I*=k);

  printf("

%d,%d、n"

,m,i);

  }

  执行后的输出结果是__________。

  A)8,6  B)8,3  C)6,4  D)7,4

在赋值符"

="

之前加上其它运算符,可以构成复合的运算符。

此运算为右结合性,即从右往左计算。

I*=k即i=i*k=2*2=4,k=k+i=2+4=6,然后将k的值赋给m。

  (20)以下函数的功能是:

通过键盘输入数据,为数组中的所有元素赋值。

  #defineN10

  voidarrin(intx[N])

  { inti=0;

  while(i  }

  在下划线处应填入的是_________。

  A)x+i  B)&

x[i+l]  C)x+(i++)  D)&

x[++I]

在c中,对于一维数组而言,数组变量表示数组中首元素的的地址。

当用scanf函数向数组x的第i个元素中输入整型数据时,只要执行scanf("

%d"

x+i):

由于要循环输入数组中和各个元素,必须要使其地址值不断自增。

故本题答案为c。

  (21)已有定义:

intx=3,y=4,z=5;

,则表达式!

(x+y)+z-l&&

y+z/2的值是_________。

  A)6  B)0  C)2  D)1

在本题中,运算符的优先级分别为:

>

/>

+,->

即:

(3+4)+5-1&

4+5/2=0+5-1&

4+2=4&

6=l。

  (22)以下选项中,与k=11++完全等价的表达式是__________。

  A)k=n,n=n+1  B)n=n+1,l(=n  C)l(=什n  D)k+--n+1

n++是自增运算,是先使用,然后再使n加1,

  (28)已定义以下函数:

  fun(char*p2,char*p1)

  {while((*p2=*p1)!

=’\0’){pl++;

p2++;

}}

  函数的功能是__________。

  A)将p1所指字符串复制到p2所指内存空间

  B)将pl所指字符串的地址赋给指针p2

  C)对p1和p2两个指针所指字符串进行比较

  D)检查p1和p2两个指针所指字符串中是否有’\O’

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1