2014計(jì)算機(jī)二級C語言程序設(shè)計(jì)全真測試題

字號:

為大家收集整理了《2014計(jì)算機(jī)二級C語言程序設(shè)計(jì)全真測試題》供大家參考,希望對大家有所幫助?。。?BR>    一、選擇題(每小題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 4B. 2 2C. 2 4D. 4 6
    本題共1分,參考答案:C
    2若已定義:int a[9], *p=a;并在以后的語句中未改變p的值,不能表示a[1]地址的表達(dá)式為( )。A. p+1B. a+1C. a++D. ++p
    本題共1分,參考答案:C
    3下面的變量說明中__________是正確的。A. char:a, b, c;B. char a; b; c;C. char a, b, c;D. char a, b, c
    本題共1分,參考答案: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 9B. 1 4 7C. 3 5 7D. 3 6 9
    本題共1分,參考答案:C
    5設(shè)A為存放(短)整型的一維數(shù)組,如果A的首地址為P,那么A中第i個(gè)元素的地址為( )。A. P+i*2B. P+(i-1)*2C. P+(i-1)D. P+i
    本題共1分,參考答案:B
    6以下對二維數(shù)組a進(jìn)行正確初始化的是( )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}};
    本題共1分,參考答案:B
    7main( )
    { int n; ( n=6*4,n+6),n*2; printf(“n=%d\n”,n); }
    此程序的輸出結(jié)果是______________.A. 30B. 24C. 60D. 48
    本題共1分,參考答案:B
    8C語言中以只讀方式打開一個(gè)文件應(yīng)選擇_______________參數(shù)。A. “r”B. “w”C. “rb”D. “a”
    本題共1分,參考答案:A
    9以下程序的輸出結(jié)果是( )。
    char str[15]=”hello!”;
    printf(“%d\n”,strlen(str)); A. 15B. 14C. 7D. 6
    本題共1分,參考答案:D
    10下列描述中不正確的是( )。A. 字符型數(shù)組中可能存放字符串。B. 可以對字符型數(shù)組進(jìn)行整體輸入、輸出。C. 可以對整型數(shù)組進(jìn)行整體輸入、輸出。D. 不能在賦值語句中通過賦值運(yùn)算符“=”對字符型數(shù)組進(jìn)行整體賦值。
    本題共1分,參考答案:C
    11選出下列標(biāo)識(shí)符中不是合法的標(biāo)識(shí)符的是( )。 A. hot_doB. cat1C. _priD. 2ab
    本題共1分,參考答案:D
    12若有如下定義,則__________是對數(shù)組元素的正確的引用。.
    int a[10] , *p ; p=a ;A. *&a[10]B. a[11]C. *(p+11)D. *p *p *p
    本題共1分,參考答案:D
    13讀出以下語句的輸出結(jié)果是( )。
    int x=10,y=10;
    printf(“%d %d\n”,x--,--y); A. 10 10B. 9 9C. 9 10D. 10 9
    本題共1分,參考答案:D
    14以下說法中正確的是( )。A. C語言程序總是從第一個(gè)的函數(shù)開始執(zhí)行B. 在C語言程序中,要調(diào)用的函數(shù)必須在main()函數(shù)中定義C. C語言程序總是從main()函數(shù)開始執(zhí)行D. C語言程序中的main()函數(shù)必須放在程序的開始部分
    本題共1分,參考答案:C
    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, 4B. 9, 6C. 9, 4D. 8, 5
    本題共1分,參考答案:A
    16為了避免嵌套的條件分支語句if—else 的二義性,C語言規(guī)定:C程序中的else總是與_____組成配對關(guān)系。A. 縮排位置相同的ifB. 在其之前未配對的ifC. 在其之前未配對的近的ifD. 同一行上的if
    本題共1分,參考答案:C
    17下列描述中不正確的是( )。A. 字符型數(shù)組中可能存放字符串。B. 可以對字符型數(shù)組進(jìn)行整體輸入、輸出。C. 可以對整型數(shù)組進(jìn)行整體輸入、輸出。D. 不能在賦值語句中通過賦值運(yùn)算符“=”對字符型數(shù)組進(jìn)行整體賦值。
    本題共1分,參考答案:C
    18不能把字符串:Hello!賦給數(shù)組b的語句是( )。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!";本題共1分,參考答案:B
    19下列程序的輸出結(jié)果是( )。
    char *p1="abcd", *p2="ABCD", str[50]="xyz";
    strcpy(str+2,strcat(p1+2,p2+1));
    printf("%s",str); A. xyabcABB. abcABzC. ABabczD. xycdBCD
    本題共1分,參考答案:D
    20設(shè)有如下定義: int x=10,y=3,z;
    則語句printf("%d\n",z=(x%y,x/y)); 的輸出結(jié)果是( )。A. 1B. 0C. 4D. 3
    本題共1分,參考答案:D
    21運(yùn)算符________的優(yōu)先級高。A. [ ]B. +=C. ?:D. ++
    本題共1分,參考答案:A
    2014-03-25 17:18:00反對1贊同18我的筆記查看網(wǎng)友筆記》支持大字?jǐn)?shù):0/150提交 公開我的筆記22設(shè)有如下定義:char *aa[2]={"abcd","ABCD"};則以下說法中正確的是( )。A. aa數(shù)組成元素的值分別是"abcd"和ABCD"B. aa是指針變量,它指向含有兩個(gè)數(shù)組元素的字符型一維數(shù)組C. aa數(shù)組的兩個(gè)元素分別存放的是含有4個(gè)字符的一維字符數(shù)組的首地址D. aa數(shù)組的兩個(gè)元素中各自存放了字符’a’和’A’的地址
    本題共1分,參考答案:D
    23C語言中,合法的字符型常數(shù)是_________。A. ‘A’B. “A”C. 65D. A本題共1分,參考答案:A
    24設(shè)有說明double(*p1)[N];其中標(biāo)識(shí)符p1是( )。A. N個(gè)指向double型變量的指針。B. 指向N個(gè)double型變量的函數(shù)指針。C. 一個(gè)指向由N個(gè)double型元素組成的一維數(shù)組的指針。D. 具有N個(gè)指針元素的一維指針數(shù)組,每個(gè)元素都只能指向double型量。
    本題共1分,參考答案:C
    25在C程序中有如下語句:char *func(intx,int y); 它是( )。A. 對函數(shù)func的定義。B. 對函數(shù)func的調(diào)用。C. 對函數(shù)func的原型說明。D. 不合法的。
    本題共1分,參考答案:C
    二、程序填空題(共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);
    }
    本題共2分,參考答案:I==j I+j==2
    27從鍵盤上輸入10個(gè)數(shù),求其平均值。
    main()
    {inti;
    float f,sum;
    for(i=1,sum=0.0;i<11;i++)
    {__________ ;
    __________ ; }
    printf(“average=%f\n”,sum/10); }
    本題共2分,參考答案:scanf(“%f”,&f); sum+=f;
    28main()
    {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的值為__________。本題共2分,參考答案:8
    29int 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的值是__________ 。本題共2分,參考答案:19
    30下列程序段是從鍵盤輸入的字符中統(tǒng)計(jì)數(shù)字字符的個(gè)數(shù),用換行符結(jié)束循環(huán)。
    Int n=0, ch; Ch=getchar( );
    While( __________________ )
    { if ( ________________ ) n++; c=getchar( ); }
    本題共2分,參考答案:ch!=’\n’ch>=’0’&&ch<=’9’
    31int *p 的含義是______________________________。
    本題共2分,參考答案:指針變量p為整型
    32int x=6, y=7;
    printf(“%d,”,x++);
    printf(“%d\n”,++y);
    程序的輸出結(jié)果是__________ 。
    本題共2分,參考答案:6,8
    33以下程序的功能是:從鍵盤上輸入若干個(gè)學(xué)生的成績, 統(tǒng)計(jì)并輸出高成績和低成績,當(dāng)輸入負(fù)數(shù)時(shí)結(jié)束輸入.請?zhí)羁?
    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); }本題共2分,參考答案:x>=0.0 x<=amin34float f=3.1415927;
    printf(“%f,%5.4f,%3.3f”,f,f,f);
    則程序的輸出結(jié)果是__________。
    本題共2分,參考答案:3.141593,3.1416,3.142
    35float f=3.1415927;
    printf(“%f,%5.4f,%3.3f”,f,f,f);
    則程序的輸出結(jié)果是__________ 。
    本題共2分,參考答案:3.141593,3.1416,3.142
    三、判斷題(共5分)
    36C 語言源程序文件通過了編譯、連接之后,生成一個(gè)后綴為.EXE的文件。 ( )
    本題共1分,參考答案:對
    37利用fclose函數(shù)關(guān)閉已打開的文件。 ( )。
    本題共1分,參考答案:對
    38表達(dá)式 0195 是一個(gè)八進(jìn)制整數(shù)。( )
    本題共1分,參考答案:錯(cuò)
    39數(shù)組名代表數(shù)組的首地址。( )
    本題共1分,參考答案:對
    40在 C 程序中 ,APH 和aph代表不同的變量。( )
    本題共1分,參考答案:對
    四、程序設(shè)計(jì)題(共30分)41有N個(gè)學(xué)生,每個(gè)學(xué)生的信息包括學(xué)號、性別、姓名、四門課的成績,從鍵盤上輸入N個(gè)學(xué)生的信息,要求輸出總平均成績高的學(xué)生信息,包括學(xué)號、性別、姓名和平均成績。 本題共5分,參考答案:#include"stdio.h"
    #define N 3
    struct student
    { long stu_num;
    char sex;
    char name[15];
    int score[4];
    float average; };
    main()
    { intI,j,index;
    float sum,max;
    struct student stuarr[N];
    for(I=0;I{ printf("please input %d student information:\n",I+1);
    scanf("%ld,%c,%s",&stuarr[I].stu_num,&stuarr[I].sex,stuarr[I].name);
    for(j=0;j<4;j++)
    scanf("%d",&stuarr[I].score[j]); }
    for(I=0;I{ sum=0.0;
    for(j=0;j<4;j++)
    sum+=stuarr[I].score[j];
    stuarr[I].average=sum/4.0; }
    max=stuarr[0].average;
    index=0;
    for(I=1;Iif(stuarr[I].average>max)
    {max=stuarr[I].average; index=I; }
    printf("總平均成績高的學(xué)生信息是學(xué)號=%ld,性別=%c,姓名=%s,平均成績=%4.1f\n",stuarr[index].stu_num,stuarr[index].sex,stuarr[index].name,stuarr[i42有一個(gè)一維數(shù)組,內(nèi)放10個(gè)學(xué)生成績,寫一個(gè)函數(shù),求出平均分。
    本題共5分,參考答案:float average(float array[ ],int n)
    { int I;
    float aver,sum=array[0];
    for(I=1;Isum=sum+array[I];
    aver=sum/n;
    return(aver); }
    main()
    { float ave,score[10];
    int I;
    for(I=0;I<10;I++)
    scanf("%f",&score[I]);
    ave=average(score,10);
    printf("%f\n",ave); }
    43編程計(jì)算下列表達(dá)式:s=n!(n從鍵盤上輸入)
    本題共5分,參考答案:#include "stdio.h"
    main()
    { long t=1;
    inti;
    for(i=1;i<=10;i++)
    t=t*i;
    printf("%ld",t); }
    44從鍵盤上輸出10個(gè)整數(shù)存入一維數(shù)組中,按由大到小的順序輸出。
    本題共5分,參考答案:#include "stdio.h"
    main()
    { inti,j,a[10];
    for(i=1;i<=10;i++)
    scanf("%d",&a[i]);
    for(i=0;i<9=;i++)
    for(j=9;j>i;j--)
    if(a[j-1]{ t=a[j-1];
    a[j-1]=a[j];
    a[j]=t; }
    for(i=0;i<10;i++)
    printf("%d",a[i]);
    }
    45三個(gè)整數(shù)a、b、c,由鍵盤輸入,輸出其中大的數(shù)。
    本題共5分,參考答案:main()
    { inta,b,c;
    printf(“請輸入三個(gè)整數(shù):”); scanf(“%d,%d,%d”,&a,&b,&c);
    if(aif(belseprintf(“max=%d\n”,b);
    else if(aelseprintf(“max=%d\n”,a); }
    46請編一個(gè)函數(shù)int fun(int a),它的功能是:判斷a是否是素?cái)?shù),若a是素?cái)?shù),返回1;若不是素?cái)?shù),返回0。A的值由主函數(shù)從鍵盤讀入。
    本題共5分,參考答案:#include”stdio.h”
    int fun(int a)
    {int I;
    if(a==2) return 1; I=2;
    while((a%I)!=0&&I<=sqrt((float)a))
    I++;
    if(a%I==0)
    {printf(“%d is not a prime!”,a);
    return 0; }
    printf(“%d is a prime!”,a);
    return 1; }
    main()
    {int x;
    printf(“\n please enter a number:”);
    scanf(“%d”,&x);
    printf(“%d\n”,fun(x)); }
    五、程序改錯(cuò)題
    47寫出下列程序的運(yùn)行結(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); }
    本題共10分,參考答案:1 2 5
    48寫出下列程序的運(yùn)行結(jié)果。
    main()
    { int n;
    For(n=3; n<=10; n++)
    { if(n%6= =0) break; Printf(“%d”,n); } }