当前位置:文档之家› 2013年计算机等级考试二级考试--C语言单项模拟练习题

2013年计算机等级考试二级考试--C语言单项模拟练习题

2013年计算机等级考试二级考试--C语言单项模拟练习题
2013年计算机等级考试二级考试--C语言单项模拟练习题

2013年计算机等级考试二级考试--C语言单项模拟练习题

以下内容是2013年计算机等级考试二级考试--C语言单项模拟练习题,如需更多考试资讯,可关注查询考试宝典网站,更多详细考试辅导资料!

单项选择:

第1题:若有以下程序:main() { int k=2,i=2,m; m=(k+=i*=k);printf("%d,%d\n",m,i);} 执行后的输出结果是()。

A.8,6

B.8,3

C.6,4

D.7,4

正确答案:C

第2题:有以下程序:main() {unsigned char a,b; a=4|3; b=4&3; printf(“%d %d\n”,a,b(;} 执行后输出结果是()。

A. 7 0

B.0 7

C.1 1

D.43 0

正确答案:A

第3题:有下列程序:

main()


char s[]="abcde";

s+=2:

printf("%d\n",s[0]);

执行后的结果是( )。

A.输出字符a的ASCII码

B.输出字符c的ASCII码

C.输出字符c

D.程序出错

正确答案:D

答案解析:

[解析] 因为字符数组s[]中的数组名s表示的是一个地址常量,所以语句

“s+=2;”不能将指针在当前位置的基础上再向后移动两位。因而程序编译时出错。

第4题:有以下程序段:

int x=3:

do

printf("%d",x-=2);

while(!(--x));

其输出结果是( )。

A.1

B.3 0

C.1-2

D.死循环

正确答案:C

答案解析:

[解析] 本题考查do-while循环,先执行do输出的x的值为1,接着执行’while 后语句,此时--x的值为0,x也为0,而非0为1,循环成立,接着执行do输出x值为-2,执行--x后,表达式为-2,而!(--x)为0,退出循环。

第5题:下面程序的输出结果是

#include<stdio.h>

#include<string.h>

main()

char*p1="abc",*p2="ABC",str[50]="xyz";

strcpy(str+2,streat(p1,p2));

printf("%s\n",str);

A.xyzabcABC

B.zabcABC

C.xyabcABC

D.yzabcABC

正确答案:C

答案解析:

[解析] 本题考查的重点是拷贝字符串——使用strcpy()函数,该函数的调用方式是:strcpy(字符数组,字符串),其中“字符串”可以是字符串常量,也可以是字符数组。函数的功能是:将“字符串”完整地复制到“字符数组”中,字符数组中原有的内容被覆盖。

使用该函数时注意:①字符数组必须定义得足够大,以便容纳复制过来的字符串。复制时,连同结束标志“\0”一起复制;②不能用赋值运算符“=”将一个字符串直接赋值给一个字符数组,只能用strcpy()函数处理。

另外,本题还考查连接字符串的strcat()函数,其调用方式是:strcat(字符数组,字符串)。

功能是把“字符串”连接到“字符数组”中的字符串尾端,并存储于“字符数组”中。“字符数组”中原来的结束标志,被“字符串”的第一个字符覆盖,而“字符串”在操作中未被修改。

使用该函数时注意:①由于没有边界检查,编程者要注意保证“字符数组”定义得足够大,以便容纳连接后的目标字符串;否则,会因长度不够而产生问题;②连接前两个字符串都有结束标志“\0”,连接后“字符数组”中存储的字符串的结束标志“\0”被舍弃,只在目标串的最后保留一个“\0”。

第6题:下列有关数据库的描述,正确的是

A.数据库是一个DBF文件

B.数据库是一个关系

C.数据库是一个结构化的数据集合

D.数据库是一组文件

正确答案:C

答案解析:

[解析] 数据库(DataBase,简称DB) 是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,可被各个应用程序所共享。数据库中的数据具有“集成”、“共享”的特点。

第7题:若有定义:char*st="how are you";,下列程序段中正确的是

A.chara[11],*p;strcpy(p=a+1,&st[4]);

B.chara[11];strcpy(++a,st);

C.chara[11];strcpy(a,st);

D.chara[],*p;strcpy(p=&a[1],st+2);

正确答案:A

答案解析:

[解析] 本题综合考查字符数组的赋值和strepy函数的用法。C语言不允许用赋值表达式对字符数组赋值,如下面的语句就是非法的:strl=“China”,如果想把“Chi- na”这5个字符放到数组strl中,除了逐个输入外,还能使用strepy 函数,该函数的功能是将一个字符串复制到一字符数组中。例如:strepy(strl,“China”)或strcpy(strl,str2);注意,不能企图用以下语句来实行赋值(将str2的值传给 strl):str1=str2;不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。

strepy函数的结构是:strepy(字符数组1,字符串2)

其中,需要注意的是,字符数组1的长度不应小于字符串2的长度,“字符数组1”必须写成数组名形式,如(str1),“字符串2”可以是字符数组名,也可以是字符串常量,不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。

第8题:以下不是面向对象思想中的主要特征的是

A.多态

B.继承

C.封装

D.垃圾回收

正确答案:D

答案解析:

[解析] 面向对象思想中的三个主要特征是:封装性、继承性和多态性。

第9题:数据的存储结构是指( )

A.数据所占的存储空间

B.数据的逻辑结构在计算机中的存放形式

C.数据在计算机中的顺序存储方式

D.存储在计算机外存中的数据

正确答案:B

答案解析:

[解析] 数据的存储结构,又称为数据的物理结构,是数据的逻辑结构在计算机中的存放形式。数据的存储结构有顺序结构、链式结构、散列结构和索引结构等。

第10题:下列叙述中不正确的是( )

A.在C语言中调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参

B.在C的函数中,最好使用全局变量

C.外部变量可以在函数之间传递数据

D.自动变量实质上是一个函数内部的局部变量

正确答案:B

答案解析:

[解析] 编译时,编译系统不为局部变量分配内存单元,而是在程序运行中,当局部变量所在的函数被调用时,编译系统根据需要要临时分配内存,调用结束空间释放:全局变量一经定义,编译系统为其分配固定的内存单元,在程序运行的自始至终都占用固定的单元。在内存不确定的情况下,最好使用全局变量。

二级(C语言程序设计)上机题汇总

二级(C语言程序设计)上机题汇总 一、程序调试题 (一)程序填空 练习一: /*该程序功能:对x=1,2,。。。。。,10,f(x)=x*x*-5*x+sin(x)的最大值。*/ #include #include #define f(x) x*x-5*x+sin(x) void main() { int x; float max; ____ max=f(1);____ for(x=2;x<=10;x++) ___if( max void swap(__int *pa, int *pb____) { /*交换两个数的位置*/ int temp; temp = *pa; *pa = *pb; *pb = temp; } void main() { int a,b,c,temp; scanf("%d%d%d",&a,&b,&c); if(a>b) swap(&a,&b); if(b>c) swap(&b,&c); if(__a>b___) swap(&a,&b); printf("%d,%d,%d",a,b,c); } 练习三: /*该程序功能:将输入的十进制正整数n通过函数Dec2Bin转换为二进制数,并将转换结果输出。*/ #include

void Dec2Bin(int m) { int bin[32],j; for(j=0;m!=0;j++) { bin[j]= __m%2___; m=m/2; } for(;j!=0;j--) printf("%d", ____bin[j-1]_ _____ ); } void main() { int n; scanf("%d",&n); Dec2Bin(n); } 练习四: /*该程序功能:输入数组x[7],调用函数f,去除数组中的负数,输出结果为:1 3 4 6*/ #include void f(int *a,int *m) { int i,j; for(i=0;i<*m;i++) if(a[i]<0) { for(j=i--;j<*m-1;j++) a[j]=a[j+1]; ___*m=*m-1;___ } } void main() { int i,n=7,x[7]={1,-2,3,4,-5,6,-7}; _ f(x,&n);_____ for(i=0;i void main() { int i,j,s; for(i=6;i<=1000;i++) { ___s=1;___

精选C语言试卷(带答案).

2006-2007学年第二学期考试试卷A卷 考试科目C语言程序设计考试方式闭卷完成时限2小时 拟题人审核人批准人2007年7 月 5 日机械、电气、信息、生化、轻工、经管、理学院2006年级各理工科专业 说明: 1.应将全部答案写在答卷纸对应的题号处;否则作无效处理; 2.编程题应写明题号,若答卷纸不够,请写在背面,不要另添卷纸; 3.考试完成后,必须将试卷与答卷同时交回。 一、判断题(10小题,每题1分,共10分;用√表示正确,用×表示错误)1.在循环体内使用break语句和continue语句的作用相同。 2.函数返回值的类型最终取决于函数定义时形参的类型。 3.else语句一定要与if语句配对使用,程序中else语句的个数一定小于或者等于if语句的个数。 4.从狭义角度讲,算法是解决一个问题采取的方法和步骤的描述。 5.1/2的结果是0,所以1.0/2的结果也是0。 6.a=b=c=5可以理解为a=(b=(c=5))。 7.假设有语句int a[10]={1,2,3},*p;p=a;则p++完全等价于a++。 8.for(;;)等价于while(1)语句。 9.假定int类型变量占用两个字节,若有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是6。 10.char *sp ={"welcome"};可以写成char *sp="welcome"; 。 二、单选题(16小题,每题1分,共16分) 1.以下数组定义中错误的是: (A) int x[][3] ={0}; (B) int x[2][3]={{1,2},{3,4},{5,6}};

(C) int x[][3]={{1,2,3},{4,5,6}}; (D) int x[2][3]={1,2,3,4,5,6}; 2.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为: (A)EOF (B)NULL (C) 0 (D)非0值 3.有以下程序: main() {int y=10; while(y--) ; printf(“y=%d\n”,y); } 程序执行后的输出结果是: (A) y=0; (B)y=-1; (C) y=1 (D)while构成无限循环 4. 若有以下宏定义: #define N 2 #define Y(n) (N+1)*n 则执行语句int z; z=2*N+Y(5);后的值是 (A) 50 (B)34 (C)19 (D)无定值 5.以下叙述中错误的是: (A)c程序必须由一个或者一个以上的函数组成。 (B)函数调用可以作为一个独立的语句存在。 (C)若函数有返回值,必须通过return 语句返回。 (D)函数形参的值也可以传回给对应的实参。 6.设有如下定义的变量 union data { int i; char ch; float f; }b; 则变量b占用内存的字节数是(假设int类型占2个字节,char类型占1个字节,float类型占4个字节): (A) 4 (B)5 (C) 6 (D)7 7.以下叙述中错误的是:

二级C语言试题(含答案)

二级C语言试题 一、判断题(2×8=16分) 1、printf()函数总是从新行的起始位置开始打印。( F ) 2、所有的变量在使用前都必须予以申明。(F) 3、在申明变量时必须给出变量的类型。(T) 4、C语言认为变量number和NuMbEr是相同的。( F) (F) 5、打印三行输出的C语言程序必须用三条printf语句。 6、求余运算符%只能用于两个整数操作数。(T) 7、switch选择结构中必须有default子句。(F) 8、如果x>y或ay&&a

{ int a; float b; a=4; b=9.5; printf("a=%d,b=%4.2f\n",a,b); } 程序运行结果:a=4,b=9.50 A. a=%d,b=%f\n B. a=%d,b=%f C. a=4,b=9.50 D. a=4,b=9.5 5. 若有以下说明语句: char s=’\\\092’; 则下面哪一项是正确的. A. 使s的值包含2个字符 B. 说明语句不合法 C. 使s的值包含6个字符 D. 使s的值包含4个字符 6.若k,g均为int型变量,则以下语句的输出为哪一项? int k,g; k=017; g=111; printf("%d,",k); printf("%x\n",g);

历年二级C语言笔试真题及答案

1 2009年9月全国计算机等级考试二级笔试 试卷 1)下列数据结构中,属于非线性结构的是 A )循环队列 B) 带链队列 C) 二叉树 D )带链栈 2)下列数据结果中,能够按照“先进后出”原则存取数据的是 A) 循环队列 B) 栈 C)队列 D)二叉树 3)对于循环队列,下列叙述中正确的是 A )队头指针是固定不变的 B )队头指针一定大于队尾指针 C )队头指针一定小于队尾指针 D )队头指针可以大于队尾指针,也可以小于队尾指针 4)算法的空间复杂度是指 A )算法在执行过程中所需要的计算机存储空间 B )算法所处理的数据量 C )算法程序中的语句或指令条数 D )算法在执行过程中所需要的临时工作单元数 5)软件设计中划分模块的一个准则是 A) 低内聚低耦合 B) 高内聚低耦合 C) 低内聚高耦合 D) 高内聚高耦合 6)下列选项中不属于结构化程序设计原则的是 A) 可封装 B) 自顶向下 C) 模块化 D) 逐步求精 7)软件详细设计产生的图如下: 该图是 A) N-S 图 B) PAD 图 C) 程序流程图 D) E-R 图 8)数据库管理系统是 A )操作系统的一部分B) 在操作系统支持下的系统软件C) 一种编译系统 D) 一种操作系统 9)在E-R 图中,用来表示实体联系的图形是 A) 椭圆图B) 矩形C) 菱形D) 三角形 10)有三个关系R ,S 和T 如下: 其中关系T 由关系R 和S 通过某种操作得到,该操作为 A) 选择 B) 投影 C) 交 D) 并 11)以下叙述中正确的是 A )程序设计的任务就是编写程序代码并上机 B )程序设计的任务就是确定所用数据结 构 C )程序设计的任务就是确定所用算法 D )以上三种说法都不完整 12)以下选项中,能用作用户标识符的是 A )void B )8_8 C )_0_ D )unsigned 13)阅读以下程序 #include main() { int case; float printF; printf(“请输入2个数:”); scanf(“%d %f”,&case,&pjrintF); printf(“%d %f \n”,case,printF); } 该程序编译时产生错误,其出错原因是 A )定义语句出错,case 是关键字,不能 用作用户自定义标识符B )定义语句出错,printF 不能用作用户自定义标识符 C )定义语句无错,scanf 不能作为输入函 数使用 D )定义语句无错,printf 不能输出case 的值 14)表达式:(int)((double)9/2)-(9)%2的值是 A )0 B )3 C )4 D )5 15)若有定义语句:int x=10;,则表达式 x-=x+x 的值为 A )-20 B )-10 C )0 D )10 16)有以下程序 #include main() { int a=1,b=0; printf(“%d,”,b=a+b); printf(“%d \n”,a=2*b); } 程序运行后的输出结果是 A )0,0 B )1,0 C )3,2 D )1,2 17)设有定义:int a=1,b=2,c=3;,以下语 句中执行效果与其它三个不同的是 A )if(a>b) c=a,a=b,b=c; B )if(a>b) {c=a,a=b,b=c;} C ) if(a>b) c=a;a=b;b=c; D ) if(a>b) {c=a;a=b;b =c;} 18)有以下程序 #include main() { int c=0,k; for (k=1;k<3;k++) switch (k) {default: c+=k case 2: c++;break; case 4: c+=2;break; } printf(“%d \n”,c); } 程序运行后的输出结果是 A )3 B )5 C )7 D )9 19)以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是 A )if((a>b)&&(b>c)) k=1;else k=0; B )if((a>b)||(b>c) k=1;else k=0; C )if(a<=b) k=0;else if(b<=c) k=1; D )if(a>b) k=1;else if(b>c) k=1; else k=0; 20)有以下程序 #include main() { char s[]={“012xy”};int i,n=0; for(i=0;s[i]!=0;i++) if(s[i]>=?a?&&s[i]<=?z?) n++; printf(“%d \n”,n); } 程序运行后的输出结果是 A )0 B )2 C )3 D )5 21)有以下程序 #include main() { int n=2,k=0; while(k++&&n++>2); printf(“%d %d \n”,k,n); } 程序运行后的输出结果是 A )0 2 B )1 3 C )5 7 D )1 2 22)有以下定义语句,编译时会出现编译错误的是 A )char a=?a? B )char a=?\n?; C )char a=?aa?; D )char a=?\x2d?; 23)有以下程序 #include main() { char c1,c2; c1=?A?+?8?-…4?; c2=?A?+?8?-…5?; printf(“%c,%d \n”,c1,c2); } 已知字母A 的ASCII 码为65,程序运行后的输出结果是

