8、以下对一维整形数组a进行正确初始化的语句是()。
A、inta[10]=(0,0,0,0,0);B、inta[10]={};
C、inta[]={0};D、inta[10]={10*1};
9、关于局部变量,下列说法正确的是()。
A、定义该变量的程序文件中的函数都可以访问。
B、定义该变量的函数中的定义处以下的任何语句都可以访问。
C、定义该变量的复合语句的定义处以下的任何语句都可以访问。
D、局部变量可用于函数之间传递数据。
10、能正确表示逻辑关系:
“10≥=a≥=0”的C语言表达式是()
A、10>=a>=0B、a>=0anda<=10C、a>=0||a<=10D、a>=0&&a<=10
二、程序运行题(本大题共2小题,每题4分,共8分)。
将结果截图放在题后框内。
1、(得分:
)运行下列代码,给一维数组a输入任意6个整数,建立一个以下内容的方阵并打印。
735621
173562
217356
621735
562173
356217
将结果窗口截图放置题后框内。
#include“”
voidmain()
{
inta[6],i,j,k,m;
printf(“输入6个整数:
”);
for(i=0;i<6;i++)scanf(“%d”,&a[i]);
for(i=5;i>=0;i--)
{
k=a[5];
for(j=4;j>=0;j--)a[j+1]=a[j];
a[0]=k;
for(m=0;m<6;m++)printf(“%2d”,a[m]);
printf(“\n”);
}
}
结果截图:
2、(得分:
)运行下列代码,输入若干学生成绩,输出其中的最高分和平均分。
将结果截图放在题后框内。
#include“”
voidmain(){
intgrade,max,n=0,sum=0;
scanf(“%d”,&grade);
max=grade;
while(grade>=0){
sum+=grade;
scanf(“%d”,&grade);
if(grade>max)max=grade;
n++;
}
printf(“max=%d,average=%5.2f\n”,max,*sum/n);
}
结果截图:
三、程序改错题(本大题共3小题,每小题5分,共15分),请将正确代码粘贴到右边框内。
然后运行并将结果截图。
1、(得分:
)以下程序实现对任意输入的四位整数,分别求出其各位数字,并按从后到前的顺序依次输出。
例如,输入为1234时,输出结果为4,3,2,1。
(提示:
利用求整和求余运算分别计算出个、十、百和千位数字,再输出)。
请改正程序中的错误,并将正确代码粘贴到右边框内,然后运行并将结果截图。
#include""
voidmain(){
inta,b,c,d,x;
printf("输入4位整数:
");
scanf("%d",x);
a=x%10;
b=a/10%10;
c=a/100%10;
d=a/1000;
printf("%f=%d,%d,%d,%d\n",x,a,b,c,d);
}
正确代码粘贴在此处:
结果截图:
2、(得分:
)以下程序的功能是输入若干学生成绩存于数组中,以输入-1表示结束输入,然后求这些学生的平均成绩。
请改正程序中的错误,并将正确代码粘贴到右边框内,然后运行并将结果截图。
#include""
voidmain()
{inta[50],i=0,sum;
floatave;
scanf("%d",&a);
while(a[i]!
=-1)
{sum+=a[i];
i++;
scanf("%d",&a);
}
ave=sum/i;
printf("average=%f\n",ave);
}
正确代码粘贴在此处:
结果截图:
3、(得分:
)将3本书的书名和单价保存在结构数组中,计算并输出总价。
请改正程序中的错误,并将正确代码粘贴到右边框内,然后运行并将结果截图。
#include“”
structBook{
charbookname[20];
intprice;
}
Bookbook[3]={“计算机导论”,“C程序设计”,“数据结构”,,,};
voidmain(){
inti;
floatsumprice;
for(i=0;i<3;i++)
sumprice+=price;
printf(“Total=%f\n”,sumprice);
}
正确代码粘贴在此处:
结果截图:
四、程序填空题(本大题共3小题,每题10分,共30分),在每小题的横线上填上相应的内容。
1、(得分:
)用if…elseif语句实现:
假设奖金税的税率如下(a代表奖金数,r代表税率):
a<500r=0%
500<=a<1000r=5%
1000<=a<2000r=8%
2000<=a<5000r=10%
5000<=ar=20%
用户输入一个奖金数,输出税率和应交税款以及实发奖金。
完成下列代码,然后运行并将结果截图。
#include<>
intmain(void)
{
floata,r;
printf("请输入奖金数:
");
①;
if(a<500)r=0;
②;
elseif(a<=2000)r=;
elseif(a<=5000)r=;
③;
printf("利率为=%.2f,奖金数=%.2f,应交税款=%.2f,实发奖金=%.2f\n",r,a,a*r,a-a*r);
return0;
}
完整代码粘贴在此处:
结果截图:
2、(得分:
)以下代码是:
分别定义两个字符数组str1[]和str2[],str1存放你的姓的全拼(如:
peng),str2存放你名的全拼(如:
Yichun),然后将字符串str2连接到字符串str1中,最后输出str1(PengYichun)。
完成下列代码,然后运行并将结果截图。
#include<>
intmain()
{chars1[80],s2[40];
inti=0,j=0;
printf("请输入第一个字符串:
");
scanf("%s",s1);
printf("请输入第二个字符串:
");
scanf("%s",s2);
while(①)
i++;
while(②)
s1[③]=s2[④];
s1[i]='\0';
printf("\n合并后的字符串为:
%s\n",s1);
return0;
}
完整代码粘贴在此处:
结果截图:
3、(得分:
)设计一个程序计算输入的两个数的和与差,要求自定义一个函数sum_diff(floatop1,floatop2,float*psum,float*pdiff),其中op1和op2是输入的两个数,*psum和*pdiff是计算得出的和与差。
完成下列代码。
然后运行并将结果截图。
#include<>
intmain(void)
{
①;
floatpsum,pdiff;
floatop1,op2;
printf("请输入数,逗号间隔:
");
scanf("%f,%f",&op1,&op2);
sum_diff(②);printf("%.2f+%.2f=%.2f,%.2f-%.2f=%.2f\n",op1,op2,psum,op1,op2,pdiff);
return0;
}
voidsum_diff(floatop1,floatop2,float*psum,float*pdiff)
{
③;
*pdiff=op1-op2;
}
完整代码粘贴在此处:
结果截图:
五、改编题(本大题共2小题,每1小题5分,共10分),请将正确代码粘贴到右边框内。
然后运行并将结果截图。
1、(得分:
)左边代码实现:
有2个候选人,每个选民只能投票选一人,要求编一个统计选票的程序,先后输入被选人的名字,最后输出各人得票结果。
现要求改编程序,如果输入的名字不在候选人列表中,结果也要显示此人以及得票结果。
#include<>
#include<>
structPerson{
charname[20];
intcount;
}ld[2];
intmain(){
inti,j;
charld_name[20];
for(i=1;i<=10;i++){
scanf(“%s”,ld_name);
for(j=0;j<2;j++)
if(strcmp(ldname,ld[j].name)==0)
ld[j].count++;
}
for(i=0;i<2;i++)
printf("%5s:
%d\n“,ld[i].name,ld[i].count);
return0;
}
改编后的代码粘贴在此处:
结果截图:
2、(得分:
)左边代码是使用冒泡法对10个整数按由小到大顺序排序。
请改编:
使用voidsort(int*x,intn)函数实现排序过程,在main函数中实现这10个整数的输入和输出,并调用该函数实现排序,程序的其他地方也可能要求有所改动,请按要求改编。
#include<>
voidmain(){
inta[10];
inti,j,t;
printf("input10numbers:
\n");
for(i=0;i<10;i++)scanf("%d",&a[i]);
printf("\n");
for(j=0;j<9;j++)
for(i=0;i<9-j;i++)
if(a[i]>a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
printf("thesortednumbers:
\n");
for(i=0;i<10;i++)printf("%d",a[i]);
printf("\n");
}
改编后的代码粘贴在此处:
结果截图:
六、编程题(本大题共2小题,第1小题8分,第2小题9分,共17分)请将代码粘贴在题后的代码框内,将结果窗口截图放在题后的结果框内,尽量不要跨页。
1、(8分,得分:
)打印1-10000之间所有的“水仙花数”。
“水仙花数”是其各位数立方和等于该数本身。
如13+33+53=153。
//第1题代码,设置字体:
TimeNewRoman,大小为:
5号,行间距:
单倍行距,段前、段后:
0行
结果截图:
2、(9分,得分:
)编写程序,输入两个正整数m和n(m>=1,n<=1000),输出m和n之间的素数,每行输出10个素数并要求每行对齐,并统计素数的个数以及这些素数的和。
要求定义并调用prime(m)判断m是否是素数。
//第2题代码,设置字体:
TimeNewRoman,大小为:
5号,行间距:
单倍行距,段前、段后:
0行
结果截图: