最新2001年4月全国2001计算机等级考试二级C语言笔试试题及答案
- 格式:doc
- 大小:33.50 KB
- 文档页数:14
计算机二级c语言考试真题及答案详解一、单项选择题(每题2分,共40分)1. 在C语言中,以下哪个选项是合法的整型常量?A. 0x12B. 0x12.3C. 0x12LD. 0x12.3L答案:A2. 若有定义int a=1, b=2;,则以下哪个表达式的值不为真?A. a<bB. a<=bC. a>bD. a!=b答案:C3. 在C语言中,以下哪个选项是合法的字符串字面量?A. "Hello, World"B. 'Hello, World'C. "Hello, World\n"D. "Hello, World\0"答案:A4. 下列哪个函数不能正确计算数组元素的总和?A. sum = 0; for(i=0; i<n; i++) sum += array[i];B. sum = 0; for(i=0; i<n; i++) sum = sum + array[i];C. sum = 0; for(i=0; i<n; i++) sum = array[i];D. sum = 0; for(i=0; i<n; i++) sum += array[i];答案:C5. 在C语言中,以下哪个选项是合法的函数声明?A. int add(int, int);B. int add();C. int add(int a, int b);D. int add(a, b);答案:C6. 若有定义int a[10];,则以下哪个表达式是合法的数组元素访问?A. a[10]B. a[-1]C. a[3.5]D. a[3]答案:D7. 在C语言中,以下哪个选项是合法的指针声明?A. int *ptr;B. int *ptr[];C. int ptr*;D. int ptr[];答案:A8. 若有定义int x=10;,则以下哪个表达式是合法的赋值语句?A. x = x + 1;B. x = 1 + x;C. x = x++;D. x = ++x;答案:A9. 在C语言中,以下哪个选项是合法的循环语句?A. for(;;)B. while(1)C. do {} while(0)D. for(;;) {}答案:D10. 若有定义int a[5] = {1, 2, 3, 4, 5};,则以下哪个表达式是合法的数组元素访问?A. a[5]B. a[-1]C. a[2.5]D. a[2]答案:D11. 在C语言中,以下哪个选项是合法的switch语句?A. switch(x) { case 1: break; }B. switch(x) { default: break; }C. switch(x) { case 1: case 2: break; }D. switch(x) { case 1: default: break; }答案:C12. 若有定义int x=5;,则以下哪个表达式是合法的自增运算?A. x++;B. ++x;C. x--;D. --x;答案:A13. 在C语言中,以下哪个选项是合法的函数原型声明?A. void func();B. int func(int);C. void func(int a);D. All of the above答案:D14. 若有定义int a=3;,则以下哪个表达式是合法的位运算?A. a & 2B. a | 2C. a ^ 2D. All of the above答案:D15. 在C语言中,以下哪个选项是合法的宏定义?A. #define PI 3.14159B. #define PI 3.14159fC. #define PI 3.14159LD. All of the above答案:A二、编程题(每题30分,共60分)1. 编写一个函数,计算并返回一个整数数组中所有元素的和。
计算机二级c语言笔试题库及答案尊敬的读者,本文将为您提供一份关于计算机二级C语言笔试题库及答案的合集。
以下是一系列包含不同难度等级的C语言题目,供您练习和学习。
请您按照合同的格式访问以下题目,并查看相应答案。
题目一:请编写一个C语言程序,输出“Hello World!”。
提示:```c#include <stdio.h>int main() {printf("Hello World!");return 0;}```题目二:请编写一个C语言程序,输入两个整数,并输出它们的和。
提示:```c#include <stdio.h>int main() {int num1, num2;printf("请输入两个整数:");scanf("%d%d", &num1, &num2);printf("两数之和:%d\n", num1 + num2); return 0;}```题目三:下列程序的输出结果是什么?```c#include <stdio.h>int main() {int a = 2, b = 3, c = 4, d;d = a + (c % b) * (a++);printf("%d\n", d);return 0;}```答案一:输出结果为:"Hello World!"答案二:代码中输入的两个整数可以通过用户在程序运行时进行输入。
假设输入的两个整数分别是1和2,则输出结果为:3答案三:输出结果为:4题目四:请编写一个C语言函数,实现计算斐波那契数列的第n项的值。
```c#include <stdio.h>int fibonacci(int n) {if (n <= 0) {return -1; // 输入不合法}if (n == 1 || n == 2) {return 1;}int a = 1, b = 1, i, temp;for (i = 3; i <= n; i++) {temp = a + b;a = b;b = temp;}return b;}int main() {int n;printf("请输入一个正整数:");scanf("%d", &n);printf("第%d项的值为:%d\n", n, fibonacci(n));return 0;}```答案四:用户在程序运行时可以输入一个正整数n,然后程序将计算斐波那契数列的第n项的值,并输出结果。
计算机二级C++考试试题及答案计算机二级C++考试试题及答案计算机二级考试是全国计算机等级考试〔National Computer Rank Examination,简称NCRE〕四个等级中的一个等级,考核计算机根底知识和使用一种高级计算机语言编写程序以及上机调试的根本技能。
那么计算机二级C++考试会怎么考?以下仅供参考!1). SQL语言又称为( )。
A.构造化定义语言B.构造化控制语言C.构造化查询语言D.构造化操纵语言正确答案:C答案解析:soL语言的全称为Structured QueryLanguage,它是一种介于关系代数与关系演算之间的构造化查询语言,是一种面向数据库的通用数据处理语言标准。
它包含数据查询语言、数据操纵语言、数据定义语言和数据控制语言四个局部。
2). 假设有定义语句″int i=2,j=3;″,那么表达式i/j的结果是( )。
A.0B.0.7C.0.66667D.0.66666667正确答案:A答案解析:整数相除为整数,所以结果为0。
3). NULL是指A.0B.空格C.未知的值或无任何值D.空字符串正确答案:C答案解析:此题属于记忆性的题目,NULL是指未知的值或无任何值。
4). C++语言是以哪种语言为根底逐渐开展演变而成的一种程序设计语言A.ASPB.CC.VBD.Java正确答案:B答案解析:C++语言是对C语言进展了扩大,继承了它的语法,并增加了面向对象的设计方法。
5). 继承机制的作用是A.信息隐藏B.数据封装C.定义新类D.数据抽象正确答案:C6). 以下定义数组中错误的选项是( )A.int a[10];B.int a[2][20];C.int a[20][];D.int a[];正确答案:C7). 软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。
以下属于应用软件的是( )。
A.编译程序B.操作系统C.教务管理系统D.汇编程序正确答案:C答案解析:编译程序和汇编程序属于开发工具;操作系统属于系统软件;教务管理系统属于应用软件。
1:第1题 m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。
答案:int fun(int score[],int m,int below[]){int i,k=0,aver=0;for(i=0;i<m;i++)aver+=score[i];aver/=m;for(i=0;i<m;i++)if(score[i]<aver){below[k]=score[i];k++;}return k;}2: 第2题请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。
答案:void fun(int *a, int *n){int i,j=0;for(i=2;i<1000;i++)if ((i%7==0 || i%11==0) && i%77!=0)a[j++]=i;*n=j;}3: 第3题请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
答案:void fun(int x, int pp[], int *n){int i=1,j=0;k=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[j]=I;j++;}for(i=0;i<j;i++)if(x%t[i]==0){pp[k]=t[i];k++;}*n=k;}4:第4题请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到”z”26各字母各自出现的次数,并依次放在pp所指的数组中。
答案:void fun(char *tt, int pp[]){int i;for (i=0;i<26;i++)pp[i]=0;while (*tt){switch (*tt){case ‘a’: pp[0]++;break;case ‘b’: pp[1]++;break;case ‘c’: pp[2]++;break;case ‘d’: pp[3]++;break;case ‘e’: pp[4]++;break;case ‘f’: pp[5]++;break;case ‘g’: pp[6]++;break;case ‘h’: pp[7]++;break;case ‘i’: pp[8]++;break;case ‘j': pp[9]++;break;case ‘k': pp[10]++;break;case ‘l’: pp[11]++;break;case ‘m’: pp[12]++;break;case ‘n’: pp[12]++;break;case ‘o': pp[14]++;break;case ‘p': pp[15]++;break;case ‘q’: pp[16]++;break;case ‘r': pp[17]++;break;case ‘s’: pp[18]++;break;case ‘t': pp[19]++;break;case ‘u’: pp[20]++;break;case ‘v': pp[21]++;break;case ‘w’: pp[22]++;break;case ‘x’: pp[23]++;break;case ‘y': pp[24]++;break;case ‘z': pp[25]++;break;}tt++;}}5:第5题请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k各素数存入xx所指的数组中。
全国计算机等级考试《二级C语言程序设计》历年真题精选及详解一、选择题(请在【答题】菜单上选择【选择题】命令,启动选择题测试程序,按照题目上的内容进行答题。
作答选择题时键盘被封锁,使用键盘无效,考生须使用鼠标答题。
选择题部分只能进入一次,退出后不能再次进入。
选择题部分不单独计时。
)1.下列叙述中正确的是()。
A.所有数据结构必须有根结点B.所有数据结构必须有终端结点(即叶子结点)C.只有一个根结点,且只有一个叶子结点的数据结构一定是线性结构D.没有根结点或没有叶子结点的数据结构一定是非线性结构【答案】D【解析】D项正确,线性结构的特点是:①集合中必存在“第一个元素”且惟一;②集合中必存在“最后一个元素”且惟一;③除最后一个元素外,其他数据元素均有惟一的“后继”;④除第一个元素外,其他数据元素均有惟一的“前驱”。
所以没有根结点或没有叶子结点的数据结构一定是非线性结构。
AB两项错误,不是所有数据结构都必须有根结点和叶子结点;C项错误,数据结构中若有中间结点不满足只有一个前件或者后件的条件,就不是线性结构。
答案选择D选项。
2.以下叙述中错误的是()。
A.C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令B.C程序经过编译、链接步骤之后才能形成一个真正可执行的二进制机器指令文件C.用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中D.C语言源程序经编译后生成后缀为.obj的目标程序【答案】A【解析】A项错误,注释语句不会被翻译成二进制的机器指令。
C源程序经过C编译程序编译之后生成后缀为.obj的二进制文件(称为目标文件),然后由“链接程序”(Link)的软件把.obj文件与各种库函数连接起来生成一个后缀为.exe的可执行文件。
答案选择A选项。
3.C语言主要是借助以下()功能来实现程序模块化的。
A.定义函数B.定义常量和外部变量C.三种基本结构语句D.丰富的数据类型【答案】A【解析】C程序的模块化主要通过函数来实现。
全国计算机等级考试二级C语言笔试试题及答案(04)2006年4月全国计算机等级考试二级C语言笔试试题(含参考答案)一选择题((1)-(10)每题2分,(11)-(50)每题1分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
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) ABCDEF B) DBEAFC C) ABDECF D) DEBFCA 7)在深度为7的满二叉树中,叶子结点的个数为A)32 B)31 C)64 D)638)“商品”与“顾客”两个实体集之间的联系一般是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_KEY B)Double C) 4d D) _8_12)以下不合法的数值常量是A)011 B)lel C) 8.0 E0.5 D) 0xabcd13)以下不合法的字符常量是A)'\018' B)'\”' C) '\\' D) ‘\xcc'14)表达式3.6-5/2+1.2+5%2的值是A)4.3 B) 4.8 C) 3.3 D) 3.815)以下能正确定义字符串的语句是A)char str[]={‘\064'};B) char str=”\x43”;C) char str=”;D) char str[]=”\0”;16)以下数组定义中错误的是A) int x[][3]={0};B) int x[2][3]={{1,2},{3,4},{5,6}};C) nt x[][3]={{1,2,3},{4,5,6}};D)int x[2][3]={1,2,3,4,5,6};17)若要求从键盘读入含有空格字符的字符串,应使用函数A)getc() B) gets() C) getchar() D) scanf()18) 下四个程序中,完全正确的是A)#include B)#includemain(); main(){/*programming*/ {/*/programming/*/printf(“programming!\n”);}printf(“programming!\n”);} C) #include D) includemain() main(){/*/*programming*/*/ {/*programming*/ printf(“programming!\n”);}printf(“programming!\n”);} 19)若有定义:float x=1.5; int a=1,b=3,c=2;则正确的switch语句是A)switch(x)B) switch((int)x);{case 1.0: printf(“*\n”);{case 1: printf(“*\n”);Case 2.0: printf(“**\n”);}case 2: printf(“**\n”);} C) switch(a+b) D) switch(a+b){ case 1: printf(“*\n”); {case 1: printf(*\n”);case 2+1: printf(“**\n”);} case c: printf(“**\n”);}20)若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是A)main()B) float fun(int a,int b){……} {……x=fun(2,10);……} main()float fun(int a,int b){……}{……x=fun(i,j);……}C)float fun(int,int);D) main()main() { float fun(int i,int j);{……x=fun(2,10);……} ……x=fun(i,j);……}float fun(int a,int b){……} float fun(int a,int b){……}21)在以下给出的表达式中,与while(E)中的(E)不等价的表达式是A)(!E=0) B) (E>0||E<0) C) (E==0) D) (E!=0)22)要求通过while循环不断读入字符,当读入字母N时结束循环。
全国计算机二级等级考试c语言机试答案(全)卷一【答案】(1) int a[] (2)count+=a[i]或count=count+a[i] (3)count/n【答案】(1)将for(i=2;i<m;i++) 改为:for(i=2;i<=m;i++)(2)将y+=1/(i*i); 改为:y +=1.0/(i*i);【答案】void fun(char *s,char t[]){int k,n=0;for(k=0;k<strlen(s);k++)if(k%2==0 && s[k]%2==0)t[n++]=s[k];t[n]= '\0';}卷二(1)a[0][i] (2)<=或< (3)x, y【答案】(1)将a=Null; 改为:a=NULL;(2)将if(r==p) 改为:if(*r==*p)【答案】float y1=0.0,y0;do{y0=y1;y1=cos(y0);}while(fabs(y0-y1)>=1e-6);return y1;卷三【答案】(1)feof(fp) (2)==sno (3)sizeof(STU) 【答案】(1)将long k;改为:long k=1;或long k;k=1; (2)将num\=10;改为:num/=10;int fun(int a[][N],int n){int j,k;for(j=0;j<N;j++)for(k=0;k<j+1;k++)a[j][k]*=n;}卷四【答案】(1)j=2 (2)i (3)j【答案】(1)将s[j]=s[i]; 改为:s[j++]=s[i]; 【答案】float fun(float *a,int n){float s=0.0;int I;for(i=0; i<n; i++)s+=a[i];return s/n;卷五【答案】(1)0 (2)n (3)(t*t)【答案】(1)将for(i=j+1;i<n-1;i++) 改为:for(i=j+1;i<n;i++)或for(i=j+1;i<=n-1;i++) (2)将t=i;改为:p=i;【答案】unsigned t,s=0,s1=1,p=0;t=m;while(t>10){if(t/10)p=t%10;s=s+p*s1;s1=s1*10;t=t/10;}return s;卷六【答案】(1)s[i] (2)k (3)'\0'【答案】(1)将i=1;改为:i=0;(2)将while(temp!=0 && m!=0 && n!=0)改为:while(temp!=0 || m!=0 || n!=0)【答案】float fun(int n){float s=0.0;int t=0, k;for(k=1; k<=n; k++){ t+=k; s+=1.0/t; }return s;}卷七【答案】(1)a (2) (3)score[i] 【答案】(1)将p=h; 改为:p= h->next; (2)将p=h->next; 改为:p=p->next; 【答案】int n,k,i;double sum=0.0;for(n=3;n<=m;n++){k=sqrt(n);for(i=2;i<=k;i++)if(n%i==0) break;if(i>=k+1)sum+=sqrt(n);}return sum;卷八【答案】(1)double (2)f1 (3)f2【答案】(1)将for( i=0; i<sl; i ++) 改为:for( i=0; i<=sl; i ++)或for(i=0;i<sl+1;i++)(2)将t[sl]= '\0'; 改为:t[sl*2]='\0';或t[i*2]='\0'; 【答案】void fun(int m,int *a,int *n){int k;*n=0;for(k=0; k<=m; k++)if(k%7==0||k%11==0)a[(*n)++]=k;}卷九【答案】(1)0 (2)x*10 (3)n/10【答案】(1)将for(i=strlen(s);i;i--)改为:for(i=strlen(s)-1;i;i--)或:for(i=strlen(s)-1;i>0;i--)(2)将if(s[j]<s[j+1])改为:if(s[j]>s[j+1])double max;STR *q=a;max=a->s;do{if(q->s>max)max=q->s;q=q->next;}while(q!=0);return max;卷十【答案】(1)“rb”或“rb+”(2)>=s[j].sno或>s[j].sno(3)fwrite【答案】(1)将n=*P-'o'改为:n=*p-'0'(2)将n=n*7+*P-'o'改为:n=n*7+*p-'0';STREC fun(STREC*a,char*b) {STREC t={NULL,-1};int k;for(k=0; k<N; k++)if(!strcmp(a[k].num,b))return a[k];return t;}卷十一【答案】(1)i (2)ps[j] (3)tp 【答案】(1)将s=s+(m+1)/m;改为:s=s+(double)(m+1)/m;(2)将return s;改为:return t; 【答案】void fun(char *s,char t[]){int k,n=0;for(k=0; k<strlen(s); k++)if(k%2==1 && s[k]%2==1)t[n++]=s[k];t[n]='\0';}卷十二【答案】(1)NODE * 或struct node *(2)q!=NULL 或q != 0或q(3)r【答案】(1)将s[j]=s[i]; 改为:s[j++]=s[i]; (2)将s[i]='\0'; 改为:s[j]='\0';【答案】void fun(char *a){int n=0,m=strlen(a),j=0,k=0;while(a[j]=='*')/*统计有多少个前导'*'存入计数器n中*/{ n++;j++; }for(; j<m; j++)a[k++]=a[j];for(j=0; j<n; j++) /*串尾补n个'*'*/a[k++]=*';a[k]='\0'; /*添加字符串结束符*/ }卷十三【答案】(1)j (2)k 或=k-1 (3)p或(p)【答案】(1)将for(i=0;i<n;i++) 改为:for(i=0;i<2;i++)(2)将k=m; 改为:m=k;【答案】int i,n,j;char c;n=0;for(i=0;str[i]!='\0';i++)n++;if(n%2==0)j=n-1;elsej=n-2;c=str[j];for(i=j-2;i>=1;i=i-2)str[i+2]=str[i];str[1]=c;卷十四【答案】(1)a (2) (3)score[i] 【答案】(1)将int i=1;改为:int i=0;(2)将while(*a!=*b)改为:while(*a || *b) 【答案】void fun(int a,int b,long *c){*c=a/100;*c=*c*10+b/100;*c=*c*10+(a/10)%10;*c=*c*10+(b/10)%10;*c=*c*10+a%10;*c=*c*10+b%10;}卷十五【答案】(1)data=i(2)p->next=s(3)p->next【答案】(1)将void fun(long s, long t) 改为:void fun(long s, long *t)(2)将d = s/10; 改为:d = s%10;【答案】void fun(int a,int b,long *c){*c=a/10*1000+a%10*10+b/10*100+b%10; }卷十六【答案】(1)0(2)i++(3)(2.0*i)或(float)(2*i)或(double)(2*i)【答案】(1)将void fun(char str,char ch) 改为:void fun(char *str,char ch )(2)将if(*str==ch) 改为:if(*str!=ch) (3)将str[1]='0'; 改为:str[1]='\0'; 【答案】int i,j,k=0;double r=0.0;for(j=0;j<N;j++){r+=b[0][j];k++;}for(j=0;j<N;j++){r+=b[N-1][j];k++;}for(i=1;i<=N-2;i++){r+=b[i][0];k++;}for(i=1;i<=N-2;i++){r+=b[i][N-1];k++;}return r/=k;卷十七【答案】(1)*av (2)i (3)x[j] 或(x[j]) 【答案】(1)将long s=0,t=1; 改为:long s=0,t=0; (2)将t=t%10; 改为:t=t/10;【答案】void fun(char *tt,int pp[]){int n;for(n=0; n<26; n++)pp[n]=0;while(*tt!='\0'){if(*tt>='a' && *tt <='z')pp[*tt-'a']++;tt++;}}卷十八【答案】(1)20 或N (2)break (3)n 【答案】(1)把int r; 改为:double r;(2)将while(fabs(n-m)<0.001) 改为:while(fabs(n-m)>0.001)【答案】void fun( char *a,char *h,char *p ){char *q=h;int n=0;while(q<=p){ if(*q!='*') h[n++]=*q; q++; }while(*q){ h[n++]=*q; q++; }h[n]='\0';}卷十九【答案】(1)k (2)N-1 (3)temp【答案】(1)将for(i=1;i<y;i++) 改为:for(i=1;i<=y;i++)或for(i=1;i<y+1;i++)(2)将t=t/1000; 改为:t=t%1000;或t %=1000; 【答案】double fun(double x){int n=1;double s0,s1=1.0,t=1.0;do{s0=s1;t=t*(0.5-n+1)*x/n;s1=s0+t;n++;}while(fabs(s1-s0)>=0.000001);return s1;}卷二十【答案】(1)'0' 或48 (2)s++ (3)sum 或(sum) 【答案】(1)将for(k=2;k<m;k++)改为:for(k=2;k<=m;k++)或for(k=2;k<m+1;k++) (2)将c-=1/(k*k);改为:c-=1.0/(k*k);【答案】long fun(char *p){long t=0;int flag=1;if(*p=='-'){ flag=-1; p++; }while(*p){ t=t*10+(*p-'0'); p++; }return flag*t;}卷二十一【答案】(1)STUDENT (2)student[i].num (3)student[i]【答案】(1)将void fun(char*s,s1,s2,str)改为:void fun(char *s,char *s1,char *s2,char *str)(2)将while(str)改为:while(*str)【答案】void fun(char *s,char t[]){int k,n=0;for(k=0; k<strlen(s); k++)if(k%2!=0||s[k]%2!=1)t[n++]=s[k];t[n]='\0';}卷二十二【答案】(1)[M],或[10], (2)N或=N-1 (3)'\0' 【答案】(1)填sum=0;(2)将scanf("%d",a[i][j]); 改为:scanf("%d",&a[i][j]);【答案】int fun(int array[3][3]){int j,k,t;for(j=0;j<3;j++)for(k=0;k<j;k++){t=s[j][k];s[j][k]=s[k][j];s[k][j]=t;}}卷二十三【答案】(1)i=1 (2)&& (3)--j【答案】(1)将fun(int n) 改为:double fun(int n) (2)将c = a;a += b;b += c; 改为:c = a;a += b;b = c;【答案】void fun(int m,int k,int xx[]){int j,n=0;while(n<k){m++;for(j=2; j<m; j++)if(m%j==0) break;if(j>=m) xx[n++]=m;}}卷二十四【答案】(1)h->next(2)p==NULL 或p==0 或h->next==NULL (3)r【答案】(1)将if(P==n) return -1; 改为:if(p==n) return -1;(2)将a[i+1]=a[i]; 改为:a[i]=a[i+1];【答案】int fun(STREC *a,STREC *b){int j,n=0; double min=100.0;for(j=0;j<N;j++)if(min>a[j].s)min=a[j].s;for(j=0;j<N;j++)if(a[j].s==min)b[n++]=a[j];return n;}卷二十五【答案】(1)filename (2)SEEK_END或2 (3)&n 【答案】(1)将s=p; 改为:p=s;(2)将while(*p); 改为:while(*p++);【答案】double fun(STREC *h){double min=h->s;while(h!=NULL){if(min>h->s) min=h->s;h=h->next;}return min;}卷二十六【答案】(1)'0'或48(2)s++(3)ctod(a)+ctod(b)【答案】(1)将FU(m,n)(m/n) 改为:FU(m,n)((m)/(n)) (2)将Return(Value); 改为:return(value); 【答案】fun(char *s){int k=0,j=0,n=strlen(s);while(s[k]=='*')k++;for( ; k<n+1; k++)s[j++]=s[k];}卷二十七【答案】(1)k (2)N 或=N-1 (3)a[k][i] 【答案】(1)将void fun(int a) 改为:void fun(int a[])(2)将aa[j]=a[j-1]; 改为:a[j]=a[j-1]; 【答案】double t,s=1.0;int i,j;for(i=1;i<=m;i++){t=1.0;for(j=1;j<=i;j++)t*=j;s+=1.0/t;}return s;卷二十八【答案】(1)t, s (2)s[i] (3)'\0'、【答案】(1)将if(t=0) 改为:if(t==0)(2)将zero=count; 改为:*zero=count; 【答案】int i;double f=1.0,p=1.0;for(i=2;i<=m;i++){p+=pow(i,0.5);f+=p;}return f;卷二十九【答案】(1)n++ (2)0 (3)s++【答案】(1)将int i; 改为:int i,sl;(2)将t[i] = s[sl-i]; 改为:t[i] = s[sl-i-1];【答案】void fun(int a,int b,long *c){*c=a/10*100+a%10+b/10*1000+b%10*10; }卷三十【答案】(1)*s (2)1 (3)k[n]【答案】(1)将k++ 改为:k++;(2)将if(m = k ) 改为:if(m == k)【答案】int i,n=0;int g,b;for(i=0;i<len;i++){g=a[i]%10;b=a[i]/100;if(g==b)bb[n++]=a[i];}return n;卷三十一【答案】(1)N 或=N-1 (2)substr (3)0 【答案】(1)将num[i]=0; 改为:num[k]=0; (2)将switch(s) 改为:switch(*s)【答案】int fun(int a[M][N]){int k,s=0;for( k=0; k<N; k++ )s+=a[0][k]+a[M-1][k];for( k=1; k<M-1; k++ )s+=a[k][0]+a[k][N-1];return s;}卷三十二【答案】(1)->sno (2)->name (3)&t 【答案】(1)将for( i=strlen(t); i; i--) 改为:for(i=strlen(t)-1;i;i--)(2)将if(t[j]< t[j + 1]) 改为:if(t[j]>t[j + 1])【答案】void fun(char *ss){int k;for(k=1;k<strlen(ss);k+=2)if(ss[k]>='a'&&ss[k]<='z')ss[k]=ss[k]-'a'+'A';}卷三十三【答案】(1)struct student(2)n-1 或=n-2(3)a[i].name, a[j].name【答案】(1)将int j,c=0,float xa=0.0; 改为:int j,c=0; float xa=0.0;(2)将if(x[j]=> xa) 改为:if(x[j]>=xa) 【答案】float fun(int m,int n){float s=1.0;int k;for(k=n+1;k<=m;k++)s*=k;for(k=1;k<=(m-n);k++)s/=k;return s;}卷三十四【答案】(1)p->next(2)q!=NULL或q(3)p->next【答案】(1)将q=p+i 改为:q=p+i;(2)将While(q>p) 改为:while(q<p)【答案】int fun(STREC *a,STREC *b,int l,int h){int k,n=0;for(k=0;k<N;k++)if(a[k].s>=l&&a[k].s<=h)b[n++]=a[k];return n;}卷三十五【答案】(1)FILE * (2)fclose(fp)(3)fp 【答案】(1)将while(*s!='@') 改为:while(*s!='\0') (2)将(*s)++; 改为:s++【答案】void fun(int *w,int p,int n){int j,k,t=0;for(j=0;j<=p;j++){t=w[0];for(k=1;k<n;k++)w[k-1]=w[k];w[n-1]=t;}}卷三十六【答案】(1)flag=1 (2)j%i==0 (3)flag==1 【答案】(1)将t=x;x=y; 改为:t=*x;*x=y;(2)将return (y); 改为:return (t);【答案】int fun(char *s){int i,j=0;for(i=0;s[i]!='\0';i++)if(s[i]!=' '&&(s[i+1]==''||s[i+1]=='\0'))j++;return j;}卷三十七【答案】(1)&& (2)fputc(ch,fp1) (3)fclose(fp) 【答案】(1)将void fun(int a[],int m) 改为:int fun(int a[],int m)(2)将else if(m>=a[mid])改为:else if(m>a[mid])【答案】void fun(int *a,int *b){int i,j;for(j=0;j<M;j++)b[j]=0;for(i=0;i<N;i++)if(a[i]>=100) b[10]++;else b[a[i]/10]++;}卷三十八【答案】(1)xx[i]%10 (2)bb[n++]=xx[i] (3)n 【答案】(1)将fun( int **a, int m) 改为:void fun( int (*a)[M], int m)(2)将a[j][k]=k*j; 改为:a[j][k]=(k+1)*(j+1);【答案】int fun(int a[],int n){int i,j=1;for(i=1;i<n;i++)if(a[j-1]!=a[i])a[j++]=a[i];return j;}卷三十九【答案】(1)&n (2)i=1 (3)f*=i【答案】(1)将fun(int n) 改为:double fun(int n) (2)将return sum 改为:return sum ; 【答案】int j=1,i=0,k=0,*s=b;for(j=0;j<=y;j++)if(j%2!=0){s[i]=j;i++;}for(j=0;j<i;j++)if(y%s[j]==0){b[k]=s[j];k++;}*m=k;卷四十【答案】(1)sum=0 (2)sum+=n (3)ld 【答案】(1)将fun(char (*sq)[N]) 改为:char *fun(char (*sq)[M])(2)将return sq; 改为:return sp; 【答案】long fun(int n){int i;long s=0;for(i=2;i<n;i++)if(n%i==0) s+=i*i;return s;}卷四十一【答案】(1)i<n或i<=n-1(2)j<n-1或j<=n-2【答案】(1)将switch(g); 改为:switch(g)(2)将case 1;case 2: return 1;改为:case 1:case2:return 1;【答案】void fun(char *a,char *p){char *t=a;for(;t<=p;t++)if(*t!='*') *(a++)=*t;for(;*t!='\0';t++)*(a++)=*t;*a='\0'; /*在字符串尾加上结束标记符*/ }卷四十二【答案】(1)"%c",&str[i] (2)str[i]!='*'(3)"%c", str[j]【答案】(1)将fun(char *pstr[6]) 改为:void fun(char *pstr[6])(2)将if(strcmp(*(pstr+i),pstr+j)>0) 改为:if(strcmp(*(pstr+i),*(pstr+j))>0)(3)将*(pstr+i)=pstr+j; 改为:*(pstr+i)= *(pstr+j);【答案】double fun(STREC *a,STREC *b,int *n){int i,j=0;double av=0.0;for(i=0;i<N;i++)av=av+a[i].s;av=av/N;for(i=0;i<N;i++)if(a[i].s<av) b[j++]=a[i];*n=j;return av;}卷四十三【答案】【答案】【答案】(1)array (2)*(*(p+i)+j)【答案】(1)将while(i>j) 改为:while(i<j) (2)将*c=o; 改为:*c='\0';【答案】void fun(int a[3][3],int b[3][3]){int i,j;for(i=0;i<3;i++)for(j=0;j<3;j++)b[i][j]=a[i][j]+a[j][i];}卷四十四【答案】(1)str1[i]!=' ' (2)i++【答案】(1)将while((j>=0)||(ch>aa[j])) 改为:while((j>=0)&&(ch>aa[j]))(2)将aa[j]=ch; 改为:aa[j+1]=ch; 【答案】int n,m=0;for(n=0;n<NUM;n++)if(n!=flg){result[m]=orig[n];m++;}result[m]='\0';卷四十五【答案】(1)i==0||i==n-1||j==0||j==n-1或i==0||j==0||i==n-1||j==n-1或j==0||i==0||j==n-1||i==n-1(2)bb[i][j]=0【答案】(1)将if(i%k!=0) 改为:if(i%k==0)(2)将if(k<i) 改为:if(k>=i)【答案】fun(STU a[],STU *s){int i;*s=a[0];for(i=0;i<N;i++)/*找出成绩最高的学生记录*/ if(s->s<a[i].s)*s=a[i];}卷四十六【答案】(1)j>i (2)bb[j]=bb[j-1] (3)break 【答案】(1)将fun(int m) 改为:double fun(int m) (2)将for(i=100,i<=m,i+=100) 改为:for(i=100;i<=m;i+=100)【答案】void fun(int m,int *k,int xx[]){int i,j,n=0;for(i=2;i<m;i++){for(j=2;j<i;j++)if(i%j==0) break;if(j<i) xx[n++]=i;}*k=n;}卷四十七【答案】(1)p=str (2)p[i]++ (3)s[i]='\0'【答案】(1)将i=1; 改为:i=0;(2)将while(i<3||*p) 改为:while(i<3&&*p) (3)将b[k]= ' '; 改为:b[k++]=' ';【答案】int fun(STREC a[]){int i,j;STREC t;for(i=1;i<N;i++)for(j=0;j<N-1;j++)if(a[j].s<a[j+1].s){ t=a[j]; a[j]=a[j+1]; a[j+1]=t; } }卷四十八【答案】(1)break (2)′\0′(3)*p++ 【答案】将int fun(int x, y) 改为:int fun(int x,int y)【答案】int fun(char *str, char *substr){int i,j=0;for(i=0;str[i+1]!='\0';i++)if(str[i]==substr[0]&&str[i+1]==substr[1])j++;return j;}卷四十九【答案】(1)strlen(str1)<strlen(str2) (2)*p2 (3)str1 【答案】(1)将fun(double a,double x0) 改为:double fun(double a,double x0)(2)将if(fabs(x1-x0)>0.00001) 改为:if(fabs(x1-x0)>=0.00001)【答案】int fun(int a[][N], int m){int i,j;for(i=0;i<N;i++)for(j=i;j<N;j++)a[i][j]=a[i][j]*m;}卷五十【答案】(1)flag=1 (2)flag=0 (3)aa[k++]=i 【答案】(1)将return 1; 改为:return 3;(2)将else return 3; 改为:else return 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]!='\0';j++)w[j-1]=w[j];w[j-1]=t; /*将第1个字符放到最后一个字符中*/} }。
全国计算机等级考试等级考试试题库之选择题〔13〕1.程序流程图中带有箭头的线段表示的是()。
A) 图元关系B) 数据流C) 操纵流D) 调用关系参考答案:C【解析】在数据流图中,用标有名字的箭头表示数据流。
在程序流程图中,用标有名字的箭头表示操纵流。
所以选择C)。
2.结构化程序设计的根本原则不包含()。
A) 多态性B) 自顶向下C) 模块化D) 逐渐求精参考答案:A【解析】结构化程序设计的思想包含:自顶向下、逐渐求精、模块化、限制使用goto语句,所以选择A)。
3.软件设计中模块划分应遵循的准则是()。
A) 低内聚低耦合B) 高内聚低耦合C) 低内聚高耦合D) 高内聚高耦合参考答案:B【解析】软件设计中模块划分应遵循的准则是高内聚低偶合、模块大小规模适当、模块的依赖关系适当等。
模块的划分应遵循肯定的要求,以保证模块划分合理,并进一步保证以此为依据开发出的软件系统可靠性强,易于理解和维护。
模块之间的耦合应尽可能的低,模块的内聚度应尽可能的高。
4.在软件开发中,需求分析阶段产生的主要文档是()。
A) 可行性分析汇报B) 软件需求规格说明书C) 概要设计说明书D) 集成测试方案参考答案:B【解析】A)错误,可行性分析阶段产生可行性分析汇报。
C)错误,概要设计说明书是总体设计阶段产生的文档。
D)错误,集成测试方案是在概要设计阶段编写的文档。
B)正确,需求规格说明书是后续工作如设计、编码等需要的重要参考文档。
5.算法的有穷性是指()。
A) 算法程序的运行时间是有限的B) 算法程序所处理的数据量是有限的C) 算法程序的长度是有限的D) 算法只能被有限的用户使用参考答案:A【解析】算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。
有穷性是指算法程序的运行时间是有限的。
6.对长度为n的线性表排序,在最坏情况下,比拟次数不是n(n-1)/2的排序方法是()。
A) 快速排序B) 冒泡排序C) 直接插入排序D) 堆排序参考答案:D【解析】除了堆排序算法的比拟次数是,其他的都是n(n-1)/2。
[二级c语言题库]二级c语言二级c语言一:计算机二级c语言试题及答案计算机二级考试是全国计算机等级考试(National Computer Rank E某amination,简称NCRE)四个等级中的一个等级,考核计算机基础知识和使用一种高级计算机语言编写程序以及上机调试的基本技能。
计算机二级考试采用全国统一命题、统一考试的形式。
那么计算机二级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、-a1B、a[i]C、a2_iD、int t5~8题为相同类型题考点:标识符的命名规则只能由字母、数字、下划线构成数字不能作为标识符的开头关键字不能作为标识符选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B )。
A、3a某B、某C、caseD、-e2 E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是( C )。
A、 %某B、a+bC、a123D、123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是( A)。
精品文档 精品文档 2001年4月全国计算机等级考试二级C语言笔试试题及答案 来源:考试大 【考试大:天下考生的良师益友】 2001年7月15日
一、选择题((1)-(40)题每题1分,(41)-(50)题每题2分,共60分) 下列各题 A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。 (1)计算机的存储器完整的应包括 A.软盘、硬盘 B.磁盘、磁带、光盘 C.内存储器、外存储器 D.RAM、ROM (2)计算机中运算器的作用是 A.控制数据的输入/输出 B.控制主存与辅存间的数据交换 C.完成各种算术运算和逻辑运算 D.协调和指挥整个计算机系统的操作 (3)软磁盘处于写保护状态时,其中记录的信息 A.绝对不会丢失 B.不能被擦除,但能追加新信息 C.不能通过写磁盘操作被更新 D.不能以常规方式被删除,但可以通过操作系统的格式化功能被擦除 (4)光盘根据基制造材料和记录信息的方式不同,一般可分为 A.CD、VCD B.CD、VCD、DVD、MP3 C.只读光盘、可一次性写入光盘、可擦写光盘 D.数据盘、音频信息盘、视频信息盘 (5)在计算机系统中,可执行程序是 A.源代码 B.汇编语言代码 C.机器语言代码 D.ASCII码 (6)计算机软件系统包括 A.操作系统、网络软件 B.系统软件、应用软件 C.客户端应用软件、服务器端系统软件 精品文档 精品文档 D.操作系统、应用软件和网络软件 (7)目前,一台计算机要连入Internet,必须安装的硬件是 A.调制解调器或网卡 B.网络操作系统 C.网络查询工具 D.WWW浏览器 (8)在多媒体计算机系统中,不能存储多媒体信息的是 A.光盘 B.磁盘 C.磁带 D.光缆 (9)要将当前盘当前目录下一个文本文件内容显示在屏幕上,正确的命令形式是 A.TYPE a*.* B.TYPE abc.exe C.TYPE pro.c>PRN D.TYPE abc.txt (10)下列更改文件名的命令中正确的是 A.REN A:file1 C:F1 B.RENAME A: A:file1 C:F1 C.REN A:file1 F1 D.REN A:file1 \SUB\F1 (11)已知A盘为DOS系统启动盘,只有A:\DOS下有自动批处理文件,其中内容为: CD\DOS MD USER CD USER 由A盘启动DOS系统后,A盘的当前目录是 A.\DOS B.\DOS\USER C.\ D.\USER (12)MS-DOS是 A.分时操作系统 B.分布式操作系统 C.单用户、单任务操作系统 D.单用户、多任务操作系统 (13)在Windows操作系统中,不同文档之间互相复制信息需要借助于 A.剪切板 B.记事本 C.写字板 D.磁盘缓冲器 (14)在Windows操作系统中 A.同一时刻可以有多个活动窗口 精品文档 精品文档 B.同一时刻可以有多个应用程序在运行,但只有一个活动窗口 C.同一时刻只能有一个打开的窗口 D.DOS应用程序窗口与Windows应用程序窗口不能同时打开着 (15)下列叙述中正确的是 A.所有DOS应用程序都可以在Windows操作系统中正确运行 B.所有DOS应用程序都不能在Windows操作系统中正确运行 C.大部分DOS应用程序可以在Windows操作系统中正确运行 D.为DOS5.0以上版本操作系统编写的应用程序可以在Windows操作系统中正确运行
(16)下列叙述中正确的是 A.C语言编译时不检查语法 B.C语言的子程序有过程和函数两种 C.C语言的函数可以嵌套定义 D.C语言所有函数都是外部函数 (17)以下所列的C语言常量中,错误的是 A.0xFF B.1.2e0.5 C.2L D.‘\72’ (18)下列选项中,合法的C语言关键字是 A.VAR B.cher C.integer D.default (19)以下变量x.、y、z均为double类型且已正确赋值,不能正确表示数学式子 的C语言表达式是 A.x/y*z B.x*(1/(y*z)) C.x/y*1/z D.x/y/z (20)若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是 A.-3 B.9 C.-12 D.6 (21)设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为 A.不定值 B.4 C.3 D.1 精品文档 精品文档 (22)若变量已正确说明为float类型,要通过语句scanf(“%f %f %f ”,&a,&b,& C.;给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是: A.10 B.10.0,22.0,33.0 22 33 C.10.0 D.10 22 22.0 33.0 33 (23)若执行以下程序时从键盘上输入9,则输出结果是 A.11 B.10 C.9 D.8 Main0 { int n; scanf(“%d”,&n); if(n++<10)printf(“%d\n”,n); else printf(“%d\n”,n--); } (24)若a、 b、c1、c2、x、y、均是整型变量,正确的switch语句是 A.swich(a+ B.; B.switch(a*a+b* B. { case 1:y=a+b; break; {case 3: case 0:y=a-b; break; case 1:y=a+b;break; } case 3:y=b-a,break; } C.switch a D.switch(a- B. { case c1 :y=a-b; break {default:y=a*b;break case c2: x=a*d; break case 3:case 4:x=a+b;break default:x=a+b; case 10:case 11:y=a-b;break; } } (25)有以下程序段 int k=0 while(k=1)k++; while 循环执行的次数是 A.无限次 B.有语法错,不能执行 精品文档 精品文档 C.一次也不执行 D.执行1次 (26)以下程序执行后sum的值是 A)15 B)14 C.不确定 D)0 min() { int i , sum; for(i=1;i<6;i++)sum+=i; printf(“%d\n”,sum); } (27)有以下程序段 int x=3 do { printf(“%d”,x-=2); } while (!(--x)); 其输出结果是 A.1 B.3 0 C.1 -2 D.死循环 (28)若变量c为char类型,能正确判断出c为小写字母的表达式是 A.‘a’<=c<= ‘z’ B.(c>= ‘a’)||(c<= ‘z’) C.(‘a’<=c)and (‘z’>= C. D.(c>= ‘a’)&&(c<= ‘z’) (29)以下所列的各函数首部中,正确的是 A.void play(var :Integer,var b:Integer) B.void play(int a, B. C.void play(int a,int B. D.Sub play(a as integer,b as integer) (30)以下程序的输出结果是 A.0 B.29 C.31 D.无定值 fun(int x, int y, int z) { z=x*x+y*y; } main() { int a=31; 精品文档 精品文档 fun(5,2,a); printf(“%d”,a); } (31)下列程序段的输出结果是 A.2 1 4 3 B.1 2 1 2 C.1 2 3 4 D.2 1 1 2 void fun(int *x, int *y) { printf(“%d %d”, *x, *y); *x=3; *y=4;} main() { int x=1,y=2; fun(&y,&x); printf(“%d %d”,x, y); } (32)下列程序的输出结果是 A.非法 B)a[4]的地址 C)5 D)3 main() { char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5; printf(“%d”,*--p); } (33)下列程序的运行结果是 A.6 3 B.3 6 C.编译出错 D.0 0 void fun(int *a, int * B. { int *k; k=a; a=b; b=k; } main() { int a=3, b=6, *x=&a, *y=&b; fun(x,y); printf(“%d %d”, a, B.; } (34)下面程序的输出结果是 A.0 B.1 C.10 D.9