2014年計算機等級二級C語言程序設(shè)計習(xí)題

字號:

為大家收集整理了《2014年計算機等級二級C語言程序設(shè)計習(xí)題》供大家參考,希望對大家有所幫助?。?!
    一、選擇題(每小題1分,共25分)
    1、下列程序的輸出結(jié)果是(  )。
    int a[5]={2,4,6,8,10},*P,* *k;
    p=a; k=&p;
    printf("%d",*(p++));
    printf("%d\n",* *k);
    A.4 4
    B.2 2
    C.2 4
    D.4 6
    2、若已定義:int a[9], *p=a;并在以后的語句中未改變p的值,不能表示a[1]地址的表達式為( ?。?。
    A.p+1
    B.a(chǎn)+1
    C.a(chǎn)++
    D.++p
    3、下面的變量說明中__________是正確的。
    A.char:a, b, c;
    B.char a; b; c;
    C.char a, b, c;
    D.char a, b, c
    4、定義如下變量和數(shù)組:inti; int x[3][3]={1,2,3,4,5,6,7,8,9};
    則語句for(i=0;i<3;i++) printf("%d ",x[i][2-i]); 的輸出結(jié)果是( ?。?。
    A.1 5 9
    B.1 4 7
    C.3 5 7
    D.3 6 9
    5、設(shè)A為存放(短)整型的一維數(shù)組,如果A的首地址為P,那么A中第i個元素的地址為(  )。
    A.P+i*2
    B.P+(i-1)*2
    C.P+(i-1)
    D.P+i
    6、以下對二維數(shù)組a進行正確初始化的是( ?。?BR>    A.int a[2][3]={{1,2},{3,4},{5,6}};
    B.int a[ ][3]={1,2,3,4,5,6};
    C.int a[2][ ]={1,2,3,4,5,6};
    D.int a[2][ ]={{1,2},{3,4}};
    7、 main( )
    { int n; ( n=6*4,n+6),n*2; printf(“n=%d\n”,n); }
    此程序的輸出結(jié)果是______________.
    A.30
    B.24
    C.60
    D.48
    8、 C語言中以只讀方式打開一個文件應(yīng)選擇_______________參數(shù)。
    A.“r”
    B.“w”
    C.“rb”
    D.“a”
    9、以下程序的輸出結(jié)果是( ?。?。
    char str[15]=”hello!”;
    printf(“%d\n”,strlen(str));
    A.15
    B.14
    C.7
    D.6
    10、下列描述中不正確的是( ?。?。
    A.字符型數(shù)組中可能存放字符串。
    B.可以對字符型數(shù)組進行整體輸入、輸出。
    C.可以對整型數(shù)組進行整體輸入、輸出。
    D.不能在賦值語句中通過賦值運算符“=”對字符型數(shù)組進行整體賦值。
    11、 選出下列標(biāo)識符中不是合法的標(biāo)識符的是( ?。?。
    A.hot_do
    B.cat1
    C._pri
    D.2ab
    12、 若有如下定義,則__________是對數(shù)組元素的正確的引用。.
    int a[10] , *p ; p=a ;
    A.*&a[10]
    B.a(chǎn)[11]
    C.*(p+11)
    D.*p *p *p
    13、 讀出以下語句的輸出結(jié)果是( ?。?。
    int x=10,y=10;
    printf(“%d %d\n”,x--,--y);
    A.10 10
    B.9 9
    C.9 10
    D.10 9
    14、 以下說法中正確的是( ?。?BR>    A.C語言程序總是從第一個的函數(shù)開始執(zhí)行
    B.在C語言程序中,要調(diào)用的函數(shù)必須在main()函數(shù)中定義
    C.C語言程序總是從main()函數(shù)開始執(zhí)行
    D.C語言程序中的main()函數(shù)必須放在程序的開始部分
    15、 下列程序執(zhí)行后輸出的結(jié)果是( ?。?。
    int d=1;
    fun (int p)
    { int d=5;
    d + =p + +;
    printf("%d,",d); }
    main(  )
    { int a=3;
    fun(a);
    d + = a + +;
    printf("%d\n",d); }
    A.8, 4
    B.9, 6
    C.9, 4
    D.8, 5
    16、 為了避免嵌套的條件分支語句if—else 的二義性,C語言規(guī)定:C程序中的else總是與_____組成配對關(guān)系。
    A.縮排位置相同的if
    B.在其之前未配對的if
    C.在其之前未配對的近的if
    D.同一行上的if
    17、 下列描述中不正確的是(  )。
    A.字符型數(shù)組中可能存放字符串。
    B.可以對字符型數(shù)組進行整體輸入、輸出。
    C.可以對整型數(shù)組進行整體輸入、輸出。
    D.不能在賦值語句中通過賦值運算符“=”對字符型數(shù)組進行整體賦值。
    18、 不能把字符串:Hello!賦給數(shù)組b的語句是( ?。?BR>    A.char b[10]={’H’,’e’,’l’,’l’,’o’,’!’};
    B.char b[10]; b="Hello!";
    C.char b[10]; strcpy(b,"Hello!");
    D.char b[10]="Hello!";
    19、 下列程序的輸出結(jié)果是(  )。
    char *p1="abcd", *p2="ABCD", str[50]="xyz";
    strcpy(str+2,strcat(p1+2,p2+1));
    printf("%s",str);
    A.xyabcAB
    B.a(chǎn)bcABz
    C.ABabcz
    D.xycdBCD
    20、 設(shè)有如下定義: int x=10,y=3,z;
    則語句printf("%d\n",z=(x%y,x/y)); 的輸出結(jié)果是( ?。?。
    A.1
    B.0
    C.4
    D.3
    21、運算符________的優(yōu)先級高。
    A.[ ]
    B.+=
    C.?:
    D.++
    22、 設(shè)有如下定義:char *aa[2]={"abcd","ABCD"};則以下說法中正確的是( ?。?。
    A.a(chǎn)a數(shù)組成元素的值分別是"abcd"和ABCD"
    B.a(chǎn)a是指針變量,它指向含有兩個數(shù)組元素的字符型一維數(shù)組
    C.a(chǎn)a數(shù)組的兩個元素分別存放的是含有4個字符的一維字符數(shù)組的首地址
    D.a(chǎn)a數(shù)組的兩個元素中各自存放了字符’a’和’A’的地址
    23、 C語言中,合法的字符型常數(shù)是_________。
    A.‘A’
    B.“A”
    C.65
    D.A
    24、 設(shè)有說明double(*p1)[N];其中標(biāo)識符p1是( ?。?BR>    A.N個指向double型變量的指針。
    B.指向N個double型變量的函數(shù)指針。
    C.一個指向由N個double型元素組成的一維數(shù)組的指針。
    D.具有N個指針元素的一維指針數(shù)組,每個元素都只能指向double型量。
    25、 在C程序中有如下語句:char *func(intx,int y); 它是( ?。?。
    A.對函數(shù)func的定義。
    B.對函數(shù)func的調(diào)用。
    C.對函數(shù)func的原型說明。
    D.不合法的。
    二、程序填空題(共20分)
    26、求主次對角線之和。
    main()
    {static int a[ ][3]={9,7,5,1,2,4,6,8};
    int I,j,s1=0,s2=0;
    for(I=0;I<3;I++)
    for(j=0;j<3;j++)
    {if(__________)
    s1=s1+a[I][j];
    if( __________ )
    s2=s2+a[I][j];
    }
    printf(“%d\n%d\n”,s1,s2);
    }
    27、從鍵盤上輸入10個數(shù),求其平均值。
    main()
    {inti;
    float f,sum;
    for(i=1,sum=0.0;i<11;i++)
    {__________ ;
    __________ ; }
    printf(“average=%f\n”,sum/10); }
    28、 main()
    {inta,b;
    for (a=1,b=1;a<=100;a++)
    { if(b>=20) break;
    if(b%3==1)
    {b+=3; continue; }
    b-=5; } }
    程序的輸出結(jié)果a的值為__________。
    29、 int y=1, x, *p, a[ ]={2,4,6,8,10};
    p=&a[1];
    for(x=0;x<3;x++)
    y + = * (p + x);
    printf("%d\n",y);
    程序的輸出結(jié)果y的值是__________ 。
    30、 下列程序段是從鍵盤輸入的字符中統(tǒng)計數(shù)字字符的個數(shù),用換行符結(jié)束循環(huán)。
    Int n=0, ch; Ch=getchar( );
    While( __________________ )
    { if ( ________________ ) n++; c=getchar( ); }
    31、 int *p 的含義是______________________________。
    32、 int x=6, y=7;
    printf(“%d,”,x++);
    printf(“%d\n”,++y);
    程序的輸出結(jié)果是__________ 。
    33、 以下程序的功能是:從鍵盤上輸入若干個學(xué)生的成績, 統(tǒng)計并輸出高成績和低成績,當(dāng)輸入負(fù)數(shù)時結(jié)束輸入.請?zhí)羁眨?BR>    main()
    { float x,amax,amin;
    scanf("%f",&x);
    amax=x; amin=x;
    while()
    { if(x>amax) amax=x;
    if()amin=x;
    scanf("%f",&x); }
    printf("\namax=%f\namin=%f\n",amax,amin); }
    34、 float f=3.1415927;
    printf(“%f,%5.4f,%3.3f”,f,f,f);
    則程序的輸出結(jié)果是__________。
    35、float f=3.1415927;
    printf(“%f,%5.4f,%3.3f”,f,f,f);
    則程序的輸出結(jié)果是__________ 。
    三、判斷題(共5分)
    36、C 語言源程序文件通過了編譯、連接之后,生成一個后綴為.EXE的文件。 (  )
    37、 利用fclose函數(shù)關(guān)閉已打開的文件。 (  )。
    38、 表達式 0195 是一個八進制整數(shù)。( ?。?BR>    39、 數(shù)組名代表數(shù)組的首地址。( ?。?BR>    40、 在 C 程序中 ,APH 和aph代表不同的變量。( ?。?BR>    四、程序設(shè)計題(共30分)
    41、 有N個學(xué)生,每個學(xué)生的信息包括學(xué)號、性別、姓名、四門課的成績,從鍵盤上輸入N個學(xué)生的信息,要求輸出總平均成績高的學(xué)生信息,包括學(xué)號、性別、姓名和平均成績。
    42、 有一個一維數(shù)組,內(nèi)放10個學(xué)生成績,寫一個函數(shù),求出平均分。
    43、編程計算下列表達式:s=n!(n從鍵盤上輸入)
    44、 從鍵盤上輸出10個整數(shù)存入一維數(shù)組中,按由大到小的順序輸出。
    45、三個整數(shù)a、b、c,由鍵盤輸入,輸出其中大的數(shù)。
    46、 請編一個函數(shù)int fun(int a),它的功能是:判斷a是否是素數(shù),若a是素數(shù),返回1;若不是素數(shù),返回0。A的值由主函數(shù)從鍵盤讀入。
    五、程序改錯題
    47、 寫出下列程序的運行結(jié)果。
    #include “stdio.h”
    Main()
    { int a[]={1,2,3,-4,5};
    intm,n,*p; p=&a[0]; m=*(p+1); n=*(p+4);
    printf(“%d %d %d ”,*p,m,n); }
    48、 寫出下列程序的運行結(jié)果。
    main()
    { int n;
    For(n=3; n<=10; n++)
    { if(n%6= =0) break; Printf(“%d”,n); } }