四川省计算机二级C语言试题和答案.docx

上传人:b****0 文档编号:8976461 上传时间:2023-05-16 格式:DOCX 页数:19 大小:18.90KB
下载 相关 举报
四川省计算机二级C语言试题和答案.docx_第1页
第1页 / 共19页
四川省计算机二级C语言试题和答案.docx_第2页
第2页 / 共19页
四川省计算机二级C语言试题和答案.docx_第3页
第3页 / 共19页
四川省计算机二级C语言试题和答案.docx_第4页
第4页 / 共19页
四川省计算机二级C语言试题和答案.docx_第5页
第5页 / 共19页
四川省计算机二级C语言试题和答案.docx_第6页
第6页 / 共19页
四川省计算机二级C语言试题和答案.docx_第7页
第7页 / 共19页
四川省计算机二级C语言试题和答案.docx_第8页
第8页 / 共19页
四川省计算机二级C语言试题和答案.docx_第9页
第9页 / 共19页
四川省计算机二级C语言试题和答案.docx_第10页
第10页 / 共19页
四川省计算机二级C语言试题和答案.docx_第11页
第11页 / 共19页
四川省计算机二级C语言试题和答案.docx_第12页
第12页 / 共19页
四川省计算机二级C语言试题和答案.docx_第13页
第13页 / 共19页
四川省计算机二级C语言试题和答案.docx_第14页
第14页 / 共19页
四川省计算机二级C语言试题和答案.docx_第15页
第15页 / 共19页
四川省计算机二级C语言试题和答案.docx_第16页
第16页 / 共19页
四川省计算机二级C语言试题和答案.docx_第17页
第17页 / 共19页
四川省计算机二级C语言试题和答案.docx_第18页
第18页 / 共19页
四川省计算机二级C语言试题和答案.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

四川省计算机二级C语言试题和答案.docx

《四川省计算机二级C语言试题和答案.docx》由会员分享,可在线阅读,更多相关《四川省计算机二级C语言试题和答案.docx(19页珍藏版)》请在冰点文库上搜索。

四川省计算机二级C语言试题和答案.docx

四川省计算机二级C语言试题和答案

32

(第一套)

(60分钟)

一、程序调试题(文件名为test1-1.c)(40分)

在main函数中分别输入两个字符串s和t,调用fun函数,并将结果输出到屏幕和文本文件test1-1.txt中。

函数fun的功能是:

找出字符串s中,在s和t中都出现过的字符,并将其放入字符串p中。

例如:

假设字符串s为“abcdaef”,字符串t为“catbrd”,则输出“abcda”。

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

注意:

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

一、程序调试题(文件名为test1-1.c)(40分)

#include

voidfun(char*s,char*t,charp)/*改为:

char*p*/

{

inti,j,k=0;

for(i=0;s[i]!

='\0';i++)

{

for(j=0;t[j]!

='\0';j++)

if(s[i]==t[i])/*改为:

t[j]*/

{p[k]=s[i];

k++;

break;

}

}

p[k-1]='\0';/*改为:

p[k]*/

}

voidmain()

