高級語言程序設(shè)計模擬試卷(六)

字號:

模擬試卷(六)
    一、單項選擇題(在本題的每一小題的備選答案中只有一個答案是正確的,請把你認(rèn)為正確的答案的題號,填入題干的括號內(nèi)。多選不給分。每題1分,共20分)
    1.執(zhí)行語句
     printf("%d\n",12&012);
     的輸出結(jié)果是( )。
     (1)12 (2)8 (3)6 (4)012
    2.若設(shè)n是個整型變量且已有值,則與給定條件表達(dá)式
     (!n)?n+10:n-10
     等價的條件表達(dá)式是( )。
     (1)(n!=0)?n+10:n-10 (2)(n!=1)?n+10:n-10
     (3)(n==0)?n+10:n-10 (4)(n==1)?n+10:n-10
    3.設(shè)有程序
     #include
     main()
     {
     int x=3,y=0,z=0;
     if (x=y+z)
     printf("****\n")
     else
     printf("####\n");
     }
     則以下敘述正確的是( )。
     (1)程序有語法錯誤,不能通過編譯
     (2)程序可執(zhí)行,輸出結(jié)果是****
     (3)程序可以通過編譯,但是不能通過連接,因而不能運行
     (4)程序可執(zhí)行,輸出結(jié)果是####
    4.設(shè)x和y均為int型變量,則執(zhí)行下面for語句后,y的值為( )。
     for (y=1,x=1;y=50;y++)
     {
     if (x>=10)
     break;
     if (x%2==1)
     {
     x+=5;
     continue;
     }
     x=-3;
     }
     (1)2 (2)4 (3)6 (4)8
    5.執(zhí)行下述程序的輸出結(jié)果是( )。
     #include
     main()
     {
     int i,j,m=0,n=0
     for (i=0;i<2;i++)
     for (j=0;j<2;j++)
     if (j>=i) m=1;n++;
     printf("%d\n",n);
     }
     (1)4 (2)2 (3)1 (4)o
    6.執(zhí)行下述程序的輸出結(jié)果是( )
     #include
     main( )
     {
     int k=0,m=0;
     int i,j;
     for (i=0;i<2;i++)
     {
     for (j=0;j<3;j++)
     k++;
     k-=j;
     }
     m=i+j;
     printf("k=%d,m+%d\n",k,m);
     }
     (1)k=1,m=3 (2)k=1,m=5 (3)k=0,m=3 (4)k=0,m=5
    7.運行下述程序后,如果從鍵盤上輸入
     65 14
     則輸出結(jié)果是( )。
     #include
     main()
     {
     int m,n;
     printf("Enter m,n:");
     scanf("%d%d",&m,&n);
     while (m!=n)
     {
     while (m>n)
     m-=n;
     while (n>m)
     n-=m;
     }
     printf("m=%d\n",m);
     }
     (1)m=1 (2)m=2 (3)m=3 (4)m=0
    8.下述對于c語言字符數(shù)組的描述中錯誤的是( )。
     (1)字符數(shù)組可以存放字符串
     (2)字符數(shù)組中的字符串可以整體輸入、輸出
     (3)可以在賦值語句中通過賦值運算符“=”對字符數(shù)組整體賦值
     (4)不可以用關(guān)系運算符對字符數(shù)組中的字符串進(jìn)行比較
    9.下述程序段所實現(xiàn)的功能是( )。
     int a[]={4,0,2,3,1},i,j,t;
     for (i=1;i<5;i++)
     {
     t=a[i];
     j=i-1;
     while (j>=0&&t>a[j])
     {
     a[j+1]=a[j];
     j--;
     }
     a[j+1]=t;
     }
     (1)對數(shù)組a進(jìn)行插入排序(按升序)
     (2)對數(shù)組a進(jìn)行插入排序(按降序)
     (3)對數(shù)組a進(jìn)行選擇排序(按升序)
     (4)對數(shù)組a進(jìn)行選擇排序(按降序)
    10.若有以下定義
     char s[20]="programming",*ps=s;
     則不能正確地表示其值等于字符'o'的表達(dá)式是( )。
     (1)ps+2 (2)s[2] (3)ps[2] (4)ps+=2,*ps
    11.閱讀程序
     #include
     int func(int b[],int n)
     {
     int i,r;
     r=1;
     for (i=0;i<=n;i++)
     r=r*b[i];
     return (r);
     }
     main()
     {
     int x,a[]={2,3,4,5,6,7,8,9};
     x=func(a,3);
     printf("%d\n",x);
     }
     執(zhí)行下述程序的輸出結(jié)果是( )。
     (1)720 (2)120 (3)24 (4)6
    12.執(zhí)行下述程序的輸出結(jié)果是( )。
     #include
     main()
     {
     char *t="23142";
     int a=0,b=0,c=0,d=0,i;
     for (i=0;t[i];i++)
     switch (t[i])
     {
     default :d++;
     case '1':a++;
     csse '2':b++;
     case '3':c=+;
     }
     printf("%d,%d,%d,%d\n",a,b,c,d);
     }
     (1)1,2,1,1 (2)2,4,5,1 (3)2,5,7,1 (4)1,1,1,1
    13.以下程序當(dāng)運行時,如果從鍵盤上輸入
     ABCD
     則輸出結(jié)果是( )。
     #include
     #include
     func(char str[])
     {
     int num=0;
     while (*(str+num)!='\0')
     num++;
     return (num);
     }
     main()
     {
     char str[10],*p=str;
     gets(p);
     printf("%d\n",func(p));
     }
     (1)8 (2)7 (3)6 (4)5
    14.設(shè)有如下函數(shù)定義
     int func(char *s)
     {
     char *p=s;
     while (*p1='\0')
     p++;
     return 9p-s);
     }
     如果在主程序中用下面的語句調(diào)用上述函數(shù),則輸出結(jié)果是( )。
     printf("%d\n",func("Good-bye!"));
     (1)4 (2)8 (3)9 (4)0
    15.執(zhí)行下述程序的輸出結(jié)果是( )。
     #include
     void fib(int n,int *s)
     {
     int f1,f2;
     if (n==0)
     *s=0;
     else if (n==1)
     *s=1;
     else
     {
     fib(n-1,&f1);
     fib(n-2,&f2);
     *s=f1+f2;
     }
     }
     main()
     {
     int x;
     fib(6,&x);
     printf("%d\n",x);
     }
     (1)21 (2)17 (3)8 (4)5
    16.若有以下對函數(shù)func的調(diào)用語句,則函數(shù)func不正確的函數(shù)首部是( )。
     #include
     main()
     {
     ······
     int a[50],n;
     ······
     func(n,&a[9]);
     ······
     }
     (1)void func(int m,intx[]) (2)void func(int s,int h[41])
     (3)void func(int p,int *s) (4)void func(int n,int a)
    17.執(zhí)行下述程序的輸出結(jié)果是(  )。
    #include
     struct stu
     {
     int num;
     char name[10];
     int age;
     };
     void func(struct stu *p)
     {
     printf("%s\n",(*p).name);
     }
     main()
     {
     struct stu students[3]={
     {9801,"Zhang",20},
     {9802,"Wang",19},
     {9803,"Zhao",18}
     };
     func(students+2);
     }
     (1)Zhang (2)Zhao (3)Wang (4)18
    18.執(zhí)行下述程序段后的輸出結(jié)果是(  ?。?BR>    enum days
     {
     MON=1,TUE,WED,THU,FRI,SAT,SUN
     };
     enum days today,dayaftertomorrow;
     today=SAT;
     dayaftertomorrow=(enum days)(((int)today+2)%7;
     printf("%d\n",(int)dayaftertomorrow);
     (1)1 (2)0 (3)MON (4)編譯時出錯
    19.以下不能將文件位置指針重新移到文件開頭位置的函數(shù)是(  ?。?。
    (1)rewind(fp);
     (2)fseek(fp,0L,SEEK_SET);
     (3)fseek(fp,-(long)ftell(fp),SEEK_CUR);
     (4)fseek(fp,0L,SEEK_END);
    20.執(zhí)行以下程序的輸出結(jié)果是(  ?。?。
    #include
     #define PR(a) printf("a=%4.2f",a)
     #define PINTF(a) PR(a);putchar('\n');
     main()
     {
     float y=1.5;
     PRINT(y);
     }
     (1)1.5=1.50 (2)a=1.50 (3)y=1.50 (4)1.50