高級(jí)語(yǔ)言程序設(shè)計(jì)模擬試卷(四)

字號(hào):

模擬試卷(四)
    一、單項(xiàng)選擇題(在本題的每一小題的備選答案中只有一個(gè)答案是正確的,請(qǐng)把你認(rèn)為正確答案的題號(hào),填入題干的括號(hào)內(nèi)。多選不給分。每題1分,共20分)
    1.以下各選項(xiàng)中,均是c語(yǔ)言保留字的組是( )。
     (1)integer、floa、double (2)If、else、switch
     (3)struct、union、enum (4)auto、static、external
    2.執(zhí)行下述程序的輸出結(jié)果是( )。
     #include
     main()
     {
     int a,b,c=246;
     a=c/100%9;
     b=(-1)&&(-1);
     printf("%d,%d\n",a,b);
     }
     (1)2,1 (2)3,2 (3)4,3 (4)2,-1
    3.與語(yǔ)句
     y=(x>0?1:x<0?-1:0);
     的功能相同的if語(yǔ)句是( )。
     (1)if (x>0) y=1; (2)if (x)
     else if (x0) y=-1; if (x>0) y=1;
     else y=0; else if (x<0) y=-1;
     else y=0;
     (3)y=-1; (4)y=0;
     if (x) if (x>=0)
     if (x>0) y=1; if (x>0) y=1;
     else if (x==0) y=0; else y=-1;
     else y=-1;
    4.兩次運(yùn)行下述程序,如果從鍵盤上分別輸入6和4,則輸出結(jié)果是( )。
     #include
     main()
     {
     int x;
     xcanf("%d",&x);
     if (x++>5)
     printf("%d\n",x);
     else
     printf("%d\n",x--);
     }
     (1)7和5 (2)6和3 (3)7和4 (4)6和4
    5.執(zhí)行下述程序的輸出結(jié)果是( )。
     #include
     main()
     {
     int x=3;
     do
     {
     printf("%d\n",x-=2);
     } while (!(--x));
     }
     (1)1 (2)1 (3)3 (4)死循環(huán)
     -2 0
    6.執(zhí)行下述程序的輸出結(jié)果是(  ?。?。
     #include
     main()
     {
     int x=10,y=10,i;
     for (i=0;x>8;y++i)
     printf("%d %d",x--,y);
     printf("\n");
     }
     (1)10 1 9 2 (2)9 8 7 6 (3)10 9 9 0 (4)10 10 9 1
    7.運(yùn)行以下程序后,如果從鍵盤上輸入
     China#
     則輸出結(jié)果為( )。
     #include
     main()
     {
     int v1=0,v2=0;
     char ch;
     while ((ch=getchar())!='#')
     {
     switch (ch)
     {
     case 'a':
     case 'h':
     default :v1++;
     case 'o':v2++;
     }
     }
     printf("%d,%d\n",v1,v2);
     }
     (1)2,0 (2)5,0 (3)5,5 (4)2,5
    8.執(zhí)行下述程序后的輸出結(jié)果是( )。
     #include
     main()
     {
     int n[3],i,j,k;
     for (i=0;i<3;i++)
     n[i]=0;
     k=2;
     for (i=0;i     for (j=0;j     n[j]=n[i]+1;
     printf("%d\n",n[1]);
     }
     (1)2 (2)1 (3)0 (4)3
    9.以下帶初始賦值的二維數(shù)組說(shuō)明語(yǔ)句中語(yǔ)法正確的是( )。
     (1)int a[2][]={{1,0,1},{5,2,3}};
     (2)int a[][3]={{1,2,3},{4,5,6}};
     {3}int a[2][4]={{1,2,3},{4,5},{6}}
     (4)int a[][3]={{1,0.1},{},{1,1}};
    10.若有以下的定義
     int a[]={1,2,3,4,5,6,7,8,9,10},*p=a;
     則值為3的表達(dá)式是( )。
     (1)p+=2,*(p++) (2)p+=2,*++p
     (3)p+=3,*p++ (4)p+=2,++*p
    11.下面程序的運(yùn)行結(jié)果是( )。
     #include
     main()
     {
     char a[]="programming",*p;
     p=a;
     while (*p!='i')
     {
     printf{"%c",*p-32);
     p++;
     }
     printf("E\n");
     }
     (1)PROG (2)programmE (3)PROGRAMME (4)PROGRAMM
    12.設(shè)有如下定義
     int (*ptr) ();
     則以下敘述中正確的是( )。
     (1)ptr是指向一維數(shù)組的指針變量
     (2)ptr是指向int型數(shù)據(jù)的指針變量
     (3)ptr是指向函數(shù)的指針,該函數(shù)返回一個(gè)int型數(shù)據(jù)
     (4)ptr是一個(gè)函數(shù)名,該函數(shù)的返回值是指向int型數(shù)據(jù)的指針
    13.設(shè)有下述函數(shù)定義
     int stlen (char *s)
     {
     int n=0;
     while (*s++)
     n++;
     return (n);
     }
     若調(diào)用此函數(shù)時(shí),字符指針s所指向的字符串是"I love this game.",則函數(shù)的返回值是( )。
     (1)17 (2)16 (3)18 (4)0
    14.執(zhí)行下述程序的輸出結(jié)果是( )。
     #include
     func(int x)
     {
     static int a=3;
     a+=x;
     return (a);
     }
     main()
     {
     int k=2,m=1,n;
     n=func(k);
     n+=func(m);
     printf("%d\n",n);
     }
     (1)8 (2)9 (3)11 (4)14
    15.執(zhí)行下述程序的輸出結(jié)果是( )。
     #include
     sub1(char a,char b)
     {
     char c;
     c=a;
     a=b;
     b=c;
     }
     sub2(char *a,char b)
     {
     char c;
     c=*a;
     *a=b;
     b=c;
     }
     sub3(char *a,char *b)
     {
     char c;
     c=*a;
     *a=*b;
     *b=c;
     }
     main()
     {
     char a,b;
     a='A';b='B';
     sub3(&a,&b);
     putchar (a);
     putchar (b);
     a='A'; b='B';
     sub2(&a,b);
     putchar(a);
     putchar(b);
     a='A';b='B';
     sub1(a,b);
     putchar(a);
     putchar(b);
     printf("\n");
     }
     (1)BABBAB (2)ABBBBA (3)BABABA (4)BAABBA
    16.以下程序運(yùn)行后,輸出結(jié)果是( )。
     #include
     func(int a,int b)
     {
     static int m=0,i=2;
     i+=m+1;
     m=i+a+b;
     return (m);
     }
     main()
     {
     int k=4,m=1,p;
     p=func(k,m);
     printf("%d,",p);
     p=func(k,m);
     printf("%d\n",p);
     }
     (1)8,15 (2)8,16 (3)8,17 (4)8,8
    17.以下所寫結(jié)構(gòu)體類型定義和變量說(shuō)明中,語(yǔ)法上有錯(cuò)誤的是( )。
     (1)struct item
     {
     int num;
     struct item *next;
     };
     struct item *head;
     (2)struct item
     {
     int num;
     struct item *next;
     } *head;
     (3)#defime ITEM struct item
     ITEM
     {
     int num;
     ITEM *next;
     };
     ITEM *head;
     (4)struct item
     {
     int num;
     struct item *next;
     };
     item *head;
    18.執(zhí)行下述程序的輸出結(jié)果是(  ?。?。
     #include
     main()
     {
     union
     {
     char c[4];
     int i[2];
     } u;
     int m;
     u.i[0]=ox4142;
     u.i[1]=ox6162;
     for (m=0;m<4;m++)
     printf("%c",u.c[m]);
     printf("\n");
     }
     (1)abAB (2)baBA (3)ABab (4)BAba
    19.設(shè)a是一個(gè)一維數(shù)組變量,其說(shuō)明如下:
     int a[5];
     若已知fp是指向某個(gè)已打開(kāi)的磁盤文件的文件指針,則下面函數(shù)調(diào)用語(yǔ)句中不正確的是( )。
     (1)fread (a[0],sizeof(int),5,fp);
     (2)fread (&a[0],5*sizeof(int),1,fp);
     (3)fread (a,sizeof(int),5,fp);
     (4)fread(a,5*sizeof(int),1,fp);
    20.指向如下程序后,輸出結(jié)果為( )。
     #include
     #define N 4+1
     #define RE 5*M+M*N
     main()
     {
     printf("%d\n",RE/2);
     }
     (1)150 (2)100 (3)41 (4)以上結(jié)果均不正確