c语言试卷9答案,1999年9月全国计算机等级考试二级C语言试卷(含答案)

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

 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应的位置上,答在试卷上不得分。

(1) 十进制数1385转换成十六进制数为

 A) 568         B) 569         C) D85           D) D55

(2) 下列叙述中正确的是

 A) 计算机病毒只能传染给可执行文件

 B) 计算机软件是指存储在软盘中的程序

 C) 计算机每次启动的过程之所以相同,是因为RAM中的所有信息在关机后不会丢失

 D) 硬盘虽然装在主机箱内,但它属于外存

(3) 一个字长的二进制位数是

 A) 8              B) 16            C) 32             D) 随计算机系统而不同的

(4) CPU主要由运算器与控制器组成,下列说法中正确的是

 A) 运算器主要负责分析指令,并根据指令要求作相应的运算

 B) 控制器主要完成对数据的运算,包括算术运算和逻辑运算

 C) 控制器主要负责分析指令,并根据指令要求作相应的运算

 D) 控制器直接控制计算机系统的输入与输出操作

(5) 下列叙述中正确的是

 A) 将数字信号变换成便于在模拟通信线路中传输的信号称为调制

 B) 以原封不动的形式将来自终端的信息送入通信线路称为调制解调

 C) 在计算机网络中,一种传输介质不能传送多路信号

 D) 在计算机局域网中,只能共享软件资源,而不能共享硬件资源

(6) 各种网络传输介质

 A) 具有相同的传输速率和相同的传输距离

 B) 具有不同的传输速率和不同的传输距离

 C) 具有相同的传输速率和不同的传输距离

 D) 具有不同的传输速率和相同的传输距离

(7) 多媒体计算机系统的两大组成部分是

 A) 多媒体功能卡和多媒体主机

 B) 多媒体通信软件和多媒体开发工具

 C) 多媒体输入设备和多媒体输出设备

 D) 多媒体计算机硬件系统和多媒体计算机软件系统

(8) 按通信距离划分,计算机网络可以分为局域网和广域网。下列网络中属于局域网的是

 A) Internet              B) CERNET              C) Novell               D) CHINANET

(9) 在Windows中,启动应用程序的正确方法是

 A) 用鼠标双击该应用程序图标           B) 将该应用程序窗口最小化成图标

 C) 将该应用程序窗口还原                   D) 将鼠标指向该应用程序图标

(10) 在Windows中,终止应用程序执行的正确方法是

 A) 用鼠标双击应用程序窗口左上角的控制菜单框

 B) 将应用程序窗口最小化成图标

 C) 用鼠标双击应用程序窗口右上角的还原按钮

 D) 用鼠标双击应用程序窗口中的标题栏

(11) DOS控制键Ctrl+Alt+Del的功能为

 A) 删除一个字符并退格              B) 暂停标准输出设备的输出

 C) 热启动                                      D) 终止当前操作

(12) 设当前盘为C盘,为了将A盘当前目录中所有扩展名为.PAS 的文件改成扩展名为.P,应使用的DOS命令为

 A) REN A:*.PAS A:*.P                 B) REN A:*.PAS *.P

 B) REN A:.PAS A:.P                     D) REN A:.PAS .P

(13) 设当前盘为C盘,其根目录下有两个子目录D1与D2,且当前目录为D1,若要进入子目录D2,正确的DOS命令为

 A) CD D2             B) CD D2\               C) CD \D2              D) CD D1\D2

(14) 设当前盘为A盘,要将B盘当前目录下的两个文件A.TXT与X.TXT 连接后以文件名Y.TXT存放到A盘的当前目录中,正确的DOS命令为

 A) COPY A.TXT+X.TXT A:Y.TXT                 B) COPY B:A.TXT+X.TXT A:Y.TXT

 B) COPY B:A.TXT+B:X.TXT>Y.TXT             D) COPY B:A.TXT+B:X.TXT Y.TXT

(15) 下列DOS命令中正确的是

 A) REN \USER\A.TXT \B.TXT       B) CD \

 C) TYPE *.TXT                              D) MD \

