小學(xué)教育四川省計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言機(jī)試題第二十八次文檔_第1頁(yè)
小學(xué)教育四川省計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言機(jī)試題第二十八次文檔_第2頁(yè)
小學(xué)教育四川省計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言機(jī)試題第二十八次文檔_第3頁(yè)
小學(xué)教育四川省計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言機(jī)試題第二十八次文檔_第4頁(yè)
小學(xué)教育四川省計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言機(jī)試題第二十八次文檔_第5頁(yè)
已閱讀5頁(yè),還剩71頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

/四川省計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言機(jī)試題(第二十八次)2009-11-0616:45四川省計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言機(jī)試題(第二十八次)

2009-03-2916:44:17

(第一套)(60分鐘)一、程序調(diào)試題(40分)磁盤上有一C程序test1-1.c,其功能是:將具有N個(gè)元素的數(shù)組的后m個(gè)元素移到前m個(gè)位置。例如,若輸入m=3,數(shù)組元素為:12345678910,則輸出結(jié)果為:89101234567。要求將結(jié)果顯示在屏幕上并寫入文件test1-1.dat中。請(qǐng)更改程序中的錯(cuò)誤,使程序能得出正確結(jié)果。注意:不得增行或刪行,也不得更改程序結(jié)構(gòu)。源程序如下:

#include"stdio.h"

#defineN10

voidmain()

{inta[N],k,m,r,*t;

FILE*fp;

fp=fopen(test1-1.dat,"w");

if(fp==NULL)

{printf("notopen!\n");

exit(0);

}

printf("\nInputm:");

scanf("%d",m);

printf("\nInput10numbers:\n");

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

scanf("%d",a);

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

{t=a[N-1];

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

a[k]=a[k-1];

a[k]=t;

}

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

{printf("%4d",a[k]);

fprintf(fp,"%4d",a[k]);

}

fclose(fp);

}二、編寫程序test1-2.c(60分)編寫函數(shù)fun,函數(shù)fun的功能是:求出滿足“百位減十位等于個(gè)位”的所有三位整數(shù),并按降序存入形參數(shù)組a中,滿足條件下的三位數(shù)總個(gè)數(shù)作為函數(shù)值返回。main函數(shù)中調(diào)用函數(shù)fun,并按一行5個(gè)數(shù)輸出結(jié)果。(第二套)(60分鐘)一、程序調(diào)試題(40分)磁盤上有一個(gè)名為test2-1.c的C程序,其功能是將一個(gè)文本文件test2-1.in逐行逆置復(fù)制到另一個(gè)文件test2-1.out中。test2-1.out文件名在命令行中給出。請(qǐng)改正程序中的錯(cuò)誤,使程序能得出正確的結(jié)果。注意:不得增行或刪行,也不得更改程序結(jié)構(gòu)。源程序如下:#include"stdio.h"

#include"conio.h"

voidrev(void);

FILE*f1,*f2;

voidmain(intargc,char*argv[])

{charch;

if(argc>2)

{printf("paramelersmissing!\n");

exit(0);

}

if((f1=fopen(*argv[1],"w"))==NULL)

{printf("cannotopenfile1!\n");

exit(0);

}

if((f2=fopen("test2-1.in","r"))==NULL)

{printf("cannotopenfile2!\n");

exit(0);

}

while(!feof(f2))

{voidrev();

fputc('\n',f1);

}

fclose(f1);

fclose(f2);

}

voidrev(void)

{charc;

if(!feof(f2)||((c=fgetc(f2))!='\n'))

{rev();

fputc(c,f2);

}

}二、編寫程序test2-2.c(60分)從鍵盤上輸入整數(shù)m和k,將大于且緊靠m的k個(gè)素?cái)?shù)存入數(shù)組xx中,將結(jié)果顯示在屏幕上。要求:(1)在num函數(shù)中完成找出緊靠m的k個(gè)素?cái)?shù),并存入數(shù)組xx中。函數(shù)num的定義形式為:voidnum(intm,intk,intxx[])(2)main函數(shù)完成數(shù)據(jù)的輸入和輸出。(第三套)(60分鐘)一、程序調(diào)試題(40分)磁盤上有一個(gè)名為test3-1.c的C程序文件,其中函數(shù)fun的功能是:找出被2、3、5整除時(shí)余數(shù)均為1的最小的10個(gè)自然數(shù),并存放到一個(gè)整型數(shù)組中。在main函數(shù)中調(diào)用函數(shù)fun,輸出最后結(jié)果,并將結(jié)果輸出到文本文件test3-1.txt中。請(qǐng)改正程序中的錯(cuò)誤,使其能得到正確的結(jié)果。注意:不得增行或刪行,也不得更改程序結(jié)構(gòu)。源程序如下:#include<stdio.h>

voidfun(inta[])

{

inti;

intcnt=0;

for(i=1;cnt<10;i++)

if(i%2==1||i%3==1||i%5==1)

{a[cnt]=i;

cnt++;

}

}

