- 相關(guān)推薦
2016年計算機二級C語言上機試試題及答案
一、程序改錯題(共24分)
下列給定程序中,函數(shù)proc()的功能是根據(jù)整型形參n,計算如下公式的值:
Y=1-1/(22)+1/(33)-1/(44)+…+(-1)(n+1)/(nn)
例如,n中的值為l0,則應(yīng)輸出0.817962。
請修改程序中的錯誤,使它能得到正確結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include
#include
#include
double proc(int n)
{
double y=1.0;
f|****found****
int J=1; .
int i;
for(i=2;i<=n;i++)
{
j=-l*j;//****found****
y+=1/(i*i);
)
return(y);
)
void main()
{
int n=10:
system("CLS"):
printf("\nThe result is%lf\n",proc(n));
)
二、程序設(shè)計題(共18分)
編寫一個函數(shù),從傳人的M個字符中找出最長的一個字符串,并通過形參指針max傳回該串地址(用****作為結(jié)束輸入的標志)。
注意:部分源程序給出如下。
請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填人所編寫的若干語句。
試題程序:
#include
#include
#include
char*proc(char(*a)[81],int num)
{
)
void main()
{
char ss[l0][81],*max;
int n,i=0;
printf("輸入若干個字符串:");
gets(ss[i]);
puts(ss[i]);
while(!strcmp(ss[i],"****")= =0)
{
i++:
gets(ssEi]);
puts(ss[i]);
)
n=i:
max=proe(SS,n);
printf("\nmax=%s\n",max);
}
【參考答案及解析】
程序改錯題
(1)錯誤:int j=1;正確:double j=1.0;
(2)錯誤:y+=1/(i*i); 正確:y+=j/(i*i);
【解析】由函數(shù)proc()可知,變量j的作用是控制每一項符號的變化,并且作為運算的分子,應(yīng)改為double型變量。因此,“int j=1;”應(yīng)改為“double j=1.0;”。變量y中存放多項式的值,多項式中的每一項符號由變量j決定。因此,“y+=1/(i*i);”應(yīng)改為“y+=j/(i*i);”。
程序設(shè)計題
char*proc(char(*a)[81],int M)
{
char*max;
int i=0:
max=a[O]:
for(i=0;i if(strlen(max) max=a[i];
return max; //返回最長字符串的地址
}
【解析】本題首先要定義一個字符指針用于保存最長的字符串,并使其初始值指向第一個字符串;再循環(huán)遍歷字符串數(shù)組,通過if語句比較字符串的長度,并把最長的字符串地址賦給字符指針;最后返回最長字符串的地址。
【計算機二級C語言上機試試題及答案】相關(guān)文章:
計算機二級C語言上機沖刺試題及答案08-29
計算機二級《C語言》上機操作試題及答案10-04
2016年二級C語言上機試題及答案10-24
計算機二級《C++》上機試題及答案08-12
2016計算機二級C++上機試題及答案08-02
計算機二級C語言考試上機考試題及答案10-29
2017計算機二級C語言上機測試題附答案10-24
2017計算機二級C語言上機題庫及答案08-07