《C语言程序设计》试题二及答案Word格式文档下载.docx
《《C语言程序设计》试题二及答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》试题二及答案Word格式文档下载.docx(11页珍藏版)》请在冰点文库上搜索。
2、以下说法中正确的是(
A.C语言程序总是从第一个的函数开始执行
B.在C语言程序中,要调用的函数必须在main()函数中定义
C.C语言程序总是从main()函数开始执行
D.C语言程序中的main()函数必须放在程序的开始部分
3、选出下列标识符中不是合法的标识符的是(
A.hot_do
B.cat1
C._pri
D.2ab
4、下列描述中不正确的是(
A.字符型数组中可能存放字符串。
B.可以对字符型数组进行整体输入、输出。
C.可以对整型数组进行整体输入、输出。
D.不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。
5、若已定义:
inta[9],*p=a;
并在以后的语句中未改变p的值,不能表示a[1]地址的表达式为(
A.p+1
B.a+1
C.a++
D.++p
6、设有如下定义:
intx=10,y=3,z;
则语句printf("
%d\n"
z=(x%y,x/y));
的输出结果是(
A.1
B.0
C.4
D.3
7、定义如下变量和数组:
inti,x[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句
for(i=0;
i<
3;
i++)printf("
%d"
x[i][2-i]);
)
5
9
B.1
4
7
C.3
D.3
6
9
8、读出以下语句的输出结果是(
intx=10,y=10;
printf(“%d
%d\n”,x--,--y);
A.10
10
B.9
9
C.9
D.10
9
9、两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是(
if(x++>
5)
printf("
x);
else
x--);
A.7和5
B.6和3
C.7和4
D.6和4
10、设有如下定义:
char*aa[2]={"
abcd"
"
ABCD"
};
则以下说法中正确的是(
A)aa数组成元素的值分别是"
和ABCD"
B)aa是指针变量,它指向含有两个数组元素的字符型一维数组
C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址
D)aa数组的两个元素中各自存放了字符'
a'
和'
A'
的地址
11、以下语句的输出结果是(
inta=-1,b=4,k;
k=(++a<
0)&
&
!
(b--<
=0);
%d,%d,%d\n"
k,a,b);
A.1,0,4
B.1,0,3
C.0,0,3
D.0,0,4
12、下列程序的输出结果是(
*p1="
*p2="
str[50]="
xyz"
;
strcpy(str+2,strcat(p1+2,p2+1));
%s"
str);
A.xyabcAB
B.abcABz
C.ABabcz
D.xycdBCD
13、执行下面的程序后,a的值是(
#defineSQR(X)X*X
main()
{inta=10,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
a);
A.10
C.9
D.0
14、14、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i个元素的地址为(
A.P+i*2
B.
P+(i-1)*2
C.
P+(i-1)
D.
P+i
15、下列程序执行后输出的结果是(
intd=1;
fun(intp)
{intd=5;
d+=p++;
%d,"
d);
{inta=3;
fun(a);
d+=a++;
A.8,4
B.9,6
C.9,4
D.8,5
16、表达式:
10!
=9的值是(
A.true
B.非零值
C.0
D.1
17、若有说明:
inti,j=7,*p=&
i;
则与i=j;
等价的语句是(
A.i=*p;
B.*p=*&
j;
C.i=&
D.i=**p;
18、不能把字符串:
Hello!
赋给数组b的语句是(
A.charb[10]={'
H'
'
e'
l'
o'
'
B.charb[10];
b="
"
C.charb[10];
strcpy(b,"
);
D.charb[10]="
19、在C程序中有如下语句:
char*func(intx,inty);
它是(
A.对函数func的定义。
B.对函数func的调用。
C.对函数func的原型说明。
D.不合法的。
20、以下程序的输出结果是(
charstr[15]=”hello!
”;
printf(“%d\n”,strlen(str));
A.15
B.14
C.7
D.6
三、阅读程序题
1、intx=6,y=7;
printf(“%d,”,x++);
printf(“%d\n”,++y);
程序的输出结果是
2、floatf=3.1415927;
printf(“%f,%5.4f,%3.3f”,f,f,f);
则程序的输出结果是
3、a=3;
a+=(a<
1)?
a:
1;
printf(“%d”,a);
结果是
4、main()
{inta[5]={2,4,6,8,10},*P,**k;
p=a;
k=&
p;
*(p++));
**k);
程序的输出结果是
。
5、main()
{inta,b;
for(a=1,b=1;
a<
=100;
a++)
{if(b>
=20)
break;
if(b%3==1)
{b+=3;
continue;
b-=5;
}
程序的输出结果a的值为
四、程序填空题
1、求主次对角线之和。
main()
{staticinta[][3]={9,7,5,1,2,4,6,8};
intI,j,s1=0,s2=0;
for(I=0;
I<
I++)
for(j=0;
j<
j++)
{if(
s1=s1+a[I][j];
if(
s2=s2+a[I][j];
printf(“%d\n%d\n”,s1,s2);
}
2、从键盘上输入10个数,求其平均值。
{inti;
floatf,sum;
for(i=1,sum=0.0;
11;
i++)
{
;
printf(“average=%f\n”,sum/10);
23、以下程序是建立一个名为myfile的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。
#include<
stdio.h>
{
FILE*fp;
charc;
fp=
do
c=getchar();
fputs(c,fp);
}while(c!
=EOF);
五、编程题
1、三个整数a、b、c,由键盘输入,输出其中最大的数。
2、从键盘输入的10个整数中,找出第一个能被7整除的数。
若找到,打印此数后退出循环;
若未找到,打印“not
exist”。
3、有一个一维数组,内放10个学生成绩,写一个函数,求出平均分。
4、有N个学生,每个学生的信息包括学号、性别、姓名、四门课的成绩,从键盘上输入N个学生的信息,要求输出总平均成绩最高的学生信息,包括学号、性别、姓名和平均成绩。
《C语言程序设计》试题二答案
1、int,2个字节,-32768~+32767。
2、整型、实型、字符型。
3、-4。
4
4、结构体的成员占有各自不同的空间,而共用体的各成员放到同一存储空间。
5、a=1,b=3,c=2
7、”a”是字符串常量,而’a’是字符常量。
8、7,1。
1、B
2、C
3、D
4、C
5、C
6、D
7、C
8、D
9、C
10、D
11、D
12、D
13、B
14、B
15、A
16、D
17、B
18、B
19、C
20、D
(1)6,8
(2)3.141593,3.1416,3.142
(3)4
(4)2,4
(5)8
1、I==j
I+j==2
2、scanf(“%f”,&
f);
sum+=f;
3、fopen(“myfile”,w)
fclose(fp);
1、main()
{
inta,b,c;
printf(“请输入三个整数:
”);
scanf(“%d,%d,%d”,&
if(a<
b)
if(b<
c)
printf(“max=%d\n”,c);
printf(“max=%d\n”,b);
elseif(a<
printf(“max=%d\n”,a);
2、#include”stdio.h”
intI,a;
for(I=1;
=10;
scanf(“%d”,&
a);
if(a%7==0)
if(I==11)
printf(“notexist”);
3、floataverage(floatarray[],intn)
intI;
floataver,sum=array[0];
for(I=1;
n;
sum=sum+array[I];
aver=sum/n;
return(aver);
floatave,score[10];
for(I=0;
10;
scanf("
%f"
&
score[I]);
ave=average(score,10);
%f\n"
ave);
4、#include"
stdio.h"
#defineN3
structstudent
longstu_num;
charsex;
charname[15];
intscore[4];
floataverage;
};
intI,j,index;
floatsum,max;
structstudentstuarr[N];
N;
pleaseinput%dstudentinformation:
\n"
I+1);
scanf("
%ld,%c,%s"
stuarr[I].stu_num,&
stuarr[I].sex,stuarr[I].name);
for(j=0;
4;
stuarr[I].score[j]);
sum=0.0;
sum+=stuarr[I].score[j];
stuarr[I].average=sum/4.0;
max=stuarr[0].average;
index=0;
if(stuarr[I].average>
max)
{max=stuarr[I].average;
index=I;
总平均成绩最高的学生信息是学号=%ld,性别=%c,姓名=%s,平均成绩=%4.1f\n"
stuarr[index].stu_num,stuarr[index].sex,stuarr[index].name,stuarr[index].average);