小弟我马上就要面临等级考试,但不清楚会考些什么,该怎样复习 我去借了有关书籍,感觉考最令人振奋的算法的不是很多(可能是我以前觉得2级考试都是靠算法的原因-_-b)却有很多是靠基础的感觉就像脑筋急转弯很讨厌……有的同学还说还要考些计算机其他方面的东西也是很讨厌的那种,是这样吗? 我们考的是省级的(江苏),听说比全国的难得多
还有六天就考了,我该怎么复习呢?请大家帮帮忙吧
你自己先看看模拟试题:
一、选择题((1)-(40)题每题1分,(41)-(50)题每题2分,共60分) 下列各题A) 、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡 相应位置上,答在试卷上不得分。 (1) 用8位无符号二进制数能表示的最大十进制数为 A) 127 B) 128 C) 255 D) 256 (2) 在64位高档微机中,一个字长所占的二进制位数为 A) 8 B) 16 C) 32 D) 64 (3) 在Windows环境下,为了复制一个对象,在用鼠标拖动该对象时应同时按住 A) Alt键 B) Esc键 C) Shift键 D) Ctrl键 (4) 在Windows菜单中,暗淡(灰色)的命令项表示该命令 A) 暂时不能用 B) 正在执行 C) 包含下一层菜单 D) 包含对话框 (5) 在DOS环境下,为了得到TYPE命令的帮助信息,正确的DOS命令为 A) TYPE B) TYPE/H C) TYPE/* D) TYPE/? (6) 下列选项中,能作为合法DOS文件名的是 A) ANP/A.DAT B) ABCCOM C) ECD.BASIC D) XY+Z.TXT (7) 下列叙述中正确的是 A) 在Windows环境下,最大化的窗口是不能移动的 B) 在Windows环境下,应用程序窗口最小化后,该应用程序暂停执行 C) 在Windows环境下,只有最小化的窗口才能关闭 D) 在Windows环境下,不能关闭最小化窗口 (8) 在Windows环境下,工具栏中用于完成复制操作的按钮是 A) 打印按钮 B) 剪切按钮 C) 复制按钮 D) 粘贴按钮3847117 (9) 在Windows环境下,若要将整个屏幕上显示的内容存入剪贴板,可以按 A) Ctrl+Printscreen键 B) Alt+Printscreen键 C) Shift+Printscreen键 D) Printscreen键 (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) main函数必须出现在所有函数之前 B) main函数可以在任何地方出现 C) main函数必须出现在所有函数之后 D) main函数必须出现在固定位置 (14) 下列叙述中正确的是 A) C语言中既有逻辑类型也有集合类型 B) C语言中没有逻辑类型但有集合类型 C) C语言中有逻辑类型但没有集合类型 D) C语言中既没有逻辑类型也没有集合类型 (15) 下列关于C语言用户标识符的叙述中正确的是 A) 用户标识符中可以出现下划线和中划线(减号) B) 用户标识符中不可以出现中划线,但可以出现下划线 C) 用户标识符中可以出现下划线,但不可以放在用户标识符的开头 D) 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头 (16) 若有以下程序段(n所赋的是八进制数) int m=32767,n=032767; printf("%d,%o\n",m,n); 执行后输出结果是 A) 32767,32767 B) 32767,032767 C) 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",&m,&c,&n); printf("%d,%c,%d\n",m,c,n); 若从键盘上输入:10A10<回车>,则输出结果是: A) 10,A,10 B) 10,a,10 C) 10,a,0 D) 10,A,0 (20) 有以下程序 main() { int i; for(i=0;i<3;i++) switch(i) { case 1: printf("%d",i); case 2: printf("%d",i); default: printf("%d",i); } } 执行后输出的结果是 A) 011122 B) 012 C) 012020 D) 120 (21) 有以下程序 main() { int i=1,j=1,k=2; if((j++||k++)&&i++) 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) 有以下程序 main() { int a=5,b=4,c=3,d=2; if(a>b>c) printf("%d\n",d); else if((c-1>=d)==1) printf("%d\n",d+1); else printf("%d\n",d+2); } 执行后输出的结果是 A) 2 B) 3 C) 4 D) 编译时有错,无结果 (23) 有以下程序 main() { int p[7]={11,13,14,15,16,17,18},i=0,k=0; while(i<7&&p[i]%2){k=k+p[i]; i++;} printf("%d\n",k); } 执行后输出的结果是 A) 58 B) 56 C) 45 D) 24 (24) 有以下程序 main() { int i=0,s=0; do{ if(i%2){i++;continue;} i++; s+=i; } while(i<7); printf("%d\n",s); } 执行后输出的结果是 A) 16 B) 12 C) 28 D) 21 (25) 有以下程序 main() { int i=10,j=1; printf("%d,%d\n",i--,++j); } 执行后输出的结果是 A) 9,2 B) 10,2 C) 9,1 D) 10,1 (26) 有以下程序 main() { char a,b,c,*d; a='\'; b='\xbc'; c='\0xab'; d="\0127"; printf("%c%c%c%c\n",a,b,c,*d); } 编译时出现错误,以下叙述中正确的是 A) 程序中只有a='\';语句不正确 B) b='\xbc';语句不正确 C) d="\0127";语句不正确 D) a='\';和 c='\0xab';语句都不正确 (27) main() {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<y){ t=x; x=y; y=t; } } main() { int a=4,b=3,c=5; f(a,b); f(a,c); 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) 若有一些定义和语句 #include <stdio.h> int a=4,b=3,*p,*q,*w; p=&a; q=&b; w=q; q=NULL; 则以下选项中错误的语句是 A) *q=0; B) w=p; C) *p=va; D) *p=*w;
填空题(每空2分,共40分) 请将每一个空的正确答案写在答题卡【1】至【20】序号的横线上,答在试卷上不得分。 (1) 用十六进制给存储器中的字节地址进行编号,若地址编号从0000到FFFF,则该存储器的容量为【 1】KB。 (2) 假设在当前盘的当前目录下有两个文件A.TXT和B.TXT,现在要将文件B.TXT合并连接到文件 A.TXT的后面。若使用COPY命令,则完整的命令为【2】。 (3) E-mail地址由用户名和域名两部分组成,这两部分的分隔符为【3】。 (4) 假设在当前盘当前目录下有一个可执行程序USER.EXE。现要执行该程序,并要求在执行过程中将 显示输出的结果信息存入当前盘当前目录的文件OUT.DAT中,则完整的DOS命令为【4】。 (5) 在DOS环境下,表示打印机的设备文件名是【5】。 (6) 若有语句 int i=-19,j=i%4; printf("%d\n",j); 则输出的结果是【6】。 (7) 若有程序 main() { int i,j; scanf("i=%d,j=%d",&i,&j); printf("i=%d,j=%d\n ",i,j); } 要求给i赋10,给j赋20,则应该从键盘输入【7】。 (8) 若有以下程序 main() { int p,a=5; if(p=a!=0) printf("%d\n",p); else printf("%d\n",p+2); } 执行后输出结果是【8】。 (9) 若有以下程序 main() { int a=4,b=3,c=5,t=0; if(a<b)t=a;a=b;b=t; if(a<c)t=a;a=c;c=t; printf("%d %d %d\n",a,b,c); } 执行后输出结果为【9】。 (10) 若有以下程序 main() { 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;i<4;i++) { for(j=0;j<4;j++) { if(a[i][j]<0) continue; if(a[i][j]==0) break; s+=a[i][j]; } } printf("%d\n",s); } 执行后输出结果是【10】。 (11) 若有以下程序 main() { char a; a='H'-'A'+'0'; printf("%c\n",a); } 执行后输出结果是【11】。 (12) 若有以下程序 int f(int x,int y) { return(y-x)*x; } main() { int a=3,b=4,c=5,d; d=f(f(3,4),f(3,5)); printf("%d\n",d); } 执行后输出结果是【12】。 (13) 函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1. 其构成规律是: (1) 第0列元素和主对角线元素均为1 (2) 其余元素为其左上方和正上方元素之和 (3) 数据的个数每行递增1 请将程序补充完整。 #define N 6 void yanghui(int x[N][N]) { int i,j; x[0][0]=1; for(i=1;i<N;i++) { x[i][0]=【13】=1; for(j=1;j<i;j++) x[i][j]=【14】; } } (14) 以下函数的功能是删除字符串s中的所有数字字符。请填空。 viod dele(char *s) { int n=0,i; for(i=0;s[i];i++) if(【15】) s[n++]=s[i]; s[n]=【16】; }
(15) 设函数findbig已定义为求3个数中的最大值。以下程序将利用函数指针调用findbig函数。请填 空。 main() { int findbig(int,int,int); int (*f)(),x,y,z,big; f=【17】; scanf("%d%d%d",&x,&y,&z); big=(*f)(x,y,z); printf("big=%d\n",big); } (16) 以下程序的输出结果是【18】。 #define MCRA(m) 2*m #define MCRB(n,m) 2*MCRA(n)+m main() { int i=2,j=3; printf("%d\n",MCRB(j,MCRA(i))); } (17) 设有以下定义 stuct ss { int info; struct ss *link;}x,y,z; 且已建立如下图所示链表结构: _____ _____ _____ | | | | | | | | | | | -|→| | -|→| | | |__|__| |__|__| |__|__| x y z
请写出删除结点y的赋值语句【19】。 (18) 已有文本文件test.txt,其中的内容为:Hello,everyone!。以下程序中,文件test.txt已正 确为“读”而打开,由此文件指针fr指向文件,则程序的输出结果是【20】。 #include <stdio.h> main() { FILE *fr; char str[40]; ...... fgets(str,5,fr); printf("%s\n",str); fclose(fr); }