国家二级C语言机试(操作题)模拟试卷318
程序修改题
1.给定程序中函数fun的功能是:首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到c所指数组中,过长的剩余字符接在c所指的数组的尾部。例如,当a所指字符串中的内容为\\
(1)while(i<j)
(2)if(*a)
解析:(1)由i和j定义的初始值可知,此处应该判断i是否小于j,所以应改为while(i<j)。
(2)此处将if错写成If,这个错误比较简单,但往往不容易发现。
程序设计题
2.编写函数fun,其功能是:实现两个字符串的连接(不要使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串的后面。
例如,分别输入下面两个字符串:
“FirstString–”
“SecondString”
程序输出:
“FirstString–SecondString”
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
void fun(char p1[],char p2[])
{
}
void main()
{
char s1[80],s2[40];
system(\\
void fun(char p1[],char p2[])
{
int i,j,
for(i=0;p1[i]!=’\0’;i++);
/*求出的i为p1字符串的总长度,包括结束标记符*/
for(j=0;p2[j]!=’\0’;j++)
p1[i++]=p2[j]; /*将p2字符串连在p1字符串后面*/
p1[i]=’\0’; /*在字符串最后加上结束标记符*/
}
解析:本题考查:不使用字符串函数实现字符串连接操作。通过for循环语句来完成,最后需加上字符串结束标识‘\0’。
本题用两个循环完成操作,第1个循环的作用是求出第1个字符串的长度,即将i指到第1个字符串的末尾;第2个循环的作用是将第2个字符串的字符连到第1个字符串的末尾。最后在第1个字符串的结尾加上字符串结束标识‘\0’。
本文档预览:3600字符,共1341字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载