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

字號:

一、單項選擇題(每題1分,共20分)
    1. C程序的基本單位是:( )
    A.子程序 B.程序 C.子過程 D.函數(shù)
    2.在C語言中,非法的八進制是:( )
    A.016 B.018 C.017 D.02
    3. 不是C語言實型常量的是:( )
    A.55.0 B.0.0 C.55.5 D.55e2.5
    4 .字符串“xyzw”在內(nèi)存中占用的字節(jié)數(shù)是:( )
    A.6 B.5 C.4 D.3
    5. 若已定義f,g為double類型,則表達(dá)式:f=1,g=f+5/4的值是:( )
    A.2.0 B.2.25 C.2.1 D.1.5 D.1.5 D.1.5 D.1.5
    6. 若有語句char c1=`d`,c2=`g`;printf(“%c,%d\n”,c2-`a`,c2-c1);則輸出結(jié)果為:( )
    (a的ASCII碼值為97)
    A.M,2 B.G,3 C.G,2 D.D,g
    7. 使用語句scanf(“a=%f,b=%d”,&a,&b);輸入數(shù)據(jù)時,正確的數(shù)據(jù)輸入是:( )
    A.a=2.2,b=3 B.a=2.2 b=3 C.2.2 3 D.2.2,3
    8.表示關(guān)系12<=x<=y的C語言表達(dá)式為:( )
    A.(12<=x)&(x<=y) B. (12<=x)&&(x<=y) C. (12<=x)|(x<=y)
    D.(12<=x)||(x<=y)
    9.設(shè)x=1,y=2,m=4,n=3,則表達(dá)式x>y?x:m    A.1 B.3 C.2 D.4
    10. 若有說明和語句:int a=5,b=6;b*=a+1;則b的值為:( )
    A.5 B.6 C.31 D.36
    11. 設(shè)整型變量s,t,c1,c2,c3,c4的值均為2,則執(zhí)行語句(s=c1==c2)||(t=c3>c4)后,s,t的值為:( )
    A.1,2 B.1,1 C.0,1 D.1,0
    12. 語句for(a=0,b=0;b!=100&&a<5;a++)scanf(“%d”,&b); scanf最多可執(zhí)行次數(shù)為:( )
    A.4 B.6 C.5 D.1
    13. 對于for(s=2; ;s++)可以理解為:( )
    A. for(s=2;0 ;s++) B. for(s=2;1 ;s++)
    C. for(s=2;s<2 ;s++) D. for(s=2;s>2;s++)
    14. 若有char h=`a`,g=`f`;int a[6]={1,2,3,4,5,6};則數(shù)值為4的表達(dá)式為:( )
    A.a[g-h] B.a[4] C.a[`d`-`h`] D.a[`h`-`c`]
    15. 設(shè):char s[10]={“october”};則printf(“%d\n”,strlen(s));輸出是:( )
    A.7 B.8 C.10 D.11
    16. 若有int a[3][5]={2,2},{2,6},{2,6,2}},則數(shù)組a共有個元素:( )
    A.8 B.5 C.3 D.15
    17. 設(shè)int a=5,b,*p=&a,則使b不等于5的語句為: ( )
    A.b=*&a B.b=*a C.b=*p D.b=a
    18. 若有int a[7]={1,2,3,4,5,6,7},*p=a則不能表示數(shù)組元素的表達(dá)式是: ( )
    A.*p B.*a C.a[7] D.a[p-a]
    19. 若有int b[4]={0,1,2,3},*p則數(shù)值不為3的表達(dá)式是: ( )
    A.p=s+2,*(p++) B.p=s+3,*p++ C. p=s+2,*( ++p) D.s[3]
    20.設(shè)有如下定義:struct jan{int a;float b;}c2,*p;若有p=&c2;則對c2中的成員a的正確引用是:( )
    A.(*p)。c2.a B.(*p)。a C.p->c2.a D. p.c2.a
    二、填空題(每空1分,共15分)
    1.C語言標(biāo)識符由 _________、__________和___________來構(gòu)造。
    2.在C語言中,字符串常量是用 一串字符。
    3.若有說明和語句:int a=25,b=60;b=++a;則b的值是 .
    4.若int x=5;while(x>0)printf(“%d”,x——);的循環(huán)執(zhí)行次數(shù)為 .
    5.若有int a[5],*p=a;則p+2表示第 個元素的地址。
    6.若有說明和語句:int a=5,b=6,y=6;b-=a;y=a++則b和y的值分別是 、 .
    7.已知整型變量a=3,b=4,c=5,寫出邏輯表達(dá)式a||b+c>c&&b-c的值是 .
    8.C程序設(shè)計的三種基本結(jié)構(gòu)是 ________、________和________.
    9.數(shù)組是表示類型相同的數(shù)據(jù),而結(jié)構(gòu)體則是若干 數(shù)據(jù)項的集合。
    10.C語言中文件是指 .
    三、將下列程序補充完整(每空2.5分,共30分)
    1.輸入三角形的三條邊a,b,c,求三角形的面積。
    #include “math.h”
    #include “stdio.h”
    main( )
    {float a,b,c,d,t,s;
    printf(“請輸入三角形的三條邊:”);
    scanf(“%f,%f,%f”,&a,&b,&c);
    if (1)
    printf(“%f%f%f不能構(gòu)成三角形!”, a,b,c);
    else {t=(a+b+c)/2;
    s= (2)
    printf(“a=%7.2f,b=%7.2f,c=%7.2f,area=%7.2f\n”, a,b,c,s);}}
    (1)
    (2)
    2.輸入兩個整數(shù),n1,n2(要求n1    #include “stdio.h”
    main()
    {int n1,n2,j,n=0;
    printf(“\n請輸入兩個數(shù):”);
    scanf ( (3) );
    if(n1>n2){ (4) }
    for(j=n1;j<=n2,j++)
    if (5) n++;
    printf(“a=%5d,b=%5d,n=%5d\n”n1,n2,n);}
    (3)
    (4)
    (5)
    3.輸入兩個整數(shù),n1,n2(要求n1    #include “math.h”
    #include “stdio.h”
    int prime (int x)
    {int k;
    for (6)
    if (x%k==0) return(0);
    return(1)}
    main()
    {int a,b,j,n=0;
    printf(“\n請輸入兩個數(shù):”);
    scanf(“%d,%d”,&a,&b);
    if(a>b){ (7) }
    for(j=a;j<=b,j++)
    if( (8) ) n++;
    printf(“a=%4d,b=%4d,n=%4d\n”a,b,n);}
    (6)
    (7)
    (8)
    4.編寫程序,輸入n個整數(shù)(n由鍵盤輸入),統(tǒng)計其中正數(shù)、負(fù)數(shù)和零的個數(shù)。
    #include “stdio.h”
    main( )
    {int x,n,k,k1=0,k2=0,k3=0;
    printf(“input n=:”);
    (9)
    for(k=0;k    {scanf(“%d”,&x);
    if (x<0)k1++;
    (10) ;
    else k3++;
    printf(“k1=%4d,k2=%4d,k3=%4d\n”,k1,k2,k3)}}
    (9)
    (10)
    5.設(shè)計一個程序完成以下功能:若從鍵盤輸入英文字母,則原樣輸出;輸入其他字符不理會,直到輸入Q鍵結(jié)束。]
    #include “stdio.h”
    main( )
    {char ch;
    do{ch=getchar();
    if ( (11) )break;
    else if( (12) )putchar(ch);
    }while(1);}
    (11)
    (12)
    四、按格式寫出程序運行結(jié)果。每題4分,共16分。
    1.格式化輸出函數(shù)]
    main()
    { int a=1,c=65,d=97;
    printf(“a10=%d,a8=%o,a16=%x\n”,a,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);}
    輸出結(jié)果:
    2. 循環(huán)結(jié)構(gòu)
    main()
    { int y=9,k=1;
    for(;y>0;y——)
    {if(y%3==0){printf(“%4d”——y);continue;}
    k++;}
    printf(“\nk=%4d,y=%4d\n”,k,y);}
    輸出結(jié)果:
    3.數(shù)組
    #include “stdio.h”
    main( )
    {int k,j;
    in ta[]={3,-5,18,27,37,23,69,82,52,-15};
    for(k=0,j=k;k<10;k++)
    if(a[k]>a[j])j=k;
    printf(“m=%d,j=%d\n”,a[j],j);}
    輸出結(jié)果為:
    4.字符輸出
    main( )
    {char *p,s[]=“ABCD”;
    for ( p=s;p    printf(“%s\n”,p);}
    輸出結(jié)果:
    五、按題目要求寫出可運行程序(19分)
    1.求元素個數(shù)為10的一維數(shù)組元素中的值和最小值。
    2.將矩陣 倒置為
    9 7 5 9 3 4
    3 1 2 7 1 6
    4 6 8 5 2 8
    3.編寫函數(shù):輸入兩個正整數(shù)m,n,求它們的公約數(shù)和最小公倍數(shù)。