網站首頁 語言 會計 互聯網計算機 醫學 學歷 職場 文藝體育 範文
當前位置:學識谷 > 計算機 > 計算機二級

2016年計算機二級考試試題庫

欄目: 計算機二級 / 發佈於: / 人氣:2.03W

給定程序中,函數fun的功能是:求ss所指字符串數組中長度最長的字符串所 在的行下標,作為函數值返回,並把其串長放在形參n所指變量中。ss所指字符串數組中共有M個字符串,且串長

2016年計算機二級考試試題庫

請在程序的下劃線處填入正確的內容並把下劃線刪除,使程序得出正確的結果。

注意:源程序存放在考生文件夾下的BLANK1.C中。

不得增行或刪行,也不得更改程序的結構!

  給定源程序:

#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 : %dn",n);

printf("nThe longest string is : %sn",ss[k]);

}

  解題思路:

第一處:形參ss的定義,它是一個字符串數組的定義,其寬度為N,所以應填:N。

第二處:取第一個字符串的長度賦值給變量*n,所以應填:len。

第三處:每循環一次,判斷當前字符串的長度是否大於*n,如果大於,則*n=len。

***************************************************

  給定程序MODI1.C中 fun 函數的功能是: 根據形參m,計算如下公式的值。 1 1 1 1

t = 1 + ----- +----- + ----- + ……+ -----

2 3 4 m

例如,若輸入 5,則應輸出 2.283333。

請改正程序中的錯誤或在下劃線處填上適當的內容並把下劃線刪除, 使它能計算出正確的結果。

注意:不要改動 main 函數,不得增行或刪行,也不得更改程序的結構!

  給定源程序:

#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 %lfn", fun( m ) );

}

  解題思路:

第一處:在此變量k沒有定義過,再根據公式和for循環語句中所用的變量可知,這裏的k實際上是i。

第二處:應是返回公式的值,函數中公式的值是存放在臨時變量t中,所以應填return t;。

***************************************************

  編寫一個函數,該函數可以統計一個長度為2的`字符串在另一個字符串中出現的次數。例如,假定輸入的字符串為: asd asasdfg asd as zx67 asd mklo,子字符串為:as,則應輸出6。

注意:部分源程序在文件PROG1.C中。

請勿改動主函數main和其它函數中的任何內容,僅在函數fun的花括號中填入你編寫的若干語句。

  給定源程序:

#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=%dn",n);

NONO();

}

  解題思路:

本題是統計一個字符串在另一個字符串中出現的次數。

程序流程如下:

1. 利用strstr函數,首先找到第一個出現的位置。

2. 利用while循環和strstr依次查找所有出現的位置,並進行統計,並把統計結果作為函

數值返回。

strstr(const char *s1, const char *s2)是字符串s2在s1中出現的位置,如果找到則返回位置指針

  參考答案:

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("輸入子字符串: ");