生活随笔
收集整理的這篇文章主要介紹了
全国计算机等级考试题库二级C操作题100套(第37套)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第37套:
給定程序中,函數fun的功能是:在形參ss所指字符串數組中,查找含有形參substr所指子串的所有字符串并輸出,若沒找到則輸出相應信息。ss所指字符串數組中共有N個字符串,且串長小于M。程序中庫函數strstr(s1, s2)的功能是在 s1串中查找s2子串,若沒有,函數值為0,若有,為非0。 請在程序的下劃線處填入正確的內容并把下劃線刪除, 使程序得出正確的結果。 注意:源程序存放在考生文件夾下的BLANK1.C中。 不得增行或刪行,也不得更改程序的結構! 給定源程序:
#include <stdio.h>
#include <string.h>
#define N 5
#define M 15
void fun ( char ( * ss
) [ M
] , char * substr
)
{ int i
, find
= 0 ;
for ( i
= 0 ; i
< __1__
; i
++ )
if ( strstr ( ss
[ i
] , __2__
) != NULL )
{ find
= 1 ; puts ( ss
[ i
] ) ; printf ( "\n" ) ; }
if ( find
== __3__
) printf ( "\nDon't found!\n" ) ;
}
main ( )
{ char x
[ N
] [ M
] = { "BASIC" , "C langwage" , "Java" , "QBASIC" , "Access" } , str
[ M
] ;
int i
;
printf ( "\nThe original string\n\n" ) ;
for ( i
= 0 ; i
< N
; i
++ ) puts ( x
[ i
] ) ; printf ( "\n" ) ;
printf ( "\nEnter a string for search : " ) ; gets ( str
) ;
fun ( x
, str
) ;
}
解題思路: 本題是根據給定的字符串數組中查找指定的字符串,如果存在,則顯示。 第一處:利用for循環,從幾個字符串中進行查找,程序中已經給定了N個字符串,所以應填:N。 第二處:查找子串,子串由形參substr傳遞,所以應填:substr。 第三處:試題要求,若沒有找到,函數值為0,所以應填:0。
給定程序MODI1.C中函數fun的功能是:求三個數的最小公倍數。 例如,給主函數中的變量x1、x2、x3分別輸入15 11 2, 則輸出結果應當是:330。 請改正程序中的錯誤,使它能得出正確結果。 注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。 給定源程序:
#include <stdio.h>
fun ( int x
, y
, z
)
{ int j
, t
, n
, m
;
j
= 1 ;
t
= j
% x
;
m
= j
% y
;
n
= j
% z
;
while ( t
!= 0 || m
!= 0 || n
!= 0 )
{ j
= j
+ 1 ;
t
= j
% x
;
m
= j
% y
;
n
= j
% z
;
}
return i
;
}
main ( )
{ int x1
, x2
, x3
, j
;
printf ( "Input x1 x2 x3: " ) ; scanf ( "%d%d%d" , & x1
, & x2
, & x3
) ;
printf ( "x1=%d, x2=%d, x3=%d \n" , x1
, x2
, x3
) ;
j
= fun ( x1
, x2
, x3
) ;
printf ( "The minimal common multiple is : %d\n" , j
) ;
}
解題思路: 第一處: 函數中形參的定義不正確,應改為:fun(int x,int y, int z)。 第二處: 程序中三個數的最小公倍數是用j處理的,所以應返回j的值。
假定輸入的字符串中只包含字母和號。請編寫函數fun,它的功能是:只刪除字符串前導和尾部的號,串中字母之間的號都不刪除。形參n給出了字符串的長度, 形參h給出了字符串中前導號的個數,形參e給出了字符串中最后號的個數。在編寫函數時,不得使用C語言提供的字符串函數。 例如,字符串中的內容為:ABCDEFG*****,刪除后,字符串中的內容應當是:ABCDEF*G。 注意: 部分源程序在文件PROG1.C文件中。 請勿改動主函數main和其它函數中的任何內容,僅在函數fun的花括號中填入你編寫的若干語句。 給定源程序:
#include <stdio.h>
void fun ( char * a
, int n
, int h
, int e
)
{
}
main ( )
{ char s
[ 81 ] , * t
, * f
; int m
= 0 , tn
= 0 , fn
= 0 ;
printf ( "Enter a string:\n" ) ; gets ( s
) ;
t
= f
= s
;
while ( * t
) { t
++ ; m
++ ; }
t
-- ;
while ( * t
== '*' ) { t
-- ; tn
++ ; }
while ( * f
== '*' ) { f
++ ; fn
++ ; }
fun ( s
, m
, fn
, tn
) ;
printf ( "The string after deleted:\n" ) ; puts ( s
) ;
NONO ( ) ;
}
解題思路: 本題是考察對字符串的操作。
求出字符串的長度。 利用循環把字符串中字符按要求仍存放在原字符串首址開始的位置上。 參考答案:
void fun ( char * a
, int n
, int h
, int e
)
{
char * p
= a
;
int j
= 0 , len
= 0 ;
while ( * p
) { p
++ ; len
++ ; }
while ( j
< len
- h
- e
) {
a
[ j
] = a
[ h
+ j
] ;
j
++ ;
}
a
[ j
] = 0 ;
}
總結
以上是生活随笔 為你收集整理的全国计算机等级考试题库二级C操作题100套(第37套) 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。