计算机二级c语言试题

2024-08-04

计算机二级c语言试题(通用11篇)

篇1:计算机二级c语言试题

单项选择题,40 题,40 分(含公共基础知识部分 10 分);

程序填空题,3 小空,18 分;

程序改错题,2 个错误,18 分;

程序设计题,24 分。

篇2:计算机二级c语言试题

用win7系统用什么练习编写c语言?

答:windows上就用微软的Visual Studio挺好的。

主页君专攻c语言?

答:不是,基本是工作项目中需要什么就学什么,但业余时间练练算法时还是习惯用c来写。

主页君,我想做网页,能告诉我从哪几个角度入手吗?

答:纯网页的话,最基本的html+css布局,javascript做交互脚本,如果是整个网站,还要做后端,php/python/java都可以,数据库mysql。

主页君,不知你会看见我的留言吗?一直想问你身边女编程人员多吗?

答:大家的留言我都能看见。女编程人员,这个名字好怪,还是叫做软件开发工程师妹子吧,就我呆过的一些环境来看,比例很低,差不多1/5。

我要看数据结构与算法。

答:今后会考虑做这个方向,但确实要花时间,敬请期待。

你要是在优酷上做视频就好了。

答:感谢支持,我不是大牛,纯业余时间跟大家交流,确实拿不出来时间跟精力做视频,不好意思了。

最后还是把昨天的答案放上来,也算有始有终

CABBD

(12)以下选项中,能用作用户标识符的是

A)void

B)8_8

C)_0_

D)unsigned

答案:C,void和unsigned都是保留字,变量名不能以数字开头,故8_8也不行

(13)阅读以下程序

#include

main

{ int case; float printF;

printf(“请输入2个数:”);

scanf(“%d %f”,&case,&pjrintF);

printf(“%d %fn”,case,printF);

}

该程序编译时产生错误,其出错原因是

A)定义语句出错,case是关键字,不能用作用户自定义标识符

B)定义语句出错,printF不能用作用户自定义标识符

C)定义语句无错,scanf不能作为输入函数使用

D)定义语句无错,printf不能输出case的值

答案:A,原因答案里已经说了,这题没啥意思,实际工程中用不到,纯概念。

(14)表达式:(int)((double)9/2)-(9)%2的值是

A)0

B)3

C)4

D)5

答案:B,(double)9/2是4.5,(int)((double)9/2)是4,(9)%2是1,两者之差是3。

(15)若有定义语句:int x=10;,则表达式x-=x+x的值为

A)-20

B)-10

C)0

D)10

答案:B,原表达式等于 x= x - (x+x)= 10 - (10 + 10) = -10。

(16)有以下程序

#include

main()

{ int a=1,b=0;

printf(“%d,”,b=a+b);

printf(“%dn”,a=2*b);

}

程序运行后的输出结果是

A)0,0

B)1,0

C)3,2

D)1,2

篇3:计算机二级c语言试题

二级C语言考试由笔试和上机两部分。笔试考察的是应试者对基础知识和基本理论的掌握情况,而上机考试主要测试的是应试者的逻辑思维能力和运用C语言的能力,一般包括3种题型:填空题、改错题、编程题。该文对考试题库中编程题作出归纳,总结,希望对应试者有所帮助。

1 上机编程题的知识点

上机考试的知识点大概可以有5个,分别是:基本运算、循环、数组、字符串、结构体。以下对这5个知识点分别举例说明。

1.1 基本运算

例如有以下编程题:

编写函数fun,它的功能是:将两个两位正整数a, b中个位数和十位数合并成一个新的整数放在c中。合并的方式是:将a中的十位和个位依次放在变量c的百位和个位上,b中的十位和个位依次放在变量c的十位和千位上。

例如:当a=45, b=12。调用函数后c=2415。

注意:部分源程序存在文件PROG1.C中,数据文件IN.DAT中的数据不得修改。请勿改动主函数main () 和其他函数中的任何内容,仅在函数fun的花括号中填写编写的如干语句。

程序如下:

分析:这类基础题主要是考察应试者对基本运算的掌握。针对这个题关键是把这两个数的个位和十位求出来,然后再重新组合成一个新数。表示两位数a的个位数的方法是:a对10取余,即a%10;表示两位数a的十位数的方法是:a先除10后在对10取余,即a/10%10。

本题的答案为:c=b%10*1000+a/10*100+b/10*10+a%10;

1.2 循环

循环中最主要的应用就是迭代和遍历。迭代一般是用来解决累加、累乘的问题,可用for语句来实现。

例如有以下编程题:

编写函数fun,它的功能是计算并输出以下多项式的值:

例如:当在主函数中从键盘给n输入5,则输出为:s=-0.28333。

注意:要求n的值大于1但不大于100。部分源程序存在文件PROG1.C中,数据文件IN.DAT中的数据不得修改。请勿改动主函数main () 和其他函数中的任何内容,仅在函数fun的花括号中填写编写的如干语句。

程序如下:

分析:这类题主要是考察应试者对迭代的掌握。关键是找出迭代公式、变量的起始值和最大值。本题中表达式的每一项是都是一个分数,分子都是1,分母初始值是2,最大值是n, 而且每项增1,所以可设一整型变量i, 用for语句实现:for (i=2;i<=n;i++) 。表达式的值用变量s表示,s的初始值为1,每一项之间用减号连接,所以迭代公式,也就是循环语句可表示为s=s-1/i。除此以外,还应注意两点1。变量s的类型,因为表达式的值是实数,所以变量s应定义为double。2.注意基本算术运算中,两整数相除结果为整数,而题目中每一项要得到的结果为实数,所以应用算术运算中数据类型的转换将s=s-1/i改为s=s-1.0/i。