(16) 以下选项中属于C语言的数据类型是

 A) 复数型        B) 逻辑型        C) 双精度型      D) 集合型

(17) 在C语言中,不正确的int类型的常数是

 A) 32768            B) 0            C) 037            D) 0xAF

(18) 语句:printf("%d",(a=2)&&(b= -2);的输出结果是

 A) 无输出            B) 结果不确定            C) -1             D) 1

(19) 下列描述中不正确的是

 A) 字符型数组中可以存放字符串

 B) 可以对字符型数组进行整体输入、输出

 C) 可以对整型数组进行整体输入、输出

 D) 不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值

(20) 设有如下定义:int x=l,y=-1;,则语句:printf("%d\n",(x--&++y));的输出结果是

 A) 1            B) 0            C) -1           D) 2

(21) 当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是

 A) c=b=a;                           B) (a=c) ‖(b=c) ;

 C) (a=c) &&(b=c);             D) a=c=b;

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

 A) 10 1 9 2             B) 9 8 7 6             C) 10 9 9 0             D) 10 10 9 1

 main( )

 { int x=10,y=10,I;

 for(i=0;x>8;y=++i)

 printf("%d,%d ",x--,y);

 }

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

 A) 5 2            B) 5 1            C) 5 3             D) 9 7

 main( )

 { int i,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];

 for(i=0;i<4;i+=2)printf("%d ",p[i]);

 }

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

 A)6                 B) 6789            C) '6'            D) 789

 main( )

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

 int i;

 i=8;

 p=a+I;

 printf("%s\n",p-3);

 }

(25) 以下程序的运行结果是

 A) 运行后报错             B) 6 6             C) 6 12                D) 5 5

 #include "stdio.h"

 main( )

 {

 int a[ ]={1,2,3,4,5,6,7,8,9,10,11,12,};

 int *p=a+5, *q=NULL;

 * q=*(p+5);

 printf("%d %d \n",*p,*q);

 }

(26) 以下说法中正确的是

 A) #define和printf都是C语句                   B) #define是C语句,而printf不是

 C) printf是C语句,但#define不是           D) #define和printf都不是C语句



(27) 语句:printf("%d \n",12 &012);的输出结果是

 A) 12                 B) 8                C) 6               D) 012

(28) 能正确表示a和b同时为正或同时为负的逻辑表达式是

 A) (a>=0‖b>=0)&&(a<0‖b<0)

 B) (a>=0&&b>=0)&&(a<0&&b<0)

 C) (a+b>0)&&(a+b<=0)

 D) a*b>0

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

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

 main( )

 { int n=4;

 while(n--)printf("%d ",--n);

 }

(30) 若已定义:int a[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1] 地址的表达式是

 A) p+1            B) a+1               C) a++           D) ++p

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

 A) 17,021,0x11          B) 17,17,17

 C) 17,0x11,021          D) 17,21,11

 main( )

 { int k=17;

 printf("%d,%o,%x \n",k,k,k);

 }

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

 A) -1 1            B) 0 1             C) 1 0          D) 0 0

 main( )

 { int a= -1,b=1,k;

 if((++a<0)&& ! (b-- <=0))

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

 else

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

 }

(33) 若有说明:long *p,a;则不能通过scanf语句正确给输入项读入数据的程序段是

 A) *p=&a; scanf("%ld",p);

 B) p=(long *)malloc(8); scanf("%ld",p);

 C) scanf("%ld",p=&a);

 D) scanf("%ld",&a);

(34) 以下选项中,能定义s为合法的结构体变量的是

 A) typedef struct abc               B) struct

 { double a;                             { double a;

 char b[10];                                char b[10];

 } s;                                          } s;

 C) struct ABC                D) typedef ABC

 { double a;                        { double a;

 char b[10];                         char b[10];

 }                                           }

 ABC s;                               ABC s;

