2012計(jì)算機(jī)等級(jí)二級(jí)C語(yǔ)言模擬試題及答案3

字號(hào):

2012計(jì)算機(jī)等級(jí)二級(jí)C語(yǔ)言模擬試題及答案3
    一.單項(xiàng)選擇題
    1. 設(shè)int x=1,y=1;表達(dá)式(!x++ || y--)的值是_________
    A.0
    B. 1
    C. 2
    D.-1
    2.main( )
    { int n;
    ( n=6*4,n+6),n*2;
    printf(“n=%d\n”,n);
    } 此程序的輸出結(jié)果是______________.
    A.30
    B. 24
    C. 60
    D. 48
    3.若有如下定義,則__________是對(duì)數(shù)組元素的正確的引用。
    int a[10] , *p ;
    p=a ; p=a ; p=a ; p=a ;
    A. *&a[10]
    B. a[11]
    C. *(p+10)
    D. *p
    4.設(shè)整型變量n的值為2,執(zhí)行語(yǔ)句“n+=n-=n*n;”后,n的值是__________
    A. 0
    B. 4
    C. - 4
    D. 2
    5.以下不能正確定義二維數(shù)組的語(yǔ)句是___________
    A 。 int a[2][2]={{1},{2}};
    B. int a[][2]={1,2,3,4};
    C. int a[2][2]={{1},2,3};
    D. int a[2][]={{1,2},{3,4}};
    6. 程序段___________的功能是將變量 u 、s中的值賦給變量t 。
    A. if(u》s) t=u;t=s;
    B. t=u; if(t ) t=s;
    C. if(u》s) t=s;else t=u;
    D 。 t=s; if(u ) t=u;
    7.下列程序段的輸出結(jié)果是___________。
    void main()
    { int k;
    for (k=1;k《5;k++〉
    { if(k%2!=0)
    printf(“#”);
    else
    printf(“*”) ; }
    }
    A. #*#*
    B 。 *#*#
    C. ##
    D. 以上都不對(duì)
    8.設(shè)變量定義為 int a[3]={1,4,7},*p=&a[2], 則*p的值是 (35) 。
    A. &a[2]
    B. 4
    C. 7
    D. 1
    9.能正確表示a和b同時(shí)為正或同時(shí)為負(fù)的邏輯表達(dá)式是_________。
    A.a(chǎn)》=0||b》=0)&&(a《0 ||b《0)
    B.(a》=0 && b》=0)&&(a《0 && b《0)
    C.(a+b》0) &&(a+b《=0)
    D. a*b》0
    10.C語(yǔ)言中,合法的字符型常數(shù)是_________。
    A.‘A’
    B.“A”
    C. 65
    D. A
    11.設(shè)有數(shù)組定義:char array[]=”China”; 則數(shù)組所占的空間是________。
    A.4個(gè)字節(jié)
    B.5個(gè)字節(jié)
    C.6個(gè)字節(jié)
    D.7個(gè)字節(jié)
    12.若變量c為char類型,能正確判斷出c為小寫字母的表達(dá)式是_______。
    A.’a’《=c《=’z’
    B. (c》=’a’) || (c《=’z’)
    C.(‘a(chǎn)’《=c) and (‘z’》=c)
    D. (c》=’a’) && (c《=’z’)
    13.設(shè)有定義:long x=-123456L; 則以下能夠正確輸出變量x值的語(yǔ)句是_______。
    A.printf(“x=%d\n”,x)
    B.printf(“x=%ld\n”,x)
    C.printf(“x=l\n”,x)
    D.printf(“x=%LD\n”,x);
    14.下列關(guān)于指針定義的描述,___________是錯(cuò)誤的。
    A.指針是一種變量,該變量用來(lái)存放某個(gè)變量的地址值的。
    B.指針變量的類型與它所指向的變量類型一致。
    C.指針變量的命名規(guī)則與標(biāo)識(shí)符相同。
    D.在定義指針時(shí),標(biāo)識(shí)符前的“*”號(hào)表示后面的指針變量所指向的內(nèi)容。
    15.已知:int x; int y[10]; 下列______是合法的。
    A.&x
    B.&(x+3)
    C.&5
    D .&y
    16.指出下面正確的輸入語(yǔ)句__________。
    A. scanf(“a=b=%d”,&a,&b) ;
    B. scanf(“%d,%d”,&a,&b) ;
    C. scanf(“%c”,c) ;
    D. scanf(“% f%d\n”,&f) ;
    17.C語(yǔ)言中以追加方式打開(kāi)一個(gè)文件應(yīng)選擇_______________參數(shù)。
    A.“r”
    B.“w”
    C.“rb”
    D.“a”
    18.Break語(yǔ)句的正確的用法是( )。
    A. 無(wú)論在任何情況下,都中斷程序的執(zhí)行,退出到系統(tǒng)下一層。
    B. 在多重循環(huán)中,只能退出最靠近的那一層循環(huán)語(yǔ)句。
    C. 跳出多重循環(huán)。
    D. 只能修改控制變量。
    19. 為表示關(guān)系x≥y≥z,應(yīng)使用C語(yǔ)言表達(dá)式
    A.(x》=y)&&(y》=z)
    B. (x》=y) AND (y》=z)
    C.(x》=y》=z)
    D. (x》=z)&(y》=z)
    20.以下可以作為C語(yǔ)言合法整數(shù)的是________。
    A.1010B
    B. 0368
    C.0Xffa
    D. x2a2
    21.在函數(shù)中默認(rèn)存儲(chǔ)類型說(shuō)明符的變量應(yīng)該是________存儲(chǔ)類型。
    A.內(nèi)部靜態(tài)
    B. 外部
    C.自動(dòng)
    D. 寄存器
    二.判斷題
    1. C 語(yǔ)言源程序文件通過(guò)了編譯、連接之后 , 生成一個(gè)后綴為 .EXE 的文件。 ( )
    2. 在 C 程序中 , 函數(shù)既可以嵌套定義 , 也可以嵌套調(diào)用。( )
    3. 在 C 程序中, APH 和 aph 代表不同的變量。( )
    4. 表達(dá)式 0195 是一個(gè)八進(jìn)制整數(shù)。( )
    5. 表達(dá)式 _ya是不合法的C語(yǔ)言標(biāo)識(shí)符。( )
    6. C程序總是從main( ) 函數(shù)的第一條語(yǔ)句開(kāi)始執(zhí)行的?!。?)
    7. A-=7等價(jià)于a=a-7。 ( )
    8. 利用fclose函數(shù)關(guān)閉已打開(kāi)的文件。( )
    9. 數(shù)組名可以作為參數(shù)進(jìn)行傳遞。( )
    10. 執(zhí)行printf(“%x”,12345);, 輸出 12345 。( )
    三、填空
    1.C語(yǔ)言的預(yù)處理語(yǔ)句以__________開(kāi)頭。
    2.表達(dá)式7+8》2 && 25 %5的結(jié)果是_______________________。
    3.下列程序段是從鍵盤輸入的字符中統(tǒng)計(jì)數(shù)字字符的個(gè)數(shù),用換行符結(jié)束循環(huán)。
    int n=0, ch;
    ch=getchar( );
    while( __________________ )
    { if ( ________________ ) n++;
    c=getchar( ); }
    4.C語(yǔ)言中putchar(c ) 函數(shù)的功能是_________________________________。
    5.int *p 的含義是___________________________________________。
    6.定義fp為文件型指針變量的定義方法為_(kāi)______________________。
    7.?dāng)?shù)組 int a[3][4];共定義了____________個(gè)數(shù)組元素。
    四、讀出程序。
    1. 改正下列程序中不正確的語(yǔ)句。
    main()
    { int a=8 , b=1;
    a=a+b;
    b=a*b;
    printf(“%d, %d”,a,b); }
    2.寫出下列程序的運(yùn)行結(jié)果。
    fun(int a, int b)
    { if(a》b) return (a);
    Else return (b); }
    main()
    { int x=3,y=8,z=6,r;
    r=fun(fun(x,y),2*z);
    printf(“%d\n”,r); }
    3. 改正下列程序中不正確的語(yǔ)句。
    main()
    { int n ;
    float s=1.0;
    for(n=10;n》1;n- -)
    s=s+1/n;
    printf(“%6.1f\n”,s); }
    4. 寫出下列程序的運(yùn)行結(jié)果。
    main()
    { int n;
    For(n=3; n《=10; n++)
    { if(n%5= =0) break;
    Printf(“%d”,n); } }
    5.寫出下列程序的運(yùn)行結(jié)果。
    #include “stdio.h”
    main()
    { int a[]={1,2,3,-4,5};
    int m,n,*p;
    p=&a[0]; p=&a[0];
    m=*(p+2);
    n=*(p+4);
    printf(“%d %d %d ”,*p,m,n); }
    五.編程序
    1. 編程計(jì)算下列表達(dá)式:s=1!+2!+3!+4!+……+10!
    2.從鍵盤上輸入a與n的值,計(jì)算sum=a+aa+aaa+aaaa+……(共n項(xiàng))的和。例a=2, n=4, 則sum=2+22+222+2222。
    3.求3X3矩陣的主對(duì)角線元素之和。
    4.從鍵盤上輸入10個(gè)數(shù)存入一維數(shù)組中,求這10數(shù)中的值與最小值并輸出。
    5.從鍵盤上輸入若干個(gè)字符存入文件write.txt中,遇到回車鍵輸入結(jié)束。(用“\n”表示回車鍵)
    參考答案
    一.單項(xiàng)選擇題
    1 B 2B 3D 4C 5D
    6C 7A 8C 9D 10A
    11C 12D 13B 14D 15A
    16B 17D 18B 19A 20C 21C
    二.判斷題
    1√ 2Ⅹ 3√ 4Ⅹ 5Ⅹ 6√ 7√ 8√ 9√ 10Ⅹ
    三、填空
    1 #號(hào)
    2 0
    3 ch!=’\n’ ch》=’0’ && ch《=’9’
    4 將變量c中的字符顯示到屏幕上。
    5 指針變量p為整型
    6 FILE *fp
    7 12
    四、讀出程序。
    1 printf(“%d, %d”,&a,&b); 2 12
    3 s=s+1.0/n
    4. 3 4
    5 1 3 5
    五.編程序
    1.
    #include “stdio.h”
    main()
    { long s=0,t=1;
    int i;
    for(i=1;i《=10;i++)
    { t=t*i;
    s=s+t;
    }
    printf(“%ld”,s); }
    2
    #include “stdio.h”
    main()
    { int a,n count=1,sn=0,tn=0;
    scanf(“%d %d”,&a,&n);
    while(count《=n)
    { tn=tn+a;
    sn=sn+tn;
    a=a*10;
    ++count; }
    printf(“%d”,sn); }
    3.
    #include “stdio.h”
    main()
    { int a[3][3],i,j,s=0;
    for(i=0;i《3;i++)
    for(j=0;j《3;j++)
    scanf(“%d”,&a[i][j]);
    for(i=0;i《3;i++)
    for(j=0;j《3;j++)
    if(i==j)
    s=s+a[i][j];
    printf(“%d”,s); }
    4.
    #include “stdio.h”
    main()
    { int a[10],max,min;
    for(i=0;i《10;i++)
    scanf(“%d”,&a[i]);
    max=a[0];
    for(i=1;i《10;i++)
    if(a[i]》max)
    max=a[i];
    min=a[0];
    for(i=1;i《10;i++)
    if(a[i]
    min=a[i];
    printf(“%d %d”,max,min); }
    5.
    #include “stdio.h”
    main()
    { int c;
    FILE *fp;
    fp=open(“write.txt”,“w”);
    c=getchar();
    while(c!=’\n’)
    { fputc(c,fp);
    c=getchar();
    }
    fclose(); }