计算机二级考试C语言模拟试题二

Python08

计算机二级考试C语言模拟试题二,第1张

1. 运算符________的优先级最高。

A.[ ]

B. +=

C. ?:

D.++

2.main( )

{ int n( n=6*4,n+6),n*2printf(“n=%d\n”,n)}

程序的输出结果是______________.

A.30

B. 24

C. 60

D. 48

3.若有如下定义,则__________是对数组元素的正确的引用。.

int a[10] , *p p=a

A. *&a[10]

B. a[11]

C. *(p+11)

D. *p *p *p

4.设整型变量n的值为2,执行语句“n+=n-=n*n”后,n的值是__________

A. 0

B. 4

C. - 4

D. 2

5.各种基本数据类型的存贮空间正确的长度排列为__________。

A.Char

C.Char

6.下面的变量说明中__________是正确的。

A.char:a, b, c

B.char abc

C.char a, b, c

D.char a, b, c

7.表达式y=(13>12?15:6>7?8:9)的值为____________ 。

A 9

B 8

C 15

D. 1

8.若x=5,y=3 则y*=x+5y的值为___________.

A. 10

B. 20

C. 15

D. 30

9.能正确表示a和b同时为正或同时为负的逻辑表达式是_________。

A.a>=0||b>=0)&&(a<0 ||b<0)

B.(a>=0 &&b>=0)&&(a<0 &&b<0)

C.(a+b>0) &&(a+b<=0)

D. a*b>0

10.C语言中,合法的字符型常数是_________。

A.‘A’

B.“A”

C. 65

D. A

11.已有定义 int x=3, y=4, z=5则表达式“!(x+y)+z-1&&y+z/2”的值是________。

A.6

B.0

C.2

D.1

12.若变量c为char类型,能正确判断出c为小写字母的表达式是_______。

A.’a’<=c<=’z’

B. (c>=’a’) || (c<=’z’)

C.(‘a’<=c) and (‘z’>=c)

D. (c>=’a’) &&(c<=’z’)

13.设有定义:long x=-123456L则以下能够正确输出变量x值的语句是_______。

A.printf(“x=%d\n”,x)

B.printf(“x=%ld\n”,x)

C.printf(“x=l\n”,x)

C.printf(“x=%D\n”,x)

14.从循环体内某一层跳出,继续执行循环外的语句是:___________。

A. break语句

B.return语句

C.continue语句

D.空语句。

15.C语言用_______表示逻辑“真”值。

A.true

B.t或y

C.非零整型值

D.整型值0

16.为了避免嵌套的条件分支语句if—else 的二义性,C语言规定:C程序中的else总是与_____组成配对关系。

A.缩排位置相同的if

B.在其之前未配对的if

C.在其之前未配对的最近的if

D.同一行上的if

17.在函数中默认存储类型说明符的变量应该是________存储类型。

A.内部静态

B. 外部

C.自动

D. 寄存器

18.C语言中以只读方式打开一个文件应选择_______________参数。

A.“r”

B.“w”

C.“rb”

D.“a”

19.设有数组定义:char array[]=”student”则数组所占的存贮空间为__________。

A.6个字节

B. 7个字节

C. 8个字节

D. 9个字节

20.根据C语言的语法规则,下列________个是不合法标识符。

A.do

B. Name

C. R5

D. _exam

二、判断题

1. C 语言源程序文件通过了编译、连接之后 , 生成一个后缀为 .EXE 的文件。 ( )

2.在 C 程序中 , 函数既可以嵌套定义 , 也可以嵌套调用。( )

3.在 C 程序中 ,APH 和 aph 代表不同的变量。( )

4.表达式 0195 是一个八进制整数。( )

5.Continue语句的作用是结束本次循环。( )

6.Extern变量的.生命期是整个程序执行期。 ( )

7.C语言中字符串的结束符是’\0’。 ( )

8.利用fclose函数关闭已打开的文件。 ( )。

9.C程序总是从main( ) 函数的第一条语句开始执行的。 ( )

10.数组名代表数组的首地址。( )

三、填空题

1.C语言的预处理语句以__________开头。

2.表达式7+10>2 &&25 %5的结果是_______________。

3.下列程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。

Int n=0, chCh=getchar( )

While( __________________ )

{ if ( ________________ ) n++c=getchar( )}

4.C语言中getchar() 函数的功能是_________________________。

5.int *p 的含义是______________________________。

6.定义fp为文件型指针变量的定义方法为_______________。

7.数组 int a[3][3]共定义了____________个数组元素。

四、读程序题。

1. 改正下列程序中不正确的语句。

main( )

{ int a

scanf(“%d”, a)if (a = 1) printf(“One\n”) }

