2018年度计算机二级C语言专业考试真题汇总

合集下载

20183月全国计算机等级考试二级C语言上机题库100套(光碟拷贝版)

20183月全国计算机等级考试二级C语言上机题库100套(光碟拷贝版)

2018年3月全国计算机等级考试二级C语言上机题库100套(从光碟拷贝出来的最完整版)(可以拷贝在U盘里,然后ctrl+F搜索,百分百有答案,祝考试成功)第一套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的功能是:删除链表中数据域值相同的结点,使之只保留一个。

第一处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返回这些数的个数。

2018年上半年安徽省计算机水平考试二级C语言程序设计真题

2018年上半年安徽省计算机水平考试二级C语言程序设计真题

2018年上半年全国高等学校(安徽考区)计算机水平考试试卷(二级 C语言程序设计)考生须知:1.请将准考证号末两位填在试卷第3页右上方方框内。

2.不得将试卷及草稿纸带离考场。

3.考试时间为60分钟。

一、程序设计题(每题12分,共36分,将答案填写在相应的下划线处)1、以下程序从键盘输入10个整数,计算并输出其中正数、负数的和。

请填空#include <stdio.h>void main(){int i,num,sum1,sum2;/*sum1存放正数和,sum2存放负数和*/sum1=0;sum2=0;for(i=1;i<=10;i++){scanf("%d",_________);if(__________)sum1=sum1+num;else_____________}printf("%d,%d\n",sum1,sum2);}2、以下程序是求一维数组各元素之和。

请填空。

#include <stdio.h>void main(){int s[10]={1,3,5,7,9,2,4,6,8,10};int i,sum;sum=_____________;for(i=0;i<10;i++)sum+=_________;printf("sum=%d\n",__________);}3、以下程序是把字符串s中所有数字字符按以下规律改写:(1)0、1、2、3、4、5、6、7、8分别对应改成1、2、3、4、5、6、7、8、9;(2)9改成0;(3)其他字符保持不变。

请填空。

#include <stdio.h>void main(){char s[81];int i;gets(________);for(i=0;s[i]!='\0';i++){if(s[i]=='9')s[i]=________;else if(s[i]>='0' &&s[i]<='8')s[i]=__________;}printf("%s\n",s);}二、阅读程序题(每题8分,共32分。

2018年全国计算机等级考试二级C 语言真题及答案1

2018年全国计算机等级考试二级C 语言真题及答案1
D)用C程序实现的算法可以既没有输入也没有输出
(14)下列不能定义的用户标识符是()。
A)MainB)_0
C)_intD)sizeof
(15)下列选项中,不能作为合法常量的是()。
A)1.234e04B)1.234e0.4
C)1.234e+4D)1.234e0
(16)数字字符0的ASCII值为48,运行下列程序的输出结果是()。
A)1B)2
C)3D)4
(23)下列程序的输出结果是()。
main( )
{intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;
while(i++<7) if(p[i]%2) j+=p[i]; printf("%d\n",j);
}
A)42B)45
C)56D)60
(24)下列程序的输出结果是()。
main( )
{chara[7]="a0\0a0\0"; inti,j;
i=sizeof(a);
j=strlen(a);
printf("%d%d\n",i,j);
}
A)22B)76
C)72D)62
(25)下列能正确定义一维数组的选项是()。
A)inta[5]={0,1,2,3,4,5};B)chara[ ]={0,1,2,3,4,5};
main( )Байду номын сангаас
{inti=1,j=2,k=3;
if(i++==1&&(++j==3‖k+ +==3)) printf("%d%d %d\n",i,j,k);

2018年全国计算机等级考试二级C语言真题及答案7

2018年全国计算机等级考试二级C语言真题及答案7

2018 年全国计算机等级考试笔试试卷及答案二级公共基础知识和 C 语言程序设计(考试时间120 分钟,满分100 分)一、选择题(( 1) -( 10)每小题 2 分,( 11) -(50)每小题 1 分,共 60 分)( 1)下列选项中不符合良好程序设计风格的是()。

A )源程序要文档化B)数据说明的次序要规范化C)避免滥用 goto 语句D)模块设计要保证高耦合、高内聚( 2)从工程管理角度,软件设计一般分为两步完成,它们是()。

A )概要设计与详细设计B)数据设计与接口设计C)软件结构设计与数据设计D)过程设计与数据设计( 3)下列选项中不属于软件生命周期开发阶段任务的是()。

A)软件测试 B )概要设计 C)软件维护D)详细设计( 4)在数据库系统中,用户所见的数据模式为()。

A )概念模式 B )外模式 C)内模式D)物理模式( 5)数据库设计的 4 个阶段是:需求分析、概念设计、逻辑设计和()。

A )编码设计B )测试阶段C)运行阶段 D )物理设计( 6)设有如下 3 个关系表下列操作中正确的是()。

A )T=R ∩ S B)T=R ∪ SC)T=R ×S D )T=R/S( 7)下列叙述中正确的是()。

