生活随笔
收集整理的這篇文章主要介紹了
全国计算机等级考试题库二级C操作题100套(第50套)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第50套:
給定程序中,函數fun的功能是:有N×N矩陣,以主對角線為對稱線,對稱元素相加并將結果存放在左下三角元素中,右上三角元素置為0。例如,若N=3,有下列矩陣: 1 2 3 4 5 6 7 8 9 計算結果為 1 0 0 6 5 0 10 14 9 請在程序的下劃線處填入正確的內容并把下劃線刪除,使程序得出正確的結果。 注意:源程序存放在考生文件夾下的BLANK1.C中。 不得增行或刪行,也不得更改程序的結構! 給定源程序:
#include <stdio.h>
#define N 4
void fun ( int ( * t
) ___1___
)
{ int i
, j
;
for ( i
= 1 ; i
< N
; i
++ )
{ for ( j
= 0 ; j
< i
; j
++ )
{
___2___
= t
[ i
] [ j
] + t
[ j
] [ i
] ;
___3___
= 0 ;
}
}
}
main ( )
{ int t
[ ] [ N
] = { 21 , 12 , 13 , 24 , 25 , 16 , 47 , 38 , 29 , 11 , 32 , 54 , 42 , 21 , 33 , 10 } , i
, j
;
printf ( "\nThe original array:\n" ) ;
for ( i
= 0 ; i
< N
; i
++ )
{ for ( j
= 0 ; j
< N
; j
++ ) printf ( "%2d " , t
[ i
] [ j
] ) ;
printf ( "\n" ) ;
}
fun ( t
) ;
printf ( "\nThe result is:\n" ) ;
for ( i
= 0 ; i
< N
; i
++ )
{ for ( j
= 0 ; j
< N
; j
++ ) printf ( "%2d " , t
[ i
] [ j
] ) ;
printf ( "\n" ) ;
}
}
解題思路: 第一處:形參t的定義,整數數組其寬度為N,所以應填:[N]。 第二處:對稱元素相加,其結果仍存放在左下三角元素中,所以應填:t[i][j]。 第三處:右上三角元素置為0,所以應填:t[j][i]。
給定程序MODI1.C中函數fun的功能是:計算函數 F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x和y的值不等,z和y的值不等。 例如,當x的值為9、y的值為11、z的值為15時,函數值為 -3.50。 請改正程序中的錯誤,使它能得出正確結果。 注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。 給定源程序:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#define FU(m,n) (m/n)
float fun ( float a
, float b
, float c
)
{ float value
;
value
= FU ( a
+ b
, a
- b
) + FU ( c
+ b
, c
- b
) ;
Return ( Value
) ;
}
main ( )
{ float x
, y
, z
, sum
;
printf ( "Input x y z: " ) ;
scanf ( "%f%f%f" , & x
, & y
, & z
) ;
printf ( "x=%f,y=%f,z=%f\n" , x
, y
, z
) ;
if ( x
== y
|| y
== z
) { printf ( "Data error!\n" ) ; exit ( 0 ) ; }
sum
= fun ( x
, y
, z
) ;
printf ( "The result is : %5.2f\n" , sum
) ;
}
解題思路: 第一處:define定義錯誤,所以應改為:#define FU(m,n) ((m)/(n))。 第二處:return錯寫成Return,變量value錯寫成Value。
規定輸入的字符串中只包含字母和號。請編寫函數fun,它的功能是:將字符串中的前導號全部刪除,中間和尾部的號不刪除。 例如,字符串中的內容為:ABCDEFG ,刪除后,字符串中的內容應當是:ABCDEFG****。在編寫函數時,不得使用C語言提供的字符串函數。 注意: 部分源程序在文件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 ( ) ;
}
解題思路: 本題是考察字符串的操作。
利用循環掃描出字符串左邊第1個字符不是’*'的字符。 再利用循環把以后的字符依次移動原字符串首地址開始存放。 最后給字符串a加上結束符。 參考答案:
void fun ( char * a
)
{
int j
= 0 ;
char * p
= a
;
while ( * p
== '*' ) p
++ ;
while ( * p
) {
a
[ j
++ ] = * p
;
p
++ ;
}
a
[ j
] = 0 ;
}
總結
以上是生活随笔 為你收集整理的全国计算机等级考试题库二级C操作题100套(第50套) 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。