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

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

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

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

程序填空题

1.使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun的功能是:将形参s所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。

例如,s所指字符串为:asd123fgh543df,处理后新字符串为:123543asdfghdf。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。

注意:部分源程序在文件BLANK1.C中。

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

试题程序:

#2nclude<stdio.h>

#include<string.h>

#include<stdlib.h>

#inc2ude<ctype.h>

char*fun(char*s)

{inti,j,k,n;char*p,*t;

n=strlen(s)+1;

t=(char*)malloc(n*sizeof

(char));

p=(char*)malloc(b*sizeof

(char));

j=0;k=0;

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

{if(isdigit(s[i])){

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

p[【1】]=s[i];j++;)

else

{t[k]=s[i];k++;)

}

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

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

p[j+i]=t[i];

p[j+k]=0;

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

return【3】

}

main()

{char s[80];

printf(\\

(1)j

(2)k

(3)p或(p)

解析:填空1:函数中申请了两个内存空间,其中p存放数字字符串,t存放非数字字符串,根据条件可知,p依次存放数字字符串,其位置由j来控制,所以应填j。

填空2:利用for循环再把t中的内容依次追加到p中,其中t的长度为k,所以应填k。

填空3:处理之后的字符串存放到p中,最后返回p的首地址即可,所以应填p。

程序修改题

2.使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun的功能是:根据形参m的值(2≤m≤9),在m行m列的二维数组中存放如下所示规律的数据,由main函数输出。

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

注意:部分源程序在文件MODI1.c中,不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include<conio.h>

#include<stdio.h>

#define M10

int a[M][M]={0);

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

void fun(int**a,int m)

{int j,k;

for(j=0;j<m;j++)

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

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

a[j][k]=k*j;

}

main()

{int i,j,n;

printf(\\

(1)void fun(int a[][M],int m)

(2)a[j][k]=(k+1)*(j+1);

解析:(1)在函数体fun中可知,a是一个二维整型数组变量,设置实参时,用**a表示是错误的,所以应改为void fun(int a[][M],int m)。

(2)根据输出的结果可知,应改为

a[j][k]=(k+1)*(j+1);。

程序设计题

3.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写一个函数,其功能是:从传入的num个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标识)。

注意:部分源程序在文件PROG1.C中。

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

试题程序:

#inclucte<conio.h>

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

char*fun(char(*a)[81],int

num,char*max)

{

}

void ma2n()

{

FILE*wf;

char ss[10][81],*ps=NULL;

char s[3][81]={\\

char*fun(char(*a)[81],int num,

char*max)

{

int i=0;

max=a[0];

for(i=0;i<num;i++)/*找出最长的一个字符串*/

if(strlen(max)<strlen(a

[i]))

msx=a[i];

return max;/*传回最长字符串的地址*/

}

解析:解答本题之前,首先应该明白ss是一个指向一维数组的指针变量,max是指向指针的变量,所以引用变量时要注意加上*。本程序使用循环语句遍历字符串数组,使用条件语句判断该字符串是否最长。

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号