A)一个算法的空间复杂度大,则其时间复杂度也必定大B)一个算法的空间复杂度大,则其时间复杂度必定小C)一个算法的时间复杂度大,则其空间复杂度必定小D)上述三种说法都不对( 8)在长度为64 的有序线性表中进行顺序查找,最坏情况下需要比较的次数为()。

A )63B) 64 C ) 6 D ) 7( 9)数据库技术的根本目标是要解决数据的()。

A )存储问题B)共享问题C)安全问题D)保护问题( 10)对下列二叉树进行中序遍历的结果是()。

A) ACBDFEG B ) ACBDFGEC) ABDCGEF D ) FCADBEG(11)下列叙述中错误的是()。

A)一个 C 语言程序只能实现一种算法B) C 程序可以由多个程序文件组成C) C 程序可以由一个或多个函数组成D)一个 C 函数可以单独作为一个 C 程序文件存在(12)下列叙述中正确的是()。

2018年国家计算机二级C语言笔试真题及答案解析2

2018年国家计算机二级C语言笔试真题及答案解析2

2018年国家计算机二级C语言笔试真题及答案解析(1)一个栈的初始状态为空。

现将元素1、2、3、4、5、A、B、C、D、E 依次入栈,然后再依次出栈,则元素出栈的顺序是()。

A)12345ABCDE B)EDCBA54321 C)ABCDE12345 D)54321EDCBA (2)下列叙述中正确的是()。

A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D)循环队列中元素的个数是由队头指针和队尾指针共同决定3)在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是()。

A)O(n) B)O(n2) C)O(log2n) D)O(n log2n)4)下列叙述中正确的是()。

A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C)顺序存储结构能存储有序表,链式存储结构不能存储有序表 D)链式存储结构比顺序存储结构节省存储空间5)数据流图中带有箭头的线段表示的是()。

A)控制流 B)事件驱动 C)模块调用 D)数据流6)在软件开发中,需求分析阶段可以使用的工具是()。

A)N-S 图 B)DFD 图 C)PAD 图 D)程序流程图7)在面向对象方法中,不属于“对象”基本特点的是()。

A)一致性 B)分类性 C)多态性 D)标识唯一性(8)一间宿舍可住多个学生,则实体宿舍和学生之间的联系是()。

A)一对一 B)一对多 C)多对一 D)多对多(9)在数据管理技术发展的三个阶段中,数据共享最好的是()。

A)人工管理阶段 B)文件系统阶段 C)数据库系统阶段 D)三个阶段相同(10)有三个关系R、S 和T 如下:R S TA B B C A B Cm 1 1 3 m 1 3n 2 3 5由关系R 和S 通过运算得到关系T,则所使用的运算为()。

2018年3月国家二级C语言机试(操作题)真题汇编2(题后含答案及解析)

2018年3月国家二级C语言机试(操作题)真题汇编2(题后含答案及解析)

2018年3月国家二级C语言机试(操作题)真题汇编2(题后含答案及解析)全部题型 2. 程序填空题 3. 程序修改题 4. 程序设计题程序填空题1.使用VC++2010打开考生文件夹下blank1中的解决方案。

此解决方案的项目中包含一个源程序文件blank1.c。

函数fun的功能是将一个由字符0和1组成的表示二进制数的字符串,转换成相应的十进制整数值返回。

该串长度最大不超过15。

例如,若表示二进制数的字符串为:”10011”,则运行结果应为:10011﹣>19请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在文件BLANK1.C中,不得增行或删行,也不得更改程序的结构!#include<stdio.h>#pragma warning(disable:4996)#define N16/*********found*********/int fun(char【1】){int i,n=0;/*********found*********/for(i=0;【2】;++i)/*********found*********/rl=n*2+(s[i]﹣【3】);return n;}main( ){char num[]=“10011”;int n;n=fun(num);printf(“%s﹣﹣>%d\n”,num,n);}正确答案:(1)s[](2)s[i]!=‘\0’&&i<N(3)48解析:填空1:该函数所接受的参数为字符数组,所以形参也为字符数组,根据函数内所用的字符数组s[i],所以该空填s[]。

答案为s[]。

填空2:访问一个字符数组的所有元素时,当该元素不为字符串结束符’\0’时,继续访问,当访问到字符串结束符’\0’时,表示该字符串结束了,结束循环返回计算结果,因为串的长度最大不超过15,所以定义了一个常量N为16,在for循环的第二个表达式中i<N用来控制其不超过15,当其超过了15位时后面的不做计算,所以该空填s[i]!=‘\0’&&i<N。

2018年计算机二级考试C语言试题及答案(1)

2018年计算机二级考试C语言试题及答案(1)

2018年计算机二级考试C语言试题及答案(1)2018年计算机等级考试即将开始,为考生们整理了2018年计算机二级考试C语言试题及答案,希望能帮到大家,想了解更多资讯,请关注小编的及时更新哦。