本题的答案为:

1.3 数组

数组可以分为一维数组和二维数组。

1.3.1 一维数组

编写函数fun, 它的功能是:找出一位整型数组中元素的最大值和它所在的下标,最大值和下标通过形参传回。数组元素中的值已在主函数中赋予。

主函数中的x是数组名,n是x中的数据个数,max存放最大值,index存放最大值的下标。

程序如下:

分析:这类题是遍历在数组中的应用。要找出数组中的最大值,必须对数组中每一个元素查找一遍,同时要进行比较。编程思想:可设一变量max, 假设数组中的第一个元素a[0]是最大的,然后后面的元素依次和max进行比较,只要比当前max的值大,就把它放在max中。

本题的答案为:

1.3.2 二维数组

编写程序,实现矩阵的转置。

例如:输入下面的矩阵:

分析:这类题是关键是解决两个问题:1.怎样对二维数组元素的遍历。2.怎样完成矩阵的转置法。因为二维数组元素表示要用到两个下标即行标和列标,所以遍历数组元素用到两层循环。矩阵的转置就是对应行和变成对应列,换句话说就是关于主对角线的对应元素交换。

本题的答案为:

1.4 字符串

例如有以下编程题:

规定函数中只包含字母和*。请编写函数fun, 它的功能是:删除字符串中的所有*。在编写函数时,不得使用字符串函数。

例如:字符串中的内容为:****A*BC*DEF*G*****,删除后,字符串中的内容为:ABCDEFG。

分析:这类题要对字符串中所有字符遍历,把不是*的字符保留下来。本题要解决两个问题:1.怎样判断字符串结束。2.怎样把不是*的字符放在原来的字符串中。字符串都是以’�’作为结束标志,可以把字符串中元素是不是’�’作为判断字符串结束的依据。可设一变量j作为字符串的新下标,初始值为0,只要原字符串中的元素不是’�’, j就加1,特别注意要在最后加上’�’最为字符串结束标志。

本题的答案为:

1.5 结构体

例如有以下编程题:

学生的记录是有学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun, 它的功能是:把分数最低的学生数据放在数组b中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数。

程序如下:

分析:这类问题其实编程思想和前面的没有太大的差别,主要考察的是对结构体成员的引用,其引用形式为:结构体变量名.成员名。

本题的答案为:

2 结论

本文只是对计算机等级考试二级C语言的上机题作了简单的分析和总结,仅过分析可以看出,考察的知识点总共有5个,但是基本上都是循环的两方面的应用:迭代、遍历。

参考文献

[1]未来教育与教学研究中心.全国计算机等级考试二级C语言上机考试题库[M].北京:金版电子出版社, 2007.

篇4:计算机二级c语言试题

2008年下半年二级C语言程序设计的全国报考人数为50.99万人,笔试试卷的整卷难度为0.57,整卷的信度达到了0.89。本次考试二级C全国取证率为32.3%。全卷的难度适中,信度较好。现就将本次考试中的部分难题做简要分析,以帮助考生复习备考,取得满意的成绩。

选择题第32题:

有以下程序

#include

void fun( int a, int b )

{intt;

t=a; a=b; b=t;

}

main()

{intc[10]={1,2,3,4,5,6,7,8,9,0}, i;

for (i=0; i<10; i+=2)fun(c[i], c[i+1]);

for (i=0;i<10; i++)printf("%d,", c[i]);

printf("n");

}

程序运行后的输出结果是

A)1,2,3,4,5,6,7,8,9,0,

B)2,1,4,3,6,5,8,7,0,9,

C)0,9,8,7,6,5,4,3,2,1,

D)0,1,2,3,4,5,6,7,8,9,

【答案】A

【分析】

(1)该题考生答对率只有29.6%,59.1%的考生选择了错误项B。

(2)这是一道典型的调用函数与被调用函数之间数据传递的问题。在调用函数时,实参的值将传送给对应的形参,但形参的变化不会影响对应的实参。教材例7.3(P.82)深刻地说明了这个过程。估计很多考生知道这一点,但理解不够深刻,故一旦试题更换格式,就会出错。

(3)这道题区分度较高,达到0.347,说明是一道好题。

选择题第40题:

有以下程序

#include

main()

{ FILE *pf;

char *s1="China", *s2="Beijing";

pf=fopen("abc.dat","wb+");

fwrite(s2,7,1,pf);

rewind(pf); /*文件位置指针回到文件开头*/

fwrite(s1,5,1,pf);

fclose(pf);

}

以上程序执行后abc.dat文件的内容是

A)ChinaB)Chinang

C)ChinaBeijingD)BeijingChina

【答案】B

【分析】

(1)只有28.5%的考生答对,有37.9%的考生选择了D。属于本套试卷里最难的选择题。

(2)在文件使用方式上,本题使用的是“wb+”,意思是为写建立一个新的二进制文件,并在读和写过程中,可以由位置函数设置读和写的起始位置。为降低试题难度,本题特地在语句rewind(pf);后面有注解提示:文件位置指针回到文件开头。因此,在写入字符串“Beijing”后,文件指针回到文件头,再写入“China”,文件的内容就成为“Chinang”,正确答案是B。

