2004年3月全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言試題及答案

字號(hào):

為大家收集整理了《2004年3月全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言試題及答案》供大家參考,希望對(duì)大家有所幫助?。?!
    1.與十進(jìn)制數(shù)200等值的十六進(jìn)制數(shù)為
    A.A8
    B.A4
    C.C8
    D.C4
    2.DOS文件系統(tǒng)的組織結(jié)構(gòu)屬于
    A.星形結(jié)構(gòu)
    B.網(wǎng)形結(jié)構(gòu)
    C.環(huán)形結(jié)構(gòu)
    D.樹形結(jié)構(gòu)
    3. 對(duì)存儲(chǔ)器按字節(jié)進(jìn)行編址,若某存儲(chǔ)器芯片共有10根地址線,則該存儲(chǔ)器芯片的存儲(chǔ)容量為
    A.1KB
    B.2KB
    C.4KB
    D.8KB
    4. 在DOS環(huán)境下,代表鍵盤和顯示器的設(shè)備文件名為
    A.PRN
    B.CON
    C.NUL
    D.LPT
    5. 計(jì)算機(jī)網(wǎng)絡(luò)的主要特點(diǎn)是
    A.運(yùn)算速度快
    B.運(yùn)算精度高
    C.資源共享
    D.人機(jī)交互
    6.磁盤處于寫保護(hù)狀態(tài)時(shí)其中的數(shù)據(jù)
    A.不能讀出,不能刪改
    B.可以讀出,不能刪改
    C.不能讀出,可以刪改
    D.可以讀出,可以刪改
    7.從Windows環(huán)境進(jìn)入MS-DOS方式后,返回Windows環(huán)境的DOS命令為
    A.EXIT
    B.QUIT
    C.RET
    D.MSDO
    8. 在Windows環(huán)境下,若資源管理器左宣傳品中的某文件夾左邊標(biāo)有“+”標(biāo)記,則表示
    A.該文件夾為空
    B.該文件夾中含有子文件夾
    C.該文件夾中只包含有可執(zhí)行文件
    D.該文件夾中包含系統(tǒng)文件
    9.在Windows菜單中,暗淡的命令名項(xiàng)目表示該命令
    A.暫時(shí)不能用
    B.正在執(zhí)行
    C.包含下一層菜單
    D.包含對(duì)話框
    10.在Windows環(huán)境下,單擊當(dāng)前窗口中的按鈕“× ”(右上角的關(guān)閉按鈕),其功能是
    A.將當(dāng)前應(yīng)用程序轉(zhuǎn)為后臺(tái)運(yùn)行
    B.退出Windows后再關(guān)機(jī)
    C.終止當(dāng)前應(yīng)用程序的運(yùn)行
    D.退出Windows后重新啟動(dòng)計(jì)算機(jī)
    11.用C語(yǔ)言編寫的代碼程序
    A.可立即執(zhí)行
    B.是一個(gè)源程序
    C.經(jīng)過編譯即可執(zhí)行
    D.經(jīng)過編譯解釋才能執(zhí)行
    12.結(jié)構(gòu)化程序由三種基本結(jié)構(gòu)組成,三種基本結(jié)構(gòu)組成的算法
    A.可以完成任何復(fù)雜的任務(wù)
    B.只能完成部分復(fù)雜的任務(wù)
    C.只能完成符合結(jié)構(gòu)化的任務(wù)
    D.只能完成一些簡(jiǎn)單的任務(wù)
    13. 以下定義語(yǔ)句中正確的是
    A.char a='A'b='B';
    B.float a=b=10.0;
    C.int a=10,*b=&a;
    D.float *a,b=&a;
    14.下列選項(xiàng)中,不能用作標(biāo)識(shí)符的是
    A._1234_
    B._1_2
    C.int_2_
    D.2_int_
    15.有以下定義語(yǔ)句
    double a,b; int w; long c;
    若各變量已正確賦值,則下列選項(xiàng)中正確的表達(dá)式是
    A.a(chǎn)=a+b=b++
    B.w%(int)a+b
    C.(c+w)%(int)a
    D.w=a==b;
    16.有以下程序
    main()
    { int m=3,n=4,x;
    x=-m++;
    x=x+8/++n;
    printf("%d\n",x);
    }
    程序運(yùn)行后的輸出結(jié)果是
    A.3
    B.5
    C.-1
    D.-2
    17.有以下程序
    main()
    { char a='a',b;
    print("%c,",++a);
    printf("%c\n",b=a++);
    }
    程序運(yùn)行后的輸出結(jié)果是
    A.b,b
    B.b,c
    C.a(chǎn),b
    D.a(chǎn),c
     18.有以下程序
    main()
    { int m=0256,n=256;
    printf("%o %o\n",mn,n);
    }
    程序運(yùn)行后的輸出結(jié)果是
    A.0256 0400
    B.0256 256
    C.256 400
    D.400 400
    19.有以下程序
    main()
    { int a=666,b=888;
    printf("%d\n",a,
    B.;
    }
    程序運(yùn)行后的輸出結(jié)果是
    A.錯(cuò)誤信息
    B.666
    C.888
    D.666,888
    20.有以下程序
    main()
    { int i;
    for(i=0;i<3;i++)
    switch(i)
    {
    case 0:printf("%d",i);
    case 2:printf("%d",i);
    default:printf("%d",i);
    }
    }
    程序運(yùn)行后的輸出結(jié)果是
    A.022111
    B.021021
    C.000122
    D.012
    21.若x和y代表整型數(shù),以下表達(dá)式中不能正確表示數(shù)學(xué)關(guān)系|x-y|<10的是
    資料來(lái)源:東方教育網(wǎng)全國(guó)計(jì)算機(jī)等級(jí)考試頻道 Http://www.eastedu.com.cn
    A.a(chǎn)bs(x-y)<10
    B.x-y>-10&& x-y<10
    C.@(x-y)<-10||!(y-x)>10
    D.(x-y)*(x-y)<100
    22.有以下程序
    main()
    {
    int a=3,b=4,c=5,d=2;
    if(a>
    B.
    if(b>
    C.
    printf("%d",d++ +1);
    else
    printf("%d",++d +1);
    printf("%d\n",
    D.;
    }
    程序運(yùn)行后的輸出結(jié)果是
    A.2
    B.3
    C.43
    D.44
    23.下列條件語(yǔ)句中,功能與其他語(yǔ)句不同的是
    A. if(a) printf("%d\n",x); else printf("%d\n",y);
    B. if(a==0) printf("%d\n",y); else printf("%d\n",x);
    C. if (a!=0) printf("%d\n",x); else printf("%d\n",y);
    D. if(a==0) printf("%d\n",x); else printf("%d\n",y);
    24.有以下程序
    main()
    { int i=0,x=0;
    for (;;)
    {
    if(i==3||i==5) continue;
    if (i==6) break;
    i++;
    s+=i;
    };
    printf("%d\n",s);
    }
    程序運(yùn)行后的輸出結(jié)果是
    A.10
    B.13
    C.21
    D.程序進(jìn)入死循環(huán)
    25.若變量已正確定義,要求程序段完成求5!的計(jì)算,不能完成此操作的程序段是B
    A.for(i=1,p=1;i<=5;i++) p*=i;
     B.for(i=1;i<=5;i++){ p=1; p*=i;}
    C.i=1;p=1;while(i<=5){p*=i; i++;}
     D.i=1;p=1;do{p*=i; i++; }while(i<=5);
    26.有以下程序
    main()
    { char a,b,c,d;
    scanf("%c,%c,%d,%d",&a,&b,&c,&
    D.;
    printf("c,%c,%c,%c\n",a,b,c,
    D.;
    }
    若運(yùn)行時(shí)從鍵盤上輸入:6,5,65,66<回車>。則輸出結(jié)果是
    A.6,5,A,B
    B.6,5,65,66
    C.6,5,6,5
    D.6,5,6,6
    27)以下能正確定義二維數(shù)組的是
    A.int a[][3];
    B.int a[][3]=2{2*3};
    C.int a[][3]={};
    D.int a[2][3]={{1},{2},{3,4}};
     28. 有以下程序
    int f(int a)
    { return a%2; }
    main()
    { int s[8]={1,3,5,2,4,6},i,d=0;
    for (i=0;f(s);i++) d+=s;
    printf("%d\n",
    D.;
    }
    程序運(yùn)行后的輸出結(jié)果是
    A.9
    B.11
    C.19
    D.21
     29.若有以下說(shuō)明和語(yǔ)句,int c[4][5],(*p)[5];p=c;能正確引用c數(shù)組元素的是
    A.p+1
    B.*(p+3)
    C.*(p+1)+3
    D.*(p[0]+2])
     30.有以下程序
    main()
    { int a=7,b=8,*p,*q,*r;
    p=&a;q=&b;
    r=p; p=q;q=r;
    printf("%d,%d,%d,%d\n",*p,"q,a,
    B.;
    }
    程序運(yùn)行后的輸出結(jié)果是
    A.8,7,8,7
    B.7,8,7,8
    C.8,7,7,8
    D.7,8,8,7
    31.s12和s2已正確定義并分別指向兩個(gè)字符串。若要求:當(dāng)s1所指串大于s2所指串時(shí),執(zhí)行語(yǔ)句S;則以下選項(xiàng)中正確的是
    A.if(s1>s2)S;
    B.if(strcmp(s1,s2))S;
    C.if(strcmp(s2,s1)>0)S;
    D.if(strcmp(s1,s2)>0)S;
    資料來(lái)源:東方教育網(wǎng)全國(guó)計(jì)算機(jī)等級(jí)考試頻道 Http://www.eastedu.com.cn
    32.設(shè)有定義語(yǔ)句
    int x[6]={2,4,6,8,5,7},*p=x,i;
    要求依次輸出x數(shù)組6個(gè)元素中的值,不能完成此操作的語(yǔ)句是
    A.for(i=0;i<6;i++) printf("-",*(p++));
     B.for(i=0;i<6;i++) printf("-",*(p+i));
    C.for(i=0;i<6;i++) printf("-",*p++);
     D.for(i=0;i<6;i++) printf("-",(*p)++);
    33.有以下程序
    #include
    main()
    {int a[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL;
    *q=*(p+5);
    printf("%d %d\n",*p,*1);
    }
    程序運(yùn)行后的輸出結(jié)果是
    A.運(yùn)行后報(bào)錯(cuò)
    B.6 6
    C.6 11
    D.5 10
    34有以下定義和語(yǔ)句
    int a[3][2]={1,2,3,4,5,6,},*p[3];
    p[0]=a[1];
    則*p[0]+1)所代表的數(shù)組元素是
    A.a(chǎn)[0][1]
    B.a(chǎn)[1][0]
    C.a(chǎn)[1][1]
    D.a(chǎn)[1][2]
    35.有以下程序
    main()
    {char str[][10]={"China","Beijing"},*p=str;
    printf("%s\n",p+10);
    }
    程序運(yùn)行后的輸出結(jié)果是
    A. China
    B.Bejing
    C.ng
    D.ing
     36. 有以下程序
    main()
    {char s[]="ABCD",*p;
    for(p=s+1;p
    }
    程序運(yùn)行后的輸出結(jié)果是
    A. ABCD
    B.A
    C.B
    D.BCD
    BCD B C CD
    CD C D D
    D D
    37.在函數(shù)調(diào)用過程中,如果函數(shù)funA調(diào)用了函數(shù) funB,函數(shù)funB又調(diào)用了函數(shù)funA,則
    A.稱為函數(shù)的直接遞歸調(diào)用
    B.稱為函數(shù)的間接遞歸調(diào)用
    C.稱為函數(shù)的循環(huán)調(diào)用
    D.C語(yǔ)言中不允許這樣的遞歸調(diào)用
    38.已有定義:int i,a[10],*p;,則合法的賦值語(yǔ)句是
    A.p=100;
    B.p=a[5];
    C.p=a[2]+2;
    D.p=a+2;
    39.以下敘述中正確的是
    A.局部變量說(shuō)明為static存儲(chǔ)數(shù),其生存期將得到延長(zhǎng)
    B.全局變量說(shuō)明為static存儲(chǔ)類,其作用域?qū)⒈粩U(kuò)大
    C.任何存儲(chǔ)類的變量在未賦初值時(shí),其值都是不確定的
    D.形參可以使用的存儲(chǔ)類說(shuō)明符與局部變量完全相同
    40.設(shè)有定義語(yǔ)句:char c1=92,c2=92;,則以下表達(dá)式中值為零的是
    A.c1^c2
    B.c1&c2
    C.~c2
    D.c1|c2
    41.程序中對(duì)fun函數(shù)有如下說(shuō)明
    void *fun();
    此說(shuō)明的含義是:
    A.fun了數(shù)無(wú)返回值
    B.fun函數(shù)的返回值可以是任意的數(shù)據(jù)類型
    C.fun函數(shù)的返回值是無(wú)值型的指針類型
    D.指針fun指向一個(gè)函數(shù),該函數(shù)無(wú)返回值
    42.有以下程序
    main()
    { char s[]"Yes\n/No",*ps=s;
    puts(ps+4);
    *(ps+4)=0;
    puts(s);
    }
    程序運(yùn)行后的輸出結(jié)果是
    A.n/No
    B./No
    C.n/NO
    D.
    Yes Yes Yes /No
    /No /No Yes
    43.有以下程序
    main()
    { unsigned int a;
    int b=-1;
    a=b;
    printf("%u",a);
    }
    程序運(yùn)行后的輸出結(jié)果是
    A.-1
    B.65535
    C.32767
    D.-32768
    44.有以下程序
    void fun(int *a,int i,int j)
    { int t;
    if(i
    { t=a;a=a[j];a[j]=t;
    i++; j--;
    fun(a,i,j);
    }
    }
    main()
    { int x[]={2,6,18},i;
    fun(x,0,3);
    for(i=0;i<4;i++) printf("-",x);
    printf("\n");
    }
    程序運(yùn)行后的輸出結(jié)果是
    A.1 2 6 8
    B. 8 6 2 1
    C. 8 1 6 2
    D.8 6 1 2
    45.有以下說(shuō)明和定義語(yǔ)句
    struct student
    { int age; char num[8];};
    struct student stu[3]={{20,"200401"},{21,"200402"},{10\9,"200403"}};
    struct student *p=stu;
    資料來(lái)源:東方教育網(wǎng)全國(guó)計(jì)算機(jī)等級(jí)考試頻道 Http://www.eastedu.com.cn
    以下選項(xiàng)中引用結(jié)構(gòu)體變量成員的表達(dá)式錯(cuò)誤的是
    A. (p++)->num
    B.p->num
    C.(*p).num
    D.stu[3].age
    46.有以下程序
    mina()
    { int x[]={1,3,5,7,2,4,6,0},i,j,k;
    for(i=0;i<3;i++)
    for (j=2;j>=i;j--)
    if(x[j+1]>x[j]){ k=x[j];x[j]=x[j+1];x[j+1]=k;}
    for(i=0;i<3;i++)
    for(j=4;j<7-i;j++)
    if(x[j+1]>x[j]){ k=x[j];x[j]=x[j+1];x[j+1]=k;}
    for (i=0;i<3;i++)
    for(j=4;j<7-i;j++)
    if(x[j]>x[j+1]){ k=x[j];x[j]=x[j+1];x[j+1]=k;}
    for (i=0;i<8;i++) printf("%d",x);
    printf("\n");
    }
    程序運(yùn)行后的輸出結(jié)果是:
    A.75310246
    B.01234567
    C.76310462
    D.13570246
    47.有如下程序
     #include
     main()
     {FILE *fp1;
     fp1=fopen("f1.txt","w");
     fprintf(fp1,"abc");
     fclose(fp1);
     }
     若文本文件f1.txt中原有內(nèi)容為:good,則運(yùn)行以上程序后文件f1.txt中的內(nèi)容為
     A.goodabc
     B.a(chǎn)bcd
     C.a(chǎn)bc
     D.a(chǎn)bcgood
     48~50.以下程序的功能是:建立一個(gè)帶有頭結(jié)點(diǎn)的單向鏈表,并將存儲(chǔ)在數(shù)組中的
     字符依次轉(zhuǎn)儲(chǔ)到鏈表的各個(gè)結(jié)點(diǎn)中,請(qǐng)從與下劃線處號(hào)碼對(duì)應(yīng)的一組選若中選擇出
     正確的選項(xiàng)。
     #include
     stuct node
     { char data; struct node *next;};
     (48) CreatList(char *s)
     { struct node *h,*p,*q);
     h=(struct node *) malloc(sizeof(struct node));
     p=q=h;
     while(*s!='\0')
     { p=(struct node *) malloc(sizeof(struct node));
     p->data= (49) ;
     q->next=p;
     q= (50) ;
     s++;
     }
     p->next='\0';
     return h;
     }
     main()
     { char str[]="link list";
     struct node *head;
     head=CreatList(str);
     ...
     }
     (48)
     A.char *
     B.struct node
     C.struct node*
     D.char
     (49)
     A.*s
     B.s
     C.*s++
     D.(*s)++
     (50)
     A.p->next
     B.p
     C.s
     D.s->next
    二、填空題:(每空2分 ,共40分)
     1.在64位高檔微機(jī)中,CPU能同時(shí)處理 _____ 個(gè)字節(jié)的二進(jìn)制數(shù)據(jù)。
     2.E-mail地址由域名和用戶名兩部分組成,它們之間用@分隔,其中在@后面的部分 是 _______
     3.Windows窗口一般由標(biāo)題欄、菜單欄、控制按鈕等部分組成。為了移動(dòng)窗口,則要 用鼠標(biāo)拖動(dòng) _____
     4.計(jì)算機(jī)軟件分為系統(tǒng)軟件和應(yīng)用軟件,UNIX系統(tǒng)屬于 ________ 。
     5.在Windows環(huán)境下,為了將屏幕內(nèi)容存入剪貼板,應(yīng)按 ________ 鍵。
     6.以下程序段的輸出結(jié)果是 _____
     int i=9;
     printf("%o\n",i);
     7.以下程序運(yùn)行后的輸出結(jié)果是 _______ 。
     main()
     { int a,b,c;
     a=25;
     b=025;
     c=0x25;
     printf("%d %d %d\n',a,b,c);
     }
     8.以下程序運(yùn)行后的輸出結(jié)果是 ______ 。
     main()
     { int p[7]={11,13,14,15,16,17,18};
     int i=0,j=0;
     while(i<7 && p%2==1) j+=p[i++];
     printf("%d\n",j);
     }
     9.以下程序運(yùn)行后的輸出結(jié)果是 _______ 。
     main()
     { int x=1,y=0,a=0,b=0;
     switch(x)
     {case 1:switch(y)
     { case 0:a++; break;
     case 1:b++; break;
     }
     case 2:a++;b++; break;
     }
     printf("%d %d\n",a,b);
     }
     10.以下程序運(yùn)行后的輸出結(jié)果是 _______ 。
     main()
     { int a[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};
     int i=0,j=0,s=0;
     while(i++<4)
     {
     if(i==2||i==4) continue;
     j=0;
     do{ s+= a[j]; j++; } while(j<4);
     }
     printf("%d\n",s);
     }
     11.以下程序運(yùn)行后的輸出結(jié)果是 _____ 。
     main ()
     { char a[]="Language",b[]="Programe";
     char *p1,*p2; int k;
     p1=a; p2=b;
     for(k=0;k<=7;k++)
     if(*p1+k)==*(p2+k)) printf("%c",*(p1+k));
     }
     12.以下程序運(yùn)行后的輸出結(jié)果是 _______ 。
     main()
     { char a[]="123456789",*p; int i=0;
     p=a;
     while(*p)
     { if(i%2==0) *p='*";
     p++;i++;
     }
     puts(a);
     }
     13.以下程序中, for循環(huán)體執(zhí)行的次數(shù)是 _____ 。
     #define N 2
     #define M N+1
     #define K M+1*M/2
     main()
     { int i;
     for(i=1;i   { ... ]
     ...
     }
    14、通過函數(shù)求f(x)的累加和,其中f(x)=x2+1
    main()
    {
    printf("The sum=%d\n",SunFun(10));
    }
    SunFun(int n)
    {
    int x,s=0;
    for(x=0;x<=n;x++) s+=F(________);
    return s;
    }
    F( int x)
    { return ____________;}
     15. 以下程序從終端讀入數(shù)據(jù)到數(shù)組中,統(tǒng)計(jì)其中正數(shù)的個(gè)數(shù),并計(jì)算它們之和。
     請(qǐng)?zhí)羁铡?BR>     main()
     { int i,a[20],sun,count;
     suum=count=0;
     for(i=0;i<20;i++) scanf("%d", _____ );
     fro(i=0;i<20;i++)
     { if(a>0)
     { count++;
     sum+= ______ ;
     }
     }
     printf("sum=%d,count=%d\n",sum,count);
     }
     16.以下程序中,函數(shù)
    sumColumM的功能是:求出M行N列二維數(shù)組每列元素中的最小值,并計(jì)算它們的和值。和值通過形參傳回主函數(shù)輸出。請(qǐng)?zhí)羁铡?BR>     #define M 2
     #define N 4
     void SumColumMin(int a[M][N],int *sum)
     { int i,j,k,s=0;
     for(i=0;i   { k=0;
     for(j=1;j   if(a[k]>a[j])k=j;
     s+= _______ ;
     }
     [*sum] =s;
     }
     main()
     { int x[M][N]={3,2,5,1,4,1,8,3},s;
     SumColumMin( _______ );
     printf("%d\n",s);
     }
    選擇題
    1-5 C D A B C
    6-10 B A B A C
    11-15 B C C D C
    16-20 D A C B C
    21-25 C A D D B
    26-30 A C A D C
    31-35 D D A C B
    36-40 D B D A A
    41-45 C B B C D
    46-50 A C C A B
    填空題
    1. 8
    2. 域名
    3. 標(biāo)題欄
    4. 系統(tǒng)軟件
    5. PEINTSCREEN
    6. 11
    7. 25 21 37
    8. 24
    9. 21
    10 . 92
    11. gae
    12. 1*3*5*7*9
    13. 4
    14. x x*x+1
    15. &a[i] a[i]
    16. a[k][i] *sum x,&s