二级C语言题目

2019-03-29 15:58

Pppppppppppppppppppppppppppppppppppp 飘飘

二、二级C语言程序设计部分

(1) 设有两行定义语句: int scanf; float case;

则以下叙述正确的是()。 A) 第2行语句不合法 B) 两行定义语句都合法 C) 第1行语句不合法 D) 两行定义语句都不合法 答案为: A)

(2) 设有定义:double x=2.12;,以下不能完整输出变量x值的语句是()。 A) printf(\B) printf(\C) printf(\D) printf(\答案为: A)

(3) 设有定义:int a,b; float x,y; ,则以下选项中对语句所作的注释叙述错误的是()。

A) scanf(\多余的格式符%f完全不起作用 */ B) scanf(\多余的输入项不能获得输入数据 */ C) scanf(\输入项与格式符类型不匹配,变量b和x得不到正确的输入数据 */

D) scanf(\格式串中允许加入格式符以外的字符串 */ 答案为: A)

(4) 结构化程序由顺序、选择、循环三种基本结构组成,以下相关叙述错误的是()。A) 三种基本结构不可以嵌套使用

B) 顺序结构是按语句在程序中的先后顺序逐条执行,没有分支,没有转移 C) 选择结构是根据不同的条件执行不同分支中的语句

D) 循环结构是根据条件决定是否重复、重复执行多少次循环体语句 答案为: A)

(5) 以下能正确表述算式 sin(2πr+30°)的C语言表达式是()。 A) sin(2*3.14*r+3.14*30/180.0)

B) sin(2*π*r+ 30 )

C) sin(2*3.14*r+ 30 )

D) sin(2*3.14*r+30*3.14/360.0) 答案为: A)

(6) 设有定义:int x=11,y=12,z=0;,以下表达式值不等于12的是()。 A) z=(x==y) B) (z=x,y) C) z=(x,y) D) (z,x,y) 答案为: A)

(7) 以下可以将任意一个两位整数n的个位数与十位数对换的表达式为()。A) (n-n/10*10)*10+n/10 B) n-n/10*10+n/10 C) n/10+(n-n/10) D) (n-n/10)*10+(n/10) 答案为: A) (8) 设有以下程序段 int y;

y=rand() % 30+1; 则变量y的取值范围是()。 A) 0<y≤30 B) 0≤y≤30 C) 1<y<30 D) 1<y≤30 答案为: A)

(9) 以下程序段中,循环次数不超过10的是()。 A) int i=10; do{ i=i+1;} while(i<0); B) int i=5; do{ i+=1;} while(i>0); C) int i=1; do{ i+=2;} while(i!=10); D) int i=6; do{ i-=2;} while(i!=1); 答案为: A) (10) 有以下程序 #include main()

Pppppppppppppppppppppppppppppppppppp 飘飘

{ char a,b,c,d; scanf(\ c=getchar(); d=getchar();

printf(\ }

当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:回车也是一个字符)

12 34 则输出结果是()。 A) 12

3 B) 12 C) 1234 D) 12

34 答案为: A)

(11) 以下关于逻辑运算符两侧运算对象的叙述中正确的是()。 A) 可以是任意合法的表达式 B) 只能是整数0或非0整数 C) 可以是结构体类型的数据 D) 只能是整数0或1 答案为: A) (12) 有以下程序 #include main()

{ int a=0,b=0,c=0,d=0; if(a=1) b=1;c=2; else d=3;

printf(\ } 程序输出()。 A) 编译有错

B) 0,0,0,3 C) 1,1,2,0 D) 0,1,2,0 答案为: A) (13) 有以下程序 #include main()

{ int x=1, y=0, a=0, b=0; switch ( x ) { case 1: switch(y)

{ case 0: a++; break; case 1: b++; break; }

case 2: a++; b++; break; case 3: a++; b++; }

printf(\ }

程序的运行结果是()。 A) a=2,b=1 B) a=2,b=2 C) a=1,b=1 D) a=1,b=0 答案为: A)

(14) 以下程序段中的变量已正确定义 for( i=0; i<4; i++,i++ )

for( k=1; k<3; k++ ); printf(\该程序段的输出结果是()。 A) * B) **** C) ** D) ******** 答案为: A)

Pppppppppppppppppppppppppppppppppppp 飘飘

(15) 有以下程序段 #include int i, n;

for( i=0; i<8; i++ ) { n = rand( ) % 5; switch (n) { case 1:

case 3: printf(\ case 2:

case 4: printf(\ case 0: exit(0); }

printf(\ }

以下关于程序段执行情况的叙述,正确的是()。 A) 当产生的随机数n为0时结束程序运行 B) 当产生的随机数n为4时结束循环操作 C) 当产生的随机数n为1和2时不做任何操作 D) for循环语句固定执行8次 答案为: A) (16) 有以下程序 #include main()

{ char c1,c2; c1='A'+'8'-'4'; c2='A'+'8'-'5';

printf( \ }

已知字母A的ASCII码为65,程序运行后的输出结果是()。A) E,68 B) D,69 C) E,D D) 输出无定值 答案为: A)

(17) 若有定义int x,y; 并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++) : (y++)中的条件表达式(x-y) 等价的是()。

A) (x-y<0||x-y>0) B) (x-y<0) C) (x-y>0) D) (x-y==0) 答案为: A)

(18) 以下叙述中正确的是()。

A) int* p1; int ** p2; int *p3;都是合法的定义指针变量的语句 B) 指针变量只能通过求地址运算符(&) 来获得地址值 C) 语句p=NULL;与p=\\0;是等价的语句

