(14)调用函数swap,将a和b的值交换,最后在屏幕上显示交换后的a,b之值
#include
/*********Found************/ void swap(int x, int y) {
int tmp;
/*********Found************/ ___________ *x = *y;
/*********Found************/ y = x; }
void main() {
int a = 3, b = 4;
/*********Found************/ swap(a, b);
printf(\}
(15)调用函数swap,将a和b的值交换,最后在屏幕上显示交换后的a,b之值
#include
void swap(int *x, int *y) {
int *tmp, xy;
/*********Found************/ *tmp = x; *x = *y;
/*********Found************/ y = *tmp; }
void main() {
int a = 3, b = 4;
/*********Found************/ swap(*a, *b);
/*********Found************/ printf(\}
(16)worker的信息使用结构体存储,从键盘读入其各项信息并显示
#include
void main() {
struct WKER {
long ID;
6
long int num; char name[20]; char sex;
/*********Found************/ } ;
worker.ID = 1L;
/*********Found************/
scanf(\ /*********Found************/
printf(\
worker.num, worker.name, worker.sex); }
(17)函数userLogin的功能主要是统计并返回登录的用户数,用户名最长30字节
#include
long userLogin(char *userName) {
/*********Found************/ long userCount = 0;
userCount++;
printf(\ userName, userCount); /*********Found************/ return ; }
void main( ) {
/*********Found************/ char *userName; int i;
while (1) {
printf(\ scanf(\ i = userLogin(userName); } }
(18)从键盘上读入10个大于0的数,调用函数dispMaxNum显示其中最大的一个
#include
int maxNum = 0;
void dispMaxNum() {
/*********Found************/
printf(\}
void main( ) {
int i, oneNumber, maxNumber = 0;
7
printf(\ {
int maxNumber = 0;
/*********Found************/ ___________
for (i = 0; i < 10; i++) {
scanf(\ if (oneNumber > maxNumber) {
maxNumber = oneNumber; } } }
/*********Found************/ ___________
/*********Found************/ ___________ dispMaxNum(); }
(19)将inBuf中字符串拆分成一个个的单词
/* 单词之间的分隔符由串divChar,程序中定义为“;?!,.>/\\”。
函数getStrFromBuf的功能是从Buf的开始处寻找第一个单词,将找到的单词作为一个字符串复制到Str处,divStr指明单词间的分隔符。GetStrFromBuf的返回值指向已找到单词的下一个字符。
函数charInStr的功能是判断字符t是否出现在串Str中。 主程序的功能是将inBuf中的所有单词在屏幕上显示出来。 */
#include
char *getStrFromBuf(char *Buf, char *Str, char *divStr); int charInStr(char *Str, char t);
void main() {
char inBuf[100] = \ char divChar[] = \
p = inBuf; while (*p) {
/*********Found************/
getStrFromBuf(p, oneWord, divChar); if (*oneWord) {
puts(oneWord); } } }
int charInStr(char *Str, char t) {
for (; *Str; Str++) {
8
/*********Found************/ if (*Str == *t) {
/*********Found************/ return No; } }
/*********Found************/ return Yes; }
char *getStrFromBuf(char *Buf, char *Str, char *divStr) {
for (; *Buf; Buf++) {
if (charInStr(divStr, *Buf) == No) {
break; }
}
for (; *Buf; Buf++) {
if (charInStr(divStr, *Buf) == Yes) {
break; }
/*********Found************/ Str = *Buf; Str++; }
/*********Found************/ *Str = '0';
/*********Found************/ return ; }
1.2 程序设计 5小题、60分
本部分给出了5个(类)程序设计题的主要内容,在部分给出的程序运行效果示例中,带下划线部分表示是从键盘输入的内容,考生的程序设计要严格实现题中给出的程序效果。
程序设计题基本评分标准为:编译通过并且结果基本正确,边界条件未处理好则酌情扣分——即评分时只看结果是否正确,原则上不检查程序内容。
请考生注意:
(1)实际考题将在此基础上适当变换——并不限于其中已提示的可能变换。
(2)虽然部分题中没有对输入/输出格式作详细规定,但实际考题都会对输入/输出格式作明确要求,考生练习时可以参考已给出的其它程序设计题的运行效果及输入/输出格式规定,答题时严格遵循题中的规定。
9
(3)对于理工类考生,第1~5类题将各出2(①a、①b)、2(②a、②b)、1(③)、1(④)、1(⑤)道题(括号中为题的编号),每类题的分值分别为7×2、8×2、10、15、20。考生每小题的得分用f(x)表示、x为题号,则计算考生得分时,取Fa和Fb中最大者:
Fa = f(①a) + f(①b)+ f(②a) + f(②b) + f(③)
Fb = max(f(①a), f(①b)) + max(f(②a),f(②b)) + f(③) + f(④) + f(⑤) 上述分值计算公式意味者:编程能力一般的考生,可选做①a、①b、②a、②b、③题,最高可得40分;编程能力较强的考生,可选做①a与①b中任一题、②a与②b中任一题、③、④、⑤题,最高可得60分。
(4)对于文管类考生,不做第(5)题及拆分单词的(4)-2题,第1~4类题将各出2(①a、①b)、2(②a、②b)、1(③)、1(④)道题(括号中为题的编号),每类题的分值分别为7×2、9×2、15、20。考生每小题的得分用f(x)表示、x为题号,则计算考生得分时,取Fa和Fb中最大者:
Fa = f(①a) + f(①b)+ f(②a) + f(②b) + f(③)
Fb = max(f(①a), f(①b)) + f(②a) + f(②b) + f(③) + f(④)
上述分值计算公式意味者:编程能力一般的考生,可选做①a、①b、②a、②b、③题,最高可得47分;编程能力较强的考生,可选做①a与①b中任一题、②a、②b、③、④题,最高可得60分。
由于考生在考前均作了大量练习,知道考题的大概——实际考题与此公布的考题相似度很高但并不完全相同,因此,请考生考试时务必仔细阅读实际考题的要求,严格按实际考题的要求做,避免先入为主,切记!
1.2.1 第1(类)题
(1)编写一程序实现以下功能
x(x只考虑整数int、但5x完全可能超过int的表示范围)通过键盘输入(输入前给出提示Please input x:),然后计算并在屏幕上输出如下函数值,输出格式举例为:若x为3,则输出为F(3)=24。编程时,可以不用其它的子函数实现,可直接在main函中完成所有代码。
程序运行效果: Please input x: 3
F(x)= -2x (x<0) 0 (x=0) 5x+9 (x>0) 10