iOS 开发 c语言阶段考试题

//

//  main.m

//  c语言考试

//

//  Created by dllo on 15/10/21.

//  Copyright (c) 2015 dllo. All rights reserved.

//


#import <Foundation/Foundation.h>


int main(int argc,const char * argv[]) {

    

   

 

    

    选择题(共40题,每题2分)

    1、在下列程序段中,枚举变量 c1的值是:

   enum color { red,yellow,blue=4,green,white}c1;

    c1=yellow;

    c1=white;

   答案:(D

    A1

    B3

    C5

    D6

    2、若已定义XYdouble型,则表达式:x=1,y=x+3/2的值是:

   答案:(C

    A1

    B2

    C2.0

    D2.5

    3、若有说明:int a[3][4];则对a数组元素的非法引用是:

   答案:(D

    Aa[0][2*1]

    Ba[1][3]

    Ca[4-2][0]

    Da[0][4]

    4、下面不正确的字符串常量是:

   答案:(A

    A'abc'

    B"12'12"

    C"0"

    D" "

    5、设有以下定义,值为5的枚举常量是:

   enum week{sunmon=4tuewedthufrisat} w;

   答案:(A

    Atue

    Bsat

    Cfri

    Dthu

    6、当c的值不为0时,在下列选项中能正确将c的值赋给变量ab的是:

   答案:(C

    Ac=b=a;

    B(a=c)||(b=c);

    C(a=c)&&(b=c);

    Da=c=b;

    7、以下程序的输出结果是:

    main()

    {

       int a,b,d=241;

        a=d/100%9;

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

        printf("%d,%d ",a,b);

    }

   答案:(B

    A6,1

    B2,1

    C6,0

    D2,0

    8、以下定义语句中正确的是:

   答案:(C

    Achar a='A' b='B';

    Bfloat a=b=10.0;

    Cint a=10,*b=&a;

    Dfloat *a,b=&a;

    9、要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是:

       答案:(A

        Awhile((ch=getchar())!='N') printf("%c",ch);

    Bwhile(ch=getchar()!='N') printf("%c",ch) ;

    Cwhile(ch=getchar()=='N') printf("%c",ch);

    Dwhile((ch=getchar())=='N') printf("%c",ch);

    10、若有以下定义和语句:

   int u=010,v=0x10,w=10;

    printf("%d,%d,%d ",u,v,w);

    则输出结果是:

   答案:(A

    A8,16,10

    B10,10,10

    C8,8,10

    D8,10,10

    11、若执下面程序时从键盘上输入5

    main()

    {

       int x;

        scanf("%d",&x);

       if(x++>5) printf("%d ",x);

       else printf("%d ",x--);

    }

    则输出是:// 先打印输出,--

   答案:(B

    A7

    B6

    C5

    D4

    12、按照c语言规定的用户标识符命名规则,不能出现在标识符中的是:

   答案:(B

    A、大写字母

    B、连接符

    C、数字字符

    D、下划线

    13、执行下面的程序段后,变量k中的值为

    s[0]=k;

    k=s[1]*10;

   答案:(A

    A、不定值

    B33

    C30

    D10

    14、以下不正确的if语句形式是:

       答案:(C

        Aif(x>y&&x!=y)t=x++;

    Bif(x==y) x+=y;

    Cif(x!=y) scanf("%d",&x)else scanf("%d",&y);

    Dif(x<0)x++;

    15、当调用函数时,实参是一个数组名,则向函数传送的是:

   答案:(B

    A、数组的长度

    B、数组的首地址

    C、数组每一个元素的地址

    D、数组每个元素的值

    16、表达式3.6-5/2+1.2+5%2的值是:

   答案:(D

    A4.3

    B4.8

    C3.3

    D3.8

    17、以下程序的输出结果是:

    main( )

    {

       int k=17

        printf("%d%o%x "kkk);

    }

   答案:(D

    A170210x11

    B171717

    C170x11021

    D172111

    18、在一个C程序中:

   答案:(B

    Amain函数必须出现在所有函数之前;

    Bmain函数可以在任何地方出现;

    Cmain函数必须出现在所有函数之后;

    Dmain函数必须出现在固定位置

    19C语言源程序的基本单位是:

   答案:(B

    A、过程

    B、函数

    C、子程序

    D、标识符

    20、表示关系12<=x<=yC语言表达式为:

   答案:(B

    A(12<=x)&(x<=y)

    B(12<=x)&&(x<=y)

    C(12<=x)|(x<=y)

    D(12<=x)||(x<=y)

    21、若要求定义具有10int形元素的一维数组array,则以下的定义语句错误的是:

   答案:(D

    A#define N 10

   int a[N];

    B#define n 5

   int a[2 * n];

    Cint a[5 + 5];

    Dint n = 10,a[n] = {0};

    22、以下代码的输出结果为:

   int array[3] = {1,4};

   for(int i = 0;i < 3;i++)

    { printf(“%d ”,array[i]); }

   答案:(A

    A1 4 0

    B0 1 4

    C1 0 4

    D1 4 4

    23、设ik都是int类型,则for循环语句:

       for(i=0,k=-1;k=1;i++,k++) printf("**** ");

   答案:(D

    A、循环结束的条件不合法

    B、循环体一次也不执行

    C、循环体只执行一次

    D、是无限循环

    24、以下程序执行后sum的值是:

    main()

    {

       int i,sum;

       for(i=1;i<6;i++) sum+=i;

        printf("%d ",sum);

    }

   答案:(C

    A15

    B14

    C、不确定

    D0

    25、如有定义int * p = malloc(15);pint型数组使用,最多可以使用多少元素:

   答案:(A

    A3

    B4

    C15

    D16

    26、设int x=1, y=1; 表达式(!x||y--)的值是:

   答案:(B

    A0

    B1

    C2

    D-1

    27、以下程序的输出结果为:

#define ADD(x) x*x

    main( )

    {

       int a=4,b=6,c=7,d=ADD(a+b)*c;

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

    }

   答案:(A

    Ad=70

    Bd=80

    Cd=140

    Dd=700

    28、若执行下面程序时:

   int x;

    scanf("%d",&x);

   if(x++ > 5){ printf( "%d ",x)};

   else{ printf("%d ",++x)};

    从键盘上输入5,则输出是:

   答案:(A

    A7

    B6

    C5

    D4

    29、函数调用:strcat(strcpy(str1,str2),str3)的功能是:

   答案:(C

    A、将串str1复制到串str2中后再连接到串str3之后

    B、将串str1连接到串str2之后再复制到串str3之后

    C、将串str2复制到串str1中后再将串str3连接到串str1之后

    D、将串str2连接到串str1之后再将串str1复制到串str3

    30、以下代码的输出结果为:

   void fun(int x,int y)

    {int temp;

       if(x < y)

        { temp = x ; x = y ; y = temp; }

    }

    main()

    {

       int a = 4,b = 3,c = 5;

        fun(a,b);fun(a,c);fun(b,c);

        printf("%d,%d,%d ",a,b,c);

    }

   答案:(C

    A3,4,5

    B5,3,4

    C4,3,5

    D5,4,3

    31、设有以下定义:

#define N 3

#define Y(n) ((N+1)*n)

   则执行语句:z=2 * (N+Y(5+1));,z的值为:

   答案:(C

    A、出错

    B42

    C48

    D54

    32、以下程序的输出结果为:int i;

   void prt( )

    {

       for(i=5;i<8;i++) printf("%c",'*');

        printf("");

    }

    main( )

    {

       for(i=5;i<=8;i++) prt( );

    }

   答案:(A

    A***

    B*** *** *** ***

    C*** ***

    D* * *

    33、以下循环体的执行次数是:

    main()

    {

       int i,j;

       for (i=0,j=1; i<=j+1;i+=2,j--)

            printf("%d ",i);

    }

   答案:(C

    A3

    B2

    C1

    D0

    34、设变量定义为int x , *p = &x;&(*p)相当于:

   答案:(C

    A*(&x)

    B*p

    Cp

    Dx

    35、在C语言程序中,以下说法正确的是:

   答案:(B

    A、函数的定义可以嵌套,但函数的调用不可以嵌套

    B、函数的定义不可以嵌套,但函数的调用可以嵌套

    C、函数的定义和函数的调用都不可以嵌套

    D、函数的定义和函数的调用都可以嵌套

    36、现有一个函数的功能是求出一个元素在数组中的索引,以下该函数的声明正确的是:

   答案:(A

    Aint getIndex(int *a,int count,int n);

    Bvoid getIndex(int a[],int count,int n);

    Cint getIndex(int a[],int count);

    Dvoid getIndex(int *a,int count);

    37、利用宏,求三个数中的最大值,一下宏定义正确的是:

   答案:(A

    A#define MAX(a,b,c) ((a)>(b)?(a):(b))>c?((a)>(b)?(a):(b)):(c)

    B#define MAX(a,b,c) (a>b?a:b)>c?(a>b?a:b):c

    C#define MAX(a,b,c) (a)>(b)?(a):(b)>c?((a)>(b)?(a):(b)):(c)

    D#define MAX(a,b,c) a>b?a:b>c?(a>b?a:b):c

    38、动态分配内存,定义一个int型的包含12个元素的数组,如下定义正确的是:

   答案:(A

    Aint *p = malloc(sizeof(int)*12);

    Bint a[12] = malloc(12,sizeof,int);

    Cint a[12] = calloc(12,sizeof(int));

    Dint *p = calloc(sizeof(int)*12)

    39、设变量定义为int x,*p=&x;&*p相当于:

   答案:(A

    Ap

    B*p

    Cx

    D*&x

    40、有以下程序

    main()

    {

       int k=5,n=0;

       while(k>0)

        {

           switch(k)

            {

               default : break;

               case 1: n+=k;

               case 2:

               case 3: n+=k;

            }

            k--;

        }

        printf("%d ",n);

    }

    程序运行后的输出结果是:

   答案:(D

    A0

    B4

    C6

    D7

    判断题(共10题,每题2分)

    1、字符串在内存中的起始地址称为字符串的指针,可以定义一个字符指针变量指向一个字符串

   答案:(T

   正确

   错误

    2char *s="C Language";表示s是一个指向字符串的指针变量,把字符串的首地址赋予s

   答案:(T

   正确

   错误

    3、用字符串方式赋值比用字符逐个赋值要多占一个字节,用于存放字符串结束标志''

   答案:(T

   正确

   错误

    4、内存单元的地址与内存单元中的数据是两个完全相同的概念

   答案:(F

   正确

   错误

    5continue不是结束本次循环,而是终止整个循环的执行。

   答案:(F

   正确

   错误

    6、在switch语句中,每一个的case常量表达式的值可以相同。

   答案:(F

   正确

   错误

    7char *p="girl";的含义是定义字符型指针变量pp的值是字符串"girl"

   答案:(F

   正确

   错误

    8do...while循环至少要执行一次循环语句。

       答案:(T

       正确

       错误

        9int a=24; printf("%o ", a );输出结果是30

   答案:(T

   正确

   错误

    10、直接访问就是直接利用变量的地址进行存取直接访问

   答案:(T

   正确

   错误

    [关闭]


   return 0;

}


posted @ 2015-11-02 20:47  挽月细数风流  阅读(712)  评论(0编辑  收藏  举报