全国计算机二级笔试基础部分和C语言程序设计

更新时间:2023-06-10 19:23:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

全国计算机二级笔试基础部分和C语言程序设计

全国计算机等级考试二级笔试试卷基础部分和C语言程序设计

99年4月全国计算机等级考试二级笔试试卷基础部分和C语言程序设计 ............................. 1

一、选择题((1)-(40)每个选项1分,(41)-(50)每个选项2分,共60分) ........................... 1 二、填空题(每空2分,共40分) ..................................................................................... 8 2001年4月全国计算机等级考试二级笔试试卷基础部分和C语言程序设计 ....................... 11

一、选择题((1)-(40)题每题1分,(41)-(50)题每题2分,共60分) .................................. 11 ( 二) 填空题 .......................................................................................................................... 17 2009年9月全国计算机等级考试二级笔试试卷 (C程序) .................................................. 21

一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共70分)......................................................................................................................................... 21 二、填空题(每空2分,共30分) ................................................................................... 30 2003年4月笔试试卷参考答案及详解 C语言程序设计作者 .................................................. 33

99年4月全国计算机等级考试二级笔试试卷基础部分和C语言程序设计

(考试时间120分钟,满分100分)

一、选择题((1)-(40)每个选项1分,(41)-(50)每个选项2分,共60分)

下列各题A)、B)、C)、D)四个有选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。 (1)微型计算机的性能主要取决于

A)内存 B)中央处理器 C)硬盘 D)显示卡

(2)有一个数值152,它与十六进制数6A相等,那么该数值是 A)二进制数 B)八进制数 C)十进制数 D)四进制数 (3)使用超大规模集成电路制造的计算机应该归属于 A)第一代 B)第二代 C)第三代 D)第四代

(4)已知英文字母a的ASCII代码值是十六进制数61H,那字母子b的ASCII代码值是 A)34H B)54H C)24H D)64H

(5)一片存储容量是1.44MB的软磁盘,可以存储大约140万个 A)ASCII字符 B)中文字符 C)磁盘文件 D)子目录

(6)在MS-DOS环境中同时按下[Ctrl]和[Break]两个键,其作用是 A)终止当前操作 B)暂停当前操作 C)关机 D)热启动 (7)将二进制数10000001转换为十进制数应该是 A)127 B)129 C)126 D)128

(8)磁盘处于写保护状态,那么磁盘中的数据A)不能读出,不能删改,也不能写入新数据B)可以读出,不能删改,也不能写入新数据C)可以读出,可以删改,但不能写入新

全国计算机二级笔试基础部分和C语言程序设计

数据D)可以读出,不能删改,但可以写入新数据

(9)微型机启动后,DOS提示符是C:\>,现提示符变为C:\USER>,则说明刚执行过命令

A)PROMPT B)PROMPT USER C)PROMPT $P$G D)CD USER (10)MS-DOS文件系统目录的组织形式属于

A)关系型结构 B)网络型结构 C)树型结构 D)直线型结构

(11)应用软件系统TH的总容量大约1MB,其主要程序文件存放在C:\TH 目录中,而数据文件存放在C:\TH\DATA目录中。如要将它们完整地复制到A盘,应该使用的命令是

A)XCOPY C:\TH A:\ B)XCOPY C:\TH A:\ /S C) XCOPY C:\TH A:\ /M D)XCOPY C:\TH A:\ /P

(12)执行COPY A.+B.TXT这个DOS命令后,得到的磁盘文件是 A)A.TXT B)B.TXT C)AB.TXT D)A+B.TXT

(13)在WINDOWS中,将一个应用程序窗口最小化之后,该应用程序 A)仍在后台运行 B)暂时停止运行 C)完全停止运行 D)出错 (14)CD-ROM属于

A)感觉媒体 B)表示媒体 C)表现媒体 D)存储媒体 (15)在因特网(Internet)中电子公告板的缩写是 A)FTP B)WWW C)BBS D)E-mail

(16)设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为

A)4 B)16 C)32 D)52 (17)设有如下的变量定义: int i=8,k,a,b; unsinged long w=5

double x=1,42,y=5.2

则以下符合C语言语法的表达式是 A)a+=a-=(b=4)*(a=3) B)x%(-3);

C)a=a*3=2 D)y=float(i) (18)假定有以下变量定义: int k=7,x=12;

