考试真题网,考试人的精神家园。

广告服务|设为主页 |加入收藏

当前位置:首页>计算机类>计算机二级C语言真题

2011年9月全国计算机等级考试二级笔试试卷

C 语言程序设计

 

( 考试时间 90 分钟,满分 100 分 )

一、选择题 ((1)-(10) 、 (21)-(40) 每题 2 分, (11)-(20) 每题 1 分,共 70 分 )

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

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

A) 算法就是程序                          B) 设计算法时只需要考虑数据结构的设计

C) 设计算法时只需要考虑结果的可靠性     D) 以上三种说法都不对

(2) 下列关于线性链表的叙述中,正确的是 (    ) 。

A) 各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致

B) 各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续

C) 进行插入与删除时,不需要移动表中的元素

D) 以上三种说法都不对

(3) 下列关于二叉树的叙述中,正确的是 (    ) 。

A) 叶子结点总是比度为 2 的结点少一个

B) 叶子结点总是比度为 2 的结点多一个

c) 叶子结点数是度为 2 的结点数的两倍

D) 度为 2 的结点数是度为 1 的结点数的两倍

(4) 软件按功能可以分为应用软件、系统软件和支撑软件 ( 或工具软件 ) 。下面属于应用软件的是 (    ) 。

A) 学生成绩管理系统     

B)C 语言编译程序

C)UNIX 操作系统     

D) 数据库管理系统

(5) 某系统总体结构图如下图所示:

 

该系统总体结构图的深度是 (    ) 。

A)7    B)6    C)3    D)2

(6) 程序调试的任务是 (  ) 。

A) 设计测试用例     B) 验证程序的正确性   C) 发现程序中的错误     D) 诊断和改正程序中的错误

(7) 下列关于数据库设计的叙述中,正确的是 (    ) 。

A) 在需求分析阶段建立数据字典     B) 在概念设计阶段建立数据字典

C) 在逻辑设计阶段建立数据字典     D) 在物理设计阶段建立数据字典 (8) 数据库系统的三级模式不包括 (    ) 。

A) 概念模式     B) 内模式     C ) 外模式     D) 数据模式

(9) 有三个关系 R 、 S 利 T 如下:

 

则由关系 R 和 s 得到关系 T 的操作是 (    ) 。

A) 自然连接     B) 差     C) 交     D) 并

(10) 下列选项中属于面向对象设计方法主要特征的是 (    ) 。

A) 继承     B) 自顶向下     C) 模块化     D) 逐步求精

(11) 以下叙述中错误的是 (    ) 。

A)C 语言编写的函数源程序,其文件名后缀可以是. C

B)C 语言编写的函数都可以作为一个独立的源程序文件

C)C 语言编写的每个函数都可以进行独立的编译并执行

D) 一个 C 语言程序只能有一个主函数

(12) 以下选项中关于程序模块化的叙述错误的是 (    ) 。

A) 把程序分成若干相对独立的模块,可便于编码和调试

B) 把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块

c) 可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序

D) 可采用自项向下、逐步细化的设计方法把若干独立模块组装成所要求的程序

(13) 以下选项中关于 c 语言常量的叙述错误的是 (    ) 。

A) 所谓常量,是指在程序运行过程中,其值不能被改变的量

B) 常量分为整型常量、实型常量、字符常量和字符串常量

c) 常量可分为数值型常量和非数值型常量

D) 经常被使用的变量可以定义成常量

(14) 若有定义语句: int a=10 ; double b=3 . 14 ;,则表达式 'A'+a+b 值的类型是 (    ) 。

A)char    B)int    C)double    D)float

(15) 若有定义语句: int x=12 , 3=8 , z ;,在其后执行语句 z=0 . 9+x/y ;,则 Z 的值为 (    ) 。

A)1 . 9    B)1    C)2    D)2 . 4

(16) 若有定义: int a , b ;,通过语句 scanf(" % d; % d",&a , &b) ;,能把整数 3 赋给变量 a , 5 赋给变量 b 的输入数据是 (    ) 。

A)3 5    B)3 , 5    C)3 ; 5    D)35

(17) 若有定义语句: intk1=10 , k2=20 ;,执行表达式 (k1=k1>k2)&&(k2=k2>k1) 后, k1 和 k2 的值分别为 (    ) 。

A)0 和 1    B)0 和 20    C)10 和 1    D)10 和 20

(18) 有以下程序

    #include<stdio . h>

    main()

    {int a=1 , b=0 ;

    if(-a)  b++ ;

    else if(a= 0 )b+=2 :

    else b+=3 :

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

    )

     程序运行后的输出结果是 (    ) 。

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

(19) 下列条件语句中,输出结果与其他语句不同的是 (    ) 。

A)if(a)printf(" % d \ -n" , x) ;     else printf(" % d\n" , y) ;

B)if(a — 0 )printf(" % d \ n" , y) ;   else printf(" % d \ n" , x) ;

C)i f(a ! = 0)p 由 tf(" % d\n" , x) ;   else printf(" % d \ n" , y) ;

D)if(a=0)printf(" % d\n" , x) ;   else printf(" % d\n" , y) ;

(20) 有以下程序

#include<stdio . h>

main()

{int a=7 ;

while(a--) ;

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

)

程序运行后的输出结果是 (    ) 。

