2004年4月二级C语言学习知识笔试真命题及其规范标准答案.doc

上传人:小** 文档编号:2519576 上传时间:2020-04-17 格式:DOC 页数:16 大小:78.52KB
返回 下载 相关 举报
2004年4月二级C语言学习知识笔试真命题及其规范标准答案.doc_第1页
第1页 / 共16页
2004年4月二级C语言学习知识笔试真命题及其规范标准答案.doc_第2页
第2页 / 共16页
点击查看更多>>
资源描述

《2004年4月二级C语言学习知识笔试真命题及其规范标准答案.doc》由会员分享,可在线阅读,更多相关《2004年4月二级C语言学习知识笔试真命题及其规范标准答案.doc(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、!-2004年4月二级C语言笔试真题及答案(考试时间:120分钟,满分100分)一、选择题,(1-40)每题1分,(41-50)每题2分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。(1) 1MB等于A) 1000字节 B) 1024字节C) 10001000字节 D) 10241024字节(2) 与十六进制数200等值的十进制数为A) 256 B) 512 C) 1024 D) 2048(3) 所谓“裸机”是指A) 单片机 B) 单板机C) 不装备任何软件的计算机 D) 只装备操作系统的计算机(4) 能将高级

2、语言编写的源程序转换成目标程序的是A) 链接程序 B) 解释程序 C) 编译程序 D) 编辑程序 (5) 在64位计算机中,一个字长所占的字节数为A) 64 B) 8 C) 4 D) 1(6) 在Windows环境下,当一个应用程序窗口被最小化后,该应用程序A) 继续在后台运行 B) 继续在前台运行C) 终止运行 D) 暂停运行(7) 在Windows环境下,能实现窗口移动的操作是A) 用鼠标拖动窗口中的任何部位 B) 用鼠标拖动窗口的边框C) 用鼠标拖动窗口的控制按钮 D) 用鼠标拖动窗口的标题栏(8) 在Windows环境下,PrintScreen键的作用是A) 打印当前窗口的内容 B)

3、打印屏幕内容C) 复制屏幕到剪贴板 D) 复制当前窗口到剪贴板(9) Internet的通信协议是A) TCP/IP B) BBS C) WWW D) FTP(10) 下列叙述中正确的是A) 计算机病毒只感染可执行文件B) 计算机病毒只感染文本文件C) 计算机病毒只能通过软件复制的方式进行传播D) 计算机病毒可以通过网络或读写磁盘等方式进行传播(11) 一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是A) 有零个或多个输入 B) 有零个或多个输出 C) 有穷性 D) 可行性(12) 以下叙述中正确的是A) C语言的源程序不必通过编译就可以直接运行B) C语言中的每条可执

4、行语句最终都将被转换成二进制的机器指令C) C源程序经编译形成的二进制代码可以直接运行D) C语言中的函数不可以单独进行编译(13) 以下符合C语言语法的实型常量是A) 1.2E0.5 B) 3.14.159E C) .5E-3 D) E15(14) 以下4组用户定义标识符中,全部合法的一组是A) _main B) If C) txt D) int enclude -max REAL k_2 sin turbo 3COM _001(15) 若以下选项中的变量已正确定义,则正确的赋值语句是A) x1=26.8%3 B) 1+2=x2 C) x3=0x12 D) x4=1+2=3;(16) 设有以

5、下定义int a=0; double b=1.25;char c=A;#define d 2则下面语句中错误的是A) a+; B) b+ C) c+; D) d+;(17) 设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式 计算结果不相符的是A) (a+B) *h/2 B) (1/2)*(a+B) *hC) (a+B) *h*1/2 D) h/2*(a+B) (18) 有以下程序main( ) int x=102,y=012; printf(“%2d,%2dn”,x,y); 执行后输出结果是A) 10,01 B) 02,12 C) 102,10 D) 02,10(19)

6、 以下4个选项中,不能看作一条语句的是A) ; B) a=0,b=0,c=0;C) if(a0); D) if(b=0) m=1;n=2;(20) 设有定义:int a,*pa=&a;以下scanf语句中能正确为变量a读入数据的是A) scanf(“%d”,pA) ; B) scanf(“%d”,A) ;C) scanf(“%d”,&pA) ; D) scanf(“%d”,*pA) ;(21) 以下程序段中与语句k=ab?(bc?1:0):0;功能等价的是A) if(aB) &(bC) ) k=1; B) if(aB) |(bC) ) k=1else k=0;C) if(aB) k=1; el