2018年计算机二级考试C语言试题及答案(1)选择题1). 在软件设计中,不属于过程设计工具的是( )A.PDL(过程设计语言)B.PAD图C.N-S图D.DFD图正确答案:D答案解析:DFD(数据流图Data-Flow-Diagram)是描述数据处理过程的工具,是需求理解的逻辑模型的图形表示。

它直接支持系统功能建模。

在软件详细设计的过程阶段,要对每个模块规定的功能以及算法的设计给出适当的算法描述。

常见的过程设计工具有:图形工具:程序流程图,N-S,PAD,HIPO;表格工具:判定表;语言工具:PDL(伪码)。

2). 数据结构中,与所使用的计算机无关的是数据的( )。

A.存储结构B.物理结构C.逻辑结构D.线性结构正确答案:C答案解析:数据的逻辑结构反映的是数据元素之间的逻辑关系,与使用的计算机无关。

3). 设有定义: int x=2; 以下表达式中,值不为6的是( )A.2*x, x+=2B.x++,2*xC.x*=(1+x)D.x*=x+1正确答案:A答案解析:本题考查逗号表达式。

逗号表达式的求解过程是:先求解表达式1,再求解表达式2,整个逗号表达式的值是表达式2的值,因此,选项A中值为4;选项B中,值为6。

选项C中x*=x+1 等价于x=x*(x+1),所以等于6;选项D与选项C等价,结果也为6。

4). 在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为( )A.63B.64C.6D.7正确答案:B答案解析:顺序查找又称顺序搜索。

顺序查找一般是指在线性表中查找指定的元素,其基本方法是:从线性表的第一元素开始,依次将线性表中的元素与被查找的元素进行比较,若相等则表示找到(即查找成功),若线性表中所有元素都与被查元素进行了比较但都不相等,则表示线性表中没有要找的元素(即查找失败)。

二级C语言机试(操作题)2018年3月真题汇编1及答案解析

