秋季理工A卷答案Word文件下载.docx
- 文档编号:8249442
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:16
- 大小:23.98KB
秋季理工A卷答案Word文件下载.docx
《秋季理工A卷答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《秋季理工A卷答案Word文件下载.docx(16页珍藏版)》请在冰点文库上搜索。
##%d\n"
x);
}
A)**3B)##3C)##3D)**3##4
##4**4**4##5**5
**5##5
3.在if(x)语句中的x与下面条件表达式等价的是:
A)x!
=0B)x==1C)x!
=1D)x==0
4.已知
structsk
{
inta;
floatb;
}data,*p;
若有p=&
data则对data中成员b的正确引用是________。
A)(*p).dataB)(*p).b
C)p->
data.bD)p.data.b
5.若二维数组a有m列,则在a[i][j]之前的元素个数为:
A)j*m+iB)i*m+jC)i*m+j-1D)i*m+j+1
二、写出下列程序的运行结果。
正确得2分,完全错误扣2分,如果部分错误则扣1分,具体见各题的详细标准)
1.
#include<
stdio.h>
main()
inti,j,m;
inta[2][5]={1,20,32,14,5,62,87,38,9,10};
m=a[0][0];
for(i=0;
i<
2;
i++)
for(j=0;
j<
5;
j++)
if(m<
a[i][j])m=a[i][j];
printf(“m=%d\n”,m);
}
运行结果是:
m=87
评分标准:
正确得2分,完全错误扣2分,如果部分错误则扣1分。
本题中如果运行结果为87,漏掉了m=,则扣1分。
2.
intx,y;
scanf("
%2d%*2s%2d"
&
x,&
y);
printf("
%d"
x*y);
程序执行时从键盘输入:
12341234↙
144
正确得2分,完全错误扣2分。
3.
voidFunc(intb[])
intj;
for(j=0;
4;
{
b[j]=j+1;
staticinta[4]={5,6,7,8},i;
Func(a);
printf("
%d\n"
a[i]);
1
2
3
4
本题中如果运行结果为1234,没有换行,则扣1分。
4.
structdate
intyear;
intmonth;
intday;
};
voidfunc(structdate*p)
p->
year=2000;
month=5;
day=22;
structdated;
d.year=1999;
d.month=4;
d.day=23;
printf(“%d,%d,%d\n”,
d.year,d.month,d.day);
func(&
d);
d.year,d.month,d.day);
1999,4,23
2000,5,22
本题中如果运行结果中1999,4,23输出正确、2000,5,22输出不正确,或者2000,5,22输出正确、1999,4,23输出不正确,则扣1分。
5.
voidFunc(void);
inti;
for(i=0;
i<
2;
Func();
voidFunc(void)
inttimes=1;
Func()wascalled%dtime(s).\n"
times++);
Func()wascalled1time(s).
本题中如果运行结果中第1行输出正确、第2行输出不正确,或者第2行输出正确、第1行输出不正确,则扣1分。
三、阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。
(8分,评分标准:
每空2分,正确得2分,错误扣2分)
1.下面这个程序用于读入5个整数,当程序读入的数据为正整数时,则显示该数,否则,程序结束运行。
inti,n;
for(i=1;
=5;
printf("
Pleaseentern:
"
);
scanf("
n);
if(n<
=0)break;
n=%d\n"
n);
Programisover!
\n"
2.下面函数实现strcmp的功能,将两个字符串s和t进行比较,然后将两个字符串中第一个不相同字符的ASCII码值之差作为函数值返回。
intMyStrcmp(chars[],chart[])
s[i]==t[i];
i++)
if(s[i]==‘\0’)return0;
return(s[i]-t[i]);
六、在下面给出的4个程序中,有15处错误(包括语法错误和逻辑错误),请找出其中的错误,并改正之。
(30分,评分标准:
实际错误有16个,只要找对15个即可,多找不加分。
每找对1个错误,加1分,每修改正确1个错误,再加1分。
)
1.输入一行字符,统计其中的英文字符、数字字符、空格字符,以及其他字符的个数。
string.h>
#defineARR_SIZE=80;
//错误,应该为#defineARR_SIZE80
charstr[ARR_SIZE];
intlen,i;
intletter,digit,space,other;
//错误,应该为intletter=0,digit=0,space=0,other=0;
请输入一个字符串:
gets(str);
len=strlen(str);
for(i=0;
len;
{
if(a=<
str[i]<
=z&
&
A=<
=Z)
//错误,应该为if(str[i]>
=’a’&
=’z’||str[i]>
=’A’&
=’Z’)
++letter;
}
elseif('
0'
=<
='
9'
)
//错误,应该为elseif(str[i]>
=’0’&
=’9’)
{
++digit;
elseif(str[i]='
'
)
//错误,应该为elseif(str[i]=='
{
++space;
else
++other;
英文字符数:
letter);
数字字符数:
digit);
空格数:
space);
其他字符数:
other);
2.任意输入一个字符串,在星期表中查找该字符串,若找到,则打印”已找到”,否则打印”没找到”。
intfindFlag;
//错误,应该为intfindFlag=0;
charx[10];
charweekDay[7][10]={"
Sunday"
"
Monday"
Tuesday"
Wednesday"
Thursday"
Friday"
Saturday"
%s"
x);
7&
!
findFlag;
{
if(x=weekDay[i])
//错误,应该为if(strcmp(x,weekDay[i])==0)
findFlag=1;
}
if(!
findFlag)//错误,应该为if(findFlag)
找到\n"
else
没找到!
3.爱因斯坦数学题。
爱因斯坦曾出过这样一道数学题:
有一条长阶梯,若每步跨2阶,则最后剩下1阶,若每步跨3阶,则最后剩下2阶,若每步跨5阶,则最后剩下4阶,若每步跨6阶,则最后剩下5阶,只有每步跨7阶,最后才正好1阶不剩。
请问,这条阶梯共有多少阶?
intx,find=0;
//错误,应该为intx=1,find=0;
find)//错误应该为while(!
find)
if(x%2==1
&
x%3==2
x%5==4
x%6==5
x%7==0)
//错误,缺少find=1;
x=%d\n"
x++;
//错误,x++;
应该放到if语句}的外面
}
}
4.下面函数Squeez()的功能是删除字符串s中所出现的与变量c相同的字符。
voidSqueeze(chars[],charc);
//错误,应该为voidSqueeze(chars[],charc)
inti,j;
s[i]!
\0'
;
//错误,应该为for(i=j=0;
if(s[i]!
='
c'
)//错误,应改为if(s[i]!
=c)
s[i]=s[j];
//错误,应该为s[j]=s[i];
j++;
}
//错误,应该为s[j]='
七、编程(42分,具体评分标准见各题,总的原则:
每出现一处简单语法错误就扣1分)
1.利用
前100项之积,编程计算π的值。
(15分)
参考答案1:
floatterm,result=1;
intn;
//以上语句:
3分
for(n=2;
n<
=100;
n=n+2)//核心语句:
10分
term=(float)(n*n)/((n-1)*(n+1));
result=result*term;
result=%f\n"
2*result);
//2分
参考答案2:
floatresult=1,term;
for(n=1;
=50;
n++)//核心语句:
term=(float)(2*n*2*n)/((2*n-1)*(2*n+1));
//2分
2.编写一个函数Inverse,实现将字符数组中的字符串逆序存放的功能。
(15分)
#defineARR_SIZE80
voidInverse(charstr[],charptr[]);
chara[ARR_SIZE],b[ARR_SIZE];
Pleaseenterastring:
//以上1分
gets(a);
//1分
Inverse(a,b);
Theinversedstringis:
puts(b);
voidInverse(charstr[],charptr[])
inti=0,j;
j=strlen(str)–1;
while(str[i]!
)//核心语句:
7分
ptr[j]=str[i];
i++;
j--;
ptr[i]='
#include<
voidInverse(charstr[]);
chara[ARR_SIZE];
gets(a);
Inverse(a);
puts(a);
voidInverse(charstr[])
intlen,i,j;
chartemp;
len=strlen(str);
for(i=0,j=len-1;
j;
i++,j--)//核心语句:
8分
temp=str[i];
str[i]=str[j];
str[j]=temp;
3.从键盘任意输入某班10个学生的成绩,计算并打印平均分并统计成绩在平均分以上的学生人数,要求用一维数组和指针变量做函数参数编程实现计算平均分并统计成绩在平均分以上的学生人数,然后在主函数中打印这些统计结果,不能使用全局变量编程。
(12分)
intFindAver(intscore[],intn,int*pAver);
intscore[10],aver,i,num;
Pleaseenterthescore:
10;
i++)//1分
score[i]);
num=FindAver(score,10,&
aver);
aver=%d,num=%d\n"
aver,num);
intFindAver(intscore[],intn,int*pAver)
intsum=0,count=0;
n;
i++)//核心语句:
sum=sum+score[i];
*pAver=sum/n;
4分
if(score[i]>
*pAver)count++
return(count);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 秋季 理工 答案
![提示](https://static.bingdoc.com/images/bang_tan.gif)