(3)该题区分度0.375,属好题。

填空题第8题:

以下程序的输出结果是___。

#include

main()

{int i,j,sum;

for(i=3;i>=1;i--)

{sum=0;

for(j=1;j<=i;j++)sum+=i*j;

}

printf("%dn",sum);

}

【答案】1

【分析】

(1)本题只有19.2%的考生答对。

(2)该题考核考生做题时的细心。在第一个for循环体中,由于每次循环都将sum置0,因此,影响sum值的因素就只与最后一次循环语句相关,此时,i为0,j为1,sum只能是1了。

(3)这道题本身不难,如果考生能够仔细阅题,掌握关键点,就不会出错了。

填空第9题:

以下程序的输出结果是___。

# include

main()

{ intj, a[]={1,3,5,7,9,11,13,15}, *p=a+5;

for(j=3;j;j--)

{switch ( j )

{ case1:

case2:printf("%d", *p++);break;

case3:printf("%d", *(--p));

}

}

}

【答案】9911

【分析】

(1)本题只有16.3%的考生答对,是难题。

(2)该题主要考核考生三个方面的知识,一是选择结构switch语句,一个是自加减运算,另一个是指针。j=3时,执行printf("%d", *(--p));语句,结果是输出9;j=2时,执行printf("%d", *p++); break; 结果是输出9,这是答对本体的关键!*p++指的是使*p作为表达式的值,然后使指针变量p本身增1;j=1时,执行空语句后,继续执行case2语句,此时输出11。所以本题的答案是9911。

篇5:计算机二级c语言试题及答案

1、请编写函数fun,其功能使:将两个两位正整数a b合并形成一个整数放在c中。合并的.方式使:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的千位和十位上。

答案:

void fun(int a,int b,long *c)

{*c=(b/10)*1000+(a/10)*100+(b%10)*10+a%10;}

2、请编写一个函数fun,它的功能使:计算n门课程的平均分,计算结果作为函数值返回。

答案:

float fun(float *a,int n)

{float ave=0.0;

int i;

for(i=0;i

ave+=a;

ave/=n;

return ave;}

3、假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能使:将字符串尾部的*号全部删除,前面和中间的*号不删除。

答案:

void fun(char *a)

{int i=0;

char *p,*q;

p=q=a;

while(*p)

p++;

p--;

while(*p==‘*’)

p--;

while(q<=p)

{a=*q;

i++;

q++;}

a=‘’;}

4、n名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:求出平均分,由函数值返回。

答案:

double fun(strec *h)

{double aver=0.0;

while(h!=null)

{aver+=h->s;

hy=h->next;}

aver/=n;

return aver;}

5、请编写函数fun,计算并输出给定10个数的方差。

答案:

double fun(double x[10])

{int i,j;

double s=0.0,s1=0.0;

for(i=0;i<10;i++)

s1+=x;

s1/=10;

for(j=0;j<10;j++)

s+=(x[j]-s1)*(x[j]-s1);

s/=10;

s=pow(s,0.5);

篇6:计算机二级C语言考试试题及答案

1.(A)是构成C语言程序的基本单位。

A、函数

B、过程

C、子程序

D、子例程

2.C语言程序从(C)开始执行。

A、程序中第一条可执行语句

B、程序中第一个函数

C、程序中的main函数

D、包含文件中的第一个函数

3、以下说法中正确的是(C)。

A、C语言程序总是从第一个定义的函数开始执行

B、在C语言程序中,要调用的函数必须在main()函数中定义

C、C语言程序总是从main()函数开始执行

D、C语言程序中的main()函数必须放在程序的开始部分

4.下列关于C语言的说法错误的是(B)。

A、C程序的工作过程是编辑、编译、连接、运行

B、C语言不区分大小写。

C、C程序的三种基本结构是顺序、选择、循环

D、C程序从main函数开始执行

5.下列正确的标识符是(C)。

A、-a

1B、a[i]

C、a2_i

D、int t

5-8题为相同类型题

考点:标识符的命名规则

只能由字母、数字、下划线构成数字不能作为标识符的开头

关键字不能作为标识符

选项A中的“-”,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)

6.下列C语言用户标识符中合法的是(B)。

A、3ax

B、x

C、case

D、-e2 E)union

选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);

7.下列四组选项中,正确的C语言标识符是(C)。

A、%x

B、a+b

C、a12

3D、12

3选项A中的“%”,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)

8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。

A、print _3d db8 aBc

B、Iam one_half start$it 3pai

C、str_1 Cpp pow while

D、Pxq My->book line# His.age

选项B中的“”,”$”,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)

9.C语言中的简单数据类型包括(D)。

A、整型、实型、逻辑型

B、整型、实型、逻辑型、字符型

C、整型、字符型、逻辑型

D、整型、实型、字符型

10.在C语言程序中,表达式5%2的结果是 C。

A、2.5B、2C、1D、3%为求余运算符,该运算符只能对整型数据进行运算。且符号与被模数相同。5%2=1;5%(-2)=1;(-5)%2=-1;(-5)%(-2)=-1;

/为求商运算符,该运算符能够对整型、字符、浮点等类型的数据进行运算,5/2=2

篇7:计算机二级c语言试题

