2010年4月C语言国家试题简介

本文讲的是2010年4月C语言国考题,以及对应的知识点。希望对你有帮助,也别忘了收藏这个网站。

这篇文章的列表: 1、全国计算机等级考试二级C语言历年试题及答案 2、计算机二级考试(江西考区)C语言及答案。 3、急!!历年全国计算机二级C语言笔试真题解答。 全国计算机等级考试二级C语言考试历年试题及答案 2010年9月全国计算机等级考试二级C语言笔试试题及答案

一、选择题(第(1)-(10)题每题2分,第(11)-(50)题每题1分,共60分)。

(1)下列选项不属于软件生命周期开发阶段的任务。

a)详细设计b)概要设计c)软件维护d)软件测试

(2)树是节点的集合,它的根节点数是

a)只有1个B)1个或多于1个C)0个或1个D)至少2个。

(3)在面向对象方法中,信息隐藏依赖于

a)对象的继承b)对象的多态性c)对象的封装d)对象的分类

(4)程序设计语言的基本组件是数据组件、操作组件、控制组件和。

a)句子成分b)可变成分c)宾语成分d)传递成分

(5)最坏情况下冒泡排序的比较次数为

a)n/2 B)nlog 2n C)n(n-1)/2d)n(n-1)/2

(6)在下列陈述中,不属于软件需求说明书的功能是

a)作为确认试验和验收的依据。

b)反映用户问题的结构,可以作为软件开发的基础。

c)便于用户和开发者理解和交流。

d)方便开发者分析需求。

(7)下列说法是错误的。

A)一个C语言程序只能实现一个算法B)一个C程序可以由多个程序文件组成。

C)C程序可以由一个或多个函数组成。d)一个函数可以作为一个C程序文件单独存在。

(8)下列不属于软件工程的三个要素是

a)方法b)过程c)工具d)环境

(9)下列说法是正确的

a)数据库系统是独立的系统,不需要操作系统的支持。

b)数据库技术的根本目标是解决数据共享问题。

c)数据库管理系统是数据库系统。

d)以上三种说法都不正确。

(10)下列说法是正确的。

a)每个C程序文件中都必须有一个main()函数。

b)不能在C程序的函数中定义另一个函数。

C)C程序可以由一个或多个函数组成。

main()函数在C程序中的位置是固定的。

(11)当E-R图转换成关系模式时,实体和连接都可以表示为

a)属性b)关系c)关键字d)字段

(12)下列定义变量的说法不正确

a)double int _;b)int _ int;c)为D)浮动USS充电

(13)下列说法是正确的

A)C语言编译不检查语法B)C语言有两种子程序:过程和函数。

C)C语言中的函数可以嵌套和定义。d)C语言中的函数可以嵌套调用。

(14)在下列选项中,一组合法的C语言数值常量是

A) 0x8A B)12 C).177 D) 028

(15)下列说法是正确的

a)C程序的基本单位是函数。

b)可以在一个函数中定义另一个函数。

C)main()函数必须放在其他函数之前。

d)所有被调用的函数必须在调用前定义。

(16)如果语句定义为:int a,b,c,* p = c;之后,再执行以下选项中的语句,可以正确执行的语句有

A)scanf("%d ",p);B)scanf("%d%d%d ",a,b,c);

C)scanf("%d ",p);D) scanf("%d ",a,b,c);

(17)有以下程序

主()

{int x,y,z;

x = y = 1;

z=x,y,y;

printf("%d,%d,%d\n ",x,y,z);

}

程序运行后的输出结果是

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

(18)如果定义:int a=25,b=14,c = 19以下三元运算符(?:)语句执行后A = 25b-= 2c?printf("***a=%d,b=%d,c=%d\n ",a,b,c):printf("###a=%d,b=%d,c=%d\n ",a,b,c);程序输出的结果是

A)***a=25,b=13,c=19 B)***a=26,b=14,c=19

C)### a=25,b=13,c=19 D)### a=26,b=14,c=19

(19)下面程序段的输出是

int a = 1234

浮动b = 123.456

双c = 12345.54321

printf("-,%2.1f,%2.1f ",a,b,c);

a)无输出b) 12,123.5,12345.5c) 1234,123.5,12345.5d) 1234,123.4,1234.5。

