C语言程序设计试题及答案九_精品文档Word文档格式.doc
《C语言程序设计试题及答案九_精品文档Word文档格式.doc》由会员分享,可在线阅读,更多相关《C语言程序设计试题及答案九_精品文档Word文档格式.doc(6页珍藏版)》请在冰豆网上搜索。
3;
k++)
printf(“%2d”,a[k][k]);
A)123B)159C)147D)369
2.若a是int类型变量,则计算表达式a=25/3%3的值是:
(B)
A)3B)2C)1D)0
3.下面正确的字符常量是:
(C)
A)“c”B)‘\\’’C)‘W’D)‘’
4.C语言中,运算对象必须是整型的运算符是:
A)%B)/C)*D)+
5.数字字符0的ASCII值为48,若有以下程序
main()
{
chara='
1'
b='
2'
;
printf("
%c,"
b++);
%d\n"
b-a);
}
程序运行后的输出结果是。
A)3,2 B)50,2 C)2,2 D)2,50
6.以下语句或语句组中,能正确进行字符串赋值的是。
(D)
A)char*sp;
*sp="
right!
"
B)chars[10];
s="
C)chars[10];
*s="
D)char*sp="
7.for(i=0;
i<
10;
i++)
if(i〈=5〉break;
则循环结束后i的值为(B)
A)0B)1C)5D)10
8.执行下列程序段后,正确的结果是(C)
charx[8]={8,7,6,5,0,0},*s;
s=x+1;
printf(“%d\n”,s[2]);
A)nB)0C)5D)6
9.C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是:
A
A)单向值传递B)地址传递C)相互传递D)由用户指定方式
10.设有数组定义:
charstr[]=”China”;
则下面的输出为(C)
printf(“%d”,strlen(str));
A)4B)5C)6D)7
二、填空题(30分,每空2分)
1.下列程序段的输出结果是3。
inti=19,j;
j=i%4;
printf(“%d”,j);
2.已知fun1函数的功能是将三个数按由大到小的顺序调整后依次放入a,b,c三个变量中,其中a存放最大的数,利用fun2函数填空完成此功能。
voidfun2(int*x,int*y)
intt;
t=*x;
*x=*y;
*y=t;
voidfun1()
inta=20,b=30,c=25;
if(c>
b)fun2(__&
c,&
b____);
if(a<
c)fun2(__&
a,&
c____);
3.已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:
B33<
回车>
,则输出结果是1B。
#include<
stdio.h>
{
chara,b;
a=getchar();
scanf("
%d"
&
b);
a=a-'
A'
+'
0'
b=b*2;
printf("
%c%c\n"
a,b);
4.以下程序运行后的输出结果是435。
inta=3,b=4,c=5,t=99;
if(b<
a&
&
a<
c){t=a;
a=c;
c=t;
if(a<
c&
b<
c){t=b;
b=a;
a=t;
printf("
%d%d%d\n"
a,b,c);
5.若已知a=10,b=20,则表达式!
a<
b的值是___0______
6.若s是unsignedint型变量,则下面表达式的值是__1__。
s%2+(s+1)%2
7.下面程序将字符数组a复制到字符数组b中。
chara[]="
Iamaboy."
b[20];
inti;
for(i=___0____;
a[i]!
='
\0'
__b[i]=a[i]___________;
__b[i]=’\0’__;
8.若有inta[3][2]={{1},{3,2},{4,5}};
,则a[1][1]的值是2。
9.有以下程序,执行后输出结果是0。
main()
intt=1,i=5;
for(;
i>
=0;
i--)t*=i;
printf("
t);
}
10.在循环语句中,break语句的作用是是用来跳出当前一层循环的,continue语句的作用是终止本次循环。
三、写出程序的运行结果(30分,每题10分)
1.写出程序运行后的输出结果
main()
{
inta=1,b;
for(b=1;
b<
=10;
b++)
if(a>
=8)break;
if(a%2==1)
a+=5;
continue;
a-=3;
b);
输出结果:
b=4
2.写出程序运行后的输出结果
#include<
string.h>
char*ss(char*s)
returns+strlen(s)/2;
{char*p,*str="
abcdefgh"
p=ss(str);
printf("
%s\n"
p);
efgh
3.写出程序运行后的输出结果
intf1(intx,inty){returnx>
y?
x:
y;
intf2(intx,inty){returnx>
y:
x;
inta=4,b=3,c=5,d=2,e,f,g;
e=f2(f1(a,b),f1(c,d));
f=f1(f2(a,b),f2(c,d));
g=a+b+c+d-e-f;
%d,%d,%d\n"
e,f,g);
4,3,7
四、编程(完形填空)(20分,每题10分)
1.以下程序中函数huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串:
yes!
,否则函数返回字符串:
no!
,并在主函数中输出,所谓回文即正向与反向的拼写都一样,例如:
adgda。
请填空。
char*huiwen(char*str)
char*p1,*p2;
inti,t=0;
p1=str;
p2=_____str+strlen(str)-1____;
str+strlen(str)
for(i=0;
=strlen(str)/2;
if(*p1++!
=*p2--)
{
t=1;
break;
}
if(_t==0或!
t _)t==0
return("
);
else
charstr[50];
printf("
Input:
scanf("
%s"
str);
___huiwen(str)
_____);
huiwen(srt)
2.下面程序完成以下功能:
(1)trans()函数将二维数组a进行转置,即行列互换,如下图所示;
12341257
24692481
58973696
7162149721
转置前转置后
(2)findmin()函数求新数组中对角线(左上到右下)上的最小元素的值;
请将程序填写完整。
voidtrans(intb[4][4])/*转置函数*/
inti,j,temp;
for(i=0;
4;
for(j=_0__;
j<
j++)
temp=b[i][j];
b[i][j]=b[j][i];
b[j][i]=temp;
intfindmin(intb[4][4])/*求对角线上最小的元素*/
intmin,i,j;
min=_______;
if(__b[i][i]<
min___)
min=_b[i][i]____;
returnmin;
inti,j;
inta[4][4],min;
for(j=0;
a[i][j]);
trans(a);
printf(“theresultis:
”);
%5d"
a[i][j]);
\n"
min=_findmin(a)__;
theminis%5d\n"
min);