voidmain()

{

inta[10];

inti;

FILE*fp;

if((fp=fopen("test3-1.txt","w"))==null)

{printf("Cannotopenthefile.\n");

exit(0);

}

fun();

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

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

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

}

fclose(fp);

}二、編寫程序test3-2.c(60分)按要求編寫程序:(1)編寫函數(shù)fun,其功能是:統(tǒng)計(jì)形參s所指字符串中數(shù)字字符出現(xiàn)的次數(shù),并存放在形參t所指的變量中。例如:形參s所指字符串為:abcdef35agd3khe7,則數(shù)字出現(xiàn)的次數(shù)為4次。(2)在main函數(shù)中,從已有文件test3-2.in中讀出一行字符(字符個(gè)數(shù)不超過(guò)80個(gè))到字符數(shù)組str中,調(diào)用函數(shù)fun,統(tǒng)計(jì)出數(shù)字出現(xiàn)的次數(shù),并在屏幕上輸出結(jié)果。四川省計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言機(jī)試題(第二十七次)2009-11-0616:46四川省計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言機(jī)試題(第二十七次)

2009-03-2916:43:11

(第一套)(60分鐘)一、程序調(diào)試題(40分)磁盤上有一個(gè)名為test1-1.c的C程序,其功能是:利用折半查找法查找整數(shù)m在含有N個(gè)有序整數(shù)的一維數(shù)組中的位置。若找到,則返回其下標(biāo),反之,則返回-1。請(qǐng)更改程序中的錯(cuò)誤,使之能輸出正確結(jié)果。注意:不得增行或刪行,也不得更改程序結(jié)構(gòu)。源程序如下:#include"stdio.h"

#defineN10

voidfun(inta[],intm)

{intlow=0,high=N-1,mid;

while(low<=high)

{mid=(low+high)%2;

if(m<a[mid])

high=mid-1;

elseif(m>a[mid])

low=mid+1;

else

return;

}

return-1;

}

voidmain()

{

inti,a[]={-3,4,7,9,11,13,45,60,66,70},k,m;

printf("\narraya:\n");

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

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

printf("\n\nEnterm:\n");

scanf("%d",m);

k=fun(a[N],m);

if(k>=0)

printf("m=%d,index=%d\n",m,k);

else

printf("Notbefound!\n");

}二、編寫程序test1-2.c(60分)

用指針編程實(shí)現(xiàn):將用戶輸入的由數(shù)字字符和非數(shù)字字符組成的字符串(字符個(gè)數(shù)不超過(guò)256個(gè))中的數(shù)字提取出來(lái),例如:輸入“asd123rt456,lg789”,則提取的數(shù)字分別是123、456和789。將結(jié)果顯示在屏幕上,同時(shí)輸出到文件test1-2.dat中(要求每個(gè)數(shù)字一行)。(第二套)(60分鐘)一、程序調(diào)試題(40分)磁盤上有一個(gè)名為test2-1.c的C程序,其功能是統(tǒng)計(jì)字符串中大寫字母的個(gè)數(shù)。在main函數(shù)中輸入一個(gè)字符串(字符個(gè)數(shù)不超過(guò)80個(gè)),并輸出統(tǒng)計(jì)結(jié)果。在UpperNum()函數(shù)中統(tǒng)計(jì)字符串str中的大寫字母?jìng)€(gè)數(shù),并作為函數(shù)值返回。注意:不得增行或刪行,也不得更改程序結(jié)構(gòu)。源程序如下:#include"stdio.h"

#include"ctype.h"

intUpperNum(charstr[])

{

intn,i=0;

while((str+i))

{

if(isupper(str[i]))

n++;

i++;

}

returni;

}

voidmain()

{

charstr[];

printf("\nInputastring:\n");

gets(str);

printf("\nTheNumberofUpperLetteris:%d\n",UpperNum(str[]));

}二、編寫程序test2-2.c(60分)按要求編寫程序:(1)編寫一個(gè)字符串比較函數(shù)mystrcpy,其功能是:對(duì)兩個(gè)字符串進(jìn)行比較,若這兩個(gè)字符串相等,則返回0,若這兩個(gè)字符串不等,則返回它們第一個(gè)不同字符的ASCII碼之差。(2)編寫main函數(shù):從文件test2-2.dat中讀兩個(gè)字符串分別賦給兩個(gè)一維字符數(shù)組,調(diào)用mystrcpy函數(shù),輸出比較結(jié)果。(第三套)(60分鐘)一、程序調(diào)試題(40分)磁盤上有一個(gè)名為test3-1.c的C程序文件,其功能是:從鍵盤上輸入一個(gè)100~1000之間的數(shù),找出其中三位數(shù)字相等的所有整數(shù)并輸出。請(qǐng)改正程序中的錯(cuò)誤。注意:不得增行或刪行,也不得更改程序結(jié)構(gòu)。源程序如下:#include"stdio.h"

#defineN100

intfun(ints,intn)

