- 相關(guān)推薦
計算機二級考試C語言預(yù)測上機鞏固試題
距離2017年3月計算機等級考試越來越近了,百分網(wǎng)小編為大家整理了2017年計算機二級考試C語言預(yù)測上機鞏固試題,希望對各位有所幫助!
一、程序填空題
請補充main()函數(shù),該函數(shù)的功能是:如果數(shù)組arr的前一個元素比后一個元素小,則把它保存在數(shù)組bb中并輸出。
例如,若數(shù)組中的元素為:“40,68,62,33,35,52,48,95,66,73”,則輸出:“40,33.35,48,66”。
注意:部分源程序給出如下。
請勿改動函數(shù)()main和其他函數(shù)中的任何內(nèi)容,僅在main()函數(shù)的橫線上填入所編寫的若干表達式或語句。
試題程序:
#include
#include
世define M 10
void main()
{
int i,n=0;
int arr[M]={40,68,62,33,35,52,48,95,66,73};
int bb[M];
system("CLS");
for(i=0;i<【1】 ;i++)
if(arr[i] 【2】 ;
printf("\n***display bb***\n"):
for(i=0;i printf("bb[%d]=%2d”,【3】);
}
二、程序改錯題
給定程序中,函數(shù)proc()的功能是:使數(shù)組中的元素的值縮小5倍。
請修改程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include
#include
#include
float m[10];
//****found****
int proc(void)
{
int j;
printf(”In subfunc after calling\n”);
for(j=0;j<10;j++)
{
//****found****
printf("%f",m[j]%5);
}
}
void main()
{
int i;
printf("In main before calling\n");
for(i=0;i<10;i++)
{
m[i]=i+20:
printf("%f",m[i]);
}
proc();
printf("\nln main after calling\n");
for(i=0;i<10;i++)
printf("%f",m[i]/5);
}
三、程序設(shè)計題
學(xué)生的記錄由學(xué)號和成績組成,M名學(xué)生的數(shù)據(jù)已在主函數(shù)中放人結(jié)構(gòu)體數(shù)組stu中,請編寫函數(shù)proc(),其功能是:按分數(shù)的高低排列學(xué)生的記錄,高分在前。
注意:部分源程序給出如下。
請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填人所編寫的若干語句。
試題程序:
#include
#define M l6
typedef struct
{
char num[10];
int s;
}
STREC;
void proc(STREC a[])
{
int i,j;
STREC t:
for(i=1;i 排序*/
for(j=0;j if(a[j].s 的記錄,高分在
前*/
{t=a[j];a[j]=a[j+1];a[j+1]=t;)
)
void main()
{
STREC stu[M]={{"GA005",85),{"GA003",
76},
{"GA002",59),{"GA004",85},{"GA001",91),
{fIGA007”,72),{"GA008",64),("GA006",87),
{”GAOl5”,"t5},{"GA013",91),{"GA012",64},
{"GA014",91),{"GAO11",66},{"GA017",64),
{¨GA018",64),{¨GA016",72));
int i;
proc(stu);
printf("The data after sorted:\n");
for(i一0;i {
if(i%4==O)
//每行輸出4個學(xué)生記錄
printf("\n");
printf("%S%4d",stu[i].mum,stu[i].s);
}
printf("\n");
}
上機考試試題答案與解析
一、程序填空題
【1】M-1【2】bb[n++]=arr[i]【3】i,bb[i]
【解析】由整個for循環(huán)可知,變量i為數(shù)組art的下標,題目中要求取出前一個元素比后一個元素小的元素,所以只需要判斷前M-1個元素即可。因此,【1】處填“M-l”;如果第i個元素比第i+1個元素小,將第i個元素放入數(shù)組bb中,因此,【2】處填“bb[n++]=arr[i]”。最后,要輸出數(shù)組bb中的每一個元素。因此,【3】處填“i,bb[i]”。
二、程序改錯題
(1)錯誤:int proc(void)
正確:void proc(void)
(2)錯誤:printf("%f",m[j]%5);
正確:printf("%f",m[j]/5);
【解析】由主函數(shù)中的函數(shù)調(diào)用可知,函數(shù)proc()沒有返回值。因此,“int proc(void)”應(yīng)改為“void proc(void)”。題目中要求使數(shù)組中元素的值縮小到1/5,而不是對5取余。因此,“printf("%f",m[j]%5);”應(yīng)改為“printf("%f",m[j]/5);”。
三、程序設(shè)計題
void proc(STREC a[])
{
int i,j;
STREC t:
for(i=1;i 排序
for(j=0;j if(a[j].s 的記錄,高分在前
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
}
【解析】要按分數(shù)的高低排列學(xué)生的記錄,可以使用冒泡排序法。將每一個學(xué)生的成績與其他學(xué)生的成績相比較,對不符合要求的記錄交換位置。
【計算機二級考試C語言預(yù)測上機鞏固試題】相關(guān)文章:
計算機二級C語言考試上機考試題及答案10-29
計算機四級C語言考試上機試題10-26
計算機二級C語言預(yù)測試題08-14
全國計算機二級《C語言》鞏固試題及答案06-10
計算機二級考試C++語言程序設(shè)計上機考試試題05-10
2024計算機二級C上機考試試題及答案10-23
計算機二級C語言預(yù)測試題及答案10-30
全國計算機二級考試C++鞏固試題與答案10-03
2017計算機二級C語言上機測試題附答案10-24