二级理论部分复习题2

2020-04-21 03:43

1.以下叙述中错误的是( )。

A) C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令 B) C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件 C) 用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中 D) C语言源程序经编译后生成后缀为.obj的目标程序 2.以下选项中,合法的一组C语言数值常量是( )。

A) 12. 0Xa23 4.5e0 B) 028 .5e-3 -0xf C) .177 4e1.5 0abc D) 0x8A 10,000 3.e5 3.以下选项中不合法的标识符是( )。

A) &a B) FOR C) print D) 00

4.若有代数式(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是( )。

A) sqrt(fabs(pow(n,x)+exp(x))) B) sqrt(fabs(pow(n,x)+pow(x,e))) C) sqrt(abs(n^x+e^x)) D) sqrt(fabs(pow(x,n)+exp(x))) 5.若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是( ) A) i=(a+k)<=(i+k); B) i=a; C) a=a++,i++ D) i=!a; 6.有以下程序:

#include main()

{ int s,t,A=10; double B=6; s=sizeof(A); t=sizeof(B); printf(\,%d\\n\,s,t); }

在VC6.0平台上编译运行,程序运行后的输出结果是( )。 A) 10,6 B) 4,4 C) 2,4 D) 4,8 7.有以下程序:

#include main()

{ char a,b,c,d;

scanf(\,&a, &b);

c=getchar(); d=getchar(); printf(\,a,b,c,d); }

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

12 34

则输出结果是( )。 A) 12 34 B) 12 C) 1234 D) 12 3

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

#include main()

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

printf(\,%d,%d,%d\\n\,a,b,c,d); }

程序输出( )。

A) 1,1,2,0 B) 0,0,0,3 C) 编译有错 D) 0,1,2,0 10.有以下程序:

#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(\=%d, b=%d\\n\, a, b); }

程序的运行结果是( )。

A) a=2,b=2 B) a=2,b=1 C) a=1,b=1 D) a=1,b=0 11.以下程序段中的变量已正确定义:

for( i=0; i<4; i++,i++ )

for( k=1; k<3; k++ ); printf(\; 程序段的输出结果是( )。

A) ** B) **** C) * D) ******** 12.有以下程序段:

#include int i, n;

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

case 3: printf(\, n); break; case 2:

case 4: printf(\, n); continue; case 0: exit(0);

}

printf(\,n); }

以下关于程序段执行情况的叙述,正确的是( )。

A) for循环语句固定执行8次 B) 当产生的随机数n为4时结束循环操作 C) 当产生的随机数n为1和2时不做任何操作 D) 当产生的随机数n为0时结束程序运行 13.有以下程序:

#include int f(int x); main()

{ int n=1,m;

m=f(f(f(n))); printf(\,m); }

int f(int x)

{ return x*2; }

程序运行后的输出结果是( )。

A) 8 B) 2 C) 4 D) 1 14.以下叙述中错误的是( )。

A) 可以给指针变量赋一个整数作为地址值 B) 函数可以返回地址值 C) 改变函数形参的值,不会改变对应实参的值

D) 当在程序的开头包含头文件stdio.h时,可以给指针变量赋NULL 15.设已有定义:float x;,则以下对指针变量p进行定义且赋初值的语句中正确的是( )。

A) int *p=(float)x; B) float *p=&x; C) float p=&x; D) float *p=1024; 16.以下数组定义中错误的是( )。

A) int x[2][3]={1,2,3,4,5,6}; B) int x[][3]={0};

C) int x[][3]={{1,2,3},{4,5,6}}; D) int x[2][3]={{1,2},{3,4},{5,6}}; 17.有以下程序:

#include

void fun( int a[], int n) { int i, t;

for(i=0; i

main()

{ int k[10]={ 1,2,3,4,5,6,7,8,9,10},i; fun(k,5);

for(i=2; i<8; i++) printf(\,k[i]); printf(\; }

程序的运行结果是( )。

A) 321678 B) 876543 C) 1098765 D) 345678 18.有以下程序:

#include #define N 4

void fun(int a[][N], int b[]) { int i;

for (i=0; i

main()

{ int x[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N], i; fun (x, y);

for (i=0; i

程序运行后的输出结果是( )。

A) -3,-1,1,3, B) -12,-3,0,0, C) 0,1,2,3, D) -3,-3,-3,-3, 19.设有定义:char s[81]; int i=0;,以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是( )。 A) gets(s);

B) while((s[i++]=getchar())!='\\n');s[i]='\\0'; C) scanf(\,s);

D) do{ scanf(\,&s[i]); }while(s[i++]!='\\n'); s[i]='\\0';

20.设有定义:char p[]={'1', '2', '3'},*q=p; ,以下不能计算出一个char型数据所占字节数的表达式是( )。

A) sizeof(p) B) sizeof(char) C) sizeof(*q) D) sizeof(p[0]) 21.有以下程序:

#include #include main()