C语言的非数值处理功能很强,因此它被广泛地应用于数据库管理系统和应用软件。大多数的关系数据库管理系统,如dBASE,Fox$ASE,ORACLE等,都是由C语言编写的。各种不同部门的应用软件也大都是用G语言开发的,C语言在开发数据库应用软件方面应用很广,深受开发者的欢迎。

2.图形图像来统的应用程序方面

C语言在图形图像的开发中也有着广泛的市场。很多图形图像系统,如AutoCAD通用图形系统等,就是使用C语言开发的,并且在这些图形系统中可以直接使用C语言编程,实现某些功能。C语言编译系统带有许多绘图功能的函数,利用这些函数开发图形应用软件十分方便。所开发的应用程序常用C语言编写接口界面,这样既方便又灵活,效果很好。这是因为该语言提供有图形处理功能,便于实现图形图像的各种操作。因此,C语言在图形图像的应用方面很好地发挥了它的作用。

3.编写与设备的接。程序方面

C语言不仅在建立友好界面方面有着广泛应用,如下拉式菜单、弹出菜单、多窗口技术等;而且在编写与设备的接口程序方面也有着广泛应用。这是因为C语言不仅具有高级语言的特性还具有低级语言的功能,因此,在编写接口程序方面十分方便,有时它与汇编语言一起使用,会显示出更高的效率。

4.数据结构方面

由于C语言提供了十分丰富的数据类型,不仅有基本数据类型还有构造的数据类型,如数组、结构和联合等,把它们用于较复杂的数据结构〔例如,链表、队列、伐、树等)中显得十分方便,这方面已有许多成熟的例程供选择使用。

5.排序和检索方面

排序和检索是数据处理中最常遇到并较为复杂的间题。使用C语言来编写排序和检索各种算法的程序既方便又简洁。特别是有些排序算法采用了递归方法进行编程,更显得清晰明了。因此、人们喜欢使用G语言来编写这方面的程序。

上述列举了五个方面的应用,但绝不是说C语言的应用仅限如此,而是说在这几个方面目前使用得更多些。C,语言可以说在各个领域中都可以倪用,并且都会有较好的效果。所以,C语言是当前被用于编程的最广泛的语言之一。

另外,C语言是一种结构化程序设计语言,在编写大型程序中也很方便,特别是该语言又提供了预处理功能,其中文件包含在多人同时开发一个大程序时将带来减少重复和提高效率等好处,因此,越来越多的人喜欢用C语言来开发大型程序。

1.计算机二级C语言程序设计考点:C语言的特点

2.计算机二级C语言程序设计考点解析:C语言程序实例

3.计算机二级C语言程序设计考点:指针

4.计算机二级C语言程序设计考点:数组

5.计算机二级C语言程序设计考点:函数

6.计算机二级C语言考点:字符型数据

7.计算机二级c语言试题

8.计算机二级C语言程序设计考点解析:常用的输人函数

9.计算机二级C语言程序设计考点:单词及词法规则

篇8:计算机二级c语言试题

1 全国计算机等级考试简介

1.1 NCRE的等级分类

计算机等级考试共有一二三四级。考生可以任意选择考试等级,每年考三次,考试时间为3月份、9月份、12月份,报考时间一般在考试前的一至两个月。

1.2 NCRE各级考试内容

一级有三科,分别是:Office,一级B,一级WPS。更多的人考的是一级MS Office,考Word、Excel、PPT的人居多。二级有七科,分别是:C语言、C++、VB、VF、Access、Java、Delphi等,任选其一进行考试即可。现在高校开设的编程语言几乎全部为C语言,所以二级考C语言的人最多,占到一半以上。三级有四科,分别是:网络技术、信息技术、数据库技术、PC技术。四级有三科,分别是:数据库工程师、网络工程师、软件测试工程师。

1.3 NCRE等级证书

考试成绩分为四个等级:60分以下不及格;60分到80分之间是及格;80分到90分之间是良好;90分以上是优秀。考试分数60分以上就算及格,颁发合格证书;分数超过90分颁发优秀证书。

2 二级C语言命题原则和考试要求

2.1 命题原则

大纲规定C语言考试由“公共基础”+“C语言程序设计”两大部分,重点考查对基础知识的掌握,主要考查对基本理论、基础知识点、基础编程及决实际问题的能力。

2.2 考试要求

按照命题原则,考试大纲对应试也提出了要求。主要有以下两个方面:强调基本概念、基本理论、基本知识点的掌握;强调利用C语言编写程序解决实际问题的能力。因此,要想通过考试,既要熟练掌握C语言的基本理论,还要学会实际编程能力,分析问题和解决问题的能力。

3 复习方法

3.1 掌握好基础知识

C语言考试的重点是基础知识的掌握、编程能力,所以,要求对基础知识点的掌握要非常熟练。因此,正确理解、熟记概念是前提。可以通过以下三方面来打好基础:

(1)“比较总结”学习法。对一些复杂知识点,通过比较和总结来理解、记忆。(2)对一些容易混淆的概念理解要准确。一定要准确地掌握它们之间在操作步骤和实现功能上的细微区别。(3)联想记忆各知识点。C语言考点之间是相互联系的,要学会一个考点联想到与之相关的考点。

3.2 做题要有针对性

二级C语言考试的题目很多,搞题海战是不行的,应根据考试大纲适当地做一些往年考过的习题,特别是历年真题。了解历年真题题型使我们较快地掌握考试题型,从而既节省时间,又能达到较好的学习效果。