{inti,j,k,a,b,c;

j=0;

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

{

k=j;

a=k%10;

k/=10;

b=k%10;

k/=10;

c=k;

if(a==b||a==c)

s[j++]=i;

}

returni;

}

voidmain()

{

inta[N],n,num=0,i;

do

{printf("Entern(100~1000):\n\n");

scanf("%d",&n);

}while(n>1000)

num=fun(a,n);

printf("\n\nTheresult:\n");

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

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

printf("\n");

}二、編寫程序test3-2.c(60分)按要求編寫程序:(1)編寫函數(shù)fun,其功能是:統(tǒng)計(jì)形參s所指字符串中數(shù)字字符出現(xiàn)的次數(shù),并存放在形參t所指的變量中。例如:形參s所指字符串為:abcdef35agd3khe7,則數(shù)字出現(xiàn)的次數(shù)為4次。(2)在main函數(shù)中,從已有文件test3-2.in中讀出一行字符(字符個(gè)數(shù)不超過(guò)80個(gè))到字符數(shù)組str中,調(diào)用函數(shù)fun,統(tǒng)計(jì)出數(shù)字出現(xiàn)的次數(shù),并在屏幕上輸出結(jié)果。(第四套)(60分鐘)一、程序調(diào)試題(40分)給定程序test4-1.c,其功能是:輸入一個(gè)整數(shù)k(2<=k<=10000),輸出它的所有質(zhì)因子(即所有為素?cái)?shù)的因子)。例如,若輸入2310,則輸出2、3、5、7、11。請(qǐng)改正程序中的錯(cuò)誤,使程序能得出正確結(jié)果。注意:不得增行或刪行,也不得更改程序結(jié)構(gòu)。源程序如下:#include"stdio.h"

intfun1(int*n)

{

inti;

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

if!(n%i)

return0;

return;

}

voidmain()

{

intj,k;

printf("\nPleaseenteraintegernumber2~10000:");

scanf("%d",k);

printf("\nTheprimefactor(s)of%dis(are):",k);

for(j=2;j<=k;j++)

if(!(k%j)&&fun1(j))

printf("\n%4d",j);

printf("\n");

}二、編寫程序test4-2.c(60分)磁盤上已有文件test4-2.dat,文件中有3個(gè)字符串,請(qǐng)將3個(gè)字符串中的小寫字母全部轉(zhuǎn)換為大寫字母,然后將轉(zhuǎn)換后的結(jié)果輸出到屏幕上。要求:定義convert函數(shù),用于實(shí)現(xiàn)小寫字母轉(zhuǎn)換成大寫字母。在main函數(shù)中完成文件夾的打開和讀數(shù)據(jù),調(diào)用convert函數(shù),輸出轉(zhuǎn)換后的結(jié)果。(第五套)(60分鐘)一、程序調(diào)試題(40分)給定程序test5-1.c,其功能是:求出數(shù)組中值最大的元素在數(shù)組中的下標(biāo),并將最大值增添在數(shù)組的最后。例如,數(shù)組中的數(shù)據(jù)為:876675896101301401980431451777輸出結(jié)果如下:Theindexofmaxis:6Theresult:876675896101301401980431451777980請(qǐng)改正程序中的錯(cuò)誤,使程序能得出正確結(jié)果。、注意:不得增行或刪行,也不得更改程序結(jié)構(gòu)。源程序如下:#include"stdio.h"

#defineN80

voidfun(int*s,int*t,intk)

{

inti,m;

*k=0;

m=*s;

for(i=1;i<(*t-1);i++)

if(m<s+i)

{

m=*(s+i);

*k=i;

}

s[i+1]=m;

*t++;

}

voidmain()

{

inta[N]={876,675,896,101,301,401,980,431,451,777};

inti,n=10,mi;

fun(a[N],&n,&mi);

printf("Theindexofmaxis:%d\n",mi);

printf("Theresult:\n");

for(i=0;i<n;i++)printf("%4d",a);

}二、編寫程序test5-2.c(60分)用函數(shù)調(diào)用方式編寫程序。要求實(shí)現(xiàn):(1)編寫fun函數(shù),其功能是計(jì)算并比較兩個(gè)字符串的長(zhǎng)度(要求不得使用標(biāo)準(zhǔn)庫(kù)函數(shù)strlen),返回較長(zhǎng)字符串的指針。若兩個(gè)字符串長(zhǎng)度相等,則返回第一個(gè)字符串的指針。(2)編寫main函數(shù),在其中輸入兩個(gè)字符串,打開文件test5-2.dat,將fun函數(shù)計(jì)算出的兩個(gè)字符串長(zhǎng)度和返回結(jié)果分別顯示在屏幕上,同時(shí)寫入到文件test5-2.dat中。四川省計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言機(jī)試題(第二十八次)2009-11-0616:45四川省計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言機(jī)試題(第二十八次)

2009-03-2916:44:17