湖南大学C语言程序设计试卷

第 1 页(共 6 页)

三、写出程序运行结果(每题 5 分,共20分) 1.main() { int a=15,b=21,m=0; switch(a%3) { case 0:m++;break; case 1:m++; switch(b%2) { default:m++; case 0:m++;break; } } printf(“%d\n”,m); } 程序运行后的输出结果是: 2.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));} 程序运行后的输出结果是: 3.void fun(char *c,int d) { *c=*c+1;d=d+1; printf("%c,%c,",*c,d); } main() { char a='A',b='a'; fun(&b,a); printf("%c,%c\n",a,b); } 程序运行后的输出结果是: 4.struct stu { char num[10]; float score[3]; }; main() { struct stu s[3]={{"20021",90,95,85}, {"20022",95,80,75}, {"20023",100,95,90}},*p=s; int i; float sum=0; for(i=0;i<3;i++) sum=sum+p->score[i]; printf("%6.2f\n",sum); } 程序运行后的输出结果是: 第 2 页(共 6 页)

全国计算机等级考试二级C语言真题

2009年3月二级C语言笔试真题((1)—(10)每小题2分,(11)—(50)每题1分,共60分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。 (1)下列叙述中正确的是 A)栈是“先进先出”的线性表 B)队列是“先进先出”的线性表 C)循环队列是非线性结构 D)有序性表既可以采用顺序存储结构,也可以采用链式存储结构 (2)支持子程序调用的数据结构是 A)栈B)树C)队列D)二叉树 (3)某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是 A)10B)8C)6D)4 (4)下列排序方法中,最坏情况下比较次数最少的是 A)冒泡排序 B)简单选择排序 C)直接插入排序 D)堆排序 (5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是 A)编译软件 B)操作系统 C)教务管理系统 D)汇编程序 (6)下面叙述中错误的是 A)软件测试的目的是发现错误并改正错误 B)对被调试的程序进行“错误定位”是程序调试的必要步骤 C)程序调试通常也称为Debug D)软件测试应严格执行测试计划,排除测试的随意性 (7)耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是 A)提高耦合性降低内聚性有利于提高模块的独立性 B)降低耦合性提高内聚性有利于提高模块的独立性

