c语言期末题库选择题.docx
《c语言期末题库选择题.docx》由会员分享,可在线阅读,更多相关《c语言期末题库选择题.docx(14页珍藏版)》请在冰点文库上搜索。
c语言期末题库选择题
1.以下程序的输出结果是c。
main()
{structcmplx
{intx;;
inty;
}cnum[2]={1,3,2,7};
printf("%d\n",cnum[0].y/cnum[0].x*cnum[1].x);
}
A.0
B.3
C.6
D.1
2.设有以下语句c
typedefstructS{intg;charh;}T;
则下面叙述中正确的是。
A.可用S定义结构体变量
B.TÊÇstructSÀàÐ͵ıäÁ¿
C.可以用T定义结构体变量
D.SÊÇstructÀàÐ͵ıäÁ¿
3.以下叙述中错误的是(d)。
A.在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据
B.二进制文件打开后可以先读文件的末尾,而顺序文件不可以
C.在程序结束时,应当用fclose函数关闭已打开的文件
D.不可以用FILE定义指向二进制文件的文件指针
4.文件中有一个位置指针p,指向当前读写的位置,不可使p所指文件的
位置返回到文件的开头的是(c)。
A.fseek(p,0,0);
B.fseek(p,0,SEEK_SET);
C.fseek(p,-3L,SEEK_CUR);
D.rewind(p);
5.不合法的八进制数是d
A.01
B.0
C.07700
D.028
6.执行下列语句后变量x和y的值是(b)。
y=10;x=y++;
A.x=10,y=11
B.x=11,y=10
C.x=11,y=11
D.x=10,y=10
7.以下不正确的if语句形式是(d)。
A.if(xB.if(x>y&&x!
=y);
C.if(x==y)x+=y;
D.if(x!
=y)scanf("%d",&x)elsescanf("%d",&y);
8.若输入ab,程序运行结果为(a)。
main()
{staticchara[3];
scanf("%s",a);
printf("%c,%c",a[1],a[2]);
}
A.b,
B.a,b
C.程序出错
D.a,
9.以下程序段给数组所有元素输入数据,应在下划线处填入的是d
main()
{inta[10],i=0;
while(i<10)
scanf("%d",);
…
}
A.&a[i+1]
B.a+i
C.&a[++i]
D.a+(i++)
10以下叙述中正确的是(a)。
A.静态(static)类别变量的生存期贯穿于整个程序的运行期间
B.函数的形参都属于全局变量
C.未在定义语句中赋初值的auto变量和static变量的初值都是随机值
D.全局变量的作用域一定比局部变量的作用域范围大
11.下列叙述中不正确的是d
A.C程序的main函数可以没有参数
B.C程序的main函数若有参数时,第一个参数的值最少是1
C.C程序的main函数可以有参数
D.main函数的第一个参数必须是整数,其名字必须是argc;第二个参数可以定义成:
char*argv[],名字必须是argv。
12.为了提高程序的运行速度,在函数中对于整型或指针可以使用(d)型的变量。
A.static
B.auto
C.extern
D.register
13.以下程序的输出结果是c
main()
{chars[]="ABCD",*p;
for(p=s;p
printf("%s\n",p);
}
A.
B.
C.
D.
14.以下程序的输出结果是c
voidfun(int*s)
{staticintj=0;
do
s[j]+=s[j+1];
while(++j<2);
}
main()
{intk,a[10]={1,2,3,4,5};
for(k=1;k<3;k++)
fun(a);
for(k=0;k<3;k++)
printf("%d",a[k]);
}
A.34756
B.234
C.357
D.12345
15.以下程序的输出结果是d。
structst
{intx;
int*y;
}*p;
intdt[4]={10,20,30,40};
structstaa[4]={50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0]};
main()
{p=aa;
pritnf("%d\n",++p->x);
pritnf("%d\n",(++p)->x);
pritnf("%d\n",++(*p->y));
}
A.
B.
C.
D.
16.C语言中,文件由(b)。
A.记录组成
B.由字符(字节)序列组成
C.由数据块组成
D.由数据行组成
17.整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的
表达式是(a)。
A.x^y
B.x||y
C.x&y
D.x|y
18.下列变量定义中合法的是(a)。
A.short_a=1-.1e-1;
B.float2_and=1-e-3;
C.longdo=0xfdaL;
D.doubleb=1+5e2.5;
19.下列程序段的输出结果为(c)。
inta=7,b=9,t;t=a*=a>b?
a:
b;printf("%d",t);
A.7
B.49
C.63
D.9
20.下列运算符中优先j级别最低的运算符是c
A.+
B.!
=
C.||
D.<=
21.以下程序的运行结果是(b)。
main()
{intn;
for(n=1;n<=10;n++)
{
if(n%3==0)continue;
printf("%d",n);
}
}
A.12
B.12457810
C.1234567890
D.369
22.以下程序的输出结果是a
main()
{intx,i;
for(i=1;i<=100;i++)
{x=i;
if(++x%2==0)
if(++x%3==0)
if(++x%7==0)
printf("%d",x);
}
printf("\n");
}
A.2870
B.3981
C.4284
D.2668
23.以下对一维整型数组a的正确说明是()。
A.#defineSIZE10(换行)inta[SIZE];
B.inta(10);
C.intn;scanf("%d",&n);inta[n];
D.intn=10,a[n];
24.C语言源程序文件经过C编译程序编译后生成的目标文件的后缀为c
A..c
B..bas
C..obj
D..exe
25.若使用一维数组名作函数实参,则以下正确的说法是(d)。
A.实参数组类型与形参数组类型可以不匹配
B.在被调用函数中,必须考虑形参数组的大小
C.实参数组名与形参数组名必须一致
D.必须在主调函数中说明此数组的大小
26.以下程序的输出结果是d
main()
{inta[]={1,2,3,4},i,x=0;
for(i=0;i<4;i++)
{sub(a,&x);printf("%d",x);}
printf("\n");
}
sub(int*s,int*y)
{staticintt=3;
*y=s[t];t--;
}
A.4444
B.0000
C.1234
D.4321
27.sizeof(float)是(b)。
A.一种函数调用
B.一个整型表达式
C.一个双精度型表达式
D.一个不合法的表达式
28.enuma{sum=9,mon=-1,tue};定义了(d)。
A.枚举变量
B.整数9和-1
C.3个标识符
D.枚举数据类型
29.以下可作为函数fopen中第二个参数的正确格式是(b)。
A.w
B."w"
C.'w'
D.(w)
30.在C程序中,可把整型数以二进制形式存放到文件中的函数是(b)。
A.fread函数
B.fprintf函数
C.fputc函数
D.fwrite函数
31.已定义ch为字符型变量,以下赋值语句中错误的是(d)。
A.ch=NULL;
B.ch=62+3;
C.ch='\xaa';
D.ch='\';
32.下列选项中,合法的C语言关键字是(d)。
A.cher
B.integer
C.VAR
D.default
33.下面四个选项中,均是不合法的用户标识符的选项是(c)。
A._123tempint
B.AP_0do
C.b-agotoint
D.floatla0_A
34.下列程序的输出为(b)。
main()
{inty=10;
while(y--);
printf("y=%d\n",y);
}
A.while构成无限循环
B.y=-1
C.y=0
D.y=1
35.以下不符合C语言语法的赋值语句是(c)。
A.a=b=5;
B.y=(a=3,6*5);
C.a=1,b=2
D.j=j+1;
36.C语言的switch语句中case后b
A.可为任何量或表达式
B.只能为常量或常量表达式
C.可为常量或表达式或有确定值的变量及表达式
D.只能为常量
37.下面程序的运行结果是a
#include
main()
{
inty=10;
do{y--;}while(--y);
printf("%d\n",y--);
}
A.0
B.1
C.8
D.-1
38.对for(表达式1;;表达式3)可理解为(a)。
A.for(表达式1;1;表达式3)
B.for(表达式1;0;表达式3)
C.for(表达式1;表达式1;表达式3)
D.for(表达式1;表达式3;表达式3)
39.下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空c
#include
main()
{
inti=0,j,k;
do{i++;k=316-13*i;}while(______);
j=k/11;
printf("316=13*%d+11*%d",i,j);
}
A.k%11==0
B.k/11
C.k%11
D.k/11==0
40.若有说明:
inti,j=2,*p=&i;,则能完成i=j赋值功能的语句是(c)。
A.i=*p;
B.i=&j;
C.*p=*&j;
D.i=**p;
41.以下程序的功能是:
a
main(){
inta=10,b=20,t;
int*x=&a,*y=&b;
t=*x;
*x=*y;
*y=t;
}
A.交换a,b两个变量的值
B.交换a,b两个变量的地址
C.比较a,b的大小
D.以上都错