二级C语言机试(操作题)2018年3月真题汇编1及答案解析
for(i=0;i<n;i++)
if(x[i]>avg)
{
/*********found*********/
【2】+=x[i];
k++;
}
/*********found*********/
return【3】;
}
main()
{double score[12]={50,60,70,80,90,100,55,65,75,85,95,99};
fprintf(fp,"%d\n",n);
for(i=0;i<n;i++)
fprintf(fp,"%d\n",result[i]);
fclose(fp);
}
_______
上一题交卷
交卷
答题卡
答案及解析
(1/1)程序填空题
第1题
使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。函数fun根据所给n名学生的成绩,计算出所有学生的平均成绩,把高于平均成绩的学生成绩求平均值并返回。
)
/*********found*********/
s3[j﹣1]=´\0´;
}
void main()
{char s1[128],s2[128],s3[255];
printf("Please input string1:");
gets(s1);
printf("Please 2nput str2ng2:");
double aa;
aa=fun(score,12);
printf("%f\n",aa);

二级C语言机试(操作题)2018年3月真题汇编2及答案解析

二级C语言机试(操作题)2018年3月真题汇编2及答案解析
#define N16
/*********found*********/
int fun(char【1】)
{int i,n=0;
/*********found*********/
for(i=0;【2】;++i)
/*********found*********/
rl=n*2+(s[i]﹣【3】);
return n;
#define N16
/*********found*********/
int fun(char【1】)
{int i,n=0;
/*********found*********/
for(i=0;【2】;++i)
/*********found*********/
rl=n*2+(s[i]﹣【3】);
return n;
{
Struct BITS res;
/*在这里将函数代码补充完整*/
}
main()
{struct BITS a;
void NONO();
int i=0,n=0;
for(i=32;i<100;i++)
{n=i*i;
a=fun(n);
if(a.m3<a.m2&&a.m2<a.m1&&a.m1<a.m0)
printf("No.is%d\n",n);
例如,若表示二进制数的字符串为:"10011",则运行结果应为:10011﹣>19
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在文件BLANK1.C中,不得增行或删行,也不得更改程序的结构!

2018年国家计算机二级C语言笔试真题及答案解析

2018年国家计算机二级C语言笔试真题及答案解析

2018年国家计算机二级C语言笔试真题及答案解析#include <stdio.h>main(){int x;scanf(“%d”,&x);if(x<=3); elseif(x!=10)printf(“%d\n”,x);} 程序运行时,输入的值在哪个范围才会有输出结果A)不等于10的整数B)大于3且不等于10的整数C)大于3或等于10的整数D)小于3的整数(19)有以下程序#include<stdio.h>Main(){ int a=1,b=2,c=3,d=0;if(a= =1 &&b++= =2)if(b!=2 || c--!=3)printf(“%d,%d,%d\n”,a,b,c);else printf(“%d,%d,%d\n”,a,b,c);else printf(“%d,%d,%d\n”,a,b,c);} 程序运行后的输出结果是A)1,2,3 B)1,3,2 C)1,3,3 D)3,2,1(20)以下程序中的变量已正确定义for(i=0;i<4;i++,i++for(k=1;k<3;k++);printf(*”); 程序段的输出结果是A)******** B)**** C)** D)*(21)有以下程序#include<stdio.h>main(){char*s=(“ABC);do{printf(“%d”,*s%10);s++;}while(*s);} 注意,字母A的ASCII码值为65。

程序运行后的输出结果是A)5670 B)656667 C)567 D)ABC(22)设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是A)n=0;while((ch=getchar())!=’\n’)n++; B) n=0;while(getchar()!=’\n’)n++; C)for(n=0; getchar()!=’\n’;n++); D)n=0;for(ch=getchar();ch!=’\n’;n++);(23)有以下程序#include<stdio.h>main(){ int a1,a2;char c1,c2;scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);printf(“%d,%c,%d,%c”,&1,c1,a2,c2);}若想通过键盘输入,使得a1的值为12,a2的是为34,c1的值为字符a,c2的值为字符b,程序输出结果是:12,a,34,b,则正确的输入格式是(以下代表空格,<CR>代表回车)A)12a34b<CR> C)12,a,34,b<CR>B)12 D)12a a3434 b<CR>b<CR>24)有以下程序#include<stdio.h>int f(int x,int y){return()y-x)*x);}main(){int a=3,b=4,c=5,d;d=f(f(a,b),f(a,c));printf(“%d\n”,d);} 程序运行后的输出结果是A)10 B)9 C)8 D)7#include<stdio.h>void fun(char*s){while(*s){ if(*s%2==0)printf(“%c”,*s);s++;}}main(){ chara[]={“good”};fun(a);printf(“\n”);}注意:字母a的ASCⅡ码值为97,程序运行后的输出结果是A)d B)go C)god D)good(26)有以下程序#include <stdio.h>void fun( int *a,int *b){int *c;c=a;a=b;b=c;}main(){int x=3,y-5,*P=&x,*q=&y;fun(p,q);printf(“%d,%d,”,*p,*q);fun(&x,&y);printf(“%d,%d\n”,*p,*q);} 程序运行后的输出结果是A)3,5,5,3 B)3,5,3,5 C)5,3,3,5 D)5,3,5,3(27)有以下程序#include <stdio.h>viod f(int *p,int *q);main(){ int m=1,n=2,*r=&m;f(r,&n);printf(“%d,%d”,m,n);}void f(int *p,int *q){p=p+1;*q=*q+1;}程序运行后输出的结果是A)1,3 B)2,3 C)1,4 D)1,2(28)以下函数按每行8个输出数组中的数据void fun( int *w,int n){ int i;for(i=0;i<n;i++){_________________printf(“%d”,w);}printf(“\n”);} 下划线处应填入的语句是A)if(i/8==0)print(“\n”); B) if(i/8==0)continue;C) if(i%8==0)print(“\n”); D) if(i%8==0)continue;(29)若有以下定义 int x[10],*pt=x; 则对x数组元素的正确应用是A)*&x[10] B)*(x+3) C)*(pt+10) D)pt+330)设有定义:char s[81];int i=10;,以下不能将一行(不超过80个字符)带有空格的字符串真确读入的语句或语句组是A) gets(s) B)while((s[i++]=getchar())!=”\n”;s=”\0”;C)scanf(“%s”,s); D)do{scanf(“%c”,&s);}while(s[i++]!=”\n”);s=”\0”;(31)有以下程序#include <stdio.h>main(){ char *a[ ]={“abcd”,”ef”,”gh”,”ijk”};int I;for(i=0;i<4;i++)printf(“%c”,*a);} 程序运行后输出的结果是A)aegi B)dfhk C)abcd D)abcdefghijk32)以下选项中正确的语句组是A)char s[];s=”BOOK!”; B) char *s;s={”BOOK!”}; C)char s[10];s=”BOOK!”; D) char *s;s=”BOOK!”;#include <stdio.h>int fun{int x,int y}{ if(x==y) return(x);else returen((x+y)/2)}main(){ int a=4,b=5,c=6;printf(“%d\n”,fun(2*a,fun(b,c)))} 程序运行后的输出结果是A)3 B)6 C)8 D)12(34)设函数中有整型变量n,为保证其在未赋值的情况下初值为0,应选择的存储类别是A)auto B) register C)static D)auto或register(35)有以下程序#include <stdio.h>int b=2;int fun(int *k){ b=*k+b;return(b);}main(){ int a[10]={1,2,3,4,5,6,7,8},I;for(i=2;i<4;i++) {b=fun(&a)+b;printf(“%d”,b);}printf(“\n”);}程序运行后输出的结果是A)10 B)8 C)10 D)1012 10 28 1636)有以下程序#include <stdio.h>#define PT 3.5;#define S(x) PT*x*x;mian(){ int a=1, b=2; printf(“%4.1f\n”,S(a+b));}程序运行后输出的结果是A)14.0 B)31.5 C)7.5 D)程序有错无输出结果37)有以下程序#include <stdio.h>struct ord{ int x,y;} dt[2]={1,2,3,4};main(){ struct ord *p=dt;printf(“%d,”,++p->x); printf(“%d\n”,++p->y);}程序的运行结果是A)1,2 B)2,3 C)3,4 D)4,138)设有宏定义:#includeIsDIV(k,n)((k%n==1)?1:0且变量m已正确定义并赋值,则宏调用:IsDIV(m,5)&& IsDIV(m,7)为真时所要表达的是 A)判断m是否能被5或者7整除 B)判断m是否能被5和7整除C)判断m被5或者7整除是否余1 D)判断m被5和7整除是否余1(39)有以下程序#include <stdio.h>main(){ int a=5,b=1,t;t=(a<<2|b); printf(“%d\n”,t)}程序运行后的输出结果是 A)21 B)11 C)6 D)1 (40)有以下程序#include <stdio.h>main(){ EILE *f;f=fopen(“filea.txt”,”w”);fprintf(f,”abc”);fclose(f);} 若文本文件filea.txt中原有内容为:hello,则运行以上程序后,文件filea.txt中的内容为A) helloabc B)abclo C)abc D)abchello二、填空题(每空2分,共30分)(1)假设一个长度为50的数组(数组元素的下标从0到49)作为栈的存储空间,栈底指针bottom指向栈底元素,栈顶指针top指向栈顶元素,如果bottom=49,top=30(数组下标),则栈中具有【1】个元素。

