生活随笔
收集整理的這篇文章主要介紹了
全国计算机等级考试题库二级C操作题100套(第35套)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第35套:
給定程序中,函數fun的功能是建立一個N×N的矩陣。 矩陣元素的構成規律是:最外層元素的值全部為1;從外向內第2層元素的值全部為2;第3層元素的值 全部為3,…依次類推。例如,若N=5,生成的矩陣為: 1 1 1 1 1 1 2 2 2 1 1 2 3 2 1 1 2 2 2 1 1 1 1 1 1 請在程序的下劃線處填入正確的內容并把下劃線刪除, 使程序得出正確的結果。 注意:源程序存放在考生文件夾下的BLANK1.C中。 不得增行或刪行,也不得更改程序的結構! 給定源程序:
#include <stdio.h>
#define N 7
void fun ( int ( * a
) __1__
)
{ int i
, j
, k
, m
;
if ( N
% 2 == 0 ) m
= N
/ 2 ;
else m
= N
/ 2 + 1 ;
for ( i
= 0 ; i
< m
; i
++ ) {
for ( j
= __2__
; j
< N
- i
; j
++ )
a
[ i
] [ j
] = a
[ N
- i
- 1 ] [ j
] = i
+ 1 ;
for ( k
= i
+ 1 ; k
< N
- i
; k
++ )
a
[ k
] [ i
] = a
[ k
] [ N
- i
- 1 ] = __3__
;
}
}
main ( )
{ int x
[ N
] [ N
] = { 0 } , i
, j
;
fun ( x
) ;
printf ( "\nThe result is:\n" ) ;
for ( i
= 0 ; i
< N
; i
++ )
{ for ( j
= 0 ; j
< N
; j
++ ) printf ( "%3d" , x
[ i
] [ j
] ) ;
printf ( "\n" ) ;
}
}
解題思路: 第一處:建立一個N×N的矩陣,所以應填:[N]。 第二處:j的起始變量值應i。 第三處:也應該填寫i+1。
給定程序MODI1.C中函數 fun 的功能是: 將十進制正整數m轉換成k(2≤k≤9) 進制數, 并按高位到低位順序輸出。 例如,若輸入8和2,則應輸出1000(即十進制數8轉換成二進制表示是1000)。 請改正 fun 函數中的錯誤,使它能得出正確的結果。 注意:不要改動 main 函數。不得增行或刪行,也不得更改程序的結構! 給定源程序:
#include <conio.h>
#include <stdio.h>
void fun ( int m
, int k
)
{
int aa
[ 20 ] , i
;
for ( i
= 0 ; m
; i
++ )
{
aa
[ i
] = m
/ k
;
m
/ = k
;
}
for ( ; i
; i
-- )
printf ( "%d" , aa
[ i
] ) ;
}
main ( )
{
int b
, n
;
printf ( "\nPlease enter a number and a base:\n" ) ;
scanf ( "%d %d" , & n
, & b
) ;
fun ( n
, b
) ;
printf ( "\n" ) ;
}
解題思路: 第一處:應該取模而不是整除,所以應為:aa[i]=m%k;。 第二處:輸出aa的位置不正確,所以應為:printf("%d",aa[i-1]);。
編寫一個函數,從num個字符串中找出最長的一個字符串,并通過形參指針max傳回該串地址。(注意: 主函數中用****作為結束輸入的標志,函數fun中給出的語句僅供參考。) 注意:部分源程序在文件PROG1.C中。 請勿改動主函數main和其它函數中的任何內容,僅在函數fun的花括號中填入你編寫的若干語句。 給定源程序:
#include <stdio.h>
#include <string.h>
fun ( char ( * a
) [ 81 ] , int num
, char * * max
)
{
int i
, k
= 0 , len
, maxlen
;
maxlen
= strlen ( a
[ k
] ) ;
for ( i
= 1 ; i
< num
; i
++ )
{
}
* max
= a
[ k
] ;
}
main ( )
{
char ss
[ 10 ] [ 81 ] , * ps
;
int n
, i
= 0 ;
printf ( "輸入若干個字符串:" ) ;
gets ( ss
[ i
] ) ;
puts ( ss
[ i
] ) ;
while ( ! strcmp ( ss
[ i
] , "****" ) == 0 )
{
i
++ ;
gets ( ss
[ i
] ) ;
puts ( ss
[ i
] ) ;
}
n
= i
;
fun ( ss
, n
, & ps
) ;
printf ( "\nmax=%s\n" , ps
) ;
NONO ( ) ;
}
解題思路: 本題是考察考生怎樣從已輸入的字符串中找出長度最大的字符串。求字符串的長度可以使用strlen函數。 參考答案:
fun ( char ( * a
) [ 81 ] , int num
, char * * max
)
{ int i
, k
= 0 , maxlen
;
maxlen
= strlen ( a
[ k
] ) ;
for ( i
= 1 ; i
< num
; i
++ )
{
if ( strlen ( a
[ i
] ) > maxlen
) {
maxlen
= strlen ( a
[ i
] ) ;
k
= i
;
}
}
* max
= a
[ k
] ;
}
創作挑戰賽 新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔 為你收集整理的全国计算机等级考试题库二级C操作题100套(第35套) 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。