生活随笔
收集整理的這篇文章主要介紹了
全国计算机等级考试题库二级C操作题100套(第38套)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第38套:
函數fun的功能是:把形參a所指數組中的奇數按原順序依次存放到a[0]、 a[1]、a[2]、……中,把偶數從數組中刪除,奇數個數通過函數值返回。例如:若a所指數組中的數據最初排列為:9、1、4、2、3、6、5、8、7,刪除偶數后a 所指數組中的數據為:9、1、3、5、7,返回值為5。 請在程序的下劃線處填入正確的內容并把下劃線刪除,使程序得出正確的結果。 注意:源程序存放在考生文件夾下的BLANK1.C中。 不得增行或刪行,也不得更改程序的結構! 給定源程序:
#include <stdio.h>
#define N 9
int fun ( int a
[ ] , int n
)
{ int i
, j
;
j
= 0 ;
for ( i
= 0 ; i
< n
; i
++ )
if ( a
[ i
] % 2 == ___1___
)
{
a
[ j
] = a
[ i
] ; ___2___
;
}
return ___3___
;
}
main ( )
{ int b
[ N
] = { 9 , 1 , 4 , 2 , 3 , 6 , 5 , 8 , 7 } , i
, n
;
printf ( "\nThe original data :\n" ) ;
for ( i
= 0 ; i
< N
; i
++ ) printf ( "%4d " , b
[ i
] ) ;
printf ( "\n" ) ;
n
= fun ( b
, N
) ;
printf ( "\nThe number of odd : %d \n" , n
) ;
printf ( "\nThe odd number :\n" ) ;
for ( i
= 0 ; i
< n
; i
++ ) printf ( "%4d " , b
[ i
] ) ;
printf ( "\n" ) ;
}
解題思路: 第一處:判斷a[i]是否是奇數,若是,則仍保留在原數組中a[j],所以應填:1。 第二處:數組a中的元素位置由j來控制,每增加一個元素,則j加1,所以應填:j++。 第三處:返回刪除偶數后a所指數組中數據的元素j,所以應填:j。
給定程序MODI1.C中函數fun的功能是:求出兩個非零正整數的最大公約數,并作為函數值返回。 例如,若給num1和num2分別輸入49和21,則輸出的最大公約數為7;若給num1 和num2分別輸入27和81,則輸出的最大公約數為27。 請改正程序中的錯誤,使它能得出正確結果。 注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。 給定源程序:
#include <stdio.h>
int fun ( int a
, int b
)
{ int r
, t
;
if ( a
< b
) {
t
= a
; b
= a
; a
= t
;
}
r
= a
% b
;
while ( r
!= 0 )
{ a
= b
; b
= r
; r
= a
% b
; }
return ( a
) ;
}
main ( )
{ int num1
, num2
, a
;
printf ( "Input num1 num2: " ) ; scanf ( "%d%d" , & num1
, & num2
) ;
printf ( "num1= %d num2= %d\n\n" , num1
, num2
) ;
a
= fun ( num1
, num2
) ;
printf ( "The maximun common divisor is %d\n\n" , a
) ;
}
解題思路: 第一處:交換值的次序有問題,所以應改為:t=a;a=b;b=t;。 第二處:返回值錯誤,應改為:return(b);。
假定輸入的字符串中只包含字母和號。請編寫函數fun,它的功能是:刪除字符串中所有的號。在編寫函數時,不得使用C語言提供的字符串函數。 例如,字符串中的內容為:ABCDEFG******,刪除后,字符串中的內容應當是:ABCDEFG。 注意: 部分源程序在文件PROG1.C中。 請勿改動主函數main和其它函數中的任何內容,僅在函數fun的花括號中填入 你編寫的若干語句。 給定源程序:
#include <stdio.h>
void fun ( char * a
)
{
}
main ( )
{ char s
[ 81 ] ;
printf ( "Enter a string:\n" ) ; gets ( s
) ;
fun ( s
) ;
printf ( "The string after deleted:\n" ) ; puts ( s
) ;
NONO ( ) ;
}
解題思路: 本題是考察字符串的操作。
利用循環掃描字符串中所有的字符是否是’’,如果不是’’,則把這些字符存放字符串a首地址開始的位置上。 最后給字符串a加上結束符。 參考答案:
void fun ( char * a
)
{
int j
= 0 ;
char * p
= a
;
while ( * p
) {
if ( * p
!= '*' ) a
[ j
++ ] = * p
;
p
++ ;
}
a
[ j
] = 0 ;
}
總結
以上是生活随笔 為你收集整理的全国计算机等级考试题库二级C操作题100套(第38套) 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。