2.写出下列程序的运行结果。

fun(int a, int b)

{ if(a>b) return (a)

Else return (b)}

main()

{ int x=3,y=8,z=6,r

r=fun(fun(x,y),2*z)printf(“%d\n”,r)}

3. 改正下列程序中不正确的语句。

main()

{ int n

float s=1.0

for(n=10n>1n- -)

s=s+1/n

printf(“%6.1f\n”,s)}

4. 写出下列程序的运行结果。

main()

{ int n

For(n=3n<=10n++)

{ if(n%6= =0) breakPrintf(“%d”,n)} }

5.写出下列程序的运行结果。

#include “stdio.h”

Main()

{ int a[]={1,2,3,-4,5}

int m,n,*pp=&a[0]m=*(p+1)n=*(p+4)

printf(“%d %d %d ”,*p,m,n)}

五、编程题

1. 编程计算下列表达式:s=n!(n从键盘上输入)

2.输出1—100之间不能被12整除的数。

3.从键盘上输出10个整数存入一维数组中,按由大到小的顺序输出。

4.从键盘上输入9个数,按3行3列的格式输出。

5.编程将文件read.txt中的字符读出显示到屏幕上。

全国计算机二级C语言程序设计包括40个单选题(每题一分)和三道操作题(60分)。

单选题中1~10题为二级公共基础知识,考试内容包括数据结构与算法、程序设计基础、软件工程基础、数据库设计基础四部分。单选题的11~40题是C语言的内容。

操作题包括程序填空(18分)、程序改错(18分)和编程题(24分)各一题。

程序填空是将一个完整的程序,扣掉两到三处,让考生将它填写完整。由于每位考生具体抽到的题目不同,程序填空有2到3个空要填。程序填空题以实际填写的内容为评分依据,填写正确一个空,给一个空的分。如果是2个空,每个空就是9分;如果是3个空每个空是6分。

程序改错也是一个完整的程序,其中有2~3处错误要求考生将他们改正。与程序填空类似,2处错误的话,每处9分,3处错误的话,每处6分。程序改错题的题目会提示每一处错误所在的行,在那一行的上一行有********found********标识。

编程题是要求考生编写一个程序,然后运行出题干要求的结果。题目中主函数main()会完整给出,在主函数中将调用fun()函数,fun函数由考生自己编写。编程题以运行结果给分,所编写完成后必须运行,否则没分。因此,大多数情况下,编程题要么就是得24分满分,要么就是0分。

2010年3月全国计算机等级考试二级C语言笔试真题及参考答案一、选择题

(1)下列叙述中正确的是

A)对长度为n的有序链表进行查找,最坏清况下需要的比较次数为n

B)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)

C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)

D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)(2)算法的时间复杂度是指

A)算法的执行时间

B)算法所处理的数据量

C)算法程序中的语句或指令条数

D)算法在执行过程中所需要的基本运算次数(3)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于系统软件的是

A)编辑软件

B)操作系统

C)教务管理系统

D)浏览器(4)软件(程序)调试的任务是

A)诊断和改正程序中的错误

B)尽可能多地发现程序中的错误

C)发现并改正程序中的所有错误

D)确定程序中错误的性质(5)数据流程图(DFD图)是

A)软件概要设计的工具

B)软件详细设计的工具

C)结构化方法的需求分析工具

D)面向对象方法的需求分析工具(6)软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于

A)定义阶段

B)开发阶段

C)维护阶段

D)上述三个阶段(7)数据库管理系统中负责数据模式定义的语言是

A)数据定义语言

B)数据管理语言

C)数据操纵语言

D)数据控制语言(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是

A)文件

B)数据库

C)字段

D)记录(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的

A)需求分析阶段

B)逻辑设计阶段

C)概念设计阶段

D)物理设计阶段(10)有两个关系R和T如下:

则由关系K得到关系T的操作是

A)选择

B)投影

C)交

D)并(11)以下叙述正确的是

A)C语言程序是由过程和函数组成的

B)C语言函数可以嵌套调用,例如:fun(fun(x))

C)C语言函数不可以单独编译

D)C语言中除了main函数,其他函数不可作为单独文件形式存在(12)以下关于C语言的叙述中正确的是

A)C语言中的注释不可以夹在变量名或关键字的中间

B)C语言中的变量可以在使用之前的任何位置进行定义

C)在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致

D)C语言的数值常量中夹带空格不影响常量值的正确表示(13)以下C语言用户标识符中,不合法的是

A)_1

B)AaBc

C)a_b

D)a-b(14)若有定义:double a=22int i=0,k=18,则不符合C语言规定的赋值语句是

A)a=a++,i++

