1、(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应用程序都不能
2、在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均为doub
3、le类型且已正确赋值,不能正确表示数学式子的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)
4、 10.0,22.0,33.0 22 33C) 10.0 D) 10 22 22.0 33.0 33(23) 若执行以下程序时从键盘上输入9,则输出结果是A) 11 B) 10 C) 9 D) 8Main0 int n; scanf(“%d”,&n); if(n+10) printf(“%dn”,n); else printf(“%dn”,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; case 1:b
5、reak; case 3:y=b-a,break; C) switch a D) switch(a-b) case c1 : break default:y=a*b;break case c2: x=a*d; break case 3:case 4:x=a+b; default: case 10:case 11: (25) 有以下程序段int k=0while(k=1)k+;while 循环执行的次数是A) 无限次 B) 有语法错,不能执行C) 一次也不执行 D) 执行1次(26) 以下程序执行后sum的值是A)15 B)14 C) 不确定 D)0min() int i , sum; for(
6、i=1;i6;i+) sum+=i; printf(“%dn”,sum);(27) 有以下程序段int x=3do printf(“%d”,x-=2); while (!(-x);其输出结果是A) 1 B) 3 0 C) 1 -2 D) 死循环(28) 若变量c为char类型,能正确判断出c为小写字母的表达式是A) a=c= a)|(c= z)C) (a=c) D) (c= a)&(c(29) 以下所列的各函数首部中,正确的是A) void play(var :Integer,var b:Integer)B) void play(int a,b)C) void play(int a,int b
7、)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 2void fun(int *x, int *y) printf(“%d %d”, *x, *y); *x=3; *y=4; int x=1,y=2; fun(&y,&x)
8、; printf(“%d %d”,x, y);(32) 下列程序的输出结果是A) 非法 B)a4的地址 C)5 D)3main() char a10=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 0void fun(int *a, int *b) int *k; k=a; a=b; b=k; int a=3, b=6, *x=&a, *y=&b; fun(x,y); printf(“%d %d”, a, b);(34) 下面程序的输出结果是A) 0 B) 1 C) 1
9、0 D) 9 int a =1,2,3,4,5,6,7,8,9,0,*p; p=a; printf(“%dn”,*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) 以下只有在使用时才为该类型变量分配内存的
10、存储类说明是A) auto和 static B) auto和 registerC) 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 int i, k, a10, p3; k=5; for (i=0;10;i+) ai =i;3;i+) pi =ai *(i+1);i+) k+=pi *2; printf(“%dn”,k);(40) 以下程序的输出结果是A)
11、1,5,9 B) 1,4,7 C) 3,5,7 D)3,6,9 int i, x33=1,2,3,4,5,6,7,8,9; for(i=0;i+) printf(“%d,”,xi2-i);(41) 以下程序的输出结果是A) 18 B) 19 C) 20 D)21 int a33= 1,2,3,4,5,6 ,i,j,s=0;i+) for(j=0;j=i;j+)s+=aij; printf(“%dn”,s);(42) 以下程序的输出结果是A) ABCD B) ABCD C) EFG D) EFGHFGH EFG JK IJKLKL IJ O M char w10= “ABCD”,”EFGH”,”
12、IJKL”,”MNOP”,k; for(k=1;kk+) printf(“%sn”,wk);(43) 当执行下面的程序时,如果输入ABC,则输出结果是A) ABC6789 B) ABC67 C) 12345ABC6 D) ABC456789#include “stdio.h”#include “string.h” char ss10=“1,2,3,4,5”; gets(ss); strcat(ss, “6789”); printf(“%sn”,ss);(44) 假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入:PROG ABCDEFGH
13、IJKL0) printf(“%s”,argvargc);printf(“n”);(45) 以下程序的输出结果是A) 1 B) 2 C) 3 D) 4long fun( int n) long s; if(n= =1 | n= =2) s=2; else s=n-fun(n-1); return s; printf(“%ldn”, fun(3);(46) 以下程序的输出结果是A) 16 B) 2 C) 9 D) 1#define SQR(X) X*X int a=16, k=2, m=1; a/=SQR(k+m)/SQR(k+m); printf(“dn”,a);(47) 若定义了以下函数:v
14、oid 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) 60struct st int x; int *y; *p;int dt4= 10,20,30,40 ;struct st aa4= 50,&dt0,60,&dt0,; p=aa; printf(“%dn”,+(p-x);(49) 假定建立了以下链
15、表结构,指针p、q分别指向如图所示的结点,则以下可以将q所指结点从链表中删除并释放该结点的语句组是A) free(q); p-next=q-next;B) (*p).next=(*q).next; free(q);C) q=(*q).next; (*p).next=q;D) q=q-next=q; p=p- free(p);(50) 以下程序的输出结果是A) 0 B) 1 C) 2 D) 3 int x=0.5; char z=a; printf(“%dn”, (x&1)&(zz) );二) 填空题(每空2分,共40分) 请将每一个空的正确答案写在答题卡【1】至【20】序号的横线上,答在试卷上
16、不得分。计算机机领域中,通常用英文单词“Byte”表示 【】 。在DOS环境下,自动批处理的文件名为 【】 。要将当前盘当前目录下所有扩展名为.TXT的文件内容在打印机上打印输出,应使用的单条DOS内部命令为 【】 。在Windows环境下,可以利用单击、双击、拖动这三种鼠标操作之一的 【】 操作实现窗口的移动。在Windows环境下,可以将窗口最小化为 【】 。以下程序的输出结果是 【6】 int a=1, b=2; a=a+b; b=a-b; a=a-b; printf(“%d,%dn”, a, b );下列程序的输出结果是16.00,请填空。 int a=9, b=2; float x=
17、 【7】 , y=1.1,z; z=a/2+b*x/y+1/2; printf(“%5.2fn”, z );用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。st=(char*) 【8】 ;下列程序段的输出结果是 【9】 。 char b=”Hello,you”; b5=0; printf(“%s n”, b );下列程序段的输出结果是 【10】 。int n=c;switch(n+) default: printf(“error”); case a:case A:case b:case B:printf(“good”); case c:case C:p
18、rintf(“pass”); case d:case D:printf(“warn”);以下程序通过函数指针p调用函数fun,请在填空栏内,写出定义变量p的语句。void fun(int *x,int *y) int a=10,b=20; 【11】 ; /定义变p */ p=fun; p(&b); 下列程序的输出结果是 【12】 。void fun(int *n) while( (*n)-); printf(“%d”,+(*n); int a=100;a);以下程序的输出结果是 【13】 。 int arr =30,25,20,15,10,5, *p=arr; p+; printf(“%dn”
19、,*(p+3);以下程序用来输出结构体变量ex所占存储单元的字节数,请填空。 char name20; double score; ; struct st ex; printf(“ex size: %dn”,sizeof( 【14】 );下面程序把从终端读入的文本(用作为文本结束标志)输出到一个名为bi.dat的新文件中。请填空。FILE *fp; char ch; if( (fp=fopen ( 【15】 ) )= = NULL)exit(0); while( (ch=getchar( ) !=) fputc (ch,fp); fclose(fp);若变量n中的值为24,则prnt函数共输出
20、 【16】 行,最后一行有 【17】 个数。void prnt(int n, int aa ) int i; i=n;i+) printf(“%6d”, aai); if( !(i%5) ) printf(“n”); printf(“n”);以下程序中,主函数调用了LineMax函数,实现在N行M列的二维数组中,找出每一行上的最大值。#define N 3#define M 4void LineMax(int xNM) int i,j,p;N; p=0; for(j=1; jM;j+) if(xipxij) 【18】 ; printf(“The max value in line %d is
21、%dn”, i, 【19】 ); int xNM=1,5,7,4,2,6,4,3,8,2,3,1; 【20】 2001年4月全国计算机等级考试二级笔试答案C语言选择题(1)-(40)题每题1分,(41)-(50)题每题2分,共60分。(1)C(2)C(3)C(4)C(5)C(6)B(7)A(8)D(9)D(10)C(11)C (12)C(13)A(14)B(15)C(16)D(17)B(18)D(19)A(20)C(21)C (22)B(23)B(24)D(25)A(26)C(27)C(28)D(29)C(30)C(31)A (32)C(33)B(34)C(35)B(36)B(37)B(38)
22、C(39)B(40)C(41)A (42)D(43)A(44)D(45)A(46)B(47)C(48)C(49)B(50)B二、填空题(每空2分,共40分)(1)字节(2)AUTOEXEC。BAT(3)COPY *。TXT PRN(4)拖动(5)图标或按钮(6)2.1(7)6.6(8)Malloc (11) 或malloc(sizeof(char)*11)(9)Hello(10) passwarm(11) void (*p)() 或void(*p)(int*, int*)(12)0(13)10(14)struct st 或ex(15) “bi.dat”,“w”或“bi.dat”,“wt”或“bi.dat”,“w+t”(16) 5(17) 4(18) sp=j(19) cxip(20) LineMax(x)完录入:李丹 校对:Forest用全真模拟软件,不愧为是有的放矢,
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1