4 答题策略和应试技巧

4.1 加强上机实践

笔试中程序设计类的题目最佳方法是上机操作,验证自己的解题思路和做题结果。通过上机实践,可以发现错误和纠正解题思路,加深我们的记忆。

4.2 选择题应试技巧

选择题共40题40分。选择题主要是对基本知识和基本操作进行考查,它主要是考查对相关概念掌握是否全面、理解是否准确、思路是否清晰、运用是否灵活。

选择题难度不同,我们根据难易程度,先做简单一些的题目然后做复杂一点的题目,这样能够增加考生信心、提高得分率,所以可以考虑以下做题顺序:先做公共基础题,即选择题的前10题;接下来完成C语言的基础题,即选择题的11至20题,这部分题目主要考查一些基本概念,如常量、运算符、表达式、标识符、数据类型、三种控制结构的应用、输入输出格式等;再接着完成选择题21至40题,这20个选择题前10个比较简单,后10个较难,这20题主要考查C语言的综合应用,题目都会给出一段代码,根据代码做选择,这就要求读懂程序,在理解的基础上认真作答,由于前10题比较简单,所以必须保证前10题的正确率。

4.3 填空、改错题应试技巧

填空、改错题着重考察综合运用基础知识和程序读写能力。填空、改错题综合性强、难度较大。从以往的考试结果来看,考生在程序填空和改错题上失分较多。下面研究一下填空、改错题的解题方法和步骤。

(1)填空题的特点和注意事项

在程序中会给出填空的地方,比如ay[j]=1。

解题思路:先读程序,理解程序的功能和算法,然后边填空边运行,最后,分析运行结果找到正确的答案。程序填空题的特点和注意事项:(1)填空题通常有两个空需要填写。(2)试题中用"found注释"提示在下一行或下两行需要填空。(3)程序填空题重点考查对程序的整体理解,考点经常是函数参数、返回值、for语句的初值、条件判断、变量数据类型、指针移动、文件函数、if条件等。(4)填空的位置处要求填写语句、表达式等,但是不能增行、删行,也不能改变程序行原有的结构。

填空题一般按照以下五步进行:(1)审题,了解试题要求,注意输入和输出例示,以便检验运行的结果。(2)注意"found注释"所在的函数,根据题意理解程序编写时所采用的算法。(3)填好空后首先检查语法错误。(4)按照试题的示例给出的数据进行测试,若测试的结果与给出的输出结果相同,该题就基本答对了,为了确保正确,最好再输入其他数据验证;多次验证的结果与给出的结果不同,应再去检查逻辑错误。(5)修改完成,得到正确结果后,一定要保存好最终程序,并注意路径和文件名不要修改。

(2)改错题的特点和注意事项

(1)改错题中通常包含两个错误需要修改。(2)试题中用"found注释"来提示在下一行附近有错。(3)错误的性质有语法错、逻辑错两种。(4)只能在出错的行上进行修改,不能改动程序行的顺序,不能另行编写程序。

解题思路:一边调试一边找错,分析运行结果,有错则改正。改错题按以下六步进行:(1)审题,了解试题要求和输入和输出结果。(2)审视"found注释"处的函数,根据题意理解采用的算法。(3)检查语法错误。当编译有语法错时,按照提示来查找并改正错误。(4)运行程序,对照示例数据,如果验证的结果与给出的结果相同,该题就答对了;若不同再检查逻辑错误。(5)程序有逻辑错误时,先理解题意、再读算法。(6)得到正确结果后,一定要保存好程序,并注意路径和文件名不要修改。

4.4 编程题应试技巧

二级C语言程序设计考试中有一个编程应用题。主要考查学生对语法、算法和编程能力的掌握。

编程题答题步骤有六步:(1)审题,了解题目要求,记下输入、输出例示,以便验证运行的结果。(2)对照形参,注意主函数中实参个数,以便确定函数中需要处理数据个数。(3)理解题目要求,掌握主函数中调用函数的方式,注意用return返回还是间接返回。(4)选择合理高效的算法,编写程序代码。(5)编译程序,直到没有错误。(6)运行程序,利用例示数据验证结果,直到结果无误即可。

5 结束语

总之,考试能否通过,不仅仅是掌握了考试方法和技巧。关键还是取决于对C语言基础知识掌握的是否扎实,运用的是否灵活,编程是否熟练。C语言是二级考试科目中考生最多的,但通过率却是最低的,原因主要是考生动手编写的程序较少,对基础知识的掌握不好,动手编写的程序较少,还有就是缺乏考试经验等原因。当然,具备了扎实的基础,能够灵活运用上述应试技巧,会使考试得心应手,通过率一定会有大幅度的提高。

参考文献

篇9:计算机二级c语言试题

通过这样一个系统,学生可以随时随地进行C语言练习,巩固基础知识,强化专业素养;并且,系统可自动生成C语言试题,减轻教师工作量;在考试结束后,系统能够自动阅卷并评分,提高试题评测的准确性;综上所述,C语言试题生成系统将提高高校的办公效率和学生的专业素养。

关键词:C语言;自动组卷;在线评测;B/S

中图分类号:TP311.52 文献标识码:A 文章编号:1674-7712 (2014) 18-0180-01

一、国内外现状

