- 相關推薦
計算機二級C語言考前預測上機試題及解析
2017年3月計算機等級考試即將到來,應屆畢業(yè)生考試網為大家整理了2017年計算機二級考試C語言考前預測上機試題,希望對各位考生有所幫助!
一、程序填空題
請補充main()函數(shù),該函數(shù)的功能是:輸入兩個正整數(shù)numl和num2.求這兩個數(shù)的最大公約數(shù)和最小公倍數(shù)。
例如,若輸入的兩個正整數(shù)為12,4,則它們的最大公約數(shù)為12,最小公倍數(shù)為4。
注意:部分源程序給出如下。
請勿改動main()函數(shù)和其他函數(shù)中的任何內容,僅在main()函數(shù)的橫線上填入所編寫的若干表達式或語句。
試題程序
#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ù),依次構成一個新數(shù)放在t中。例如,當s
中的數(shù)為123456789時,t中的數(shù)為2468。請修改程序中的
錯誤,使它能得出正確的結果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。
試題程序:
#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ù)proc(),其功能是:將str所指字符串中除下標為偶數(shù),同時ASCII碼值為奇數(shù)的字符外,其余的字符都刪除,串中剩余字符所形成的一個新串放在t所指的數(shù)組中。例如,若str所指字符串中的內容為ABCDEFG12345,其中字符8的ASCII碼值為偶數(shù),所在元素的下標為奇數(shù),因此必須刪除;而字符A的ASCII碼值為奇數(shù),所在數(shù)組中的下標為偶數(shù),因此不應當刪除。依此類推,最后t所指的數(shù)組中的內容應是ACEG。
注意:部分源程序給出如下。
請勿改動main()函數(shù)和其他函數(shù)中的任何內容,僅在函數(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);
}
上機考試試題答案與解析
一、程序填空題
【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ù)的表達式,因此【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ù)中實參可知,形參的第二個變量是長整型的指針變量。因此“void proc(long s,long t)”應改為“void proc(long s,long*t)”;要從低位開始取出長整型變量s中偶數(shù)位上的數(shù),每次變量S要除以100,然后判斷其是否大于0來決定是否要繼續(xù),因此“while(s<0)”應改為“while(s>0)”。
三、程序設計題
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) //下標為偶數(shù)、
同時ASCII碼值為奇數(shù)的字符
t[j++]=str[i];) //如果成立,則把它放到t數(shù)
組中
t[j]=’\0 ’; //字符串結束標志為’\0’
}
【解析】題目中要求將字符串str中下標為偶數(shù),同時ASCII碼值為奇數(shù)的字符放在數(shù)組t中。首先,需要檢查字符串str中下標為偶數(shù)的字符的ASCII碼值是否為奇數(shù),將符合要求的字符放在數(shù)組t中。最后,為新的字符串數(shù)組添加結束符。
【計算機二級C語言考前預測上機試題及解析】相關文章:
2017計算機二級C語言上機最終預測題07-08
計算機二級C語言預測試題08-14
計算機二級C語言預測試題及答案10-30
2017計算機二級C語言上機測試題附答案10-24
計算機二級《C語言》測試題與答案解析10-30
計算機二級C語言測試題及答案解析07-11
計算機二級C語言考試上機考試題及答案10-29
C語言考前模擬試題09-11
2024二級c語言上機題庫04-18
全國計算機二級《C++》上機試題及答案08-15