2017二级c语言题库
C语言提供多种运算符和表达式值的方法,对问题的表达可通过多种途径获得,其程序设计更主动、灵活。下面是小编收集的2017二级c语言题库,希望大家认真练习!
判断题
× 1.指针是变量,它具有的值是某个变量或对象的地址值,它还具有一个地址值,这两个地址值是相等的。
√ 2.指针的类型是它所指向的变量或对象的类型。
× 3.定义指针时不可以赋初值。
√ 4.指针可以赋值,给指针赋值时一定要类型相同,级别一致。
× 5.指针可以加上或减去一个int型数,也可以加上一个指针。
√ 6.两个指针在任何情况下相减都是有意义的。
√ 7.数组元素可以用下标表示,也可以用指针表示。
× 8.指向数组元素的指针只可指向数组的首元素。
√ 9.指向一维数组的指针是一个二级指针。
× 10.指针数组的元素可以是不同类型的指针。
√ 11.字符指针是指向字符串的指针,可以用字符串常量给字符指针赋值。
× 12.引用是一种变量,它也有值和地址值。
√ 13.引用是某个变量的别名,引用是被绑定在被引用的变量上。
√ 14.创建引用时要用一个同类型的变量进行初始化。
√ 15.指针是变量,它可以有引用,而引用不能有引用。
单项选择
1 下列数据中,为字符串常量的是()。 D
A、'A'
B、How do you do.
C、$abc
D、"house"
2 以下所列的C语言常量中,错误的是( )。 B
A、0xFF
B、1.2e0.5
C、2L
D、'\72'
3 以下程序的输出结果是()。 D
main()
{float x=3.6;
int i;
i=(int)x;
printf("x=%f,i=%d\n",x,i);
}
A、x=3.600000,i=4
B、x=3 i=3.600000
C、x=3,i=3
D、x=3.600000,i=3
4 若k是整型,则以下程序段的执行结果是:( ) B
k=-3;
if(k<=0) printf("####")
else printf("&&&&");
A、####
B、有语法错误,无结果
C、&&&&
D、####&&&&
5 若x=2,y=3则x||y的结果是( )。 C
A、3
B、0
C、1
D、2
6 针对下列程序段回答问题( B ).
for(t=1;t<=100;t++)
{
scanf("%d",&x);
if(x<0) continue;
printf("=",t);
}
A、x>=0时什么也不输出
B、最多允许输出100个非负整数
C、printf函数永远也不执行
D、当x<0时整个循环结束
7 以下程序的执行结果是( )。 B
main()
{ int num = 0;
while( num <= 2 ) { num++; printf( "%d,",num ); } }
A、0,1,2
B、1,2,3,
C、1,2,3,4,
D、1,2,
8 选择正确的输入语句( D )。:(其中:char string[20];)使得string的内容为"I am student".
A、scanf("%s", string);
B、scanf("%c", &string);
C、scanf("%s", &string);
D、gets(string);
9 对以下说明语句 int a[10]={6,7,8,9,10}; 的正确理解是()。 B
A、将5个初值依次赋给a[6]至a[10]
B、将5个初值依次赋给a[0]至a[4]
C、因为数组长度与初值的个数不相同,所以此语句不正确
D、将5个初值依次赋给a[1]至a[5]
10 以下标识符中可以作为用户函数名的'是( ). D
A、struct
B、int
C、union
D、go_to
11 以下叙述错误的是( ). B
A、函数调用可以出现在一个表达式中
B、函数调用可以作为一个函数的形参
C、函数调用可以作为一个函数的实参
D、函数允许递归调用
12 若用数组名作为函数的实参,传递给形参的是()。 B
A、数组第一个元素的值
B、数组的首地址
C、数组元素的个数
D、数组中全部元素的值
13 在C语言程序中()。 B
A、函数的定义可以嵌套,但函数的调用不可以嵌套
B、函数的定义不可以嵌套,但函数的调用可以嵌套
C、函数的定义和函数调用不可以嵌套
D、函数的定义和函数调用均可以嵌套
14 下列说法中正确的是( ). B
A、函数调用不占运行时间,只占编译时间.
B、宏替换不占运行时间,只占编译时间.
C、有参数的宏定义,就是函数.
D、在定义宏时,宏名与带参数的括弧之间可以加空格.
15 若有说明:int *p,m=5,n;以下正确的程序段是()。D
A、scanf("%d",&n);*p=n;
B、p=&n;scanf("%d",*p)
C、p=&n;scanf("%d",&p);
D、p=&n;scanf("%d",p);
16 对于下述定义,不正确的叙述是( ). B
union data
{int i;
char c;
float f;
}a,b;
A、变量a的地址和它的各成员地址都是相同的
B、可以在定义类型的同时定义变量a,并对a的任意成员初始化
C、变量a所占内存的长度等于成员f的长度
D、如果有定义语句 union data a={6};则对变量a的初始化是正确的