(20)有以下程序

主()

{int a=0,b = 0;

a = 10/*将值赋给

b = 20给b赋值*/

printf("a b=%d\n ",a b);/*输出计算结果*/

}

程序运行后的输出结果是

A)30 B)a b=30 C)a b=0 D)误差。

(21)如果在运行以下程序时从键盘输入描述符,则以下程序的运行结果是

#包括

主()

{ char c;

int v0=1,v1=0,v2 = 0;

do{ switch(c=getchar())

{事例‘A’:事例‘A’:

格‘E’:格‘E’:

情况‘I’:情况‘I’:

格‘O’:格‘O’:

case′U′:case′U′:v1 = 1;

默认:v 0 = 1;v2 = 1;

}

} while(c!= '\ n ');

printf("v0=%d,v1=%d,v2=%d\n ",v0,v1,v2);

}

A)v0=11,v1=4,v2=11 B)v0=8,v1=4,v2=8

C)v0=7,v1=4,v2=7 D)v0=13,v1=4,v2=12

(22)有以下程序

#包括

主()

{ int y = 9;

for(y0;y -)

if(y%3= =0) printf("%d ",-y);

}

程序的运行结果是

A)732 B)433 C)852 D)874

(23)提供了以下程序段

int x=0,s = 0;

而(!x!= 0)s = x;

printf("%d ",s);

规则

a)输出0 b)输出1 b)输出1 b)输出0 b)输出1 b)输出1 B)输出0 b)输出0 b)输出0 b)输出0 b)输出0 b)输出0 b)输出0 b)输出0 b)输出0 b)输出0 b)输出0 b)输出0 b)输出0 b)输出0 b)输出0 B)输出0 B)输出0 B)输出0 B)输出0 B)输出0 B)输出0 B)输出1

c)程序段中的控制表达式非法d)程序段被无限执行。

(24)有以下程序

fun(int x,int y){ return(x y);}

主()

{int a=1,b=2,c=3,sum

sum=fun((a,b b,a b),c);

printf("%d\n ",sum);

}

执行后的输出是

A)5 B)7 C)8 D)3

(25)执行以下程序段后,变量k中的值为

int k=3,s[2];

s[0]= k;k = s[1]* 10;

a)不定值B)35 C)31 D)20

(26)下列说法中错误的是

a)改变函数的形参值不会改变相应的实参值。

b)函数可以返回地址值。

c)你可以给指针变量赋值一个整数作为地址值。

d)当文件stdio.h包含在程序的开头时,可以将NULL赋给指针变量。

(27)下列程序段的描述是正确的。

x =-1;

{ x = x * x} while(!x);

a)这是一个无限循环b)它执行了两次c)它执行了一次d)有语法错误。

(28)有以下程序

fun(int x,int y)

{static int m=0,I = 2;

I = m1;m = I x y;返回m;

}

主()

{int j=1,m=I,k;

k=fun(j,m);printf("%d ",k);

k=fun(j,m);printf("%d\n ",k)

}

执行后的输出是

a)5.5 B)5.11 C)11.11D)11.5

(29)有以下程序

乐趣(int x)

{ int p;

if(x==0║x= =1)返回(3);

p = x-fun(x = 2);

retum p;

}main()

{ prinf("%d\n ",fun(7));}

执行后的输出是

A)7 B)3 C)3 D)0

(30)在16位编译系统上,有int a urgent的定义!!历年全国计算机二级C语言笔试真题解答。 2010年9月全国计算机二级笔试C语言试题:文字版。

一、选择题(每小题2分,共70分)

在下面的四个选项a),b),c)和d)中,只有一个选项是正确的。请在答题卡相应位置填写正确选项,答案不在试卷上计分。

(1)下列说法是正确的。

a)线性表的链式存储结构和顺序存储结构需要相同的存储空间。

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)划分层次型、网状型和关系型数据库的原则如下

a)记录长度

b)文件大小

c)连接的复杂性

d)数据间的联系信息。

(8)一个工作人员可以使用多台计算机,一台计算机可以被多个人使用,因此实体工作人员与实体计算机之间的关系是

a)一对一

b)一对多

c)多对多

d)多对一

(9)数据库设计中反映用户对数据需求的方式是

a)内部模式

b)概念模型

