北华大学C语言题库精简打印版全Word下载.docx
《北华大学C语言题库精简打印版全Word下载.docx》由会员分享,可在线阅读,更多相关《北华大学C语言题库精简打印版全Word下载.docx(56页珍藏版)》请在冰豆网上搜索。
scanf("
%d,%c,%f"
&
a,&
c,&
f);
若通过键盘输入:
10,A,12.5则a=10,c='
A'
f=12.5.Y
28.若有inta[3][4];
*(a+1)+2表示a[1][2]元素的地址.Y
29.若通过键盘输入:
30.若a和b类型相同,在执行了赋值语句a=b;
后b中的值将放入a中,b中的值不变.Y
31.如果想使一个数组中全部元素的值为0,可以写成inta[10]={0*10};
32.枚举类型的数据不能从键盘上直接输入、输出.Y
33.结构体类型的定义允许嵌套.Y
34.将整数以二进制形式存盘比以ASCII形式存盘省空间、运算快.Y
35.将一维双精度实数数组x的下标为i的变量的地址赋给指针变量p的语句为:
double*p,x[10];
inti=5;
p=&
x[i];
36.将数组a的首地址赋给指针变量p的语句是p=a;
37.共用体类型变量不能被初始化.Y
38.共同体变量所占的存长度等于最长的成员的长度.Y
39.对指针变量的初始化inta,*pa=&
a,*pc=0;
是正确的.Y
40.对文件进行读写操作,必须先打开,可调用函数fopen().Y
41.对枚举类型名的定义enuma{sum=9,mon=-1,tue};
42.对结构体类型的变量的成员可以象普通变量一样参与各种运算.Y
43.动态存储分配,可调用函数malloc(),如int*p;
p=(int*)malloc(sizeof(p));
44.当定义一个结构体变量时,系统分配给它的存是各成员所需存量的总和.Y
45.当调用函数时,实参是一个数组名,则向函数传送的是数组的首地址.Y
46.不仅可将C源程序存在磁盘上,还可将数据按数据类型分别以文件的形式存在磁盘上.Y
47.x*=y+8等价于x=x*(y+8).Y
48.while和for循环都是先判断表达式的值,后执行循环体语句.Y
49.typedeflongintBIGGY;
的作用是给长整型起了一个别名BIGGY.Y
50.staticchara[]="
Thisisaprogram."
;
printf("
%s"
a);
51.rewind(fp);
可使fp所指文件的位置返回到文件的开头.Y
52.r_1_2是C语言合法的用户定义标识符.Y
53.intn;
scanf("
%d"
n);
inta[n];
是不合法的.Y
54.inti=3,j=5;
if(i>
j);
55.inti,*p=&
i;
是正确的C说明.Y
56.inta[3][4]={{1},{5},{9}};
它的作用是将数组各行第一列的元素赋初值,其余元素值为0.Y
57.int*p[6];
定义了6个下标变量的整型指针.Y
58.fseek()函数一般用于二进制文件.Y
59.for(i=4;
i>
1;
i--)for(j=1;
j<
j++)putchar('
#'
输出为######.Y
60.do-while循环是先执行循环体语句,后判断表达式的值.Y
61.C语言中,文件由字符(字节)序列组成.Y
62.C语言规定,函数返回值的类型是由在定义该函数时所指定的函数类型所决定的.Y
63.C语言程序中,当调用函数时实参和形参各占一个独立的存储单元Y
64.charc;
c=getchar();
该程序段的功能是将用户从键盘输入的字符赋给变量c.Y
65.char*s1="
hello"
*s2;
s2=s1;
66.char(*p)[6];
若p值为1000,则p++;
后p值为1006.Y
67.a=(b=4)+(c=6)是一个合法的赋值表达式.Y
68.0x173是"
正确"
的十六进制常数.Y
69.#define和printf都不是C语句.Y
判断题-错误篇
70.执行表达式(int)i后,i的类型一定变为整型.N
71.在一个C程序中,main函数必须出现在所有函数之前.N
72.在C语言中,为句构成的循环,while后一对圆括号中表达式的值应该是1.N
73.在C语言中,调用函数必须在一条独立的语句中完成.N
74.在C程序中,每行中只能写一条语句.N
75.在C程序中,赋值运算符的优先级最低.N
76.语句printf("
%f%%"
1.0/3);
输出为0.333333.N
77.与if(E)语句中的(E)等价的表达式是(E==0).N
78.用户定义的函数也可调用main函数.N
79.以下各数均不是合法的八进制数:
256、03A2、-0127.N
80.已知ch是字符型变量,则ch="
\"
是正确的赋值语句.N
81.一个变量可以同时被定义为多种类型.N
82.一个include命令可以指定多个被包含的文件.N
83.数组说明inta[3][3]={1,2,3,4,5,6,7};
是正确的.N
84.数组定义inta[10];
占存10个字节.N
85.数组定义inta(10);
86.若有宏定义:
#defineS(a,b)t=a;
a=b;
b=t由于变量t没定义,所以此宏定义是错误的.N
87.若i=3,则printf("
-i++);
输出的值为-4.N
88.若a是实型变量,在执行了a=5;
后,a将变为整型变量.N
89.若a和b的类型相同,在执行了a=b;
后,b中的值将丢失.N
90.任何结构体类型的变量都可以互相赋值.N
91.枚举类型的数据与字符串在使用上相同.N
92.结构体类型只有一种.N
93.将函数fun的入口地址赋给指针变量p的语句是p=fun();
N
94.函数的定义和函数的调用均可以嵌套.N
95.函数strlen("
ASDFG\n"
)的值是7.N
96.定义结构体的保留字是struc.N
97.调用scanf()函数进行字符数组输入时,空格和换行符都可以作为字符串的一部分而能读入.N
98.当输入数值数据时,对于整型变量只能输入整型值;
对于实型变量只能输入实型值.N
99.程序中的变量代表存中的一个存储单元,它的值不可以随时修改.N
100.参加位运算的数据可以是任何类型的数据.N
101.staticcharstr[]="
China"
没有定义数组元素个数.N
102.sqrt(m)是求m平方的函数.N
103.inta[]={3.1,5.8,6.7,-3.6},i;
for(i=0;
i<
4;
i++)printf("
a[i]);
能输出数组元素a[2]的值.N
104.intk=8567;
|%-6d|\n"
k);
的输出为|008567|.N
105.inti=3,j=5;
j);
j++;
elsei++;
106.inta[2][3];
按照它在存的排列次序,a数组的所有元素是a[0][0]、a[1][0]、a[0][1]、a[1][1]、a[0][2]、a[1][2].N
107.inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;
则p+5相当于a[5].N
108.if语句后面的控制表达式只能使用关系表达式或逻辑表达式.N
109.if(strcmp(temp,str)>
0)中的条件是当字符串temp大于字符串str为真时.N
110.if(j=0)i++;
elsei--;
i的值为11.N
111.for(m=22;
m<
1000;
m++)if(m%3==0&
m%7!
=0)break;
是当m能被3整除或m不能被7整除时,结束本次循环进入下次循环.N
112.for(i=0,k=-1;
k=1;
k++,i++)printf("
*\n"
循环体一次也不执行.N
113.C语言中字符型、整型、实型都能用八进制表示.N
114.C语言中的文件类型只有文本文件一种.N
115.C语言中的文件类型只有二进制文件一种.N
116.C语言的if语句嵌套时,if与else的匹配关系是每个else与if的匹配是任意的.N
117.C程序中有调用关系的所有函数必须放在同一个源程序文件中.N
118.continue语句不只用于循环语句中.N
119.chara[10]="
abcdefg"
printf("
%6s\n"
只输出前六个字符.N
120.char*s;
*s='
H'
121.#include"
stdio.h"
是每个程序中必须写的.N
二、选择题A篇
1.以下数据中,不正确的数值或字符常量是(A).
(A).c
(B).66
(C).0xaa
(D).50
2.设j和k都是int类型,则for循环语句:
for(j=0,k=0;
=9&
k!
=876;
j++)
k);
(A)
(A).最多执行10次
(B).最多执行9次
(C).是无限循环
(D).循环体一次也不执行
3.chara1[]="
abc"
a2[80]="
1234"
将a1串连接到a2串后面的语句是(A).
(A).strcat(a2,a1);
(B).strcpy(a2,a1);
(C).strcat(a1,a2);
(D).strcpy(a1,a2);
4.以下正确的说法是:
在C语言中(A).
(A).实参和与其对应的形参各占用独立的存储单元
(B).实参和与其对应的形参共占用一个存储单元
(C).只有当实参和与其对应的形参同名时才共占用存储单元
(D).形参是虚拟的,不占用存储单元
5.下列字符序列中,是C语言保留字的是(A).
(A).sizeof
(B).include
(C).scanf
(D).sqrt
6.以下选项中,与k=n++完全等价的表达式是(A).
(A).k=n,n=n+1
(B).n=n+1,k=n
(C).k=++n
(D).k+=n+1
7.在位运算中,操作数每左移一位,其结果相当于(A).
(A).操作数乘以2
(B).操作数除以2
(C).操作数除以4
(D).操作数乘以4
8.以下程序的运行结果是(A).
main()
{intn;
for(n=1;
n<
n++)
{
if(n%3==0)continue;
n);
}
(A).12457810
(B).369
(C).12
(D).1234567890
9.inta=1,b=2,c=3;
if(a>
b)a=b;
c)a=c;
则a的值为(A).
(A).1
(B).2
(C).3
(D).不一定
10.下列定义数组的语句中正确的是(A).
(A).#definesize10charstr1[size],str2[size+2];
(B).charstr[];
(C).intnum['
10'
];
(D).intn=5;
inta[n][n+2];
11.C语言中运算对象必须是整型的运算符是(A).
(A).%=
(B)./
(C).=
(D).〈=
12.C语言中while和do-while循环的主要区别是(A).
(A).do-while的循环体至少无条件执行一次
(B).while的循环控制条件比do-while的循环控制条件更严格
(C).do-while允许从外部转到循环体
(D).do-while的循环体不能是复合语句
13.16.在C语言中,形参的缺省存储类别是(A).
(A).auto
(B).register
(C).static
(D).extern
14.从键盘上输入某字符串时,不可使用的函数是(A).
(A).getchar()
(B).gets()
(C).scanf()
(D).fread()
15.以下数据中,不正确的数值或字符常量是(A).
(A).8.9e1.2
(B).10
(C).0xff00
(D).82.5
16.以下不是无限循环的语句为(A).
(A).for(y=0,x=1;
x>
++y;
x=i++)i=x;
(B).for(;
x++=i);
(C).while
(1){x++;
(D).for(i=10;
i--)sum+=i;
17.while(fabs(t)<
1e-5)if(!
s/10)break;
循环结束的条件是(A).
(A).t>
=1e-5&
t<
=-1e-5
(B).fabs(t)<
1e-5&
!
s/10
(C).fabs(t)<
1e-5
(D).s/10==0
18.以下叙述中正确的是(A).
(A).构成C程序的基本单位是函数
(B).可以在一个函数中定义另一个函数
(C).main()函数必须放在其它函数之前
(D).所有被调用的函数一定要在调用之前进行定义
19.函数rewind的作用是(A).
(A).使位置指针重新返回文件的开头
(B).将位置指针指向文件中所要求的特定位置
(C).使位置指针指向文件的末尾
(D).使位置指针自动移至下一个字符位置
20.C语言程序中,当调用函数时(A).
(A).实参和虚参各占一个独立的存储单元
(B).实参和虚参可以共用存储单元
(C).可以由用户指定是否共用存储单元
(D).计算机系统自动确定是否共用存储单元
21.当定义一个结构体变量时,系统分配给它的存是(A).
(A).各成员所需存量的总和
(B).结构中第一个成员所需存量
(C).结构中最后一个成员所需存量
(D).成员中占存量最大者所需的容量
22.下列变量定义中合法的是(A).
(A).short_a=1-.1e-1;
(B).doubleb=1+5e2.5;
(C).longdo=0xfdaL;
(D).float2_and=1-e-3;
23.若有说明语句:
charc='
\72'
则变量c(A).
(A).包含1个字符
(B).包含2个字符
(C).包含3个字符
(D).说明不合法,c的值不确定
24.结构体类型的定义允许嵌套是指(A).
(A).成员是已经或正在定义的结构体型
(B).成员可以重名
(C).结构体型可以派生
(D).定义多个结构体型
25.先用语句定义字符型变量c,然后要将字符a赋给c,则下列语句中正确的是(A).
(A).c='
a'
(B).c="
a"
(C).c="
97"
(D).C='
97'
26.下列数组说明中,正确的是(A).
(A).staticcharstr[]="
(B).staticcharstr[];
str="
(C).staticcharstr1[5],str2[]={"
};
str1=str2;
(D).staticcharstr1[],str2[];
str2={"
strcpy(str1,str2);
27.若有int*p=(int*)malloc(sizeof(int));
则向存申请到存空间存入整数123的语句为(A).
(A).scanf("
p);
(B).scanf("
p);
(C).scanf("
*p);
(D).scanf("
**p);
28.以下叙述中正确的是(A).
(A).C程序中注释部分可以出现在程序中任意合适的地方
(B).花括号"
{"
}"
只能作为函数体的定界符
(C).构成C程序的基本单位是函数,所有函数名都可以由用户命名
(D).分号是C语句之间的分隔符,不是语句的一部分
29.执行下面程序后,输出结果是(A).
{inta=45,b=27,c=0;
c=max(a,b);
%d\n"
c);
intmax(intx,inty)
{intz;
if(x>
y)z=x;
elsez=y;
return(z);
(A).45
(B).27
(C).18
(D).72
30.设有以下语句,若0<
k<
4,下列选项中对字符串的非法引用是(A).
charstr[4][2]={"
aaa"
bbb"
ccc"
ddd"
},*strp[4];
intj;
for(j=0;
strp[j]=str[j];
(A).strp
(B).str[k]
(C).strp[k]
(D).*strp
31.9以下语句中,循环次数不为10次的语句是(A).
(A).for(i=1;
10;
i++);
(B).i=1;
do{i++;
}while(i<
=10);
(C).i=10;
while(i>
0){--i;
(D).i=1;
m:
if(i<
=10){i++;
gotom;
32.14以下不能正确进行字符串赋初值的语句是(A).
(A).charstr[5]="
good!
(B).charstr[]="
(C).char*str="
(D).charstr[5]={'
g'
'
o'
d'
33.18若有double*p,x[10];
使指针变量p指向元素x[5]的语句为(A).
(A).p=&
(B).p=x;
(C).p=x[i];
(D).p=&
(x+i)
34.C语言的if语句嵌套时,if与else的配对关系是(A).
(A).每个else总是与它上面的最近的并且尚未与其他else匹配的if配对
(B).每个else总是与最外层的if配对
(C).每个else与if的配对是任意的
(D).每个else总是与它上面的if配对
35.16以下正确的函数定义形式是(A).
(A).doublefun(intx,inty)
(B).doublefun(intx;
inty)
(C).doublefun(intx,inty);
(D).doublefun(intx,y);
36.18经过下列的语句intj,a[10],*p;
定义后,下列语句中合法的是(A)
(A).p=a+2;
(B).p=a[5];
(C).p=a[2]+2;
(j+2);
37.17enuma{sum=9,mon=-1,tue};
2chara[]="
输出前5个字符的语句是(A).
(A).printf("
%.5s"
(B).puts(a);
(C).printf("
(D).a[5*2]=0;
puts(a);
选择题B篇
38.C语言源程序的基本单位是(B).
(A).过程
(B).函数
(C).子程序
(D).标识符
39.下列程序的输出结果是(B).
{charc1=97,c2=98;
%d%c"
c1,c2);
(A).9798
(B).97b
(C).a98
(D).ab
40.下列四个选项中,均是C语言关键字的选项是(B).
(A).autoenuminclude
(B).switchtypedefcontinue
(C).signedunionscanf
(D).ifstructtype
41.以下能对二维数组a进行正确初始化的语句是(B).
(A).inta[2][]={{1,0,1},{5,2,3}};
(B).inta[][3]={{1,2,3},{4,5,6}};
(C).inta[2][4]={{1,2,3},{4,5},{6}};
(D).inta[][3]={{1,0,1}{},{1,1}};
42.以下对枚举类型名的定义中正确的是(B).
(A).enuma={sun,mon,tue};
(B).enuma{sun=9,mon=-1,tue};
(C).enuma={"
sun"
mon"
tue"
(D).enuma{"
43.以下选项中合法的用户标识符是(B).
(A).long
(B)._2Test
(C).3Dmax
(D).A.dat
44.以下叙述中正确的是(B).
(A).C语言的源程序不必通过编译就可以直接运行
(B).C语言中的每条可执行语句最终都将被转换成二进制的机器指令
(C).C源程序经编译形成的二进制代码可以直接运行
(D).C语言中的函数不可以单独进行编译
45.以下叙述中不正确的是(B).
(A).一个好的程序应该有详尽的注释
(B).在