好文档 - 专业文书写作范文服务资料分享网站

2014年3月份全国计算机等级考试二级C语言选择题大全

天下 分享 时间: 加入收藏 我要投稿 点赞

组之中;②用字符指针指向字符串, 然后通过字符指针来访问字符串存储区域。当字符串常量在表达式中出现时, 根据数组的类型转换规则, 将其转换成字符指针。

本题D)项中错误的关键是对数组初始化时,可以在变量定义时整体赋初值,但不能在赋值语句中整体赋值。

(26)D 【解析】 C语言中数组下标是从0开始的,所以二维数组a[2][3]的第一维下标取值为0、1;第二维的下标取值为0、1、2,因而选项A)、B)、C)都是错误的,选项D)表示数组元素a[0][0]。

(27)B 【解析】 scanf()语句用\空格\区别不同的字符串;getc()与getchar()语句不能用于字符串的读入。

(28)A 【解析】带参数的宏定义命令行形式如下:#define 宏名(形参表) 替换文本。首先进行M的宏替换,之后再进行N的宏替换,替换后的表达式为 (a)*(b)/(c)。

(29)D 【解析】结构体变量所占用内存的字节数是其所有成员所占用内存字节数之和。本题中整型变量i所占用的内存是2字节,字符型变量ch所占用的内存是1字节,双精度型变量f所占用的内存是8字节,三者相加即可。

(30)A 【解析】首先利用fwrite函数将数组a中的数据写到文件中,接着fseek函数的功能是读文件的位置,指针从文件头向后移动3个int型数据,这时文件位置指针指向的是文件中的第4个int数据\然后 fread函数将文件fp中的后3个数据4,5,6读到数组a中,这样就覆盖了数组中原来的前3项数据。最后数组中的数据就成了{4,5,6,4,5,6}。

(31)C 【解析】在for(i=0;i<12;i++) c[s[i]]++中,数组元素s[i]的值作为数组c的下标,当退出循环时,数组c的4个元素的值分别为4、3、3、2。

(32)D 【解析】在本题中,主函数在调用fun()函数进行排序时,传递的参数是c+4和6,fun()函数实现的功能是将数组c的第5个元素开始的6个元素依次进行从大到小的顺序排列。排序之后,数组c的内容变为{1,2,3,4,9,8,7,6,5,0}。

(33)C 【解析】本题考查的重点是拷贝字符串──使用strcpy()函数,该函数的调用方式是:strcpy(字符数组, 字符串),其中\字符串\可以是字符串常量,也可以是字符数组。函数的功能是:将\字符串\完整地复制到\字符数组\中,字符数组中原有的内容被覆盖。

使用该函数时注意:①字符数组必须定义得足够大,以便容纳复制过来的字符串。复制时,连同结束标志'\\0'一起复制;②不能用赋值运算符\将一个字符串直接赋值给一个字符数组,只能用strcpy( )函数处理。

另外,本题还考查连接字符串的strcat()函数,其调用方式是:strcat(字符数组, 字符串)。 功能是把\字符串\连接到\字符数组\中的字符串尾端,并存储于\字符数组\中。\字符数组\中原来的结束标志,被\字符串\的第一个字符覆盖,而\字符串\在操作中未被修改。

使用该函数时注意:①由于没有边界检查,编程者要注意保证\字符数组\定义得足够大,以便容纳连接后的目标字符串;否则,会因长度不够而产生问题;②连接前两个字符串都有结束标志'\\0',连接后\字符数组\中存储的字符串的结束标志'\\0'被舍弃,只在目标串的最后保留一个'\\0'。

31

(34)D 【解析】该程序先判断a[i]

(35)A 【解析】本题考查了用字符指针引用字符数组中的字符及对字符的操作。函数abc()的for语句执行过程是:从字符指针str所指向的字符数组的第一个元素开始,逐一判断字符是否为'c',若不是就执行一次数组元素的赋值过程,若字符为'c'就不执行。

(36)A 【解析】本题考查的是函数调用时的参数传递问题。程序在调用函数f时,传给函数f的参数只是结构变量c在栈中的一个拷贝,函数f的所有操作只是针对这个数据拷贝进行的修改,这些都不会影响变量c的值。

(37)B 【解析】在函数中首先把整型数组a[10]中的每个元素写入文件d1.dat中,然后再次打开这个文件,把文件d1.dat中的内容读入到整型变量n中,最后输出变量n的值。 (38)C 【解析】 ^是按位异或运算,如果对应位不同则结果为1,相同则为0。

(39)D 【解析】在整个程序运行期间,静态局部变量在内存的静态存储区中占据着永久的存储单元,即使退出函数以后,下次再进入该函数时,静态局部变量仍使用原来的存储单元,静态局部变量的初值是在编译的时候赋予的,在程序执行期间不再赋予初值。本题由于连续三次调用函数fun(),三次对静态变量x进行操作,x的值应依次为6,7,8。