c)外部模式

d)设计模式

(10)存在如下三种关系R、S和T:

那么从关系R和S获得关系T的操作是

a)自然联系

b)薪酬

c)投影

d)以及

(11)下列关于结构化程序设计的说法是正确的。

A)结构化程序必须由三种结构组成:序列、分支和循环。

b)结构化程序使用goto语句很方便。

C)在C语言中,程序的模块化是通过函数来实现的。

d)由三种基本结构组成的程序只能解决小规模的问题。

(12)下列关于简单编程的步骤和顺序的说法是正确的。

a)确定算法后,整理编写文档,最后在电脑上编码调试。

b)先确定数据结构,再确定算法,然后编码,在电脑上调试,最后整理文档。

c)编码调试,确定编码过程中的算法和数据结构,最后整理文档。

d)先写文档,然后根据文档在电脑上编码调试,最后确定算法和数据结构。

(13)下列说法是错误的。

a)C程序在运行过程中所有的计算都是以二进制模式进行的。

b)C程序的所有计算都是在运行过程中以十进制模式进行的。

C)所有的C程序都需要正确编译链接后才能运行。

d)在C程序中,整型变量只能存储整数,实型变量只能存储浮点数。

(14)具有以下定义:int a;龙b;双x,y;下列选项中正确的表述是

A)a%(整数)(x-y)

B)a=x!= y;

C)(a*y)%b

y=x y=x

(15)下列选项中可以表示合法常数的有

a)整数:1200

b)实数:1.5E2.0

c)字符斜杠:“\”

d)字符串:" \007 "

(16)表达式a =a-=a=9的值为

A)9

B)_9

C)18

D)0

(17)如果变量已经被正确定义,在if (w) printf ("%d \ n,k ");其中,以下是不可替代的w

A)a<>b c

B)ch=getchar()

a==b

d)答

(18)有以下程序

# includestdio.h

主()

{int a=1,b = 0;

如果(!a)b;

else if(a = = 0)if(a)b = 2;

else b = 3;

printf("%d\n ",b);

}

程序运行后的输出结果是

A)0

B)1

C)2

D)3

(19)如果有定义的语句int a,b;;双x;以下选项没有错。

a)开关(x%2) B)开关((int)x/2.0

{案例0:a;打破;{案例0:a;打破;

案例一:b;打破;案例一:b;打破;

默认:a;b;默认:a;b;

} }

c)开关((int)x%2) D)开关((int)(x)%2)

{案例0:a;打破;{案例0.0:a;打破;

案例一:b;打破;案例1.0:b;打破;

默认:a;b;默认:a;b;

} }

(20)有以下程序

#包含stdio.h

主()

{int a=1,b = 2;

while(a6){ b = a;a = 2;B % 2 10}

printf("%d,%d\n ",a,b);

}

程序运行后的输出结果是

5.11

b)7.1

7.11

d)6.1

(21)有以下程序

#include

主()

{ int y = 10

while(y-);

printf("Y=%d\n ",Y);

}

程序执行后的输出是

A)y=0

B)y= -1

C)y=1

D)while构成了一个无限循环。

(22)有以下程序

#include

主()

{ char s」= " rst uv ";

printf("%c\n ",* s+2);

}

程序运行后的输出结果是

A)tuv

b)字符t的ASCII码值

C)t

d)误差

(23)有以下程序

#include

#include

主()

{ char x㏵= " STRING ";

x〔0〕= 0;x〔1〕= ' \ 0 ';x〔2〕= ' 0 ';

printf("%d %d\n ",sizeof(x),strlen(x));

}

程序运行后的输出结果是

A)6 1

B)7 0

C)6 3

D)7 1

(24)有以下程序

#include

int f(int x);

主()

{int n=1,m;

m = f(f(f(n)));printf("%d\n ",m);

}

int f(int x)

{ return x * 2;}

程序运行后的输出结果是

A)1

B)2

C)4

D)8

(25)下列程序段是完全正确的

a)int * p;scanf("%d ",& p);

b)int * p;scanf("%d ",p);

C)int k,* p = k;scanf("%d ",p);

D)int k,* p:;* p = k;scanf("%d ",p);

(26)定义语句:int * p[4];以下选项等效于此语句。

a)int p[4];

