计算机二级考试VC部分试题及答案Word格式.docx

上传人:b****4 文档编号:16677827 上传时间:2022-11-25 格式:DOCX 页数:48 大小:39.94KB
下载 相关 举报
计算机二级考试VC部分试题及答案Word格式.docx_第1页
第1页 / 共48页
计算机二级考试VC部分试题及答案Word格式.docx_第2页
第2页 / 共48页
计算机二级考试VC部分试题及答案Word格式.docx_第3页
第3页 / 共48页
计算机二级考试VC部分试题及答案Word格式.docx_第4页
第4页 / 共48页
计算机二级考试VC部分试题及答案Word格式.docx_第5页
第5页 / 共48页
点击查看更多>>
下载资源
资源描述

计算机二级考试VC部分试题及答案Word格式.docx

《计算机二级考试VC部分试题及答案Word格式.docx》由会员分享,可在线阅读,更多相关《计算机二级考试VC部分试题及答案Word格式.docx(48页珍藏版)》请在冰豆网上搜索。

计算机二级考试VC部分试题及答案Word格式.docx

2.算法分析

①#defineFU(m,n)((m/n))错误这样定义FU(m,n)造成语句value=FU(a+b,a-b)+FU(c+b,c-b)执行为value=(a+b/a-b)+(c+b/c-b),所以应该将语句#defineFU(m,n)((m/n))改为#defineFU(m,n)(m)/(n)

②语句Return(Value);

错误C语言中大小写字母有不同的含义,此处希望执行返回value的值的操作,所以应该改为return(value);

二、填空题

下列给定程序中,函数fun的功能是:

有N×

N矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。

例如,若N=3,有下列矩阵:

1  2  3

4  5  6

7  8  9

计算后结果为

1  0  0

6  5  0

10 14 9

请在程序的下划线处填入正确的内容并把下划线删除。

使程序得出正确的结果。

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

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

#defineN4

voidfun(int(*t)___1___)