则能使值为3的表达式是

A)x%=(k%=5) B)x%=(k-k%5) C)x%=k-k%5 D)(x%=k)-(k%=5) (19)以下叙述中正确的是

A)输入项可以是一个实型常量,如 scanf("%f,"3.5);

B)只有格式控制,没有输入项,也能正确输入数据到内存,例如: scanf("a=%d,b=%d");

C)当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如: scanf("%4.2f",&f);

D)当输入数据时,必须指明变量地址,例如: scanf("%f",&f);

(20)设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是

A)把x和y按从大到小排列 B)把x和y按从小到大排列 C)无确定结果 D)交换x和y中的值

全国计算机二级笔试基础部分和C语言程序设计

(21)以下程序的输出结果是

A)10 10 B)12 12 C)11 10 D)11 13main() { int a=12,b=12;

printf("%d %d\n",--a,++b);} (22)以下程序运行后,输出结果是

A)cde B)字符c的ASCII码值 C)字符c的地址 D)出错 main()

{ char *s="abcde"; s+=2;

printf("%ld\n",s); }

(23)以下程序输出结果是 A)7 B)6 C)5 D)4 main() { int m=5;

if(m++>5)printf("%d\n",m); else printf("%d\n",m--); }

(24)当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为 A)1 B)2 C)3 D)6 if(a<b) if(c<d) x=1; else if(a<c)

if(b<d) x=2; else x=3; else x=3; else x=6; else x=7;

(25)在执行以下程序时,如果从键盘上输入:ABCdef<回车>,则输出为 A)ABCdef B)abcDEF C)abc D)DEF #include<stdio.h> main( )

{ char ch;while((ch=getchar( ))!='\n'){ if(ch>='A' && ch<='Z')ch=ch+32; else if(ch>='a' && ch<'z')ch=ch+32;

printf("%c",ch);}printf("\n");}(26)下面能正确进行字符串赋值操作的语句是 A)char s[5]={"ABCDE"};

B)char s[5]={'A'、'B'、'C'、'D'、'E'}; C) char *s;s="ABCDEF"; D)char *s;scanf("%s",s); (27)当执行以下程序段时

A)循环体将执行一次 B)循环体将执行两次 C)循环体将执行无限次 D)系统将提示有语法错误 x=-1;

全国计算机二级笔试基础部分和C语言程序设计

do { x=x*x;} while(!x);

(28)执行以下程序后,输出的结果是 A)-1 B)1 C)8 D)0 main() { int y=10;

do {y--;} while(--y); printf("%d\n",y--); }

(29)在下列选项中,没有构成死循环的程序段是A) int i=100 while (1) {i=i%100+1; if(i>100)break;

}B) for(;;);C)int k=1000;

do{++k} while (k>=1000)D)int s=36 While(s);--s;

(30)执行语句:for(i=1;i++<4;)后;变量i的值是 A)3 B)4 C)5 D)不定

(31)以下程序运行后,如果从键盘上输入ABCDE<回车>,则输出结果为 A)8 B)7 C)6 D)5 #include<stdio.h> #include<string.h> func(char str[ ] ) { int num =0;

while(*(str+num!='\0') num+ +; return(num); }

main( )

{char str[10],*p=str;

gets(p); printf("%d\n",func(p)); }

(32)运行以下程序后,如果从键盘上输入china#<回车>,则输出结果为 A)2,0 B)5,0 C)5,5 D)2,5 #include<stdio.h>

main( ){int v1=0,v2=0; char ch;

while((ch=getchar( ))!='#') switch(ch) {case 'a'; case 'h';

default; v1+ +; case '0'; v2+ ;+

}printf("%d,%d\n",v1,v2);}

(33)若以下程序所生成的可执行文件名不;当打入以下命令执行该程序时; FILE1 CHINA BEIJING SHANGHAI

全国计算机二级笔试基础部分和C语言程序设计

程序的输出结果是

A)CHINA BEIJIANG SHANGHAI B)FILE1 CHINA BEIJING C)C B S D)F C B

main(int argc,char *argv[]) { while(argc-->0)

{ ++argv; printf("%s",*argv);}} (34)下面程序的运行结果是 A)12ba56 B)6521 C)6 D)62 main()

