生活随笔
收集整理的這篇文章主要介紹了
全国计算机等级考试题库二级C操作题100套(第89套)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第89套:
給定程序中,函數fun的功能是:求出形參ss所指字符串數組中最長字符串的 長度,其余字符串左邊用字符*補齊,使其與最長的字符串等長。字符串數組中共 有M個字符串,且串長<N。 請在程序的下劃線處填入正確的內容并把下劃線刪除,使程序得出正確的結果。 注意:源程序存放在考生文件夾下的BLANK1.C中。 不得增行或刪行,也不得更改程序的結構! 給定源程序:
#include <stdio.h>
#include <string.h>
#define M 5
#define N 20
void fun ( char ( * ss
) [ N
] )
{ int i
, j
, k
= 0 , n
, m
, len
;
for ( i
= 0 ; i
< M
; i
++ )
{ len
= strlen ( ss
[ i
] ) ;
if ( i
== 0 ) n
= len
;
if ( len
> n
) {
n
= len
; ___1___
= i
;
}
}
for ( i
= 0 ; i
< M
; i
++ )
if ( i
!= k
)
{ m
= n
;
len
= strlen ( ss
[ i
] ) ;
for ( j
= ___2___
; j
>= 0 ; j
-- )
ss
[ i
] [ m
-- ] = ss
[ i
] [ j
] ;
for ( j
= 0 ; j
< n
- len
; j
++ )
___3___
= '*' ;
}
}
main ( )
{ char ss
[ M
] [ N
] = { "shanghai" , "guangzhou" , "beijing" , "tianjing" , "cchongqing" } ;
int i
;
printf ( "\nThe original strings are :\n" ) ;
for ( i
= 0 ; i
< M
; i
++ ) printf ( "%s\n" , ss
[ i
] ) ;
printf ( "\n" ) ;
fun ( ss
) ;
printf ( "\nThe result:\n" ) ;
for ( i
= 0 ; i
< M
; i
++ ) printf ( "%s\n" , ss
[ i
] ) ;
}
解題思路: 第一處:使用變量k來保存第幾個字符串是最長的字符串,所以應填:k。 第二處:利用for循環把原字符串右移至最右邊存放,字符串的長為len,所以應填:len。 第三處:左邊用字符*補齊,所以應填:ss[i][j]。
給定程序MODI1.C中函數fun的功能是: 計算整數n的階乘。請改正程序中的錯誤或在下劃線處填上適當的內容并把下劃線刪除,使它能計算出正確的結果。 注意: 不要改動 main 函數, 不得增行或刪行, 也不得更改程序的結構! 給定源程序:
#include <stdio.h>
double fun ( int n
)
{
double result
= 1.0 ;
while ( n
> 1 && n
< 170 )
result
* = -- n
;
return _____
;
}
main ( )
{
int n
;
printf ( "Enter an integer: " ) ;
scanf ( "%d" , & n
) ;
printf ( "\n\n%d!=%lg\n\n" , n
, fun ( n
) ) ;
}
解題思路: 第一處:–n是先減1,n–是后減1。本題應該先乘以n,再減1,才正確。 第二處:返回計算結果,所以應填:result。
編寫函數fun,函數的功能是: 從s所指的字符串中刪除給定的字符。同一字母的大、小寫按不同字符處理。 若程序執行時輸入字符串為: turbo c and borland c++ 從鍵盤上輸入字符:n, 則輸出后變為: turbo c ad borlad c++ 如果輸入的字符在字符串中不存在, 則字符串照原樣輸出。 注意: 部分源程序在文件PROG1.C中。 請勿改動主函數main和其它函數中的任何內容, 僅在函數fun的花括號中填入 你編寫的若干語句。 給定源程序:
#include <stdio.h>
#include <string.h>
int fun ( char s
[ ] , char c
)
{
}
main ( )
{
static char str
[ ] = "turbo c and borland c++" ;
char ch
;
printf ( "原始字符串:%s\n" , str
) ;
printf ( "輸入一個字符:" ) ;
scanf ( "%c" , & ch
) ;
fun ( str
, ch
) ;
printf ( "str[]=%s\n" , str
) ;
NONO ( ) ;
}
解題思路: 本題是考察考生怎樣在字符串中刪除指定的字符,結果仍存放在原字符串中。給出的程序是引用字符串指針p和while循環語句以及if條件判斷語句進行處理的,新字符串的位置是由i 來控制的,循環結束后,再給新字符串置字符串結束符,最后產生的新字符串形參s返回到主程序中。 參考答案:
int fun ( char s
[ ] , char c
)
{
char * p
= s
;
int i
= 0 ;
while ( * p
) {
if ( * p
!= c
) s
[ i
++ ] = * p
;
p
++ ;
}
s
[ i
] = 0 ;
}
總結
以上是生活随笔 為你收集整理的全国计算机等级考试题库二级C操作题100套(第89套) 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。