C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度D)内聚性是指模块间互相连接的紧密程度 (8)数据库应用系统中的核心问题是 A)数据库设计 B)数据库系统设计 C)数据库维护 D)数据库管理员培训 (9)有两个关系R,S如下: 由关系R通过运算得到关系S,则所使用的运算为 A)选择B)投影C)插入D)连接 (10)将E-R图转换为关系模式时,实体和联系都可以表示为A)属性B)键C)关系D)域 (11)以下选项中合法的标识符是 A)1-1B)1—1C)-11D)1-- (12)若函数中有定义语句:intk;,则 A)系统将自动给k赋初值0 B)这时k中值无定义 C)系统将自动给k赋初值-1 D)这时k中无任何值 (13)以下选项中,能用作数据常量的是 A)o115B)0118C))115L (14)设有定义:intx=2;,以下表达式中,值不为6的是A)x*=x+1 B)x++,2*x C)x*=(1+x)

2013年春C语言试题

湖北科技学院2013学年春季学期2012级 《高级语言程序设计(C语言)》期末考试试卷(A卷、闭卷) 一.选择题:(每小题1分,共40分) 1.C语言规定,必须用( )作为主函数名。 A) Function B) include C) main D) stdio 2.下列说法正确的是( )。 A) 在执行C程序时不是从main 函数开始的 B) C程序书写格式严格限制,一行内必须写一个语句 C) C程序书写格式自由,一个语句可以分写在多行上 D) C程序书写格式严格限制,一行内必须写一个语句,并要有行号 3.下列字符串是用户标识符的是( )。 A) _HJ B) 9_student C) long D) float 4.下列数据中是合法的整型常量的是( )。 A) 3E2 B) 029 C) -32768 D) 6e+007 5.语句int k,i=3;k=(i++)+(i++)+(i++);执行过后k和i的值分别为( )。 A) 9,6 B) 12,5 C) 18,6 D) 15,5 6.10+?a?+1.5-567.345/?b?的结果是( )型数据。 A) long B) double C) int D) unsigned float 7.在C 语言中,下列类型属于构造类型的是( )。 A) 整型B) 指针类型C) 实型D) 结构体类型 8.在C语言中,退格符是( )。 A) \n B) \t C) \v D) \b 9.下列符号中,可以作为变量名的是( )。 A) +c B) *X C) _DAY D) next-day 10.以下程序的输出结果是( )。 void main() { unsigned char a=2,b=4,c=5,d; d=a|b; d&=c; printf("%d\n",d); } A) 3 B) 4 C) 5 D) 6 11.若已知a=5,b=10,则表达式a==b的值为( )。 A) 10 B) 20 C) 1 D) 0 12.已有定义” int a=-2; ”和输出语句” printf( “%8x”, a );“,以下正确的叙述是( )。 A) 整型变量的输出形式只有%d一种 B) %x是格式控制符的一种,它可以适用于任何一种类型的数据 C) %x是格式控制符的一种,其变量的值按十六进制输出,但%8x是错误的 D) %8x不是错误的格式控制符,其中数字8规定了输出数据的宽度 13. 在C语言中,凡在一个标识符后面紧跟着一对圆括弧,就表明它是一个( )。 A) 函数B) 文件C) 变量D) 子程序 14.语句 int x=10, y=20, z=30; if (x>y) z=x; x=y; y=z; 执行后x、y、z的值是( )。 A) x=10,y=20,z=30 B) x=20,y=30,z=30

