二级C语言分类模拟题535
选择题
1、有以下程序段:
    int x;
    for(x=3; x<6; x++)
    printf((x%2)?("**%d"): ("##%d\n"), x);
    程序段的输出结果是
    A.**3
      ##4
      **5
    B.##3
      **4
      ##5
    C.##3
      **4##5
      .
    D.**3##4
      **5
2、设x和y都是int类型,且x=1,y=2,则printf("%d%d",x,y,(x,y))的输出结果是(    )。
    A. 1 2    B. 1 2 2    C. 1,2    D. 输出值不确定
3、若有以下说明和定义:
    #include<stdio.h>
    main()
    { int(*a)(int*), *b(), w[10], c;
    }
    int fun(int*c){…}
    则以下选项中能正确调用fun函数是
    A.a=fun; a(w);    B.a=fun; (*a)(&c);    C.b=fun; *b(w);    D.fun(b);
4、若变量已正确定义,在if(W)printf("%d\n",k);中,以下不可替代W的是______。
    A.a==b+c    B.ch=getchar()    C.a<>b+c    D.a++
5、阅读以下程序:
    # include<stdio.h>
    main()
    { int case; float printF;
    printf("请输入2个数:");
    scanf("%d%f", &case,&printF.;
    printf("%d%f\n",case,printF.;
    }
    该程序在编译时产生错误,其出错原因是______。
    A.定义语句出错,case是关键字,不能用作用户自定义标识符
    B.定义语句出错,printF不能用作用户自定义标识符
    C.定义语句无错,scanf不能作为输入函数使用
    D.定义语句无错,printf不能输出case的值
6、有以下程序:
    # include <stdio.h>
    main()
    { char a,b,c;
    b='1';c='A';
    for(a=0;a<6;a++)
    {if(a%2) putchar(b+a);
    else putchar(c+a);
    }
    }
    程序运行后的输出结果是______。
    A.1B3D5F    B.ABCDEF
    C.A2C4E6    D.123456
7、下面对软件特点描述不正确的是______。
    A.软件是一种逻辑实体,具有抽象性
    B.软件开发、运行对计算机系统具有依赖性
    C.软件开发涉及软件知识产权、法律及心理等社会因素
    D.软件运行存在磨损和老化问题
8、下列叙述中正确的是______。
    A.存储空间不连续的所有链表一定是非线性结构
    B.节点中有多个指针域的所有链表一定是非线性结构
    C.能顺序存储的数据结构一定是线性结构
    D.带链的栈与队列是线性结构
9、设有宏定义:
    #define IsDIV(k,n)  ((k%n= =1)?1 : 0)
    且变量m已正确定义并赋值,则宏调用:
    IsDIV(m,5) && IsDIV(m,7)
    为真时所要表达的是______。
    A.判断m是否能被5和7整除    B.判断m被5和7整除是否都余1
    C.判断m被5或者7整除是否余1    D.判断m是否能被5或者7整除
10、按照C语言规定的用户标识符命名规则,不能出现在标识符中的是______。
    A.连接符    B.大写字母    C.数字字符    D.下划线
11、设有宏定义:
    #define IsDIV(k,n)((k%n==1)?1:0)
    且变量m已正确定义并赋值,则宏调用:
    IsDIV(m,5)&&IsDIV(m,7)
    为真时所要表达的是______。
    A.判断m是否能被5和7整除    B.判断m被5和7整除是否都余1
    C.判断m被5或者7整除是否余1    D.判断m是否能被5或者7整除
12、有以下程序
    #include<stdio.h>
    void swap(int*a,int*b)
    {int t,*tp;
    t=*a;*a=*b;*b=t;
    tp=a;a=b;b=tp;
    printf("%d,%d,",*a,*b);
    }
    main()
    {int i=3,j=7,*p=&i,*q=&j;
    swap(p,q);
    printf("%d,%d,%d,%d",i,j,*p,*q);
    程序执行后的输出结果是______。
    A.3,7,3,7,3,7    B.7,3,7,3,7,3    C.3,7,3,7,7,3    D.3,7,7,3,7,3
13、以下程序段给数组所有元素输入数据:
    #include  <stdio.h>
    main()
    { int a[10], i=0;
    while(i<10) scanf("%d", ______);
    }
    应在下划线处填入的是
    A.a+(i++)    B.&a[i+1]    C.a+i    D.&a[++i]
14、有如下定义:
    struct st
    { char name[12]; int age; char sex; } std[10], *p=std;
    以下语句错误的是______。
    A.scanf("%d", p->age);    B.scanf("%s",std[0].name);
    C.scanf("%d",&std[1].age);    D.scanf("%c",&(p->sex));
15、若有以下程序段:
    char str[4][12]={"aaa","bbbb","ccccc","dddddd"},*strp[4];
    int i;
    for(i=0;i<4;i++)strp[i]=str[i];
    则以下错误引用字符串的选项是(其中0≤k<4)______。
    A.*strp    B.str[k]    C.strp[k]    D.strp
16、有以下程序段:
    int j;float y;char name[50];
    scanf("%2d%f%s",&j,&y,name);
    当执行上述程序段,从键盘上输入55566 7777abc后,y的值为______。
    A.55566.0    B.566.0
    C.7777.0    D.566777.0
17、程序流程图中带有箭头的线段表示的是______。
    A.图元关系    B.数据流    C.控制流    D.调用关系
18、已定义以下函数
    int fun(int *P)
    { return *P;}
    fun函数返回值是______。
    A.一个整数    B.不确定的值
    C.形参p中存放的值    D.形参p的地址值
19、软件测试的目的是______。
    A.评估软件可靠性    B.发现并改正程序中的错误
    C.改正程序中的错误    D.发现程序中的错误
20、若有定义:float x=1.5;int a=1,b=3,c=2;,则正确的switch语句是______。
   A.switch(a+b)
   {case 1:printf("*\n");
   case 2+1:printf("**\n");}
   B.switch((int)x);
   {case 1:printf("*\n");
   case 2:printf("**\n");}
   C.switch(x)
   {case 1.0:printf("*\n");
   case 2.0:printf("**\n");}
   D.switch(a+b)
   {case 1:printf("*\n");
   case c:printf("**\n");}
21、下面程序的运行结果是______。
   #include<stdio.h>
   void del(char*s)
   {int i,j;
   char*a;
   a=s;
   for(i=0,j=0;a[i]!='\0';i++)
   {if(a[i]>='0'&&a[i]<='9')
   {s[j]=a[i];
   j++;
   }
   s[j]='\0';
   }
   }
   main()
   {char s[]="aa89gggh";
   del(s);
   printf("\n%s",s);
   }
   A.aa    B.89    C.gggh     D.aa89gggh
22、以下选项中表示一个合法的常量是(说明:符号□表示空格)______。
   A.9□9□9    B.0Xab
   C.123E0.2   printf函数的执行顺序 D.2.7e
23、有以下程序:
   #include
   #define S(x) (x)*x*2
   main()
   {   int k=5,j-2;
       printf("%d,",S(k+j));printf("%d\n",S((k-j)));