- 相關(guān)推薦
2016年計(jì)算機(jī)二級(jí)C語(yǔ)言上機(jī)試試題及答案
一、程序改錯(cuò)題(共24分)
下列給定程序中,函數(shù)proc()的功能是根據(jù)整型形參n,計(jì)算如下公式的值:
Y=1-1/(22)+1/(33)-1/(44)+…+(-1)(n+1)/(nn)
例如,n中的值為l0,則應(yīng)輸出0.817962。
請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)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è)計(jì)題(共18分)
編寫(xiě)一個(gè)函數(shù),從傳人的M個(gè)字符中找出最長(zhǎng)的一個(gè)字符串,并通過(guò)形參指針max傳回該串地址(用****作為結(jié)束輸入的標(biāo)志)。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填人所編寫(xiě)的若干語(yǔ)句。
試題程序:
#include
#include
#include
char*proc(char(*a)[81],int num)
{
)
void main()
{
char ss[l0][81],*max;
int n,i=0;
printf("輸入若干個(gè)字符串:");
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);
}
【參考答案及解析】
程序改錯(cuò)題
(1)錯(cuò)誤:int j=1;正確:double j=1.0;
(2)錯(cuò)誤:y+=1/(i*i); 正確:y+=j/(i*i);
【解析】由函數(shù)proc()可知,變量j的作用是控制每一項(xiàng)符號(hào)的變化,并且作為運(yùn)算的分子,應(yīng)改為double型變量。因此,“int j=1;”應(yīng)改為“double j=1.0;”。變量y中存放多項(xiàng)式的值,多項(xiàng)式中的每一項(xiàng)符號(hào)由變量j決定。因此,“y+=1/(i*i);”應(yīng)改為“y+=j/(i*i);”。
程序設(shè)計(jì)題
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; //返回最長(zhǎng)字符串的地址
}
【解析】本題首先要定義一個(gè)字符指針用于保存最長(zhǎng)的字符串,并使其初始值指向第一個(gè)字符串;再循環(huán)遍歷字符串?dāng)?shù)組,通過(guò)if語(yǔ)句比較字符串的長(zhǎng)度,并把最長(zhǎng)的字符串地址賦給字符指針;最后返回最長(zhǎng)字符串的地址。
【計(jì)算機(jī)二級(jí)C語(yǔ)言上機(jī)試試題及答案】相關(guān)文章:
計(jì)算機(jī)二級(jí)C語(yǔ)言上機(jī)沖刺試題及答案08-29
計(jì)算機(jī)二級(jí)《C語(yǔ)言》上機(jī)操作試題及答案10-04
2016年二級(jí)C語(yǔ)言上機(jī)試題及答案10-24
計(jì)算機(jī)二級(jí)《C++》上機(jī)試題及答案08-12
2016計(jì)算機(jī)二級(jí)C++上機(jī)試題及答案08-02
2016年計(jì)算機(jī)二級(jí)C語(yǔ)言考試上機(jī)試題及答案05-05
計(jì)算機(jī)二級(jí)C語(yǔ)言考試上機(jī)考試題及答案10-29