国家二级(C语言)机试历年真题试卷汇编18

国家二级(C语言)机试历年真题试卷汇编18

国家二级(C语言)机试历年真题试卷汇编18(总分:86.00,做题时间:90分钟)一、选择题(总题数:40,分数:80.00)1.下列叙述中错误的是( )。

(分数:2.00)A.算法的时问复杂度与算法所处理数据的存储结构有直接关系B.算法的空间复杂度与算法所处理数据的存储结构有直接关系C.算法的时间复杂度与空间复杂度有直接关系√D.算法的时间复杂度与算法程序执行的具体时间是不一致的解析:解析:算法的时间复杂度是指执行算法所需要的计算工作量。

数据的存储结构直接决定数据输入,而这会影响算法所执行的基本运算次数,A项正确。

算法的空间复杂度是指执行这个算法所需要的内存空间,其中包括输入数据所占的存储空间,B项正确。

而算法的时间复杂度与空间复杂度没有直接关系,C项错误。

算法程序执行的具体时间受到所使用的计算机、程序设计语言以及算法实现过程中的许多细节所影响,而算法的时间复杂度与这些因素无关,所以是不一致的,D项正确。

2.在满足实体完整性约束的条件下( )。

(分数:2.00)A.一个关系中应该有一个或多个候选关键字√B.一个关系中只能有一个候选关键字C.一个关系中必须有多个候选关键字D.一个关系中可以没有候选关键字解析:解析:实体完整性约束要求关系的主键中属性值不能为空值,因此本题答案为A。

3.下面描述中,不属于软件危机表现的是( )。

(分数:2.00)A.软件过程不规范√B.软件开发生产率低C.软件质量难以控制D.软件成本不断提高解析:解析:软件危机主要表现在:软件需求的增长得不到满足;软件开发成本和进度无法控制;软件质量难以保证;软件不可维护或维护程度非常低;软件的成本不断提高;软件开发生产率的提高赶不上硬件的发展和应用需求的增长。

因此本题答案为A。

4.下列各项中不属于需求分析阶段任务的是( )。

(分数:2.00)A.确定软件系统的功能需求B.确定软件系统的性能需求C.需求规格说明书评审D.制定软件集成测试计划√解析:解析:需求分析阶段的工作包括:需求获取、需求分析、编写需求规格说明书、需求评审,因此本题答案为D。

2018年C语言二级考试及答案

2018年C语言二级考试及答案

2018年C语言二级考试及答案一、选择题1. 下列关于C语言中变量的描述,错误的是:A. 变量必须先声明后使用B. 变量的声明可以放在程序的任何位置C. 变量的类型决定了它所占用的内存大小D. 变量的声明必须在函数的开始处完成答案:B2. 在C语言中,以下哪个选项不是合法的标识符?A. _sumB. sum$C. 2valueD. sum答案:C3. C语言中,以下哪个选项是正确的字符串定义方式?A. char str[5] = "Hello";B. char str[] = "Hello";C. char str[6] = "Hello";D. char str = "Hello";答案:B4. 关于C语言中的数组,以下哪个说法是错误的?A. 数组名代表数组的首地址B. 数组的大小在定义后不能改变C. 数组的元素可以是不同类型的D. 数组的下标从0开始答案:C5. 在C语言中,以下哪个选项是正确的函数定义?A. int add(int a, int b);B. int add();C. int add(int a, int b) {}D. int add(int a, int b) { return a + b; }答案:D二、填空题1. 在C语言中,使用____关键字可以定义一个整型变量。