(第一套)(60分鐘)一、程序調(diào)試題(40分)磁盤上有一C程序test1-1.c,其功能是:將具有N個(gè)元素的數(shù)組的后m個(gè)元素移到前m個(gè)位置。例如,若輸入m=3,數(shù)組元素為:12345678910,則輸出結(jié)果為:89101234567。要求將結(jié)果顯示在屏幕上并寫入文件test1-1.dat中。請(qǐng)更改程序中的錯(cuò)誤,使程序能得出正確結(jié)果。注意:不得增行或刪行,也不得更改程序結(jié)構(gòu)。源程序如下:

#include"stdio.h"

#defineN10

voidmain()

{inta[N],k,m,r,*t;

FILE*fp;

fp=fopen(test1-1.dat,"w");

if(fp==NULL)

{printf("notopen!\n");

exit(0);

}

printf("\nInputm:");

scanf("%d",m);

printf("\nInput10numbers:\n");

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

scanf("%d",a);

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

{t=a[N-1];

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

a[k]=a[k-1];

a[k]=t;

}

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

{printf("%4d",a[k]);

fprintf(fp,"%4d",a[k]);

}

fclose(fp);

}二、編寫程序test1-2.c(60分)編寫函數(shù)fun,函數(shù)fun的功能是:求出滿足“百位減十位等于個(gè)位”的所有三位整數(shù),并按降序存入形參數(shù)組a中,滿足條件下的三位數(shù)總個(gè)數(shù)作為函數(shù)值返回。main函數(shù)中調(diào)用函數(shù)fun,并按一行5個(gè)數(shù)輸出結(jié)果。(第二套)(60分鐘)一、程序調(diào)試題(40分)磁盤上有一個(gè)名為test2-1.c的C程序,其功能是將一個(gè)文本文件test2-1.in逐行逆置復(fù)制到另一個(gè)文件test2-1.out中。test2-1.out文件名在命令行中給出。請(qǐng)改正程序中的錯(cuò)誤,使程序能得出正確的結(jié)果。注意:不得增行或刪行,也不得更改程序結(jié)構(gòu)。源程序如下:#include"stdio.h"

#include"conio.h"

voidrev(void);

FILE*f1,*f2;

voidmain(intargc,char*argv[])

{charch;

if(argc>2)

{printf("paramelersmissing!\n");

exit(0);

}

if((f1=fopen(*argv[1],"w"))==NULL)

{printf("cannotopenfile1!\n");

exit(0);

}

if((f2=fopen("test2-1.in","r"))==NULL)

{printf("cannotopenfile2!\n");

exit(0);

}

while(!feof(f2))

{voidrev();

fputc('\n',f1);

}

fclose(f1);

fclose(f2);

}

voidrev(void)

{charc;

if(!feof(f2)||((c=fgetc(f2))!='\n'))

{rev();

fputc(c,f2);

}

}二、編寫程序test2-2.c(60分)從鍵盤上輸入整數(shù)m和k,將大于且緊靠m的k個(gè)素?cái)?shù)存入數(shù)組xx中,將結(jié)果顯示在屏幕上。要求:(1)在num函數(shù)中完成找出緊靠m的k個(gè)素?cái)?shù),并存入數(shù)組xx中。函數(shù)num的定義形式為:voidnum(intm,intk,intxx[])(2)main函數(shù)完成數(shù)據(jù)的輸入和輸出。(第三套)(60分鐘)一、程序調(diào)試題(40分)磁盤上有一個(gè)名為test3-1.c的C程序文件,其中函數(shù)fun的功能是:找出被2、3、5整除時(shí)余數(shù)均為1的最小的10個(gè)自然數(shù),并存放到一個(gè)整型數(shù)組中。在main函數(shù)中調(diào)用函數(shù)fun,輸出最后結(jié)果,并將結(jié)果輸出到文本文件test3-1.txt中。請(qǐng)改正程序中的錯(cuò)誤,使其能得到正確的結(jié)果。注意:不得增行或刪行,也不得更改程序結(jié)構(gòu)。源程序如下:#include<stdio.h>

voidfun(inta[])

{

inti;

intcnt=0;

for(i=1;cnt<10;i++)

if(i%2==1||i%3==1||i%5==1)

{a[cnt]=i;

cnt++;

}

}

voidmain()

{

inta[10];

inti;

FILE*fp;

if((fp=fopen("test3-1.txt","w"))==null)

{printf("Cannotopenthefile.\n");

exit(0);

}

fun();

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

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

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

}

fclose(fp);

}二、編寫程序test3-2.c(60分)按要求編寫程序:(1)編寫函數(shù)fun,其功能是:統(tǒng)計(jì)形參s所指字符串中數(shù)字字符出現(xiàn)的次數(shù),并存放在形參t所指的變量中。例如:形參s所指字符串為:abcdef35agd3khe7,則數(shù)字出現(xiàn)的次數(shù)為4次。(2)在main函數(shù)中,從已有文件test3-2.in中讀出一行字符(字符個(gè)數(shù)不超過(guò)80個(gè))到字符數(shù)組str中,調(diào)用函數(shù)fun,統(tǒng)計(jì)出數(shù)字出現(xiàn)的次數(shù),并在屏幕上輸出結(jié)果。四川省計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言機(jī)試題(第二十八次)答案2009-11-0616:48四川省計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言機(jī)試題(第二十八次)答案

