- 相關(guān)推薦
計(jì)算機(jī)二級(jí)考試C語(yǔ)言預(yù)測(cè)上機(jī)鞏固試題
距離2017年3月計(jì)算機(jī)等級(jí)考試越來(lái)越近了,百分網(wǎng)小編為大家整理了2017年計(jì)算機(jī)二級(jí)考試C語(yǔ)言預(yù)測(cè)上機(jī)鞏固試題,希望對(duì)各位有所幫助!
一、程序填空題
請(qǐng)補(bǔ)充main()函數(shù),該函數(shù)的功能是:如果數(shù)組arr的前一個(gè)元素比后一個(gè)元素小,則把它保存在數(shù)組bb中并輸出。
例如,若數(shù)組中的元素為:“40,68,62,33,35,52,48,95,66,73”,則輸出:“40,33.35,48,66”。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)函數(shù)()main和其他函數(shù)中的任何內(nèi)容,僅在main()函數(shù)的橫線上填入所編寫(xiě)的若干表達(dá)式或語(yǔ)句。
試題程序:
#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】);
}
二、程序改錯(cuò)題
給定程序中,函數(shù)proc()的功能是:使數(shù)組中的元素的值縮小5倍。
請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)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è)計(jì)題
學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,M名學(xué)生的數(shù)據(jù)已在主函數(shù)中放人結(jié)構(gòu)體數(shù)組stu中,請(qǐng)編寫(xiě)函數(shù)proc(),其功能是:按分?jǐn)?shù)的高低排列學(xué)生的記錄,高分在前。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填人所編寫(xiě)的若干語(yǔ)句。
試題程序:
#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個(gè)學(xué)生記錄
printf("\n");
printf("%S%4d",stu[i].mum,stu[i].s);
}
printf("\n");
}
上機(jī)考試試題答案與解析
一、程序填空題
【1】M-1【2】bb[n++]=arr[i]【3】i,bb[i]
【解析】由整個(gè)for循環(huán)可知,變量i為數(shù)組art的下標(biāo),題目中要求取出前一個(gè)元素比后一個(gè)元素小的元素,所以只需要判斷前M-1個(gè)元素即可。因此,【1】處填“M-l”;如果第i個(gè)元素比第i+1個(gè)元素小,將第i個(gè)元素放入數(shù)組bb中,因此,【2】處填“bb[n++]=arr[i]”。最后,要輸出數(shù)組bb中的每一個(gè)元素。因此,【3】處填“i,bb[i]”。
二、程序改錯(cuò)題
(1)錯(cuò)誤:int proc(void)
正確:void proc(void)
(2)錯(cuò)誤:printf("%f",m[j]%5);
正確:printf("%f",m[j]/5);
【解析】由主函數(shù)中的函數(shù)調(diào)用可知,函數(shù)proc()沒(méi)有返回值。因此,“int proc(void)”應(yīng)改為“void proc(void)”。題目中要求使數(shù)組中元素的值縮小到1/5,而不是對(duì)5取余。因此,“printf("%f",m[j]%5);”應(yīng)改為“printf("%f",m[j]/5);”。
三、程序設(shè)計(jì)題
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;}
}
【解析】要按分?jǐn)?shù)的高低排列學(xué)生的記錄,可以使用冒泡排序法。將每一個(gè)學(xué)生的成績(jī)與其他學(xué)生的成績(jī)相比較,對(duì)不符合要求的記錄交換位置。
【計(jì)算機(jī)二級(jí)考試C語(yǔ)言預(yù)測(cè)上機(jī)鞏固試題】相關(guān)文章:
計(jì)算機(jī)二級(jí)C語(yǔ)言考前預(yù)測(cè)上機(jī)試題及解析07-04
計(jì)算機(jī)二級(jí)C語(yǔ)言預(yù)測(cè)上機(jī)精選訓(xùn)練題07-05
計(jì)算機(jī)二級(jí)C語(yǔ)言考試上機(jī)考試題及答案04-09
2017計(jì)算機(jī)二級(jí)C語(yǔ)言上機(jī)最終預(yù)測(cè)題07-08
計(jì)算機(jī)二級(jí)C語(yǔ)言上機(jī)沖刺試題及答案05-26
2016年計(jì)算機(jī)二級(jí)C語(yǔ)言考試上機(jī)試題及答案05-05
2015年計(jì)算機(jī)二級(jí)C語(yǔ)言考試上機(jī)模擬試題12-24