2017年全国计算机等级考试二级C语言上机题库
2017年4月全国计算机等级考试二级c语言笔试试题(含参考答案)
全国计算机等级考试二级笔试试题基础知识与C语言程序设计(考试时间120分钟,满分100分)2017年4月一、选择题(1-30每小题1分,31-45每小题2分,共60分)下列各题 A),B),C),D)四个选项,只有一个选项是正确的,请将正确的选项在答题卡相应位置上涂黑。
答在试卷上不得分。
(1)二进制数101110转换为等值的八进制数是【1】。
【1】 A) 45 B) 56 C) 67 D) 78(2)CPU是由【2】组成的。
【】【2】A) 内存储器和控制器B) 控制器和运算器C) 内存储器和运算器D) 内存储器、控制器和运算器(3)DOS是为IBM PC系列微型计算机及其兼容机所配置的【3】磁盘操作系统。
【3】A) 多用户多任务B) 单用户单任务 C) 分时D) 分布式(4)启动MS-DOS操作系统后,【4】已驻留内存。
【4】A) B) C) D) CCCC.EXE(5)设当前目录为F2,则把A盘根目录下的PROG.BAS文件复制到B盘F3子目录中的命令是【5】。
【5】A) COPY PROG.BAS B: B) COPY A:PROG.BAS B:\C) COPY A:\PROG.BAS B:\F3 D) COPY A:PROG.BAS B:\F3\(6)下面四组DOS命令中,意义完全相同的一组是【6】。
【6】A) COPY和DISKCOPY B) COMP和DISKCOMPC) DEL和RD D) RENAME和REN(7)防止软盘感染病毒的有效方法是【7】。
【7】A) 不要把软盘和有毒软盘放在一起 B) 在写保护缺口上贴上胶条C) 保持机房清洁 D) 定期对软盘格式化(8)双面高密度5英寸软磁盘的容量是【8】。
【8】A) 360KB B) 720KB C) 1.2MB D) 1.44MB(9)在FOXBASE中,可以使用的两类变量是【9】。
【9】A) 内存变量和字段变量B) 全局变量和局部变量C) 字段变量和简单变量D) 内存变量和自动变量(10)建立一个新子目录的DOS命令是【10】。
计算机二级c语言2017试题及答案
计算机二级c语言2017试题及答案一、选择题(每题1分,共10分)1. 在C语言中,以下哪个选项是合法的变量名?A. 2variableB. variable2C. variable-2D. _variable2答案:D2. 关于C语言中的数组,以下说法正确的是?A. 数组的大小在声明后可以改变B. 数组的索引从0开始C. 数组可以存储不同类型的数据D. 数组只能存储数字答案:B3. 下列哪个函数用于将字符串转换为浮点数?A. atoiB. atofC. itoaD. sprintf答案:B4. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. returnC. voidD. function答案:C5. C语言中,以下哪个运算符用于判断两个值是否相等?A. ==B. !=C. =D. &&答案:A6. 在C语言中,以下哪个选项表示“或”逻辑运算?A. &&B. ||C. !D. %答案:B7. C语言中,以下哪个选项用于定义一个全局变量?A. staticB. externC. constD. register答案:B8. 在C语言中,以下哪个函数用于输出字符串?A. printfB. scanfC. getsD. puts答案:D9. 关于C语言中的指针,以下说法正确的是?A. 指针可以存储任何类型的数据B. 指针变量必须初始化C. 指针可以存储变量的地址D. 指针不能存储函数的地址答案:C10. 在C语言中,以下哪个选项用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A二、填空题(每题2分,共10分)1. 在C语言中,定义一个整型变量的关键字是________。
答案:int2. 字符串"Hello, World!"在C语言中的正确表示方式是________。
答案:"Hello, World!"3. 在C语言中,用于定义一个函数的关键字是________。
全国计算机二级《C语言》操作试题及答案
全国计算机二级《C语言》操作试题及答案2017全国计算机二级《C语言》操作试题及答案一、程序填空题给定程序中,函数fun的功能是:把形参S所指字符串中最右边的n个字符复制到形参t所指字符数组中,形成一个新串。
若s所指字符串的长度小于n,则将整个字符串复制到形参t所指字符数组中。
例如,形参s所指的字符串为:abcdefgh,n的.值为5,程序执行后t所指字符数组中的字符串应为:defgh。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANKl.C中。
二、程序修改题下列给定程序中,函数fun的功能是:找出一个大于给定整数m 且紧随m的素数,并作为函数值返回。
请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODll.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!三、程序设计题参考答案一、程序填空题【参考答案】二、程序修改题【参考答案】(1)if(i%k==0)(2)if(k==i)【解题思路】(1)判断当前数是否为素数,若存在一个数(除1和其自身)能整除当前数,则跳出本次循环,所以if条件应为i%k==0。
(2)如果i是素数,则循环结束时k==i,将该值返回。
三、程序设计题【参考答案】【解题思路】本题考查:偶数的判定方法;整除的实现。
本题题干信息是:能整除X且不是偶数的所有整数。
循环语句中变量i从1开始且每次增2,所以i始终是奇数。
整除的方法,已经讲过多次,这里就不再赘述了。
对于本题目要求的不是偶数的判定方法,即该数对2求余不为0。
除本题描述的方法外,还可以通过for循环语句直接把偶数筛出去,确保参与操作的数均为奇数。
更多计算机二级考试相关试题推荐:1.2.3.4.5.6.7.8.9.10.。
计算机二级C语言上机测试题附答案
计算机二级C语言上机测试题附答案2017计算机二级C语言上机测试题附答案引导语:计算机上机考试要灵活应变,以下是店铺分享给大家的2017计算机二级C语言上机测试题附答案,欢迎测试!1.程序填空给定程序的功能是判断字符ch是否与串str中的某个字符相同:若相同,什么也不做,若不同,则插在串的最后。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果注意:不得增行或删行,也不得更改程序的结构!试题程序:#include#includevoid fun(char*str, char ch ){ while ( *str && *str != ch ) str++;if( *str 1 ch ){ str[0] =ch;2 = 0;}}main( ){ char s[81], c;printf( "\nPlease enter a string:\n" ); gets ( s );printf ("\n Please enter the character to search : " );c = getcharO;fun( 3 ) ;printf( "\nThe result is %s\n", s);2.程序修改【答案】(1)错误:第5行fun(int**a,int m)正确:fun(int a[][M],Int m)(2)错误:第9行 a[j][k]=k*j;正确:a[j][k]=(k+1)*(j+1);【评析】第5行:第二个形参m是用户输入的维数,没有别的名堂,第一个形参是为了指明在函数fun()中要产生的多维数组,"**a"是不能正确表示一个多维数组的,我们应当使用"int a[M][M]"。
第9行:循环体的.内容是给m维的多维数组赋值,这个多维数组在列方向是由1开始的自然数,在行方向上是行首第一数的n倍数,显然,"a[j][k]=k*j;"不符合题意,我们应当使用"a[j][k]=(k+1)*(j+1);"。
二级C语言机试17_真题(含答案与解析)-交互
二级C语言机试17(总分100, 做题时间90分钟)1、填空题1.请补充main函数,该函数的功能是:从键盘输入学生的成绩(用回车键作为分隔符),并统计各分数段学生的人数。
具体要求为:A类为90~100分,B类为80~89分,C类为70~79分,D类为60~69分,59分以下的为E类。
当成绩为0时结束成绩的输入,并且最后输入的0不进行统计。
例如,输入89,99,45,64,56,78,88,74,66,55,0。
结果为A:1 B:2 C:2 D:2 E:3注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线上填入所编写的若干表达式或语句。
试题程序:#include<stdio.h>#include<conio.h>#define N 100main(){float score[N];int bb[5];int grade, i=-1,n=0;char ch='A';clrscr();printf("Input a score(0~100);\n");do{i++;n++;printf("score[%d]=",i);scanf ( 【1】);}while (score[i]!=0);for(i=0;i<5;i++)【2】;for(i=0;i<n-1;i++){grade= 【3】;switch(grade){case 10:case 9:bb[0]++;break;case 8:bb[1]++;break;case 7:bb[2]++;break;case 6:bb[3]++; break;default:bb[4]++;}}for(i=0;i<5;i++)printf("\n%c:%d",ch+i,bb[i]);}SSS_FILL分值: 30答案:[1] "%f",&score[i] [2] bb[i]=0 [3] score[i]/10[解析] 填空1;本题考查标准输入函数scanf()的调用格式,注意score[i]为实型变量,并且score[i]的前面要记住加上取址符&。
2017年全国计算机等级考试二级C语言真题及答案
全国计算机等级考试二级笔试试卷C 语言程序设计(附答案)(考试时间90 分钟,满分100 分)一、选择题((1)—(10)、(21)—(40)每题2 分,(11)—(20)每题1 分,共70 分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项填涂在答题卡相应位置上,答在试卷上不得分。
(1)下列叙述中正确的是A)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B)线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构C)线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构D)上述三种说法都不对(2)下列叙述中正确的是A)在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B)在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C)在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D)上述三种说法都不对(3)软件测试的目的是A)评估软件可靠性B)发现并改正程序中的错误C)改正程序中的错误D)发现程序中的错误(4)下面描述中,不属于软件危机表现的是A)软件过程不规范B)软件开发生产率低C)软件质量难以控制C)软件成本不断提高(5)软件生命周期是指A)软件产品从提出、实现、使用维护到停止使用退役过程B)软件从需求分析、设计、实现到测试完成的过程C)软件的开发过程D)软件的运行维护过程(6)面向对象方法中,继承是指A)一组对象所具有的相似性质B)一个对象具有另一个对象的性质C)各对象之间的共同性质D)类之间共享属性和操作的机制(7)层次型、网状型和关系型数据库划分原则是A)记录长度B)文件的大小B)联系的复杂程度D)数据之间的联系方式(8)一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间联系是A)一对一B)一对多C)多对多D)多对一(9)数据库设计中反映用户对数据要求的模式是A)内模式B)概念模式C)外模式D)设计模式(10)有三个关系R、S 和T 如下:则由关系R 和S 得到关系T 的操作是A)自然连接B)交C)投影D)并(11)以下关于结构化程序设计的叙述中正确的是A)一个结构化程序必须同时由顺序、分支、循环三种结构组成B)结构化程序使用goto 语句会很便捷C)在C 语言中,程序的模块化是利用函数实现的D)由三种基本结构构成的程序只能解决小规模的问题(12)以下关于简单程序设计的步骤和顺序的说法中正确的是A)确定算法后,整理并写出文档,最后进行编码和上机调试B)首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档C)先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档D)先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构(13)以下叙述中错误的是A)C 程序在运行过程中所有计算都以二进制方式进行B)C 程序在运行过程中所有计算都以十进制方式进行C)所有C 程序都需要编译链接无误后才能进行D)C 程序中整型变量只能存放整数,实型变量只能存放浮点数(14)有以下定义:int a;long b;double x,y;则以下选项中正确的表达式是A)a%(int)(x-y) B)a=x!=y; C)(a*y)%b D)y=x+y=x(15)以下选项中能表示合法常量的是A)整数:1,200 B)实数:1.5E2.0 C)字符斜杠:‟\‟ D)字符串:”\007” (16)表达式a+=a-=a=9 的值是A)9 B)-9 C)18 D)0(17)若变量已正确定义,在if(W)printf(“%d\n”,k);中,以下不可替代W的是A)a<>b+c B)ch=getchar() C)a==b+c D)a++(18)有以下程序#includemain(){ int a=1,b=0;if(!a) b++;else if(a==0)if(a) b+=2;else b+=3;printf(“%d\n”,b);}程序运行后的输出结果是A)0 B)1 C)2 D)3(19)若有定义语句int a,b;double x;则下列选项中没有错误的是A)switch (x%2){ case 0: a++; break;case 1: b++; break;default: a++; b++; }B) switch ((int)x/2.0){ case 0: a++; break;case 1: b++; break;default : a++; b++; }C) switch((int)x%2){ case 0: a++; break;case 1: b++; break;default : a++; b++; }D)switch((int)(x)%2){ case 0.0: a++; break;case 1.0: b++; break;default : a++; b++; }(20)有以下程序#includemain(){ int a=1,b=2;while(a<6) {b+=a; a+=2;b%=10;}printf(“%d, %d\n”,a,b);}程序运行后的输出结果是A)5,11 B)7,1 C)7,11 D)6,1(21)有以下程序#includemain(){ int y=10;while(y--);printf(“y=%d\n”,y);}程序执行后的输出结果是A)y=0 B)y=-1 C)y=1 D)while 构成无限循环(22)有以下程序#includemain(){ char s[ ]=”rstuv”;printf(“%c\n”,*s+2);}程序运行后的输出结果是A)tuv B) 字符t 的ASCII 值C)t D)出错(23)有以下程序#include <stdio.h>#include <string.h>main(){ char x[ ]=”STRING”;x[0]=0; x[1]=‟\0‟; x[2]=‟0‟;printf(“%d %d\n”,sizeof(x),strlen(x));}程序运行后的输出结果是A) 6 1 B) 7 0 C) 6 3 D) 7 1(24)有以下程序#includeint f(int x);main(){ int n=1,m;m=f(f(f(n)));printf(“%d\n”,m);}int f(int x){ return x*2; }程序运行后的输出结果是A)1 B)2 C)4 D)8(25)以下程序段完全正确的是A)int *p; scanf(“%d”,&p);B) int *p; scanf(“%d”,p);C) int k, *p=&k; scanf(“%d”,p);D) int k,*p; *p=&k; scanf(“%d”,p);(26)有定义语句:int *p[4];以下选项中与此语句等价的是A)int p[4]; B)int **p; C)int *(p[4]); D)int (*p)[4];(27)下列定义数组的语句中,正确的是A) int N=10; B) #define N 10 int x[N]; int x[N]; C) int x[0..10]; D) int x[ ];(28)若要定义一个具有5 个元素的整型数组,以下错误的定义语句是A)int a[5]={0}; B) int b[ ]={0,0,0,0,0}; C)int c[2+3]; D) int i=5,d[i];(29)有以下程序#includevoid f(int *p);main(){ int a[5]={1,2,3,4,5},*r=a;f(r );printf(“%d\n”,*r); }void f(int *p){ p=p+3;printf(“%d,”,*p);}程序运行后的输出结果是A)1,4 B)4,4 C) 3,1 D)4,1(30)有以下程序(函数fun 只对下标为偶数的元素进行操作)#includevoid fun(int *a,int n){ int i,j,k,t;for(i=0;i<n-1;i+=2){k=i;for(j=i;j<n;j+=2) if(a[j]>a[k]) k=j;t=a[i]; a[i]=a[k]; a[k]=t; }}main(){ int aa[10]={1,2,3,4,5,6,7},i;fun(aa,7);for(i=0;i<7;i++)printf(“%d,”,aa[i]);printf(“\n”);}程序运行后输出结果是A)7,2,5,4,3,6,1,B)1,6,3,4,5,2,7,C)7,6,5,4,3,2,1,D)1,7,3,5,6,2,1,(31)下列选项中,能够满足“若字符串s1 等于字符串s2, 则执行ST”要求的是A)if(strcmp(s2,s1) ==0) ST;B) if(s1==s2) ST;C) if(strcpy(s1,s2) ==1) ST;D) if(s1-s2==0) ST;(32)以下不能将s 所指字符串正确复制到t 所指存储空间的是A)while(*t=*s){t++,s++;}B)for(i=0;t[i]=s[i];i++);C)do{*t++=*s++;}while(*s);D)for(i=0,j=0;t[i++]=s[j++]; );(33)有以下程序(strcat 函数用以连接两个字符串)#include <stdio.h>#include <string.h>main(){ char a[20]=”ABCD\0EFG\0”, b[ ]=”IJK”;strcat(a,b);printf(“%s\n”,a);}程序运行后的输出结果是A)ABCDE\OFG\OIJK B)ABCDIJK C)IJK D)EFGIJK(34)有以下程序,程序中库函数islower(ch)用以判断ch 中的字母是否为小写字母#include <stdio.h>#include <ctype.h>void fun(char *p){ int i=0;while(p[i]){ if(p[i] ==‟…&&islower(p[i-1])) p[i-1]=p[i-1]-‟a‟+‟A‟;i++;}}main(){ char s1[100]=”ab cd EFG !”;fun(s1);printf(“%s\n”,s1);}程序运行后的结果是A) ab cd EFG ! B) Ab Cd EFg ! C) aB cD EFG ! D) ab cd EFg !(35)有以下程序#includevoid fun(int x){ if(x/2>1)fun(x/2);printf(“%d ”,x);}main(){ fun(7);printf(“\n”);}程序运行后的输出结果是A)1 3 7 B)7 3 1 C)7 3 D)3 7(36)有以下程序#includeint fun(){ static int x=1;x+=1;return x;}main(){ int i, s=1;for(i=1;i<=5;i++)s+=fun();printf(“%d\n”,s);}程序运行后的输出结果是A)11 B)21 C)6 D)120(37)有以下程序`#include <stdio.h>#include <stdlib.h>main(){ int *a,*b,*c;a=b=c=(int *)malloc(sizeof(int));*a=1;*b=2;*c=3;a=b;printf(“%d,%d,%d\n”,*a,*b,*c);}程序运行后的输出结果是A)3,3,3 B)2,2,3 C)1,2,3 D)1,1,3(38)有以下程序#includemain(){ int s,t,A=10;double B=6;s=sizeof(A);t=sizeof(B);printf(“%d,%d\n”,s,t);}在VC6 平台上编绎运行,程序运行后输出结果是A)2,4 B)1,4 C)4,8 D)10,6(39)若有以下语句typedef struct S{int g ; char h;} T;以下叙述中正确的是A)可用S 定义结构体变量B)可用T 定义结构体变量C)S 是struct 类型的变量D)T 是struct S 类型的变量(40)有以下程序#includemain(){ short c=124; c=c ;printf(“%d\n”,c);}若要使程序的运行结果为248,应在下划线处填入的是A)>>2 B) |248 C)& 0248 D) <<1二、填空题(每空2 分,共30 分)请将每空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。
2017年上半年全国高等学校计算机水平二级C笔试试卷及参考答案
2017年上半年全国高等学校计算机水平考试试卷(二级C程序设计)一、程序填空题(每题12分,共36分)1.以下程序从键盘输入一个整数,输出其对应的英文星期单词。
若输入的整数在1到7之外,则输出“Error!”,请填空。
#include <stdio.h>void main(){int n;printf("Input n:");scanf("%d",___________&n___);switch(n){case 1:printf("Monday\n");break;case 2:printf("Tuesday\n");break;case 3:printf("Wednesday\n");break;case 4:printf("Thursday\n");break;case 5:printf("Friday\n");break;case 6:printf("Saturday\n");break;case 7:printf("Sunday\n");_____break_________;____default__________:printf("Error!\n");break;}}2.以下程序输出一维数组中的最大元素及其下标值,请填空。
#include <stdio.h>int search(int a[],int n) /* 求最大元素的下标*/{int i,max;max=__ _a[max]______;for(i=1;i<n;i++){if(a[i]>a[max])max=__a[i]________;}return max;}void main(){int a[10]={13,1,-5,4,9,100,-8,7,-6,2};int max;__max________=search(a,10);printf("最大值:%d,下标:%d\n",a[max],max);}3.以下程序定义求n!的递归函数f(),并调用函数f()求2!+3!+4!+5!+6!的值,请填空。
2017年全国计算机2级考试(C语言程序设计)笔试模拟试题及答案
2017年全国计算机等级考试二级笔试模拟试题C语言程序设计(考试时间90分钟,满分100分)一、选择题((1)-(10)、(21)-(40)每题2分,(11)-(20)每题1分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)下列叙述中正确的是()A)栈是“先进先出”的线性表B)队列是“先进后出”的线性表C)循环队列是非线性结构D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构(2)支持子程序调用的数据结构是()A)栈B)树C)队列D)二叉树(3)某二叉树有5个度为z的结点,则该二叉树中的叶子结点数是()A)10 B)8 C)6 D)4(4)下列排序方法中,最坏情况下比较次数最少的是()A)冒泡排序B)简单选择排序C)直接插入排序D)堆排序(5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是()A)编译程序B)操作系统C)教务管理系统D)汇编程序(6)下面叙述中错误的是()A)软件测试的目的是发现错误并改正错误B)对被调试的程序进行“错误定位”是程序调试的必要步骤C)程序调试通常也称为DebugD)软件测试应严格执行测试计划,排除测试的随意性(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_1 B)1-1 C)_11 D)1_ _(12)若函数中有定于语句:int k;,则()A)系统将自动给K赋初值0B)时k中的值无定义C)系统将自动给k赋初值-1D)这时k中无任何值(13)以下选项中,能用作数据常量的是()A)0115 B)0118 C)1.5e1.5 D)115L(14)设有定义:int x=2;,以下表达式中,值不为6的是()A)x*=x+1 B)x++,2*x C)x*=(i+x)D)2*x, x+=2(15)程序段:int x=12; double y=3.141593; printf(“%d%8.6f”,x, y);的输出结果是()A)123.141593 B)12 3.141593 C)12, 3.141593 D)123.1415930(16)若有定义语句:double x, y,*px,*pY; 执行了px=&x; py=&y;之后,正确的输入语句是()A)scarf(“%f%1”,x,y);B)scarf(“%f%f”,&x,&y);C)scarf(“%lf%1e”,px,py);D)scarf(“%lf%lf”,x,y);(17)以下是if语句的基本形式:()if〔表达式)语句其中“表达式”A)必须是逻辑表达式B)必须是关系表达式C)必须是逻辑表达式或关系表达式D)可以是任意合法的表达式(18)有以下程序#include <stdio.h>main(){int x;scarf(“&d”,&x);i f (x<=3);elseif (x!=10)printf(“&d\n”。
全国计算机等级考试二级C语言上机考试题库及答案
第1套一、填空给定函数的功能是调用fun 函数建立班级通讯录。
通讯录记录每位学生的编号,姓名和电话号码。
班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为答案yfile5.dat的二进制文件中。
答案:1. STYPE 2. FILE3. fp二、修改先将在字符串s中的字符按正序存放到t串中,然后把s 中的字符按逆序连接到t串后面。
答案:1. for(i = 0 ; i < sl ;i++) 2. t[2*sl] =` 0`; 三、程序将两个两位数的正整数a,答案合并成一个整数放在c中。
合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,答案数的十位和个位数依次放在c数的百位和个位上。
*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);第2套一、填空从键盘输入若干行文本(每行不超过80个字符),写到文件答案yfile4.txt中,用-1作为字符串输入结束的标记。
然后将文件的内容读出显示在屏幕上。
文件的读写分别有自定义函数ReadText 和WriteText实现。
答案:*fw str str 二、修改从低位开始取出长整形变量s中的奇数位上的数,依次构成一个新数放在t中,高位仍放在高位,低位仍放在低位。
答案:long *t sl =sl*10;三、程序将两个两位数的正整数a,答案合并成一个整数放在c中。
合并的方式:将a数的十位和个位数依次放在c数的千位和十位上,答案数的十位和个位数依次放在c数的百位和个位上。
*c=(b/10)*1000+(a%10)*100+(b%10)*10 +(a/10);第3套一、填空将自然数1~10以及它们的平方根写到名为答案yfile3txt的文本文档中,然后再顺序读出显示在屏幕上。
答案:(1)fp (2)fclose(fp)(3)fname二、修改将n个无序整数从小到大排序。
答案:for(i=j+1;i<n;i++)p=i;三、程序将两个两位数的正整数a,答案合并成一个整数放在c中。
2017c语言二级等级试题及答案
2017c语言二级等级试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述中,错误的是()。
A. C语言是一种高级语言B. C语言具有结构化的特点C. C语言可以直接被计算机执行D. C语言可以用于编写操作系统答案:C2. C语言中,用于定义变量的关键字是()。
A. varB. letC. defineD. int答案:D3. 在C语言中,下列哪个运算符用于取模运算()。
A. %B. /C. *D. -答案:A4. 下列关于数组的描述中,正确的是()。
A. 数组的下标从0开始B. 数组的下标从1开始C. 数组的下标可以是负数D. 数组的下标可以是小数答案:A5. 下列关于指针的描述中,错误的是()。
A. 指针可以指向一个变量B. 指针可以指向一个函数C. 指针可以作为函数的参数D. 指针可以存储数据答案:D6. 在C语言中,用于实现循环结构的关键字是()。
A. loopB. whileC. repeatD. do答案:B7. 下列关于函数的描述中,错误的是()。
A. 函数可以有返回值B. 函数可以没有返回值C. 函数可以有多个返回值D. 函数可以有参数答案:C8. 在C语言中,用于定义结构体的关键字是()。
A. structB. unionC. enumD. typedef答案:A9. 下列关于文件操作的描述中,错误的是()。
A. 文件操作需要使用文件指针B. 文件操作需要包含头文件stdio.hC. 文件操作需要使用fopen函数打开文件D. 文件操作后不需要关闭文件答案:D10. 在C语言中,下列哪个关键字用于定义宏()。
A. defineB. macroC. constD. var答案:A二、填空题(每题2分,共10分)1. C语言中,用于定义一个整型变量的关键字是________。
答案:int2. C语言中,用于定义一个字符型变量的关键字是________。
答案:char3. C语言中,用于定义一个浮点型变量的关键字是________。
国家二级计算机题库(c语言2017)
第一套:填空:程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息。
函数fun的功能是输出这位学生的信息。
请在程序的下划线处填入正确的内容并把下划线的内容并把下划线删除,使程序得出正确的结果。
1、tt 2、tt.score[i] 3、std改错:给定程序MODI1.C中函数fun的功能是:求出数组中最大数和次最大数并把最大数和a[0]中的数对调、次最大数和a[1]中的数对调。
m=0改为m=i k=m改为m=k编程:请编写一个函数unsigned fun (unsigned w),w是一个大于10的无符号整数,若w是n(n≥2)位的整数,函数求出w的低n-1位的数作为函数值返回。
{if(w>10000) w %= 10000 ;else if(w>1000) w %= 1000 ;else if(w>100) w %= 100 ;else if(w>10) w %=10 ;return w ;}第二套填空:给定程序中,函数fun的功能是:对形参ss所指字符串数组中的M个字符串按长度由短到长进行排序。
Ss所指字符串数组中共有M个字符串,且串长<N。
1、i+12、k=j3、t改错:Fun的功能是:判断ch中的字符是否与str所指串中的某个字符相同;若相同,什么也不做,若不同,则将其插在串的最后。
1、str 前加个*2、==改为!=3、…0‟改为‟\0‟编程:请编一个函数fun (char *s),函数的功能是把s所指字符串中的内容逆置。
{char b[N] ;int i = 0, j ;for(j = strlen(s) - 1 ; j >= 0 ; j--)b[i++] = s[j] ;b[i]=0;strcpy(s, b) ;}第三套填空:求出形参ss所指字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其怀最长的字符串等长。
字符串数组中共有M个字符串,且串长<N。
2017年全国计算机等级考试二级C语言程序设计真题
2017年3月全国计算机等级考试二级C语言程序设计真题(1)(总分:100.00,做题时间:120分钟)一、选择题(总题数:40,分数:40.00)1.下列叙述中正确的是(分数:1.00)A.程序执行的效率与数据的存储结构密切相关(正确答案)B.程序执行的效率只取决于程序的控制结构C.程序执行的效率只取决于所处理的数据量D.以上说法均错误解析:程序执行的效率与数据的存储结构、数据的逻辑结构、程序的控制结构、所处理的数据量等有关。
2.下列与队列结构有关联的是(分数:1.00)A.函数的递归调用B.数组元素的引用C.多重循环的执行D.先到先服务的作业调度(正确答案)解析:队列的修改是依照“先进先出” 的原则进行的,故D 正确。
3.对下列二叉树进行前序遍历的结果为(分数:1.00)A.DYBEAFCZXB.YDEBFZXCAC.ABDYECFXZ (正确答案)D.ABCDEFXYZ解析:前序遍历是指在访问根节点、遍历左子树与遍历右子树这三者中,首先访问根节点,然后遍历左子树,最后遍历右子树;并且在遍历左、右子树时,仍然先访问根节点,然后遍历左子树,最后遍历右子树。
因此,前序遍历可描述为:若二叉树为空,则执行空操作。
否则:①访问根节点;②前序遍历左子树;③前序遍历右子树。
所以C 正确。
4.一个栈的初始状态为空,现将元素1,2,3,A,B,C 依次入栈,然后再依次出栈,则元素出栈的顺序是(分数:1.00)A.1,2,3,A,B,CB.C,B,A,1,2,3C.C,B,A,3,2,1 (正确答案)D.1,2,3,C,B,A解析:栈的修改是按照“后进先出” 的原则进行的,所以顺序应与入栈顺序相反,故选C。
5.下面属于白盒测试方法的是(分数:1.00)A.等价类划分法B.逻辑覆盖(正确答案)C.边界值分析法D.错误推测法解析:白盒测试法主要有逻辑覆盖、基本路径测试等。
逻辑覆盖测试包括语句覆盖、路径覆盖、判定覆盖、条件覆盖、判断一条件覆盖,故选择B。
2017年9月全国计算机等级考试二级c语言笔试试题(含参考答案)
全国计算机等级考试二级笔试卷 基础知识和C 语言程序设计 (考试时间120分钟,满分100分)2017年9月一、选择题((1)-(40)每小题1分,(41)-(50)每小题2分,共60分)下列各题 A) 、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1) 第一台电子数字计算机ENIAC 诞生于A) 1927年 B)1936年C) 1946年 D) 1951年(2) 用FORTRAN 语言编制的源程序要变为目标程序,必须经过A) 汇编 B) 解释 C) 编辑 D) 编译 (3) 计算机软件一般包括系统软件和A) 字处理软件 B) 应用软件 C) 管理软件 D) 科学计算机软件(4) 计算机内使用的数是A) 二进制数 B) 八进制数C) 十进制数 D) 十六进制数(5) 目前微型机常用的5.25寸双面高密度软盘的容量是A) 360KB B) 1.44MB C) 760KBD) 1.2MB(6) 具有多媒体功能的微机系统常用CD-ROM 作为外存储器,它是A) 只读内存储器 B) 只读大容量软盘 C) 只读硬盘 D) 只读光盘说明:(7)到(17)题给定的条件如下:微机系统有A 和B 两个容量相同的软盘驱动器,硬盘C 的目录结构为文件AUTOEXEC.BAT 的内容为PROMPT $P$G CD F4 CD \DOS (7) 微机系统用硬盘C 启动后,当前系统提示符是C:\根目录A) C:\> B) C:\DOS> C) C:\F4> D) C>(8) 在用C盘启动后,把A盘格式化成系统盘的命令为A) FORMAT A: B) \FORMAT A:/SC) \DOS\FORMAT A:/S D) \DOS\FORMAT A:\S(9) 设当前盘为C盘,C盘当前目录为\DOS。
把JD1.FOR和JD2.FOR连接起来后存入A盘根目录下,命名为JD3.FOR,应使用命令A) COPY JD1.FOR+JD2.FOR A:JD3.FORB) COPY \F4\JD1.FOR+JD2.FOR A:\JD3.FORC) COPY \F4\JD1.FOR+\F4\JD2.FOR A:\JD3.FORD) COPY \F4\JD1.FOR+\F4\JD2.FOR JD3.FOR(10) 设当前盘为C盘,C盘当前目录为\DOS。
2017年全国计算机等级考试二级C 语言真题及答案8
2017 年全国计算机等级考试笔试试卷及答案二级公共基础知识和C 语言程序设计(考试时间120 分钟,满分100 分)一、选择题((1)-(10)每小题2 分,(11)-(50)每小题1 分,共60 分)(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)ABCDEFB)DBEAFCC)ABDECFD)DEBFCA(7)在深度为7 的满二叉树中,叶子结点的个数为()。
A)32B)31C)64D)63(8)“商品”与“顾客”两个实体集之间的联系一般是()。
A)一对一B)一对多C)多对一D)多对多(9)在E-R 图中,用来表示实体的图形是()。
A)矩形B)椭圆形C)菱形D)三角形(10)数据库DB、数据库系统DBS、数据库管理系统DBMS 之间的关系是()。
A)DB 包含DBS 和DBMSB)DBMS 包含DB 和DBSC)DBS 包含DB 和DBMSD)没有任何关系(11)下列不合法的用户标识符是()。
A)j2_KEYB)DoubleC)4dD)_8_(12)下列不合法的数值常量是()。
A)011B)1e1C)8.0E0.5D)0xabcd(13)下列不合法的字符常量是()。
A)'\018'B)'\" 'C)'\\'D)'\xcc'(14)表达式3.6-5/2+1.2+5%2 的值是()。
2017年全国计算机等级考试C语言上机考试题库---41-60套
2017年全国计算机等级考试C 语言上机考试题库---41-60套2017年全国计算机等级考试C语言上机考试题库学生练习用第41套至第60套第四十一套1、程序填空下列给定程序中,函数fun的功能是:将形参s所指字符串中的所有字母字符顺序前移,其他字符顺序后移,处理后将新字符串的首地址作为函数值返回。
例如,若s所指字符串为:"asd123fgh543df",处理后新字符串为:"asdfghdf123543"。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!-----------------------------------------------------------------------------------------------------------------#include <stdio.h>#include <stdlib.h>#include <string.h>char *fun(char *s){ int i, j, k, n; char *p, *t;n=strlen(s)+1;t=(char*)malloc(n*sizeof(char));p=(char*)malloc(n*sizeof(char));j=0; k=0;for(i=0; i<n; i++){ if(((s[i]>='a')&&(s[i]<='z'))||((s[i]> ='A')&&(s[i]<='Z'))) {/**********found**********/t[j]=__1__; j++;}else{ p[k]=s[i]; k++; }}/**********found**********/for(i=0; i<__2__; i++) t[j+i]=p[i];/**********found**********/t[j+k]= __3__;return t;}main(){ char s[80];printf("Please input: "); scanf("%s",s);printf("\nThe result is: %s\n",fun(s)); }{char *p , *r, *a;strcpy( w, s );/************found************/while ( w ){ p = w; r = t1;while ( *r )/************found************/IF ( *r == *p ){ r++; p++; }else break;if ( *r == '\0' ) a = w;w++;}r = t2;while ( *r ){ *a = *r; a++; r++; }}main(){char s[100], t1[100], t2[100], w[100];printf("\nPlease enter string S:"); scanf("%s", s);printf("\nPlease enter substring t1:"); scanf("%s", t1);printf("\nPlease enter substring t2:"); scanf("%s", t2);if ( strlen(t1)==strlen(t2) ){ fun( s, t1, t2, w);printf("\nThe result is : %s\n", w); }else printf("\nError : strlen(t1) != strlen(t2)\n");}-----------------------------------------------------------------------------------------------------------------【参考答案】(1)while(*w)(2)if(*r==*p)【考点分析】本题考查:while循环语句,C语言中的关键字。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2017年全国计算机等级考试二级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返回这些数的个数。
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;i<n/2;i++)第二处a[i]=a[n-1-i];第三处a[n-i-1]=t;2程序修改给定程序MODI1.C中函数fun的功能是:将一个由八进制数字字符串组成的字符串转换为与其面值相等的十进制整数。
规定输入的字符串最多只能包含5位八进制数字字符。
/**found**/n=*p-…0‟;/**found**/n=n*8+*p-…0‟;3. 程序设计学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:函数返回指定学号的学生数据,指定的学生号在主函数中输入,若没有找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。
(用于字符串比较的函数是strcmp)。
STREC fun(STREC*a,char *b){STREC c;Int i;c.num[0]=‟\0‟;c.s=-1;for(i=0;i<N;i++)if(strcmp(a[i].num,b)==0){strcpy(c.num,a[i].num);c.s=a[i].s;break;}return c;}第四套1.程序填空给定程序中,函数fun的功能是:在带有头结点的单向链表中,查找数据域中值为ch的结点。
找到后通过函数值返回该结点在链表中所处的顺序号:若不存在值为ch的结点,函数值返回0.第一处while(p!=0)第二处if(p->data==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<strlen(ss);i+=2){if(ss[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;i<k;i++)t[j+i]=p[i];第三处t[j+k]=0;2. 程序修改给定程序MODI1.C中函数fun的功能是:将s所指字符串中最后一次出现的与t1所指字符串相同的子串替换成t2所指定字符串,所形成的新串放在w所指的数组中。
在此处,要求t1和t2所指字符串的长度相同。
/**found**/while(*w)/**found**/if(*r==*p)3. 程序设计函数fun的功能是:将s所指字符串中ASCII 值为奇数的字符删除,串中剩余字符形成一个新串放在t所指定的数组中。
void fun(char *s,char t[]){ int i,j=0;for(i=0;i<strlen(s);i++)if(s[i]%2==0)t[j++]=s[i];t[j]=0;}第七套1.程序填空程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。
函数fun的功能是将形参a所指结构体变量s中的数据进行修改,并把a中地址作为函数值返回主函数,在主函数中输出修改后的数据。
第一处struct student *fun(struct student*a)第二处for(i=0;i<3;i++)a->score[i]+=1;第三处return a;2. 程序修改给定程序MODI1.C中函数fun的功能是:从N个字符串中找出最长的那个串,并将其地址作为函数值返回。
各字符串在主函数中输入,并放在一个字符串数组中。
/**found**/char *fun(char (*sq)[M])/**found**/return sp;3. 程序设计函数fun的功能是:将a、b中的两位正整数合并形成一个新的整数放在c中。
合并的方式是:将a中的十位和个位依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的十位和千位上。
#include <stdio.h>void fun(int a,int b,long *c){ *c=(b%10)*1000+(a/10)*100+(b/10)*10+a%1 0;}第八套1. 程序填空函数fun的功能是:将形参观者工所指数组中的前半部分元素中的值和后半部分元素中的值对换。
形参n中存放数组中数据的个数,若n为奇书,则中间元素不动。
第一处p=(n%2==0)?n/2:n/2+1;第二处a[i]=a[p+i];第三处a[p+i]=t;2. 程序修改给定程序MODI1.C中函数fun的功能是:把主函数中输入的三个数,最大的放在a中,最小的放在c中,中间的放在b中。
/**found**/float k;/**found**/ if(*a<*c)3. 程序设计学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s 中,请编写了函数fun,它的功能是:把分数最高的学生数据放在b所指的数组中,注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。
int fun(STREC *a,STREC *b){int i,max=a[0].s,n=0;for(i=1;i<N;i++)if(max<a[i].s)max=a[i].s;for(i=0;i<N;i++)if(max==a[i].s)b[n++]=a[i];return n;}第九套1. 程序填空给定程序中,函数fun的功能是:计算形参x 所指数组中N个数的平均值,(规定所有数均为正数),将所指数组中小于平均值的数据移至数据的前部,大于等于平均数的移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。
第一处for(i=0;i<N;i++)av+=x[i]/N第二处y[j]=x[i];x[i]=-1;j++;}第三处i++;2. 程序修改给定程序MODI1.C中函数fun的功能是:统计字符串各元音字母(即:A、E、I、O、U)的个数。
注意字母不分大小写。
/**found**/num[k]=0;/**found**/switch(*s)3. 程序设计请编写函数fun,函数的功能是:求出二级数组周边元素之和,作为函数值返回。
二维数组中的值在主函数中赋予。
int fun(int a [M][N]){int tot=0,i,j;for(i=0;i<N;i++){tot +=a[0][i];tot +=a[M-1][i];}for(i=1;i<M-1;i++){tot +=a[i][0];tot +=a[i][N-1];}return tot;}第十套1.程序填空程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。