{ char ch[7]={"65ab21"}; int i,s =0

for(i=0;ch[i]>='0'&&ch[i]<'9';i+=2) s=10*s+ch[i]-'0' printf("%d\n",s); }

(35)运行下面的程序,如果从键盘上输入: ab <回车> c <回车>

def <回车>则输出结果为 A) a B)a C)ab D)avcdef b b c c c d d d e f

#include<stdio.h> #define N 6 main( ) { char c[N]; int i=o

for( ;i<N;c[i]=getchar(),i++)

for( i=0;i<N;i++) putchar(c[i]); printf("\n"); }

(36)以下程序运行后输出结果是 A)8 B)7 C)6 D)5 #include<stdio.h> ss(char *s)

{ char *p=s;while(*p)p++;

return(p-s);}main( ){ char *a="abded"; int i;

i=ss(a);printf("%d\n",i);}

(37)以下程序运行后,输出结果是

全国计算机二级笔试基础部分和C语言程序设计

A)8,15 B)8,16 C)8,17 D)8,8 func(int a,int b) { static int m=0,i=2; i+=m+1; m=i+a+b return(m);}main() { int k=4,m=1,p; p=func(k,m);printf("%d,",p);p=func(k,m);printf("%d\n",p);} (38)以下程序运行后,输出结果是 A)49.5 B)9.5 C)22.0 D)45.0 #include<stdio.h> #define PT 5.5

#define S(x) PT*x*x main( )

{ int a=1,b=2;printf("%4.1f\n",S(a+b))} (39)以下程序运行后,输出结果是

A)ABCDEFG B)CDG C)abcdefgh D)abCDefGh main( )

{ static char a[]="ABCDEFGH",b[]="abCDefGh"; char p1,p2; int k;

p1=a; p2=b;

for(k=0;k<-7;k++) if(*(p1+k)= =*(p2+k)) printf("%c",*(p1+k)); printf("\n"); }

(40)以下程序执行后,a的值是

A)4 B)1 C)0 D)运行时出错,无定值 mian()

{ int a,k=4,m=6,*p1=&k,*p2=&m; a=p1= =&m;

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

(41)以下程序运行后,输出结果是A)84 B)99 C)95 D)44int d=1;fun(int p) { int d=5;

d+=p++;printf("%d",d);}main() {int a=3; fun(a);

d+=a++;printf("%d\n",d);}

(42)以下程序运行后,输出结果是A)6385 B)22 C)33 D)693825main(){char ch[2][5]={"693","825"},*p[2];

int i,j,s=0;for(i=0;i<2;i++) p[i]=ch[i];for(i=0;i<2,i++) for(j=0;p[i][j]>='0' && p[i][j]<='9';j=2)

全国计算机二级笔试基础部分和C语言程序设计

s=10*s+p[i][j]='0'printf("%d\n",s);} (43)以下程序运行后,输出结果是

A)1 B)7 C)9 D)11fut(int **s,int p[2][3]){**s=p[1][1];} main()

{int a[2][3]={1,3,5,7,9,11},*p; p=(int *)malloc(sizeof(int)); fut(&p,a);

printf("%d\n",*p);} (44)设有如下定义:

int a=1,b=2,c=3,d=4,m=2,n=2; 则执行表达式:(m=a>b)&&(n=c>d)后,n的值为A)1 B)2 C)3 D)0(45)在执行以下程序时,为了使输出结果为,t=4则给a和b输入的值应满足的条件是A)a>b B)a<b<0 C)0<a<b D)0>a>b

main( ){ int s,t,a,b;

scanf("%d,%d",&a,&b); s=1; t=1;

if(a<0)s=s+1;if(a>b)t=s+1;else if(a= =b)t=5;

else t=2*s;printf("t=%d\n",t);}(46)以下程序的输出结果是A)x=4 B)x=8 C)x=6 D)x=12main( ){ int i,j,x=0; for(i=0,i<2;i++) { x ++;

for(j=0;j<3;j++) { if(j%2)continue; x++; } x++ }

printf("x=%d\n",x);}

(47)以下程序运行后,输出结果是

A)1234567 B)7654321 C)1711717 D)7177171 #include <stdio.h> #include <string.h> fun(char s w, int n)

