自学考试《C语言程序设计》试题及答案Word文件下载.docx
《自学考试《C语言程序设计》试题及答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《自学考试《C语言程序设计》试题及答案Word文件下载.docx(59页珍藏版)》请在冰豆网上搜索。
}
二、选择题
1、以下选项中属于C语言的数据类型是(
)。
A.复合型
B.双精度型
C.逻辑型
D.集合型
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
C.9
D.10
9、两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是(
if(x++>
5)printf(“%d”,x);
else
printf(“%d\n”,x--);
A.7和5
B.6和3
C.7和4
D.6和4
10、设有如下定义:
char*aa[2]={“abcd”,“ABCD”};
则以下说法中正确的是(
A)aa数组成元素的值分别是“abcd”和ABCD“
B)aa是指针变量,它指向含有两个数组元素的字符型一维数组
C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址
D)aa数组的两个元素中各自存放了字符‘a’和‘A’的地址
11、以下语句的输出结果是(
inta=-1,b=4,k;
k=(++a<
0)&
&
!
(b--<
=0);
printf(“%d,%d,%d\n”,k,a,b);
A.1,0,4
B.1,0,3
C.0,0,3
D.0,0,4
12、下列程序的输出结果是(
char
*p1=“abcd”,
*p2=“ABCD”,
str[50]=“xyz”;
strcpy(str+2,strcat(p1+2,p2+1));
printf(“%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);
printf(“%d\n”,a);
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++;
printf(“%d,”,d);
{inta=3;
fun(a);
d+=a++;
printf(“%d\n”,d);
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’,‘l’,‘o’,‘!
’};
B.charb[10];
b=“Hello!
”;
C.charb[10];
strcpy(b,“Hello!
”);
D.charb[10]=“Hello!
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;
printf(“%d,”,*(p++));
printf(“%d\n”,**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、求主次对角线之和。
{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);
3、以下程序是建立一个名为myfile的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。
#include
{
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个学生的信息,要求输出总平均成绩最高的学生信息,包括学号、性别、姓名和平均成绩。
一、填空题
1、int,2个字节,-32768~+32767.
2、整型、实型、字符型。
3、-4.
4、结构体的成员占有各自不同的空间,而共用体的各成员放到同一存储空间。
5、a=1,b=3,c=2
6、“a”是字符串常量,而‘a’是字符常量。
7、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==