{ char str[][20]={\,\!\,*p=str[1]; printf(\,\,strlen(p)); printf(\,p); }

程序运行后的输出结果是( )。

A) 10,One*Dream! B) 9,One*Dream! C) 9,One*World D) 10,One*World 22.有以下程序:

#include main()

{ char s[]=\; int i, n=0;

for ( i=0; s[i]!=0; i++ )

if(s[i] >= '0' && s[i] <= '9') n++; printf(\,n); }

程序运行后的输出结果是( )。

A) 0 B) 3 C) 7 D) 8 23.有以下程序:

#include fun(int x, int y)

{ static int m=0, i=2;

i+=m+1; m=i+x+y; return m; }

main()

{ int j=1, m=1, k;

k=fun(j,m); printf(\,\,k); k=fun(j,m); printf(\,k);

}

执行后的输出结果是( )。

A) 5, 11 B) 5, 5 C) 11, 11 D) 11, 5

24.在C语言中,只有在使用时才占用内存单元的变量,其存储类型是( )。

A) auto和static B) extern和register C) auto和register D) static和register 25.下面结构体的定义语句中,错误的是( )。

A) struct ord {int x;int y;int z;} struct ord a; B) struct ord {int x;int y;int z;}; struct ord a; C) struct ord {int x;int y;int z;} a; D) struct {int x;int y;int z;} a; 26.有以下程序:

# include

typedef struct { int b, p; } A;

void f(A c) /* 注意:c是结构变量名 */ { int j;

c.b += 1; c.p+=2; }

main() { int i;

A a={1,2}; f(a);

printf(\,%d\\n\, a.b, a.p); }

程序运行后的输出结果是( )。

A) 2,4 B) 1,2 C) 1,4 D) 2,3 27.以下叙述中正确的是( )。

A) 在C语言中,预处理命令行都以\开头 B) 预处理命令行必须位于C源程序的起始位置

C) #include 必须放在C程序的开头 D) C语言的预处理不能实现宏定义和条件编译的功能 28.有以下程序:

#include #include int fun(int n) { int *p;

p = (int*)malloc(sizeof(int)); *p=n; return *p; }

main()

{ int a;

a = fun(10); printf(\,a+fun(10)); }

程序的运行结果是( )。

A) 0 B) 10 C) 20 D) 出错 29.有以下程序:

# include main()

{ unsigned char a=8, c; c = a>>3;

printf(\, c); }

程序运行后的输出结果是( )。

A) 16 B) 1 C) 32 D) 0

30.读取二进制文件的函数调用形式为:fread(buffer,size,count,fp);,其中buffer代表的是( )。 A) 一个内存块的字节数 B) 一个整型变量,代表待读取的数据的字节数 C) 一个文件指针,指向待读取的文件 D) 一个内存块的首地址,代表读入数据存放的地址 31.下列叙述中错误的是( )。

A) C程序可以由多个程序文件组成 B) 一个C语言程序只能实现一种算法

C) C程序可以由一个或多个函数组成 D) 一个C函数可以单独作为一个C程序文件存在 32.以下选项中,能用作数据常量的是( )。

A) 115L B) 0118 C) 1.5e1.5 D) o115

33.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( )。 A) 大写字母 B) 下划线 C) 数字字符 D) 连接符

34.设变量已正确定义并赋值,以下正确的表达式是( )。

A) x=y+z+5, ++y B) int(15.8%5) C) x=y*5=x+z D) x=25%5.0 35.设有定义:int x=2;,以下表达式中,值不为6的是( )。

A) 2*x,x+=2 B) x++,2*x C) x*=(1+x) D) x*=x+1 36.有以下程序:

#include main()

{ int x, y, z; x=y=1;

z=x++,y++,++y;

printf(\,%d,%d\\n\,x,y,z); }

程序运行后的输出结果是( )。

A) 2,3,3 B) 2,3,2 C) 2,3,1 D) 2,2,1 37.有以下程序:

#include main()

{ char c1,c2;

c1='A'+'8'-'4'; c2='A'+'8'-'5';

printf( \,%d\\n\,c1,c2); }

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

38.若有定义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) 39.有以下程序:

#include main()

{ int x=1, y=0; if (!x) y++; else if (x==0)

if (x) y+=2; else y+=3; printf(\, y); }

程序运行后的输出结果是( )。

A) 3 B) 2 C) 1 D) 0

40.若有定义:float x=1.5; int a=1,b=3,c=2; 则正确的switch语句是( )。 A) switch(a+b)

{ case 1: printf(\;

case 2+1: printf(\; } B) switch((int)x);

{ case 1: printf(\; case 2: printf(\; } C) switch(x)

{ case 1.0: printf(\; case 2.0: printf(\; } D) switch(a+b)

{ case 1: printf(\; case c: printf(\; } 41.有以下程序:

#include main()

{ int y=9;

for( ; y>0; y--)

if(y%3==0) printf(\, --y); }

程序的运行结果是( )。

A) 852 B) 963 C) 741 D) 875421


二级理论部分复习题2.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:新媒体时代的秘书新能力探讨

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

马上注册会员

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