D) 语句p=NULL;执行后,指针p指向地址为0的存储单元 答案为: A)

(19) 以下叙述中正确的是()。

A) 如果企图通过一个空指针来访问一个存储单元,将会得到一个出错信息 B) 即使不进行强制类型转换,在进行指针赋值运算时,指针变量的基类型也可以不同

C) 设变量p是一个指针变量,则语句p=0;是非法的,应该使用p=NULL; D) 指针变量之间不能用关系运算符进行比较 答案为: A)

(20) 以下叙述中正确的是()。

A) 每个数组包含一组具有同一类型的变量,这些变量在内存中占有连续的存储单

B) 一条语句只能定义一个数组

C) 数组说明符的一对方括号中只能使用整型常量,而不能使用表达式 D) 在引用数组元素时,下标表达式可以使用浮点数 答案为: A)

(21) 以下叙述中正确的是()。

A) char c1, c2, *c3, c4[40];是合法的变量定义语句 B) 数组下标的下限由数组中第一个非零元素的位置决定 C) 数组下标的下限由数组中第一个被赋值元素的位置决定 D) 数组下标的下限是1 答案为: A)

(22) 以下叙述中正确的是()。

Pppppppppppppppppppppppppppppppppppp 飘飘

A) 语句int a[8] = {0}; 是合法的

B) 语句 int a[] = {0};是不合法的,遗漏了数组的大小

C) 语句 char a[2] = {\是合法的,定义了一个包含两个字符的数组 D) 语句 char a[3]; a = \是合法的,因为数组有三个字符空间的容量,可以保存两个字符

答案为: A)

(23) 以下叙述中正确的是()。

A) 调用函数时,函数名必须与被调用的函数名完全一致 B) 函数调用时,不必区分函数名称的大小写 C) 函数名允许用数字开头

D) 在函数体中只能出现一次return语句 答案为: A)

(24) 以下叙述中正确的是()。

A) 在对指针进行加、减算术运算时,数字1表示1个存储单元的长度 B) 如果p是指针变量,则*p表示变量p的地址值 C) 如果p是指针变量,则&p是不合法的表达式 D) 如果p是指针变量,则*p+1和*(p+1)的效果是一样的 答案为: A)

(25) 以下叙述中正确的是()。

A) 设有指针变量为 double *p,则 p+1 将指针p移动8个字节 B) 函数的类型不能是指针类型 C) 函数的形参类型不能是指针类型 D) 基类型不同的指针变量可以相互混用 答案为: A) (26) 如果定义 float a[10], x; 则以下叙述中正确的是()。 A) 语句 a = &x; 是非法的 B) 表达式 a+1 是非法的

C) 三个表达式 a[1]、*(a+1)、*&a[1]表示的意思完全不同 D) 表达式*&a[1]是非法的,应该写成 *(&(a[1])) 答案为: A)

(27) 设有某函数的说明为

int* func(int a[10], int n);

则下列叙述中,正确的是()。

A) 说明中的a[10]写成a[]或*a效果完全一样 B) 形参a对应的实参只能是数组名

C) func的函数体中不能对a进行移动指针(如a++)的操作 D) 只有指向10个整数内存单元的指针,才能作为实参传给a 答案为: A)

(28) 以下叙述中正确的是()。

A) 在逻辑上,可以把二维数组看成是一个具有行和列的表格或矩阵 B) 语句 int a[4][3] = {1,2,4,5}; 是错误的初始化形式 C) 语句 int a[][3] = {1,2,4,5}; 是错误的初始化形式 D) 语句 int a[4][3] = {{1,2}, {4,5}}; 是错误的初始化形式 答案为: A) (29) 有以下程序 #include

void fun( int x, int y, int *c, int *d ) { *c = x+y; *d = x-y; } main()

{ int a=4, b=3, c=0, d=0; fun ( a, b, &c, &d ); printf( \ }

程序的输出结果是()。 A) 7 1 B) 4 3 C) 3 4 D) 0 0 答案为: A) (30) 有以下程序 #include

void fun( int *p, int *q ) { int t;

t = *p; *p = *q; *q=t; *q = *p; }

Pppppppppppppppppppppppppppppppppppp 飘飘

main()

{ int a=0, b=9; fun ( &a, &b );

printf( \ }

程序的输出结果是()。 A) 9 9 B) 0 0 C) 9 0 D) 0 9 答案为: A) (31) 有以下程序 #include main()

{ int a[ ]={ 2,4,6,8,10 }, x, *p, y=1; p = &a[1];

for( x=0; x<3; x++ ) y += *(p+x); printf( \ }

程序的输出结果是()。 A) 19 B) 13 C) 11 D) 15 答案为: A) (32) 有以下程序 #include main() {

int i, x[3][3] = { 1,2,3,4,5,6,7,8,9 }; for( i=0; i<3; i++ )

printf( \ printf( \ }

程序的输出结果是()。 A) 3 5 7 B) 1 5 0 C) 1 4 7 D) 3 6 9 答案为: A) (33) 有以下程序 #include main() {

int a[ ] = { 2,4,6,8 }, *p=a, i; for( i=0; i<4; i++ ) a[i]=*p++;

printf( \ }

程序的输出结果是()。 A) 6 B) 8 C) 4 D) 2 答案为: A) (34) 有以下程序 #include char fun( char *c ) {

if ( *c<='Z' && *c>='A' ) *c -= 'A'-'a'; return *c; } main() {

char s[81], *p=s; gets( s ); while( *p )


二级C语言题目.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:证券市场基础知识章节练习

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: