生活随笔
收集整理的这篇文章主要介绍了
全国计算机等级考试题库二级C操作题100套(第25套)
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
第25套:
人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入 结构体数组std中,且编号唯一。函数fun的功能是:找出指定编号人员的数据, 作为函数值返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 给定源程序:
#include <stdio.h>
#include <string.h>
#define N 8
typedef struct
{ char num
[ 10 ] ;
int year
, month
, day
;
} STU
;
___1___
fun ( STU
* std
, char * num
)
{ int i
; STU a
= { "" , 9999 , 99 , 99 } ;
for ( i
= 0 ; i
< N
; i
++ )
if ( strcmp ( ___2___
, num
) == 0 )
return ( ___3___
) ;
return a
;
}
main ( )
{ STU std
[ N
] = { { "111111" , 1984 , 2 , 15 } , { "222222" , 1983 , 9 , 21 } , { "333333" , 1984 , 9 , 1 } ,
{ "444444" , 1983 , 7 , 15 } , { "555555" , 1984 , 9 , 28 } , { "666666" , 1983 , 11 , 15 } ,
{ "777777" , 1983 , 6 , 22 } , { "888888" , 1984 , 8 , 19 } } ;
STU p
; char n
[ 10 ] = "666666" ;
p
= fun ( std
, n
) ;
if ( p
. num
[ 0 ] == 0 )
printf ( "\nNot found !\n" ) ;
else
{ printf ( "\nSucceed !\n " ) ;
printf ( "%s %d-%d-%d\n" , p
. num
, p
. year
, p
. month
, p
. day
) ;
}
}
解题思路: 本题是要求从给定的人员数据中找出编号相同的记录数据。 第一处:从返回值来看,是返回一个结构型的值,所以应填:STU。 第二处:判断结构变量中的编号num是否相等,所以应填:stu[i].num。 第三处:返回编号相等的记录值,所以应填:std[i]。
给定程序MODI1.C中函数fun的功能是:从s所指字符串中,找出与t所指字符串相同的子串的个数作为函数值返回。 例如,当s所指字符串中的内容为:“abcdabfab”,t所指字符串的内容为: “ab”,则函数返回整数3。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main 函数,不得增行或删行,也不得更改程序的结构! 给定源程序:
#include <stdio.h>
#include <string.h>
int fun
( char * s
, char * t
)
{
int n
; char * p
, * r
;
n
= 0 ;
while ( * s
)
{ p
= s
; r
= t
;
while ( * r
)
if ( * r
== * p
) {
r
++ ; p
++
}
else break ;
if ( r
== '\0' )
n
++ ;
s
++ ;
}
return n
;
}
main ( )
{
char s
[ 100 ] , t
[ 100 ] ; int m
;
printf ( "\nPlease enter string S:" ) ; scanf ( "%s" , s
) ;
printf ( "\nPlease enter substring t:" ) ; scanf ( "%s" , t
) ;
m
= fun ( s
, t
) ;
printf ( "\nThe result is: m = %d\n" , m
) ;
}
解题思路: 第一处:语句后缺少分号。 第二处:判断r的当前字符是否是字符串结束符,所以应改为:if(*r==0)。
函数fun的功能是:将s所指字符串中ASCII值为偶数的字符删除,串中剩余字 符形成一个新串放在t所指的数组中。 例如,若s所指字符串中的内容为:“ABCDEFG12345”,其中字符B的ASCII码值 为偶数、…、字符2的ASCII码值为偶数、… 都应当删除,其它依此类推。最后t所指的数组中的内容应是:“ACEG135”。 注意: 部分源程序存在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 给定源程序:
#include <stdio.h>
#include <string.h>
void fun ( char * s
, char t
[ ] )
{
}
main ( )
{
char s
[ 100 ] , t
[ 100 ] ;
printf ( "\nPlease enter string S:" ) ; scanf ( "%s" , s
) ;
fun ( s
, t
) ;
printf ( "\nThe result is: %s\n" , t
) ;
NONO ( ) ;
}
解题思路: 本题是从一个字符串按要求生成另一个新的字符串。我们使用for循环语句来解决这个问题。 参考答案:
void fun ( char * s
, char t
[ ] )
{
int i
, j
= 0 ;
for ( i
= 0 ; i
< strlen ( s
) ; i
++ ) if ( s
[ i
] % 2 ) t
[ j
++ ] = s
[ i
] ;
t
[ j
] = 0 ;
}
总结
以上是生活随笔 为你收集整理的全国计算机等级考试题库二级C操作题100套(第25套) 的全部内容,希望文章能够帮你解决所遇到的问题。
如果觉得生活随笔 网站内容还不错,欢迎将生活随笔 推荐给好友。