{

FILE*fp;

chars[80],t[80],p[80];

if((fp=fopen("test1-1.txt","r"))==NULL)/*改为:

w*/

{

printf("Cannotopenthefile.\n");

exit(0);

}

gets(s);

gets(t);

fun(s,t,p);

printf("Result:

\n");

puts(p);

fputc(p,fp);/*改为:

fputs*/

fclose(fp);

}

二、编写程序(程序文件名命为test1-2.c)(60分)

(1)请编写函数fun,它的功能是:

求两个整数x和y的最大公约数,最大公约数作为函数值返回。

(2)在main函数中输入三个整数,通过调用fun函数求出三个数的最大公约数,并输出结果。

参考程序:

#include

intfun(intx,inty)

{

intt;

while(y!

=0)

{

t=x%y;

x=y;

y=t;

}

returnx;

}

voidmain()

{

inta,b,c,d;

printf("Input3numbers:

\n");

scanf("%d%d%d",&a,&b,&c);

d=fun(a,fun(b,c));

printf("Result=%d\n",d);

}

 

(第二套)

(60分钟)

一、程序调试题(文件名为test2-1.c)(40分)

fun函数功能是在一个字符串,根据给定的插入位置i,插入一个指定的字符ch。

如果i超过了字符串的长度,则将字符ch添加到字符串的末尾。

在main函数中,输入一个字符串、插入位置和要插入的一个字符,调用函数fun,最后将插入后的结果输出到屏幕和文件test1-2.dat中。

例如输入abcdefg字符串,给定插入位置为3,插入字符为A。

则输出结果为:

abcAdefg。

若给定的插入位置为20,则输出结果为:

abcdefgA。

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

注意:

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

一、程序调试题(文件名为test2-1.c)(40分)

#include

#include

#include

#defineN80

charinsert(charstr,inti,charch)/*改为:

char*str*/

{

intj,len;

len=strlen(str);

if(i>len)/*改为:

i

{

for(j=len-1;j>=i;j++)/*改为:

j--*/

str[j+1]=str[j];

str[i]=ch;

str[len]='\0';/*改为:

len+1*/

}

else

{

i=len;

str[i]=ch;

str[len+1]='\0';

}

}

voidmain()

{

charstr[81],ch;

inti;

FILE*fp;

fp=fopen("test1-2.dat","r");/*改为:

w*/

if(fp==NULL)

{

printf("filecannotopen!

\n");

exit(0);

}

printf("Inputastring:

");

gets(str);

printf("Inputinsertpositionandcharacter:

");

scanf("%d,%c",&i,&ch);

insert(str,i,ch);

printf("%s\n",str);

fprintf(fp,"%s\n",str);

fclose(fp);

}

二、编写程序(程序文件名命名为test2-2.c)(60分)

(1)编写函数fun,该函数的功能是:

求出整型数组a中N个数的平均值,并将大于平均值的整数放入数组b中,数组b的个数作为函数值返回。

(2)在main函数中,输入N个整数,调用fun函数,最后输出结果。

参考程序:

#include

#defineN10

intfun(int*a,int*b)

{

inti,j;

doublesum=0,aver;

for(i=0;i

sum=sum+a[i];

aver=sum/N;

for(i=0,j=0;i

if(a[i]>aver)

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

returnj;

}

voidmain()

{

inta[N],b[N],i,k;

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

scanf("%d",&a[i]);

k=fun(a,b);

for(i=0;i

printf("%5d",b[i]);

}

(第三套)

(60分钟)

一、程序调试题(文件名为test3-1.c)(40分)

fun函数的功能是统计M行字符串中最长的字符串,并返回最长字符串的字符个数。

在main函数中,从文件test3-1.dat中输入M行字符串(每行字符串的长度不超过80个字符),调用fun函数,然后输出最长字符串的字符个数。

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

注意:

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

一、程序调试题(文件名为test3-1.c)(40分)

#include

#defineM10

#defineN80

voidmain()

{

intmax,lin,i=0,a[M];

charstr[M][N];

intfun(char[M][N],int*);

FILE*fp;

if((fp=fopen("test3-1.dat","r"))==null)/*改为:

NULL*/

{

printf("Cannotopenfile.\n");

exit(0);

}

while(!

feof(fp))

gets(str[i++],N,fp);/*改为:

fgets*/

fclose(fp);

fun(str,a);/*改为:

max=fun(str,a)*/

printf("max=%d\n",max);

}

intfun(charstr[][N],inta[])

{

inti,j=0,max;

for(i=0;i

{

while(str[i][j])j++;

a[i]=i;/*改为:

a[i]=j*/

j=0;

}

max=a[0];

for(i=1;i

if(a[i]>max)

max=a[i];

return;/*改为:

returnmax*/

}

二、编写程序(程序文件名命名为test3-2.c)(60分)

(1)编写函数fun,其功能是从给定的N个整数中顺序查找一个指定的数,找到则返回该数的位置,否则返回-1。

(2)在main函数中输入N个整数和需要查找的数,调用fun函数,若返回值大于等于0则输出该数以及该数在数组中的位置,否则输出-1。

参考程序:

#include

#defineN10

intsearch(int*r,intk)

{

intt;

for(t=0;t

if(k==r[t])

returnt;

return-1;

}

voidmain()

{

inta[30],s;

inti,k;

printf("Enter%dnumbers:

",N);

for(i=0;i

scanf("%d",&a[i]);

printf("Findwhat:

");

scanf("%d",&s);

k=search(a,s);

if(k==-1)

printf("Searchingfailed!

\n");

else

printf("Positionis%d.\n",k+1);

}

 

(第四套)

(60分钟)

一、程序调试题(文件名为test4-1.c)(40分)

fun函数的功能是:

将字符串s中的数字字符取出,转换成一个整数,整数作为函数值返回。

例如:

字符串为“ab12CD34”,则取出数字字符转换成整数1234。

在main函数中调用fun函数,并将转换后的结果写到文本文件test4-1.dat中。

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

注意:

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

一、程序调试题(文件名为test4-1.c)(40分)

#defineN20

#include

intfun(chars)/*改为:

char*s*/

{

inti,t=0;

for(i=0;s[i]!

='\0';i++)

if(s[i]>='0'||s[i]<='9')/*改为:

&&*/

t=t*10+s[i];/*改为:

t=t*10+s[i]-'0'*/

returnt;

}

voidmain()

{

chars[20];

intt;

file*fp;/*改为:

FILE*/

if((fp=fopen("test4-1.dat","w"))==NULL)

{

printf("Cannotopenfile!

\n");

exit(0);

}

gets(s);

t=fun(s);

printf("t=%d\n",t);

fprintf("t=%d\n",t);/*改为:

fp,"t=%d\n",t*/

fclose(fp);

}

二、编写程序(程序文件名命名为test4-2.c)(60分)

(1)编写fun函数,其功能是对长度为N的字符串中的N个元素进行从大到小冒泡排序。

(2)在main函数中输入一个长度为N的字符串,调用fun函数,然后输出排序后的结果。

参考程序:

#include

#include

#defineN80

voidsort(char*r)

{

inta,b,t,len;

len=strlen(r);

for(a=1;a

for(b=0;b

if(r[b]

{

t=r[b];

r[b]=r[b+1];

r[b+1]=t;

}

}

voidmain()

{

charstr[N];

printf("Enterastring:

");

scanf("%s",str);

sort(str);

printf("Resultis:

%s\n",str);

}

(第五套)(60分钟)

一、程序调试题(文件名为test5-1.c)(40分)

在main函数中,从文本文件test5-1.dat中读出N个数,调用fun函数,统计其中素数的个数,并在main函数中输出其素数的个数及其所有素数。

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

注意:

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

一、程序调试题(文件名为test5-1.c)(40分)

#include

#defineN10

intfun(int*a,intc[])

{

inti,j,k=0;

for(i=0;i

{

for(j=2;j<=*(a+i)/2;j++)

if(*(a+i)/j==0)break;/*改为:

*(a+i)%j*/

if(j<*(a+i)/2)/*改为:

j>*(a+i)/2*/

{

c[k]=a+i;/*改为:

*(a+i)*/

k++;

}

}

returnk;

}

voidmain()

{

inta[N],c[N],cnt,i;

FILE*fp;

fp=fopen(test5-1.dat,"r");/*改为:

"test5-1.dat"*/

if(fp==NULL)

{

printf("Cannotopenfile!

\n");

exit(0);

}

for(i=0;i

fscanf("%d",a+i,fp);/*改为:

fp,"%d",a+i*/

cnt=fun(a,c);

printf("amount:

%4d\n",cnt);

printf("primenumber:

");

for(i=0;i

printf("%4d",c[i]);

}

二、编写程序(程序文件名命名为test5-2.c)(60分)

(1)编写函数fun,其功能是:

将一个N×N的二维数组进行转置,转置以后的结果仍然存放在原来的二维数组中。

(2)在main函数中按如下数据对一个二维数组a进行初始化,输出原始数组,调用fun函数,输出转置后的数组。

原始数据1234转置后的数据1357

34562468

56673569

78904670

参考程序:

#include

#defineN4

voidconvert(inta[][N])

{

inti,j,t;

for(j=0;j

for(i=j+1;i

{

t=a[i][j];

a[i][j]=a[j][i];

a[j][i]=t;

}

}

voidmain()

{

inti,j;

inta[N][N]={{1,2,3,4},{3,4,5,6},{5,6,6,7},{7,8,9,0}};

printf("Beforeconvert:

\n");

for(i=0;i

{for(j=0;j

printf("%4d",a[i][j]);

printf("\n");

}

convert(a);

printf("Afterconvert:

\n");

for(i=0;i

{for(j=0;j

printf("%4d",a[i][j]);

printf("\n");

}

}

(第六套)(60分钟)

一、程序调试题(文件名为test6-1.c)(40分)

fun函数的功能是:

将一个字符串中连续的数字串转换成一个整数,依次存放在数组a中,并统计该字符串中共有多少个整数。

在main函数中从test6-1.dat中读入一个字符串,调用fun函数,然后输出字符串中的所有整数。

例如,如读入的字符串为“wd123er34gdfk”,则输出的整数为123和34。

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

注意:

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

一、程序调试题(文件名为test6-1.c)(40分)

#defineN80

#include

intfun(charp,inta[])/*改为:

char*p*/

{

inti=0,j=0,flag=0,val=0,d;

while((p+i)!

='\0')/*改为:

*(p+i)*/

{

if(*(p+i)<'0'&&*(p+i)>'9')/*改为:

||*/

{

if(flag)

a[j++]=val;

flag=val=0;

}

else

{

d=*(p+i)-48;

val=val+10+d;/*改为:

*10*/

flag=1;

}

i++;

}

if(*(p+i)=='\0'&&flag)

a[j++]=val;

returnj;

}

voidmain()

{

charstr[N];

inta[N],n,i;

FILE*fp;

if((fp=fopen("test6-1.dat","r"))==NULL)

{

printf("Cannotopenthefile!

\n");

exit(0);

}

fgets(fp,str,N-1);/*改为:

str,N-1,fp*/

fclose(fp);

n=fun(str,a);

for(i=0;i

printf("%d\n",a[i]);

printf("\nsumto%ddata.\n",n);

}

二、编写程序(程序文件名命名为test6-2.c)(60分)

(1)编写fun函数,其功能是将N个数按如下规律输出。

例如输入:

1,2,3,4,fun函数输出:

4123

3412

2341

1234

(2)在main函数中输入N个数,调用函数fun。

参考程序:

#include

#defineN4

voidfun(inta[])

{

inti,j,k,m;

for(i=N;i>0;i--)

{

k=a[N-1];

for(j=N-1;j>0;j--)

a[j]=a[j-1];

a[0]=k;

for(m=0;m

printf("%3d",a[m]);

printf("\n");

}

}

voidmain()

{

inti,a[N];

printf("Enter%dnumber:

",N);

for(i=0;i

scanf("%d",&a[i]);

fun(a);

}

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2