2001年(下)高級(jí)語言程序設(shè)計(jì)(一)試卷

字號(hào):

答案
    高級(jí)語言程序設(shè)計(jì)(一)試卷
    第一部分 選擇題
    一、單項(xiàng)選擇題 (本大題共20小題,每小題1分,共20分) 在每小題列出的四個(gè)選項(xiàng)中只有一個(gè)選項(xiàng)是符合題目要求的,請(qǐng)將正確選項(xiàng)前的字母填在題后的括號(hào)內(nèi)。
    1. C語言程序編譯時(shí),程序中的注釋部分 【 】
    A. 參加編譯,并會(huì)出現(xiàn)在目標(biāo)程序中
    B. 參加編譯,但不會(huì)出現(xiàn)在目標(biāo)程序中
    C. 不參加編譯,但會(huì)出現(xiàn)在目標(biāo)程序中
    D. 不參加編譯,也不會(huì)出現(xiàn)在目標(biāo)程序中
    2. 下列表達(dá)式的值為0的是 【 】
    A. 3﹪5
    B. 3/5.0
    C. 3/5
    D. 3<5
    3. 正確的C語言用戶自定義標(biāo)識(shí)符是 【 】
    A. print
    B. float
    C. when?
    D. random﹪2
    4. 設(shè)int a = 3;則表達(dá)式a<1&& - - a>1的運(yùn)算結(jié)果和a的值分別是 【 】
    A. 0和2
    B. 0和3
    C. 1和2
    D. 1和3
    5. 下列敘述中,正確的是 【 】
    A. 引用帶參的宏時(shí),實(shí)際參數(shù)的類型應(yīng)與宏定義時(shí)的形式參數(shù)類型相一致
    B. 宏名必須用大寫字母表示
    C. 宏替換不占用運(yùn)行時(shí)間,只占編譯時(shí)間
    D. 在程序的一行上可以出現(xiàn)多個(gè)有效的宏定義
    6. 下列保留字中用于構(gòu)成循環(huán)結(jié)構(gòu)的是 【 】
    A. if
    B. while
    C. switch
    D. default
    7. 與語句if(a>b)if(c>d)x = 1;else x = 2;等價(jià)的是 【 】
    A. if(a>b){if(c>d) x = 1;else x = 2;}
    B. if(a>b){if(c>d) x = 1;} else x = 2;
    C. if((a>b) && (c>d)) x = 1;else x = 2;
    D. if(a< =b) x = 2;else if (c>d) x = 1;
    8. 設(shè) char x =′a′;則printf(″x = ﹪c, y = ﹪c \ n″,x,97);的輸出是【 】
    A. x = a,y = 97
    B. x = 97,y = a
    C. x = 97,y = 97
    D. x = a,y = a
    9. 設(shè)int a[][4]={1,2,3,4,5,6,7,8,9};則數(shù)組a的第一維的大小是【 】
    A. 2
    B. 3
    C. 4
    D. 無確定值
    10. 執(zhí)行下列程序
    int a[3][3]={{1},{2},{3}};
    int b[3][3]={1,2,3};
    main()
    {printf(″﹪d \ n″,a[1][0] + b[0][0]);}
    后輸出的結(jié)果是 【 】
    A. 0
    B. 1
    C. 2
    D. 3
    11. 設(shè)char str[100];int i = 5;則引用數(shù)組元素的錯(cuò)誤形式是 【 】
    A. str[i + 10]
    B. (str + i)
    C. (str + i - 1)
    D. ((str + + ) + i)
    12. 設(shè)int x[] = {1,2,3,4,5,6},* p = x;則值為3的表達(dá)式是 【 】
    A. p + = 2, * + + p
    B. p + = 2, * p + +
    C. p + = 3, * p
    D. p + = 2, + + * p
    13. 在函數(shù)內(nèi),定義變量時(shí)存儲(chǔ)類型符可省略的是 【 】
    A. auto
    B. static
    C. extern
    D. register
    14. 執(zhí)行下列程序
    int a = 3, b = 4;
    void fun(int x1, int x2)
    {printf(″﹪d, ﹪d \ n″, x1 + x2, b);}
    main()
    {int a = 5, b = 6;fun(a, b);}
    后輸出的結(jié)果是 【 】
    A. 3,4
    B. 11,1
    C. 11,4
    D. 11,6
    15. 設(shè)有定義語句
    struct
    {int a;float b;} d[3]={{1,4},{2,5},{6,7}};
    則printf(″﹪3.1f \ n″,d[2]. a * d[2]. b/d[1]. b);的輸出是 【 】
    A. 2.5
    B. 2.0
    C. 8.0
    D. 8.4
    16. 設(shè)有定義語句:enum t1 {a1, a2 = 7, a3, a4 = 15}time;
    則枚舉常量a2和a3的值分別為 【 】
    A. 1和2
    B. 2和3
    C. 7和2
    D. 7和8
    17. 將一個(gè)整數(shù)10002存到磁盤上,以ASCII碼形式存儲(chǔ)和以二進(jìn)制形式存儲(chǔ),占用的字節(jié)數(shù)分別是 【 】
    A. 2和2
    B. 2和5
    C. 5和2
    D. 5和5
    18. 在文件使用方式中,字符串″rb″表示 【 】
    A. 打開一個(gè)已存在的二進(jìn)制文件,只能讀取數(shù)據(jù)
    B. 打開一個(gè)文本文件,只能寫入數(shù)據(jù)
    C. 打開一個(gè)已存在的文本文件,只能讀取數(shù)據(jù)
    D. 打開一個(gè)二進(jìn)制文件,只能寫入數(shù)據(jù)
    19. 執(zhí)行下列程序
    # define F(y) 15>>y
    # define PRINT(a) printf(″﹪d″,a)
    main()
    {
    PRINT(F(2));
    }
    后輸出的結(jié)果是 【 】
    A. 3
    B. 3.5
    C. 14
    D. 7.5
    20. main()函數(shù)可以帶兩個(gè)形參,一般分為argc和argv,其中argv可以定義為【 】
    A. int argv;
    B. char * argv[];
    C. char argv[];
    D. char ** argv[];
    第二部分 非選擇題
    二、填空題 (本大題共10小題,每小題2分,共20分)
    21. 初始化值是0.618的雙精度變量a的定義形式為_____________________。
    22. 表達(dá)式 !10! = 1的值是____________________。
    23. “2024. 表達(dá)式a = 1,a + 1,a + + 的值是___________________。
    25. 設(shè)int i = 5;則循環(huán)語句while (i > = 1) i - -;執(zhí)行后,i的值為_______________。
    26. 被調(diào)函數(shù)在執(zhí)行結(jié)束時(shí),這個(gè)函數(shù)中定義的__________________類型的變量不被釋放。
    27. 設(shè)
    struct student
    {
    int no;
    char name[12];
    float score[3];
    } sl,* p = &sl;
    用指針法給sl的成員no賦值1234的語句是___________________。
    28. C語言程序中對(duì)文本文件的存取是以________________為單位進(jìn)行的。
    29. 設(shè)char string[] =″This_is_a_book!″;則數(shù)組的長度應(yīng)是________________。
    30. 設(shè)int a[2][3] = {{2},{3}};則數(shù)組元素_____________________的值為3。
    三、程序分析題 (本大題共5小題,每小題5分,共25分) 閱讀下列程序,將輸出結(jié)果寫到各題右側(cè)的空白處
    31. int a = 200;
    main()
    {int i;
    for(i = 1;i< = 5;i + +)
    {a + + ;
    printf(″﹪d,″,a);
    s()
    }
    {
    s()
    {static int a = 20;
    a + + ;
    printf(″﹪d \ n″,a);
    }
    32. # include ″stdio.h″
    main()
    {char c;
    c = getchar();
    if(c> =′a′&&c< =′z′) ‖c> =′X′&&c< =′Z′)c = c - 23;
    printf(″﹪c \ n″,c);
    }
    設(shè)從鍵盤上輸入Next ↙
    33. # define N 7
    main()
    {int i,j,temp,a[N]={1,2,3,4,5,6,7};
    for(i = 0;i{j = N - 1 - i;
    temp = a[i];a[i]=a[j];a[j]=temp;
    }
    for(i = 0;i}
    34. struct porb
    {char * name;
    int count;
    }x[]={″Li ning″,19,″Lang ping″,21,″Zhu jian hua″,20};
    main()
    {int i;
    for(i = 0;i<3;i + + )
    printf(″﹪s: ﹪d \ n″,x[i].name,x[i].count);
    }
    35. main()
    {union
    {short a;char ch;
    }M;
    M.a = 100;M.ch =′A′;
    printf(″﹪d,﹪d,﹪c \n″,sizeof(M),M.a,M.ch);
    }
    四、程序填充題 (本大題共3小題,每小題6分,共18分) 給出下列程序,將橫線處缺少的部分補(bǔ)上,使其能正確運(yùn)行。
    36. 以下程序的功能是用選擇法對(duì)數(shù)組a中的整數(shù)由小到大進(jìn)行排序。
    void sort(int b[],int n)
    { int i,j,t;
    for(i = 0;ifor(______;jif(b[i]_____b[j])
    {t = b[i];_____________;b[j]=t;}
    }
    main()
    { int a[]={5,8,6,2,7,4,1,3};
     int i;
    sort(a,8);
    for(i = 0;i<8;i ++ )
    printf(″﹪5d″,a[i]);
    printf(″\ n″);
    }
    37. 輸入一字符串(換行為結(jié)束標(biāo)志)統(tǒng)計(jì)其中數(shù)字(0,1,2,…,9不單獨(dú)統(tǒng)計(jì))、空白和其它字符出現(xiàn)的次數(shù)。
    # include ″stdio.h″
    main()
    { char c;
    int ___________________________;
    while((c = getchar())! =′\ n′)
    {
    if(__________________________)digit + + ;
    else if(c = =′′‖c = =′\ t′) ++ blank;
    else __________________________;
    }
    printf(″digit =﹪d,blank =﹪d,other =﹪d \ n″,digit,blank,other);
    }
    38. 先為數(shù)組a輸滿數(shù)據(jù),再為x輸入一個(gè)數(shù)據(jù),在數(shù)組a中找出第一個(gè)與x相等的元素并將其下標(biāo)輸出,若不存在這樣的元素,則輸出“Not found!”標(biāo)志。
    main()
    {int i,x,a[10];
    for(i = 0;i<10;i ++ )scanf(″﹪d″,___________);
    scanf(″﹪d″,&x);printf(″﹪d″,x);
    for(i = 0;i<10;i ++) if(_________________)break;
    if (i _________10)printf(″ position:﹪d \ n″,i);
    else printf(″ Not found! \ n″,x);
    }
    五、程序設(shè)計(jì)題 (第39小題5分,第40、41小題各6分,共17分)。
    39. 求出10至1000之內(nèi)能同時(shí)被2、3、7整除的數(shù),并輸出。
    40. 求1到100之間的奇數(shù)之和及偶數(shù)之和,并將二者輸出。
    41. 輸入一字符串,檢查是否回文 (回文是指正反序相同,如,LeveL),若是則輸出“Yes”,否則輸出“No”。