7、se if(bC) k=1; else k=0; (22) 有以下程序main( ) char k; int I; for(i=1;i3;i+) scanf(“%c”,&k); switch(k) case 0: printf(“anothern”); case 1: printf(“numbern”); 程序运行时,从键盘输入:01,程序执行后的输出结果是A) another B) another C) another D) numbernumber number number number another number(23) 有以下程序main( ) int x=0,y=5,z=3; w

8、hile(z-0&+x5) y=y-1; printf(“%d,%d,%dn”,x,y,z);程序执行后的输出结果是A) 3,2,0 B) 3,2,-1 C) 4,3,-1 D) 5,-2,-5(24) 有以下程序main( ) int i,s=0; for(i=1;i10;i+=2) s+=i+1; printf(“%dn”,s);程序执行后的输出结果是A) 自然数19的累加和 B) 自然数110的累加和C) 自然数19中的奇数之和 D) 自然数110中的偶数之和(25) 有以下程序main( ) int i,n=0; for(i=2;i5;i+) do if(i%3) continue;

9、n+; while(!i);n+; printf(“n=%dn”,n);程序执行后的输出结果是A) n=5 B) n=2 C) n=3 D) n=4(26) 若程序中定义了以下函数 double myadd(double a,double B) return (a+B) ;并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是A) double myadd(double a,B) ; B) double myadd(double,double);C) double myadd(double b,double A) ;D) double myadd(double x,d

10、ouble y);(27) 有以下程序char fun(char x , char y) if(xy) f(x,y); else if(yz) f(y,z); else f(x,z); printf(“%d,%d,%dn”,x,y,z);执行后输出结果是A) 1,2,3 B) 3,1,2 C) 1,3,2 D) 2,3,1(30) 有以下程序段int a10=1,2,3,4,5,6,7,8,9,10,*p=&a3,b;b=p5;b中的值是A) 5B) 6C) 8D) 9(31) 31、有以下程序main( ) char a=”abcdefg”,b10=”abcdefg”; printf(“%d

11、 %dn”,sizeof(A) ,sizeof(B) );执行后输出结果是A) 7 7 B) 8 8 C) 8 10 D) 10 10(32) 有以下程序void swap1(int c) int t; t=c0;c0=c1;c1=t;void swap2(int c0,int c1) int t; t=c0;c0=c1;c1=t;main( ) int a2=3,5,b2=3,5; swap1(A) ; swap2(b0,b1); printf(“%d %d %d %dn”,a0,a1,b0,b1);其输出结果是A) 5 3 5 3 B) 5 3 3 5 C) 3 5 3 5 D) 3 5

12、5 3(33) 有以下程序void sum(int *A) a0=a1;main( ) int aa10=1,2,3,4,5,6,7,8,9,10,i; for(i=2;i=0;i-) &nb sp; sum(&aai); printf(“%dn”,aa0);执行后的输出结果是A) 4 B) 3 C) 2 D) 1(34) 34、有以下程序int f(int b4) int i,j,s=0; for(j=0;j2) i=3-j; s+=bij; return s;main( ) int a44=1,2,3,4,0,2,4,5,3,6,9,12,3,2,1,0;printf(“%dn”,f(A)

13、 );执行后的输出结果是A) 12 B) 11 C) 18 D) 16(35) 有以下定义#include char a10,*b=a;不能给数组a输入字符串的语句是A) gets(A) B) gets(a0) C) gets(&a0); D) gets(B) ;(36) 有以下程序main( ) char *p10=“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”; printf(“%dn”,strlen(p4);执行后输出结果是A) 2 B) 3 C) 4 D) 5(37) 有以下程序int a=2;int f(int *A) return (*A) +;main( )

14、 int s=0; int a=5; s+=f(&A) ; s+=f(&A) ; printf(“%dn”,s);执行后输出结果是A) 10 B) 9 C) 7 D) 8(38) 有以下程序#define f(x) x*xmain( ) int i; i=f(4+4)/f(2+2); printf(“%dn”,i);执行后输出结果是A) 28 B) 22 C) 16 D) 4(39) 设有以下语句typedef struct S int g; char h; T;则下面叙述中正确的是A) 可用S定义结构体变量 B)可以用T定义结构体变量C)S是struct类型的变量 D)T是struct S类

