【转】C语言面试专用题库

1. 能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是    (C)

A.(x >= 1) && (x <= 10)&& (x >= 200) && (x <= 210)

       B. (x >= 1) || (x <= 10) || (x >= 200) || (x <= 210)

       C. (x >= 1) && (x <= 10) || (x >= 200) && (x<= 210)

       D.(x >= 1) || (x <= 10) && (x >== 200) || (x <= 210)

 

   2.若有以下定义:

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

       int (*p)[3]=x;

则能够正确表示数组元素x[1][2]的表达式是    (D)

       A.*((*p+1)[2)

       B.(*p+1)+2

       C.*(*(p+5))

       D.(*(p+1)+2)

 

    3. 以下选项中,合法的一组C语言数值常量是    (D)

       A. 0x8A 10,000  3.e5

       B.177  4e1.5  0abc

       C.028  .5e-3  -0xf

       D.12. 0Xa23  4.5e0

 答案:4.5e0是4.5乘以10的0次方,就是浮点数4.5。3.e5这个是不对的,正确的表示方法是3e5 3E5 3.0e5。指数形式的格式由两部分组成:十进制小数形式或十进制整型常量部分和指数部分。其中指数部分是在 e 或 E(相当于数学中幂底数 10)后跟整数阶码(即可带符号的整数指 数)。

0xa23才是十六进制的数值常量,转换为十进制为10*16*16+2*16+3*1=2595.
0开头是八进制,所以028不对,八进制是0~7,没有8

   4.以下程序

        #include “stdio.h”

        main()

        {

         int a, b, d = 241;

         a = d / 100 % 9;

         b = (-1) && (-1);

         printf(“%d, %d”, a, b);

}

 

其运行结果是    (B)

        A.6, 1

        B.2, 1

        C.6, 0

        D.2, 0

 

    5.下面程序的功能是计算1至10之间的奇数之和及偶数之和。

#include “stdio.h”

        main()

        {

         int a, b, c, i;

         a = c = 0;

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

         {

        a += i;

【1】;

          c += b;

         }

         printf(“偶数之和=%d\n”, a);

         printf(“奇数之和=%d\n”, c-11);

        }

则【1】中的内容应为    (B)

       A.b = i--

       B.b = i+1

       C.b = i++

       D.b = i-1

 

   6. 以下选项中可用作C程序合法实数的是    (D)

       A.E9

       B.9.12E

       C.3.0e1.2

       D.1.00E-01

 

   7. 若有说明:int a [ 3 ][4 ]={0};则下面正确的叙述是    (D)

       A.只有元素a[0][0]可得到初值。

B.此说明语句不正确

        C.数组a 中各元素都可得到初值,但其值不一定为0

        D.数组a 中每个元素均可得到初值0

 

    8.对两个静态变量k1,k2进行初始化:

static chark1="A";

         static char k2='A';

则下列叙述正确的是    (A)

        A.上述语句有错误

B.K1=K2='A'

       C.K1是字符串,K2是字符

       D.K1是字符,K2是字符串

 

9.char a = ‘\70’;则变量a中    (A)

       A.包含1个字符

B.包含2个字符

        C.包含3个字符

        D.说明不合法

 

    10. 下面四个选项中,均是非法常量的选项是    (A)

       A.‘as’  -0fff ‘\0xa’

       B.‘\\’  ‘\01’  12,456

       C.-0x18  01177  0xf

       D.0xabc  ‘\0’  “a”

 

   11.设 charc1='a',c2='A';则表达式 c1==c2+32?c1:(c1=c2+32)的值为    (C)

       A.1

       B.0

       C.'a'

       D. 'A‘

 

   12.请读程序:

       # define LETTER  0

       main ( )

       { char str〔 20 〕=”C Language”,c ;

       int i ;

       i=0 ;

       while ( ( c = str 〔 i 〕)!=”\n”)

            { i + + ;

            # if LETTER

                 if ( c > = ‘a’&&<= ‘z’)

                     c = c-32 ;

            # else

                  if ( c > = ‘A’&&c< = ‘ Z ’ )

                      c = c+32 ;

         # endif

               printf ( “ % c ” , c ) ;

上面程序的运行结果是    (B)

       A.C Language

       B.c language

       C.C LANGUAGE

       D.c IANGUAGE

 

13.若有以下定义,

        int x[10]={0,1,2,3,4,5,6,7,8,9),*pl;

 

则数值不为3 的表达式    (C)

       A.x[3]

       B.pl=x+3,*pl++

       C.pl=x+2,*(pl++)

       D.pl=x+2,*++pl

 

   14.若有以下定义,

       int a[5],*p=a;

则对a 数组元素的正确引用是    (D)

A.p+5

       B.*a+1

       C.&a+1

       D.&a[0]

 

   15.假设所有变量均为整形,则表达式(a = 2, b = 5, b++, a + b)的值是    (B)

       A.7

       B.8

       C.6

       D.2

 

16.设有定义:int x=2;,以下表达式中,值不为6的是    (D)

A.x*=(1+x)

       B.x*=x+1

       C."x++,2*x"

       D."2*x,x+=2"

 

17. 以下可作为函数fopen 中第一个参数的正确格式是    (D)

A.c: user \ t ext . txt

       B.c: \ u Ser \ t ext . txt

       C.“c : \user\text.txt”

       D. “c:\\user \\text . txt "

 

   18. char p;

       char buf[10] = {1, 2, 3, 4, 5, 6, 9, 8};

       p = (buf + 1)[5];

printf("%d\n,p);

以上代码输出结果为    (B)

        A.6

        B.9

        C.8

        D.编译出错

 

    19.设有以下语句:

        char x = 3 , y = 6 , z ;

        z =x ^ y << 2 ;

则z 的二进制值是    (B)

        A.10100

        B.11011

        C.11100

        D.11000

 

    20.若有以下定义和赋值语句,

int s[2][3]={0},(*p)[3];

        p=s;

 

则对s数组的第i行第j列(假设i,j已正确说明并赋值)元素地址的合法引用为    (A)

       A.*(*(p+i)+j)

       B.*(p[i]+j)

       C.(p+i)+j

       D.(*(p+i)){j}

  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值