自考“C語言程序設(shè)計”模擬試題十四

字號:

一、選擇題(1—14每題1分,15-18每題1.5分,共20分)
    1.可選作用戶標(biāo)識符的一組標(biāo)識符是( )
    A void B c5_b8 C For D 3a
    Define _53 -ab DO
    WORD IF Case int
    2.在C語言中,非法的八進(jìn)制是:( )
    A.018 B.016 C.017 D.0257
    3.在TC中,基本int a[4]類型變量所占的字節(jié)數(shù)是( )
    A.1 B.2 C.4 D.8
    4.設(shè)x,y,z,k都是int型變量,則執(zhí)行表達(dá)式:x=(y=4,z=16,k=32)后,x的值為( )
    A.4 B.16 C.32 D.52
    5.設(shè)int型變量a為5,使b不為2的表達(dá)式是( )
    A.b=a/2 B.b=6-(-a) C.b=a%2 D.b=a>3?2:1
    6.一個C程序的執(zhí)行是從( )
    A.main()函數(shù)開始,直到main()函數(shù)結(jié)束。
    B.第一個函數(shù)開始,最后一個函數(shù)結(jié)束。
    C.第一個語句開始,最后一個語句結(jié)束。
    D.main()函數(shù)開始,直到最后一個函數(shù)。
    7.C語言中用于結(jié)構(gòu)化程序設(shè)計的三種基本結(jié)構(gòu)是( )
    A.if、switch、break
    B.if while for
    C.while do- while for
    D.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
    8.以下敘述中不正確的是( )
    A.在不同的函數(shù)中可以使用相同名字的變量。
    B.函數(shù)中的形式參數(shù)是局部變量。
    C.在一個函數(shù)內(nèi)的符合語句中定義變量在本函數(shù)范圍內(nèi)有效。
    D.在一個函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效。
    9.若k為int 類型,且k的值為3,執(zhí)行語句k+=k-=k*k后,k的值為( )
    A.-3 B.6 C.-9 D.-12
    10.有以下程序
    main()
    {int x=3,y=3,z=3;
    printf(“%d %d\n”(++x,y++),++z);} 輸出結(jié)果( )
    A.3 3 B.3 4
    C.4 2 D.4 3
    11.若有定義和語句:int a=21,b=021; printf(“%x,%d \n”,a,b);輸出結(jié)果( )
    A.17,15 B.16,18
    C.17,19 D.15,17
    12.已有定義語句:int x=3,y=4,z=5;則值為0的表達(dá)式是( )
    A.x>y++ B.x<=++y
    C.x!=y+z>y-z D.y%z>=y-z
    13.能正確表達(dá)邏輯關(guān)系“a≥10或a≤0”的C語言表達(dá)式是( )
    A.a>=10 or a<=0 B.a>=10||a<=0
    C.a>=10&&a<=0 D.a>=10|a<=0
    14.n為整型常量,且n=2;while(n——);printf(“%d”,n);執(zhí)行后的結(jié)果是:( )
    A.2 B.1 C.-1 D.0
    15.若有以下定義和賦值double *q,a=5.5; int *p,i=1; double *q,a=5.5;int *p,i=1; p=&i; q=&a; 以下對賦值語句敘述錯誤的是( )。
    A)*p=*q 變i中的值。
    B)p=oxffd0;將改變p的值,使p指向地址為ffd0的存儲單元。
    C)*q=*p;等同于a=i;
    D)*p=*q;是取q所指變量的值放在p所指的存儲單元
    16.若有以下定義語句double a[8],*p=a; int i=5; 對數(shù)組元素錯誤的引用是( )
    A)*a B) *a[5] C)*(p+i) D)p[8]
    17.以下選項中不能使指針正確指向字符串的是( )
    A)char *ch;*ch=“hello”
    B)char *ch=“hello”
    C)char *ch=“hello”;ch=“bye”
    D)char *ch“;ch=”hello“
    18.若有以下說明和定義語句:union uti {int n;double g;char ch[9];}
    struct srt{float xy;union uti uv;}aa;則變量aa所占內(nèi)存的字節(jié)數(shù)是( )
    A) 9 B) 8 C) 13 D) 17
    二、填空題(每空1分,共12分)
    1.C語言源程序文件的擴(kuò)展名是 (1) ,經(jīng)過編譯后,生成文件的擴(kuò)展名是 (2) ,經(jīng)過連接后,生成文件的擴(kuò)展名是 (3).
    2.把a(bǔ),b定義成長整型變量的定義語句是 (4)
    3.設(shè)x和y均為整型變量,且x=3,y=2,則1.0*x/y表達(dá)式的值為 (5)
    4.已有定義:float x=5.5;則表達(dá)式:x=(int)x+2的值為 (6)
    5.已有定義:int x=0,y=0;則表達(dá)式:(x+=2,y=x+3/2,y+5)后,變量x的值為 (7),變量y的值為 (8),表達(dá)式的值為 (9) .
    6.執(zhí)行以下for(i=1;i++<=5)語句后,變量i的值為(10).
    7.數(shù)組是表示類型相同的數(shù)據(jù),而結(jié)構(gòu)體則是若干 (11)數(shù)據(jù)項的集合。
    8.C語言中文件是指 (12) .
    三、程序補(bǔ)充題(每空3分,共24分)
    1.從鍵盤上輸入若干個學(xué)生成績,統(tǒng)計并輸出成績和最低成績,當(dāng)輸入負(fù)數(shù)時結(jié)束輸入。
    main()
    { float s,gmax,gmin;
    scanf(“%f,”&s);
    gmax=s;gmin=s;
    while (1)
    {if(s>gmax)gmax=s;
    if (2) gmin=s;
    scanf(“%f”,&s);}
    printf(“gmax=%f\ngmin=%f\n”gmax,gmin);}
    2.求任意兩個正整數(shù)的公約數(shù)和最小公倍數(shù)
    #include “stdio.h”
    main()
    {int r,m,n,temp,gcd,lcm;
    printf(“enter two number please:”);
    scanf(“ (3) ”,&m,&n);
    lcm=m*n;
    while(m%n!=0)
    {r=m%n;(4);n=r;}
    gcd=n;lcm=lcm/n;
    printf(“gcd=%d\nlcm=%d\n”,gcd,lcm);}
    3.求y的x次方。
    Double fun1(double y,int x)
    main(){int i;
    double z=1.0;
    for(i=1;i (5) ;i++)
    z= (6) ;
    return z;}
    4.對輸入一個整數(shù)進(jìn)行判斷,若是偶數(shù),輸出even,否則輸出odd,在子函數(shù)fun2功能是判定整數(shù)是否為偶數(shù),若是偶數(shù),返回1,否則返回0.
    int fun2(int x)
    {if(x%2==0) (7) ;
    return 0 ;}
    main()
    {int n;
    scanf(“%d”,&n);
    if (8) printf(“even\n”);
    else printf(“odd\n”);}
    四、按格式寫出程序運(yùn)行結(jié)果(每題4分共20分)
    1. main()
    {int a=1,c=65,d=97;
    printf(“a8=%o,a16=%x\n”,a,a);
    printf(“c10=%d,c8=%o,c16=%x,cc=%c\n”c,c,c,c);
    d++;
    printf(“d10=%d,dc=%c\n”d,d);}
    程序運(yùn)行結(jié)果為:
    2.有以下程序
    void f(int x,int y)
    {int t;
    if(x    main()
    {int a=4,b=3;c=5;
    f(a,b); f(a,c); f(b,c);
    printf(“%d,%d,%d”,a,b,c);} 執(zhí)行后的結(jié)果是:( )
    3.程序執(zhí)行的結(jié)果是( )
    main()
    {int i=0,a=2;
    if(i==0)printf(“**”);
    else printf(“$$”);
    printf(“*”);}
    4.有以下程序
    main()
    {int sum=0,n;
    scanf(“%d”,&n);
    while(n<=5)
    {sum+=n;
    n++;}
    printf(“sum=%d”,sum);}
    當(dāng)輸入:1 程序運(yùn)行的結(jié)果為( )
    5.執(zhí)行以下程序段,輸出的結(jié)果為( )
    main()
    { int a[2][3]={{3,2,7},{4,8,6}};
    int *p,m;
    p=&a[0][0];
    m=(*p)*(*(p+2))*(*(p+4));
    printf(“m=%d”,m);}
    五、按題目要求寫出可運(yùn)行程序:(24分)
    1.模擬計算器功能,編寫程序,根據(jù)用戶輸入的運(yùn)算符,對兩個數(shù)進(jìn)行運(yùn)算。(用switch語句) ()
    2.求3~100之間的全部素數(shù),并統(tǒng)計素數(shù)個數(shù)。