2012年二级C语言考试复习资料
2012年9月 全国计算机二级C语言(完整复习资料)
小歆工作室 /National Computer Rank Examination全国计算机等级考试(2012年9月串讲资料)二级C 公共基础 (小歆工作室)教学研究部 编内部资料 仅限学员所含内容: C 语言知识复习资料 公共基础知识资料 笔试机试注意事项 笔试真题及答案 根据新大纲结合近几年考试走向编写! 配套资料为新视野教育二级教程教材。
2012年9月考前冲刺复习专用资料。
第一部分 C语言知识复习资料第一章C语言基本知识【考点1】C程序用C语言编写的程序称为C语言源程序,源程序文件的后缀名为“.c”。
源程序经编译后生成后缀名为“.obj”的目标文件,再把目标文件与各种库函数连接起来,生成“.exe”可执行文件。
C语言有三种基本结构:顺序结构、选择结构、循环结构。
【考点2】main函数又称主函数,是C程序的入口。
main后面跟一对小括号和一对花括号,花括号括起来的部分称为main函数的函数体。
一个C程序从main函数开始执行,到main函数体执行完结束,而不论main函数在整个程序中的位置如何。
每一个程序有且仅有一个main函数,其他函数都是为main函数服务的。
【考点3】存储形式计算机在电脑中保存数据是采用二进制形式,由0或1构成的二进制称为位(bit),八个位构成一个字节(Byte),1个Byte=8个bit。
二进制、八进制、十六进制转化为十进制采用乘法,十进制转化为二进制、八进制、十六进制采用除法。
数据的存放位置就是它的地址。
【考点4】注释是对程序的说明,可出现在程序中任意合适的地方,注释从“/*”开始到最近一个“*/”结束,其间任何内容都不会被计算机执行,注释不可以嵌套。
【考点5】书写格式每条语句的后面必须有一个分号,分号是语句的一部分。
一行内可写多条语句,一个语句可写在多行上。
【考点6】标识符是标识名字的有效字符序列,可以理解为C程序中的单词。
标识符的命名规则是:(1)标识符只能由字母、数字和下划线组成,字母区分大小写。
2012年9月全国计算机的等级考试二级C语言笔试试卷答案详解及解析汇报汇报
(1)下列链表中,其逻辑结构属于非线性结构的是_________。
A)双向链表B) 带链的栈 C) 二叉链表D) 循环链表(1)C 【解析】见/uuxzhang上全国计算机二级考试参考资料_数据结构.pps 中第13张说明:链表存储结构是数据的存储结构;排除链表因素,从数据逻辑结构来看,线性结构包括线性表、栈和队;非线性结构包括树形结构和图形结构,所以二叉树是树形结构,即非线性结构。
(2)设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。
现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为A) 20 B) 0或35 C) 15 D) 16(2)B 【解析】见/uuxzhang上全国计算机二级考试参考资料_数据结构.pps中第100-101张关于入队(Q.rear=Q.rear+1)与退队(Q.front=Qfront+1)运算规则,此外第一次入队为Q.rear=1;第一次退队为Q.front=1。
并假定循环队列最大个数为maxsize,其相应存储空间为1: maxsize,则循环队列的入队与退队图例和运算后元素个数的确定原则如下:循环队列中的元素个数或称队列长度通用计算公式:(Q.rear-Q.front+ maxsize)% maxsize 例如,Q.rear=20,Q.front=15,则循环队列中的元素个数=(20-15+35)%35=5;Q.rear=40,Q.front=15,则循环队列中的元素个数=(40-15+35)%35=25;本题根据Q.rear=Q.front=15,maxsize=35,则循环队列中元素个数=(15-15+35)%35=0或35;(3)下列关于栈的叙述中,正确的是A) 栈底元素一定是最后入栈的元素B) 栈操作遵循先进后出的原则C) 栈顶元素一定是最先入栈的元素D) 以上三种说法都不对(3)B 【解析】见/uuxzhang上全国计算机二级考试参考资料_数据结构.pps中第63张幻灯片说明:栈元素入、退原则:先进后出(FILO)或后进先出(LIFO)。
2012全国计算机二级C语言_公共基础知识
第1章数据结构与算法经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是算法复杂度、数据结构的概念、栈、二叉树的遍历、二分法查找,读者应对此部分进行重点学习。
详细重点学习知识点:1.算法的概念、算法时间复杂度及空间复杂度的概念2.数据结构的定义、数据逻辑结构及物理结构的定义3.栈的定义及其运算、线性链表的存储方式4.树与二叉树的概念、二叉树的基本性质、完全二叉树的概念、二叉树的遍历5.二分查找法6.冒泡排序法1.1算法考点1 算法的基本概念考试链接:考点1在笔试考试中考核的几率为30%,主要是以填空题的形式出现,分值为2分,此考点为识记内容,读者还应该了解算法中对数据的基本运算。
计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。
1.算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。
2.算法的基本要素:(1)算法中对数据的运算和操作一个算法由两种基本要素组成:一是对数据对象的运算和操作;二是算法的控制结构。
在一般的计算机系统中,基本的运算和操作有以下4类:算术运算、逻辑运算、关系运算和数据传输。
(2)算法的控制结构:算法中各操作之间的执行顺序称为算法的控制结构。
描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等。
一个算法一般都可以用顺序、选择、循环3种基本控制结构组合而成。
考点2 算法复杂度考试链接:考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为重点识记内容,读者还应该识记算法时间复杂度及空间复杂度的概念。
1.算法的时间复杂度算法的时间复杂度是指执行算法所需要的计算工作量。
同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行,效率均不同。
这表明使用绝对的时间单位衡量算法的效率是不合适的。
撇开这些与计算机硬件、软件有关的因素,可以认为一个特定算法"运行工作量"的大小,只依赖于问题的规模(通常用整数n表示),它是问题规模的函数。
2012年9月份全国计算机等级考试二级C语言_笔试+上机题库
2012年9月份全国计算机等级考试二级C语言笔试+上机题库(全)一、选择题在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为A)PAD图B)N-S图C)结构图D)数据流图(2)结构化程序设计主要强调的是A)程序的规模B)程序的效率C)程序设计语言的先进性D)程序易读性(3)为了使模块尽可能独立,要求A)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强(4)需求分析阶段的任务是确定A)软件开发方法B)软件开发工具C)软件开发费用D)软件系统功能(5)算法的有穷性是指A)算法程序的运行时间是有限的B)算法程序所处理的数据量是有限的C)算法程序的长度是有限的D)算法只能被有限的用户使用(6)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是A)快速排序B)冒泡排序C)直接插入排序D)堆排序(7)如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是A)e3,e1,e4,e2 B)e2,e4,e3,e1 C)e3,e4,e1,e2 D) 任意顺序(8)将E-R图转换到关系模式时,实体与联系都可以表示成A)属性B)关系C)键D)域(9)有三个关系R、S和T如下:RB C Da 0 k1b 1 n1SB C Df 3 h2a 0 k1n 2 x1TB C Da 0 k1由关系R和S通过运算得到关系T,则所使用的运算为A)并B)自然连接C)笛卡尔积D)交(10)下列有关数据库的描述,正确的是A)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一列称为元组,一个元组就是一个字段D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字(11)以下叙述中正确的是A)用C程序实现的算法必须要有输入和输出操作B)用C程序实现的算法可以没有输出但必须要有输入C)用C程序实现的算法可以没有输入但必须要有输出D)用C程序实现的算法可以既没有输入也没有输出(12)下列可用于C语言用户标识符的一组是A)void, define, WORD B)a3_3,_123,Car C)For, -abc, IF Case D)2a, DO, sizeof(13)以下选项中可作为C语言合法常量的是A)-80 B)-080 C)-8e1.0 D)-80.0e(14)若有语句:char *line[5];,以下叙述中正确的是A) 定义line是一个数组,每个数组元素是一个基类型为char为指针变量B) 定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组C) 定义line是一个指针数组,语句中的*号称为间址运算符D) 定义line是一个指向字符型函数的指针(15)以下定义语句中正确的是A)int a=b=0; B)char A=65+1,b=′b′; C)float a=1,*b=&a,*c=&b;D)double(16)有以下程序段char ch; int k;ch=′a′;k=12;printf("%c,%d,",ch,ch,k); printf("k=%d \n",k);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是A)因变量类型与格式描述符的类型不匹配输出无定值B)输出项与格式描述符个数不符,输出为零值或不定值C)a,97,12k=12D)a,97,k=12(17)有以下程序main(){ int i,s=1;for (i=1;i<50;i++)if(!(i%5)&&!(i%3)) s+=i;printf("%d\n",s);}程序的输出结果是A)409 B)277 C)1 D)91(18)当变量c的值不为2、4、6时,值也为"真"的表达式是A)(c==2)||(c==4)||(c==6)B)(c>=2&& c<=6)||(c!=3)||(c!=5)C)(c>=2&&c<=6)&&!(c%2)D)(c>=2&& c<=6)&&(c%2!=1)(19)若变量已正确定义,有以下程序段int a=3,b=5,c=7;if(a>b) a=b; c=a;if(c!=a) c=b;printf("%d,%d,%d\n",a,b,c);其输出结果是A)程序段有语法错B)3,5,3 C)3,5,5 D)3,5,7(20)有以下程序#include <stdio.h>main(){ int x=1,y=0,a=0,b=0;switch(x){ case 1:switch(y){ case 0:a++; break;case 1:b++; break;}case 2:a++; b++; break;case 3:a++; b++;}printf("a=%d,b=%d\n",a,b);}程序的运行结果是A)a=1,b=0 B)a=2,b=2 C)a=1,b=1 D)a=2,b=1 (21)下列程序的输出结果是#include "stdio.h"main(){ int i,a=0,b=0;for(i=1;i<10;i++){ if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b); }A)a=4,b=4 B)a=4,b=5 C)a=5,b=4 D)a=5,b=5(22)已知#int t=0;while (t=1){...}则以下叙述正确的是A)循环控制表达式的值为0B)循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对(23)下面程序的输出结果是main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}A)3 B)4 C)1 D)2(24)以下错误的定义语句是A)int x[][3]={{0},{1},{1,2,3}}; B)int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};C)int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}}; D)int x[][3]={1,2,3,4};(25)有以下程序void ss(char *s,char t){ while(*s){ if(*s==t)*s=t-′a′+′A′;s++; } }main(){ char str1[100]="abcddfefdbd",c=′d′;ss(str1,c); printf("%s\n",str1);}程序运行后的输出结果是A)ABCDDEFEDBD B)abcDDfefDbD C)abcAAfefAbA D)Abcddfefdbd (26)有如下程序main(){ char ch[2][5]={"6937","8254"},*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′;j+=2)s=10*s+p[i][j]-′0′;printf("%d\n",s);}该程序的输出结果是A)69825 B)63825 C)6385 D)(27)有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是A)gets(&s[0]); B)scanf("%s",s+1); C)gets(s); D)scanf("%s",s[1]);(28)以下叙述中错误的是A)在程序中凡是以"#"开始的语句行都是预处理命令行B)预处理命令行的最后不能以分号表示结束C)#define MAX 是合法的宏定义命令行D)C程序对预处理命令行的处理是在程序执行的过程中进行的(29)设有以下说明语句typedef struct{ int n;char ch[8];} PER;则下面叙述中正确的是A)PER 是结构体变量名B)PER是结构体类型名C)typedef struct 是结构体类型D)struct 是结构体类型名(30)以下叙述中错误的是A)gets函数用于从终端读入字符串B)getchar函数用于从磁盘文件读入字符C)fputs函数用于把字符串输出到文件D)fwrite函数用于以二进制形式输出数据到文件(31)以下能正确定义一维数组的选项是A)int a[5]={0,1,2,3,4,5}; B)char a[]={′0′,′1′,′2′,′3′,′4′,′5′,′\0′}; C)char a={′A′,′B′,′C′};D)int a[5]="0123";(32)有以下程序#include<string.h>main(){ char p[]={′a′, ′b′, ′c′},q[10]={ ′a′, ′b′, ′c′};printf("%d%d\n",strlen(p),strlen(q));}以下叙述中正确的是A) 在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3B) 由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3C) 由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3D) 由于p和q数组中都没有字符串结束符,故长度都不能确定(33)有以下程序#include <stdio.h>#include <string.h>for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strlen(s[i])>strlen(s[j])) {t=s[i];s[i]:s[j];s[j]=t;}}main()fun(ss,5); printf("%s,%s\n",ss[0],ss[4]);}程序的运行结果是A)xy,aaaacc B)aaaacc,xy C)bcc,aabcc D)aabcc,bcc(34)有以下程序#include <stdio.h>{ int y;if(x==0||x==1) return(3);-f(x-2);return y;}main(){ int z;z=f(3); printf("%d\n",z);}程序的运行结果是A)0 B)9 C)6 D)8(35)下面程序段的运行结果是char str[]="ABC",*p=str;printf("%d\n",*(p+3));A)67 B)0 C)字符′C′的地址D)字符′C′(36)若有以下定义:struct link{ int data;struct link *next;} a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:指针p指向变量a,q指向变量c。
2012年上半年全国计算机等级考试二级C语言考前复习资料(机试)
2012年上半年全国计算机等级考试二级C语言考前复习资料(机试)机试做题技巧概述一、程序填空题【解析】该类型主要考察学员对一个C程序的整体把握能力。
首先须通读整个源程序,了解程序的功能后试着边填空边调试,分析输出结果,以找到正确答案。
因此,不像程序修改题那么简单。
【程序填空题的特点和注意事项】(1)程序填空的试题中通常包含三个空需要填写。
(2)试题中用"******found******/"来提示在下一行或下二行注明填空的位置及编号,如___1___。
(3)程序填空考核对程序的整体把握,出题点可能是:for循环语句的初始化或条件判断、函数返回值、if语句的条件判断、链表中指针如何移动、文件操作相关函数的参数等。
(4)特别要注意的是:只能在填空的位置填写语句或表达式,不要增行或删行,不要改动程序行的顺序,更不要改动程序的结构。
【建议答题步骤】(1)首先仔细审题,了解试题的要求,看清题目给出的输入和输出例示,以便检验程序运行的结果是否正确。
(2)审视"/******found******/"所在函数,根据题义理解程序所采用的基本算法,做到心里有数。
(3)填好空后对测试程序进行检查是否有语法错误。
当编译提示有语法错时,可参考编译提示来查找并改正错误。
(4)当不再出现语法错时,执行程序,按照试题的示例给出的数据进行试算,若试算的结果与给出的输出结果相同时,该题就做对了;若试算的结果与给出的输出结果不同,就应进一步检查程序中的逻辑错误。
(5)修改完成,得到正确结果后,一定不要忘记把修改后的程序存盘。
二、程序修改题【解析】该类型主要考察学员对C程序部分结构或算法的分析和理解能力。
因此,对学员的知识把握能力要求不高,通常可以借助计算机帮我们改错(仅限语法错误)。
若非语法错误,则需对程序边调试边找错,分析输出结果,找出错误所在并改正。
【程序填空题的特点和注意事项】(1)上机改错的试题中通常包含两个(或三个)错误需要修改。
2012年计算机二级C语言答案
第一章C语言设计的初步知识第一节C语言基本常识及标识符选择题1-13:BDDBDABCBBBCC第二节常量、变量及数据类型选择题1-10:BBBBAAC(CC)BD 11-20:AC(AB)CCBBAAD第三节运算符和表达式选择题1-10:(AH)DDBCDDC(BDBDB)A 11-20:ADADADCCAD21-30:CDACBBADCD 31-40:BDBBDBCBAD41-50:BCCDCBDACD 51-59:(BE)D(BCC)(CB)CBACB填空题1)1.02)-3 3)16 4)2,1 5)3 6)3 7)y%2!=0 8)x==0 9)28 10)-1,1,1,1 11)112)4,3,4,1 13)0 14)x<-5||x>5 15)x>10&&x<100||x<0第四节数据类型转换选择题1-9:DADB(CG)CCDC填空题1)double 2)10.2 3)x+=1第二章顺序结构选择题1-6:ADADDC第一节数据输出选择题1-10:BDBABCAC(CCD)(DDAAC) 11-19:ACBA(AA)B(BCC)BC填空题1)10 20 0 2)261,n1=%d\nn2=%d 3)11 4)25 21 37 5)B 66 6)7 7)0 8)6.6 9)b 10)(4.900000,4)(4.000000,4)第二节数据输入选择题1-13:BABAACDCABDDD填空题1)(a=1,b=2)(i=10,j=20) 2)(a=1,b=1)(a=22,b=6) 3)12 4)1 B第三章选择结构第一节if语句和if语句构成的选择结构选择题1-10:BCDDADBBAB 11-24:CBCCCAADABCCAB填空题1)1 2)yes3)if(a<=b){x=1;printf(“####x=%d\n”,x);}else{y=2;printf(“****y=%d”,y);}4)585858 5)4599 6)5 0 3 7)-4第二节switch语句选择题1-6:CACAAA填空题1)passwarn 2)!# 3)a=2,b=1第四章循环结构第一节while语句和while循环选择题1-8:ABAABAAC填空题1)332)-1 3)8921第二节do-while语句和do-while语句构成的循环选择题1-9:ADBBDDBBD填空题1)522)16第三节for语句和for循环选择题1-10:CCCDDCCACB 11-16:DCAACB填空题1)102)18 3)5 4)0 5)0918273645 6)1 3 2 7)b=i+1循环的嵌套选择题1-5:DCBCA填空题1)6循环中的continue和break语句选择题1-10:DDDBDCDACA 11-17:ABDBBBD填空题1)17 2)20 3)i=3i=1i=-1 4)1,1第五章函数选择题1-10:CACBDCACDB 11-20:DDCABBBADA21-30:DCCBABACAD 31-35:DABAB填空题1)3,2,2,3 2)5 6 3)9 4)12 5)double max 6)1 3 6 7)7 8)4,3,3,4 9)9 10)-1*f,fun(m) 11)sum=0.0,i,sum, mysum(i) *mysum(k)/ mysum(j)第六章数组第一节一维数组选择题1-13:BDACCCDABBAAD填空题1)9,0 2)12 3)1 3 7 15 4)5,4 5)c,scanf(“%c”,&c);,+65第二节二维数组选择题1-10:DDDCACCBDB填空题1)123056009 2)-850,2,0 3)58第三节字符数组选择题1-10:ABDCCCCAAA 11-20:(CC)CDCBBADCB21-34:(CF)AACDBCBDBABAC填空题1)02)X 3)abcbcc 4)QuickC 5)s[i]>=’0’&&s[i]<=’9’6)j+=2,a[i]<a[j] 第四节数组与函数选择题1-11:BABBCABACCD填空题2)void fun(int q[]),void fun(int q[M]),void fun(int q[50]) 20Itis 3)6第七章指针第一节指针的定义,赋值及指针与简单变量间的运算选择题1-10:CBBDDCACDB 11-21:ACDDAACADAC填空题1)0,7 2)k,*k第二节指针与一维数组选择题1-10:CCDBDDADDC 11-20:BAA(CI)BDDACA21-30:BDDDDCACBA 31-40:BBDBDBDDDD41-53:DBCDDBBACAABB填空题1)p=p+7 2)*(p+5) 3)49 4)10 5)60 6)67)s=p+3,s=a+2,66,*(s+1),22 33 44 55 66 8)efgh 9)’\0’,++第五节指针与函数(一)指针,简单变量及函数的结合选择题1-10:DDACBABABC 11-17:CDBBACD填空题1)0 2)7 1 3)8 4 4)a=9,b=6 5)3 5 6)void(*p)() 7)7 8)8 9)abcfg(二) 指针,数组与函数结合选择题1-10:AACDDCBCDC 11-21:DBDDA(ADF)CCABB填空题1)XYZA 2)2 3)cdcab第七章:指针第一节指针的定义、赋值及指针与简单变量间的运算一:选择题1-5 C B B D D6-10 C A C D B11-15 A C D C A16-20 A C A D A21-22 C B二:填空题1 0 72 k *k第二节指针与一维数组一:选择题1-5 C C D B D6-10 D A A D C11-15 B A A CI B16-20 D D A C A21-25 B D D D D26-30 C A C B A31-35 B B B B D36-40 B D D D D41-45 C D B C C46-50 D D B B A51-55 C A A B B 二:填空题1、p=p+7或p+=72、*(p+=5)或*(p+5)3、494、105、606、 67、(1) s=p+3 (2) s=a+2(3) 66 (4) *(s+1)(5) 2 (6) 22 33 44 55 668、efgh9、'\0' ++10、*(++p)第三节指针与二维数组一:选择题1-5 B C D D C6-10 B C C D C11-15 D A D A C16-20 B A C C C21-25 D A A A A26 B第四节二重指针一:练习1-5 D B B C D6-9 C C B D第五节指针与函数(一)指针、简单变量及函数的结合一:选择题1-5 D D A C B6-9 A B A B11-15 C C D B B 16-19 A C C D二:填空题1:02:713:8 44:a=9 b=65:356:void (*p)()或*p(int *,int *)7:78:89:int * *z *x t10:*x t11:&c,&b &a,&c &a,&b12:(-1.0) *sn13:findbig14:abcfg(二)指针、数组与函数结合1-5 A A C D D6-10 C B C D C 11-15 D B B B A 16-20 B A C D ADF 21-25 C C A B B 26-30 C A B D D 31 D二:填空题1、XYZA2、 33、cdeab4、63545、strl is:qwortyabcd6、pa[i] avg/n7、r+b[k] *x8、'\0' n++9、!(s[i]>='0' && s[i]<='9')10、i11、p++ w[i-1]12、i return 113、max<a[row][col] min>max14、row a[row][colum]15、IJKLEFGHABCD16、 3abc file1 file217、int ** int ** **ss **tt18、str+strlen(str)-1 t==0 huiwen(str) 第八章:C语言中用户标识符的作用域和存储域一、选择题1-5 A C B C D 6-10 B A C A D 11-15 D C C D A 16-20 A A B A B 21-25 B C C B D 26-30 C B A C A 31 A二:填空题1、ABCDCD2、81173、2104、24685、30 256、2,5,1,2,3,-27、0248、024*******第九章:编译预处理和动态存储分配第一节编译预处理一:选择题1-5 C D B C C 6-10 A A B D B 11-15 C A A B C 16-17 B D二:填空题1、72、1000 103、814、99115、166、 c第二节动态存储分配一:选择题1-5 C A D A B 6-10 C B A C A 11-12 D二:填空题1、(double *)2、malloc(11)3、3*sizeof(double)4、 a *b第十章:结构体、共用体和用户定义类型第一节用typedef说明一种新的类型名一:选择题1-4 D B C D第二节结构体类型一、选择题1-5 D C A B D 6-10 D D B B A 11-15 C D D B C16-20 B B B C B21-25 A C D D B26-30 B C B A B31-35 D B C A CAB二:填空题1、222、ex3、 5 24、struct node*5、b->day (*b).day6、2002 Shangxian7、DDBBCC8、sizeof(struct node)9、struct link *next;10、struct list *next int data11、struct STRU*12、char *data struct link *next13、x.link = y.link14、15、(struct list*) (struct list *) return h;16、struct node* ch NULL17、struct list * q18、13431第三节共用体一、选择题1-5 C C A A A6-10 B B C D C11-12 B D二:填空题1、10 42、struct STRU3、804、34第十一章位运算一、选择题1-5 D C C B B6-10 A B B D A D11-14 A D D D二:填空题1、11110000第十二章文件一、选择题1-5 C A D B B6-10 C C A B A11-15 B A D CD D16 D二、填空题1、rewind或fseek2、(!feof(fp))3、fopen(fname,"w" ch4、"bi.dat","w" fclose(fp)5、"w" str[i]-32 "r"6、 3 !feof(f1)或feof(f1)==07、fname fp8、"d1.dat","rb"9、学习使人进步,相信能就一定能"bi.dat" fp成功10、fopen11、hell。
2012年计算机二级C语言考点汇总
第一章 C语言概述[考点一] C语言概述C语言是一种结构紧凑、使用方便、程序执行效率高的编程语言,它有9种控制语句、32个关键字和34种运算符。
C语言的数据结构也非常丰富,它的多种数据类型可以实现如链表、树、栈等复杂的运算,并且用结构化控制句来实现函数的模块化。
C语言的语法不太严格,程序的设计自由度大,它可以直接访问物理地址,还可以直接对硬件操作。
C语言也是一种移植性比较好的语言。
[考点二] C语言程序的构成(1) C语言的源程序是由函数构成的,每一个函数完成相对独立的功能,其中至少包括一个主函数。
(2) C程序总是从main()函数开始执行(3) C语言规定每个语句以分号结束,分号是语句组成不可缺少的部分,它在每条语句的最后出现。
(4)程序的注释部分应括在 /* 和 */ 之间不能有空格,注释部分允许出现在程序的任何位置。
[考点三] C程序的生成过程C程序是先由源文件经编译生成目标文件,然后经过连接生成可执行文件,源程序的扩展名为.c,目标文件的扩展名为.obj,可执行程序的扩展名为.exe[考点四] 标识符在编写程序时,必须为函数、变量等命名,这个名字称为标识符。
标识符可以是一个或多个字符,标识符的第一个字符必须是字母或下划线,随后的字符只能是字母、数字或下划线。
要区分字母的大小写。
标识符不能与程序中具有特殊意义的关键字相同,不能与用户编制的函数名、C语言库函数相同,在程序中各种标识符尽量不要重复,以便区分。
选择变量名和其他标识符时,应注意做到“见名知义”。
[考点五] 常量在程序运行中,其值不能被改变的量称为常量。
常量有5种类型:整型常量、实型常量、字符型常量、字符串常量和符号常量。
(1)整型常量整型常量有3种:十进制整型常量、八进制整型常量和十六进制整型常量。
(2)实型常量实型常量有两种型式:小数形式和指数形式。
(3)字符常量一个字符常量代表ASCII码字符集里的一个字符,在程序中用单撇号括起来,以便区分。
全国计算机二级C语言(完整总结复习资料
精心整理计算机二级C复习资料公共基础知识资料传输。
算法的基本控制结构:顺序,选择,循环。
算法基本设计方法:列举法、归纳法、递推、递归、减半递推技术。
【考点2】算法的复杂度算法效率的度量——算法的复杂度:时间复杂度和空间复杂度。
算法时间复杂度:指执行算法所需要的计算工作量。
通常,一个算法所用的时间包括编译时间和运行时间。
算法空间复杂度:指执行这个算法所需要的内存空间。
包括算法程序所占的空间,输入的初始数据所占的空间,算法执行过程中和数据对象之间的关系。
数据的存储结构也称为数据的物理结构,是数据在计算机中的存放的方式,是面向计算机的,它包括数据元素的存储方式和关系的存储方式。
数据结构和逻辑结构的关系:一种数据的逻辑结构可以表示成多种存储结构即数据的逻辑结构和存储结构不一定一一对应。
常见的存储结构有:顺序,链接,索引等。
采用不同的存储结构其数据处理的效率是不同的。
【考点5】线性结构和非线性结构也有且只有一个后件。
结点个数n称为线性表的长度,当n=0时,称为空表。
线性表的顺序存储结构具有以下两个基本特点:(1)线性表中所有元素所占的存储空间是连续的;(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。
元素ai的存储地址为:ADR(ai)=ADR(a1)+(i-1)*k,ADR(a1)为第一个元素的地址,k代表每个元素占的字节数。
顺序表的运算:查找、插入、删除。
(2)用(Rlink)指向后件结点。
…图2双链表循环链表:循环链表与单链表的不同的是它的最后一个结点的指针域存放的事指向第一个结点的指针而单链表存放的是空指针。
图3循环链表的(2)退栈运算,删除元素(取出栈顶元素并赋给一个指定的变量);(3)读栈顶元素,将栈顶元素赋给一个指定的变量,此时指针无变化。
【考点9】队列1.队列的基本概念队列是一种特殊的线性表,只允许在表的一端插入,在另一端删除,允许插入的一端是队尾(rear),允许删除的一端为队头(front);当表中没有元素是空队列;队列是一种先进先出的线性表。
2012年全国计算机二级C考试资料
2012计算机二级C语言笔试精选试题1.若有以下定义:floatx;inta,b,c=2;,则正确的switch语句是()A)switch(x){ case1.0∶printf("*\n");case2.0∶printf("**\n");}B)switch(int(x)){ case1∶printf("*\n");case2∶printf("**\n");}C)switch(a+b){ case1∶printf("*\n");case1+2∶printf("**\n");}D)switch(a+b){ case1∶printf("*\n");casec∶printf("**\n");}2.执行下面程序片段的结果是()int x=123;do{ printf("=\n",x--);}while(!x);A)打印出321B)打印出123C)不打印任何内容D)陷入死循环3.以下程序的输出结果是()# includemain(){ int i=0,a=0;while(i<20){ for(;;){ if((i )==0)break;else i--; }i+=11;a+=i;}考试通printf("%d\n",a);}A)21 B)32 C)33 D)114.下列与表达式“b=(a<0?-1∶a>0?1∶0)”的功能等价选项是()A)b=0;if(a>=0)if(a>0) b=1;else b=-1;B)if(a>0)b=1;else if(a<0)b=-1;elseb=0C)if(a)if(a<0) b=-1;else if(a>0)b=1;else b=0;D) b=-1;if(a)if(a>0)b=1;else if(a==0)b=0;else b=-1;5.若有以下定义:char a; int b; float c; double d; 则表达式“a*b+d-c”值的类型为()A)float B)int C)char D)double6.以下叙述中正确的是()A)在函数中必须要有return语句B)在函数中可以有多个return语句,但只执行其中的一个C)return语句中必须要有一个表达式D)函数值并不总是通过return语句传回调用处7.有以下程序float fun(int x,int y){ return(x+y);}main(){int a=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}程序运行后的输出结果是()A)编译出错 B)9 C)21 D)9.08.若已定义:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,I;其中0≤i≤9,则对a数组元素不正确的引用是()A)a[p-a] B)*(&a[i]) C)p[i] D)a[10]9.以下叙述中正确的是()A)全局变量的作用域一定比局部变量的作用域大B)静态(static)类型变量的生存期贯穿于整个程序的运行期间C)函数的形参都属于全局变量D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值10.若有如下程序:main(){char a[][9]={"china","Japan","USA","France"};printf("\′%s\′\n",a[2]);}则程序运行后的输出结果是()A)′Japan′ B)′USA′ C)USA D)′inaJapanUSAFrance′答案:1.C 2.B 3.B 4.B 5.D 6.B 7.B 8.D 9.B 10.BC 语言最重要的知识点复习资料总体上必须清楚的:1)程序结构是三种: 顺序结构 , 循环结构(三个循环结构), 选择结构(if 和 switch)2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。
2012年9月全国计算机等级考试二级C语言上机题库完全版
第一套1.程序填空程序通过定义学生结构体数组,存储了若干个学生的学号、姓名和三门课的成绩。
函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大排序)。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
第一处struct student t;第二处for(i=0;i<n-1;i++)第三处if(strcmp(a[i].name,a[j].name)>0)2程序修改给定程序MODI1.C中函数fun的功能是:在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向上顺序移动。
/**found**/q=p+i;/**found**/while(q>p)3程序设计学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。
int fun(STREC *a,STREC *b,int l,int h){int i,j=0;for(i=0;i<N;i++)if((a[i].s>=1&&a[i].s<=h)b[j++]=a[i];return j;}第二套1.程序填空给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序连接。
函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。
第一处free(q);第二处q=p->next;第三处q=q->next;2. 程序修改给定程序MODI1.C中函数fun的功能是:用选择法对数组中的n各元素按从小到大的顺序进行排序。
/**found**/p=j;/**found**/p=i;3. 程序设计请编写一个fun函数,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n 返回这些数的个数。
2012年计算机c语言二级考试
高等教育出版社的全国计算机等级考试二级教程——公共基础知识,价格:16(里面讲的很详细,知识点也很全)
~~机械工业出版社的4in1全国计算机等级考试四合一过关训练,黄色封面,很好认的,价格:29(里面的每道题都有很详细的讲解和知识点概括,每章节训练分为经典试题解析和同步训练,随书还有附赠光盘,里面有全真上机模拟并有评分系统,可以适应一下上机考试的环境,达到真正模拟的目的)
祝你顺利通过2级考试~~
谭浩强教授编写的《C程序设计》,这是学习二级C语言必备的,因为高教社的教材中对C语言的讲解过于简单,还需要一本高教社出版的二级公共基础知识。教材就准备这两本,高教社出的二级C语言教程不用买,有谭教授的书就行了。另外需要配备一本笔试历年真题,至少要有近10次考试的真题。没有任何习题比真题更具参考价值。此外的什么模拟题、冲刺题都不要买,浪费钱没用的。在准备一本上机习题集,比如南开大学出版社出的上级习题集(俗称南开百题)。 上机都是原题,有的题有方法不用死记,有的就只能硬记了,九月考试现在你就应该开始看了,好好复习,祝你考做历年的真题,还有可以做一下模拟题、预测题之类。上机考试是填空、改错和编程题,在100套题库里面抽。
对于备考C语言知识部分,笔者根据指定教材(全国计算机等级考试二级教程——C语言程序设计 高等教育出版社2004)的内容给大家如下建议。以下章的内容属于必须熟练掌握,属于C语言的最基础的知识,尽管这些内容很少单独考到,但是它们在试题中是“无处不在”的,这些内容不掌握好根本没有办法答题,这些章节是:C程序设计的初步知识、顺序结构、选择结构、循环结构、字符型数据。以下章节是考核的重点——函数、指针、数组、字符串,它们会以和之前的基础部分结合的方式来考察考生,同时,这些章节的信息量较大,需要记忆的规则较多,尤其是指针和字符串在出题的时候会很灵活,通常都是让考生头疼的,学习这些章节时一定要仔细看书,防止概念和规则的混淆,并且如果有条件,尽可能的将书中的程序例、习题的内容亲自做一遍,并尝试自己编写一些小程序。以下章节了解即可,但如果想拿高分这些内容也要熟悉:程序设计基本概念、对函数的进一步讨论、C语言中用户标识符的作用域和存储类、编译预处理和动态存储分配、结构体共用体和用户自定义类型、位运算、文件。其中,编译预处理和动态分配、文件这两章的内容会在上机考试中较大概率的出现,考生也应当较好的掌握。 公共基础知识是新二级考试的亮点也是难点,由数据结构与算法、程序设计基础、软件工程基础、数据库设计基础这四部分组成,其中数据结构与算法是需要理解的内容,尤其是树、排序知识在考察时都很灵活,切记不要死记硬背,其余的三章为软件开发的基本常识,主要是一些记忆的知识,这些知识较难理解但是对软件开发具有很强的指导作用,考生如能掌握会更好的来开发程序。很多考生对基础知识的难度提升不理解,实际上新的基础知识能比以往的更好的为“程序编制”这个二级人员应当达到的能力服务。 下面来谈一下上机考试。上机考试分为程序填空、程序改错和程序编制三大部分。新考试同旧考试相比,将以前的DOS基础操作改成了程序填空题,实际上机考试难度是下降的,程序填空本质上是给指明了错误在哪的程序改错题。程序填空、改错的考核知识点大部分都集中在C语言的初步知识、选择结构、函数、指针、数组、字符串、文件这些章节中。填空改错的范围只涉及到一个元素如函数名、变量名而涉及不到修改或填写整个的语句,这点考生应当注意。程序编制题的要求是考生按照题意编写一个函数,一般5行代码左右,难度不是很大,但是该题评分十分严格,只要结果不对一律不得分,因此考生在做此题的时候应当务必仔细。上机考试难度实际上要比笔试简单,一个熟练的程序员做完上机的题目只需不到10分钟,而做完笔试的题目至少需要1个小时,然而从历年的考试情况来看上机通过率要低于笔试通过率,这说明大部分考生的实践还是不够。计算机语言是一门实践的科学,没有实践是不可能学好更不可能学以致用。
二级C语言上机题库100套2012最新版
二级C语言上机考试资料(前面为填空题题目,后面同序号依次为此套题的填空题、改错题、编程题答案)* 3、给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回;并将大于平均值的数放在形参y所指数组中,在主函数中输出。
例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000主函数中输出:46 32 40 45 48请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
3、(1)0(2)x[i]/N(3)j++3、(1)double fun(int m)(2)for(i=100;i<=m;i~1+=0) 3.fun( STU a[], STU *s ){int i;*s=a[0];for(i=1;i<N;i++){if(a[i].s<s->s){*s=a[i];}}}* 5、给定程序中,函数fun的功能是将a和b所指的两个字符串转换成面值相同的整数,并进行相加作为函数值返回,规定字符串中只含9个以下数字字符。
例如,主函数中输入字符串:32486和12345,在主函数中输出的函数值为:44831。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
5、(1)'0'(2)s++(3)ctod(a)+ctod(b)5、(1)void fun ( char *s, int *a, int *b )(2)++(*a);(3)++(*b);5.float fun ( float h ){long i=h*1000;if(i%10<5) return (i/10)/100.0;else return (i/10+1)/100.0;}* 7、给定程序中,函数fun的功能是:在3×4的矩阵中找出在行上最大、在列上最小的那个元素,若没有符合条件的元素则输出相应信息。
2012年9月全国计算机等级考试二级C语言笔试试题和答案(含公共基础题)全解
29 1)main() { char a[10]="abcde",b[]="fgh"; int i=0; strcpy(a+1,b+2); printf("%s",a); } 请详细解释一下”strcpy(a+1,b+2)”这句语句 2)main() { char s[][10]={"a","good",world"}; strcat(s[0],s[1]); printf("%s",s[0]);}请详细解释一下”strcat(s[0],s[1])”这句语句strcpy()是字符串复制函数。
连字符串的结束标志‘\0’一同复制。
对于strcpy(a+1,b+2);中的b+2则是数组里的“h\0”的首地址。
a+1则是数组里的“bcde”的首地址。
即此函数的意义是:把“h\0”复制到“bcde”的位置。
字符串遇到‘\0’结束即结果是:ah。
对于strcat(s[0],s[1]);中的二为数组可以看成是多个一维数组组成的。
所以s[0]代表的是“a”的首地址,s[1]代表的是“good”的首地址。
这是字符串连接函数。
即把good 放到了a的后面。
结果是:agood。
二级C语言程序设计答案及详解一、选择题(11)B)【解析】每一个C 语言的文件或函数都可以单独编译,但只有main 函数的才可以执行。
(12)A)【解析】预定义标识符是C语言中的标识符,在C语言中也有特定的含义,如函数printf、scanf、sin 等和编译预处理命令名(如define 和include)。
预定义标识符可以作为用户标识符使用,只是这样会失去系统规定的原义。
(13)B)【解析】0xab 是十六进制表示的常量。
(14)A)【解析】C语言用函数实现软件的模块化设计。
(15)C)【解析】C语言中,常常用一个标识符来代表一个常量,称为符号常量。
2012年全国计算机二级C语言上机题题库及答案
第一套1.程序填空程序通过定义学生结构体数组,存储了若干个学生的学号、姓名和三门课的成绩。
函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大排序)。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
第一处struct student t;第二处for(i=0;i<n-1;i++)第三处if(strcmp(a[i].name,a[j].name)>0)2程序修改给定程序MODI1.C中函数fun的功能是:在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向上顺序移动。
/**found**/q=p+i;/**found**/while(q>p)3程序设计学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。
int fun(STREC *a,STREC *b,int l,int h){int i,j=0;for(i=0;i<N;i++)if((a[i].s>=1&&a[i].s<=h)b[j++]=a[i];return j;}第二套1.程序填空给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序连接。
函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。
第一处free(q);第二处q=p->next;第三处q=q->next;2. 程序修改给定程序MODI1.C中函数fun的功能是:用选择法对数组中的n各元素按从小到大的顺序进行排序。
/**found**/p=j;/**found**/p=i;3. 程序设计请编写一个fun函数,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。
2012年9月 全国计算机等级考试 二级C语言 笔试试卷、答案及解析
2012年9月22日网上发布的全国计算机等级考试二级C语言笔试答案一、选择题:(1)C、(2)B、(3)B、(4)D、(5)A(6)C、(7)C、(8)B、(9)A、(10)A(11)B、(12)A、(13)B、(14)A、(15)C(16)C、(17)C、(18)B、(19)D、(20)D(21)B、(22)D、(23)D、(24)B、(25)D(26)C、(27)A、(28)B、(29)C、(30)A(31)C、(32)A、(33)B、(34)A、(35)D(36)D、(37)B、(38)A、(39)B、(40)D二、填空题【1】6【2】20【3】逻辑独立【4】选择【5】系统软件【6】a>b【7】%lf%f【8】224【9】16【10】4321【11】7【12】22【13】2【14】6【15】p=p->next2012年9月22日评阅者注释的全国计算机等级考试二级C语言笔试答案一、选择题:(1)C、(2)B、(3)B、(4)D、(5)A(6)C、(7)C、(8)B、(9)A、(10)A(11)B、(12)A、(13)B、(14)A、(15)C(16)C、(17)C、(18)B、(19)D、(20)D(21)B?、(22)D、(23)D、(24)B、(25)D(26)C?、(27)A、(28)B、(29)C、(30)A(31)C、(32)A、(33)B、(34)A、(35)D(36)D、(37)B、(38)A、(39)B、(40)D二、填空题【1】6【2】20【3】逻辑独立性【4】选择【5】系统软件【6】a>b【7】%lf%f【8】224【9】16【10】4321【11】7【12】22【13】2【14】6【15】p=p->next2012年9月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)一、选择题(⑴-(10)、(21)-(40)每题2分,(11)-(20)每题1分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。
全国计算机二级C语言完整复习资料
全国计算机二级C语言(完整复习资料)考试题型⑴选择。
一一40(40 个)(2)程序填空。
——18(1 个)-(3)程序改错。
—18(1 个)(4)程序编程。
—24(1 个)考试时间3.30-4.3120mi n 无纸化考试进制之间的转换二进制与八进制之间的联系:111如00100000 则000 100 000 (二进制)进制转二进制:除2取余法进制转十进制:2的幂次法八进制转十进制:除8取余法附录很重要!!尤其是红色字体的。
附录A 常用字符与ASCII代码对照表(这个记048,065,097三个就好)ASC n 值字符ASC n 值字符ASC n 值字符ASC n 值字符000 NUL037 %074 J111 O001 SOH038 &075 K112 P002 STX039 076 L113 q003 ETX040 (077 M114 r004 EOT041 )078 N115 s005 END042 *079 O116 t006 ACK043 +080 P117 u007 BEL044 , 081 Q118 v008 BS045 —082 R119 w009 HT046 O 083 S120 x010 LF047 /084 T121 y011 VT048 0085 U122 z012 FF049 1086 V123 {013 CR050 2087 W124 |014 SO051 3088 X125 J015 SI052 4089 Y126 ~016 DLE053 5090 Z017 DC1054 6091 [018 DC2055 7092019 DC3056 8093 1020 DC4057 9094 A021 NAK058 : 095022 SYN059 ; 096023 ETB060 <097 a024 CAN061 =098 b025 EM062 >099 c026 SUB063 ?100 dauto break case char con st con ti nue default do double else enum exter n float for gotoif int|long register returnshort sig ned sizeof static struct switch typ edef union un sig ned void volatile while优先级附录C运算符和结合性附录B C语言中的关键字2运算符含义()1 圆括号[ ] 下标运算符-> 指向结构体成员运算符1 -- 1结构体成员运算符!■逻辑非运算符<~ 按位取反运算符++ 自增运算符-- 自减运算符- 负号运算符(类型)类型转换运算符★指针运算符& 取地址运算符要求运算对象的个数(单目运算符)结合方向自左至右自右至左23 /说明:(1) 同一优先级的运算符,运算次序由结合方向决定。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机水平考试 (试题1)一. 单项选择题1. 按电子元器件分类,第二代计算机主要是采用_________作为逻辑开关元件。
A.电子管B.中小规模集成电路C.晶体管D.大规模集成电路2. 在下列各种进制的数据中,最大的数是__________。
A.(5F)16B.(88)10C.(136)8D.(1011101)23. 冯.诺依曼原理主要是指___________。
A.运算的精确度B.存储程序和自动控制C.高速度运算能力D.智能化体系结构4. 以下关于计算机语言描述,错误的是__________。
A.在计算机语言中,汇编语言属于低级语言B.FoPro 2.5b for windows 语言、C语言、Fortran 90语言均属于高级语言C.机器语言可以被计算机直接执行D.所有计算机语言程序都必须被编译后才能在计算机上运行5. 以下_________是多媒体计算机必备的设备。
A.视频卡B.打印机C.声卡D.扫描仪6.通常说硬盘的容量为80G,指的是___________。
A.80G bitB.80G byteC.80G个字D.80000个字7.在windows98中相同磁盘不同文件夹之间的文件复制操作可以___________。
A.直接用鼠标将选定文件拖到目标文件夹B.按住Ctrl键后用鼠标将选定文件拖到目标文件夹中C.按住Alt键后用鼠标将选定文件拖到目标文件夹中D.按住shift键后用鼠标将选定文件拖到目标文件夹中8.在windows98中,利用“回收站”可恢复__________上被误删除的文件。
A.硬盘B.软盘C.内存D.光盘9.以下正确的E-mail地址是____________。
B. @ C. spks@ D. @10. 发现软盘有文件已经感染上病毒,以下不能清除病毒的方法是___________。
A.将软盘快速格式化B.用有效的杀毒软件清除该软盘中的病毒C.将软盘全面格式化D.将软盘上所有文件移到硬盘中11. 以下选项中合法的用户标识符是___________。
A.longB._2TestC.3DmaxD. A.dat12.一个C语言源程序是由___________组成。
A.若干过程B.若干子程序C.若干函数D.一个主程序和若干子程序13.C语言中, 要求参加运算的数必须是整数或字符的运算符是___________。
A./B.!C.%D.=14.int类型的数据取值范围是___________。
A.0至255B.-32768至32767C.-256至255D.0至6553515. 下列属于C语言合法的字符常量是____________。
A.‘\97’B.“A”C.‘\t’D.“\0”16. 若x为unsinged int型变量,则执行以下语句后的x值为_____________。
x=65534;printf(“%d”,x);A.65534B.2C.无定值D.-217. 以下合法的赋值语句是__________。
A.a=(5+b,d++,a+5);B.x=y=50C.x+y;D.c=int(a+b);18. 已知w=0,x=1,y=2,z=3,a=4,b=5;则执行语句(a=w>x)&&(b=y>z);后a,b的值为_________。
A.0,0B.4,5C.0,5D.4,019. 设x,y,t均为int型变量,则执行语句:x=y=4;t=++x||++y;后,y的值为__________。
A.不定值B.5C.4D.120. 若有以下程序段,执行后输出结果是____________。
int a=3;printf(“%d\n”,(a+ =a-=a*a));A.-6B.12C.0D.-1221. putchar函数可以向终端输出一个____________。
A.整型变量表达式值B.实型变量值C.字符串D.字符或字符型变量值22. 函数fabs(x)的功能是___________。
A.对x取整B.对x取绝对值C.对x取平方根D.计算x 的平方23. 若给定条件表达式(m)?(a++):a-- 则其中表达式m和___________等价。
A.m==0B.m==1C.m!=0D.m!=124. 为了避免嵌套的if- else的二义性,C语言规定,else与__________配对。
A.与最外层的ifB.其之前最近的不带else的 ifC.其之后最近的ifD.与最近的{}之前的if25. 定义如下变量和数组:int i,x[3][3]={1,2,3,4,5,6,7,8,9};下面语句的输出结果是____________。
for(i=0;i<3;i++) printf(“%2d”,x [i][2 –i]);A.159B.147C.357D.36926. 若i为整型变量,则以下循环执行次数是____________。
for(i=2;i==0;)printf(“%d”,i――);A.0次B.1次C.2次D.无限次27. 若有定义int x[10] ={0,2,4}; 则数组在内存中所占字节数为____________。
A.3B.4C.10D.2028. 若有以下程序段执行后,输出结果是___________。
char str[ ]=“abc\102\r12\\\t”;printf(“%d”,strlen (str));A.9B.10C.12D.1529. 以下数组定义中不正确的是_____________。
A.int a[2][3];B.int b[ ][3] ={0,1,2,3.4};C.int c[10][10]={0};D.int d[3][ ]={{1,2},{3,4},{5,6}};30. 以下程序的输出结果是_____________。
#define M(x,y,z) x*y*zmain(){ int a=1,b=2,c=1;printf(“%d\n”,M(a+b,b+c,c+a));}A.6B.7C.18D.1931. 以下是对函数的描述,不正确的是___________。
A.调用函数时,实参可以是常量、表达式B.调用函数时,将为形参分配内存单元C.调用函数时,实参与形参个数必须相同D.调用函数时,形参必须是整型32. 下列程序的输出结果是___________。
main(){ int a[10] ={9,8,7,6,5,4,3,2,1,0},*p=a+5;printf(“%d”,*p--);}A.3B.4C.5D.a [4]的地址33. 若有程序段:int *p,a=6,b=1;p=&a;*p=10; a=a+b;执行给程序后,a的值是__________。
A.7B.10C.11D.2034. 若有如下语句;int c[4][5],(*p)[5];p=c;则能正确引用c数组元素的是___________。
A.p+1B.*(p+3)C.*(p+1)+3D.*(p[0]+2)35. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是_________。
A.地址传递B.单向值传递C.传递方式由用户指定D.由实参传给形参,再由形参传给实参36. 设有如下定义:struct ks{int a;float b;} data,*p;若有p=&data; 则对data中的a域的正确引用的是___________。
A.(*p).aB.p.data.aC.p->data.aD.(*p).data.a37. 以下枚举类型的定义中正确的是___________。
A.enum a={one ,two, there};B.enum a{“one”,“tow”,“there”};C.enum a={“one”,“two”,“there”};D.enum a{one=8,two=9,there};38. 以下各选项企图说明一种新的类型名,其中正确的是___________。
A.typedef al int;B.typedef a2=int;C.typedef int a3;D.typedef a4;int39. 在C语言中,用w+方式打开一个文件后,可以执行的文件操作是____________。
A.可任意读写B.只读C.只能先写后读D.只写40. 当顺利执行了文件关闭操作时,fclose函数的返回值是_____________。
A.0B.TureC.-1D.1二. 填空题1.设有int a=5,b=9;则逻辑表达式!(b>a)||(a>4)的值为_____________。
2.在Turbo C集成开发环境下,将当前文件以指定的文件名存盘的功能热键是___________。
3.C标准库函数中,字符处理函数的原形在____________头文件中。
4.从赋值语句wang.birth.year=2005; 可判断birth是____________变量。
5.以下函数用来求两整数之和,并通过形参将结果传回。
请填空。
void fun(int x,int y,___________z){*z=x+y;}6.若有如下程序main(){unsigned int x=3, y=10;printf(“%d\n”,x<<2|y>>1);}则输出结果是___________。
7.设有下列结构变量sx的定义struct {long num;char name[20];union {float y; short z;}yz;}sx;则表达式sizeof(sx)的值是______________。
8.下面程序实现交换调用它的两个整型变量x和y的值,在程序划线处填入相应的内容。
#include<stdio.h>__________;void main(void){int x,y;scanf(“%d,%d”,&x,&y);swap(__________);}void swap(__________){int temp;temp=*x;*x=*y;*y=temp;}三. 阅读程序,写出运行结果[程序1]#include<stdio.h>main(){ int i,j,k;for(i=1;i<5;i++){for(k=0;k<=4-i;k++) printf(“”);for(j=0;j<2*i-1;j++) printf(“#”);printf(“\n”);}}[程序2]运行时假定从键盘输入数据为:10 9 8 7 6 5 4 3 2 1#include<stdio.h>void main(void ){ int i,str[10];int *p;p=str;for(i=0;i<10;i++)scanf(“%d”,p++);for(;--p>=str;)if(*p%2)printf(“%3d”,*p);}[程序3]#include<stdio.h>void row( int n){ static int a=1;int b;for (b=1;b<=n;b++);printf(“%5d”,a*b);printf(“\n”);a++;}void main(void ){ int b;for(b=1;b<=5;b++)row(b);}[程序4]在Turbo C环境下,运行时从键盘输入1#include<stdio.h>void main(){ int k;scanf(“%d”,&k);switch(k){ case 1:printf(“%d,%d\n”,k++,k);case 2:printf(“%d,%d\n”,k,k--);case 3:printf(“%d,%d\n”,++k,k);case 4:printf(“%d,%d\n”,--k,k++);break;default:printf(“full!\n”);}}[程序5]#include<stdio.h>long subT(int n){if(n==1||n==2) return 2;else return (n+subT(n-1));}void main(){ int x;x=subT(4);printf(“%d\n”,x);}四. 编程题1.输出100以内所有个位数为6且能被3整除的自然数。