C语言自测题Word格式文档下载.docx
《C语言自测题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言自测题Word格式文档下载.docx(11页珍藏版)》请在冰点文库上搜索。
doublez,则表达式w*x+z-y结果的类型是:
D。
A.floatB.charC.intD.double
7.若有inta=0,x=1;
则循环语句while(a<
10)x++;
a++;
循环执行A。
A.无限次 B.不确定次C.10次 D.9次
8.定义intn=5;
下面语句的输出结果为B。
printf(n%2?
“AAA”:
”BBB”);
A.无输出B.AAAC.BBBD.AAABBB
9.下列语句中,正确的是:
D
A.inta[3][]={{1},{2}}B.inta[][]={{1,2},{4},{5,6,7}};
C.inta[3][]={{1,2},{4,5}};
D.inta[4][3]={{1},{4,2},{0,6,7}};
10.下列定义不正确的是:
A。
A.inti,*p=i;
B.int*p,i;
C.inti,*p=&
i;
D.inti,*p;
11.在C语言程序中,有关函数的描述正确的是C。
A.函数的定义可以嵌套,但函数的调用不可以嵌套。
B.一个C语言程序的执行是从函数main开始,直到最后一个函数结束。
C.C语言函数的返回值类型由定义函数时所指定的函数值类型决定。
D.若一个C语言程序由多个函数组成,必须完全按调用顺序书写程序。
12.调用函数时若以数组名(一维数组)作为实参,则实际上传递的是C。
A.数组第一个元素值B.数组中所有元素值
C.数组第一个元素地址D.数组元素个数
13.有如下定义“charstr1[20]=”Visual”,str2[10]=”C++6.0”;
intc;
”,调用函数strcat(str1,str2);
后,str1的内容是C。
A.VisualB.C++6.0C.VisualC++6.0D.C++6.0Visual
14.若定义:
charstr[3]=”AB”;
char*p=str+1;
则*(p+1)的值为C。
A.”B”B.’B’C.’\0’D.0
15.若有以下定义和语句,不正确的引用方式是:
Structperson
{intno;
charname[10];
}stu,*p=&
stu;
A.stu.noB.(*p).noC.p->noD.stu->no
16.下列正确的预编译命令是BD。
A.definePI3.14159B.#defineP(a,b)strcpy(a,b)
C.#definestdio.hD.#definePI3.14159
17.放100个学生的数据、包括学号、姓名、成绩。
在如下的定义中,不正确的是B。
A.structstudent{intsno;
charname[20];
floatscore;
}stu[100];
B.structstudentstu[100]{intsno;
};
C.struct{intsno;
D.structstudent{intsno;
floatscore};
structstudentstu[100];
18.在下列语句中,将C定义为文件型指针变量的是B。
A.FILEcB.FILE*cC.filecD.file*c
19.若用函数打开一个已存在的文本文件,保留该文件原有数据,且可读可写,文件打开模式是:
C。
A.”r”B.”w+”C.”a+”D.”a”
二、程序阅读题
1.假定所有变量均已正确定义,则下列程序段运行后y的值是:
inta=0,y=10;
if(a=0)y=y-1;
elseif(a>
0)y=y+1;
elsey+=y;
A.20B.11C.9D.0
2.定义intn=7下面程序段的执行结果为C。
switch(n)
{
case6:
n+=2;
break;
case7:
n+=3;
case8:
n+=4;
case9:
n++;
}
printf(“%d\n”,n);
A.8B.9C.10D.11
3.下面程序的运行结果是B。
#include<
stdio.h>
main()
{inty;
for(y=9;
y>
0;
y--)
{if(y%3!
=0)
continue;
printf("
%d"
y);
\n"
);
A.369B.963C.875D.246
4.有一函数的定义:
voidfun(char*s){……}不正确的函数调用是D。
A.main()B.main()
{chara[20]=”abcdefgh”;
{chara[20]=”abcdefgh”;
fun(a);
fun(&
a[0]);
…………
}}
C.main()D.main()
char*p=a;
fun(p);
fun(a[5]);
…………
5.若输入字符串“Szu!
”,程序的运行结果是C。
voidmain()
{charc;
while((c=getchar())!
='
\n'
)
{if((c>
a'
&
c<
z'
)||(c>
A'
Z'
))
{c=c-4;
if(c<
'
c>
-4||c<
)c=c+26;
}
printf("
%c"
c);
A.Wdy!
B.Szu!
C.Ovq!
D.Wdy!
!
6.程序的运行结果是A。
intf1(int);
{
inta=1,i;
for(i=0;
i<
3;
i++)
%d"
f1(a));
intf1(inta)
{autointb=0;
staticc=3;
a=a+1;
b=b+1;
c=c+1;
return(a+b+c);
A.789B.777C.8910D.24
7.下列程序的输出结果为A。
inta[2][3],b[3][2],i,j;
for(i=0;
=1;
for(j=0;
j<
=2;
j++)
{a[i][j]=3*i+j+1;
b[j][i]=a[i][j];
}
{
for(j=0;
%2d"
b[i][j]);
A.14B.123C.33D.25
254563336
363347
8.下列程序的运行情况为C。
intfun(intx)
intp;
if(x==0||x==1)return3;
p=fun(x-2)+1;
returnp;
printf(“%d\n”,fun(7));
A.5B.9C.6D.3
9.下列程序的输出结果为D。
{voidf(int*x,intn);
inti,a[5]={2,4,3,1,10};
f(a,5);
5;
%d,"
a[i]);
voidf(int*x,intn)
{int*p,temp,*i,*j,m=(n-1)/2;
i=x;
j=x+n-1;
p=x+m;
for(;
=p;
i++,j--)
{temp=*i;
*i=*j;
*j=temp;
return
A.2,4,3,1,10B.10,4,3,2,1C.1,2,3,4,10D.10,1,3,4,2
10.下面程序的功能是A。
string.h>
{FILE*fp;
charstr[]=”enjoy”;
inti;
fp=fopen(“study1”,”w”);
strlen(str);
fputc(str[i],fp);
fclose(fp);
A.在屏幕上显示“enjoy”B.把“enjoy”存入study1
C.在打印机上打印出“enjoy”D.在屏幕上显示“study1”
三、编程题
1.编写程序,由键盘输入某位同学的百分制成绩,要求:
(1)将其转换为等级制输出。
转换标准是:
90-100分,‘A’,80-89分,‘B’,70-79分,‘C’,60-69分,‘D’,60分以下,‘F’。
(2)如输入的成绩不在0-100之间,提示“输入错误!
”。
#include<
floati,c;
charg;
请输入学生成绩:
"
scanf("
%f"
&
c);
if(c>
0&
c<
=100)
i=c/10;
switch(i)
case10:
point='
;
break;
B'
C'
D'
case5:
case4:
case3:
case2:
case1:
case0:
E'
pointis%c\n"
point);
else
printf("
error"
2.编写程序,实现由键盘输入15个整数,按照由大到小的顺序重新排序,并输出排序后的结果。
Voidmain()
inta[15];
inti,j,t;
input15numbers:
15;
scanf("
a[i];
14;
14-j;
if(a[i]>
a[i+1])
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
thesortednumbers:
print("
编写程序:
计算5!
+7!
要求定义一个求阶乘函数(fac),调用函数来完成计算。
intfac(inta);
inta=5,b=7,c;
c=fac(5)+fac(7);
5!
+7!
intfac(inta)
inti,b=1;
for(i=1;
=a;
b=b*i;
return(b);
4.用结构体存放下表中的学生成绩,计算平均成绩(avg),将表中的数据和avg存入文件student中。
namecomputerEnglishmath
zhao90.0085.0075.00
qian86.0070.0065.00
sun75.0056.0080.00
structstudent
{charname[3];
floatsco