A)-1    B)0    C)1    D)7

(21) 以下不能输出字符 A 的语句是 ( 注:字符 A 的 ASCIl 码值为 65 ,字符 a 的 ASCIl 码值为 97)

A)printf(" % c\n" , 'a'-32) ;     B)printf(" % d\n" , 'A') ;

c)printf(" % c\n" , 65) ;     D)print-f(" % c\n" , 'B'-1) ;

(22) 有以下程序 ( 注:字符 a 的 ASCIl 码值为 97)

#include<stdio . h>

main()

{char*s={"abe") ;

do

{printf( ”% d ”, +s % 10) ; ++s ; )

while(+s) ;

)

程序运行后的输出结果是 (    ) 。

A)abc    B)789    C)7890    D)979899

(23) 若有定义语句: double a , +p= & a ;以下叙述中错误的是 (    ) 。

A) 定义语句中的 * 号是一个间址运算符

B) 定义语句中的 * 号只是一个说明符

C) 定义语句中的 P 只能存放 double 类型变量的地址

D) 定义语句中, *p=&a 把变量 a 的地址作为初值赋给指针变量 P

(24) 有以下程序

#include<stdio . h>

double f(double x) ;

main()

{doublea_0 ; inti ;

for(i=0 ; i<30 ; i+=10)a+--f((double)i) ;

printf(" % 5 . 0f\n" , a) ;

}

double f(double x)

(return X+x+1 ; )

程序运行后的输出结果是 (    ) 。

A)503    B)401    C)500    D)1404

(25) 若有定义语句: int year=2009 , *p=&year ;,以下不能使变量 year 中的值增至 2010 的语句是 (    ) 。

A)*p+=1 ;     B)( *p)++ ;     C)++(*p) ;     D)*p++ ;

(26) 以下定义数组的语句中错误的是 (    ) 。

A)int num[]={1 , 2 , 3 , 4 , 5 , 6} ;     B)int num[][3]={{1 , 2} , 3 , 4 , 5 , 6} ;

C)int num[2][4]=({1 , 2 ,, {3 , 4} , {5 , 6}) ;     D)int num[][4]={1 , 2 , 3 , 4 , 5 , 6} ; (27) 有以下程序

#include<stdi0 . h>

void fun(int+p)

{printf( ”% d\n ”, p[5]) ; }

main()     ;

{int a[10]={1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10} ;

fun(&a[3]) ;

)

程序运行后的输出结果是 (    ) 。

A)5    B)6    C)8    D)9

(28) 有以下程序

#include<stdio.h>

#defineN4

void fun(int a[][N] , im b[])

{int i ;

for(i=0 ; i<N ; i++)b[i]=a[i][i]-a[i][N-1-i] ;

)

void main()

{int x[N][N]={{1 , 2 , 3 , 4} , {5 , 6 , 7 , 8} , {9 , 10 , 11 , 12} , {13 , 14 , 15 , 16}} , y[N] , i ;

fun(x,y) ;

for(i=0 ; i<N ; i++)printf( ”% d ,”, y[i]) ; printf("\n") ;

}

程序运行后的输出结果是 (    ) 。

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

(29) 有以下函数

int fun(char *x , char *y)

{int n=0 ;

while((*x=*y)&&*x!='\0'){x++ ; y++ ; n++ ; }

return n :

)

函数的功能是 (  ) 。

A) 查找 x 和 y 所指字符串中是否有 '\0'

B) 统计 x 和 y 所指字符串中最前面连续相同的字符个数

c) 将 y 所指字符串赋给 X 所指存储空间

D) 统计 x 和 y 所指字符串中相同的字符个数

(30) 若有定义语句: char *s1="OK" , *s2="ok" ;,以下选项中,能够输出 "0K" 的语句是 (    ) 。

A)if(strcmp(s1 , s2)=0)puts(s1) ;     B)if(strcmp(s1 , s2)!=0) puts(s2) ;

C)if(strcmp(s1 , s2)=1)puts(s1 , ) ;     D)if(strcmp(s1 , s2)!=0) puts(s1) ;

(31) 以下程序的主函数中调用了在其前面定义的 fun 函数

#include<stdio . h>

{

main()

{double a[15] , k ;

k=fun(a) ;

}

则以下选项中错误的 fun 函数首部是 (    ) 。

A)double fun(double a[15])    B)double fun(double *a)

C)double fun(double a[])      D)double fun(double a)

(32) 有以下程序

#include<stdio . h>

#include<string . h>

main()

{char a[5][10]={"china","beijing","you","tiananmen","welcome ” ) ;

int i , j ; chart[10] ;

for(i=0 ; i<4 ; i++)

for(j=i+1 ; j<5 ; j++)

if(strcmp(a[i] , a[j])>O)

{strcpy(t , a[i]) ; strcpy(a[i] , a[j]) ; strcpy(a[j] , t) ; }

puts(a[3]) ;

)

程序运行后的输出结果是 (    ) 。

A)Beijing    B)china    C)welcome    D)tiananmen

 

 

 

客服QQ:2651301595  QQ群:328265675  客服邮箱:zhenti8@126.com

本站所刊资料均为热心网友提供,我们不对内容的真实性和完整性负责。

Copyright © 2014-2020 zhenti8.com 考试真题网   版权所有