(35) 若有以下的说明和语句,则在执行for语句后,*(*(pt+l)+2)表示的数组元素是

 A) t[2][0]                B) t[2][2]            C) t[l][2]             D) t[2][l]

 int t[3][3], *pt([3], k;

 for (k=0;k<3;k++) pt[k]=&t[k][0];

(36) 下面程序把数组元素中的最大值放入a[0]中。则在if 语句中的条件表达式应该是

 A) p>a            B) *p>a[0]         C) *p>*a[0]           D) *p[0]> *a[0]

 main( )

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

 for(i=o;i<10;i++,p++)

 if(________) *a=*p;

 printf("%d",*a);

 }

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

 A) ihgfedcba              B) abcdefghi            C) abcdedeba             D) ihgfefghi

 #include

 main( )

 { char *a="abcdefghi"; int k;

 fun(a); puts(a);

 }

 fun(char *s)

 { int x,y; char c;

 for(x=0,y=strlen(s)-1;x0) fun(k-1);

 printf("%d",k);

 }

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

 A) 6 9 9           B) 6 6 9            C) 6 15 15           D) 6 6 15

 int d=1;

 fun(int p)

 { static int d=5;

 d+=p;

 printf("%d ",d);

 return(d);

 }

 main( )

 { int a=3; printf("%d \n",fun(a+fun(d))); }

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

 A) 123456780             B) 123 456 780           C) 12345678              D) 147

 main( )

 { char ch[3][4]={"123","456","78"}, *p[3]; int i;

 for(i=0;i<3;i++) p[i]=ch[i];

 for(i=0;i<3;i++) printf("%s",p[i]);

 }

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

 A) 1           B) 4             C) 7             D) 5

 #include

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

 main( )

 { p=(int*)malloc(sizeof(int));

 f(p,a);

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

 }

 f(int *s, int p[][3])

 { *s=p[1][1]; }

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

 A) 9                B) 6                C) 36                   D) 18

 #define f(x) x*x

 main( )

 { int a=6,b=2,c;

 c=f(a) / f(b);

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

 }

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

 A)4 2 1 1            B) 0 0 0 8            C) 4 6 7 8            D) 8 8 8 8

 main( )

 { char *s="12134211"; int v[4]={0,0,0,0},k,i;

 for(k=0;s[k];k++)

 { switch(s[k])

 { case '1':i=0;

 case '2':i=1;

 case '3':i=2;

 case '4':i=3;

 }

 v[i]++;

 }

 for(k=0;k<4;k++) printf("%d ",v[k]);

 }

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

 A) AfghdEFG            B) Abfhd          C) Afghd            D) Afgd

 #include

 main( )

 { char *p1,*p2,str[50]="ABCDEFG";

 p1="abcd"; p2="efgh";

 strcpy(str+1,p2+1); strcpy(str+3,p1+3);

 printf("%s",str);

 }

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

 A) #*#*#             B) #####              C) *****            D) *#*#*

 main( )

 { int i;

 for(i=1;i<6;i++)

 { if(i%2){printf("#");continue;}

 printf("*");

 }

 printf("\n");

 }

(49) 若有以下定义和语句:

 double r=99, *p=&r;

 *p=r;

 则以下正确的叙述是

 A) 以下两处的*p含义相同,都说明给指针变量p赋值

 B) 在"double r=99, *p=&r;"中,把r的地址赋值给了p所指的存储单元

 C) 语句"*p=r;"把变量r的值赋给指针变量p

 D) 语句"*p=r;"取变量r的值放回r中

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

 A) 编译不通过,无输出             B) aceg

 C) acegi                                         D) abcdefghi

 main( )

 { int i;

 for(i='A';i

 printf(" \n");

 }



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

 请将每空的正确答案写在答题卡【1】至【20】序号的横线上, 答在试卷上不得分。

(1) DOS命令分为内部命令与外部命令,PATH命令是 【1】 命令。

(2) 设当前盘为A盘,当前目录为\X\Y,A盘上的一个文件QR.C 在当前目录下的子目录W中。现已将A盘的当前目录改为\D\XY,当前盘改为C盘,如果需指定A盘上的该文件应写成 【2】 。

(3) 为了得到XCOPY命令的在线帮助,可使用的DOS命令文件一为 【3】 。

(4) 在DOS系统下,代表键盘与显示器的设备文件名为 【4】 。

(5) 在DOS系统下,可以直接执行的文件的扩展名除.FXE外,还有两个是 【5】 。

(6) 若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是 【6】 。



 int b,c; float a;

 scanf("%f,%d,c=%d",&a,&b,&c);

 .

 .

 .

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

 #include

 main( )

 { char b[30],*chp;

 strcpy(&b[0],"CH");

 strcpy(&b[1],"DEF");

 strcpy(&b[2],"ABC");

 printf("%s \n",b);

 }

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

 int t(int x,int y,int cp,int dp)

 { cp=x*x+y*y;

 dp=x*x-y*y;

 }

 main( )

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

 t(a,b,c,d);

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

 }