B)i=(a+k)<=(i+k)

C)i=a%11

D)i=!a(15)有以下程序

#include<stdio.h>

main()

{ char a,b,c,d

scanf(“%c%c”,&a,&b)

c=getchar()d=getchar()

printf(“%c%c%c%c\n”,a,b,c,d)

}

当执行程序时,按下列方式输入数据(从第1列开始,<CR>代表回车,注意:回车也是一个字符)

12<CR>

34<CR>

则输出结果是

A)1234

B)12

C)12

3

D)12

34(16)以i关于C语言数据类型使用的叙述中错误的是

A)若要准确无误差的表示自然数,应使用整数类型

B)若要保存带有多位小数的数据,应使用双精度类型

C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型

D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型(17)若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是

A)1

B)0

C)2

D)不知道a的值,不能确定(18)以下选项中与if(a==1)a=belse a++语句功能不同的switch语句是

A)switch(a)

{case:a=bbreak<br>default:a++<br>}<br>B)switch(a==1)<br>{case 0:a=bbreak<br>case 1:a++<br>}

C)switch(a)

{default:a++break<br>case 1:a=b<br>}

D)switch(a==1)

{case 1:a=bbreak<br>case 0:a++<br>}(19)有如下嵌套的if语句

if (a<b)

if(a<c)k=a

else k=c

else

if(b<c) k=b

else k=c

以下选项中与上述if语句等价的语句是

A)k=(a<b)?a:bk=(b<c)?b:c

B)k=(a<b)?((b<c)?a:b):((b>c)?b:c)

C)k=(a<b)?((a<c)?a:):((b<c)?b:c)

D)k=(a<b)?a:bk=(a<c)?a:c(20)有以下程序

#include<s七dio.h>

main()

{in i,j,m=1

for(i=1i<3i++)

{for(j=3j>Oj--)

{if(i*j)>3)break<br>m=i*j<br>}

}

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

程序运行后的输出结果是

A)m=6

B)m=2

C)m=4

D)m=5(21)有以下程序

#include(stdio.h>

main()

{int a=lb=2

for(a<8a++) {b+=aa+=2}

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

}

程序运行后的输出结果是

A)9,18

B)8,11

C)7,11

D)10,14(22)有以下程序,其中k的初值为八进制数

#include <stdio.h>

main()

{int k=011;

printf("%d\n",k++)

程序运行后的输出结果是

A)12

B)11

C)10

D)9(23)下列语句组中,正确的是

A)char *ss="Olympic"

B)char s[7]s="Olympic"

C)char *ss={"Olympic"}

D)char s[7]s={"Olympic"}(24)以下关于return语句的叙述中正确的是

A)一个自定义函数中必须有一条return语句

B)一个自定义函数中可以根据不同情况设置多条return语句

C)定义成void类型的函数中可以有带返回值的return语句

D)没有return语句的自定义函数在执行结束时不能返回到调用处(25)下列选项中,能正确定义数组的语句是

A)int num[0..2008]

B)int num[]

C)int N=2008

int num[N]

D)#define N 2008

int num[N](26)有以下程序

#include <stdio.h>

void fun(char *c,int d)

{*c=*c+1d=d+1

printf("%c,%c,",*c,d)

main()

{char b='a',a='A';

fun(&b,a)printf("%e,%e\n",b,a)

程序运行后的输出结果是

A)b,B,b,A

B)b,B,B,A

C)a,B,B,a

D)a,B,a,B(27)若有定义int(*Pt)[3];,则下列说法正确的是

A)定义了基类型为int的三个指针变量

B)定义了基类型为int的具有三个元素的指针数组pt

C)定义了一个名为*pt、具有三个元素的整型数组

D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组(28)设有定义double a[10],*s=a,以下能够代表数组元素a[3]的是

A)(*s)[3]

B)*(s+3)

C)*s[3]

D)*s+3(29)有以下程序

#include(stdio.h)

main()

{int a[5]={1,2,3,4,5},b[5]={O,2,1,3,0},i,s=0

for(i=0i<5i++) s=s+a[b[i]])

printf("%d\n", s)

}

程序运行后的输出结果是

A)6

B)10

C)11

D)15(30)有以下程序

#include <stdio.h>

main()

{int b [3][3]={O,1,2,0,1,2,O,1,2},i,j,t=1

for(i=0i<3i++)

for(j=ij<=1j++) t+=b[i][b[j][i]]

printf("%d\n",t)

程序运行后的输出结果是

A)1

B)3

C)4

D)9(31)若有以下定义和语句.......这是全国2010全国c语言考试的部分题目,楼主需要的话可以自己去下载转自:酷8学习网 www.k8xx.com