b)int * * p;

c)int *(p〖4〗);

d)int(* p)「4」;

(27)下列定义数组的说法中,正确的是

a)int N = 10;b)#定义N 10

int x[N];int x[N];

C)int x[0..10〕;D)int x ";

(28)要定义一个有五个元素的整数数组,下面的错误定义语句是

a)int a[5]= { 0 };

B)int b[]={0,0,0,0,0 };

c)int c[2 3];

D)int i=5,d[I];

(29)有以下程序

#include

void f(int * p);

主()

{int a〔5〕={1,2,3,4,5},* r = a;

f(r);printf(" % d \ n ";* r);

}

void f(int *p)

{ p = P3;printf("%d,",* p);}

程序运行后的输出结果是

a)1.4

B)4,4

C)3,1

d)4.1

(30)有以下程序(fun函数只对偶数元素进行操作)。

# include

void fun(int * a;int n)

{int i,j,k,t;

for(I = 0;I < n-1;1+=2)

{ k = I;'

for(j = I;jn;j = 2)if(a〔j〕a〔k〕)k = j;

t = a〔I〕;a〔I〕= a〔k〕;a〔k〕= t;

}

}

主()

{ int aa〖10〗;= { 1、2、3、4、5、6、7},I;

好玩(aa、7);

for(i=0,i7;i )printf("%d ",aa〔I〕);

printf(" \ n ");

}

程序运行后的输出结果是

A)7、2、5、4、3、6、1

B)1、6、3、4、5、2、7

C)7、6、5、4、3、2、1

D)1,7,3,5,6;2,1

(31)下列选项中,能满足“如果字符串s1等于字符串s2,执行ST”要求的是

A)if(strcmp(s2,S1)= = 0)ST;

b)if(S1 = = S2)ST;

c)if(strcpy(S1,S2)= = 1)ST;

d)if(SS2 = = 0)ST;

(32)下面不能正确地将S表示的字符串复制到T表示的存储空间。

a)while(* t = * s){ t;s;}

b)for(I = 0;t[I]= s[I ];I);

c)do { * t = * s;} while(* s);

D)for(i=0,j = 0;t[I]= s[j];);

(33)有以下程序(strcat函数用于连接两个字符串)。

#include

#include <字符串。h

主()

{char a〔20〕="ABCD\OEFG\0 ",b〔30〕= " IJK ";

strcat(a,b);printf("%s\n ",a);

}

程序运行后的输出结果是

ABCDE\OFG\OIJK

B)ABCDIJK

IJK

D)EFGIJK

(34)有以下程序,其中用库函数islower (ch)判断ch中的字母是否为小写字母。

#include

#include

无效资金(char*p)

{ int I = 0;

while(p[I ])

{ if(p[I]= = ' ' & & is lower(p〖I-1〗))p[I-1]= p[I-1]-' A ' ' A ';

i++;

}

}

主()

{char s1〔100〕="ab cd EFG!";

乐趣(S1);printf("%s\n ",S1);

}

程序运行后的输出结果是

A)ab cd EFG!

B)Ab Cd EFg!

C)aB cD EFG!

D)ab cd EFg!

(35)有以下程序

#include

无效资金(整数x)

{ if(x/2 > 1)fun(x/2);

printf("%d ",x);

}

主()

{好玩(7);printf(" \ n ");}

程序运行后的输出结果是

A)1 3 7

B)7 3 1

C)7 3

D)3 7

(36)有以下程序

#include

int fun()

{ static int x = 1;

x = 1;返回x;

}

主()

{ int I;s = 1;

for(I = 1;I = 5;I)s = fun();

printf("%d\n ",s);

}

程序运行后的输出结果是

A)11

B)21

C)6

D)120

(37)有以下程序

#增量< stdio.h >

#include

主()

{int *a,*b,* c;

a = b = c =(int *)malloc(sizeof(int));

* a = 1;*b=2,* c = 3;

a = b;

printf("%d,%d,%d\n ",*a,*b,* c);

}

程序运行后的输出结果是

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

(38)有以下程序

#include

主()

{int s,t,A = 10双B = 6;

s = sizeof(A);t = sizeof(B);

printf("%d,%d\n ",s,t);

}

在VC6平台上编译运行,程序运行后的输出结果是