(9) 下列程序中字符串中各单词之间有一个空格,则程序的输出结果是 【9】 。

 #include

 main( )

 { char strl[]="How do you do", *p1=strl;

 strcpy(strl+strlen(strl)/2,"es she");

 printf("%s \n",pl);

 }

(10) 以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。请填空。

 main( )

 { float x[1000], sum=0.0, ave, a;

 int n=0, i;

 printf("Enter mark:\n");scanf("%f",&a);

 while(a>=0.0&& n<1000)

 { sum+ 【10】 ; x[n]= 【11】 ;

 n++; scanf("%f",&a);

 }

 ave= 【12】 ;

 printf("Output:\n");

 printf("ave=%f\n",ave);

 for (I=0;I if 【13】 printf (“%f\n”,x[I]);

 }

(11) 有以下定义和语句,则sizeof(a)的值是 【14】 ,而sizeof(a.share)的值是 【15】

struct date{ int day;

 int month;

 int year;

 union{int share1

 float share2;

 }share;

 }a;

(12) 以下程序中用户由键盘输入一个文件名,然后输入一串字符(用#结束输入)存放到此文件文件中形成文本文件,并将字符的个数写到文件尾部,请填空。

 #include

 main( )

 { FILE *fp;

 char ch,fname[32]; int count=0;

 printf("Input the filename :"); scanf("%s",fname);

 if((fp=fopen( 【16】 ,"w+"))==NULL)

 { printf("Can't open file:%s \n",fname); exit(0);}

 printf("Enter data:\n");

 while((ch=getchar())!="#"){ fputc(ch,fp); count++;}

 fprintf( 【17】 ,"\n%d\n", count);

 fclose(fp);

 }

(13) 以下函数creatlist用来建立一个带头节点的单链表,链表的结构如下图所示,新的结点总是插入在链表的末尾。链表的头指针作为函数值返回,链表最后一个节点的next域放入NULL,作为链表结束标志。data为字符型数据域,next为指针域。读入时字符以#表示输入结束(#不存入链表)。请填空。

 struct node

 { char data;

 struct node * next;

 };

 .

 .

 .

 【18】 creatlist( )

 { struct node * h,* s,* r; char ch;

 h=(struct node *)malloc(sizeof(struct node));

 r=h;

 ch=getchar( );

 { s=(struct node *)malloc(sizeof(struct node));

 s->data= 【19】 ;

 r->next=s; r=s;

 ch=getchar( ); }

 r->next= 【20】 ;

 return h;

 }

1999年9月全国计算机等级考试二级笔试答案

C语言

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

(1)B (2)D (3)D (4)D (5)A (6)B (7)D (8)C (9)A (10)A

(11)C (12)B (13)C (14)D (15)B (16)C (17)A (18)D (19)C (20)B

(21)C (22)D (23)C (24)B (25)A (26)D (27)B (28)D (29)A (30)C

(31)D (32)C (33)A (34)B (35)C (36)B (37) (38) (39) (40)

(41) (42)C (43)C (44)D (45)C (46)B (47)D (48)A (49)D (50)B



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

(1)内部

(2)A:\X\Y\W\OR.C

(3) XCOPY/?或XCOPY/H

(4) CON

(5) COM和.BAT

(6) 5.0,4,c=3

(7)CDABC

(8) 56

(9) How des she

(10) =a

(11) a

(12)sum/n

(13)x[i](14)

(15)

(16) fname

(17) fp

(18) struct node *

(19) ch

(20) NULL    育路网

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值