国内外学者一直都热衷于试题生成系统的研究,试题生成系统主要包含两大主要模块:自动组卷模块和在线考试模块。自动组卷模块在长时间内一直有学者进行深入探讨,但至今并没有一个很好的算法方案。主要问题存在于采用经典的数学方法很难解决试卷生成过程中的收敛过程。目前的自动组卷模块根据其所使用的策略大致可以分成五类:基于随机抽取的自动组卷;基于深度与广度搜索算法的自动组卷;基于遗传算法的自动组卷;基于项目反应理论的自适应测试;基于数据挖掘和知识发现的自动组卷理论。而在线考试模块中,已经出现了ACM/ICPC的源代码在线评测系统,并且在实际应用当中效果显著,明显增加了阅卷人的效率。然而其要求运行环境苛刻,并且不具备通用性(只能应用于源代码的测试),所以并不能很好的应用于国内的科学教育工作当中。我国国内也自主开发了一些在线评测系统,如等级考试的机试测试部分,这就是一个很好的应用实例,每年有数千万的考生参加,也取得了显著的应用效果。然而由于其源代码的封闭性,致使其无法应用于其他高等院校。并且其系统当中也存在一定的效率问题。

二、系统概要设计

试题生成系统采用的是模块化的设计思想,不同的模块化对应不同的功能,而不同的用户对系统有不一样的功能需求。但总体来说本系统的功能需求主要包含包括几方面:(1)对用户的管理。用户在进入系统时,必须要注册用户,登录基本信息。在这项功能里,要实现对用户的有效管理,本系统的用户包括对学生、管理员、老师。在系统的数据库中队用户的基本信息进行记录管理。(2)对试题管理。系统在对试题管理的过程中,系统可以随机分组试题,自动合成试卷,或者通过手工调整、编辑试卷和打印试卷等。老师还可以添加试题,删除试题,修改试题,查询试题。系统会及时更新试题库,对试题库进行备份,同时对不同的试题内容和属性进行分类管理。(3)在线评测。学生在登录系统后,确认考试信息等内容,系统就会及时生成试题,考生就可以进行在线考试,不受地域的影响。而在选择套题的同时,系统会根据考生选择的套题,而列出考试范围的试题,给出每门课程合适的题型,而考生必须在规定的时间来完成。(4)成绩的管理。考生考试完成后,成绩将会保存在数据库中。而老师或者学生在考试完成后,通过任何一台联网的计算机上就可以通过网页方就可以查询学生的成绩。

总的来说,无论是学生考试还是教管理员对系统的管理还是老师对试题的添加修改,都能够随时随地通过网络完成对应的工作。

三、系統的功能模块

通过对系统的需求分析,明确了本系统需要包含题库管理、试卷管理、考试管理、成绩管理、学生管理、教师管理以及系统维护等七个模块。

四、核心模块详细设计

自动组卷模块是本系统设计的重中之重,其只需要教师进行简单的操作,便可根据教师设定的参数完成自动组卷,并且,在组卷之后还能够提示教师修正题目,对不适合的题目进行修改。在整个执行过程中,首先判定用户是否拥有操作权限,若没有操作权限则自动终止;若有操作权限,则要求用户输入试卷生成时用到的必要信息,如试卷难度、试卷类型等,以及各种类型题目的数量,然后根据上述信息构成Z(X),U(X)数组,使用随机选择法生成所要求的试题;在生成试题之后,询问用户是否需要进行修改,若需要进行修改,则根据输入的题目编号,修改对应的题目信息。如此往复直到节后,最后将相关信息分别存入试卷信息表和试题试卷对应表中。

五、结束语

系统的实现有效地提高了教学的管理,大大提高了工作效率。在系统的详细设计开发过程中,采用模块化的设计,采用当前比较流行的ASP技术,AJAX技术,基于B/S应用体系结构,让系统更加健壮和灵活,能够适应系统的不断变化和发展。一个良好的试题生成系统它所涉及的内容和知识面较多,由于时间和条件的限制,系统仍存在一定的问题,今后的研究着重从以下几个方面着手:(1)完善试题生成系统各模块的功能的实现。(2)更深入地完善试题生成的算法,让试题的调度更加合理科学。(3)更深入地学习考试数据的备份与恢复。(4)由于在本系统中主观题还需要老师亲自去修改,在以后的研究方向中需要进一步研究主观题的网上考试的自动打分。(5)在题库的建设问题上做更深入的研究。(6)进一步的做好系统的安全工作,防止黑客的入侵导致试题的泄露。(7)考试的监控系统,功能还有待完善,例如能够实现人脸识别等功能。

参考文献:

[1]谭浩强.C程序设计(第三版)[M].北京:清华大学出版社,2007:10-12.

[2]宋云娴,白鹏.智能教学系统设计与实现[M].北京:电子工业出版社,1995:60-90.

[3]师书恩.信息技术教学应用[M].北京:高等教育出版社,2004:19-35.

[4]郑玉.基于Web的计算机辅助教学系统[J].电子工程师,2001(02):15-17.

[5]深泉,胡宁静.数据库设计和自动组卷中的几个问题[J].湘潭大学自然科学学报,2002(03):27-31.

篇10:计算机二级C语言每日练习

1、一个教师讲授多门课程,一门课程由多个教师讲

授。则实体教师与课程关系 B

A) 1:m 联系

B) m: n 联系

C) m: 1联系

D) 1:1联系

2、结构化程序所要求的基本结构不包括 B

A) 重复(循环)结构 B) GOTO跳转

