http://www.educity.cn 作者:pc 来源:希赛教育
 1.以下程序运行后,输出结果是()

    #include
    ss(char *s)
    {char *p=s;
    while(*p)p++;
    return(p-s);
    }
    main()
    {char*a="abded";
    inti;
    i=ss(a);
    printf("%d\n",i);
    }

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

    2.若有如下程序:

    int sub()
    {static int n=1;
    int x=1;
    x*=n;n++;
    return x;}
    main()
    {int n,t=1;
    for(n=1;n<6;n++)t*=sub();
    printf("%d\n",t);}

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

    A)15    B)120    C)34560    D)-30976

    3.在C语言中,函数的隐含存储类别是()

    A)static    B)auto    C)extern    D)register 

   4.有以下程序:

    intf1(doublea)
    {returna*a; }
    intf2(doublex,doubley)
    {doublea,b;
    a=f1(x);
    b=f1(y);
    returna+b;
    }
    main()
    {doublew;
    w=f2(1.1,2.0);
    …
    }

    变量w中的值是()

    A)5.21    B)5    C)5.0    D)0.0

    5.下面被调用函数sub的函数值的类型是()

    sub(float a)
    {float b;
    b=a*a+1;
    return b;}

    A)单精度型    B)双精度型    C)空类型    D)整型

    6.若有以下定义语句:

    doublea[5];inti=0;

    能正确给a数组元素输入数据的语句是()

    A)scanf("%lf%lf%lf%lf%lf",a);

    B)for(i=0;i<=5;i++)scanf("%lf",a+i);

    C)while(i<5)scanf("%lf",&a[i++]);

    D)while(i<5)scanf("%lf",a+i); 

 7.以下程序的输出结果是()

    main()
    { charss[16]="test\0\n\"";
    printf("%d,%d\n",strlen(ss),sizeof(ss));
    }

    A)4,16    B)7,7    C)16,16    D)4,7

    8.以下说法正确的是()

    A)宏定义是C语句,所以要在行末加分号

    B)可以使用#undef命令来终止宏定义的作用域

    C)在进行宏定义时,宏定义不能层层置换

    D)对程序中用双引号括起来的字符串内的字符,与宏名相同的要进行置换

    9.以下程序的输出结果是()

    #include
    main()
    {struct stru{int a,b;
    char c[6];
    };
    printf("%d\n",sizeof(stru));
    }

    A)2    B)4    C)8    D)10

    10.若有如下定义:

    int s[3];

    则下面表达式中不能代表数组元素s[1]的地址的是()

    A)&s[1]    B)&s[0]+1    C)s+1    D)s++

    答案:1.D 2.B 3.C 4.C 5.D 6.C 7.A 8.B 9.D 10.D