2016年計(jì)算機(jī)二級(jí)考試試題庫(kù)
給定程序中,函數(shù)fun的功能是:求ss所指字符串?dāng)?shù)組中長(zhǎng)度最長(zhǎng)的字符串所 在的行下標(biāo),作為函數(shù)值返回,并把其串長(zhǎng)放在形參n所指變量中。ss所指字符串?dāng)?shù)組中共有M個(gè)字符串,且串長(zhǎng)
請(qǐng)?jiān)诔绦虻南聞澗處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。
注意:源程序存放在考生文件夾下的BLANK1.C中。
不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
給定源程序:
#include
#define M 5
#define N 20
int fun(char (*ss) ___1___, int *n)
{ int i, k=0, len=0;
for(i=0; i
{ len=strlen(ss[i]);
if(i==0) *n=___2___;
if(len>*n) {
___3___;
k=i;
}
}
return(k);
}
main()
{ char ss[M][N]={"shanghai","guangzhou","beijing","tianjing","cchongqing"};
int n,k,i;
printf("\nThe original strings are :\n");
for(i=0;i
k=fun(ss,&n);
printf("\nThe length of longest string is : %d\n",n);
printf("\nThe longest string is : %s\n",ss[k]);
}
解題思路:
第一處:形參ss的定義,它是一個(gè)字符串?dāng)?shù)組的定義,其寬度為N,所以應(yīng)填:N。
第二處:取第一個(gè)字符串的長(zhǎng)度賦值給變量*n,所以應(yīng)填:len。
第三處:每循環(huán)一次,判斷當(dāng)前字符串的長(zhǎng)度是否大于*n,如果大于,則*n=len。
***************************************************
給定程序MODI1.C中 fun 函數(shù)的功能是: 根據(jù)形參m,計(jì)算如下公式的值。 1 1 1 1
t = 1 + ----- +----- + ----- + ……+ -----
2 3 4 m
例如,若輸入 5,則應(yīng)輸出 2.283333。
請(qǐng)改正程序中的錯(cuò)誤或在下劃線處填上適當(dāng)?shù)膬?nèi)容并把下劃線刪除, 使它能計(jì)算出正確的結(jié)果。
注意:不要改動(dòng) main 函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
給定源程序:
#include
double fun( int m )
{
double t = 1.0;
int i;
for( i = 2; i <= m; i++ )
t += 1.0/k;
________
}
main()
{
int m;
printf( "\nPlease enter 1 integer number:" );
scanf( "%d", &m );
printf( "\nThe result is %lf\n", fun( m ) );
}
解題思路:
第一處:在此變量k沒(méi)有定義過(guò),再根據(jù)公式和for循環(huán)語(yǔ)句中所用的變量可知,這里的k實(shí)際上是i。
第二處:應(yīng)是返回公式的值,函數(shù)中公式的值是存放在臨時(shí)變量t中,所以應(yīng)填return t;。
***************************************************
編寫一個(gè)函數(shù),該函數(shù)可以統(tǒng)計(jì)一個(gè)長(zhǎng)度為2的字符串在另一個(gè)字符串中出現(xiàn)的次數(shù)。例如,假定輸入的字符串為: asd asasdfg asd as zx67 asd mklo,子字符串為:as,則應(yīng)輸出6。
注意:部分源程序在文件PROG1.C中。
請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語(yǔ)句。
給定源程序:
#include
#include
int fun(char *str,char *substr)
{
}
main()
{
char str[81],substr[3];
int n;
printf("輸入主字符串: ");
gets(str);
printf("輸入子字符串: ");
gets(substr);
puts(str);
puts(substr);
n=fun(str,substr);
printf("n=%d\n",n);
NONO();
}
解題思路:
本題是統(tǒng)計(jì)一個(gè)字符串在另一個(gè)字符串中出現(xiàn)的次數(shù)。
程序流程如下:
1. 利用strstr函數(shù),首先找到第一個(gè)出現(xiàn)的位置。
2. 利用while循環(huán)和strstr依次查找所有出現(xiàn)的位置,并進(jìn)行統(tǒng)計(jì),并把統(tǒng)計(jì)結(jié)果作為函
數(shù)值返回。
strstr(const char *s1, const char *s2)是字符串s2在s1中出現(xiàn)的位置,如果找到則返回位置指針。
參考答案:
int fun(char *str,char *substr)
{
int cnt = 0 ;
char *p = str, *q ;
while(*p) {
q = strstr(p, substr) ;
if(q == NULL) break;
p = q + strlen(substr) ;
cnt++ ;
}
return cnt ;
}
main()
{
char str[81],substr[3];
int n;
printf("輸入主字符串: ");
gets(str);
printf("輸入子字符串: ");
gets(substr);
puts(str);
puts(substr);
n=fun(str,substr);
printf("n=%d\n",n);
NONO();
}
【計(jì)算機(jī)二級(jí)考試試題庫(kù)】相關(guān)文章:
計(jì)算機(jī)二級(jí)考試題庫(kù)08-03
計(jì)算機(jī)二級(jí)考試題庫(kù)201608-17
計(jì)算機(jī)二級(jí)考試題庫(kù)下載10-06
計(jì)算機(jī)二級(jí)考試試題庫(kù)201610-15
計(jì)算機(jī)二級(jí)考試題庫(kù)及答案08-03
精選計(jì)算機(jī)二級(jí)考試題庫(kù)及答案06-15
2016計(jì)算機(jī)二級(jí)考試題庫(kù)及答案06-23