{ char t,* s1,* s2;s1=w;s2=w+n-1;while(s1<s2){ t=*s1++; *s1=s2--; *s2=t;} }

main() { char *p;

fun(p,strlen(p)); puts(p); }

(48)运行以下程序后,如果从键盘上输入65 14<回车>,则输出结果为 A)m=3 B)m=2 C)m=1 D)m=0

全国计算机二级笔试基础部分和C语言程序设计

main ( ){int m,n;

printf{"Enter m,n:"}; scanf("%d%d,&m,&n"); while(m!=n)

{while(m>n)m-=n; while(n>m)n-=m; }

printf("m=%d\n",m);}

(49)以下程序运行后,如果从键盘上输入: book<回车>

book<空格><回车> 则输出结果是

A)*8 B)#9 C)#6 D)*9 #include <string.h> main()

{char a1[80],a2[80],*s1=a1,*s2=a2; gets(s1); gets(s2);

if(!strcmp(s1,s2)) printf("*"); else printf("#");

printf("%d\n",strlen(strcat(s1,s2))) }

A)10000 B)10010 C)00110 D)10100 main( ){ int y=18,i=0,j,a[8]; do

{ a[i]=y%2;i++; y=y\2;

} while(y>1=1);

for(j=i-1;j>=0;j--) printf("%d",a[j]); printf("\n") }

二、填空题(每空2分,共40分)

请将每空的正确答案写在答题卡 1 至 20 序号的横线上,答在试卷上不得分。 (1)DOS中的自动批处理文件的全名是 1 。

(2)在DOS启动盘中,除外,还有两个必备的系统文件,它们是MSDOS.SYS(或)与 2 。

(3)在DOS下,要将当前目录中AB.TXT文件设置为只读属性,应该使用的完整命令行是 3 。

(4)在DOS下,要查看当前目录中所有批处理文件的总字节数,应该使用的完整命令行是 4 。

(5)计算机病毒除有破坏性、潜伏性和激发性外,还有一个最明显的特性是 5 。

(6)若想通过以下输入语句使a中存放字符串1234,b中存放字符5,则输入数据的形式应该是 6 。 . .

全国计算机二级笔试基础部分和C语言程序设计

.

char a[10],b;

scanf("a=%s b=%c",a,&b); . . .

(7)下面程序的输出结果是 7 。 char b[]="ABCD"; main( )

{ char *chp;

for(chp=b; *chp; chp+=2) printf("%s",chp); printf("\n"); }

(8)下面程序的输出结果是 8 。 #define MAX 3 int a[MAX]; main( )

{ fun1( ); fun2(a); printf("\n");} fun1( )

{ int k,t=0;

for(k=0;k<MAX;k++,t++) a[k]=t+t; }

fun2(int b[]) { int k;

for(k=0;k<MAX;k++)printf("%d",*(b+k)) }

(9)下面程序的输出是 9 。 main( )

{int a[10]={19,23,44,17,37,28,49,36},* p; p=a;

printf("%d\n",(p+=3)[3]); }

(10)下面程序的输出是 10 。 main( )

{int i=3,j=2 char *a="DCBA";

printf("%c%c\n",a[i],a[j]); }

(11)以下函数的功能是:把两个整数指针所指的存储单元中的内容进行交换。请填空。 exchange(int *x, int *y) {int t;

t=*y; y= 11 ; *x= 12 ; }

(12)若有以下定义和语句,则sizeof(a)的值是13 ,而sizeof(b)的值是 14 。

全国计算机二级笔试基础部分和C语言程序设计

struct { int day; char mouth; int year;}a;*b; b=&a;

(13)以下fun函数的功能是:累加数组元素的值。n为数组中元素的个数。累加的和值放入x所指的存储单元中。请填空。 fun(int b [ ],int n,int *x) { int k, r=0;

for(k=0;k<n;k++) r= 15 ; 16 =r; }

