国家二级C语言机试(操作题)模拟试卷676
程序填空题
1.下列给定程序中,函数fun的功能是:在形参ss所指字符串数组中查找与形参t所指字符串相同的串,找到后返回该串在字符串数组中的位置(即下标值),若未找到则返回-1。ss所指字符串数组中共有N个内容不同的字符串,且串长小于M。
请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#include<string.h>
#define N5
#deline M8
int fun(char(*ss)[M],char*t)
{
int i;
/******found******/
for(i=0;i<___1___;i++)
if(stremp(ss[i],t)==0)
/******found******/
return___2___;
return-1;
}
main()
{
char ch[N][M]={\\
(1)N
(2)i
(3)-1
解析:本题考查:for循环语句;函数返回值;if语句条件表达式。
填空1:变量i是循环变量,它的取值范围是在0到N之间。
填空2:如果ss所指字符串数组中的字符串和t所指字符串相同的话,则返回其下标值,即return i;否则返回-1,即return-1;。
填空3:在main函数中输出最后结果,判断函数返回值n,如果n=-1,说明没有找到,否则输出n。
程序修改题
2.下列给定程序中,函数fun的功能是:删除指针p所指字符串中的所有空白字符(包括制表符、回车符及换行符)。
输入字符串时用’#’结束输入。
请改正程序中的错误,使它能输出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
试题程序:
#include<string.h>
#include<stdio.h>
#include<ctype.h>
fun(char*p)
{
int i,t;char c[80];
/******found******/
For(i=0,t=0;p[i];i++)
if(!isspace(*(p+i)))
c[t++]=p[i];
/******found******/
c[t]=\\
(1)for(i=0,t=0;p[i];i++)
(2)c[t]=’\0’;
解析:本题考查:C语言关键字;字符串结束标识’\0’。
该题目考查C语言关键字的书写,C语言中关键字是区分大小写的。另外为字符串结尾添加结束符时应书写为’\0’,而非\\
程序设计题
3.函数fun的功能是:将s所指字符串中除下标为偶数,同时ASCII码值也为偶数的字符外,其余的全部删除;字符串中剩余字符所形成的新串放在t所指的数组中。
例如,若s所指字符串中的内容为\\
void fun(char*s,char t[])
{
int i,j=0;
for(i=0;s[i]!=’\0’;i++)
if(i%2==0&&s[i]%2==0)/*将s所指字符串中下标和ASCII码值都为偶数的字符放入数组t中*/
t[j++]=s[i];
t[j]=’\0’;/*在字符串最后加上结束标识*/
}
解析:本题考查:循环判断结构;字符串的操作;逻辑运算符的使用。
本题要求删除下标为偶数同时ASCII码值也为偶数的字符,即保留下标为偶数同时ASCII码值也为偶数的字符。循环语句用于遍历字符串,条件语句用于判断当前字符是否符合要求。注意判断条件是下标为偶数,同时ASCII码值也为偶数,所以应使用逻辑与“&&”运算符。
本文档预览:3600字符,共2060字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载