15、型的变量(40) 有以下程序struc STU char name10; int num;void f1(struct STU C) struct STU b=“LiSiGuo”,2042; c=b;void f2(struct STU *C) struct STU b=“SunDan”,2044; *c=b;main( ) struct STU a=“YangSan”,2041,b=“WangYin”,2043; f1(A) ;f2(&B) ; printf(“%d %dn”,a.num,b.num);执行后的输出结果是A)2041 2044 B)2041 2043 C)2042 2044

16、D)2042 2043(41) 有以下程序main( ) unsigned char a,b; a=4|3; b=4&3; printf(“%d %dn”,a,b(;执行后输出结果是A) 7 0 B) 0 7 C) 1 1 D) 43 0(42) 下面程序的功能是输出以下形式的金字塔图案是: * * * *main( ) int i,j; for(i=1;i=4;i+) for(j=1;j=4-i;j+) printf(“ “); for(j=1;j=_;j+) printf(“*”); printf(“n”); 在下划线处应填入的是A) i B) 2*i-1 C) 2*i+1 D) i+2(

17、43) 有以下程序void sort(int a,int n) int i,j,t; for(i=0;in-1;i+=2) for(j=i+2;jn;j+=2) if(aiaj) t=ai;ai=aj;aj=t;main() int aa10=1,2,3,4,5,6,7,8,9,10,i; sort(aa,10); for(i=0;i10;i+) printf(“%d”,aai); printf(“n”);其输出结果是A) 1,2,3,4,5,6,7,8,9,10, B) 10,9,8,7,6,5,4,3,2,1,C) 9,2,7,4,5,6,3,8,1,10, D) 1,10,3,8,5,6

18、,7,4,9,2,(44) 以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是A) char s10=”abcdefg”; B) char t=”abcdefg”,*s=t;C) char s10;s=”abcdefg”; D) char s10;strcpy(s,”abcdefg”);(45) 有以下程序#include main(int argc ,char *argv ) int i,len=0; for(i=1;iargc;i+=2) len+=strlen(argvi); printf(“5dn”,len); 经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数

19、的命令行ex abcd efg h3 k44执行后输出结果是A) 14 B) 12 C) 8 D) 6(46) 有以下程序void f(int a,int i,int j) int t; if(ij) t=ai; ai=aj;aj=t; f(a,i+1,j-1); main( ) int i,aa5=1,2,3,4,5; f(aa,0,4); for(i=0;i5;i+) printf(“%d,”,aai); printf(“n”); 执行后输出结果是A) 5,4,3,2,1, B) 5,2,3,4,1, C) 1,2,3,4,5, D) 1,2,3,4,5,(47) 有以下程序struct

20、STU char name10; int num; int Score;main( ) struct STU s5=“YangSan”,20041,703,“LiSiGuo”,20042,580, “wangYin”,20043,680,“SunDan”,20044,550, “Penghua”,20045,537,*p5,*t; int i,j; for(i=0;i5;i+) pi=&si; for(i=0;i4;i+) for(j=i+1;jScorepj-Score) t=pi;pi=pj;pj=t; printf(“5d %dn”,s1.Score,p1-Score);执行后输出结果是

21、A) 550 550 B) 680 680 C) 580 550 D) 580 680(48) 有以下程序#include struct NODEint num;struct NODE *next;main( ) struct NODE *p,*q,*r;int sum=0;p=(struct NODE *)malloc(sizeof(struct NODE);q=(struct NODE *)malloc(sizeof(struct NODE);r=(struct NODE *)malloc(sizeof(struct NODE);p-num=1;q-num=2;r-num=3;p-next

22、=q;q-next=r;r-next=NULL;sum+=q-next-num;sum+=p-num;printf(“%dn”,sum);执行后的输出结果是A) 3 B) 4 C) 5 D) 6(49) 有以下程序#include main( ) FILE *fp; int i,k=0,n=0; fp=fopen(“d1.dat”,”w”); for(i=1;i4;i+) fprintf(fp,”%d”,i); fclose(fp); fp=fopen(“d1.dat”,”r”); fscanf(fp,”%d%d”,&k,&n); printf(“%d %dn”,k,n); fclose(fp

