一起答

2013年9月全国计算机等级《二级C语言程序设计》命题预测试卷三

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 下列给定程序的功能是:读入一个整数n(2<=n<= 5000),打印它的所有为素数的因子。例如,若输入整数1234,则应输出:2,617。

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

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

    试题程序:

    #include

    #include

    //****found****

    Prime(int m);

    {

    int j,P;

    p=1;

    //****found****

    for(j=2;j

    if!(m%j)

    {

    p=0;

    break;

    }

    return(p);

      int i,n;

    printf("\nplease enter an integer number between2

    and 5000:");

    scanf("%d",&n);

    printf("\n\nThe prime factor(s)of%d is(are):",n):

    for(i=2;i

    if((!(n%i))&&(Prime(i)))

    printf("%4d,",i);

    printf("\n");

    }

  2. 请编写函数proc,该函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。

    例如,若字符串数组中的M个字符串为:

    ABCD

    BCDEFG

    CDEFGHI

    则合并后的字符串内容应该是ABCDBCDEFGCDEF—GHl。

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

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

    试题程序:

    #include

    #include

    #define M 3

    #define N 20

    void proc(char arr[M][N],char*b)

    {

    }

    void main

    {

    char str[M][N]={"ABCD","BCDEFG","

    CDEFGHI"},i;

    char arr[100]={"#############

    #####");

    printf("The string:\n");

    for(i=0;i

    puts(str[i]);

    printf("\n");

    proc(str,arr);

    printf("The A string:\n");

    printf("%s",arr);

    printf("\n\n");

    }

  3. 请补充main函数,该函数的功能是:从键盘输入一个字符串及一个指定字符,然后把这个字符及其后面的所有字符全部删除。结果仍然保存在原串中。

    例如,输入“abcdefg”,指定字符为“d”,则输出“abe”。

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

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

    试题程序:

    #include

    #include

    #define M 80

    void main

    {

    int i=0;

    char str[M];

    char ch;

    system("CLS");

    printf("\n Input a strin9:\n");

    gets(str);

    printf("\n Input a charator;\n");

    scanf("%c",&ch);

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

    {

    if(str[i]==ch)

    【1】

    【2】

    }

    str[i]=【3】

    printf("\n***display string***\n");

    puts(str);

    }

  4. 对下述程序的判断中,正确的是( )。

    #include

    main( )

    { char*p,s[256];

    p=s ;

    while(strcmp(s,"the end"))

    { printf("Input the strin9:"); 

    gets(s);

    while(*p)

    putchar(*p++);

    }}

    • A.此程序循环接收字符串并输出,直到接收到字符串“the end”为止
    • B.此程序循环接收字符串,接收到字符串“the end”则输出,否则程序终止
    • C.此程序循环接收字符串并输出,直到接收字符串“the end”为止,但因为代码有错误,程序不能正常工作
    • D.此程序循环接收字符串并将其连接在一起,直到接收字符串“the end”为止,输出连接在一起的字符串
  5. 下列程序的执行结果是( )。

    #include

    main

    { int a,b,c;

    • a=b=2,c=I;
    • c=(a++)-1;printf("%d,0Ad",a,c);
    • c+=-a+++(++b);printf("%d,%d",a,c);    )
    • A.3,14,1
    • B.3,14,2
    • C.2,04,1
    • D.2,14,1
  6. 若有定义:“int*P,x=0,*p,p=&x;”,则语句“printf("%d\n",*p);”的输出结果是(   )。

    • A.随机值
    • B.0
    • C.x的地址
    • D.P的地址
  7. 以下程序的输出结果是(   )。

    int f(int A)

    { return a%2; }

    main

    {int s[8]={1,3,5,2,4,6},i,d=0;

    for(i=0;f(s[8]);i++)d+=s[i];

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

    }

    • A.9
    • B.11
    • C.19
    • D.21
  8. 关系数据库管理系统能实现的专门关系运算包括(  )。

    • A.排序、索引、统计
    • B.选择、投影、连接
    • C.关联、更新、排序
    • D.显示、打印、制表
  9. 下列程序中函数sort( )的功能是对数组a中的数据进行由大到小的排序。

    #include 

    void sort(int a[],int ll)

    { int i,j,t;

    for(i=0;i

    for(j=j+1+1;j

    if(a[i]{t=a[i];a[i]=a[j];a[j]=t;

    }

    }

    main( )

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

    sort(&a[1],7);

    for(i=0;i<10;i++)printf("%d,",a[i]);

    }

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

    • A.1,2,3,4,5,6,7,8,9,10,
    • B.10,9,8,7,6,5,4,3,2,1,
    • C.1,8,7,6,5,4,3,2,9,10,
    • D.1,2,10,9,8,7,6,5,4,3,
  10. 以下程序的输出结果是(   )。

    main

    {char str[][10]={"china","beijing"),*p=str;

    printf("%s\n",p+10);

    }

    • A.China
    • B.Beijing
    • C.ng
    • D.ing
  11. 以下程序的输出结果是(   )。

    void fun(int*a,int i,int i)

    {int t;

    if(i

    { t=a[i[;a[i]=a[j];a[j]一t;

    i++;j--;

     fun(a,i,j);

    }

    }

    main

    { int K[]={2,6,1,8},i;

    fun(x,0,3);

    for(i=0;i<1;i++)printf("%2d",x[i]);

    printf("\n");

    }

    • A.1,2,6,8
    • B.8,6,2,1
    • C.8,1,6,2
    • D.8,6,1,2
  12. 下列工具中为需求分析常用工具的是( )。

    • A.PAD
    • B.BFD
    • C.N-S
    • D.DFD
  13. 以三级模式为框架形成的3种数据库中,真实存在于计算机外存的数据库是(  )。

    • A.概念数据库
    • B.用户数据库
    • C.物理数据库
    • D.逻辑数据库
  14. 下列能正确定义且赋初值的语句是( )。

    • A.int n1=n2=1;
    • B.char C=99;
    • C.float f=f+1;
    • D.double x=1.2E5.6;
  15. 有以下程序

    #include

    void fun(int n,int*p)

    ( int f1,f2;

    if(n==1|| n==2)*p=1;

    else

    { fun(n-1,&f1);fun(n-2,&f2);

    *p=f1+f2;

    }

    }

    main

    { int s;

    fun(3,&s);printf("%d",s);

    }

    程序的运行结果是( )。

    • A.2
    • B.3
    • C.4
    • D.5
  16. 有下列程序:

    main

    { char*p[]={"3697","2584"};

    int i,j;long num=0;

    for(i=0;i<2:i++)

    { j=0;

    while(p[i][j]!='\0')

    { if((p[i][j]-'\0 ')%2)num=1O*num+p

    [j][j]-'0';

    j+=2;

    }

    }

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

    }

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

    • A.35
    • B.37
    • C.39
    • D.3975
  17. 设“int x=2,y=1;”,则表达式(!x|| Y--)的值是(  )。

    • A.0
    • B.1
    • C.2
    • D.-1
  18. 下列叙述中错误的是( )。

    • A.一种数据的逻辑结构可以有多种存储结构
    • B.数据的存储结构与数据的处理效率无关
    • C.数据的存储结构与数据的处理效率密切相关
    • D.数据的存储结构在计算机中所占的空间不一定是连续的
  19. 有下列程序:

    fun(int X,int y){return(x+y);}

    main

    { int a=1,b=2,c=3,sum;

    sum=fun((a++,b++,a+b),c++);

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

    }

    执行后的输出结果是( )。

    • A.6
    • B.7
    • C.8
    • D.9
  20. 设x=011050,则x=x&01252的值是(  )。

    • A.0000001000101000
    • B.1111110100011001
    • C.0000001011100010
    • D.1100000000101000
  21. 为了避免在嵌套的条件语句if else中产生二义性,C语言规定,else子句总是与(  )配对。

    • A.缩排位置相同if
    • B.其前面最近的if
    • C.其后面最近的if
    • D.同一行上的if
  22. 有以下函数

    int aaa(char*s)

    {char*t=s;

    while(*t+t);

    t--:

    return(t-s);

    }

    以下关于aaa函数的功能叙述正确的是( )。

    • A.求字符串S的长度
    • B.比较两个串的大小
    • C.将串S复制到串t
    • D.求字符串S所占字节数
  23. 设计软件结构是软件生命周期的( )。

    • A.软件定义期
    • B.软件开发期
    • C.软件维护期
    • D.以上3个都不是
  24. 有如下程序:

    #include

    main

    { FILE*fp1;

    fp1=fopen("f1.txt","w");

    fprintf(fp1,"abe");

    fclose(fp1);

    }

    若文本文件f1.txt中原有内容为:good。则运行以上程序后文件f1.txt中的内容为(   )。

    • A.goodabc
    • B.bcd
    • C.abc
    • D.abcgood
  25. 下述程序的输出结果是( )。

    #define N 20

    void fun(int a[],int n,int m)

    { int i,j;

    for(i=m;i>n;i--)a[i+1]=a[i];

    }

    main( )

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

    fun(a,2,9);

    for(i=0;i<5;i++)printf("%d",a[i]);

    }

    • A.10234
    • B.12344
    • C.12334
    • D.12234
  26. 以下关于typedef的叙述错误的是( )。

    • A.用typedef可以增加新类型
    • B.typedef只是将已存在的类型用一个新的名字来代表
    • C.用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名
    • D.用typedef为类型说明一个新名,通常可以增加程序的可读性
  27. 设有以下定义和语句:

    char str[2O]="Program",*P:

    p=str:

    则以下叙述中正确的是( )。

    • A.*p与stf[0]的值相等
    • B.str与P的类型完全相同
    • C.str数组长度和P所指向的字符串长度相等
    • D.数组str中存放的内容和指针变量P中存放的内容相同
  28. 若有下列定义,则对a数组元素地址的正确引用是( )。

    int a[5],*p=a;

    • A.p+5
    • B.*a+1
    • C.&a+1
    • D.&a[0]
  29. 若要用函数fopen打开一个新的二进制文件,该文件要既能读也能写,则应以( )方式打开文件。

    • A."wb"
    • B."wb+"
    • C."rb+"
    • D."rb"
  30. 有以下程序:

    #include

    main( )

    { char cl='1',c2='2';

    cl=getchar( );c2=getchar( );putchar(c1);putcha:

    (c2);

    }

    当程序运行时输入a<回车>后,下列叙述中正确的是( )。

    • A.变量c1被赋予字符a,c2被赋予回车符
    • B.程序将等待用户输入第2个字符
    • C.变量c1被赋予字符a,c2中仍是原有字符2
    • D.变量c1被赋予字符a,c2中将无确定值
  31. 若有以下说明,则(  )不是对strcpy库函数正确的调用。strcpy库函数用于复制一个字符串:char*strl="abCd",str2[10],*str3="hijklmn",*str4[2],*str5="aaaa";

    • A.strcpy(str2,strl)
    • B.strcpy(str3,strl)
    • C.strcpy(strl,str2)
    • D.strcpy(str5,strl)
  32. 若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是(  )。

    • A.bdgcefha
    • B.gdbecfha
    • C.bdgaechf
    • D.gdbehfca
  33. 若希望下列的程序运行后输出25,程序空白处的正确选项是( )。

    main

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

    for( )

    j+=a[i];

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

    }

    • A.i=l;i<4;++i
    • B.i=1;i<3;++i
    • C.i=4;i>2;i--
    • D.i=2;i<4;++i
  34. 源程序的文档不包括( )。

    • A.符合号名的命名要有实际意义
    • B.正确的文档形式
    • C.良好的视觉组织
    • D.正确的程序注释
  35. 下列程序的运行结果是( )。

    #include 

    main

    { int a=2,b=3,c=4:

    if(aif(b<0)C=0:

    else c++;

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

    }

    • A.2
    • B.3
    • C.5
    • D.4
  36. 设有如下关系表:

    则下列操作中正确的是( )。

    • A.T=R∩S
    • B.T=R∪S
    • C.T=R×S
    • D.T=R/S
  37. 在数据库设计中,将E—R图转换为关系模式的过程属于( )。

    • A.需求分析阶段
    • B.逻辑设计阶段
    • C.概念设计阶段
    • D.物理设计阶段
  38. 下列选项中不会引起二义性的宏定义是( )。

    • A.#define S(x) x*x
    • B.#define S(x) (x)*(x)
    • C.#define S(x) (x*x)
    • D.#define S(x) ((x)*(x))
  39. 数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是( )。

    • A.DB包含DBS和DBMS
    • B.DBMS包含DB和DBS
    • C.DBS包含DB和DBMS
    • D.没有任何关系
  40. 若ch为char型变量,k为int型变量(已知字符a的ASCII码是97),则执行下列语句后输出的结果为( )。

    cb='b';

    k=10;

    printf("%X,%o,”,ch,ch,k);

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

    • A.因变量类型与格式描述符的类型不匹配,输出无定值
    • B.输出项与格式描述符个数不符,输出为0值或不定值
    • C.62,142,k=%d
    • D.62,142,k=%10
  41. 若变量均已正确定义并赋值,以下合法的C语言赋值语句是( )。

    • A.x=y==5;
    • B.X=n%2.5:
    • C.x+n=i;
    • D.x=5=4+1:
  42. 以下程序的输出结果是( )。

    main

    { char st[20]="hello\0\t\\\";

    printf("%d%d\n",strlen(st).sizeof(st));

    }

    • A.9 9
    • B.5 20
    • C.13 20
    • D.20 20
  43. 下列选项中不属于软件生命周期开发阶段任务的是(  )。

    • A.软件测试
    • B.概要设计
    • C.软件维护
    • D.详细设计