{inti,j;

for(i=1;

i<

N;

i++)

{for(j=0;

j<

i;

j++)

{

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

___3___=0;

}

{

intt[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j;

\nTheoriginalarray:

for(i=0;

j++)printf("

%2d"

t[i][j]);

fun(t);

\nTheresultis:

①[N]

形参t被定义为行数组指针变量,它指向包含N个元素的一位数组。

②t[i][j]

以主对角线为对称线,对称元素相加的值应该赋予左下三角元素的t[i][j]。

③t[j][i]

根据题意,为零的应该是右上三角元素的值。

三、编程题

规定输入的字符串中只包含字母和*号。

编写函数fun,其功能是:

将字符串中的前导*号全部删除,中间和尾部的*号不删除。

例如,字符串中的内容为:

*******A*BC*DEF*G****,删除后字符串中的内容应当是:

A*BC*DEF*G****。

编写函数时,不得使用C语言提供的字符串函数。

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

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

voidfun(char*a)

{chars[81];

voidNONO();

Enterastring:

gets(s);

fun(s);

Thestringafterdeleted:

puts(s);

NONO();

voidNONO()

{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。

*/

FILE*in,*out;

inti;

chars[81];

in=fopen("

in.dat"

"

r"

);

out=fopen("

out.dat"

w"

for(i=0;

i<

10;

i++){

fscanf(in,"

%s"

s);

fun(s);

fprintf(out,"

%s\n"

fclose(in);

fclose(out);

(1)主要数据结构

char*a

(2)算法描述

①记录第一个非*的符号的地址;

②将包括第一个在内的非*字符串全部赋予另一个数组。

3.实现代码

voidfun(char*a)

char*p=a;

while(*p=='

*'

)p++;

for(;

*p!

='

\0'

;

p++,a++)

*a=*p;

*a='

4.程序调试及测试结果

经运行程序调试,将出现的错误分析如下:

(1)编译错误

(2)连接错误

(3)运行错误

经过修改程序测试结果正确,符合要求。

第二套

下列给定程序中,函数fun的功能是:

依次取出字符串中所有的数字字符,形成新的字符串,并取代原字符串。

请改正函数fun中的错误,使它能得出正确的结果。

conio.h>

voidfun(char*s)

{inti,j;

for(i=0,j=0;

s[i]!

='

if(s[i]>

0'

&

s[i]<

9'

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

s[j]=s[i];

s[j]=”\0”;

voidmain()

{charitem[80];

system("

CLS"

\nEnterastring:

gets(item);

\n\nThestringis:

item);

fun(item);

\n\nThestringofchangingis:

 

①语句s[j]=s[i];

错误。

程序在这里应该执行将是数字的字符赋予s[j]并将j自加1,所以这里应该改为s[j++]=s[i]

②语句s[j]=”\0”;

这里应该是将字符‘\0’赋予s[j],而非字符串,所以应该改为s[j]=‘\0’

*二、填空题

给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。

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

请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。

voidfun(char*s,inta,doublef)

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

__1__fp;

charch;

fp=fopen("

file1.txt"

"

fprintf(fp,"

%s%d%f\n"

s,a,f);

fclose(fp);

\nTheresult:

\n\n"

ch=fgetc(fp);

while(!

feof(__2__))

putchar(__3__);

putchar('

\n'

{chara[10]="

Hello!

"

intb=12345;

doublec=98.76;

fun(a,b,c);

①FILE*易知这里是为了定义文件指针fp,因此这里应该填FILE*;

②fp这里是为了对该文件类型数据进行操作,因此填写fp;

③ch为了实现用字符方式从此文本文件中逐个读入并显示在终端屏幕上,此处应该填写ch。

请编写函数fun,该函数的功能是:

将M行N列的二维数组中的字符数据,按列的顺序依此放到一个字符串中。

例如,若二维数组中的数据为

WWWW

SSSS

HHHH

则字符串中的内容应是:

WSHWSHWSHWSH。

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

#include<

#defineM3

voidfun(char(*s)[N],char*b)

{

FILE*wf;

chara[100],w[M][N]={{'

W'

'

},{'

S'

H'

}};

inti,j;

Thematrix:

i<

M;

i++)

j<

j++)

%3c"

w[i][j]);

fun(w,a);

TheAstring:

puts(a);

/******************************/

wf=fopen("

fprintf(wf,"

a);

fclose(wf);

/*****************************/

char(*s)[N],char*b

将原数组行列互换后逐一记录至另一个以为数组,记录完成后将另一个数组的最后加上结束标志’\0’。

inti,j,k=0;

for(j=0;

j++)

b[k++]=s[j][i];

b[k]='

经过修改程序测试结果正确,符合要求。

第三套

用冒泡法对6个字符串进行升序排列。

部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构!

string.h>

#defineMAXLINE20

fun(char*pstr[6])

{inti,j;

char*p;

for(i=0;

5;

i++)

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

for(j=i+1,j<

6,j++)

if(strcmp(*(pstr+i),*(pstr+j))>

0)

p=*(pstr+i);

*(pstr+i)=pstr+j;

*(pstr+j)=p;

main()

{inti;

char*pstr[6],str[6][MAXLINE];

for(i=0;

6;

i++)pstr[i]=str[i];

printf("

\nEnter6string(1stringateachline):

\n"

);

i++)scanf("

pstr[i]);

fun(pstr);

Thestringsaftersorting:

i++)printf("

①语句for(j=i+1,j<

6,j++)错误。

for语句中的各语句之间应该用“;

”号隔开,而非“,”号,所以此处应该改为for(j=i+1;

j<

6;

j++)。

②语句*(pstr+i)=pstr+j;

根据题意,这里程序想执行的是将数组的第j个元素赋予数组的第i个元素,而非将数组的第j个元素的地址赋予数组的第i个元素,所以这里应该改为*(pstr+i)=*(pstr+j);

将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的次序。

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

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

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

{inti,j=0,k=0;

chart1[80],t2[80];

&

s[i]<

t2[j]=s[i];

___1___;

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

t2[j]=0;

t1[k]=0;

k;

i++)___2___;

___3___;

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

{chars[80]="

ba3a54j7sd567sdffs"

\nTheoriginalstringis:

%s\n"

s);

fun(s);

\nTheresultis:

①j++使j自加一,当下一次条件再一次满足条件时,能够把对应s[i]的元素记录到数组t2中的下一个元素中;

②s[i]=t1[i]将非数字的元素组成的数组t1

逐个地把它的元素赋给数组s;

③j将由数字组成的数组t2中的元

素在t1后逐个赋给数组s中第

k后的元素。

求ss所指字符串中指定字符的个数,并返回此值。

例如,若输入字符串123412132,输入字符为1,则输出3。

#defineM81

intfun(char*ss,charc)

{chara[M],ch;

\nPleaseenterastring:

gets(a);

\nPleaseenterachar:

ch=getchar();

\nThenumberofthecharis:

%d\n"

fun(a,ch));

NONO();

voidNONO()

{/*本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。

*/

FILE*rf,*wf;

chara[M],b[M],ch;

rf=fopen("

wf=fopen("

fscanf(rf,"

a);

b);

ch=*b;

fprintf(wf,"

%c=%d\n"

ch,fun(a,ch));

fclose(rf);

fclose(wf);

char*ss,charc

①得出字符数组的所包含的字符数的值并

赋给m;

②逐一比较数组中与特定字符相同的字符,若有数组中有一个成立,就让j加上1,最后返回j的值,j的值就是所要求的数组中与特定字符相同的字符个数。

intfun(char*ss,charc)

inti,j=0,m;

m=strlen(ss);

m;

if(ss[i]==c)j++;

returnj;

第四套

删除s所指字符中所有的小写字母c。

部分源程序在文件MODI1.C中,不得增行或删行,也不得更改的程序的结构!

voidfun(char*s)

{inti,j;

for(i=j=0;

if(s[i]!

c'

s[i]=0;

{chars[80];

gets(s);

Theoriginalstring:

puts(s);

Thestringafterdeleted:

printf("

当数组中的元素部位c是则记录下该元素并将它赋给元素s[j],同时让j自加1,方便记录下下一个不是c的元素,所以这里应该改为s[j++]=s[i];

②语句s[i]=0;

根据题意,程序在这里想将所记录的最后一个不是c的元素的后面一位赋予结束符号“\0”,所以这里应该改为s[j]=’\0’。

程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。

函数fun的功能是:

将形参a所指结构体变量中的数据赋给函数中的结构体变量b,并修改b中的学号和姓名,最后输出修改后的数据。

例如,a所指变量中的学号、姓名和三门课的成绩依次是:

10001、"

ZhangSan"

、95、80、88,则修改后输出b中的数据应为:

10002、"

LiSi"

、95、80、88。

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

structstudent{

longsno;

charname[10];

floatscore[3];

};

voidfun(structstudenta)

{structstudentb;

inti;

b=__1__;

b.sno=10002;

strcpy(__2__,"

\nThedataaftermodified:

\nNo:

%ldName:

%s\nScores:

b.sno,b.name);

for(i=0;

3;

%6.2f"

b.__3__);

{structstudents={10001,"

95,80,88};

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1