2009-03-2916:44:46

28-1套參考答案:一、程序調(diào)試題(文件名為test1-1.c)(40分)#include"stdio.h"

#defineN10

voidmain()

{inta[N],k,m,r,*t;

/*改為:t*/

FILE*fp;

fp=fopen(test1-1.dat,"w");/*改為:"test1-1.dat"*/

if(fp==NULL)

{printf("notopen!\n");

exit(0);

}

printf("\nInputm:");

scanf("%d",m);

/*改為:&m*/

printf("\nInput10numbers:\n");

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

scanf("%d",a);

/*改為:a+k*/

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

{t=a[N-1];

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

a[k]=a[k-1];

a[k]=t;

/*改為:a[0]*/

}

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

{printf("%4d",a[k]);

fprintf(fp,"%4d",a[k]);

}

fclose(fp);

}評(píng)分標(biāo)準(zhǔn):每改對(duì)一處得8分二、編程題(程序文件取名為test1-2.c)(60分)評(píng)分標(biāo)準(zhǔn):1.fun函數(shù)編寫:1)函數(shù)定義正確,能正確的定義和使用返回值

10分

2)參數(shù)定義、傳遞正確

10分3)算法正確,能按要求求出所有滿足條件的二位數(shù)15分2.main函數(shù):1)能正確定義數(shù)組,并能正確進(jìn)行輸出15分2)能正確調(diào)用函數(shù)

10分參考程序:#include<stdio.h>

intfun(inta[])

{inti,j=0;for(i=999;i>=100;i--)

if(i/100-i/10%10==i%10)

{a[j]=i;

j++;

}returnj;}voidmain(){inta[100];inti,n;n=fun(a);for(i=0;i<n;i++){

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

if((i+1)%5==0)printf("\n");}}28-2套參考答案:一、程序調(diào)試題(文件名為test2-1.c)(40分)#include"stdio.h"#include"conio.h"voidrev(void);FILE*f1,*f2;voidmain(intargc,char*argv[]){charch;if(argc>2)

/*改為:<*/{printf("paramelersmissing!\n");

exit(0);}if((f1=fopen(*argv[1],"w"))==NULL)

/*改為:argv[1]*/{printf("cannotopenfile1!\n");

exit(0);}if((f2=fopen("test2-1.in","r"))==NULL){printf("cannotopenfile2!\n");

exit(0);}while(!feof(f2)){voidrev();

/*去掉void*/

fputc('\n',f1);}fclose(f1);fclose(f2);}voidrev(void){charc;if(!feof(f2)||((c=fgetc(f2))!='\n'))

/*||改為:&&*/{rev();

fputc(c,f2);

/*f2改為:f1*/}}評(píng)分標(biāo)準(zhǔn):每改對(duì)一處得8分二、編程題(程序文件取名為test2-2.c)(60分)評(píng)分標(biāo)準(zhǔn):1、輸入、輸出方法正確

10分

2、函數(shù)定義及參數(shù)傳遞正確

10分3、求素?cái)?shù)方法正確

20分

4、將素?cái)?shù)正確存入數(shù)組xx中

10分

5、輸出結(jié)果正確

10分參考程序:#include<stdio.h>voidnum(intm,intk,intxx[]){intdata=m+1;inthalf,n=0,i;while(1){

half=data/2;

for(i=2;i<=half;i++)

if(data%i==0)break;

if(i>half)

xx[n++]=data;

if(n>=k)break;

data++;}}voidmain(){intm,n,xx[10000];printf("Enterm,n:");scanf("%d,%d",&m,&n);num(m,n,xx);for(m=0;m<n;m++)

printf("%d",xx[m]);printf("\n");}28-3套參考答案:一、程序調(diào)試題(文件名為test3-1.c)(40分)#include<stdio.h>voidfun(inta[]){inti;intcnt=0;for(i=1;cnt<10;i++)

/*改為:<=*/

if(i%2==1||i%3==1||i%5==1)/*改為:&&*/

{a[cnt]=i;

cnt++;

}}voidmain(){inta[10];inti;FILE*fp;if((fp=fopen("test3-1.txt","w"))==null)/*改為:NULL*/{printf("Cannotopenthefile.\n");

exit(0);}fun();

/*改為:fun(a)*/for(i=0;i<10;i++){printf("%4d",a[i]);

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

/*改為:fp,"%4d"*/}fclose(fp);}評(píng)分標(biāo)準(zhǔn):每改對(duì)一處得8分二、編程題(程序文件取名為test3-2.c)(60分)評(píng)分標(biāo)準(zhǔn):1.fun函數(shù)編寫40分:1)函數(shù)定義、形參書寫正確、有正確的返回值10分2)能正確的求出最大值和最小值

