省考C语言新题与参考答案非选择部分Word格式.docx
《省考C语言新题与参考答案非选择部分Word格式.docx》由会员分享,可在线阅读,更多相关《省考C语言新题与参考答案非选择部分Word格式.docx(46页珍藏版)》请在冰豆网上搜索。
}
getch();
}
参考答案:
n<
10;
{k=10*m+n+10*n+m;
2、补充程序Ccon292.C,分别统计输入整数中小于零、大于零和最低位为3的个数。
输入零时输出统计结果。
{
intx,na,nb,nc;
na=nb=/**//**/;
printf("
Pleaseinputintegernumber,endwith0:
\n"
);
scanf("
%d"
&
x);
while(x)
{
if(x<
0)
/**//**/;
else
++nb;
if(abs(x%/**//**/)==3)
++nc;
na=%dnb=%dnc=%d\n"
na,nb,nc);
na=nb=nc=0;
while(x!
=0)
++na;
if(abs(x%10)==3)
3、将程序Ccon301.C填写完整,实现从键盘按行输入一个5行5列的二维整型数组表示的5X5阶矩阵,并输出最后一列元素的平均值。
math.h>
{inti,j;
inta[5][5],sum;
Pleaseinput25numbers:
for(i=0;
i<
5;
i++)
for(j=0;
j<
j++)
{scanf("
a[i][j]);
if(/**//**/)
sum+=a[i][j];
}
%.5f\n"
/**//**/);
参考答案:
floatnum=0;
if(j==4)
num=sum/5);
4、补充程序Ccon302.C,利用冒泡法对数组a中的数据按从小到大顺序排列。
#defineN10
inta[N]={21,56,-9,0,3,17,18,5,-23,11};
inti,j,/**//**/;
for(i=N-1;
i>
=1;
i--)
{for(j=0;
=/**//**/;
{if(/**//**/)
{temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
Sortednumbers:
i<
N;
%4d"
a[i]);
inti,j,temp;
=i;
{if(a[j+1]<
a[j])
5、将程序Ccon311.C填写完整,查找存储在结构体数组中5位学生成绩最高者的姓名和成绩。
structstudent
charname[10];
floatscore;
};
structstudentstu[5]={"
Mary"
76.1,"
John"
87.3,"
Tom"
81,"
susa"
87.8,"
wilu"
79};
inti=0,k=0;
/**//**/;
if(stu[i].score>
max)
{max=/**//**/;
\nname:
%s,score:
%.2f"
stu[k].name,stu[k].score);
floatmax=0;
{max=stu[i].score;
k=i;
getch();
6、补充程序Ccon312.C,其中函数find(inta[],intx)的功能是在一组无序且不重复的数据中查找x,若有则返回x在数组中的下标,否则返回-1。
/**//**/N10
intfind(inta[],intx)
inti;
for(/**//**/;
{if(a[i]==x)
return(i);
return(/**//**/);
intf,f_at;
Inputanumbertobesearched:
"
f);
f_at=find(a,f);
if(f_at>
%disfound,it'
sat%d\n"
f,f_at);
Notexist.\n"
intfind(inta[],intx)
return(-1);
7、将程序Ccon321.C填写完整,实现从键盘输入9个整数,求出第8个数与第9个数的平均值,并输出小于该平均值的所有数。
inti,s[9];
floataver;
Pleaseinputsampler:
9;
s[i]);
aver=((float)/**//**/)/2;
if(s[i]<
/**//**/)
%d\n"
s[i]);
aver=((float)(s[7]+s[8]))/2;
aver)
8、补充程序Ccon322.C,实现删除输入字符串中所有的’b’字母
输入:
akcberbbnv输出:
akcernv
/**//**/<
charstr[100];
int/**//**/;
Inputstring:
gets(str);
for(i=j=0;
str[i]!
='
\0'
;
i++)
{if(str[i]!
b'
)
{str[j]=str[i];
str[j]='
Nowstringis:
puts(str);
#include<
inti,j;
j++;
9、程序Ccon331.C,输出用1元、2元和5元的纸币组成10元的所有组合。
{inti,j,k;
intnum=0;
No.1yuan2yuan5yuan\n"
for(k=0;
k<
=2;
k++)
=5;
if(/**//**/)
{num++;
%9d%9d%9d%9d\n"
num,i,j,k);
=10;
if(k*5+j*2+i==10)
10、补充程序Ccon322.C,编制某公司安排zhang、wang、zhao、li四个人轮流值班的12天值班人员表。
{enumbody{zhang,wang,zhao,li};
/**//**/bodyday[12],j;
j=zhang;
12;
{day[i]=j;
if(j>
li)
j=/**//**/;
List:
for(i=1;
=12;
{switch(day[i-1])
{casezhang:
Day%2dis%s\n"
i,"
zhang"
break;
casewang:
wang"
case/**//**/:
zhao"
caseli:
li"
参考答案
enumbodyday[12],j;
casezhao:
二、改错题
1、修改程序Cmody291.C中的错误,实现将键盘输入字符串中的‘0’~‘7’转换成比它大2的数字字符,‘8’转换成‘0’,‘9’则转换成‘1’。
ab56cd89EF34GH43输出:
ab78cd01EF23GH65
(1)修改程序在每对“/**/”之间存在的错误;
(2)不得删改程序中的“/**/”注释和其它代码;
(3)源程序在考生文件夹中;
string.h>
chars1[100],s2[100];
inti,s_len;
Pleaseinputstring:
\n"
gets(s1);
s_len=/**/s1/**/;
s_len;
if(s1[i]>
='
0'
&
&
s1[i]<
7'
s2[i]=s1[i]+2;
elseif(s1[i]=='
8'
/**/&
/**/s1[i]=='
9'
s2[i]=s1[i]-8;
else
s2[i]=s1[i];
/**/s2[i+1]/**/='
puts(s2);
s_len=strlen(s1);
||s1[i]=='
s2[i]='
2、修改程序Cmody292.C,其中的函数fun()将字符串表示的八进制数转换成对应的十进制数,并返回转换结果。
输入字符串:
325
输出结果:
213
intfun(/**/charp/**/)
{intx;
/**/x=1;
/**/
while(*p)
{x=x*8