(14)变量root有如图所示的存储结构,其中sp是指向字符串的指针域,next是指向该结构的指针域,data用以存放整型数。请填空,完成此结构的类型说明和变量root的定义。 sp next data root struct list { char * sp; 17 ; 18 ;

(15)下面程序把从终端读入的10个整数以二进制的方式写到一个名为bi.dat 的新文件中。请填空。 #include<stdio.h> FILE *fp; main( ) { int i,j;

if((fp=fopen( 19 ,"wb"))= =NULL)exit(0); for(i=0;i<10;i++ { scanf("%d",&j);

fwrite(&j,sizeof(int),1, 20 ); }

fclose(fp); }

全国计算机二级笔试基础部分和C语言程序设计

2001年4月全国计算机等级考试二级笔试试卷基础部分和C语言程序设计

一、选择题((1)-(40)题每题1分,(41)-(50)题每题2分,共60分)

下列各题A) 、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。 (1) 计算机的存储器完整的应包括

A) 软盘、硬盘 B) 磁盘、磁带、光盘 C) 内存储器、外存储器 D) RAM、ROM (2) 计算机中运算器的作用是

A) 控制数据的输入/输出 B) 控制主存与辅存间的数据交换

C) 完成各种算术运算和逻辑运算 D) 协调和指挥整个计算机系统的操作 (3) 软磁盘处于写保护状态时,其中记录的信息 A) 绝对不会丢失

B) 不能被擦除,但能追加新信息 C) 不能通过写磁盘操作被更新

D) 不能以常规方式被删除,但可以通过操作系统的格式化功能被擦除 (4) 光盘根据基制造材料和记录信息的方式不同,一般可分为 A) CD、VCD

B) CD、VCD、DVD、MP3

C) 只读光盘、可一次性写入光盘、可擦写光盘 D) 数据盘、音频信息盘、视频信息盘 (5) 在计算机系统中,可执行程序是

A) 源代码 B) 汇编语言代码 C) 机器语言代码 D) ASCII码 (6) 计算机软件系统包括

A) 操作系统、网络软件 B) 系统软件、应用软件

C) 客户端应用软件、服务器端系统软件 D) 操作系统、应用软件和网络软件 (7) 目前,一台计算机要连入Internet,必须安装的硬件是 A) 调制解调器或网卡 B) 网络操作系统 C) 网络查询工具 D) WWW浏览器

(8) 在多媒体计算机系统中,不能存储多媒体信息的是 A) 光盘 B) 磁盘 C) 磁带 D) 光缆

(9) 要将当前盘当前目录下一个文本文件内容显示在屏幕上,正确的命令形式是 A) TYPE a*.* B) TYPE east.exe

C) TYPE pro.c>PRN D) TYPE zfc.txt (10) 下列更改文件名的命令中正确的是

A) REN A:file1 C:F1 B) RENAME A: A:file1 C:F1 C) REN A:file1 F1 D) REN A:file1 \SUB\F1

(11) 已知A盘为DOS系统启动盘,只有A:\DOS下有自动批处理文件,其中内容为: CD\DOS MD USER CD USER

由A盘启动DOS系统后,A盘的当前目录是

A) \DOS B) \DOS\USER C) \ D) \USER

全国计算机二级笔试基础部分和C语言程序设计

(12) MS-DOS是

A) 分时操作系统 B) 分布式操作系统

C) 单用户、单任务操作系统 D) 单用户、多任务操作系统 (13) 在Windows操作系统中,不同文档之间互相复制信息需要借助于 A) 剪切板 B) 记事本 C) 写字板 D) 磁盘缓冲器 (14) 在Windows操作系统中

A) 同一时刻可以有多个活动窗口

B) 同一时刻可以有多个应用程序在运行,但只有一个活动窗口 C) 同一时刻只能有一个打开的窗口

D) DOS应用程序窗口与Windows应用程序窗口不能同时打开着 (15) 下列叙述中正确的是

A) 所有DOS应用程序都可以在Windows操作系统中正确运行 B) 所有DOS应用程序都不能在Windows操作系统中正确运行 C) 大部分DOS应用程序可以在Windows操作系统中正确运行

D) 为DOS5.0以上版本操作系统编写的应用程序可以在Windows操作系统中正确运行 (16) 下列叙述中正确的是

A) C语言编译时不检查语法

B) C语言的子程序有过程和函数两种 C) C语言的函数可以嵌套定义 D) C语言所有函数都是外部函数

(17) 以下所列的C语言常量中,错误的是

A) 0xFF B) 1.2e0.5 C) 2L D) '\72' (18) 下列选项中,合法的C语言关键字是

A) VAR B) cher C) integer D) default

(19) 以下变量x.、y、z均为double类型且已正确赋值,不能正确表示数学式子的C语言表达式是