计算机二级C语言考试内容

计算机二级 公共基础知识 基本要求 1.掌握算法的基本概念。 2.掌握基本数据结构及其操作。 3.掌握基本排序和查找算法。 4.掌握逐步求精的结构化程序设计方法。 5.掌握软件工程的基本方法,具有初步应用相关技术进行软件开发的能力。 6.掌握数据库的基本知识,了解关系数据库的设计。 考试内容 一、基本数据结构与算法 1.算法的基本概念;算法复杂度的概念和意义(时间复杂度与空间复杂度)。 2.数据结构的定义;数据的逻辑结构与存储结构;数据结构的图形表示;线性结构与非线性结构的概念。 3.线性表的定义;线性表的顺序存储结构及其插入与删除运算。 4.栈和队列的定义;栈和队列的顺序存储结构及其基本运算。 5.线性单链表、双向链表与循环链表的结构及其基本运算。 6.树的基本概念;二叉树的定义及其存储结构;二叉树的前序、中序和后序遍历。

7.顺序查找与二分法查找算法;基本排序算法(交换类排序,选择类排序,插入类排序)。 二、程序设计基础 1.程序设计方法与风格 2.结构化程序设计。 3.面向对象的程序设计方法,对象,方法,属性及继承与多态性。 三、软件工程基础 1.软件工程基本概念,软件生命周期概念,软件工具与软件开发环境。 2.结构化分析方法,数据流图,数据字典,软件需求规格说明书。 3.结构化设计方法,总体设计与详细设计。 4.软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。 5.程序的调试,静态调试与动态调试。 四、数据库设计基础 1.数据库的基本概念:数据库,数据库管理系统,数据库系统。 2.数据模型,实体联系模型及E―R图,从E―R图导出关系数据模型。 3.关系代数运算,包括集合运算及选择、投影、连接运算,数据库规范化理论。

