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

Python09

计算机二级考试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中的字符读出显示到屏幕上。

1、以下选项中属于C语言的数据类型是( )。

A. 复合型

B. 双精度型

C. 逻辑型

D. 集合型

2、以下说法中正确的是( )。

A. C语言程序总是从第一个的函数开始执行

B. 在C语言程序中,要调用的函数必须在main()函数中定义

C. C语言程序总是从main()函数开始执行

D. C语言程序中的main()函数必须放在程序的开始部分

3、选出下列标识符中不是合法的标识符的是( )。

A. hot_do

B. cat1

C. _pri

D. 2ab

4、下列描述中不正确的是( )。

A、字符型数组中可能存放字符串。

B、可以对字符型数组进行整体输入、输出。

C、可以对整型数组进行整体输入、输出。

D、 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。

5、若已定义:int a[9], *p=a并在以后的语句中未改变p的值,不能表示a[1]地址的表达式为( )。

A. p+1

B. a+1

C. a++

D. ++p

6、设有如下定义: int x=10,y=3,z则语句printf("%d\n",z=(x%y,x/y))的输出结果是( )。

A. 1

B. 0

C. 4

D. 3

7、定义如下变量和数组: int i, x[3][3]={1,2,3,4,5,6,7,8,9}则下面语句for(i=0i<3i++) printf("%d",x[i][2-i])的输出结果是( )

A. 1 5 9

B. 1 4 7

C. 3 5 7

D. 3 6 9

8、读出以下语句的输出结果是( )。

int x=10,y=10

printf(“%d %d\n”,x--,--y)

A. 10 10

B. 9 9

C. 9 10

D. 10 9

9、两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是( )。

if(x++>5) printf("%d",x)

else printf("%d\n",x - -)

A. 7和5

B. 6和3

C. 7和4

D. 6和4

10、设有如下定义:char *aa[2]={"abcd","ABCD"}则以下说法中正确的是( )。

A)aa数组成元素的值分别是"abcd"和ABCD"

B)aa是指针变量,它指向含有两个数组元素的字符型一维数组

C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的`首地址

D)aa数组的两个元素中各自存放了字符’a’和’A’的地址

11、以下语句的输出结果是( )。

int a=-1,b=4,k

k=(+ +a<0)&&!(b - -<=0)

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

A. 1,0,4

B. 1,0,3

C. 0,0,3

D. 0,0,4

12、下列程序的输出结果是( )。

char *p1="abcd", *p2="ABCD", str[50]="xyz"

strcpy(str+2,strcat(p1+2,p2+1))

printf("%s",str)

A. xyabcAB

B. abcABz

C. ABabcz

D. xycdBCD

13、执行下面的程序后,a的值是( )。

#define SQR(X) X*X

main( )

{ int a=10,k=2,m=1

a/=SQR(k+m)/SQR(k+m)

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

A. 10

B. 1

C. 9

D. 0

14、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为( )。

A.P+i*2

B. P+(i-1)*2

C. P+(i-1)

D. P+i

15、下列程序执行后输出的结果是( )。

int d=1

fun (int p)

{ int d=5

d + =p + +

printf("%d,",d)}

main( )

{ int a=3

fun(a)

d + = a + +

printf("%d\n",d)}

A. 8, 4

B. 9, 6

C. 9, 4

D. 8, 5

16、表达式:10!=9的值是( )。

A. true

B. 非零值

C. 0

D. 1

17、若有说明: int i,j=7, *p=&i, 则与i=j等价的语句是( )。

A. i= *p

B. *p=*&j

C. i=&j

D. i=* *p

18、不能把字符串:Hello!赋给数组b的语句是( )。

A. char b[10]={’H’,’e’,’l’,’l’,’o’,’!’}

B. char b[10]b="Hello!"

C. char b[10]strcpy(b,"Hello!")

D.char b[10]="Hello!"

19、在C程序中有如下语句:char *func(int x,int y)它是( )。

A. 对函数func的定义。

B. 对函数func的调用。

C.对函数func的原型说明。

D. 不合法的。

20、以下程序的输出结果是( )。

char str[15]=”hello!”

printf(“%d\n”,strlen(str))

A. 15

B. 14

C. 7

D. 6

参考答案:

1、B 2、C 3、D 4、C 5、C 6、D 7、C 8、D 9、C 10、D

11、D 12、D 13、B 14、B 15、A 16、D 17、B 18、B 19、C 20、D