20分3)能正確的求出平均分10分2.main函數(shù)20分:1)能正確定義實(shí)參一維數(shù)組,并能正確的對(duì)整型數(shù)組進(jìn)行輸入10分2)正確調(diào)用fun函數(shù)并輸出正確結(jié)果10分參考程序:#include<stdio.h>doublefun(inta[],intn){inti,max,min;doubles=0,aver;max=min=a[0];for(i=0;i<n;i++){

s=s+a[i];

if(max<a[i])max=a[i];

elseif(min>a[i])min=a[i];}aver=(s-max-min)/(n-2);returnaver;}voidmain(){inta[100],i,n;doubleaver;printf("Entern(n<100):");scanf("%d",&n);printf("Entera[0]~a[%d]:",n-1);for(i=0;i<n;i++)

scanf("%d",a+i);aver=fun(a,n);printf("aver=%f\n",aver);四川省計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言機(jī)試題(第二十七次)答案2009-11-0616:48四川省計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言機(jī)試題(第二十七次)答案

2009-03-2916:43:50

27-1套參考答案:一、程序調(diào)試題(文件名為test1-1.c)(40分)#include"stdio.h"#defineN10voidfun(inta[],intm)

/*改為:int*/{intlow=0,high=N-1,mid;while(low<=high){mid=(low+high)%2;

/*改為:/

*/

if(m<a[mid])

high=mid-1;

elseif(m>a[mid])

low=mid+1;

else

return;

/*改為:returnmid*/}return-1;}voidmain(){inti,a[]={-3,4,7,9,11,13,45,60,66,70},k,m;printf("\narraya:\n");for(i=0;i<N;i++)

printf("%d,",a[i]);printf("\n\nEnterm:\n");scanf("%d",m);

/*改為:&m*/k=fun(a[N],m);

/*改為:a

*/if(k>=0)

printf("m=%d,index=%d\n",m,k);else

printf("Notbefound!\n");}評(píng)分標(biāo)準(zhǔn):每改對(duì)一處得8分二、編程題(程序文件取名為test1-2.c)(60分)評(píng)分標(biāo)準(zhǔn):1、while循環(huán)編寫正確,數(shù)字提取正確

30分

2、文件打開、關(guān)閉、數(shù)據(jù)寫入正確15分3、指針定義和使用正確

5分

4、屏幕輸出正確

5分

5、程序結(jié)構(gòu)合理

5分參考程序:#include<stdio.h>

#defineLEN256

voidmain()

{charline[LEN],b[20],*ptr1,*ptrb;

intn=0,j,a[50];

FILE*fp;

printf("Pleaseenterthestrings:\n");

gets(line);

ptr1=line;

while(*ptr1!='\0')

{ptrb=b;

for(j=0;*ptr1>='0'&&*ptr1<='9';ptr1++,ptrb++,j++)

*ptrb=*ptr1;

if(j)

{*ptrb='\0';

*(a+n)=atoi(b);

n++;

}

if(*ptr1!='\0')ptr1++;

}

fp=fopen("test1-2.dat","w");

if(fp==NULL)

{printf("Cannotopenfile!\n");

exit(0);

}

printf("Result:\n");

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

{printf("%10d\n",*(a+j));

fprintf(fp,"%10d\n",*(a+j));

}

fclose(fp);

}27-2套參考答案:一、程序調(diào)試題(文件名為test2-1.c)(40分)#include"stdio.h"

#include"ctype.h"

intUpperNum(charstr[])

{

intn,i=0;

/*改為:n=0*/

while((str+i))

/*改為:*(str+i)*/

{

if(isupper(str[i]))

n++;

i++;

}

returni;

/*改為:n*/

}

voidmain()

{

charstr[];

/*改為:str[80]*/

printf("\nInputastring:\n");

gets(str);

printf("\nTheNumberofUpperLetteris:%d\n",UpperNum(str[]));/*改為:str*/

}評(píng)分標(biāo)準(zhǔn):每改對(duì)一處得8分二、編程題(程序文件取名為test2-2.c)(60分)評(píng)分標(biāo)準(zhǔn):1、被調(diào)函數(shù)編寫正確(具體參照程序注釋)(30分)2、文件打開、關(guān)閉、數(shù)據(jù)讀入正確(15分)3、函數(shù)調(diào)用正確(5分)

4、屏幕輸出正確(5分)

5、程序結(jié)構(gòu)合理(5分)參考程序:#include<stdio.h>#include<string.h>intmystrcmp(char*q1,char*q2){intk=0,t;while(*(q1+k)!='\0'||*(q2+k)!='\0')

/*5分*/{if(*(q1+k)!=*(q2+k))

/*10分*/

{t=*(q1+k)-*(q2+k);

break;

}

else

t=0;

/*5分*/

k++;

/*5分*/}returnt;

/*5分*/}voidmain(){FILE*fp;intt;chars1[20],s2[20];fp=fopen("test2-2.dat","r");if(fp==NULL){printf("oepn\n");

exit(0);}fgets(s1,80,fp);fgets(s2,80,fp);puts(s1);puts(s2);t=mystrcmp(s1,s2);printf("\nThecomparingresultofstringsis:%d\n",t);fclose(fp);}27-3套參考答案:一、程序調(diào)試題(文件名為test3-1.c)(40分)#include"stdio.h"#defineN100intfun(ints,intn)

