C语言题库.docx
《C语言题库.docx》由会员分享,可在线阅读,更多相关《C语言题库.docx(15页珍藏版)》请在冰豆网上搜索。
C语言题库
C语言题库
1、若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,
则文件方式字符串应就是(D)。
A、"rb+"
B、"ab++"
C、"ab"
D、"wb+"
2、设有如下定义:
structsk{inta;floatb;}data,*p;
若要使p指向data中的a域,正确的赋值语句就是(C)。
A、p=(structsk*)data、a;
B、*p=data、a;
C、p=&data、a;
D、p=&data,a;
3、对结构体类型的变量的成员的访问,无论数据类型如何都可使用
的运算符就是(B)。
A、&
B、、
C、*
D、->
4、下列关于指针定义的描述,错误的就是(A)。
A、指针就是一种变量,该变量用来存放某个变量的值
B、指针就是一种变量,该变量用来存放某个变量的地址值
C、指针变量的类型与它所指向的变量类型一致
D、指针变量的命名规则与标识符相同
5、设有如下的程序段:
charstr[]="Hello";
char*ptr;
ptr=str;
执行完上面的程序段后,*(ptr+5)的值为(D)、
A、不确定的值
B、'o'的地址
C、'o'
D、'\0'
6、若有以下的定义:
intt[3][2];能正确表示t数组元素地址的表达式就是(D)。
A、&t[1]
B、t[3]
C、&t[3][2]
D、t[2]
7、下列说法中正确的就是(B)、
A、函数调用不占运行时间,只占编译时间、
B、宏替换不占运行时间,只占编译时间、
C、有参数的宏定义,就就是函数、
D、在定义宏时,宏名与带参数的括弧之间可以加空格、
8、以下叙述中正确的就是(C)。
A、全局变量的作用域一定比局部变量的作用域范围大
B、未在定义语句中赋初值的auto变量与static变量的初值都就是随机值
C、静态(static)类别变量的生存期贯穿于整个程序的运行期间
D、函数的形参都属于全局变量
9、下列叙述中正确的就是(B)。
A、C语言的子程序有过程与函数两种
B、C语言所有函数都就是外部函数
C、C语言的函数可以嵌套定义
D、C语言编译时不检查语法
10、函数的形式参数系统默认存储类型说明就是(D)。
A、static
B、extern
C、register
D、auto
11、以下对C语言函数的描述中,正确的就是(B)。
A、C函数既可以嵌套定义又可以递归调用
B、C程序必须由一个或一个以上的函数组成
C、函数必须有返回值,否则不能使用函数
D、C程序中有调用关系的所有函数必须放在同一个程序文件中
12、以下不能正确进行字符串赋初值的语句就是(A)。
A、charstr[5]="good!
";
B、charstr[5]={'g','o','o','d'};
C、char*str="good!
";
D、charstr[]="good!
";
13、选择正确的输入语句(B)、
(其中:
charstring[10];)使得string的内容为"Hello"、
A、scanf("%c",&string);
B、scanf("%s",string);
C、scanf("%c",string);
D、scanf("%s",&string);
14、以下对二维数组a的正确说明就是(D)。
A、inta[3][]
B、floata(3,4)
C、floata(3)(4)
D、doublea[1][4]
15、下列数组说明中,正确的就是(B)。
A、staticcharstr1[],str2[];str2={"China"};strcpy(str1,str2);
B、staticcharstr[]="China";
C、staticcharstr[];str="China";
D、staticcharstr1[5],str2[]={"China"};str1=str2;
16、若有说明inta[3][4];则对a数组元素的正确引用就是(C)。
A、a[1,3]
B、a[2][4]
C、a[1+1][0]
D、a
(2)
(1)
17、以下正确的描述就是(A)、
A、只能在循环体内与switch语句内使用break语句
B、continue语句的作用就是终止整个循环的执行
C、从多层嵌套的外层循环中退出时,只能使用goto语句
D、在循环体内使用break与continue语句的作用相同
18、在C语言中,为了结束由while语句构成的循环,while后一对圆括号
中表达式的值应该为(C)。
A、非0
B、1
C、0
D、True
19、针对for循环语句,for(表达式1;表达式2;表达式3),下列说法正确的就是(C)、
A、三个表达式与中间分隔分号均可省略
B、三个表达式与中间分隔分号均不能省略
C、三个表达式可省略,但中间分隔分号不能省略
D、三个表达式不能省略,但中间分隔分号可省略
20、若i为整型变量,则以下循环执行次数就是(A)。
for(i=2;i==0;)printf("%d",i--);
A、0次
B、2次
C、无限次
D、1次
21、已知键盘输入a=4,b=3,下面程序输出的结果就是(C)、
main()
{inta,b,s;
scanf("%d%d",&a,&b);
s=a;
if(a
s=s*s;
printf("%d\n",s);
}
A、9
B、13
C、16
D、15
22、算术运算符、赋值运算符与关系运算符的运算优先级按从高到低的顺序依次为(A)。
A、算术运算、关系运算、赋值运算
B、关系运算、赋值运算、算术运算
C、算术运算、赋值运算、关系运算
D、关系运算、算术运算、赋值运算
23、在C语言中,能代表逻辑值“真”的就是(B)。
A、大于0的数
B、非0的数
C、非0整数
D、True
24、表示关系x>0且y<=10的C语言表达式为(D)、
A、(x<=0)AND(y<=10)
B、x>0,y<=10
C、(x<=0)&(y<=10)
D、(x>0)&&(y<=10)
25、下列运算符优先级最低的就是(A)、
A、=
B、+
C、!
D、&&
26、C语言中,逻辑"真"等价于(C)。
A、大于零的整数
B、大于零的数
C、非零的数
D、非零的整数
27、根据下面的输出结果,正确的输出语句就是:
(D);
x=2、23000,y=4、35000
A、printf("x=%f,y=%f\n",x,y);
B、printf("x=%7、2f,y=%7、2f",x,y);
C、printf("x=%7、2f,y=%7、2f",&x,&y);
D、printf("x=%7、5f,y=%7、5f\n",x,y);
28、已知i、j、k为int型变量,若从键盘输入:
1,2,3<回车>,使i的值为1、j
的值为2、k的值为3,以下选项中正确的输入语句就是(C)。
A、scanf("%d%d%d",&i,&j,&k);
B、scanf("%2d%2d%2d",&i,&j,&k);
C、scanf("%d,%d,%d",&i,&j,&k);
D、scanf("i=%d,j=%d,k=%d",&i,&j,&k);
29、根据下面的程序,正确的输出形式就是(A);
main()
{
inti=5,j=10;
printf("i=%d,",i);
printf("j=%d",j);
}
30、若变量已正确定义并赋值,下面符合C语言语法的表达式就是(A)。
A、a=b=c+2
B、a:
=b+1
C、int18、5%3
D、a=a+7=c+B
31、对于赋值语句charcx='\037';判断正确的就是:
(D)、
A、cx的值就是四个字符
B、不合法,不能赋值
C、cx的值就是三个字符
D、cx的值就是一个字符
32、设有说明:
charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型为(D)、
A、char
B、int
C、float
D、double
33、先用语句定义字符型变量c,然后要将字符a赋给c,则下列语句中正确的就是(B)。
A、C='97'
B、c='a';
C、c="97";
D、c="a";
34、已定义ch为字符型变量,以下赋值语句中错误的就是(A)。
A、ch='\';
B、ch=NULL;
C、ch='\xaa';
D、ch=62+3;
35、以下选项中合法的用户标识符就是(D)。
A、long
B、A、dat
C、3Dmax
D、_2Test
36、下列正确的标识符就是(C)、
A、a+b
B、6a
C、_do
D、%y
37、执行下列语句后变量x与y的值就是(A)。
y=10;x=y++;
A、x=10,y=11
B、x=11,y=11
C、x=11,y=10
D、x=10,y=10
38、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值就是(C)。
A、2
B、6
C、8
D、7
39、若inta=2,则执行完表达式a-=a+=a*a后,a的值就是(C)。
A、-4
B、-8
C、0
D、-2
40、下列四组选项中,均不就是C语言关键字的选项就是(B)。
A、whilegopow
B、defineIFtype
C、includescanfcase
D、getccharprintf
41、在一个C程序中(A)。
A、main函数可以在任何地方出现
B、main函数必须出现在固定位置
C、main函数必须出现在所有函数之前
D、main函数必须出现在所有函数之后
42、C语言中用于结构化程序设计的三种基本结构就是(B)。
A、if、switch、break
B、顺序结构、选择结构、循环结构
C、if、for、continue
D、for、while、do-while
43、C语言源程序文件经过C编译程序编译连接之后生成一个后缀为(A)的可执行文件
A、、exe
B、、bas
C、、obj
D、、c
44、C语言的程序一行写不下时,可以(C)、
A、用分号换行
B、用逗号换行
C、用反斜线换行
D、在任意标识符后用回车键换行
45、对字符数组不正确的赋值方式就是_C____、
A、charc[]={"china"};
B、char*string;string="china";
C、charc[10];c[10]={"china"};
D、char*string="china";
46、对auto存储类型的变量,若不赋值,则其值就是(B)、
A、'\0'
B、随机的
C、系统自动赋值0
D、根据情况赋值
47、构成C语言程序的基本单位就是(C)。
A、子例程
B、子程序
C、函数
D、过程
48、用下面的scanf函数输入数据,使得i=12,j=202,不正确的键盘输入方法就是(C)、
(用"[CR]"表示回车,U表示空格)
main()
{inti,j;
scanf("%2d%3d",&i,&j);
、、、
}
A、12[CR]202[CR]
B、12202[CR]
C、12,2