糯米文學吧

位置:首頁 > 計算機 > 計算機二級

2016年計算機二級C語言操作題及答案

  1.給定程序中,函數fun的功能是:統計形參s所指字符串中數字字符出現的次數,並存放在形參t所指的變量中,最後在主函數中輸出。例如,形參s所指的字符串為:abcdef35adgh3kjsdf7。輸出結果為:4。

2016年計算機二級C語言操作題及答案

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

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

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

給定源程序:

#include

void fun(char *s, int *t)

{ int i, n;

n=0;

for(i=0; ___1___ !=NULL; i++)

if(s[i]>='0'&&s[i]<= ___2___ ) n++;

___3___ ;

}

main()

{ char s[80]="abcdef35adgh3kjsdf7";

int t;

printf("nThe original string is : %sn",s);

fun(s,&t);

printf("nThe result is : %dn",t);

}

解題思路】:

第一處:在for循環中終止值要判斷字符串是否結束符,所以應填:s[i]。

第二處:判斷是否是數字,所以應填:'9'。

第三處:字符串中數字字符出現的次數n,並存放在形參t所指的變量中,所以應填:*t=n。

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

給定程序MODI1.C中函數fun的功能是:通過某種方式實現兩個變量值的交換,

規定不允許增加語句和表達式。例如變量a 中的值原為8,b中的值原為3, 程序運行後 a 中的值為 3,b中的`值為8。

  2.請改正程序中的錯誤,使它能得出正確的結果。注意: 不要改動 main 函數,不得增行或刪行,也不得更改程序的結構!

給定源程序:

#include

int fun(int *x,int y)

{

int t ;

t = x ; x = y ;

return(y) ;

}

main()

{

int a = 3, b = 8 ;

printf("%d %dn", a, b) ;

b = fun(&a, b) ;

printf("%d %dn", a, b) ;

}

【解題思路】:

第一處:由於x是整型指針變量,所以地址不能賦值給整型變量,因此必須取x地址上的值,所以應改為t=*x;*x=y;。

第二處:已交換後的值存放在t中,所以返回值應為return(t);。

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

請編寫函數fun,它的功能是: 求出 1 到 1000 之間能被 7 或11整除、但不能同時被 7 和 11 整除的所有整數並將它們放在a所指的數組中,通過 n 返回這些數的個數。

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

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

給定源程序:

#include

void fun (int *a, int *n)

{

}

main( )

{ int aa[1000], n, k ;

fun ( aa, &n ) ;

for ( k = 0 ; k < n ; k++ )

if((k + 1) % 10 == 0) printf("n") ;

else printf("%5d", aa[k]) ;

NONO( );

}

【解題思路】:

本題是利用for循環語句以及取模%運算來得出符合條件的整數並存入a所指的數組。

參考答案

void fun (int *a, int *n)

{

int i ;

*n = 0 ;

for(i = 7 ; i < 1000 ; i++)

if(((i % 7) == 0 || (i % 11) == 0) && (i % 77) != 0) a[(*n)++] = i ;

}