/*改為:*s*/{inti,j,k,a,b,c;j=0;for(i=100;i<=n;i++){

k=j;

/*改為:i*/

a=k%10;

k/=10;

b=k%10;

k/=10;

c=k;

if(a==b||a==c)

/*改為:&&*/

s[j++]=i;}returni;

/*改為:j*/}voidmain(){inta[N],n,num=0,i;do{printf("Entern(100~1000):\n\n");

scanf("%d",&n);}while(n>1000)

/*改為:while(n>1000);*/num=fun(a,n);printf("\n\nTheresult:\n");for(i=0;i<num;i++)

printf("%5d",a[i]);printf("\n");}評(píng)分標(biāo)準(zhǔn):每改對(duì)一處得8分二、編程題(程序文件取名為test3-2.c)(60分)評(píng)分標(biāo)準(zhǔn):1、被調(diào)函數(shù)編寫正確(具體參照程序注釋)(30分)2、文件打開、關(guān)閉、數(shù)據(jù)讀入正確(15分)3、函數(shù)調(diào)用正確(5分)

4、屏幕輸出正確(5分)

5、程序結(jié)構(gòu)合理(5分)參考程序:#include<stdio.h>voidfun(char*s,int*t)/*函數(shù)定義、形參書寫正確10分*/{inti;*t=0;

/*5分*/for(i=0;*(s+i)!='\0';i++)

/*算法正確,指針使用正確15分*/

if(*(s+i)>='0'&&*(s+i)<='9')(*t)++;}voidmain(){charstr[80];FILE*fp;inti=0,count;if((fp=fopen("test3-2.in","r"))==NULL){printf("Cannotopenfile!\n");

exit(0);}while(!feof(fp)){str[i]=fgetc(fp);

i++;}str[i]='\0';fclose(fp);fun(str,&count);printf("Count=%d\n",count);}第27-4套參考答案一、程序調(diào)試題(文件名為test4-1.c)(40分)#include"stdio.h"intfun1(int*n)

/*改為:n*/{inti;for(i=2;i<=n;i++)

/*改為:<*/

if!(n%i)

/*改為:(!(n%i))*/

return0;return;

/*改為:return1*/}voidmain(){intj,k;printf("\nPleaseenteraintegernumber2~10000:");scanf("%d",k);

/*改為:&k*/printf("\nTheprimefactor(s)of%dis(are):",k);for(j=2;j<=k;j++)

if(!(k%j)&&fun1(j))

printf("\n%4d",j);printf("\n");}評(píng)分標(biāo)準(zhǔn):每改對(duì)一處得8分二、編程題(程序文件取名為test4-2.c)(60分)評(píng)分標(biāo)準(zhǔn):1、被調(diào)函數(shù)編寫正確(具體參照程序注釋)(30分)2、文件打開、關(guān)閉、數(shù)據(jù)讀入正確(15分)3、函數(shù)調(diào)用正確(5分)

4、屏幕輸出正確(5分)

5、程序結(jié)構(gòu)合理(5分)參考程序:#include<stdio.h>voidconvert(charstr[])/*函數(shù)定義、形參書寫正確10分*/{inti=0;while(str[i]!='\0')

/*5分*/{if(str[i]>='a'&&str[i]<='z')/*5分*/

str[i]-=32;

/*5分*/

i++;

/*5分*/}}voidmain(){FILE*fp;charstr[100];if((fp=fopen("test4-2.dat","r"))==NULL){printf("Cannotopenfile!\n");

exit(0);}while(!feof(fp)){fgets(str,81,fp);

convert(str);

puts(str);}fclose(fp);}第27-5套參考答案一、程序調(diào)試題(文件名為test5-1.c)(40分)#include"stdio.h"#defineN80voidfun(int*s,int*t,intk)

/*改為:*k*/{inti,m;*k=0;m=*s;for(i=1;i<(*t-1);i++)

if(m<s+i)

/*改為:*(s+i)*/

{

m=*(s+i);

*k=i;

}s[i+1]=m;*t++;

/*改為:(*t)*/}voidmain(){inta[N]={876,675,896,101,301,401,980,431,451,777};inti,n=10,mi;fun(a[N],&n,&mi);

/*改為:a*/printf("Theindexofmaxis:%d\n",mi);printf("Theresult:\n");for(i=0;i<n;i++)printf("%4d",a);

/*改為:a[i]*/}評(píng)分標(biāo)準(zhǔn):每改對(duì)一處得8分二、編程題(程序文件取名為test4-2.c)(60分)評(píng)分標(biāo)準(zhǔn):1、被調(diào)函數(shù)編寫正確(具體參照程序注釋)(30分)2、文件打開、關(guān)閉、數(shù)據(jù)讀入正確(15分)3、函數(shù)調(diào)用正確(5分)