a)2.4 B)4.4 C)4.8D)10.6

(39)如果有以下语句

Typedef结构

{ int g;char h;} T;

以下陈述中正确的是

a)结构变量可以由s定义。

B) t可以用来定义结构变量。

S是一个struct类型的变量。

T是struct S类型的变量。

(40)有以下程序

#include

主()

{短c = 124

c = c _ _ _ _ _ _ _ _ _;

printf("%d\n "、" C ");

}

要制作程序248的运行结果,下划线处应该填写的是

A)2 B)|248 C)&0248 D)I

填空(每题2分,共30分)

请将正确答案写在答题卡上序号从[1]到[15]横线的每一个空白处,该答案不在试卷上计分。

(1)堆栈的初始状态为空。先将元素5、4、3、2、1依次放入栈中,然后返回一次,再将元素A、B、C、D依次放入栈中,然后从栈中返回所有元素,所以所有元素(包括中间从栈中返回的元素)的顺序都是[1]。

(2)在长度为n的线性表中,至少需要比较[2]次才能找到最大项。

(3)一棵二叉树有10个度为1的节点,7个度为2的节点,所以二叉树有[3]个节点。

(4)仅由序列、选择(分支)和重复(循环)结构组成的程序是[4]程序。

(5)数据库设计的四个阶段是:需求分析、概念设计和逻辑设计[5]。

(6)下面这个程序的输出结果是[6]。

#include

主()

{int a=200,b = 010

printf("%d%d\n ",a,b);

}

(7)有以下程序

#include

主()

{int x,Y;

scanf("%2d%ld ",&x,& y);printf("%d\n ",x y);

}

程序运行时输入:1234567程序运行结果为[7]。

(8)在C语言中,当表达式值为0时,表示逻辑值为假,当表达式值为[8]时,表示逻辑值为真。

(9)有以下程序

#include

主()

{int i,n[]={0,0,0,0,0 };

for(I = 1;I = 4;我)

{ n[I]= n[I-1]* 3 ^ 1;printf("%d ",n[I]);}

}

程序运行后的输出结果是[9]。

(10)下面fun函数的作用是在一个n元素的一维数组中求最小值,并作为函数值返回。请填空。(让n被定义)

int fun(int x〔N〕

{int i,k = 0;

for(I = 0;在;我)

if(x〔i〕

返回x〔k〕;

}

(11)有以下程序

#include

int*f(int *p,int * q);

主()

{int m=1,n=2,* r = m;

r=f(r,& n);printf("%d\n ",* r);

}

int*f(int *p,int*q)

{return(*p*q)?p:q;}

程序运行后的输出结果是[11]

(12)下面的fun函数的作用是在n行m列的整形二维数组中选择一个最大值作为函数值。请填空。(让M和M,。n待定义)

int fun

{int i,j,row=0,col = 0;

for(I = 0;在;我)

for(j = 0;j

if(a〔I〕j〕a〔row〔col〕){ row = I;col = j;}

返回(【12】):

}

(13)有以下程序

#include

主()

{int n[2],I,j;

for(I = 0;I2;I)n[I]= 0;

for(I = 0;I < 2;我)

for(j = 0;J2;j)n〔j〕= n〔I〕+1;

printf("%d\n ",n[1]);

}

程序运行后的输出结果是[13]

(14)下面这个程序的作用是借助指针变量找出数组元素中最大值的位置,输出最大值。请填写输出语句中代表最大值的输出项。

#include

主()

{int a〔10〕,*p,* s;

for(p = a;p-a10;p )scanf("%d ",p);

for(p=a,s = a;p-a10;P)如果(* P * S)S = P;

printf("max=%d\n ",【14】);

}

(15)下面的程序打开新文件f.txt,调用字符输出函数将A数组中的字符写入其中。请填空。

#include

主()

{【15】* FP;

char a〔5〕={'1 ',' 2 ',' 3 ',' 4 ',' 5'},I;

fp=fopen("f .txt "," w ");

for(I = 0;i5;i )fputc(a[i],FP);

fclose(FP);

2010年4月关于C语言国家的考题和题型介绍到此结束。不知道你有没有从中找到你需要的信息?如果你想了解更多这方面的内容,记得关注这个网站。

相关文章

发表新评论