為大家收集整理了《2013計(jì)算機(jī)二級(jí)C語(yǔ)言上機(jī)練習(xí)題及答案(2)》供大家參考,希望對(duì)大家有所幫助?。?!
填空題
請(qǐng)補(bǔ)充main函數(shù),該函數(shù)的功能是:從鍵盤(pán)輸入一組字符串,以’*’結(jié)束輸入,并顯示出這個(gè)字符串。
例如,輸入abcdef *, 結(jié)果顯示abcdef。
僅在橫線上添入所編寫(xiě)的若干表達(dá)式或語(yǔ)句,勿改動(dòng)函數(shù)中的其他任何內(nèi)容。
#include
#define N 80
main()
{
int i = -1, j = 0;
char str[N];
printf("\n Input a string \n");
do
{
i++;
scanf(_1_);
} while (_2_);
printf("\n ******* display the string ******* \n");
while (j < i)
{
printf(_3_);
j++;
}
}
答案: (1)“%c”,&str[i]
(2)str[i]!=’*’
(3)”%c”,str[j]
改錯(cuò)題:
下列給定程序中,函數(shù)fun的功能是:計(jì)算并輸出high 以內(nèi)的10個(gè)素?cái)?shù)之和。 High由主函數(shù)傳給fun 函數(shù)。若high的值為100,則函數(shù)的值為732。
#include
#include
#include
int fun(int high)
{
int sum = 0, n = 0, j, yes;
while ((high >= 2) && (n < 10))
{
yes = 1;
for (j=2; j<=high/2; j++)
/********found********/
if (high%j == 0)
{
yes = 0;
break
}
if (yes)
{
sum += high;
n++;
}
high--;
}
return sum;
}
main()
{
printf("%d\n", fun(100));
}
答案:break改為break;
程序設(shè)計(jì):
請(qǐng)編寫(xiě)函數(shù) fun,該 函數(shù)的功能是:統(tǒng)計(jì)一行字符串中單詞的個(gè)數(shù),作為函數(shù)值返回。一行字符串在主函數(shù)中輸入,規(guī)定所有單詞由小寫(xiě)字母組成,單詞之間由若干個(gè)空格隔開(kāi),一行的開(kāi)始和結(jié)束都沒(méi)有空格。
#include
#include
#define N 80
int fun(char *s)
{
}
main()
{
char line[N];
int num=0;
FILE *out;
char *test[] = {"Hello World!", "This is a test string.", "a b", "cde f g,sf l"};
printf("Enter a string :\n");
gets(line);
num=fun( line );
printf("The number of word is : %d\n\n",num);
out=fopen("out.dat", "w");
for(num=0;num<4;num++)
printf(out, "%d\n", fun(test[num]));
fclose(out);
}
填空題
請(qǐng)補(bǔ)充main函數(shù),該函數(shù)的功能是:從鍵盤(pán)輸入一組字符串,以’*’結(jié)束輸入,并顯示出這個(gè)字符串。
例如,輸入abcdef *, 結(jié)果顯示abcdef。
僅在橫線上添入所編寫(xiě)的若干表達(dá)式或語(yǔ)句,勿改動(dòng)函數(shù)中的其他任何內(nèi)容。
#include
#define N 80
main()
{
int i = -1, j = 0;
char str[N];
printf("\n Input a string \n");
do
{
i++;
scanf(_1_);
} while (_2_);
printf("\n ******* display the string ******* \n");
while (j < i)
{
printf(_3_);
j++;
}
}
答案: (1)“%c”,&str[i]
(2)str[i]!=’*’
(3)”%c”,str[j]
改錯(cuò)題:
下列給定程序中,函數(shù)fun的功能是:計(jì)算并輸出high 以內(nèi)的10個(gè)素?cái)?shù)之和。 High由主函數(shù)傳給fun 函數(shù)。若high的值為100,則函數(shù)的值為732。
#include
#include
#include
int fun(int high)
{
int sum = 0, n = 0, j, yes;
while ((high >= 2) && (n < 10))
{
yes = 1;
for (j=2; j<=high/2; j++)
/********found********/
if (high%j == 0)
{
yes = 0;
break
}
if (yes)
{
sum += high;
n++;
}
high--;
}
return sum;
}
main()
{
printf("%d\n", fun(100));
}
答案:break改為break;
程序設(shè)計(jì):
請(qǐng)編寫(xiě)函數(shù) fun,該 函數(shù)的功能是:統(tǒng)計(jì)一行字符串中單詞的個(gè)數(shù),作為函數(shù)值返回。一行字符串在主函數(shù)中輸入,規(guī)定所有單詞由小寫(xiě)字母組成,單詞之間由若干個(gè)空格隔開(kāi),一行的開(kāi)始和結(jié)束都沒(méi)有空格。
#include
#include
#define N 80
int fun(char *s)
{
}
main()
{
char line[N];
int num=0;
FILE *out;
char *test[] = {"Hello World!", "This is a test string.", "a b", "cde f g,sf l"};
printf("Enter a string :\n");
gets(line);
num=fun( line );
printf("The number of word is : %d\n\n",num);
out=fopen("out.dat", "w");
for(num=0;num<4;num++)
printf(out, "%d\n", fun(test[num]));
fclose(out);
}

