04年夏C语言程序设计期末考试A卷标准答案.docx
《04年夏C语言程序设计期末考试A卷标准答案.docx》由会员分享,可在线阅读,更多相关《04年夏C语言程序设计期末考试A卷标准答案.docx(7页珍藏版)》请在冰豆网上搜索。
![04年夏C语言程序设计期末考试A卷标准答案.docx](https://file1.bdocx.com/fileroot1/2023-1/24/b810f1a7-bc93-4fcb-a9d1-b0be4f86cc85/b810f1a7-bc93-4fcb-a9d1-b0be4f86cc851.gif)
04年夏C语言程序设计期末考试A卷标准答案
6
for(n=10;n<20;n++)
{if(n%4==0)A)39.
题号
一
二
三
四
五
六
七
八
九
十
总分
核分人
题分
分
分
分
分
分
分
得分
一、填空题(每空1分,共10分)得分1.结构化程序由、、三种基本结构组成。
2.一个C程序总是从函数开始执行。
3.十进制数27,转化为八进制数为转化为十六进制数为。
4.逐个字符输入输出,用格式符,将整个字符串一次输入或输出,用格式符。
5.为表示关系x≥y≥z,应使用的C语言表达式是。
.从存储类别来讲,函数中的形参和在函数中定义的变量都属于变量。
二、单项选择题。
(每题1分,共10分)得分1.以下叙述中正确的是()A)构成C程序的基本单位是函数。
B)可以在一个函数中定义另一个函数。
C)main函数必须放在其它函数之前。
D)所有被调用的函数一定要在调用之前进行定义。
2.以下选项中合法的用户标识符是()
A)intB)_a12C)12wD)stu#8
3.已定义c为字符型变量,则下列语句中正确的是()
A)c='97';B)c=97;C)c=97;D)c=a;
4.已知i,j,k为int型变量,若从键盘输入20;19;10(代表enter),使i的值为20,j的值为19,k的值为10,以下选项中正确的输入语句为()
A)scanf(%d;%d;%d,&i,&j,&k);B)scanf(---,&i,&j,&k);
C)scanf(\%d;%d;%d,i,j,k);D)scanf(i=%d,j=%d,k=%d,&i,&j,&k);
5.以下程序,执行后的输出结果是()
main()
{intk=4,i=3,m;
m=(k+=i*=k);printf(“%d,%d\n”,m,i);}
A)20,16B)20,15C)28,12D)16,12
6.以下函数的类型是()fff(floatx)
x*x);}”“%d\n{printf(A)float类型B)void类型C)int类型D)无法确定
7.以下程序中NUM的值是()A)5B)6C)8D)9
#defineN2#defineMN+1#defineNUM(M+1)*M/2main(){inti;
for(i=1;i<=NUM;i++);printf(“%d”,i);}
8.s的值为(以下程序段执行后)continue;s=s+1;}B)5C)8D)9以下程序的输出结果是()
main(){intx=20,y=22,t=30;
if(x>=y)t=x;x=y;y=t;
printf(“%d,%d\n”,x,y);}A)20,22B)22,20C)20,30D)22,30
10.设有如下定义
structaa
{charname[10];
intage;
charsex;
}std[3],*p=std;
下面各输入语句中错误的是()
scanf(%d,&(*p).age);scanf(%s,&std.name);scanf(%c,&std[0].sex)scanf(%c,&(p->sex));D)C)B)A)
7分,共31分)—6题每题4分,7题三、写出程序或程序段的执行结果,将答案直接写在横线上。
(1得分1.有以下程序main()
{intp[7]={11,13,14,15,16,17,18},i=0,k=0;
while(i<7&&p[i]%2)
{k=k+p[i];i++;}
printf(%d\n,k);}
执行后输出结果是.2有以下程序main(){intx[10]={8,19,6,5,11,3,22,16,3},*s;
s=x+4;printf(%d\n,s[3]);}
执行后输出结果是
.3以下程序的运行结果为
main()
9,10,3}};
{
inti,sum=0;
for(i=0;i<4;i++)sum+=aa[i][2];
printf(“%d”,sum);}
4.已有文本文件test.txt,其中的内容为:
Hello,everyone!
。
以下程序中,文件test.txt已正确为“读”而打开,由文件指针fr指向该文件,则程序的输出结果是
#include
main(){FILE*fr;charstr[40];
……
fgets(str,5,fr);
printf(%s\n,str);
fclose(fr);}
5.有以下程序
main(intargc,char*argv[])
{intn,i=0;
while(argv[1][i]!
='\0')
{n=fun();i++;}
printf(%d\n,n*argc);}
intfun()
{staticints=0;s+=1;returns;}
假设程序经编译、连接后生成可执行文件exam.exe,若键入以下命令行
exam1234<回车>
则运行结果为
6.以下程序运行后的输出结果是
fun(intx)
{if(x/2>0)fun(x/2);
printf(%d,x);}
main(){fun(8);}
7.以下程序运行后输入:
2,abcpq<回车>,则输出结果是
#includemove(char*str,intn)
{chartemp;inti;
temp=str[n-1];
str[0]=temp;
for(i=n-1;i>0;i--)str[i]=str[i-1];}
main(){chars[50];intn,i,z;
scanf(%d,%s,&n,s);z=strlen(s);
for(i=1;i<=n;i++)move(s,z);
printf(%s\n,s);}
四、程序填空,直接将语句写在横线上(共15分)得分
1.s中最大元素的下标,数组中元素的个数由t传入,请填空(2×2=4分findmax以下返回数组)
findmax(ints[],intt)
{intk,p;
for(p=0,k=p;p++)
if(s[p]>s[k]);
return;}
2.s中的所有数字字符,请填空(2×2=4分)以下函数的功能是删除字符串
voiddele(char*s)
{intn=0,i;
for(i=0;s[i];i++)
if()s[n++]=s[i];
s[n]=;}
3.以下程序的功能是调用函数fun计算:
m=1-2+3-4+…+19-20,并输出结果。
请填空(2×2=4分)
intfun(intn){intm=0,f=1,i;
for(i=1;i<=n;i++)
{m+=i*f;
f=;}
returnm;}
main(){printf(m=%d\n,);}
4.请在以下程序第一行的下划线处填写适当内容,使程序能正确运行(1×3=3分)
_______(double,double);
main(){doublex,y;
scanf(%lf%lf,&x,&y);printf(%lf\n,max(x,y));}
doublemax(doublea,doubleb)
{return(a>b?
a:
b);}
五、程序改错,程序中某些语句有错误,将程序中的错误用划出来,将改正后的语句写在对应错误语得分句后的横线上,不得增行或删行,不得改变程序的结构,改正后的程序要能够正常运行。
(共11分)
1.以下程序的功能为计算圆的面积,r为半径。
(6分)
#includestdio.h;
main();
floatr,s;
r=5.0;
s=3.14159*r*r;
printf(“%f\n”,s)
2.以下程序为从两个数中找出大者并输出,请改正程序中的错误,使之实现这一功能。
(5分)
main()
{inta,b,max;
scanf(“%d,%d”,a,b);
max=a
a:
b;
printf(%d,max);}
六、编程题(共23分)得分
1.x(x<1)有一数学函数:
y=2x-1(1≤x≤20)
4x-11(x≥20)
写一程序,输入x的值,输出y的值(8分)。
参考答案:
2.对20个整数按由大到小的顺序排序,并输出结果。
(15分)