计算机二级c语言历年真题及答案

计算机二级c语言历年真题及答案【篇一:国家计算机二级c语言历年真题及答案】 class=txt>c语言程序设计 (考试时间90分钟,满分100分) 一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共70分) (1)下列数据结构中,属于非线性结构的是 a)循环队列 b) 带链队列 c) 二叉树 d)带链栈 (2)下列数据结果中,能够按照“先进后出”原则存取数据的是 a) 循环队列 b) 栈 c)队列 d)二叉树 (3)对于循环队列,下列叙述中正确的是 a)队头指针是固定不变的 b)队头指针一定大于队尾指针 c)队头指针一定小于队尾指针 d)队头指针可以大于队尾指针,也可以小于队尾指针 (4)算法的空间复杂度是指 a)算法在执行过程中所需要的计算机存储空间 b)算法所处理的数据量 c)算法程序中的语句或指令条数 d)算法在执行过程中所需要的临时工作单元数 (5)软件设计中划分模块的一个准则是 a) 低内聚低耦合 b) 高内聚低耦合 c) 低内聚高耦合 d) 高内聚高耦合 (6)下列选项中不属于结构化程序设计原则的是 a) 可封装 d) 自顶向下

c) 模块化 d) 逐步求精 (7)软件详细设计产生的图如下: 该图是 a) n-s图 b) pad图 c) 程序流程图 d) e-r图 (8)数据库管理系统是 a)操作系统的一部分 b) 在操作系统支持下的系统软件 c) 一种编译系统 d) 一种操作系统 (9)在e-r图中,用来表示实体联系的图形是 a) 椭圆图 b) 矩形 c) 菱形 d) 三角形 (10)有三个关系r,s和t如下: 其中关系t由关系r和s通过某种操作得到,该操作为 a) 选择 b) 投影 c) 交 d) 并 (11)以下叙述中正确的是 a)程序设计的任务就是编写程序代码并上机调试 b)程序设计的任务就是确定所用数据结构 c)程序设计的任务就是确定所用算法 d)以上三种说法都不完整 (12)以下选项中,能用作用户标识符的是 a)void b)8_8 c)_0_ d)unsigned (13)阅读以下程序

