




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(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分)磁盤(pán)上有一C程序test1-1.c,其功能是:將具有N個(gè)元素的數(shù)組的后m個(gè)元素移到前m個(gè)位置。例如,若輸入m=3,數(shù)組元素為:12345678910,則輸出結(jié)果為:89101234567。要求將結(jié)果顯示在屏幕上并寫(xiě)入文件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);
}二、編寫(xiě)程序test1-2.c(60分)編寫(xiě)函數(shù)fun,函數(shù)fun的功能是:求出滿(mǎn)足“百位減十位等于個(gè)位”的所有三位整數(shù),并按降序存入形參數(shù)組a中,滿(mǎn)足條件下的三位數(shù)總個(gè)數(shù)作為函數(shù)值返回。main函數(shù)中調(diào)用函數(shù)fun,并按一行5個(gè)數(shù)輸出結(jié)果。(第二套)(60分鐘)一、程序調(diào)試題(40分)磁盤(pán)上有一個(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);
}
}二、編寫(xiě)程序test2-2.c(60分)從鍵盤(pán)上輸入整數(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分)磁盤(pán)上有一個(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);
}二、編寫(xiě)程序test3-2.c(60分)按要求編寫(xiě)程序:(1)編寫(xiě)函數(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分)磁盤(pán)上有一個(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");
}二、編寫(xiě)程序test1-2.c(60分)
用指針編程實(shí)現(xiàn):將用戶(hù)輸入的由數(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分)磁盤(pán)上有一個(gè)名為test2-1.c的C程序,其功能是統(tǒng)計(jì)字符串中大寫(xiě)字母的個(gè)數(shù)。在main函數(shù)中輸入一個(gè)字符串(字符個(gè)數(shù)不超過(guò)80個(gè)),并輸出統(tǒng)計(jì)結(jié)果。在UpperNum()函數(shù)中統(tǒng)計(jì)字符串str中的大寫(xiě)字母?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[]));
}二、編寫(xiě)程序test2-2.c(60分)按要求編寫(xiě)程序:(1)編寫(xiě)一個(gè)字符串比較函數(shù)mystrcpy,其功能是:對(duì)兩個(gè)字符串進(jìn)行比較,若這兩個(gè)字符串相等,則返回0,若這兩個(gè)字符串不等,則返回它們第一個(gè)不同字符的ASCII碼之差。(2)編寫(xiě)main函數(shù):從文件test2-2.dat中讀兩個(gè)字符串分別賦給兩個(gè)一維字符數(shù)組,調(diào)用mystrcpy函數(shù),輸出比較結(jié)果。(第三套)(60分鐘)一、程序調(diào)試題(40分)磁盤(pán)上有一個(gè)名為test3-1.c的C程序文件,其功能是:從鍵盤(pán)上輸入一個(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");
}二、編寫(xiě)程序test3-2.c(60分)按要求編寫(xiě)程序:(1)編寫(xiě)函數(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");
}二、編寫(xiě)程序test4-2.c(60分)磁盤(pán)上已有文件test4-2.dat,文件中有3個(gè)字符串,請(qǐng)將3個(gè)字符串中的小寫(xiě)字母全部轉(zhuǎn)換為大寫(xiě)字母,然后將轉(zhuǎn)換后的結(jié)果輸出到屏幕上。要求:定義convert函數(shù),用于實(shí)現(xiàn)小寫(xiě)字母轉(zhuǎn)換成大寫(xiě)字母。在main函數(shù)中完成文件夾的打開(kāi)和讀數(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);
}二、編寫(xiě)程序test5-2.c(60分)用函數(shù)調(diào)用方式編寫(xiě)程序。要求實(shí)現(xiàn):(1)編寫(xiě)fun函數(shù),其功能是計(jì)算并比較兩個(gè)字符串的長(zhǎng)度(要求不得使用標(biāo)準(zhǔn)庫(kù)函數(shù)strlen),返回較長(zhǎng)字符串的指針。若兩個(gè)字符串長(zhǎng)度相等,則返回第一個(gè)字符串的指針。(2)編寫(xiě)main函數(shù),在其中輸入兩個(gè)字符串,打開(kāi)文件test5-2.dat,將fun函數(shù)計(jì)算出的兩個(gè)字符串長(zhǎng)度和返回結(jié)果分別顯示在屏幕上,同時(shí)寫(xiě)入到文件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分)磁盤(pán)上有一C程序test1-1.c,其功能是:將具有N個(gè)元素的數(shù)組的后m個(gè)元素移到前m個(gè)位置。例如,若輸入m=3,數(shù)組元素為:12345678910,則輸出結(jié)果為:89101234567。要求將結(jié)果顯示在屏幕上并寫(xiě)入文件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);
}二、編寫(xiě)程序test1-2.c(60分)編寫(xiě)函數(shù)fun,函數(shù)fun的功能是:求出滿(mǎn)足“百位減十位等于個(gè)位”的所有三位整數(shù),并按降序存入形參數(shù)組a中,滿(mǎn)足條件下的三位數(shù)總個(gè)數(shù)作為函數(shù)值返回。main函數(shù)中調(diào)用函數(shù)fun,并按一行5個(gè)數(shù)輸出結(jié)果。(第二套)(60分鐘)一、程序調(diào)試題(40分)磁盤(pán)上有一個(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);
}
}二、編寫(xiě)程序test2-2.c(60分)從鍵盤(pán)上輸入整數(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分)磁盤(pán)上有一個(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);
}二、編寫(xiě)程序test3-2.c(60分)按要求編寫(xiě)程序:(1)編寫(xiě)函數(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ù)編寫(xiě):1)函數(shù)定義正確,能正確的定義和使用返回值
10分
2)參數(shù)定義、傳遞正確
10分3)算法正確,能按要求求出所有滿(mǎn)足條件的二位數(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ù)編寫(xiě)40分:1)函數(shù)定義、形參書(shū)寫(xiě)正確、有正確的返回值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)編寫(xiě)正確,數(shù)字提取正確
30分
2、文件打開(kāi)、關(guān)閉、數(shù)據(jù)寫(xiě)入正確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ù)編寫(xiě)正確(具體參照程序注釋?zhuān)?0分)2、文件打開(kāi)、關(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ù)編寫(xiě)正確(具體參照程序注釋?zhuān)?0分)2、文件打開(kāi)、關(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ù)定義、形參書(shū)寫(xiě)正確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ù)編寫(xiě)正確(具體參照程序注釋?zhuān)?0分)2、文件打開(kāi)、關(guān)閉、數(shù)據(jù)讀入正確(15分)3、函數(shù)調(diào)用正確(5分)
4、屏幕輸出正確(5分)
5、程序結(jié)構(gòu)合理(5分)參考程序:#include<stdio.h>voidconvert(charstr[])/*函數(shù)定義、形參書(shū)寫(xiě)正確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ù)編寫(xiě)正確(具體參照程序注釋?zhuān)?0分)2、文件打開(kāi)、關(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ù)定義、形參書(shū)寫(xiě)正確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)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年重油催化裂化催化劑項(xiàng)目發(fā)展計(jì)劃
- 2025年度企業(yè)并購(gòu)重組咨詢(xún)顧問(wèn)服務(wù)協(xié)議-@-1
- 2025年鈷粉系列項(xiàng)目發(fā)展計(jì)劃
- 家長(zhǎng)參與小班教育的倡導(dǎo)計(jì)劃
- 實(shí)施有效反饋的工作方法計(jì)劃
- 文化演出活動(dòng)的安保工作總結(jié)計(jì)劃
- 2025年高純四氧化三錳項(xiàng)目發(fā)展計(jì)劃
- 七年級(jí)下冊(cè)《相交線》課件與練習(xí)
- 汽車(chē)尾氣凈化催化轉(zhuǎn)化器安裝要求
- 2025年激光測(cè)距儀、測(cè)向儀項(xiàng)目合作計(jì)劃書(shū)
- 圖像處理技術(shù)在自動(dòng)駕駛中的應(yīng)用
- 爆破工程師培訓(xùn)
- 2024年云南省公務(wù)員考試《行測(cè)》真題及答案解析
- 2024-2025學(xué)年廣東省大灣區(qū)40校高二上學(xué)期聯(lián)考英語(yǔ)試題(含解析)
- 《飛科電器公司盈利能力存在的問(wèn)題及完善對(duì)策(7800字論文)》
- 旅拍店兩人合作協(xié)議書(shū)范文
- 楚辭離騷的原文全文完整注音版、拼音版標(biāo)準(zhǔn)翻譯譯文及注釋
- 刑事訴訟法課件
- 肩袖損傷病例討論
- 全國(guó)國(guó)家版圖知識(shí)競(jìng)賽題庫(kù)及答案(中小學(xué)組)
- 衛(wèi)生院中醫(yī)、康復(fù)專(zhuān)科建設(shè)實(shí)施方案-
評(píng)論
0/150
提交評(píng)論