C语言期末考试试题南昌航空大学.docx
《C语言期末考试试题南昌航空大学.docx》由会员分享,可在线阅读,更多相关《C语言期末考试试题南昌航空大学.docx(12页珍藏版)》请在冰豆网上搜索。
C语言期末考试试题南昌航空大学
C语言期末考试试题---南昌航空大学
C语言期末考试试题南昌航空大学
一、单选题
(1)若要定义一个具有5个元素的整型数组,以下错误的定义语句是
A)inta[5]=﹛0﹜;
B)intb[]={0,0,0,0,0};
C)intc[2+3];
D)inti=5,d[i];
(2)以下选项中可用作C程序合法实数的是
A).1e0B)3.0e0.2 C)E9D)9.12E
(3)有以下程序段
charname[20];
intnum;
scanf("name=%snum=%d",name,&num);
当执行上述程序段,并从键盘输入:
name=Lilinum=1001<回车>后,name的值为
A)Lili B)name=Lili C)Lilinum= D)name=Lilinum=1001
(4)if语句的基本形式是:
if(表达式)语句,以下关于“表达式”值的叙述中正确的是
A)必须是逻辑值B)必须是整数值
C)必须是正数D)可以是任意合法的数值
(5)若i和k都是int类型变量,有以下for语句
for(i=0,k=-1;k=1;k++)printf("*****\n");
下面关于语句执行情况的叙述中正确的是
A)循环体执行两次
B)循环体执行一次
C)循环体一次也不执行
D)构成无限循环
(6)有以下程序
#include
voidmain()
{intx=1,y=0;
if(!
x)y++;
elseif(x==0)
if(x)y+=2;
elsey+=3;
printf("%d\n",y);
}
程序运行后的输出结果是
A)3B)2C)1D)0
(7)设有如下函数定义
intfun(intk)
{if(k<1)return0;
elseif(k==1)return1;
elsereturnfun(k-1)+1;
}
若执行调用语句:
n=fun(3);,则函数fun总共被调用的次数是
确语句是
A)scanf("%f",&x[6]);B)scanf("%lf",*(x+6));
C)scanf("%lf",p+6);D)scanf("%lf",p[6]);
(15)有以下程序段
#include
voidmain()
{…
while(getchar()!
='\n');
…
}
以下叙述中正确的是
A)此while语句将无限循环
B)getchar()不可以出现在while语句的条件表达式中
C)当执行此while语句时,只有按回车键程序才能继续执行
D)当执行此while语句时,按任意键程序就能继续执行
(16)若有定义语句:
chars[3][10],(*k)[3],*p;,则以下赋值语句正确的是
A)p=s;B)p=k;C)p=s[0];D)k=s;
(17)有以下程序
#include
voidfun(char*c)
{while(*c)
{if(*c>='a'&&*c<='z')*c=*c-('a'-'A');
c++;
}
}
voidmain()
{chars[81];
gets(s);fun(s);puts(s):
}
当执行程序时从键盘上输入HelloBeijing<回车>,则程序的输出结果是
A)hellobeijingB)HelloBeijing
C)HELLOBEIJINGD)hELLOBeijing
(18)有以下程序
#include
voidmain()
{chara[30],b[30];
scanf("%s",a);
gets(b);
printf("%s\n%s\n",a,b);
}
程序运行时若输入:
howareyou?
Iamfine<回车>
则输出结果是
A)howareyou?
B)howareyou?
C)howareyou?
Iamfine
D)how
areyou?
Iamfine
(19)有以下程序
#include
intfun(intx,inty)
{if(x!
=y)return((x+y)/2);
elsereturn(x);
}
voidmain()
{inta=4,b=5,c=6;
printf("%d\n",fun(2*a,fun(b,c)));
}
程序运行后的输出结果是
A)3B)6C)8D)12
(20)有以下程序
#include
structS
{inta,b;}data[2]={10,100,20,200};
voidmain()
{structSp=data[1];
printf("%d\n",++(p.a));
}
程序运行后的输出结果是
A)10B)11C)20D)21
二、读程序写结果
(1)阅读下列程序:
#include
voidmain()
{inta;
a=(int)((double)(3/2)+0.5+(int)1.99*2);
printf("%d\n",a);
}
上述程序的输出结果是
(2)阅读下列程序:
#include
intmain()
{inti;intbranch;
doublebonus,bon1,bon2,bon4,bon6,bon10;
bon1=100000*0.1;bon2=bon1+100000*0.075;bon4=bon2+200000*0.05;
bon6=bon4+200000*0.03;bon10=bon6+400000*0.015;
scanf("%d",&i);
branch=i/100000;
if(branch>10)branch=10;
switch(branch)
{case0:
bonus=i*0.1;break;
case1:
bonus=bon1+(i-100000)*0.075;break;
case2:
case3:
bonus=bon2+(i-200000)*0.05;break;
case4:
case5:
bonus=bon4+(i-400000)*0.03;break;
case6:
case7:
case8:
case9:
bonus=bon6+(i-600000)*0.015;break;
case10:
bonus=bon10+(i-1000000)*0.01;
}
printf("奖金是%10.2f\n",bonus);
return0;
}
输入“234000”,上述程序的输出结果是
(3)阅读下列程序:
#include
#include
intmain()
{doublex1,x0,f,f1;
x1=1.5;
do
{x0=x1;
f=((2*x0-4)*x0+3)*x0-6;
f1=(6*x0-8)*x0+3;
x1=x0-f/f1;
}while(fabs(x1-x0)>=1e-5);
printf("Therootofequationis%5.2f\n",x1);
return0;
}
上述程序的输出结果是
(4)阅读下列程序:
#include
intmain()
{inta[11]={1,4,6,9,13,16,19,28,40,100};
inttemp1,temp2,number,end,i,j;
scanf("%d",&number);
end=a[9];
if(number>end)
a[10]=number;
else
{for(i=0;i<10;i++)
{if(a[i]>number)
{temp1=a[i];
a[i]=number;
for(j=i+1;j<11;j++)
{temp2=a[j];a[j]=temp1;temp1=temp2;}
break;
}
}
}
for(i=0;i<11;i++)
printf("%5d",a[i]);
printf("\n");
return0;
}
输入“50”,上述程序的输出结果是
(5)阅读下列程序:
#include
structstudent
{intnum;charname[20];floatscore;};
intmain()
{structstudentstu[3]={{10101,"Zhang",78},{10103,"Wang",98.5},{10106,"Li",86}};
structstudenttemp;
constintn=3;
inti,j,k;
for(i=0;i{k=i;
for(j=i+1;jif(stu[j].score>stu[k].score)
k=j;
temp=stu[k];stu[k]=stu[i];stu[i]=temp;
}
for(i=0;iprintf("%6d%8s%6.2f\n",stu[i].num,stu[i].name,stu[i].score);
printf("\n");
return0;
}
上述程序的输出结果是
(6)阅读下列程序:
#include
intmain()
{voidcopy_string(char*from,char*to);
char*a="ateacher.";
charb[]="astudent.";
char*p=b;
printf("stringa=%s\nstringb=%s\n",a,b);
printf("\ncopystringatostringb:
\n");
copy_string(a,b);
printf("stringa=%s\nstringb=%s\n",a,b);
return0;
}
voidcopy_string(char*from,char*to)
{for(;*from!
='\0';from++,to++)
{*to=*from;}
*to='\0';
}
上述程序的输出结果是
三、改写程序
1.输出结果如图A所示,修改程序,要求
(1)不输出第一行的空行;
(2)“3……”这行输出空行,如图B所示。
#include
intmain()
{
inti,