4、屏幕輸出正確(5分)

5、程序結(jié)構(gòu)合理(5分)參考程序:#include<stdio.h>#defineN80char*fun(char*s,char*t)

/*函數(shù)定義、形參書寫正確10分*/{char*p,*ss,*tt;ss=s;tt=t;while(*ss){n++;ss++;}

/*5分*/while(*tt){m++;tt++;}

/*5分*/if(n>=m)

/*5分*/

p=s;else

p=t;returnp;

/*5分*/}voidmain(){chara[N],b[N];FILE*fp;printf("Input1thstring:\n");gets(a);printf("Input2thstring:\n");gets(b);fp=fopen("test5-2.dat","w");if(fp==NULL){printf("Cannotopenfile!\n");

exit(0);}printf("Theresultis:%s\n",fun(a,b));printf("Thelengthoftwostringsis:%d,%d\n",n,m);fprintf(fp,"Theresultis:%s\n",fun(a,b));fprintf(fp,"Thelengthoftwostringsis:%d,%d\n",n,m);fclose(fp);}四川省計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言機(jī)試題(第二十六次)答案2009-11-0616:49四川省計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言機(jī)試題(第二十六次)答案

2009-03-2916:42:42

26-1套參考答案:一、程序調(diào)試題(文件名為test1-1.c)(40分)#include<stdio.h>voidselectsort(int*a,intn){inti,j,p,temp;for(i=0;i<n-1;i++){

p=i;

for(j=1;j<n;j++)

/*改為:j=i+1*/

if(a[p]>a[j])

/*改為:<

*/

p=j;

temp=a[p];

a[p]=a[j];

/*改為:a[i]*/

a[j]=temp;

/*改為:a[i]*/}}voidmain(){intx[8],i;for(i=0;i<8;i++)x[i]=rand()%30;selectsort(x[],8);

/*改為:x

*/for(i=0;i<8;i++)

printf("%5d",x[i]);printf("\n");}評(píng)分標(biāo)準(zhǔn):每改對(duì)一處得8分二、編程題(程序文件取名為test1-2.c)(60分)參考程序:#include<stdio.h>#defineMAX10structaa{charname[20];charnumber[20];}s[MAX];intsearch(structaat[],char*st,int*p){intj,flag=0;for*j=0;j<MAX;j++)

if(strcmp(t[j].name,st)==0)

{flag=1;

*n=j;

}returnflag;}voidmain(){charch[20];intI,k=0;FILE*fp;if((fp=fopen("test1-2.txt","r"))==NULL){

printf("cannotopenthefile!\n");

exit(0);}for(i=0;i<MAX;i++)

fscanf(fp,"%s%s",s[i].name,s[i].number);fclose(fp);printf("enteraname\n");gets(ch);if(search(s,ch,&k))

printf("\nthetelnumberis%s\n",s[k].number);else

printf("notfound!\n");}26-2套參考答案:一、程序調(diào)試題(文件名為test2-1.c)(40分)#include<stdio.h>voidmain(){intb[16],x,k,r,i;printf("enterainteger:");scanf("%d",x);

/*改為:&x*/printf("\n%6d'soctavonumberis:",x);k=-1;do{r=x/8;

/*改為:%8*/

k++;

*(b+k)=r;

x%=8;

/*改為:/=8*/}while(x=0);

/*改為:x!=0*/for(i=k;i>=0;i--)

printf("%1d",b+i);

/*改為:*(b+i)或b[i]*/printf("\n");}評(píng)分標(biāo)準(zhǔn):每改對(duì)一處得8分二、編程題(程序文件取名為test2-2.c)(60分)參考程序:#include<stdio.h>#defineN1000voidfun(char*t,inta[]){intI;for(i=0;i<=25;i++)a[i]=0;for(i=0;t[i]!='\0';i++)

if('a'<=t[i]&&t[i]<'z')

a[t[i]-'a']++;}voidmain(){chars[N],ch;intc[26],i=0;FILE*fp;if((fp=fopen("test2-2.txt","r"))==NULL){

printf("cannotopenthefile!\n");

exit(0);}while(!feof(fp)){

s[i]=fgetc(fp);

i++;}fclose(fp);s[i]='\0';fun(s,c);for(i=0;i<=25;i++){printf("%3d",c[i]);

if((i+1)%10==0)

printf("\n\n");}printf("\n");}26-3套參考答案:一、程序調(diào)試題(文件名為test3-1.c)(40分)#include<stdio.h>#include<math.h>voidfun(intm)

/*改為:int*/{inti,j,k;for(i=m;;i++)

/*改為:m+1*/{

j=sqrt(i);

for(k=2;k<=j;k++)

if(i%k!

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論