高级语言程序设答案.docx
《高级语言程序设答案.docx》由会员分享,可在线阅读,更多相关《高级语言程序设答案.docx(20页珍藏版)》请在冰豆网上搜索。
高级语言程序设答案
高级语言程序设计(C)复习题1
一、选择题
1、下列表达式的值为0的是(B)
A.3﹪5B.3/5C.3/5.0D.3<5
2、正确的C语言用户自定义标识符是(A)
A.printB.floatC.when?
D.random﹪2
3、设inta=3;则表达式a<1&&--a>1的运算结果和a的值分别是(C)
A.0和2B.1和2C.0和3D.1和3
4、下列保留字中用于构成循环结构的是(B)
A.ifB.whileC.switchD.default
5、设inti;floatf;doubled;longinte;,则表达式10+′a′+i*f-d/e结果的数据类型是(A)
A.doubleB.longC.intD.float
6、与语句if(a>b)if(c>d)x=1;elsex=2;等价的是(C)
A.if((a>b)&&(c>d))x=1;elsex=2;
B.if(a>b){if(c>d)x=1;}elsex=2;
C.if(a>b){if(c>d)x=1;elsex=2;}
D.if(a<=b)x=2;elseif(c>d)x=1;
7、设charx=′b′;则printf(″x=﹪c,y=﹪c\n″,x,98);的输出是(D)
A.x=b,y=98B.x=98,y=b
C.x=98,y=98D.x=b,y=b
10、设intx[]={1,2,3,4,5,6},*p;p=x;则值为4的表达式是(D)
A.p+=2,*(++p)B.p+=3,*p
C.p+=2,*(p++)D.p+=2,++(*p)
12、以下程序段的输出结果是__D_____
staticcharstr[]=“BeiJing”;
printf(“%d\n”,strlen(strcpy(str,“computer”)));
A)5B)6C)7D)8
13、以下函数调用语句中函数Func的实参个数为___C_______。
Func((exp1,exp2),(exp3,exp4),exp5,exp6));
A)2B)3C)4D)5
14、如果a=1,b=2,c=3,d=4,则条件表达式a>b?
a:
c>d?
c:
d的值为_____D_____。
A)1B)2C)3D)4
二、填空题
1、初始化值是0.618的双精度变量a的语句为___doublea=0.618_。
2、表达式!
10==1的值是____________0_______。
3、204、表达式a=1,a+1,a++的值是______1____________。
6、被调函数在执行结束时,这个函数中定义的____Static(静态)变量不被释放。
7、设charstring[]=″This_is_two_books!
″;则数组的长度应是_______19______。
8、设inta[2][3]={{2},{3}};则数组元素____a[0][0]_________的值为2。
10、设intmax;a=6,b=9;max=(a>b)?
a:
b;执行完后max的值是____9____
二、程序阅读理解题
1、写出程序执行后的输出结果:
________11,15______________
inta=3,b=15;
voidfun(intx1,intx2)
{
printf(″﹪d,﹪d\n″,x1+x2,b);
}
voidmain()
{
inta=9,b=2;fun(a,b);
}
3、下面程序运行后,如果从键盘上输入Car↙,则输出结果是___Ect_____
#include
voidmain()
{
charc;
while((c=getchar())!
='\n')
{
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
c=c+2;
printf("%c\n",c);
}
}
4、写出程序执行后的输出结果:
______1536998_____________。
main()
{
inti,a[3][3]={11,2,15,4,369,6,98,8,9};
for(i=0;i<3;i++)
printf(“%d”,a[i][2-i]);
}
5、以下程序运行后,如果从键盘上输人3,9↙,则输出结果是_1,9__。
(运算符优先顺序从低到高为:
=<=)
main()
{
intx;
scanf(“%d,%d”,&x,&y);
if((x=y<=10)||(y=x>=10))
printf(“%d,%d”,x--,y--);
else
printf(“%d,%d”,x++,y++);
}
四、编程
1、输出1000之内的所有完数
2、用选择法、冒泡法对10个整数排序。
3、写一个判断素数的函数,在主函数输入一个整数,输出是否素数的信息。
4、编程输出输出所有的“水仙花数”,
输出格式要求:
每个水仙花数输出宽度为5,每输出2个水仙花数换行。
5、输出Fibnaci数列
6、求N的阶乘
7、杨辉3角
高级语言程序设计(C)复习题2
一、选择题
1.下列字符中,ASCII码值最大的是__D。
A)AB)aC)XD)x
2.以下所列的C语言常量中,错误的是__D。
A)0xFFB)1.2e-5C)'\82'D)123L
3.已知inti;floatf;正确的表达式是__C。
A)(intf)%iB)int(f)%i
C)(int)f%iD)int(f%i)
4.已知x=4.5,y=2.5,求表达式(x+y)/2+(int)y%(int)x的值__A。
A)5.5B)5C)3.5D)3
5.已知inta,b;执行语句a=(b=3*2,b*5),a+6;后变量a的值为__D。
A)6B)12C)24D)30
6.如果a=2,b=3,c=4,d=5,则条件表达式a>b?
a:
cc:
d的值为__C。
A)3B)4C)5D)6
8.以下程序执行后输出的值是__B。
A)6,3B)6,4C)0,3D)0,4
main()
{
inti,sum=1;
for(i=1;i<4;i++)sum*=i;
printf(“%d,%d\n”,sum,i);
}
9.已知inta[][3]={1,2,3,4,5,6,7,8,9};则a[1][2]的值是__B。
A)5B)6C)7D)8
10.设inti,j=6;执行语句i=(j++)+7;后i的值是__。
A)10B)12C)13D)14
11.设intx=10,y,z;执行y=z=++x;x=y=z后,变量x的值是__D。
A)0B)1C)10D)11
12.以下程序段的输出是___D。
main()
{
charx=‘Z’;
x=(x>=‘A’&&x<=‘Z’)?
(x+32):
x;
printf(“%c”,x);
}
A)AB)aC)ZD)z
13.以下定义语句中,正确的是___D。
A)intn=5,a[n];B)inta[3][]={1,2,3,4,5};
C)ints[10]={1、2、3};D)inta[3][4]={{1,2},{3},{0,5,6,7}};
14.执行charstr1[10]=“Hello”,str2[10]=“China”;strcat(str1,str2)后输出str1的结果是___。
A)HelloB)ChinaC)HelloChinaD)ChinaHello
15.当调用函数时,实参是一个数组名,则向函数传送的是___。
A)数组的长度B)数组的首元素地址
C)数组每一个元素的地址D)数组每个元素中的值
16.有以下程序段,while循环执行的次数是___。
intk=0;
while(k=1)k++;
A)执行1次B)有语法错,不能执行
C)执行0次D)无限次
17.执行以下程序,程序运行后,如果从键盘上输人-10,则输出结果是___。
A)-9B)-10C)-11D)无输出
main()
{intx;
scanf(“%d”,&x);
if(x>=10)printf(“%d”,x--);
elseprintf(“%d”,++x);
}
二、填空题
1.转义字符\b的功能是___退格___.
3.若已知,a=30,b=20,则表达式!
a
4.若已知,a=3,b=4,c=5,则表达式!
(a>b)&&!
c||1的值为_____1_。
(运算符优先顺序从低到高为:
||&&!
强制类型转换())
5.有如下程序片段:
inta,b,c;
printf(“inputa,b,c:
”);
scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);
欲使a=1、b=3、c=3,正确的输入形式为__a=1,b=2,c=3__。
6.若有说明inta[][3]={{1,2},{0},{3,4,5},{7,8,9}},则a数组共有___12个元素。
7.设i,j,k均为int型变量,则执行完下面的for循环后,k的值为_10_______。
for(i=0,j=10;i<=j;i++,j--)k=i+j;
8.函数调用有哪两种方式____函数语句____和_函数表达式_____。
三、程序填空题
1、以下程序的输出结果是__9,15____
inta,b;
voidfun()
{b=20;a=10;}
main()
{inta=9,b=15;
fun();
printf("%d,%d\n",a,b);
}
四、编程题
1、输出1000之内的所有完数
2、用选择法、冒泡法对10个整数排序。
3、写一个判断素数的函数,在主函数输入一个整数,输出是否素数的信息。
4、编程输出输出所有的“水仙花数”,
输出格式要求:
每个水仙花数输出宽度为5,每输出2个水仙花数换行。
5、输出Fibnac数列
6、求N的阶乘
7、杨辉3角
第1章
1、每个C程序必须有且只能有一个main函数。
2、下列语句段的输出结果是:
579。
inta,b,sum;
a=123;b=456;
sum=a+b;
printf("%d\n",sum);
3、一个函数由函数首部和函数体两部分组成。
4、C程序总是从main函数开始执行的,与它的位置无关。
5、C语言每个语句和数据声明的最后必须有一个分号。
6、C语言输入和输出的操作是由库函数scanf和printf等函数来完成的。
7、C语言可以用/*……*/或者//对C程序中的任何一行或数行做注释。
8、运行C程序的步骤有那几个?
答:
1)上机输入与编辑源程序
2)对源程序进行编译
3)与库函数连接
4)运行目标程序
9、结构化程序设计的三种基本结构是:
顺序结构、选择结构和循环结构。
第2章
1.下列语句段的输出结果是:
e,f
charc1=’E’,c2=’F’;
c1=c1+32;c2=c2+32
printf(“%c,%c”,c1,c2);
2.下列语句段的输出结果是:
A,B
charc1,c2;
c1=65;c2=66;
printf(“%c,%c”,c1,c2);
3.下列语句段的输出结果是:
7,5,2
inta,b,c;
a=(b=5)+(c=2);
printf(“%d,%d,%d\n”,a,b,c);
4.下列语句段的输出结果是:
123
inta;
a=123.4567;
printf(“%d\n”,a);
5.下列语句段的输出结果是:
3
inta;
a=10/3;
printf(“%d\n”,a);
6.下列语句段的输出结果是:
3
inti=289;
charc;
c=i;
printf(“%d\n”,c);
7.下列语句是否正确:
错误
inta=b=c=10;
8.下列语句段的输出结果是:
20,10
inta=10,b=20,t;
t=a;a=b;b=t;
printf(“%d,%d\n”,a,b);
9.下列语句段的输出结果是:
3.33
doublea,b,c;
a=1.111111111;
b=2.22222222;
c=a+b;
printf(“%4.2f”,c);
9.下列语句段的输出结果是:
4.561230e+002
printf(“%e\n”,456.123);
10.有定义
inta;doubleb;charc;floatd;
给以上四个变量输入相应值的输入语句是:
scanf(“%d%lf%c%f”,&a,&b,&c,&d);
11.下列语句段的输出结果是:
HOW
chara=’H’,b=’O’,c=’W’;
putchar(a);putchar(b);putchar(c);
12.下列字符中,ASCII码值最大的是__________。
D
A)AB)aC)XD)x
13.以下所列的C语言常量中,错误的是__________。
A
A)'\82'B)1.2e-5C)123LD)0xFF
14.已知inti;floatf;正确的表达式是__________。
D
A)(intf)%iB)int(f)%i
C)int(f%i)D)(int)f%i
15.已知x=4.5,y=2.5,求表达式(x+y)/2+(int)y%(int)x的值________。
D
(运算符优先顺序从低到高为:
+%强制类型转换())
A)3B)5C)3.5D)5.5
16.已知inta,b;执行语句a=(b=3*2,b*4),a+6;后变量a的值为__________。
C
(运算符优先顺序从低到高为:
,=)
A)6B)12C)24D)30
19.设inti,j=5;执行语句i=(++j)+8;后i的值是__________。
D
A)10B)12C)13D)14
20、下列表达式的值为0的是()C
A.3﹪5B.3/5.0C.3/5D.3<5
21、正确的C语言用户自定义标识符是()A
A.printB.floatC.when?
D.random﹪2
22.已知inta=5;则执行a+=a-=a*a;语句后,a的值为()。
A)5B)0C)-20D)-40
22.x,y,z被定义为float型变量,若从键盘给x,y,z输入数据,正确的输入语句是()。
A)floata、b、c;B)scanf("%f%f%f",&a,&b,&c);
C)scanf("%f%f%f",a,b,c);D)scanf("%lf%lf%lf",&a,&b,&c);
23.表达式4.5+3/2的计算结果是__________。
5.5
24.若已知,a=10,b=20,则表达式!
a
1
25.若已知,a=3,b=4,c=5,则表达式!
(a>b)&&!
c||1的值为__________。
1
第3章
1.如果a=1,b=2,c=3,d=4,则条件表达式a>b?
a:
cc:
d的值为______C___。
A)1B)2C)3D)4
2.能正确表示a≥10或a≤0的关系表达式是__________。
D
A)a≥10ora≤0B)a>=10|a<=0
C)a≥10||a≤0D)a>=10||a<=0
3.(a=3)>(b=5)的逻辑值是:
1
4.设a=1,b=2,c=3,d=4,则a+b>c+d的逻辑值是:
0;a+b==c+d的逻辑值是:
0a+b!
=b+c的逻辑值是1;
5.设a=1,b=2,c=3,d=4,则a>b&&d>c的逻辑值是0;a>b||d>c的逻辑值是1;!
(a>b)的逻辑值是1;5>3&&8<4-!
0的逻辑值是:
0;a||b+c&&b-c的值是:
1
6.有一个函数
写程序输入x,输出y。
7.给出一分数成绩(分数为0到10的整数),要求输出等级成绩,分数为9和10的等级为“A”,8为“B”,7为“C”,6为“D”,0~5为“E”。
其余分数输出错误。
要求用switch结构编写该程序。
8.有3个实数a,b,c由键盘输入,输出其中最大的数。
9.将if(a>b)max=a;elsemax=b;语句写成条件运算表达式是max=。
(a>b)?
a:
b;
10.下列程序段执行后的输出结果是:
3,4
inta=4,b=3,t;
if(a>b)
{temp=a;a=b;b=temp;}
printf("%d,%d\n",a,b);
11.下列程序段执行后的输出结果是:
5,10,20
floata=10,b=5,c=20,temp;
if(a>b)
{temp=a;a=b;b=temp;}
if(a>c)
{temp=a;a=c;c=temp;}
if(b>c)
{temp=b;b=c;c=temp;}
printf("%d,%d,%d\n",a,b,c);
12.下列程序段执行后的输出结果是:
1
intx=10,y;
if(x>=0)
if(x>0)y=1;
elsey=0;
elsey=-1;
printf(“%d,%d\n”,x,y);
13.下列程序段执行时,从键盘输入字符B后,程序的输出结果是:
1
charch;
scanf("%c",&ch);
ch=(ch>='A'&&ch<='Z')?
ch+32:
ch;
printf("%c\n",ch);
14.下列程序段执行时从键盘输入字符C后,程序的输出结果是:
60~69
chargrade;
scanf("%c",&grade);
switch(grade)
{case'A':
printf("85~100\n");break;
case'B':
printf("70~84\n");break;
case'C':
printf("60~69\n");break;
case'D':
printf("<60\n");break;
default:
printf("dataerror!
\n");}
15.以下程序运行后,如果从键盘上输人10,5↙,则输出结果是5,10。
intx,y;
scanf("%d,%d",&x,&y);
if(xprintf("%d,%d\n",x,y);
else
printf("%d,%d\n",y,x);
第4章循环结构程序设计
1.下列程序段执行后的输出结果是:
0,15
intsum=0,i=5;
while(i>=1)
{sum=sum+i;
i--;
}
printf(“%d,%d\n”,i,sum);
2.下列程序段执行时从键盘输入9后,程序的输出结果是:
19
intsum=0,i;
scanf("%d",&i);
do
{sum=sum+i;
i++;
}while(i<=10);
printf("%d",sum);
3.下列程序段执行后的输出结果是:
21
intsum=0,i;
for(i=5;i<=10;i=i+2)
sum=sum+i;
printf("%d\n",sum);
4.下列程序段执行后的输出结果是:
20,30,50,80
intf1,f2,i;
f1=10;f2=10;
for(i=1;i<=2;i++)
{f1=f1+f2;
f2=f2+f1;
printf("%d,%d",f1,f2);}
5.下列程序段执行后的输出结果是:
35
inti;
for(i=3;i<=10;i=i+2)
{if(i==7)break;
printf("%d",i);}
6.下列程序段执行后的输出结果是:
359
inti;
for(i=3;i<=10;i=i+2)
{if(i==7)continue;
printf("%d",i);}
7.编程求1-100内所有奇数之和,并输出结果。
#include
main()
{
inti,s=0;
for(i=1;i<100;i+=2)
s=s+i;
printf("s=%d\n",s);
}
8.编程输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方之和等于该数本身。
例如,153是一个水仙花数,因为
153=1*1*1+5*5*5+3*3*3
输出格式要求:
每输出一个水仙花数换一行。
#include
main()
{
inti,x,y,z,s;
for(i=100;i<999;i++)
{
x=i/100;
y=(i/10)%10;
z=i%10;
s=x*x*x+y*y*y+z*z*z;
if(i==s)printf("%d",i);
}
}
9.下面程序运行后,从键盘上输入Computer↙,输出结果是Amknsrcp
#include
voidmain()
{
charc;
while((c=getchar()