c语言试卷及其答案

读书破万卷下笔如有神

1

…………试卷装 订线 ……………… 装订线内不要答题,不要填写考生信息……………… 试卷装 订线printf(?%d, %c \n?, c2-c1, c2-(?a?-?A?)); … 院 3 e.D 2, E .C 3, E .B 2, M .A…学……下笔如有神读书破万卷

读书破万卷下笔如有神在函数调用中,若形参和实参都是简单变量,下面说法正确的是__16.实参和形参共用一个内存单

.实参和形参各占用一个独立的内存单 .由用户确定是否共用内存单 .由系统确定是否共用内存单 判断字符str是否大于字符str,应当使用__17if(str1>str2if(strcmp(str1,str2)) if(strcmp(str2,str1)>0)if(strcmp(str1,str2)>0) 以下正确的函数说明是__18float fun(int a; int bdouble fun( int fun(int a, bint fun(char a[][] 以下程序的运行结果是_19main(){ int a=1, i; for (i=0; i<3; i++) printf(%d, f1(a)); getch(); } f1(int x){ static int y=0,z=3; y++; z++; return(x+y+z); } 468 681 6766以下程序的运行结果是_20main(){ int x=6,y=5; if(x>y) x=y,y=x; else x++,y++; printf(%d,%d,x,y); getch(); } 7,6,5,5,A. 下笔如有神读书破万卷

全国计算机等级考试二级C语言考点(完整版)

C语言二级考点(完整版) 第一章…… C语言基础知识 第二章……顺序结构 第三章……选择结构 第四章. ……循环结构 第五章……函数 第六章……指针 第七章……数组与指针 第八章……数组与函数 第九章……字符串 第十章……结构体与共用体 第十一章……文件 第一章C语言基础知识 考点1. C语言程序的结构认识 本节通过一个简单的c程序例子,介绍c语言的基本构成、格式、以及良好的书写风格,使读者对c语言有个初步认识。 例1 计算两个整数之和的c程序: #include main() { int a,b,sum; /*定义变量a,b,sum为整型变量*/ a=20; /*把整数20赋值给整型变量a*/ b=15; /*把整数15赋值给整型变量b*/ sum=a+b; /*把两个数之和赋值给整型变量sum*/ printf("a=%d,b=%d,sum=%d\n",a,b,sum); /*把计算结果输出到显示屏上*/ } 重点说明: 1、任何一个c语言程序都必须包括以下格式: main() { } 这是c语言的基本结构,任何一个程序都必须包含这个机构。括号内可以不写任何内容,那么该程序将不执行任何结果。 2、main()----在c语言中称之为“主函数”,一个c程序有且仅有一个main函数,任何一个c程序总是从main函数开始执行,main函数后面的一对圆括号不能省略。 3、被大括号{ }括起来的内容称为main函数的函数体,这部分内容就是计算机要执行的内容。 4、在{ }里面每一句话后面都有一个分号(;),在c语言中,我们把以一个分号结尾的一句话叫做一个c语言的语句,分号是语句结束的标志。 5、printf(“a=%d,b=%d,sum=%d\n”,a,b,sum); ----通过执行这条c语言系统提供给我们直接使用的屏幕输出函数,用户即可看到运行结果,本程序运行后,将在显示器上显示如下结果: a=20,b=15,sum=35 6、#include 注意:(1)以#号开头(2)不以分号结尾

二级C语言上机编程题答题技巧

二级C语言上机编程题技巧 一、技巧的原理 首先使用这个技巧必须了解上机编程题的评分原理。以上机题的第5套编程题为例。二级C语言的上机试题是让我们自己编写某个小程序的子程序来实现题目中的功能。那么考官是怎么样来检查我们编的程序是否正确呢?根据编程题下面这段程序我们就可以看出: 在考生文件夹下存在一个名为in.dat的文件。首先以只读的方式打开in.dat文件,以只写方式打开out.dat文件,若out.dat不存在则自动新建该文件。然后使用fscanf 语句将其中的数据输入到变量a中,再将a当作实参调用我们需要编写的程序。将结果用fprintf语句输入到out.dat文件中。其中.dat为这个文件的扩展名(扩展名有可能被隐藏)。

所以考官不会直接检查我们的程序,只要检查out.dat里的数据是否正确就可以判断我们编的子程序是否正确。因此程序编写题,我们可以只通过修改out.dat里面的答案而不去编写程序就可以拿到满分。 二、使用技巧的条件 当然不是所有的编程题我们都能使用这个技巧的(不过90%的编程题都可以用这个方法)。使用这个技巧必须具备两个条件: 1、编程题是通过我上面讲的方法来检验,说白了就是我们的考生文件夹下面 含有in.dat文件。 2、编程题需要实现的功能我们编程者可以自己想出来程序完成的答案。例如 本题:

它让我们实现实型数据保留两位小数,并对第三位进行四舍五入。那么这个功能我们若知道任一个实数都可以自己计算出结果,那么我们才能将正确答案写在out.dat文件里面。若某程序让你编写子程序实现求取圆周率并精确到小数点后10位这个功能,那么我们就无法背出那么长的数字,因此也没有办法知道结果。那么这种技巧就不能使用。 三、步骤 确定了这个技巧可以使用后,我们就可以开始操作了。一般分为以下几步: 1、建立out.dat文件 上面可以看到我们的考生文件夹中是没有out.dat这个文件的。所以我们需要自己新建。最好的方法就是打开编程题直接编译、链接、执行。这样将程序执行一遍后我们的考生文件夹里就自动生成了我们需要的out.dat文件。(注意:这里生成了out.dat 文件后就不要再运行我们的程序了,因为每运行一次程序就会将程序生成的答案写入out.dat文件中,这样即算我们改成了正确答案,你如果再次运行程序,就会将我们修改的正确结果覆盖掉。) 2、修改答案

2013年下C语言程序设计考试试卷

学院:班级:学号:姓名: 答案一律写在答题纸上,写在试题卷上无效 一、选择题(每小题3分,计36分) 1.以下选项中,不属于C语言结构化程序设计三种基本结构的是_______。 A)选择结构B)顺序结构 C)递归结构D)循环结构 2.已知:char a='\70';,则变量a________。 A)包含1个字符B)包含2个字符 C)包含3个字符D)说明非法 3.已知:float x=2,y;,则表达式y=x+3/2的值是________。 A)3.5 B)3.0 C)2.0 D)1.0 4.C语言中,运算对象必须是整型数值的运算符是________。 A)% B)/ C)< D) ! 5.以下选项中,能正确表示逻辑关系:“a≥10 或a≤0”的C语言表达式是______。 A﹚a>=0||a<=10 B﹚a≥10||a≤0 C﹚a>=10 && a<=0 D﹚a>=10||a<=0 6.已知:int a=5;,执行语句a=3*5,a*4,a+5;后,变量a的值是_________。 A)45 B)20 C)15 D)10 7.当说明一个结构体变量时系统分配给它的内存是( ) A)各成员所需内存量的总和B)结构中第一个成员所需内存量 C)成员中占内存量最大者所需的容量D)结构中最后一个成员所需内存量 8.已知:float x;int y;,用语句scanf("%f,%d",&x,&y);输入变量x,y的值,正确的输入是_________。 A)1.25,2 B)1.25 2 C)1.25:2 D)1.25;2 9.已知:int x=0,y=10;while(x

全国计算机二级考试C语言(最全复习资料)

二级公共基础知识作为必考内容出现,出题形式为选择题前10道,占考试总分的10%。 考试其它比重: 1、C语言程序的结构占总分1% 2、数据类型及其运算占总分4% 3、选择结构程序设计占比分的3% 4、循环结构占比分的5% 5、数组的定义和引用占比分的5% 6、函数占比分的5% 7、编译预处理占比分1% 8、指针占比分的5% 9、结构体占比分的3% 10、位运算占比分的2% 11、文件操作占比分的2% 考试方式 上机考试,时长120分钟 单选题40分(含公共基础10分),操作题60分(包括程序填空题、程序修改题、程序设计题) 第一部分 C语言知识复习资料 第一章C语言基本知识(90分) 【考点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)标识符只能由字母、数字和下划线组成,字母区分大小写。 (2)标识符的第一个字符必须是字母或下划线,不能为数字。 C语言标识符分如下3类 (1)关键字。它们在程序中有固定的含义,不能另作他用。如int、for、switch等。 (2)预定义标识符。预先定义并具有特定含义的标识符。如define、include等。 (3)用户标识符。用户根据需要定义的标识符,符合命名规则且不与关键字相同。 【考点7】常量与变量 常量是指在程序运行过程中,其值不能改变的量。常量分为整型常量、实型常量、字符常量、字符串常量、符号常量5种。在程序运行过程中其值可以改变的量称为变量。C语言中没有字符串变量。存放字符串使用字符数组。 【考点8】整型数据 整型常量有十进制、八进制、十六进制三种表示形式,没有二进制形式。八进制整型常量加前导数字0,十六进制常量加前导0X,八进制常量中不会出现8。 整型变量可分为基本整型(int)、短整型(short)、长整型(long)、和无符号整型(unsigned)。一个基本整型占4个字节。其它类型的整型占用字节数和取值范围详见教材第9页。 【考点9】实型数据 实型数据有两种表示形式:小数形式和指数形式。掌握判定指数形式合法性。 口诀:E前E后必有数,E后必须为整数。 实型变量分为单精度型(float)和双精度型(double),单精度型占四个字节。 【考点10】算术运算 算术运算符一共有+、—、*、/、%这五个。求余运算要求运算对象只能为整型,除法运算符两边运算对象都为整型时,运算结果也为整型即舍掉小数部分。 【考点11】强制类型转换 将一个运算对象转换成指定类型,格式为(类型名)表达式,注意小括号位置。 【考点12】赋值 赋值运算符为“=”,不同于关系等于“= =”。赋值表达式格式为:变量名=表达式,赋值运算符左边必须为变量,赋值运算是把赋值运算符右边表达式的值赋给左边变量。