A) x/y*z B) x*(1/(y*z)) C) x/y*1/z D) x/y/z

(20) 若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是 A) -3 B) 9 C) -12 D) 6

(21) 设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为 A) 不定值 B) 4 C) 3 D) 1

(22) 若变量已正确说明为float类型,要通过语句scanf

("%f %f %f ",&a,&b,& C);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:

A) 10<回车> B) 10.0,22.0,33.0<回车> 22<回车>33<回车> C) 10.0<回车> D) 10 22<回车> 22.0 33.0<回车> 33<回车> (23) 若执行以下程序时从键盘上输入9,则输出结果是 A) 11 B) 10 C) 9 D) 8 Main0 { int n; scanf

("%d",&n); if

(n++<10) printf

全国计算机二级笔试基础部分和C语言程序设计

("%d\n",n); else printf ("%d\n",n--); }

(24) 若a、b、c1、c2、x、y、均是整型变量,正确的switch语句是 A) swich(a+b); B) switch(a*a+b*b) { case 1:y=a+b; break; {case 3:

case 0:y=a-b; break; case 1:y=a+b;break; } case 3:y=b-a,break; }

C) switch a D) switch(a-b)

{ case c1 :y=a-b; break {default:y=a*b;break case c2: x=a*d; break case 3:case 4:x=a+b;break default:x=a+b; case 10:case 11:y=a-b;break; } }

(25) 有以下程序段 int k=0 while (k=1)k++;

while 循环执行的次数是

A) 无限次 B) 有语法错,不能执行 C) 一次也不执行 D) 执行1次 (26) 以下程序执行后sum的值是

A)15 B)14 C) 不确定 D)0 min()

{ int i , sum;

for(i=1;i<6;i++) sum+=i; printf("%d\n",sum); }

(27) 有以下程序段 int x=3 do { printf

("%d",x-=2); } while (!(--x)); 其输出结果是

A) 1 B) 3 0 C) 1 -2 D) 死循环

(28) 若变量c为char类型,能正确判断出c为小写字母的表达式是 A) 'a'<=c<= 'z' B) (c>= 'a')||(c<= 'z')

C) ('a'<= C)and ('z'>=c)

全国计算机二级笔试基础部分和C语言程序设计

D) (c>= 'a')&&(c<= 'z')

(29) 以下所列的各函数首部中,正确的是 A) void play(var :Integer,var b:Integer) B) void play(int a,b) C) void play(int a,int b)

D) Sub play(a as integer,b as integer) (30) 以下程序的输出结果是

A) 0 B) 29 C) 31 D) 无定值 fun(int x, int y, int z) { z=x*x+y*y; } main() { int a=31;

fun(5,2, A); printf("%d", A); }

(31) 下列程序段的输出结果是

A) 2 1 4 3 B) 1 2 1 2 C) 1 2 3 4 D) 2 1 1 2 void fun(int *x, int *y)

{ printf("%d %d", *x, *y); *x=3; *y=4;} main()

{ int x=1,y=2; fun(&y,&x); printf

("%d %d",x, y); }

(32) 下列程序的输出结果是

A) 非法 B)a[4]的地址 C)5 D)3 main()

{ char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5; printf("%d",*--p); }

(33) 下列程序的运行结果是

A) 6 3 B) 3 6 C) 编译出错 D) 0 0 void fun(int *a, int * B) { int *k;

k=a; a=b; b=k; }

main()

{ int a=3, b=6, *x=&a, *y=&b; fun(x,y);

printf("%d %d", a, B); }

(34) 下面程序的输出结果是

A) 0 B) 1 C) 10 D) 9

全国计算机二级笔试基础部分和C语言程序设计

main()

{ int a[ ]={1,2,3,4,5,6,7,8,9,0,},*p; p=a;

printf("%d\n",*p+9); }

(35) 当调用函数时,实参是一个数组名,则向函数传送的是 A) 数组的长度 B) 数组的首地址

C) 数组每一个元素的地址 D) 数组每个元素中的值 (36) 设有以下说明语句 struct ex

{ int x ; float y; char z ;} example; 则下面的叙述中不正确的是

