- 相關(guān)推薦
計(jì)算機(jī)二級C語言考前預(yù)測上機(jī)試題及解析
2017年3月計(jì)算機(jī)等級考試即將到來,應(yīng)屆畢業(yè)生考試網(wǎng)為大家整理了2017年計(jì)算機(jī)二級考試C語言考前預(yù)測上機(jī)試題,希望對各位考生有所幫助!
一、程序填空題
請補(bǔ)充main()函數(shù),該函數(shù)的功能是:輸入兩個正整數(shù)numl和num2.求這兩個數(shù)的最大公約數(shù)和最小公倍數(shù)。
例如,若輸入的兩個正整數(shù)為12,4,則它們的最大公約數(shù)為12,最小公倍數(shù)為4。
注意:部分源程序給出如下。
請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在main()函數(shù)的橫線上填入所編寫的若干表達(dá)式或語句。
試題程序
#include
#include
void main()
{
int a,b,num1,num2,t;
system("CLS");
printf ("\nInput two numbers:\n");
scanf("%d,%d",&num1,&num2);
if(num1 {
a==num2;
b=num1:
}
else
{
a==num1;
b=num2;
}
while(【1】)
{
t= 【2】
a=b;
b=t;
}
printf("greatest common divisor:
%d\n",a);
printf("least common multiple:
%d\n",【3】);
}
二、程序改錯題
下列給定程序中函數(shù)proc的功能是:取出長整型變量s 中偶數(shù)位上的數(shù),依次構(gòu)成一個新數(shù)放在t中。例如,當(dāng)s
中的數(shù)為123456789時,t中的數(shù)為2468。請修改程序中的
錯誤,使它能得出正確的結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include
#include
#include
//****found****
void proc(long S,long t)
{ long s1=10;
s/=l0;
*t=s%10;
//****found****
while(s<0)
{ s=s/100;
*t=s%10*s1+*t;
s1=s1*10:
}
}
void main()
{ long s,t;
system("CLS");
printf("knPlease enter s:");
scanf("%1d",&s);
proc(s,&t);
printf("The result is:%1d\n",t);
}
三、程序設(shè)計(jì)題
請編寫函數(shù)proc(),其功能是:將str所指字符串中除下標(biāo)為偶數(shù),同時ASCII碼值為奇數(shù)的字符外,其余的字符都刪除,串中剩余字符所形成的一個新串放在t所指的數(shù)組中。例如,若str所指字符串中的內(nèi)容為ABCDEFG12345,其中字符8的ASCII碼值為偶數(shù),所在元素的下標(biāo)為奇數(shù),因此必須刪除;而字符A的ASCII碼值為奇數(shù),所在數(shù)組中的下標(biāo)為偶數(shù),因此不應(yīng)當(dāng)刪除。依此類推,最后t所指的數(shù)組中的內(nèi)容應(yīng)是ACEG。
注意:部分源程序給出如下。
請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所寫的若干語句。
試題程序:
#include
#include
#include
#include
void proc(char*str,char t[])
{
}
void main()
{
char str[100],t[100];
system("CLS"):
printf("\nPlease enter string str:");
scanf("%s",str);
proc(str,t);
printf("\nThe result is:%s\n",t);
}
上機(jī)考試試題答案與解析
一、程序填空題
【1】b!=0【2】a%b[3]numl*num2/a
【解析】由程序可知,變量b中存放兩個正整數(shù)中較小
的那個數(shù),while循環(huán)求兩個正整數(shù)的公約數(shù)。因此【1】填“b!=0”.【2】填“a%b”;【3】處是求兩個正整數(shù)最小公倍數(shù)的表達(dá)式,因此【3】填“num1*num2/a”。
二、程序改錯題
(1)錯誤:void proc(long s,long t)
正確:void proc(long s,lon9*t)
(2)錯誤:while(s<0)
正確:while(s>0)
【解析】從主函數(shù)中實(shí)參可知,形參的第二個變量是長整型的指針變量。因此“void proc(long s,long t)”應(yīng)改為“void proc(long s,long*t)”;要從低位開始取出長整型變量s中偶數(shù)位上的數(shù),每次變量S要除以100,然后判斷其是否大于0來決定是否要繼續(xù),因此“while(s<0)”應(yīng)改為“while(s>0)”。
三、程序設(shè)計(jì)題
void proc(char*str,chart[])
{
int i,j=0;
for(i=0;str[i]!=’\0 ’;i++)//從數(shù)組的第一個
元素開始,到其最后一個
{if(i%2==0&&str[i]%2!=0) //下標(biāo)為偶數(shù)、
同時ASCII碼值為奇數(shù)的字符
t[j++]=str[i];) //如果成立,則把它放到t數(shù)
組中
t[j]=’\0 ’; //字符串結(jié)束標(biāo)志為’\0’
}
【解析】題目中要求將字符串str中下標(biāo)為偶數(shù),同時ASCII碼值為奇數(shù)的字符放在數(shù)組t中。首先,需要檢查字符串str中下標(biāo)為偶數(shù)的字符的ASCII碼值是否為奇數(shù),將符合要求的字符放在數(shù)組t中。最后,為新的字符串?dāng)?shù)組添加結(jié)束符。
【計(jì)算機(jī)二級C語言考前預(yù)測上機(jī)試題及解析】相關(guān)文章:
計(jì)算機(jī)二級C語言考前預(yù)測上機(jī)復(fù)習(xí)題及解析06-29
計(jì)算機(jī)二級考試C語言預(yù)測上機(jī)鞏固試題06-17
計(jì)算機(jī)二級C語言預(yù)測上機(jī)精選訓(xùn)練題07-05
2017年計(jì)算機(jī)等級二級C語言上機(jī)考前預(yù)測題04-02
2017計(jì)算機(jī)二級C語言上機(jī)最終預(yù)測題07-08
計(jì)算機(jī)二級《C++》上機(jī)考前沖刺試題06-25
計(jì)算機(jī)二級C語言上機(jī)沖刺試題及答案05-26