首页 > 全部 > 二级C语言 > 国家二级C语言机试(操作题)模拟试卷617

国家二级C语言机试(操作题)模拟试卷617

本单篇文档共2856字,内容预览3600字,预览为有答案版,源文件无水印,下载后包含无答案空白卷版和有答案版,同时也有计算机类NCRE全国计算机二级整科真题模拟题,讲义课件,思维导图,易错高频题等下载。
二级C语言 章节练习 5414人下载
价格: 0.80 原价:¥9.00
收藏

国家二级C语言机试(操作题)模拟试卷617

程序填空题

1.使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun的功能是:将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的次序。

例如,s所指的字符串为“def35adh3kjsdf7”,执行后结果为“defadhkjsdf3537”。

请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。

注意:部分源程序给出如下。

不得增行或删行,也不得更改程序的结构!

试题程序:

#include<stdio.h>

void fun(char*s)

{

int i,j=0,k=0;

char t1[80],t2[80];

for(i=0;s[i]!=’\0’;i++)

if(s[i]>=’0’&&s[i]<=’9’)

{

t2[j]=s[i];

【1】

}

else

{

t1[k++]=s[i];

}

t2[j]=0;

t1[k]=0;

for(i=0;i<k;i++)

【2】

for(i=0;i<【3】;i++)

s[k+i]=t2[i];

}

main()

{

char s[80]=\\

(1)j++或j+=1或++j或j=j+1

(2)s[i]=t1[i]

(3)j

解析:填空1:根据函数fun中的内容可知,数组t1存储了s中的非数字字符,数组t2存储了s中的数字字符,为了存储下一个数字字符,下标j要进行加1操作。

填空2:将s串中的数字与非数字字符分开后,要先将非数字字符放入字符串s中,因此填入s[i]=t1[i]。

填空3:再将数字字符加到s串之后,并且i要小于数字的个数j。

程序修改题

2.使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun的功能是:先将字符串s中的字符按正序存放到字符串t中,然后把s中的字符按逆序连接到字符串t的后面。

例如,当s中的字符串为“ABCDE”时,则t中的字符串应为“ABCDEEDCBA”。

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include<stdlib.h>

#include<conio.h>

#include<stdio.h>

#include<string.h>

void fun(char*s,char*t)

{

int i,s1;

s1=strlen(s);

/*********found*********/

for(i=0;i<=s1;i++)

t[i]=s[i];

for(i=0;i<s1;i++)

t[s1+i]=s[s1-i-1];

/*********found*********/

t[s1]=’\0’;

}

void main()

{

char s[100],t[100];

system(\\

(1)for(i=0;i<s1;i++)

(2)t[2*s1]=’\0’;

解析:(1)字符串长度为s1,但数组下标从0~s1-1,因此不包括s1。

(2)正序和逆序字符串都加入了t串中,此时t串中最后一个元素的下标为2*s1-1,所以在2*s1下标处加入字符串结束标识‘\0’。

程序设计题

3.使用VC++2010打开考生文件夹下pmg1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun,其功能是:删除—个字符串中指定下标的字符。其中,a指向原字符串,删除指定字符后的字符串存放在b所指的数组中,n中存放指定的下标。

例如,输入一个字符串“World”,然后输入3,则调用该函数后的结果为“Word”。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

试题程序:

#include<stdlib.h>

#include<stdio.h>

#include<conio.h>

#define LEN20

void fun(char a[],char b[],

int n)

{

}

void main()

{

char str1[LEN],str2[LEN];

int n;

system(\\

void fun(char a[],char b[],int n)

{

int i,k=0;

for(i=0;a[i]!=’\0’;i++)

if(i!=n)/*将不是指定下标的字符存入数组b中*/

b[k++]=a[i];

b[k]=’\0’;/*在字符串最后加上结束标识*/

}

解析:本题要求删除字符串中指定下标的字符,即把非指定下标的字符保留,所以if语句条件表达式的内容是if(i!=n)。字符串最后不要忘记加上字符串结束标识’\0’。

本文档预览:3600字符,共2856字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

剩余未完,查看全文
收藏
国家二级C语言机试(操作题)模拟试卷617

推荐资源

客服

扫码添加客服微信

热线

官方客服

如遇问题,请联系客服为您解决

电话客服:

客服微信:pujinet

工作时间:9:00-18:00,节假日休息

公众号

扫码关注微信公众号