A) struct结构体类型的关键字 B) example是结构体类型名 C) x,y,z都是结构体成员名 D) struct ex是结构体类型 (37) 以下只有在使用时才为该类型变量分配内存的存储类说明是 A) auto和static B) auto和register

C) register和static D) extern和register

(38) 若fp是指向某文件的指针,且已读到文件末尾,则库函数feof (fp)的返回值是

A) EOF B) -1 C) 非零值 D) NULL (39) 以下程序的输出结果是

A) 20 B) 21 C) 22 D)23 main()

{ int i, k, a[10], p[3]; k=5;

for (i=0;i<10;i++) a[i ]=i; for (i=0;i<3;i++) p[i ]=a[i * (i+1)];

for (i=0;i<3;i++) k+=p[i] *2; printf("%d\n",k); }

(40) 以下程序的输出结果是

A) 1,5,9 B) 1,4,7 C) 3,5,7 D)3,6,9 main()

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

(41) 以下程序的输出结果是

A) 18 B) 19 C) 20 D)21 main()

{ int a[3][3]={ {1,2},{3,4},{5,6} },i,j,s=0; for(i=1;i<3;i++)

for(j=0;j<=i;j++)s+=a[i][j];

全国计算机二级笔试基础部分和C语言程序设计

printf("%dn",s); }

(42) 以下程序的输出结果是

A) ABCD B) ABCD C) EFG D) EFGH FGH EFG JK IJKL KL IJ O M main()

{ char w[][10]={ "ABCD","EFGH","IJKL","MNOP"},k; for(k=1;k<3;k++) printf ("%s\n",w[k]); }

(43) 当执行下面的程序时,如果输入ABC,则输出结果是

A) ABC6789 B) ABC67 C) 12345ABC6 D) ABC456789 #include "stdio.h" #include "string.h" main()

{ char ss[10]="1,2,3,4,5"; gets(ss); strcat (ss, "6789"); printf ("%s\n",ss); }

(44) 假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入:

PROG ABCDEFGH IJKL<回车>,则输出结果为

A) ABCDEFG B) IJHL C) ABCDEFGHIJKL D) IJKLABCDEFGH main( int argc, char *argv[])) { while

(--argc>0) printf ("%s",argv[argc]); printf ("\n"); }

(45) 以下程序的输出结果是

A) 1 B) 2 C) 3 D) 4 long fun( int n) { long s;

if(n= =1 || n= =2) s=2; else s=n-fun(n-1); return s; }

main()

{ printf("%ld\n", fun(3)); } (46) 以下程序的输出结果是

全国计算机二级笔试基础部分和C语言程序设计

A) 16 B) 2 C) 9 D) 1 #define SQR(X) X*X main()

{ int a=16, k=2, m=1;

a/=SQR(k+m)/SQR(k+m); printf("d\n",a); }

(47) 若定义了以下函数: void f(......) {...... *p=

(double *)malloc( 10*sizeof( double)); ...... }

p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调函数,则形参p的正确定义应当是

A) double *p B) float **p C) double **p D) float *p (48) 以下程序的输出是

A) 10 B) 11 C) 51 D) 60 struct st

{ int x; int *y;} *p;

int dt[4]={ 10,20,30,40 };

struct st aa[4]={ 50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0],}; main() { p=aa;

printf("%d\n",++(p->x)); }

(49) 假定建立了以下链表结构,指针p、q分别指向如图所示的结点,则以下可以将q所指结点从链表中删除并释放该结点的语句组是 A) free(q); p->next=q->next; B) (*p).next=(*q).next; free(q);

C) q=(*q).next; (*p).next=q; free(q);

D) q=q->next; p->next=q; p=p->next; free(p); (50) 以下程序的输出结果是

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

{ int x=0.5; char z='a';

printf("%d\n", (x&1)&&(z<'z') ); } ( 二) 填空题

(每空2分,共40分)

请将每一个空的正确答案写在答题卡【1】至【20】序号的横线上,答在试卷上不得分。 (1) 计算机机领域中,通常用英文单词“Byte"表示【1】。 (2) 在DOS环境下,自动批处理的文件名为【2】。

(3) 要将当前盘当前目录下所有扩展名为.TXT的文件内容在打印机上打印输出,应使用的

全国计算机二级笔试基础部分和C语言程序设计

单条DOS内部命令为【3】。