(40)D 【解析】本题中fun函数实现了字符串函数strcat的功能,将字符串aa连接到字符串ss的末尾。调用fun函数时,形参t和s分别指向了字符串ss和aa,然后通过一个while循环使t指向字符串ss的结束符的位置,第二个while循环将字符串aa中的字符(包括结束符'\\0')逐个复制到字符串ss的末尾处。 选择题

在下列各题的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)软件开发过程

32

(6)数据处理的最小单位是

A)数据 B)数据元素 C)数据项 D)数据结构 (7)假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为 A)log2n B)n2 C)O(n1..5) D)n(n-1)/2 (8)在深度为5的满二叉树中,叶子结点的个数为 A)32 B)31 C)16 D)15 (9)数据库系统的核心是 A)数据库

B)数据库管理系统 C)模拟模型 D)软件工程

(10)一个关系中属性个数为1时,称此关系为

A)对应关系 B)单一关系 C)一元关系 D)二元关系 (11)下面各选项中,均是C语言合法标识符的选项组是

A)33 we auto B)_23 me _3ew C)_43 3e_ else D)ER -DF 32

(12)可在C程序中用作用户标识符的一组标识符是

A)and B)Date C)Hi D)case _2007 y-m-d Dr.Tom Bigl (13)以下对C语言函数的有关描述中,正确的是

A)在C语言中调用函数时,只能把实参的值传给形参,形参的值不能传送给实参 B)C函数既可以嵌套定义又可以递归调用 C)函数必须有返回值,否则不能使用函数 D)函数必须有返回值,返回值类型不定

(14)若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是

A)函数的实参和其对应的形参共占同一存储单元 B)形参只是形式上的存在,不占用具体存储单元

C)同名的实参和形参占同一存储单元 D)函数的形参和实参分别占用不同的存储单元 (15)现有定义int a;double b;float c;char k;,则表达式a/b+c-k值的类型为: A)int

B)double C)float

D)char

(16)以下关于long、int和short类型数据占用内存大小的叙述中正确的是 A)均占4个字节 B)根据数据的大小来决定所占内存的字节数 C)由用户自己定义 D)由C语言编译系统决定 (17)有以下程序段

int j;float y;char name[50]; scanf(\

当执行上述程序段,从键盘上输入55566 7777abc后,y的值为 A)55566.0 B)566.0 C)7777.0 D)566777.0

33

(18)若变量已正确定义,有以下程序段 i=0;

do printf(\ printf(\ 其输出结果是

A)0,0 B)0,1 C)1,1 D)程序进入无限循环 (19)下列程序的运行结果是 #include \ main()

{ int x=-9,y=5,z=8; if(x

if(y<0)z=0; else z+=1; printf(\ A)6 B)7 #include void main() { int cs;

while((cs=getchar())!=; '\\n') {switch(cs-'2') { case 0

case 1: putchar(cs+4); case 2: putchar(cs+4); break;

case 3: putchar(cs+3); default: putchar(cs+2); } } } A)668977 B)668966 D)6688766

(21)以下程序的输出结果是 main() { int a,i;a=0; for(i=1;i<5;i++) { switch(i)

C)8

D)9

(20)若程序执行时的输入数据是\则下述程序的输出结果是

C)6677877

34

{ case 0: case 3:a+=2; case 1: case 2:a+=3; default:a+=5; } }printf(\ A)31

B)13

C)10

D)20

(22)现有如下程序段 #include \ main()

{ int k[30]={12,324,45,6,768,98,21,34,453,456}; int count=0,i=0; while(k[i])

{ if(k[i]%2==0||k[i]%5==0)count++; i++; }

printf(\ 则程序段的输出结果为

A)7,8 B)8,8 C)7,10 D)8,10 (23)若有以下程序 #include int a[]={2,4,6,8}; main() { int i; int *p=a;

for(i=0;i<4;i++)a[i]=*p; printf(\ 上面程序的输出结果是

A)6 B)8 C)4 D)2 (24)有以下程序 #include main() { int i,j,m=55; for(i=1;i<=3;i++)

for(j=3;j<=i;j++)m=m%j; printf(\

35

2014年3月份全国计算机等级考试二级C语言选择题大全

组之中;②用字符指针指向字符串,然后通过字符指针来访问字符串存储区域。当字符串常量在表达式中出现时,根据数组的类型转换规则,将其转换成字符指针。本题D)项中错误的关键是对数组初始化时,可以在变量定义时整体赋初值,但不能在赋值语句中整体赋值。(26)D【解析】C语言中数组下标是从0开始的,所以二维数组a[2][3]的第一维下标取值为0、1;第二维
推荐度:
点击下载文档文档为doc格式
7uva280t55423gi8fm06
领取福利

微信扫码领取福利

微信扫码分享