求重庆2009年11 C语言计算机二级试题!

一、选择题((1) ~ (40) 1,(41) ~ (55) 2、* * * * 60)

以下四个选项(a),b),c)和d)只有一个是正确的。请在答题卡相应位置涂上正确选项,答案不在试卷上计分。

(1)8位无符号二进制数可以表示的最大十进制数为

a)127 B)128 C)255D)256

(2)在64位高端微机中,一个字长所占的二进制位数为

A) 8 B) 16 C) 32 D) 64

(3)在Windows环境中,为了复制一个对象,你应该在用鼠标拖动它的同时按住它。

A) Alt键B)Esc键C)Shift键D)Ctrl键

(4)在窗口菜单中,一个暗淡(灰色)的命令项表示该命令。

a)暂时不可用b)正在执行c)包含下一个菜单d)包含对话框。

(5)在DOS环境下,为了获得TYPE命令的帮助信息,正确的DOS命令是

a)类型B)类型/H C)类型/* D)类型/?

(6)在下列选项中,可以作为合法DOS文件名的是

A) ANP/A.DAT B) ABCCOM C) ECD。基本D) XY+Z.TXT

(7)下列说法是正确的。

a)在Windows环境中,最大化的窗口不能移动。

b)在Windows环境中,在应用程序窗口最小化之后,应用程序的执行被挂起。

c)在Windows环境中,只能关闭最小化的窗口。

d)在Windows环境中,最大化的窗口无法关闭。

(8)在Windows环境下,工具栏中的复制按钮是

a)打印机图标b)剪刀标志c)复制标志d)粘贴标志

(9)在Windows98环境下,如果想将整个屏幕上显示的内容保存到剪贴板上,可以按。

a)Ctrl+打印屏幕键b)alt+打印屏幕键。

c)Shift+打印屏幕键D)打印屏幕键

(10)目前,计算机病毒传播最快的方式是

a)通过软件复制b)通过网络传播

c)通过磁盘测试运行游戏软件d)

(11)下列说法是正确的

A) C优于其他语言。

B) C语言无需编译即可被计算机识别并执行。

C) C语言以接近英语国家的自然语言和数学语言为语言表达形式。

D) C语言出现的最晚,具有其他语言的所有优点。

(12) C语言的结构化编程中使用的三种基本结构是

a)顺序结构,选择结构,循环结构B) if,switch,break。

C) for、while、do-while D) if、for、continue

(13)在C程序中

a)主函数必须出现在所有函数之前b)主函数可以出现在任何地方。

c)主函数必须出现在所有函数之后d)主函数必须出现在固定的位置。

(14)下列说法是正确的

a)C语言中既有逻辑类型,也有集合类型。

b)C语言中没有逻辑类型,只有集合类型。

C)C语言中有逻辑类型但没有集合类型。

d)C语言中既没有逻辑类型,也没有集合类型。

(15)下列关于C语言用户标识符的说法是正确的。

用户标识符可以加下划线和下划线(减号)。

用户标识符不能加下划线,但可以加下划线。

下划线可以出现在用户标识符中,但不能放在用户标识符的开头。

用户标识符可以出现在下划线和数字中,它们都可以放在用户标识符的开头。

(16)如果有以下程序段(n是一个八进制数)

int m=32767,n=032767

printf("%d,%o/n ",m,n);

执行后的输出结果是

A) 32767,32767

32767,77777 D) 32767,077777

(17)下列关于单目算子++的说法,正确的是。

a)它们的操作数可以是任何变量和常数。

b)它们的操作数可以是char类型变量和int类型变量,但不能是float类型变量。

c)它们的操作数可以是int变量,但不能是double变量和float变量。

d)它们的操作数可以是char变量、int变量和float变量。

(18)如果有以下程序段,

int m=0xabc,n = 0xabc

m-= n;

printf("%X\n ",m);

执行后的输出结果是

A) 0X0 B) 0x0 C) 0 D) 0XABC

(19)具有以下程序段。

int m=0,n = 0;char c = ' a

scanf("%d%c%d ",& ampm & amp;c,& ampn);

printf("%d,%c,%d\n ",m,c,n);

如果从键盘输入:10A10,输出结果是:

A)10 A,10 B)10 A,10 C)10 A,0D)10 A,0

(20)有以下程序

主()

{ int I;

for(I = 0;我& lt3;i++)

开关(一)

{ case 1: printf("%d ",I);

案例二:printf("%d ",I);

默认值:printf("%d ",I);

}

}

执行后的输出结果是

a)011122 B)012 C)012020D)120

(21)有以下程序。

主()

{ int i=1,j=1,k = 2;

if((j++‖k++))& amp;& ampi++) printf("%d,%d,%d\n ",I,j,k);

}

执行后的输出结果是

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

(22)有以下程序

主()

{ int a=5,b=4,c=3,d = 2;

如果(a & gtb & gtc)

printf("%d\n ",d);

else if((c-1 & gt;=d)==1)

printf("%d\n ",d+1);

其他

printf("%d\n ",d+2)

}

执行后的输出结果是

A) 2 B) 3 C) 4 D)编译时出错,没有结果。

(23)有以下程序

主()

{ int p[7]={11,13,14,15,16,17,18},i=0,k = 0;

while(我& lt7 & amp& ampp[I]% 2){ k = k+p[I];i++;}

printf("%d\n ",k);

}

执行后的输出结果是

58 B) 56 C) 45 D) 24

(24)有以下程序

主()

{ int i=0,s = 0;

做{

if(I % 2){ i++;继续;}

i++;

s+= I;

} while(I & lt;7);

printf("%d\n ",s);

}

执行后的输出结果是

a)16 B)12 C)28D)21

(25)有以下程序

主()

{ int i=10,j = 1;

printf("%d,%d\n ",i -,++ j);

}

执行后的输出结果是

A) 9,2 B) 10,2 C) 9,1 D) 10,1

(26)有以下程序

主()

{ char a,b,c,* d;

a =“\”;b = ' \ xbc

c = ' \ 0xabd = " \ 017 ";

print("%c%c%c\n ",a,b,c,* d);

}

编译期间出错。以下说法是正确的。

a)程序中只有一个= ' \ ';不正确的陈述b)b = ' \ xbc ';不正确的陈述

c)d = " \ 0127 ";不正确的陈述d)a = ' \ ';而c = ' \ 0xab这些陈述没有一个是正确的

(27)有以下程序

int fl(int x,int y)

{ return x & gty?x:y;}

int f2(int x,int y)

{ return x & gty?y:x;}

主()

{ int a=4,b=3,c=5,d,e,f;

d=f1(a,b);d=f1(d,c);

e=f2(a,b);e=f2(e,c);

f = a+b+c-d-e;

printf("%d,%d,%d\n ",d,f,e);

}

执行后的输出结果是

A) 3,4,5 B) 5,3,4 C) 5,4,3 D) 3,5,4

(28)有以下程序

void f(int x,int y)

{ int t;

if(x)

主()

{ int a=4,b=3,c = 5;

f(a,b);f(甲、丙);f(b,c);

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

}

执行后的输出结果是

A) 3,4,5 B) 5,3,4 C) 5,4,3 D) 4,3,5

(29)如果有以下定义和陈述,

#包括

int a=4,b=3,*p,*q,* w;

p = & ampa;q = & ampb;w = q;q = NULL

下列选项中错误的说法是

a)* q = 0;b)w = p;c)* p = a;d)* p = * w;

(30)有以下程序

int *f(int *x,int *y)

{ if(* x & lt;*y)

返回x;

其他

返回y;

}

主()

{ int a=7,b=8,*p,*q,* r };

}

执行后的输出结果是

A) 7,8,8 B) 7,8,7 C) 8,7,7 D) 8,7,8

(31)有以下程序。

主()

{ char *s[]={ "一","二","三" },* p;

p = s[1];

printf("%c,%s\n",*(p+1),s[0]);

}

执行后的输出结果是

A) n,两个B) t,一个C)w,一个D) o,二

(32)有以下程序

主()

{ int x[8]={8,7,6,5,0,0},* s;

s=x+3

printf("%d\n ",s[2]);

}

执行后的输出结果是

a)随机值B) 0 C) 5 D) 6

(33)下列语句中能正确定义数组并正确赋值的初始值是

A) int N=5,b[N][N];B) int a[1][2]={{1},{ 3 } };

C) int c[2][]={{1,2},{3,4 } };D) int d[3][2]={{1,2},{ 34 } };

(34)有以下程序

主()

{ int m[][3]={1,4,7,2,5,8,3,6,9 };

int i,j,k = 2;

for(I = 0;我& lt3;i++)

{ printf("%d ",m[k][I]);}

}

执行后的输出结果是

A) 4 5 6 B) 2 5 8 C) 3 6 9 D) 7 8 9

(35)下面这个函数的作用是通过键盘输入数据,给数组中的所有元素赋值。

#定义编号10

void arrin(int x[N])

{ int I = 0;

while(i scanf("%d ",);

}

下划线里应该填的是

a)x+I B)& amp;x[I+1]C)x+(i++)D)& amp;x[++i]

(36)有以下程序

主()

{ char s[]= " \ n 123 \ \ ";

printf("%d,%d\n ",strlen(s),sizeof(s));

}

执行后的输出结果是

a)带有初始值的字符串是错误的;b)6.7 C)5.6D)6.6。

(37)读取以下功能

乐趣(char *s1,char *s2)

{ int I = 0;

while(s 1[I]= = S2[I]& amp;& amps2[i]!= ' \ 0 ')i++;

return(s 1[I]= = & amp;& amps2{i}!=='\0');

}

该功能的作用是

a)将s2表示的字符串赋值给s1。

b)比较由s1和s2指示的字符串的大小。如果s1大于s2,则函数值为1;否则,函数值为0。

c)比较s1和s2所指示的字符串是否相等,如果相等,则函数值为1,否则函数值为0。

d)比较s1和s2表示的字符串的长度,如果s1比s2长,则函数值为1,否则函数值为0。

(38)下列说法是正确的。

a)全局变量的范围必须大于局部变量的范围。

b)静态类别变量的生存期贯穿整个程序。

c)函数的形参属于全局变量。

d)定义语句中未赋初始值的自动变量和静态变量的初始值为随机值。

(39)提供以下说明。

typedef结构

{ int n;char c;双x;} STD

在下列选项中,可以正确定义结构数组并分配初始值的语句是

A) STD tt[2]={{1,' A ',62},{2,' B ',75 } };

B) STD tt[2]={1," A ",62},2," B ",75 };

c)结构tt[2]={{1,' A'},{2,' B ' } }

D)structtt[2]={{1," A ",62.5},{2," B ",75.0 } };

(40)有以下程序

主()

{ union { unsigned int n;

无符号字符c;

} u 1;

ul.c = ' A

printf("%c\n ",u 1 . n);

}

执行后的输出结果是

A)语法错误b)随机值C)A)D)65

(41)有以下程序。

主()

{ char str[]="xyz ",* ps = str

而(* PS)ps++;

for(PS-;PS-str & gt;=0;ps -)看跌期权(PS);

}

执行后的输出是

A) yz B) z C) z D) x

xyz yz yz xy

xyz

(42)有以下程序

主()

{ int a[][3]={{1,2,3},{4,5,0}},{*pa}[3],I;

pa = a;

for(I = 0;我& lt3;i++)

如果(我& lt2)pa[1][I]= pa[1][I]-1;

else pa[1][I]= 1;

printf("%d\n ",a[0][1]+a[1][1]+a[1][2]);

}

执行后的输出结果是

A) 7 B) 6 C) 8 D)没有确定的值。

(43)有以下程序

void fun(int *a,int i,int j)

{ int t;

if(I { t = a[I];a[I]= a[j];a[j]= t;

fun(a,++i,-j);

}

}

主()

{ int a[]={1,2,3,4,5,6},I;

乐趣(a,0,5)

for(I = 0;我& lt6;i++)

printf("%d ",a[I]);

}

执行后的输出是

a)6 5 4 3 2 1 B)4 3 2 1 5 6 C)4 5 6 1 2 3D)1 2 3 4 5 6

(44)有以下程序

main(int arge,char *argv[])

{ int n,I = 0;

while(arv[1][i]!='\0'

{ n = fun();i++;}

printf(%d\n ",n * argc);

}

int fun()

{ static int s = 0;

s+= 1;

返回s;

}

假设程序被编译并连接生成一个可执行文件exam.exe,如果你键入下面的命令行。

考试123 & lt;输入>

运行结果是

A) 6 B)8 C)3 D)4)

(45)在下面的程序段中,通过调用fun函数,可以使主函数中的指针变量p指向一个合法的整数单位。

a)主要()B)主要

{ int * p;{ int * p;

好玩(p);乐趣(& ampp);

}

}

int fun(int *p)

{ int s;p = & amps;} { int s;* p = & amps;}

c)#包含D)#包含

主()主()

{ int * p;{ int * p;

乐趣(& ampp);好玩(p);

} }

国际基金(国际**p)国际基金(国际*p)

{ * p =(int *)malloc(2);} { p=(int *)malloc(sizeo(int))。}

(46)要指定一个类型名STP,使定义语句STP s等价于char *s,下列选项是正确的。

a)typedef STP char * s;b)typedef * char STP;

c)typedef STP * char;d)typedef char * STP;

(47)有以下定义

结构ss

{ char name[10];

int age

迷人的性爱;

}std[3],* p = std

下列输入语句中错误的是

A) scanf("%d ",& amp(*p)。年龄);B) scanf("%s ",& amp标准名称);

C) scanf("%c ",& amp标准[0]。sex) D) scanf("%c ",& amp(p->;性));

(48)设char变量X中的值为1010111,则表达式(2+x) (~ 3)的值为

a)10101001 B)10101000 C)1111111111D)01638

(49)下列说法不正确。

a)C语言的文本文件以ASC代码形式存储数据。

b)C语言二进制文件的访问速度比文本文件快。

C)在C语言中,随机读写不适合文本文件。

d)在C语言中,顺序读写不适用于二进制文件。

(50)下面的程序试图将从终端输入的字符输出到一个名为abc.txt的文件中,并结束输入和输出操作,直到从终端读取到字符#为止,但程序是错误的。

#包括

主()

{ FILE * foutchar ch

fout=fopen('abc.txt ',' w ');

ch = fgetc(stdin);

而(ch!='#')

{ fputc(ch,fout);

ch = fgetc(stdin);

}

fclose(fout);

}

错误的原因是

a)函数fopen调用不正确b)输入文件未关闭。

c)以错误的形式调用函数fgetc d)未定义文件指针stdin。

二、填空(每空2分,***20分)

请将正确答案写在答题卡上序号为1-20的横线上的每一个空白处,该答案不在试卷上计分。

(1)在十六进制绘图存储器中按字节地址编号。如果地址号是从000到FFFF,存储器的容量是1KB。

(2)假设当前磁盘的当前目录下有A.TXT和B.TXT两个文件,现在应该将文件B.TXT合并连接到文件a.txt的后面..如果使用COPY命令,完整的命令是2。

(3)电子邮件地址由用户和域名组成,这两部分的分隔符为3。

(4)假设当前磁盘的当前目录下有一个可执行程序USER.EXE。现在,程序要被执行,显示和输出的结果信息需要存储在文件OUT中。DAT的当前目录的当前磁盘,所以完整的DOS命令是4。

(5)在DOS环境下,代表打印机的设备文件名为5。

(6)如果有声明

int i=-19,j = I % 4;

printf("%d\n ",j);

输出结果是6。

(7)如果有程序,

主()

{ int i,j;

scanf("i=%d,j = % d ";& amp我& ampj);

printf("i=%d,j=%d\n ",I,j);

}

要将10分配给I,将20分配给J,应该从键盘输入7。

(8)如果有以下程序

主()

{ int p,a = 5;

如果(p=a!=0)

printf("%d\n ",p);

其他

printf("%d\n ",p+2);

}

执行后的输出结果是8。

(9)如果有以下程序

主()

{ int a=4,b=3,c=5,t = 0;

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

}

执行后的输出结果是9。

(10)如果下列程序可用,

主()

{ int a[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0 } };

int i,j,s = 0;

for(I = 0;我& lt4;i++)

{ for(j = 0;j & lt4;j++)

{ if(a[I][j]& lt;0)继续;

if(a[i][j]==0)破;

s+= a[I][j];

}

}

printf("%d\n ",s);

}

执行后的输出结果是10。

(11)如果下列程序可用,

主()

{ char a;

A = ' H '-' A '+' 0 ';

打印(" %c\n ",a);

}

执行后的输出结果是11。

(12)如果下列程序可用,

int f(int x,int y)

{ return(y-x)* x;}

主()

{ int a=3,b=4,c=5,d;

d=f(f(3,4),f(3,5));

printf("%d\n ",d);

}

执行后的输出结果是12。

(13)杨辉的作用是将杨辉三角形的数据赋给二维数组的下半个三角形,形式如下。

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

它的组成规律是:

第0列和主对角线上的元素都是1。

其余的元素是左上角和它们正上方的元素的总和。

每行的数据量增加了1。

请完成程序。

#定义N 6

void杨辉(int *[N][N])

{ int i,j;

x[0][0]=1

for(I = 1;I { x[I][0]= 13 = 1;

for(j = 1;j x[I][j]= 14;

}

}

(14)以下函数的作用是删除字符串s中的所有数字字符,请填空。

无效删除(字符)

{ int n=0,I;

for(i=0,s[I];i++)

如果(15)

s[n++]= s[I];

s[n]= 16;

}

(15)定义函数findbig,找出三个数的最大值。下面的程序将使用函数指针来调用findbig函数。请填空。

主()

{ int findbig(int,int,int);

int (*f)(),x,yz,z,big

f = 17;

scanf("%d%d%d ",& ampx & amp;y & amp;z);

big=(*f)(x,y,z);

printf("bing=%d\n ",big);

}

(16)以下程序的输出是18。

#定义MCRA(米)2 *米

#定义MCRB(n,m) 2*MCRA(n)+m

主()

{ int i=2,j = 3;

printf("%d\n ",MCRB(j,MCRA(I)));

}

(17)具有以下定义

结构ss

{ int info结构ss *链接;}x,y,z;

并建立了如下图所示的链表结构:

□□ →□□→□□

X Y Z

删除y点请写赋值语句19。

(18)有一个文本文件test.txt,内容是:大家好!。在下面的程序中,文件test.txt已经被正确地打开用于“读取”。如果文件指针fr指向文件,程序的输出结果是20。

#包括

主()

{ FILE * fr字符串[40];

……

fgets(str,5,fr);

printf("%s\n ",str);

fclose(fr);

}

2003年4月全国计算机等级考试二级C笔试答案

一、选择题

1-5:CDDAD 6-10:BACDB 11-15:CABDB 16-20:ADCAA

21-25:CBD ab 26-30:DCD ab 31-35:CBD cc 36-40:CCBAC

41-45:CAAAC 46-50:DBDDA

第二,填空

(1) 64

(2)复制A.TXT+B.TXT A.TXT

(3) @

(4)用户>出去。数据;数字录音带

(5) PRN或LPT1或LPT2。

(6) -3

(7) i=10,j=20

(8) 1

(9) 5 0 3

(10) 58

(11) 7

(12) 9

(13) x[i][i]和X[I-1][J-1]+X[I-1][J]

(14) !(s[I]& gt;= ' 0 ' & amp& amps[I]& lt;='9 ')和' \0 '

(15) findbig

(16) 16

(17)x . link = y . link;

该死的