(4) 在Windows环境下,可以利用单击、双击、拖动这三种鼠标操作之一的【4】操作实现窗口的移动。

(5) 在Windows环境下,可以将窗口最小化为【5】。 (6) 以下程序的输出结果是【6】 main()

{ int a=1, b=2;

a=a+b; b=a-b; a=a-b;

printf("%d,%d\n", a, B); }

(7) 下列程序的输出结果是16.00,请填空。。 main()

{ int a=9, b=2;

float x= 【7】, y=1.1,z; z=a/2+b*x/y+1/2; printf("%5.2f\n", z ); }

(8) 用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。

st=(char*) 【8】;

(9) 下列程序段的输出结果是【9】。 main()

{ char b[]="Hello,you"; b[5]=0;

printf("%s \n", B); }

(10) 下列程序段的输出结果是【10】。 int n='c'; switch(n++)

{ default: printf("error");break;

case 'a':case 'A':case 'b':case 'B':printf("good");break; case 'c':case 'C':printf("pass"); case 'd':case 'D':printf("warn"); }

(11) 以下程序通过函数指针p调用函数fun,请在填空栏内,写出定义变量p的语句。 void fun(int *x,int *y) { ...... } main()

{ int a=10,b=20; 【11】; /定义变p */ p=fun; p(&a,&b); ...... }

(12) 下列程序的输出结果是【12】。

全国计算机二级笔试基础部分和C语言程序设计

void fun(int *n) { while((*n)--);

printf("%d",++(*n)); }

main()

{ int a=100; fun(&a); }

(13) 以下程序的输出结果是【13】。 main()

{ int arr[ ]={30,25,20,15,10,5}, *p=arr; p++;

printf("%d\n",*(p+3)); }

(14) 以下程序用来输出结构体变量ex所占存储单元的字节数,请填空。 struct st

{ char name[20]; double score; }; main()

{ struct st ex;

printf("ex size: %d\n",sizeof( 【14】)); }

(15) 下面程序把从终端读入的文本(用@作为文本结束标志)输出到一个名为bi.dat的新文件中。请填空。 #include "stdio.h" FILE *fp; { char ch;

if((fp=fopen ( 【15】) )= = NULL)exit(0); while( (ch=getchar( )) !='@') fputc (ch,fp); fclose(fp); }

(16) 若变量n中的值为24,则prnt函数共输出【16】行,最后一行有【17】个数。 void prnt(int n, int aa[ ]) { int i;

for(i=1; i<=n;i++) { printf("%6d", aa[i]); if( !(i%5) ) printf("\n"); }

printf("\n"); }

(17) 以下程序中,主函数调用了LineMax函数,实现在N行M列的二维数组中,找出每一行上的最大值。请填空。 #define N 3 #define M 4

void LineMax(int x[N][M])

全国计算机二级笔试基础部分和C语言程序设计

{ int i,j,p;

for(i=0; i<N;i++) { p=0;

for(j=1; j<M;j++)

if(x[i][p]<x[i][j]) 【18】;

printf("The max value in line %d is %d\n", i, 【19】); } }

main()

{ int x[N][M]={1,5,7,4,2,6,4,3,8,2,3,1}; 【20】 }

全国计算机二级笔试基础部分和C语言程序设计

2009年9月全国计算机等级考试二级笔试试卷 (C程序)

考试时间90分钟,满分100分)

一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共70分)

(1)下列数据结构中,属于非线性结构的是 A)循环队列 B) 带链队列 C) 二叉树 D)带链栈

(2)下列数据结果中,能够按照“先进后出”原则存取数据的是 A) 循环队列 B) 栈 C)队列 D)二叉树

(3)对于循环队列,下列叙述中正确的是 A)队头指针是固定不变的 B)队头指针一定大于队尾指针 C)队头指针一定小于队尾指针

D)队头指针可以大于队尾指针,也可以小于队尾指针

(4)算法的空间复杂度是指

A)算法在执行过程中所需要的计算机存储空间 B)算法所处理的数据量

C)算法程序中的语句或指令条数

D)算法在执行过程中所需要的临时工作单元数

(5)软件设计中划分模块的一个准则是 A) 低内聚低耦合 B) 高内聚低耦合 C) 低内聚高耦合 D) 高内聚高耦合

本文来源:https://www.bwwdw.com/article/isx1.html

Top