C) 选择(分支)结构 D) 顺序结构

3、下列叙述中正确的是 C

A) 在栈中,栈中元素随栈底指针与栈顶指针的变化而

动态变化

B) 在栈中,栈顶指针不变,栈中元素随栈底指针的变

化而动态变化

C) 在栈中,栈底指针不变,栈中的元素随栈顶指针的

变化而动态变化

4、定义无符号整数类为Uint,下面可以作为unit实例

化的值是 C

A) 0.369

B) 整数集合{1,2,3,4,5}

C) 369

D) -369

5、下面描述中错误的是(D)

A) 软件设计是将软件需求转换为软件表示的过程

B) PAD图是软件详细设计的表示工具

C) 数据结构与数据库设计是软件设计的任务之一

D) 系统总体结构图支持软件系统的详细设计

6、软件按功能可以分为应用软件、系统软件和支撑软件,下面的软件中是应用软件的是 C

A) 数据库管理系统

B) UNIX操作系统

C) 学生成绩管理系统

D) C语言编译程序

7、下列关于栈叙述正确的是 C

A) 栈顶元素最后才能被删除

B) 栈底元素永远不能被删除

C) 栈顶元素最先能被删除

8、软件生命周期中的活动不包括 A

A) 市场调研 B) 软件测试

C) 软件维护 D) 需求分析

9、下列叙述中正确的是 D

A) 有一个以上根结点的数据结构不一定是非线性结构

B) 双向链表是非线性结构

C) 循环链表是非线性结构

D) 只有一个根结点的数据结构不一定是线性结构

10、下列关于数据库设计中的叙述中,正确的是 A

A) 在需求分析阶段建立数据字典

B) 在物理设计阶段建立数据字典

C)在逻辑设计阶段建立数据字典

D) 在概念设计阶段建立数据字典

11、下列叙述中正确的是 D

A) 设计算法时只需要考虑结果的可靠性

B) B)算法就是程序

C) 设计算法时只需要考虑数据结构的设计

D) D)以上三种说法都不对

12、程序调试的任务是 A

A) 诊断和改正程序中的错误

B)设计测试用例

C) 验证程序的正确性

D) 发现程序中的错误

13、下列关于二叉树的叙述中,正确是 C

A) 叶子结点是度为2的结点数的两倍

B) 度为2的结点数是度为1的结点数的两倍

C) 叶子结点总是比度为2的结点多一个

D) 叶子结点总是比度为2的结点少一个

14、数据库系统的三级模式不包括 B

A) 概念模式 B) 数据模式 C) 内模式 D) 外模式

1.全国计算机二级c语言练习题

2.计算机二级C语言考试冲刺练习

3.2017计算机二级C语言选择题练习

4.计算机二级C语言练习题

5.计算机二级C语言模拟练习

6.计算机二级C语言基础练习题

7.计算机二级《C语言》基础练习题及答案

8.计算机二级c语言试题

9.计算机二级《C语言》基础练习题及答案

篇11:计算机二级C语言上机题型总结

(一)关于“******”问题

1、将字符串中的前导*号全部删除,中间和后面的*号不删除。void fun(char *a){ char *p=a;while(*p= =’*’)p++;for(;*p!=’’;p++,a++)*a=*p;*a=’’;}