23、);执行后输出结果是A) 1 2 B) 123 0 C) 1 23 D) 0 0(50) 有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END) ;语句的作用是使位置指针从文件尾向前移2*sizeof(int)字节)#include main( ) FILE *fp; int i,a4=1,2,3,4,b; fp=fopen(data.dat,wb); for(i=0;i=0;i-) t*=i; printf(“%dn”,t);执行后输出结果是【8】 。(9) 有以下程序main( ) int n=0,m=1,x=2; if(!n) x-=1; if(m)

24、 x-=2; if(x) x-=3; printf(“%dn”,x);执行后输出结果是【9】 。(10) 有以下程序#include main( ) char ch1,ch2; int n1,n2; ch1=getchar(); ch2=getchar(); n1=ch1-0; n2=n1*10+(ch2-0); printf(“%dn”,n2);程序运行时输入:12,执行后输出结果是【10】 。(11) 有以下程序void f( int y,int *x)y=y+*x; *x=*x+y;main( ) int x=2,y=4; f(y,&x); printf(“%d %dn”,x,y);执行

25、后输出的结果是【11】 。(12) 函数fun的功能是计算xndouble fun(double x,int n) int i; double y=1; for(i=1;i=n;i+) y=y*x; return y;主函数中已经正确定义m,a,b变量并赋值,并调用fun函数计算:m=a4+b4-(a+B) 3。实现这一计算的函数调用语句为【12】 。(13) 下面rotate函数的功能是:将n行n列的矩阵A转置为A,例如: 1 2 3 4 1 5 9 13 5 6 7 8 2 6 10 14 当 A 9 10 11 12 则 A= 3 7 11 15 13 14 15 16 4 8 12 1

26、6请填空#define N 4void rotate(int aN) int i,j,t; for(i=0;iN;i+) for(j=0;【13】;j+) t=aij; 【14】 ; aji=t; (14) 以下sstrcpy( )函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。请填空。void sstrcpy(char *s,char *t) while(*s+=【15】);main( ) char str1100,str2=”abcdefgh”; sstrcpy(str1,str2); printf(“%sn”,str1);(15) 下列程序的运行结果是

27、:【16】#include char *ss(char *s) return s+strlen(s)/2;main( ) char *p,*str=”abcdefgh”; p=ss(str); printf(“%sn”,p);(16) 下面程序的运行结果是:【17】int f( int a, int n) if(n1) return a0+f(&a1,n-1); else return a0;main ( ) int aa3=1,2,3,s; s=f(&aa0,3); printf(“%dn”,s);(17) 以下程序中给指针p分配三个double型动态内存单元,请填空。# include m

28、ain ( ) double *p; p=(double *) malloc(【18】); p0=1.5;p1=2.5;p2=3.5; printf(“%f%f%fn”,p0,p1,p2);(18) 以下程序的运行结果是【19】# include typedef struct student char name10; long sno; float score; STU;main( ) STU a=“zhangsan”,2001,95,b=“Shangxian”,2002,90,c=“Anhua”,2003,95,d,*p=&d; d=a; if(strcmp(a.name,b.name)0)

29、 d=b; if(strcmp(c.name,d.name)0) d=c; printf(“%ld%sn”,d.sno,p-name); (19) 以下sum函数的功能是计算下列级数之和。 S=1x+x2/2!+x3/3!+.+xn/n! 请给函数中的各变量正确赋初值。 double sum( double x, int n ) int i; double a,b,s; 【20】 for( i=1;i=n;i+) a=a*x; b=b*i; s=s+a/b; return s; 附参考答案0110:DBCCB ADCAD1120:BBCAC DBCDA2130: ACBDD ADDCD3140: CBADB ACADA4150: ABCCD ACBBD填空题:1、2、广域网3、EXIT或exit4、文档5、百万条或一百万条或1000000条6、B 667、n1=%dnn2=%d8、09、410、1211、8 412、fun(a,4)+fun(b,4)-fun(a+b,3);13、j=i14、aij=aji15、*t+16、617、efgh18、3*sizeof(double)19、2002Shangxian20、a=1.0;b=1.0;s=1.0;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