二、C选择题
1.表达式“(a=4*5, b=a*2), b-a, a+=2”的值是( )。
A.2 B.20 C.22 D.42
2.以下是一个自定义函数的头部,其中正确的是( 令数组全部的值为0)。
A.int fun(int a[ ], b) B.int fun(int a[ ], int a)
C.int fun(int*a, int b) D.int fun(char a[ ][ ], int b)
3.以下数组声明语句中正确的是( )。
A.int n, a[n]; B.int a[ ];
C.int a[2][3]={{l},{2},{3}}; D.int a[ ][3]={{l},{2},{3}};
4.已知在某C语言编译系统中表达式sizeof(int)的值是2,如果希望将常量-70 000正确地 保存在一个变量a中,该变量声明语句应当是( )。
A.int a; B.long int a; C.unsigned int a; D.unsigned int a;
5.以下声明语句中,用于声明一个行指针变量的是( )。
A.int *p(int); B.int *p; C.int (*p)[3]; D.int (*p)(int);
6.在以下程序中,需要在fun函数中声明一个int型的变量,以下选项中( )不能用做该变量的名字。
#include <math.h>
int y;
main( )
{ int a=1;
fun(a);
}
int fun(int x)
{_______; /*int型变量声明语句位置*/
… /*若干执行语句*/
}
A.x B.y C.fabs D.fun
7.如有语句“int x,y=0,z,*p[3]; p[0]=&x; p[1]=&y; p[2]=&z;”,以下表达式中有语法错误的是( )。
A.y++ B.p++ C.*++p[0] D.(*p[0])++
8.设有声明语句“int a[3][3]={1,2,3,4,5,6,7,8,9};”,以下语句中除( )外均能输出a[1][2]的值。
A.printf("%d ",*(*(a+1)+2)) B.printf("%d ",*(&a[2][0]-1));
C.printf("%d ",*(a[1]+2)); D.printf("%d ",*(a+1)[2]);
9.已知有声明语句int x=8,则下列表达式中,值为2的是( )。
A.x+=x-=x B.x% = x-2 C.x>8?x=0:x++ D.x/= x + x
10.以下关于函数的叙述中正确的是( )。
A.在函数体中可以o直接引用另一个函数中声明为static类别的局部变量的值
B.在函数体中至少必须有一个return语句
C.在函数体中可以定义另一个函数
D.在函数体中可以调用函数自身
11.若有声明语句“int a[10], b[3][3];”,则以下对数组元素赋值的操作中,不会出现越界访问的是( )。
A.a[-1]=0 B.a[10]=0 C.b[3][0]=0 D.b[0][2]=0
12.若有声明语句“char ch=’a’, *pc=&ch;”,以下语句中有语法错误的是( )。
A.(*pc)++; B.ch+= -‘a’ + ‘A’;
C.toupper(ch)=ch; D.ch++;
13.已知有声明语句“int a[5]={1, 2, 3, 4, 5}, *p, i;”,以下语句中( )不能正确输出a数组全部元素的值。
A.for(p=a, i=0;i<5;i++)printf("%d",*(p+i));
B.for(p=a;p<a+5;p++)printf("%d", *p);
C.for(p=a, i=0;p<a+5;p++, i++)printf("%d", p[i]);
D.for(p=a;p<a+5;p++)printf("%d", p[0]);
14.已知某程序如下:
float p=1.5;
#define p 2.5
main( )
{printf("%f", p);}
则main函数中标识符p代表的操作数是( )。
A.float型变量 B.double型变量
C.float型常量 D.double型常量
15.已有声明“int S[2][3]”,以下选项中( )正确地引用了数组S中的基本元素。
A.S[1>2][!1] B.S[2][0] C.S[1] D.S
16.逻辑“异或”运算可描述为“a xor b”,其中a和b为参加运算的两个操作数,运算结果为当且仅当a、b两个操作数中只有一个为真时才为真,其他情况下均为假。以下表达式中( )可以正确表示逻辑“异或”运算。
A.a || b B.a && b C.(a&&b)&&!(a || b) D.(a || b)&&!(a&&b)
17.若有声明“int a[5],*b=a,(*c)[3],*d[3];”,则在以下表达式中有语法错误的是( )。
A.a[0]=0 B.b[0]=0 C.c[0]=0 D.d[0]=0
18.若有声明:
int k, a, b;
unsigned long y=5;
double x=1.23;
则以下表达式中正确的是( )。
A.x%(-5) B.x=y[6] C.k=(a=1,b=2,&a + &b) D.a+=a- = (b=2) * (a = 3)
19.一个用C语言编写的源程序中,( )是必不可少的。
A.取名为main的函数定义 B.#include<stdio.h>
C.变量声明 D.注释
20.以下声明中正确的是( )。
A.int n=2, a[n]={10}; B.int n=10, *p[2]=&n;
C.int n=10, a[2]={n}; D.int a[2][2]={10}, (*p)[2]=a+1;
21、若有函数fun的定义为
void fun(…)
{static int a=1;
…
}
则下列叙述中不正确的是( )。
A.在每次调用fun函数时,变量a的值是上次调用结束时a的值
B.在fun函数之外,可以用变量名a直接引用a的值
C.在其他函数中,可以出现声明double a=2.5;
D.fun函数的形式参数不能取名为a
22.以下单目运算符均只需要一个操作数,其中要求操作数的类型只能是指针型的是( )。
A.& B.++ C.! D.*
23.已知有声明“int good=l; ”,若要使得表达式“p="good"+good”无语法错误(包括警告错误),p应当声明为( )。
A.char p; B.char*p; C.int p; D.int *p;
24.以下全局变量声明中正确的是( )。
A.auto int i=1; B.float a=1, b=0.5, c=a+b;
C.char for=1; D.static char ch;
25.若已有声明“double a[2][3]={1, 2, 3, 4, 5, 6};”,则下列表达式中不能正确引用a[1][1]值的是( )。
A.*(a[0]+4)
B.*(a[1]+1)
C.*(*(a+3)+1)
D.*(*a+4)
26、已有声明“int a[5];”,以下表达式中不能正确取得a[1]指针的是( )。
A.&a[1]
B.++a
C.&a[0]+1
D.a+l
27.以下关于语句的说法中正确的是( )。
A.do-while语句的循环体至少会被执行1次
B.while语句的循环体至少会被执行1次
C.for语句的循环体至少会被执行1次
D.在C语言中只能用do、do-while或for语句实现循环结构
28.已知函数f的定义如下:
void f(void)
{printf("That’s great! ");}
则调用f函数的正确形式是( )。
A.f;
B.f();
C.f(void);
D.f(1);
29.以下程序在编译时在第三行报错“Redeclaration of ‘a’in function d”,如果决定修改该行声明中出现的局部变量a的名字,则下列选项中不能用来替换变量名a的是( )。
int b;
void d(int a)
{ int f; double a=1;
printf("%d",a);
}
main( )
{int e=1;d(e);}
A.f B.e C.d D.b
30、以下语句中不包含关键字的是( )。
A.x=sqrt(2);
B.while(x!=0)x--;
C.if(x<0)x=-x;
D.return x;
31.在main函数体内部和外部均允许出现的实体是( )。
A.预处理命令
B.语句
C.另一函数的定义
D.函数形式参数声明
32、已知有声明int x=2:,以下表达式中值不等于8的是( )。
A.x+=2,x*2
B.x+=x*=X
C.(x+7)/2*((x+1)%2+1)
D.x*7.2/x+1
33、执行以下程序时,
#include<stdio.h>
main()
{ int a; float b;
scanf("%3d%f",&a,&b);printf("%d\t%f",ab);
}
若要求变量a和b分别从键盘获得输入值45和678.0,则以下四种输入数据中( 代表“空格”键,<CR>代表“回车”键),不能达到该要求的输入数据是( )。
A.45 678<CR>
B.45<CR>678<CR>
C.45,678<CR>
D.045678<CR>
34.下列程序段中,能将变量x、y中值较大的数保存到变量a、值较小的数保存到变量b的程序段是( )。
A.if(x>y)a=x;b=y;else a=y;b=x;
B.if(x>y){a=x;b=y;}else a=y;b=x;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论