• 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;

    }


  • 相关阅读:
    烂泥:mysql修改本地主机连接
    烂泥:ESXI开启SNMP服务
    烂泥:【解决】VMware Workstation中安装ESXI5.0双网卡问题
    JS-日历签到
    CSS-文本(中,英)
    js-无缝向上滚动
    js-键盘回车搜索enter
    小程序-初次进入小程序的授权问题(授权更新后的完整步骤)button主动授权
    字蛛(font-spider)-单独压缩字体(解决页面少有的特殊字体的字体包引用)
    js-利用插件qrcode.min.js,前端实时生成二维码
  • 原文地址:https://www.cnblogs.com/yuhaojishuboke/p/5043128.html
Copyright © 2020-2023  润新知