答案:int2. 字符串"Hello"在内存中所占的字节数是____。

答案:63. 若定义一个二维数组int arr[3][4],则该数组的元素总数为____。

答案:124. 在C语言中,使用____运算符可以实现逻辑与操作。

答案:&&5. 若变量a的值为5,b的值为10,则表达式a++ + b的值为____。

答案:15三、编程题1. 编写一个C语言程序,实现计算并输出两个整数的和。

```c#include <stdio.h>int main() {int a, b, sum;printf("请输入两个整数:");scanf("%d %d", &a, &b);sum = a + b;printf("两数之和为:%d\n", sum);return 0;}```2. 编写一个C语言程序,实现判断输入的年份是否为闰年,并输出结果。

二级C语言机试(操作题)2018年3月真题汇编1及答案解析

二级C语言机试(操作题)2018年3月真题汇编1及答案解析
例如,若有成绩为:50,60,70,80,90,100,55,65,75,85,95,99,则运行结果应为:91.5
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在文件BLANK1.C中,不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
fprintf(fp,"%d\n",n);
for(i=0;i<n;i++)
fprintf(fp,"%d\n",result[i]);
fclose(fp);
}
_______
上一题交卷
交卷
答题卡
答案及解析
(1/1)程序填空题
第1题
使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。函数fun根据所给n名学生的成绩,计算出所有学生的平均成绩,把高于平均成绩的学生成绩求平均值并返回。
#pragma warning(disable:4996)
void fun(char*s1,char*s2,
char*s3)
{int i,j;
/*********found*********/
for(i=0,j=0;(s1[i]!=´\0´)&&(s2[i]!=´\0´);i++,j=j+1)
{s3[j]=s1[i];
例如,当s1为:"123456789",s2为:"abcdefghijk"时,
输出结果应该是:1a263c4d5e6t7g8h9ijk
请改正函数fun中指定部位的错误,使它能得出正确的结果。

计算机二级C语言2018年试题及答案

计算机二级C语言2018年试题及答案

计算机二级C语言2018年试题及答案一、选择题1. 在C语言中,下面哪个选项是正确的定义一个整型变量的语句?A. int a;B. int a[];C. int a[10];D. int a(10);答案:A2. 下列关于C语言函数的描述中,错误的是?A. 函数可以没有返回值B. 函数可以有多个返回值C. 函数可以有多个参数D. 函数可以嵌套定义答案:D二、填空题1. 在C语言中,表示逻辑“与”操作的运算符是______。

答案:&&2. 若有定义 int a[10], *p=a; 则*(p+5)表示数组的第______个元素。

答案:6三、编程题1. 编写一个C语言程序,实现输入一个整数,输出该整数的绝对值。

```c#include <stdio.h>#include <stdlib.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num < 0) {num = -num;}printf("该整数的绝对值是:%d\n", num);return 0;}```2. 编写一个C语言程序,实现输入一个字符串,然后输出该字符串的逆序。

```c#include <stdio.h>#include <string.h>int main() {char str[100];printf("请输入一个字符串:");gets(str);int len = strlen(str);for (int i = len - 1; i >= 0; i--) {printf("%c", str[i]);}printf("\n");return 0;}```四、简答题1. 请简述C语言中指针和数组的关系。

2018年计算机二级考试C语言试题及答案(5)

2018年计算机二级考试C语言试题及答案(5)

2018年计算机二级考试C语言试题及答案(5)2018年3月计算机等级考试开始报名啦!为考生们整理了2018年计算机二级考试C语言试题及答案,希望能帮到大家,想了解更多内容,请关注小编的及时更新。

2018年计算机二级考试C语言试题及答案(5)1[单选题] 耦合性和内聚性是对模块独立性度量的两个标准。

下列叙述中正确的是( )。

A.提高耦合性降低内聚性有利于提高模块的独立性B.降低耦合性提高内聚性有利于提高模块的独立性C.耦合性是指一个模块内部各个元素间彼此结合的紧密程度D.内聚性是指模块问互相连接的紧密程度参考答案:B参考解析:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。

一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,所以A错误,B正确。

耦合性是模块间互相连接的紧密程度的度量而内聚性是指一个模块内部各个元素问彼此结合的紧密程度,所以C与D错误。

2[单选题] 软件设计中划分模块的一个准则是( )。

A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合参考答案:B参考解析:一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。

3[单选题] 下列数据结构中,能够按照“先进后出”原则存取数据的是( )。

A.循环队列B.栈C.队列D.二叉树参考答案:B参考解析:栈是按先进后出的原则组织数据的。

队列是先进先出的原则组织数据。

4[单选题] 以下叙述中错误的是( )。

A.gets函数用于从终端读入字符串B.getchar函数用于从磁盘文件读入字符C.fput,函数用于把字符串输出到文件D.fwrite函数用于以二进制形式输出数据到文件参考答案:B参考解析:本题考查字符处理函数和文件操作函数,属于基础知识,其中B选项getehar函数是用于从终端读入一个字符。

2018计算机二级C语言考试真题汇总

2018计算机二级C语言考试真题汇总

模拟卷11 [填空题]下列给定程序中,函数fun得功能就是:在形参S所指字符串中寻找与参数C相同得字符,并在其后插入一个与之相同得字符,若找不到相同得字符则不做任何处理。

例如,若s所指字符串为“baacda”,c中得字符为a,执行后S所指字符串为“baaaacdaa”。

请在程序得下画线处填入正确得内容并将下画线删除,使程序得出正确得结果。

注意:部分源程序给出如下。

不得增行或删行,也不得更改程序得结构!试题程序:参考解析:【参考答案】【解题思路】填空1:for语句循环条件就是判断就是否到达字符串结尾,即当前字符就是否为‘\0’。

填空2:while语句用以确定字符串得长度,所以变量n赋初值为0。

填空3:题目要求如果找到与参数c相同得字符,就在后面插入一个相同得字符,且找到后应该给数组元素赋值,本题目给出参数为c。

二、程序修改题2 [简答题]下列给定程序中函数fun得功能就是:逐个比较p、q所指两个字符串对应位置上得字符,并把ASCII值大或相等得字符依次存放到c所指得数组中,形成一个新得字符串。

例如,若主函数中a字符串为“aBCDeFgH”,b字符串为"Abcd",则c中得字符串应为“aBcdeFgH”。

请改正程序中得错误,使它能得出正确得结果。

注意:部分源程序在文件MODl1、C中,不得增行或删行,也不得更改程序得结构!参考解析:【参考答案】 (1)int k=0;(2)while(*p||*q)【考点分析】本题考查:变量初始化,需根据题意确定变量含义,然后对其进行初始化操作;while循环语句。

【解题思路】(1)变量k存放数组e得下标,因此应初始化为0。

(2)while循环语句得循环条件就是判断两个字符串就是否到达结尾。

三、程序设计题3 [简答题]规定输入得字符串中只包含字母与*号。

请编写函数fun,其功能就是:将字符串尾部得*号全部删除,前面与中间得*号不动。

例如,字符串中得内容为:“****A*BC*DEF*G*******”、删除后,字符串中得内容应当就是:“****A*BC*DEF*G”。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

模拟卷1
1 [填空题]
下列给定程序中,函数fun的功能是:在形参S所指字符串中寻找与参数C相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则不做任何处理。

例如,若s所指字符串为“baacda”,c中的字符为a,执行后S所指字符串为“baaaacdaa”。

请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

注意:部分源程序给出如下。

不得增行或删行,也不得更改程序的结构!
试题程序:
参考解析:
【参考答案】
【解题思路】
填空1:for语句循环条件是判断是否到达字符串结尾,即当前字符是否为‘\0’。

填空2:while语句用以确定字符串的长度,所以变量n赋初值为0。

填空3:题目要求如果找到与参数c相同的字符,就在后面插入一个相同的字符,且找到后应该给数组元素赋值,本题目给出参数为c。

二、程序修改题
2 [简答题]
下列给定程序中函数fun的功能是:逐个比较p、q所指两个字符串对应位置上的字符,并把ASCII 值大或相等的字符依次存放到c所指的数组中,形成一个新的字符串。

例如,若主函数中a字符串为“aBCDeFgH”,b字符串为"Abcd",则c中的字符串应为“aBcdeFgH”。

请改正程序中的错误,使它能得出正确的结果。

注意:部分源程序在文件MODl1.C中,不得增行或删行,也不得更改程序的结构!
参考解析:
【参考答案】 (1)int k=0;
(2)while(*p||*q)
【考点分析】
本题考查:变量初始化,需根据题意确定变量含义,然后对其进行初始化操作;while循环语句。

【解题思路】
(1)变量k存放数组e的下标,因此应初始化为0。

(2)while循环语句的循环条件是判断两个字符串是否到达结尾。

三. 程序设计题
3 [简答题]
规定输入的字符串中只包含字母和*号。

请编写函数fun,其功能是:将字符串尾部的*号全部删除,前面和中间的*号不动。

例如,字符串中的内容为:“****A*BC*DEF*G*******”.删除后,字符串中的内容应当是:“****A*BC*DEF*G”。

在编写函数时,不得使用C语言提供的字符串函数。

注意:部分源程序在文件PROG1.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

参考解析:
【参考答案】
【考点分析】
本题考查:删除字符串尾部+号;删除的主要思想是把不删除的字符保留起来。

【解题思路】
对于一个字符串要删除其尾部的*号,只需要在最后一个不是*号的字符后面加上结束符号‘\0’。

具体操作为:首先找到字符串的结尾,然后从最后一个字符开始往前逐个判断是否为*号,直到找到非*号字符为止,最后在该字符后面加上结束符号‘\0’。

模拟卷2
一、程序填空题
1 [填空题]
下列给定程序中,函数fun的功能是:从形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回剩余字符串的个数。

ss所指字符串数组中共有N个字符串,且串长小于M。

请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。

注意:部分源程序在文件BLANK1.C中。

不得增行或删行,也不得更改程序的结构!
参考解析:
【参考答案】 (1)N
(2)k
(3)ss[i]
【考点分析】
本题考查:for循环语句;if语句条件表达式;字符串拷贝函数strepy的使用。

【解题思路】
填空l:for循环语句作用是遍历字符串数组中的每一个字符串,所以循环变量i的循环条件是i
填空2:题目要求删除串长度小于k的字符串,所以if条件语句的条件表达式是len<=k。

填空3:通过字符串拷贝函数将串长不大于k的字符串另存,并记录个数。

【解题宝典】
字符串拷贝函数strcpy,其格式为:strepy(字符数组名1,字符数组名2)
功能:把字符数组2中的字符串拷贝到字符数组l中。

字符串结束标识‘\0’也一同拷贝。

字符数名2,也可以是一个字符串常量。

这时相当于把一个字符串赋予一个字符数组。

二、程序修改题
2 [简答题]
给定程序MODI1.C中,函数fun的功能是:判断输入的任何一个正整数n,是否等于某个连续正整数序列之和。

若是,则输出所有可能的序列,否则输出“不能分解”。

例如:当输入100时,输出:100=9+10+11+12+13+14+15+16
100=18+19+20+21+22
请改正函数fun中指定部位的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:
参考解析:
【参考答案】 (1)m=n;
(2)m=m-c;c++;
(3)if(m==0)
【解题思路】
(1)每次循环,程序需要对n执行减去连续的正整数序列来判断n是否刚好为0,即n是否是连续的正整数序列之和,所以需要使用临时变量m寄存n的值,每次循环对m执行减运算操作,不满足继续下一轮。

另外,程序声明变量m时,未初始化它的值,所以此处应该修改为:m=n。

(2)语法错误。

C语言中每个语句必须以分号结束,所以应修改为:m=m-c;c++;。

(3)题目判断n是否是连续的正整数序列之和,若是,则输出所有序列,程序中m依次减去连续的正整数,当m为0时,表示m(即11)满足条件,再输出当前序列中的每个正整数,所以此处判断条件反了,应修改为:if(m==0)。

3 [简答题]
请编写函数fun,其功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从0~P(含P,P小于等于n-1)的数组元素平移到数组的最后。

例如,一维数组中的原始内容为:1、2、3、4、5、6、7、8、9、10;P的值为3。

移动后,一维数组中的内容应为:5、6、7、8、9、10、1、2、3、4。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的内容,仅在函数fun的花括号中填入你编写的若干语句。

试题程序:
参考解析:
【参考答案】
【解题思路】
本题要求把下标从0~P(含P,P小于等于n-1)的数组元素平移到数组的最后,可以根据输入的P值,通过for循环语句,将P+1-n-1(含n-1)之间的数组元素依次向前移动P+1个存储单元,即
W[j-1]=w[j];,同时将0~P个数组元素逐一赋给数组w[n-1],也就是通过语句w[n-1]=ch;来实现此操作的。

模拟卷3
一、程序填空题
1 [填空题]
给定程序中,函数fun的功能是:将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。

请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。

注意:部分源程序给出如下。

不得增行或删行,也不得更改程序的结构!
试题程序:
参考解析:
【参考答案】
【解题思路】
填空1:由语句fopen("filel.txt","r")可知,fp应该是文件类型指针,因此本空应该填写FILE *。

填空2:feof函数只能对文件类型数据进行操作,因此本空应填写fp。

填空3:putchar()代表输入一个字符,从ch=fgetc(fp)可以看出本题应该填写ch。

二、程序修改题
2 [简答题]
给定程序中函数fun的功能是:首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到C所指数组中,过长的剩余字符接在C 所指的数组的尾部。

例如,当a所指字符串中的内容为“abcdefg”,b所指字符串中的内容为“1234”时,C所指数组中的内容应为“a4b3c2dlefg”;而当a所指字符串中的内容为“1234”,b所指字符串的内容为“abcdefg”时,C所指数组中的内容应该为“192f3e4dcba”。

请改正程序中的错误,使它能得出正确的结果。

注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
参考解析:【参考答案】
【解题思路】
(1)由i和j定义的初始值可知,此处应该判断i是否小于j,所以应改为while(i
(2)此处将if错写成If,这个错误比较简单,但往往不容易发现。

三. 程序设计题
3 [简答题]
请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m 的k个素数存入所指的数组中。

例如,若输入17,5,则应输出19、23、29、31、37。

注意:部分源程序在文件PROG1.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

试题程序:
参考解析:
【参考答案】
【解题思路】
本题主要考查素数的判定方法,如果一个数不能被除了1和其自身以外的数整除,则这个数为素数。

本程序使用循环语句控制需要判断的数,在循环体中判断该数是否为素数,若是则存入数组xx 中。

相关文档
最新文档