2016年計算機軟考程序員模擬試題

字號:

4.編寫一程序,從鍵盤輸入10個實數(shù),計算并輸出算術平均值。
    【解析】相關的變量和數(shù)組:用來存放算術平均值的變量(例如用ave)、存放10個實數(shù)的一準數(shù)組(例如用a[10」)。因為ave要求和,所以事先要賦初值0.0。第1個次數(shù)為10的循環(huán)用于輸入10個實數(shù)存入數(shù)組a,可以使用for循環(huán),利用下標變量i來控制循環(huán)。第2個次數(shù)為10的循環(huán)用于求10個數(shù)組元素之和存入變量刪,可以使用for循環(huán),利用下標變量i來控制循環(huán)。后是輸出結果,要注意變量ave中存放的是和,必須除10后才是平均值。
    【參考答案】 main()
    { int i;
    float ave=0.0,a[10];
    for(i=0;i<10;i++)
    scanf("%f",&a[i]);
    for(i=0;i<10;i++)
    ave+=a[i];
    printf(".4f\n",ave/10.0);.
    }
    5.編程序輸入50個學生的學號、姓名、3門課程的成績存入一個結構型的數(shù)組。統(tǒng)計每個學生的總分并輸出學生的學號、姓名、總分。
    【解析】首先要設計一個結構型,其成員包括學號(長整型)、姓名(字符數(shù)組)、3個成績(實型或實型數(shù)組)、總分(實型)。定義長度為50的這種結構型數(shù)組。用單重50次的次數(shù)型循環(huán)輸出50個學生的信息。再用次數(shù)為50的單重循環(huán)依次求出每個學生的總分(等于3科成績之和)存入成員總分中。后仍然用50次的單重循環(huán)輸出50個學生的學號、姓名和總分。
    【參考答案】main()
    { struct{ long num;
    char name[20];
    float score1;
    float score2;
    float score3;
    float total;
    }stu[50」;
    int i;
    float x1,x2,x3
    for(i=0;i<50;i++)
    { scanf(",%s",&stu[i].num,stu[i].name);
    scanf("%f,%f,%f",&x1,&x2,&x3);
    stu[i].score=x1,stu[i].score2=x2,stu[i].score3=x3;
    }
    for (i=0;i<50;i++)
    stu[i].total=stu[i].scorel+stu[i].score2+stu[i].score3;
    for(i=0;i<50;i++)
    printf("%name%f\n:", stu[i].num,stu[i].total);
    }
    6.編寫一程序,輸出如下圖形。
    *****
    *****
    *****
    *****
    【解析】分析題目中給出的圖形,可以看出需要使用二重循環(huán)結構。外層循環(huán)控制行,這是次數(shù)為4的次數(shù)型循環(huán)結構,可以使用for語句,其控制循環(huán)的變量i依次等于1、2.3、4,循環(huán)體中的工作有兩項:一項是輸出前面的空格,第二項是輸出該行上的符號串”*****”。由此得出外層循環(huán)結構如下:
    for(i=1;i<=4;i++)
    { 輸出前面的空格;
    輸出符號串”*****”;
    輸出前面的空格需要使用循環(huán)。我們來看題目中給出的圖形,第1行上要輸出的空格數(shù)目是0,即“1-1”。第2行上要輸出的空格數(shù)目是1,即“2-1”,…。顯然,第i行上要輸出的空格數(shù)目是“i一1”。由此可以得出這個循環(huán)也是次數(shù)型循環(huán),控制循環(huán)的變量j依次等于 1、2、…、 i-1。其中的i是行數(shù)。由此可以得出這個內層循環(huán)的結構如下:
    for(j=1;i<=i-1;j++)
    輸出1個空格;
    外層循環(huán)體中的第二項是輸出本行上的符號串”*****”。這項工作比較簡單,用一條輸出語句“printf(“*****\n”);”即可。
    依據(jù)上述分析,可以很容易寫出程序清單。
    【參考答案】 main()
    { int i,j;
    for(i=1;i<=4;i++)
    { for(j=1;j<=i-1;j++)
    printf("");
    printf(”*****\n”);
    }
    }