C语言自测题.docx
《C语言自测题.docx》由会员分享,可在线阅读,更多相关《C语言自测题.docx(11页珍藏版)》请在冰豆网上搜索。
C语言自测题
单选题
1.A是构成C语言的基本单位。
A.函数B.过程C.子程序D.子例程
2.能正确表示a≥10或a≤0关系表达式的是C。
A.a>=10ora<=10B.a>=10|a<=0C.a>=10||a<=0D.(a>=10,a<=0)
3.以下B是C合法的标识符。
A.A#CB.entryC.voidD.ab*
4.设c1是char类型的变量,则判断c1是否为数字字符的正确表达式是A。
A.(c1>=’0’)&&(c1<=’9’)B.(c1>=0)&&(c1<=9)
C.’0’<=c1<=’9’D.(c1>=’0’)||(c1<=’9’)
5.在C语言中,字符型数据在内存中是以D形式存放的。
A.原码B.BCD码C.反码D.ASCII码
6.若有以下类型说明语句:
charw;intx;floaty;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.若有以下定义和语句,不正确的引用方式是:
D。
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;charname[20];floatscore;};
C.struct{intsno;charname[20];floatscore;}stu[100];
D.structstudent{intsno;charname[20];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的值是:
A。
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;break;
case8:
n+=4;break;
case9:
n++;
}
printf(“%d\n”,n);
A.8B.9C.10D.11
3.下面程序的运行结果是B。
#include
main()
{inty;
for(y=9;y>0;y--)
{if(y%3!
=0)
continue;printf("%d",y);}
printf("\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()
{chara[20]=”abcdefgh”;{chara[20]=”abcdefgh”;
char*p=a;fun(p);fun(a[5]);
…………
}}
5.若输入字符串“Szu!
”,程序的运行结果是C。
#include
voidmain()
{charc;
while((c=getchar())!
='\n')
{if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
{c=c-4;
if(c<'a'&&c>='a'-4||c<'A')c=c+26;
}
printf("%c",c);
}
}
A.Wdy!
B.Szu!
C.Ovq!
D.Wdy!
!
!
6.程序的运行结果是A。
#include
intf1(int);
voidmain()
{
inta=1,i;
for(i=0;i<3;i++)
printf("%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。
#include
voidmain()
{
inta[2][3],b[3][2],i,j;
for(i=0;i<=1;i++)
for(j=0;j<=2;j++)
{a[i][j]=3*i+j+1;
b[j][i]=a[i][j];}
for(i=0;i<=2;i++)
{
for(j=0;j<=1;j++)
printf("%2d",b[i][j]);
printf("\n");
}
}
A.14B.123C.33D.25
254563336
363347
8.下列程序的运行情况为C。
#include
intfun(intx)
{
intp;
if(x==0||x==1)return3;
p=fun(x-2)+1;
returnp;
}
voidmain()
{
printf(“%d\n”,fun(7));
}
A.5B.9C.6D.3
9.下列程序的输出结果为D。
#include
voidmain()
{voidf(int*x,intn);
inti,a[5]={2,4,3,1,10};
f(a,5);
for(i=0;i<5;i++)
printf("%d,",a[i]);
printf("\n");
}
voidf(int*x,intn)
{int*p,temp,*i,*j,m=(n-1)/2;
i=x;j=x+n-1;p=x+m;
for(;i<=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。
#include
#include
main()
{FILE*fp;
charstr[]=”enjoy”;
inti;
fp=fopen(“study1”,”w”);
for(i=0;ifputc(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
voidmain()
{
floati,c;
charg;
printf("请输入学生成绩:
");
scanf("%f",&c);
if(c>0&&c<=100)
{
i=c/10;
switch(i)
{
case10:
point='A';break;
case9:
point='A';break;
case8:
point='B';break;
case7:
point='C';break;
case6:
point='D';break;
case5:
case4:
case3:
case2:
case1:
case0:
point='E';break;
}
printf("pointis%c\n",point);
}
else
printf("error");
}
2.编写程序,实现由键盘输入15个整数,按照由大到小的顺序重新排序,并输出排序后的结果。
#include
Voidmain()
{
inta[15];
inti,j,t;
printf("input15numbers:
\n");
for(i=0;i<15;i++)
scanf("%d",&a[i];
printf("\n");
for(j=0;j<14;j++)
for(i=0;i<14-j;i++)
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
printf("thesortednumbers:
\n");
for(i=0;i<15;i++)
print("%d",a[i]);
printf("\n");
}
编写程序:
计算5!
+7!
要求定义一个求阶乘函数(fac),调用函数来完成计算。
#include
intfac(inta);
voidmain()
{
inta=5,b=7,c;
c=fac(5)+fac(7);
printf("5!
+7!
%d",c);
printf("\n");
}
intfac(inta)
{
inti,b=1;
for(i=1;i<=a;i++)
b=b*i;
return(b);
}
4.用结构体存放下表中的学生成绩,计算平均成绩(avg),将表中的数据和avg存入文件student中。
namecomputerEnglishmath
zhao90.0085.0075.00
qian86.0070.0065.00
sun75.0056.0080.00
#include
structstudent
{charname[3];
floatsco