一起答

2013年9月全国计算机等级《二级C语言程序设计》考前冲刺试卷一

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 请编写一个函数proc,它的功能是:求出1~m(含m) 能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。

    例如,若传给m的值为70,则程序输出:

    7 11 14 21 22 28 33 35 42 44 49 55 56 63 66 70

    注意:部分源程序给出如下。

    请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填人所编写的若干语句。

    试题程序:

    #include

    #include

    #include

    #define N 100

    void proc(int m,int*a,int*n)

    {

    }

    void main

    {

    int arr[N],n,k;

    system("CLS");

    proc(70,arr,&n);

    for(k=0;k

    if((k+1)%20==0)//每行输出20个数

    { printf("%4d",arr[k]);

    printf("\n");

    }

    else

    printf("%4d",arr[k]);

    printf("\n");

    }

  2. 下列给定程序中,函数proc的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码升序排序后输出。

    例如,输入opdye,则应输出deopy。

    请修改程序中的错误,使它能得到正确结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

    试题程序:

    #include

    #include

    #include

    #include

    //****found****

    int proc(char str[])

    {

    char c;

    unsigned i,j;

    for(i=0;i

    for(j=i+1;j

    if(str[i]>str[j])

    {

    c=str[j]:

    //****found****

    str[j]=str[i++];

    str[i]=c;

    }

    }

    void main

    {

    char str[81];

    system("CLS");

    printf("\nPlease enter a character

    string:");

    gets(str);

    printf("\n\nBefore sorting:\n%s",str);

    proc(str);

    printf("\nAfter sorting decendingly:\n

    %s",str);

    }

  3. 请补充函数proc,该函数的功能是按条件删除一个字符串指定字符一半的数目,具体要求如下:如果该字符串所包含的指定字符的个数是奇数,则不删除,如果其数目是偶数,则删除原串后半部分的指定字符。其中,str指向原字符串,删除后的字符串存放在b所指的数组中,c中存放指定的字符。例如,当str输入“abcabcabcab”,c=b时,b的输出为“abcabcaca”;如果str的输入为“abcabcabca”,则b的输出为“abcabcabca”。

    注意:部分源程序给出如下。

    请勿改动main函数和其他函数中的任何内容,仅程函数prOC的横线上填入所编写的若干表达式或语句。

    试题程序:

    #include

    #include

    #include

    #define M 80

    void proc(char str[],char b[],char c)

    {

    int i=0,j=0;

    int n=0:

    int m=0:

    while(str[i]!='\0')

    {

    if(str[i]==c)

    n++:

    i++:

    }

    【1

    if(n%2)

    {

    while(str[j]!='\0 ')

    {

    b[j]=str[j];

    j++;

    }

    b[j]='\0';

    }

    else

    {

    while(str[i]!='\0 ')

    {

    b[j++]=str[i];

    if(str[i]==c)

    m++:

    if((m>n/2)&&(str[i]==c))

    【2

    i++:

    }

    【3

    }

    }

    void main

    {

    char str[M],b[M];

    char C;

    system("CLS");

    printf("Enter the strin9:\n");

    gets(str);

    printf("Enter the character of the

    string deleted:"):

    scanf("%C",&c);

    proc(str,b,c);

    printf("The new string is:%s\n",b);

    }

  4. 结构化程序设计的3种结构是( )。

    • A.顺序结构、选择结构、转移结构
    • B.分支结构、等价结构、循环结构
    • C.多分支结构、赋值结构、等价结构
    • D.顺序结构、选择结构、循环结构
  5. 有以下程序:

    main

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

    12,},{13,14,15,16}},i,j;

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

    { for(j=0;j

    for(j=________;J<4;j++)printf("%4d",num

    [i][j]);

    printf("\n");}}

    若要按以下形式输出数组右上半三角

    1 2 3 4

    6 7 8

    11 12

    16

    则在程序下划线处应填入的是( )。

    • A.i-1
    • B.i
    • C.i+1
    • D.4一i
  6. 设有条件表达式:(EXP)?i++;j--,则以下表达式中(EXP)完全等价的是( )。

    • A.(EXP==0)
    • B.(EXP!=0)
    • C.(EXP==1)
    • D.(EXP!=1)
  7. 设有二元关系R和三元关系s,下列运算合法的是(  )。

    • A.R∩S
    • B.R∪S
    • C.R-S
    • D.R×S
  8. 下列判断正确的是( )。

    • A.char a="ABCD":等价于char*a;*a="ABCD":
    • B.char str[10]={"ABCD"}:等价于char str[10];str []={"ABCD"};
    • C.char*s="ABCD":等价于char s;*s="ABCD";
    • D.char c[5]="ABCD",d[5]="ABCD":等价于char c [5]-d[5]="ABCD";
  9. 下列叙述中错误的是(  )。

    • A.列表框和组合框都有List属性
    • B.列表框有Selected属性,而组合框没有
    • C.列表框和组合框都有Style属性
    • D.组合框有Text属性,而列表框没有
  10. 以下程序的输出结果是( )。

    main

    { int a[3][3]=“l,2),{3,4),{5,6)},i,j,s=0;

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

    for(j=0;j<=i;j++)s+=a[i][j];

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

    }

    • A.18
    • B.19
    • C.20
    • D.21
  11. 以下正确的字符串常量是( )。

    • A."\\\"
    • B.'abc'
    • C.Olympic Games
    • D.""
  12. 设有以下语句:

    int a=1,b=2,c;

    c=a^(b<<2);

    执行后,c的值为(   )。

    • A.6
    • B.7
    • C.8
    • D.9
  13. 有以下程序:

    main

    { int x,i;

    for(i=l;i<=50;i++)

    { x=i:

    if(x%2=0)

    if(x%3=0)

    if(X%7=0)

    printf(”%d,i)”;

    }

    输出结果是( )。

    • A.28
    • B.27
    • C.42
    • D.4l
  14. 运行下列程序时,若输入的数据为“1,2,3”,则输出结果是(   )。

    main

    { float a,b,c,t;

    scanf("%f,%f,%f",&a,&b,&c);

    if(a{t=a;a=b.b=t;)

    if(a

    {t=a;a=c;c=t;)

    it(b

    {t=b;b=C;c—=;)

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

    }

    • A.1.00 2.00 3.00
    • B.1.00 3.00 2.00
    • C.1 3 2
    • D.3.00000 2.00000 1.00000
  15. 设x=011050,则x=x&01252的值是( )。

    • A.0000001000101000
    • B.1111110100011001
    • C.0000001011100010
    • D.1100000000101000
  16. 定义结构体数组:

    struct stu

    { int num;

    char nameE20];

    }X[5]={1,"LI",2,"ZHAO",3,"WANG",4," ZHANG",5,"LIU");

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

    printf("%d%c",x[i].num,x[i].name[2]);

    以上程序段的输出结果为( )。

    • A.2A3N4A5U
    • B.112A3H4I
    • C.1A2N3A4U
    • D.2H3A4H5I
  17. 有以下程序段:

    int x=3;

    do

    {printf("%d",x-=2);)

    while(!(--x));

    其输出结果是( )。

    • A.1
    • B.3 0
    • C.1 -2
    • D.死循环
  18. 下列叙述中不正确的是( )。

    • A.在C语言中调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
    • B.在C的函数中,最好使用全局变量
    • C.外部变量可以在函数之间传递数据
    • D.自动变量实质上是一个函数内部的局部变量
  19. 有以下程序:

    main

    { union

    { char ch[2];

    int d;

    }s;

    d=0x4321;

    printf("%x,%x\n",S.ch[0],S.ch[l]);

    }

    在16位编译系统上,程序执行后的输出结果是( )

    • A.21,43
    • B.43,21
    • C.43,00
    • D.21,00
  20. 数据库系统的核心是( )。

    • A.数据模型
    • B.数据库管理系统
    • C.数据库
    • D.数据库管理员
  21. 语句:“printf("%d",(a=)&&(b=-2));”的输出结果是( )。

    • A.无输出
    • B.结果是不确定
    • C.-1
    • D.1
  22. 设int x=7,则~x的值是( )。

    • A.-8
    • B.7
    • C.-1
    • D.1
  23. 以下程序的输出结果是( )。

    #define M(x,y,z)x*y+z

    main( )

    { int a=l,b=2,c=3;

    printf("%d\n",m(a+b.b+c,c+a));

    }

    • A.19
    • B.1 7
    • C.15
    • D.12
  24. 作为信息处理热点技术之一的“多媒体技术”中的媒体,强调的是( )。

    • A.存储媒体
    • B.表现媒体
    • C.传输媒体
    • D.感觉媒体
  25. 若已包括头文件且已有定义char sl [18],s2={"ABCDE")和int i,现要将字符串”ABCDE”赋给sl,下列语句错误的是(   )。

    • A.strcpy(s1,s2)
    • B.strcpy(s1,"ABCDE");
    • C.sl="ABCDE";
    • D.for(i=0;i<6;i++)sl[i]=s2[i]
  26. 软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指( )。

    • A.模块间的关系
    • B.系统结构部件转换成软件的过程描述
    • C.软件层次结构
    • D.软件开发过程
  27. 视图设计一般有3种设计次序,下列不属于视图设计次序的是(  )。

    • A. 自顶而下
    • B.由内向外
    • C.由外向内
    • D.自底向上
  28. 当执行下面的程序时,如果输入ABC,则输出结罘是( )。

    #include 

    #include

    main( )

    { char ss[10]="1,2,3,4,5":

    gets(ss);strcat(ss,"6789");printf("%s\n",ss);

    }

    • A.ABC6789
    • B.ABC67
    • C.12345ABC6
    • D.ABC456789
  29. 下列程序的运行结果为(   )。

    #include

    main

    { struct date

    {int year,month,day;

    }today;

    printf("%d\n",sizeof(struct date));

    }

    • A.8
    • B.6
    • C.10
    • D.12
  30. 下列关于信息系统的叙述中,错误的是( )。

    • A.广播电视是一种双向的、点到多点的信息交互系自
    • B.网络聊天是一种双向的,以信息交互为主要目的系统
    • C.电话是一种双向的、点对点的、以信息交互为主要的的系统
    • D.雷达是一种以感测和识别为主要目的的系统
  31. 有以下程序:

    main

    { int i,n=0:

    for(i=2;i<5;i++)

    { do

    { if(i%3) continue:

    n++:

    }while(!i);

    n++:

    }

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

    }

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

    • A.n=5
    • B.n=2
    • C.n=3
    • D.n=4
  32. 已知字符'A'的ASCⅡ代码值是65,字符变量c1的直是'A',c2的值是'D'。执行语句printf("%d,%d",c1,c2-2);后,输出结果是( )。 

    • A.A,B
    • B.A,68
    • C.65,66
    • D.65,68
  33. 当用户要求输入的字符串中含有空格时,应使用的输入函数是( )。

    • A.scanf
    • B.getchar
    • C.gets
    • D.getc
  34. 若希望下列的程序运行后输出25,程序空白处的正确选项是( )。

    main

    { int i,j=50,a[]=(7,4,10,5,8};

    for( )

    j+=a[i];

    printf("%d",j-40);

    }

    • A.i=1;i<4;++i
    • B.i=l;i<3;++i c.i="4;i">2;i--
    • D.i=2;i<4;++i
  35. 若有以下的定义:‘int t[3][2];”,能正确表示t数组元素地址的表达式是( )。

    • A.&t[3][2]
    • B.t[3]
    • C.t[l]
    • D.t[2][2]
  36. 执行下列程序后,输出的结果是(   )。

    #include

    #define S(X) X*X

    void main

    { int a=9,k=3,m=2;

    • a/=S(k+m)/S(k+m):    printf("%d",a);    }
    • A.1
    • B.4
    • C.9
    • D.0
  37. 两个或两个以上模块之间联系的紧密程度称为(   )。

    • A.耦合性
    • B.内聚性
    • C.复杂性
    • D.数据传输特性
  38. 下列程序的输出结果是( )。

    #include

    main

    { int a=0,i;

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

    { switch(i)

    { case 0:

    case 3:a+=1;

    case 1;

    case 2:a+=2;

    default:a+=3;

    }

    }

    printf("%d",a);

    }

    • A.19
    • B.1
    • C.6
    • D.8
  39. 交换两个变量的值,不允许用临时变量,应该使用下列( )位运算符。

    • A.&
    • B.^
    • C.||
    • D.~
  40. 有如下程序:

    main

    { int a=2,b=-1.c=2;

    if(aelse c++;

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

    }

    该程序的输出结果是(   )。

    • A.0
    • B.1
    • C.2
    • D.3
  41. 以下叙述中正确的是(  )。

    • A.预处理命令行必须位于C源程序的起始位置
    • B.在C语言中,预处理命令行都以“#”开头
    • C.每个C程序必须在开头包含预处理命令行:#include
    • D.C语言的预处理不能实现宏定义和条件编译的功能
  42. 若有下列定义(设int类型变量占2个字节):

    int i=8,j=9;

    则下列语句:

    printf("i=%%d,j=%%d\n",i,j);

    输出的结果是(   )。

    • A.i=8,j=9
    • B.i=%d,j=%d
    • C.i=%8,j=%9
    • D.8,9
  43. 下列描述错误的是( )。

    • A.继承分为多重继承和单继承
    • B.对象之问的通信靠传递消息来实现
    • C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征
    • D.类是具有共同属性、共同方法的对象的集合