计算机二级C语言上机题库复习小抄(最新校正,精美排版)

计算机二级C语言上机题库复习小抄 (最新校正,精美排版) 第一套 1.程序填空 程序通过定义学生结构体数组,存储了若干个学生的学号、姓名和三门课的成绩。函数fun 的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大排序)。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 第一处struct student t; 第二处for(i=0;i0) 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=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返回这些数的个数。 void fun(int m,int *a,int *n) { int i; *n=0; for(i=7;i<=m;i++) if((i%7==0)||(i%11==0)) a[(*n)++]=i; } 第三套 1. 程序填空 函数fun的功能是:逆置数组元素是的值。例如:若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则逆置后依次为:9、8、7、6、5、4、3、2、1。形参n给出数组中数组中数据的个数。 第一处for(i=0;idata==ch)return n; 第三处k=fun(head,ch); 2. 程序修改 给定程序MODI1.C中函数fun的功能是:删除p所指字符串的所有空白字符(包括制表符、回车符及换行符)。输入字符串时用‘#’结束输入。 /**found**/ for(i=0,t=0;p[i];i++) /**found**/ c[t]=?\0?; 3. 程序设计 请编写一个函数fun,将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。 void fun(char *ss) { int i; for(i=1;i=?a?&&ss[i]<=?z?) ss[i]-=32; } } 第五套 1. 程序填空 给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。例如:当形参n的值为10 的时,函数返回:9.6125588。 第一处s=0; 第二处for(i=1;i<=n;i++) 第三处s=s+(2.0*i-1)*(2.0*i+1)/(t*t); 2. 程序修改 给定程序MODI1.C中函数fun的功能是:统计substr所指字符串在str所指字符串中出现伯次数。 /**found**/ for(i=0;str[i];i++) /**found**/ if(substr[k+1]==?\0?) 3. 程序设计 请编写一个函数fun,它的功能是:根据以下公式求JI的值(要求满足精度0.0005,即某项小于0.0005时停止送代):程序运行后,如果输入精度为0.0005,则程序输出为 3.14…。 double fun(double eps) { double s=1,t=1./3; int n=1; while(t>=eps) {s+=t;n++;t=t*n/(2.0*n+1) ;} return(s*2.0); } 第六套 1. 程序填空 给定程序中,函数fun的功能是:将形参s所指定字符串中所有的字母字符顺序前移,其他字母顺序后移,处理后字符串的首地址作为函数值返回。 第一处t[j]=s[i];j++; 第二处for(i=0;iscore[i]+=1; 第三处return a; 2. 程序修改 给定程序MODI1.C中函数fun的功能是:从N个字符串中找出最长的那个串,并将其地址作为函数值返回。各字符串在主函数中输入,并放在一个字符串数组中。 /**found**/ char *fun(char (*sq)[M]) /**found**/ return sp; 1

相关主题
文本预览
相关文档 最新文档