全國2007年10月高等教育自學(xué)考試高級語言程序設(shè)計(一)試題2

字號:

二、填空題(本大題共10小題,每小題2分,共20分)
    請在每小題的空格中填上正確答案。錯填、不填均無分。
    16.一個字符型變量所占內(nèi)存的字節(jié)數(shù)是____________________。
    17.寫出公式對應(yīng)的C語言表達(dá)式_________________。
    18.執(zhí)行語句printf(〞%s\n, 〞〞 World\0Wide\0Web〞);后的輸出結(jié)果是_______________。
    19.設(shè)int a,b=5;,則執(zhí)行表達(dá)式a=b-2==3后a的值是_________________。
    20.設(shè)char s[20]= 〞My〞;,則執(zhí)行strcat(s, 〞Sun! 〞)后s的內(nèi)容是___________________。
    21.設(shè)float x=23.65;, 則執(zhí)行語句printf (〞%d\n〞,(int)(x+0.5));后輸出結(jié)是_______________。
    22.若定義函數(shù)char*fun( ){…},則該函數(shù)的返回值類型是__________________。
    23.設(shè)int x=-9,y;,則執(zhí)行y=x>=0?x:-x;后y的值是_________________。
    24.若函數(shù)調(diào)用語句為f(a,b,f(a+b,a-b,b));,則函數(shù)f的參數(shù)個數(shù)是__________________。
    25.設(shè)int a=10;,則執(zhí)行語句a+=a-=a+a;后a 的值是_________________。
    三、程序分析題(本大題共4小題,每小題4分,共16分)
    閱讀下列程序,請將輸出結(jié)果寫到各題右側(cè)的空白處。
    26.main()
    {int a=1,b=2,c=3;
    if(a<=c)
    if(b==c)printf(〞a=%d\n〞,a);
    else printf(〞b=%d\n〞,b);
    printf(〞c=%d\n〞,c);
    }
    27.int f(int n)
    {static int m=5;
    return ++m+n;
    }
    main()
    {int i;
    for(i=0;i<3;i++)printf(〞%5d〞,f(i));
    printf(〞\n〞);
    }
    28.#define SIZE 4
    main()
    {int n[SIZE]={8,3,4,1};
    int i, j;
    for (i=0;i    {printf{〞%d〞,n[i]};
    for(j=1;j<=n[i];j++)printf(〞*〞);
    printf(〞\n〞);
    }
    }
    29.int fm(int a,int b)
    {if(b==1)return a;
    else return a+fm(a,b-1);
    }
    main()
    {
    printf(〞%d\n〞,fm(4,3));
    }
    四、程序填充題(本大題共3小題,每小題6分,共18分)
    請將下列程序橫線處缺少的部分補上,使其能正確運行。
    30.函數(shù)fun 用于計算數(shù)組各元素值的平方,主函數(shù)調(diào)用fun并輸出各元素的值。
    void fun(int num,int a[ ])
    {int i;
    for (i=0;i<___________;i++)a[i]=a[i]*a[i]; /*第一空*/
    }
    main()
    {
    int i,b[5]={1,2,3,4,5};
    fun(5,_______); /*第二空*/
    for (i=0;i<5;i++)printf(〞%5d〞,________); /*第三空*/
    printf(〞\n〞);
    }
    31.從鍵盤輸入一串字符(“#”作為結(jié)束標(biāo)志),將其寫入文本文件file.dat 中保存。
    #include
    #include
    main()
    {char ch;
    FILE*fp;
    if((fp=fopen(〞file.dat〞, 〞______〞))= =NULL) /*第一空*/
    {printf(〞Can not open file\n〞);exit(0);}
    ch=getchar();
    while (ch!=’# ’)
    {fputc(________,fp); /*第二空*/
    ch=getchar();
    }
    fclose(________); /*第三空*/
    }
    32.從鍵盤輸入x的值,根據(jù)以下公式計算并輸出x和y 的值。
    #include
    #include
    main()
    {float x,y;
    scanf(〞%f〞,______); /*第一空*/
    if(x<0)printf(〞input error!\n〞);
    else
    {switch ((int)(x/2))
    {case 0:y=x;_______; /*第二空*/
    case 1:
    case 2:y=x*x+1;break;
    case 3:
    case 4:y=_____________;break; /*第三空*/
    default :y=1/(x*x+1);
    }
    printf(〞x=%7.2f,y=%10.6f\n〞,x,y);
    }
    }
    五、程序設(shè)計題(本大題共2小題,每小題8分,共16分)
    33.從鍵盤輸入100個整數(shù),計算并輸出大于等于零的數(shù)的平均值(保留小數(shù)點后兩位)。
    34.(1)編寫一個計算梯形面積的函數(shù)。函數(shù)頭是:float area(float t,float b,float h)
    其中變量t、b和h分別表示梯形的上底、下底和高。
    (2)編寫主函數(shù)從鍵盤輸入梯形的上底、下底和高的值,調(diào)用上述函數(shù)輸出梯形面積
    (保留小數(shù)點后兩位)。