2、只删中间* int i;for(i=0;a[i]= =’*’;i++)for(;h

3、只删尾* while(*a!=’’)a++;a--;while(*a= =’*’)a--;*(a+1)=’’;

4、只留前* int i , j=0;for(i=0;a=’*’;i++);j=i;for(;a;i++)if(a!=’*’)a[j++]=a[i];a[j]=’’;

5、只留中间* int i,j=0;for(i=h;i

6、只留尾* char *t=a;for(;t<=p;t++)if(*t!=’*’)*(a++)=*t;for(;t!=’’;t++)*(a++)=*t;*a=’’;

7、*个数>n个,删多余的*;*个数<=n个,不做任何处理。int i=0, k=0;char *p,*t;p=t=a;while(*t= =’*’){ k++;t++;} if(k>n){ while(*p){a[i]=*(p+k-n);i++;p++} a[i]=’’;}

(二)移动问题

1、若一维数组中有n个整数,要求把下标从p到n-1(p<=n-1)的元素平移到数组前面。int i,j,t;for(i=p;i<=n-1;i++){ t=w[n-1];for(j=n-2;j>=0;j--)w[j+1]=w[j];w[0]=t;}

2、把下标从0到p(p<=n-1)的元素平移到数组最后。int i,j,t;for(i=0;i<=p;i++){ t=w[0];for(j=1;j

3、把字符串str中的字符向前移动,原来第1个字符放串尾,结果仍保存在原串中。ch=str[0];for(i=0;str[i+1];i++)str[i]=str[i+1];str[i]=ch;

4、移动字符串中的内容,把第1到第m个字符平移到串后,把第m+1到后移到前。void fun(char *w, int m){ int i, j;char t;for(i=1,i<=m;i++){ t=w[0];for(j=1;w[j]!=’’;j++)w[j-1]=w[j];w[j-1]=t;} }

(三)排序法

1、冒泡法 for(i=1;ia[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=a[j];}

2、选择法

for(i=0;ia[j])p=j;if(p!=i)t=a[i];a[i]=a[p];a[p]=t;}

3、插入法 for(i=1;it&&j>=0;j--)a[j+1]=a[j];a[j+1]=t;}

(四)Fibonacci问题

1、求Fibonacci数列中小于t的最大的一个数,结果由函数返回。int fun(int t){ int a=1,b=1,c=0,i;do { c=a+b;a=b;b=c;}while(c

2、用递归算法计算数列中第n项的值。long fun(int g){ swich(g){ case 0:return 0;switch(g)case1:case2:return 1;} return(fun(g-1)+fun(g-2));}(五)素数问题

1、将大于整数m且紧靠m的k个非素数存入所指的数组中。void fun(int m,int k,int xx[]){ int i,j,n;for(i=m+1,n=0;n

2、小于或等于lim的所有素数放在aa数组中,该函数返回所求出的素数个数。int fun(int lim, int aa[MAX]){ int i,j,k=0;for(i=2;i<=lim;i++){ for(j=2;j=i)aa[k++]=i;} return k;}

3、将所有大于1小于整数m的非素数存入xx数组中,个数通过k传回。void fun(int m,int *k,int xx[]){ int i,j,n=0;for(i=4;i

{int i, j,t,n=0;for(i=2;i

(六)删除相同数 int fun(int a[],int n){ int i, j=1;for(i=1;i

{ int i,t,j=0;t=a[0];for(i=1;i

(七)统计字符个数,单词个数。

1、按‘0’到‘9’统计一个字符串中的奇数数字字符各自出现的次数,结果保存在数组num中。

void fun(char *tt, int num[]){ int i, j;int bb[10];char *p=tt;for(i=0;i<10;i++){ num[i]=0;bb[i]=0;} while(*p){ if(*p>=’0’&&*p<=’9’)bb[*p-‘0’]++;p++;} for(i=1,j=0;i<10;i=i+2,j++)num[j]==bb[i];}

2、str全部由小写字母和空格字符组成的字符串,num传入字符串长度。统计单词个数。void fun(char *s, int *num){ int I, n=0;for(i=0;i<*num;i++){ if(s[i]>=’a’&&ss[i]<=’z’&&(s[i+1]= =’’|| s[i+1]==’0’))n++;} *num=n;}

3、从’a’到’z’统计一个字符串中所有字母字符各自出现的次数,结果存在数组alf中。void fun(char *tt, int alf[]){ int i;char *p=tt;for(i=0;i<26;i++)alf[i]=0;while(*p){ if(*p>=’A’&&*p<=’Z’)*p+=32;if(*p>=’a’&&*p<=’z’)alf[*p-‘a’]++;p++;} }

4、str字符序列由字符0和1组成。查找0字符连续出现的最长长度,若有几个0字符长度相同,只记录最后1个0字符串相关信息,通过m和k返回最长0字符长度和其下标。void fun(char *str, int *m, int *k){ int i, j=0;int bb[N];char *p=str;*m=0;*k=0;for(i=0;i

5、统计在tt字符串中”a”到”z”26个字母各自出现的次数,并依次放在pp所指数组中。void fun(char *tt,int pp[]){ int i;for(i=0;i<26;i++)pp[i]=0;for(;*tt!=’’;tt++)if(;*tt>=’a’&&*tt<=’z’)pp[*tt-’a’]++;}

6、统计一个长度为n的字符串在另一个字符串中出现的次数。int fun(char *str, char *substr){ int n;char *p,*r;n=0;while(*str){ p=str;r=substr;while(*r)if(*r==*p){r++;p++;} else break;if(*r==’’)n++;str++;} return n;}

7、求出ss所指字符串中指定字符的个数,并返回此值。int fun(char *ss, char c){ int i=0;for(;*ss!=’’;ss++)if(*ss==c)i++;return i;}

8、统计一个长度为2的字符串在另一个字符串中出现的次数。int fun(char *str, char *substr){ int i,j=0;for(i=0;str[i+1]!=’’;i++)if(str[i]==substr[0]&&str[i+1]==substr[1])j++;return j;}

(八)进制转换

1、把str字符串转换成任意进制的数。int fun(char *str, int x, int y){ int sum;int i=0;char *p=str;for(i=0;i

:原进制;y:要转换成的进制。x while(sum!=0){ xx[i]=sum%y;sum=sum/y;i++;} return i;} 注:

(1)将x转换成10进制:sum=sum*x+*p-‘0’;(2)将10进制转换成y: sum%y 得到y进制数的最低位。sum/y 得到y进制数的次低位。

2、str字符串由‘0’和‘1’组成。转换成十进制数。int fun(char *str){ int n;char *p=str;n=*p-‘0’;p++;while(*p){ n=n*2+*p-‘0’;p++;} return n;}

(九)比较字符串长度

1、比较两个字符串的长度,函数返回较短的字符串。char *fun(char *s, char *t){int i,j;for(i=0;s[i]!=’’;i++);for(j=0;t[j]!=’’;j++);if(i<=j)return s;else return t;}

2、从传入的num个字符中找出最长的一个字符串,通过形参指针max传回该串地址。fun(char(*a)[81], int num,char *max){ int i=0;max=a[0];for(i=0;i

(十)最大公约数,最小公倍数

1、int fun(int a, int b){ int r,t;if(a

2、输入两整数m和n,求最大公约数,最小公倍数。while(b!=0){t=a%b;a=b;b=t;} printf(“%d”,”%d”,a, n*m/a);注:

上一篇:写初一班级的作文下一篇:厨艺大赛策划书