2018年9月计算机二级C语言考试章节习题及答案(5)
- 格式:docx
- 大小:25.81 KB
- 文档页数:8
2018年9月计算机二级C语言考试章节习题及答案(5) 第2章 C程序设计的初步知识2.2 标识符、常量和变量1[单选题] C语言主要是借助以下哪个功能来实现程序模块化A.定义函数B.定义常量和外部变量C.三种基本结构语句D.丰富的数据类型参考答案:A参考解析:C语言用函数实现软件的模块化设计。
2[单选题] 以下叙述中错误的是A.非零的数值型常量有正值和负值的区分B.常量是在程序运行过程中值不能被改变的量C.定义符号常量必须用类型名来设定常量的类型D.用符号名表示的常量叫符号常量参考答案:C参考解析:C语言中,常常用一个标识符来代表一个常量,称为符号常量。
符号常量在使用之前要先定义,定义格式如下: #define<符号常量名>(常量) 其中,<符号常量名)用标识符,习惯上用大写字母,<常量>可以是数字常量,也可以是字符3[单选题] C语言中char 类型数据占字节数为A.3B.4C.1D.2参考答案:C参考解析:C语言中char 类型数据占字节数为1.4[单选题] 下列叙述中正确的是A.可以用关系运算符比较字符串的大小B.空字符串不占用内存,其内存空间大小是0C.两个连续的单引号是合法的字符常量D.两个连续的双引号是合法的字符串常量参考答案:D参考解析:两个连续的双引号:"",是一个字符串常量,称为“空串”5[单选题] 有以下程序(strcpy 为字符串复制函数,strcat 为字符串连接函数)#include#includemain(){ char a[10]="abc",b[10]="012",c[10]="xyz";strcpy(a+1,b+2);puts(strcat(a,c+1));}程序运行后的输出结果是A.a12xyzB.12yzC.a2yzD.bc2yz参考答案:C参考解析:程序执行后strcpy(a+1,b+2)后,字符数组a 的值为“a2”,再进行字符串的连接strcat(a,c+1),此时字符数组a 的值为“a2yz”。
计算机二级证考试c语言试题及答案一、单项选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 若有以下定义:```cint a = 5, b = 10;```则执行以下语句后,变量a的值是多少?```ca += (b -= 3);```A. 8B. 12C. 15D. 2答案:B3. 在C语言中,以下哪个函数用于计算浮点数的平方根?A. sqrt()B. pow()C. log()D. exp()答案:A4. 若有以下代码:```cchar str[] = "Hello";```则str数组的长度是多少?A. 5B. 6C. 7D. 10答案:B5. 在C语言中,以下哪个运算符用于计算两个整数的模?A. %B. /C. *D. /答案:A6. 在C语言中,以下哪个关键字用于声明一个无限循环?A. whileB. forC. do...whileD. goto7. 若有以下定义:```cint x = 3;```则执行以下语句后,变量x的值是多少?```cx = (x - 1) ? (x - 1) : (x + 1);```A. 2B. 4C. 3D. 0答案:A8. 在C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. strncpy()C. strcat()D. strncat()答案:A9. 在C语言中,以下哪个关键字用于声明一个指针?A. intB. charC. floatD. *10. 若有以下代码:```cint a = 10, b = 20;```则执行以下语句后,变量a的值是多少?```ca =b = 30;```A. 10B. 20C. 30D. 40答案:C二、填空题(每题3分,共15分)1. 在C语言中,使用________关键字可以定义一个宏。
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)下列叙述中正确的是()。
全国计算机等级考试二级c语言题库及答案全国计算机等级考试二级C语言题库及答案1. 以下关于C语言的叙述中,错误的是:A. C语言是一种高级语言B. C语言可以直接被计算机执行C. C语言具有结构化的特点D. C语言支持模块化程序设计答案:B2. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. forC. returnD. void答案:D3. 若有定义:int a=3, b=4; 则表达式 a+b 的值是:A. 7B. 6C. 3.4D. 43答案:A4. 在C语言中,以下哪个选项不是合法的变量名?A. _sumB. sum_C. 2valueD. sum$答案:C5. 在C语言中,以下哪个选项是正确的二维数组声明?A. int array[3][2];B. int array[][];C. int array[3][];D. int array[2,3];答案:A6. 若有定义:char c1='a', c2='b'; 则表达式 c1-c2 的值是:A. -1B. 1C. 97D. 98答案:A7. 在C语言中,以下哪个选项不是合法的字符串字面量?A. "Hello"B. 'Hello'C. "123"D. "C\"Language"答案:B8. 若有定义:int x=10; 则表达式 x++ 的结果是:A. 10B. 11C. 9D. 无法确定答案:A9. 在C语言中,以下哪个关键字用于声明一个指针?A. intB. charC. floatD. pointer答案:B10. 若有定义:int a[5] = {1, 2, 3, 4, 5}; 则表达式 a[2] 的值是:A. 3B. 4C. 5D. 无法确定答案:A11. 在C语言中,以下哪个选项不是合法的循环控制语句?A. forB. whileC. do-whileD. repeat答案:D12. 若有定义:float x=3.14; 则表达式 (int)x 的值是:A. 3B. 3.14C. 4D. 无法确定答案:A13. 在C语言中,以下哪个选项不是合法的函数参数类型?A. intB. floatC. doubleD. void答案:D14. 若有定义:int a=5, b=10; 则表达式 a%b 的值是:A. 5B. 0C. 1D. 无法确定答案:B15. 在C语言中,以下哪个选项不是合法的输入输出函数?A. printfB. scanfC. coutD. getchar答案:C16. 若有定义:int a=2, b=4; 则表达式 a&b 的值是:A. 0B. 2C. 4D. 6答案:B17. 在C语言中,以下哪个选项不是合法的逻辑运算符?A. &&B. ||C. !D. <答案:D18. 若有定义:int a=3; 则表达式 a<<2 的值是:A. 6B. 12C. 9D. 无法确定答案:B19. 在C语言中,以下哪个选项不是合法的文件操作函数?A. fopenB. fcloseC. removeD. delete答案:D20. 若有定义:int a=6; 则表达式 a==6 的值是:A. 1B. 0C. 6D. 无法确定答案:A。
2018二级c考试模拟试题及答案在准备2018年二级C语言考试的过程中,模拟试题的练习是必不可少的环节。
以下是一套模拟试题及答案,帮助考生检验自己的学习成果。
1. 以下哪个选项是C语言中的关键字?A. autoB. defineC. includeD. none of the above答案:A2. C语言中,哪个函数用于计算并返回字符串的长度?A. strlen()B. length()C. size()D. none of the above答案:A3. 在C语言中,以下哪个选项是合法的变量名?A. 2variableB. variable2C. variable-nameD. none of the above答案:B4. 如果int a=5; 那么表达式a++的值是多少?A. 5B. 6C. 4D. none of the above答案:A5. C语言中,以下哪个选项是正确的注释方式?A. // This is a commentB. /* This is a comment */C. both A and BD. none of the above答案:C6. 在C语言中,哪个关键字用于定义一个函数?A. functionB. defC. defineD. none of the above答案:D7. 下面哪个选项是C语言中的逻辑运算符?A. &&B. ||C. both A and BD. none of the above答案:C8. 在C语言中,以下哪个选项是正确的数组声明方式?A. int array[5] = {1, 2, 3, 4, 5};B. int array[] = {1, 2, 3, 4, 5};C. both A and BD. none of the above答案:C9. 在C语言中,以下哪个选项是正确的结构体声明方式?A. struct Student { int id; char name[50]; };B. struct { int id; char name[50]; } Student;C. both A and BD. none of the above答案:C10. 在C语言中,哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. strncpy()C. both A and BD. none of the above答案:A11. 在C语言中,以下哪个选项是正确的指针声明方式?A. int *ptr;B. int ptr*;C. both A and BD. none of the above答案:A12. 在C语言中,哪个关键字用于定义一个宏?A. defineB. macroC. both A and BD. none of the above答案:A13. 在C语言中,以下哪个选项是正确的枚举声明方式?A. enum Color {Red, Green, Blue};B. enum {Red, Green, Blue} Color;C. both A and BD. none of the above答案:C14. 在C语言中,哪个函数用于打开一个文件?A. fopen()B. open()C. both A and BD. none of the above答案:A15. 在C语言中,以下哪个选项是正确的文件操作函数?A. fprintf()B. fscanf()C. both A and BD. none of the above答案:C通过这些模拟试题的练习,考生可以更好地掌握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】个元素。
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语言测试题及答案解析计算机二级C语言测试题及答案解析C语言的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,下面给大家整理了计算机二级C语言测试题及答案,欢迎阅读!计算机二级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、3axB、xC、caseD、-e2 E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是( C )。
A、 %xB、a+bC、a123D、123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是( A)。
《全国计算机等级考试二级教程——C语言程序设计》习题分析与解答(五)第十三章编译预处理和动态存储分配习题分析与解答一、选择题13.1 【参考答案】A)13.2 【参考答案】C)13.3 【参考答案】B)13.4 【参考答案】C)13.5 【参考答案】D)13.6 【参考答案】D)13.7 【参考答案】D)二、填空题13.8 【参考答案】ar=9 ar=9 ar=1113.9 【参考答案】[1]int* [2]s [3]*b三、编程题13.10【分析与解答】(1) 此命令行如下:#define MY ALPHA(a) (((a)>=A′&&(a)<=Z′)||((a)>=a′&&(a)<=z′))(2) 可用以下程序段来验证,此处s中存放了字符串,num中统计大、小写字母的个数:for(i=0;i<strlen(s);i++)if(MYALPHA(s[i])) num++;13.11 【分析与解答】(1) 可如下定义SW AP:#define SW AP(t,x,y) {t w; w=x; x=y; y=w; }(2) 若有以下程序段:double a=99.99,b=11.11;SW AP(double,a,b);则SW AP(double,a,b)展开后有:{ double w; w=a; a=b; b=w; };此处w是一个局部变量,它的作为域仅在复合语句内部,与程序中任何与其同名的变量无关。
(3) 请读者自编程序,调用以上带参的宏,对各种类型数据进行交换。
参数t对应的应当是类型名。
13.12 【分析与解答】(1) 请编写一个swap函数,用于对两个整型变量中的值进行对调。
(2) 定义3个基类型为int的指针变量p1、p2和p3。
(3) 3次调用malloc函数,分别使p1、p2和p3指向三个动态分配的存储单元。
程序准备把最小数放在p1所指动态存储单元中,把最大数放在p3所指动态存储单元中。
计算机二级C语言章节练习题及答案计算机二级C语言章节练习题及答案计算机二级考试成绩查询时间一般为考试结束后45-60日,自2009年起计算机二级考试成绩查询时间一直为45日。
下面是店铺给大家搜集的计算机二级C语言章节练习题及答案,快来看看吧。
1.2 算法1[填空题]一颗二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后序遍历结果为【2】。
参考解析:【2】DEBFCA【解析】根据二叉树的中序遍历原则可知D为二叉树的最左边的叶子结点,根据二叉树的前序遍历原则可知A是二叉树的根结点,就可以确定二叉树的结构,所以二叉树的后序遍历结果为:DEBFCA。
2[填空题]队列是限定在表的一端进行插入和在另一端进行删除操作的线性表。
允许删除的一端称作__________。
参考解析:队头【解析】队列是只允许在一端删除,在另一端插入的顺序表,在队列中。
允许插入的一端叫做“队尾”,允许删除的一端叫做“队头”。
3[填空题]在最坏情况下,堆排序需要比较的次数为_________。
参考解析:O(nlog2n)【解析】在最坏情况下,冒泡排序所需要的比较次数为n(n-1)/2;简单插入排序所需要的比较次数为n(n-1)/2;希尔排序所需要的比较次数为O(n1.5);堆排序所需要的比较次数为O(nlog2n)。
4[单选题] 算法的有穷性是指( )。
A.算法程序的运行时间是有限的B.算法程序所处理的数据量是有限的C.算法程序的长度是有限的D.算法只能被有限的用户使用参考答案:A参考解析:算法具有5个特性:①有穷性:一个算法必须(对任何合法的输入值)在执行有穷步之后结束,且每一步都可在有限时间内完成,即运行时间是有限的;②确定性:算法中每一条指令必须有确切的含义,读者理解时不会产生歧义。
③可行性:一个算法是可行的,即算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现。
,④输入:一个算法有零个或多个输入,这些输入取自于某个特定的对象的集合。
计算机二级《C语言》考试题库与答案一、程序填空题(共18分)、下列给定程序中,函数flm的功能是:将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的次序。
例如,s所指的字符串为“def35adh3kjsdt7”,执行后结果为“defadhajsdt3537”。
请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANKl.c中。
不得增行或删行,也不得更改程序的结构!二、程序修改题(共l8分)下列给定程序中函数fun的功能是:用冒泡法对6个字符串进行升序排列。
请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODIl.C中,不得增行或删行,也不得更改程序的结构!三、程序设计题(共24分)编写函数fun,其功能是:求ss所指字符串中指定字符的个数,并返回此值。
例如,若输入字符串123412132,输入字符为l,则输出3。
注意:部分源程序在文件PROCl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填人你编写的若干语句。
参考答案一、程序填空题【参考答案】(1)j++或j+=1或++j或j=j+1(2)s[i]=t1[i](3)j【考点分析】本题考查:指针型变量;数组变量赋值;for循环语句。
【解题思路】填空1:根据函致fun中的内容可知,数组t1存储了s中的非数字字符,数组口存储了s中的数字字符,为了存储下一个数字字符,下标j要进行加1操作。
填空2:将S串中的数字与非数字字符分开后,要先将非数字字符放入字符串s中,因此填入s[i]=t1[i]。
填空3:最后将敦字字符加到s串之后,并且i要小于数字的.个数j。
二、程序修改题【参考答案】(1)fh(j=i+1;j<6;j++)(2)*(pstr+i)=}(pstr+j);【考点分析】本题考查:冒泡排序算法;for循环语句格式;指针数组。
全国计算机二级《C语言》考试题库与答案(1)下列关于栈叙述正确的是()。
A.栈顶元素最先能被删除B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.栈底元素最先被删除(2)下列叙述中正确的是()。
A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D.以上说法都不正确二叉树共有7个结点,其中叶子结点只有l个,则该二叉树的深度为(假设根结点在第1层)()。
A.3B.4C.6D.7软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是():A.学生成绩管理系统B.c语言编译程序C.UNIX操作系统D.数据库管理系统(5)结构化程序所要求的基本结构不包括()。
A.顺序结构B.GOT0跳转C.选择(分支)结构D.重复(循环)结构(6)下面描述中错误的是()。
A.系统总体结构某某某支持软件系统的详细设计B.软件设计是将软件需求转换为软件表示的过程C.数据结构与数据库设计是软件设计的任务之一D.PAD某某某是软件详细设计的表示工具(7)负责数据库中查询操作的数据库语言是()。
A.数据定义语言B.数据管理语言C.数据操纵语言D.数据控制语言(9)已知大写字母A的ASCIl码值是65,小写字母a的ASCIl码值是97、以下不能将变量C中的大写字母转换为对应小写字母的语句是()。
A.C=(。
A’+C.%26一"a"B.c=c+32C.c=c一"A"+"a"D.c=(c一’A")%26+-a"(10)定义无符号整数类为UInt,下面可以作为类uInt实例化值的是( )。
A.-369B.369C.0.369D.整数集合{1,2,3,4,5}(11)以下叙述中错误的是()。
C程序在运行过程中所有计算都以二进制方式进行B.c程序在运行过程中所有计算都以十进制方式进行C.所有c程序都需要编译链接无误后才能运行D.c程序中字符变量存放的是字符的ASCIl码值(12)以下关于c语言的叙述中正确的是()。
计算机二级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语言中指针和数组的关系。
模拟卷11[填空题]下列给定程序中,函数fun得功能就是:在形参S所指字符串中寻找与参数C相同得字符,并在其后插入一个与之相同得字符,若找不到相同得字符则不做任何处理。
例如,若s所指字符串为"baacda",c中得字符为a,执行后S所指字符串为"baaaacdaa"请在程序得下画线处填入正确得内容并将下画线删除,使程序得岀正确得结果。
注意:部分源程序给岀如下。
不得增行或删行,也不得更改程序得结构试题程序:linclLid^ < std丄Q-忆工vOid iurL* 5char ciI int n;/*****.*•屮found *********,for (i 5;. k .! = [1】;i >if taf 1] ^ = C)I£ou n-d •••****** ’Mfhile (s[ i + 1 4-fl] !n ;[2(J -i + A +■ 1;\ > 1;j 一}13rfj +1]J4$ f ou *****>**•/15辛[i十丄]=UJ J16 17i + 1 ;\19main()20{ that s[001 - "baaccia™, c;忆Frintt ("Wihe22printf (*\n input a character:");卞24fun 啓“);屮:訓pcintfresult in:和'23726参考解析:【参考答案】([厂2 {2)0 {3)[-【解题思路】填空1: for语句循环条件就是判断就是否到达字符串结尾,即当前字符就是否为’\0 '。
填空2:while语句用以确定字符串得长度,所以变量n赋初值为0。
填空3:题目要求如果找到与参数c相同得字符,就在后面插入一个相同得字符,且找到后应该给数组元素赋值,本题目给岀参数为c。
二、程序修改题2 [简答题]下列给定程序中函数fun得功能就是:逐个比较p、q所指两个字符串对应位置上得字符,并把ASCII值大或相等得字符依次存放到c所指得数组中,形成一个新得字符串。
2018年计算机二级C语言模拟题5(总分100, 做题时间120分钟)选择题(每题1分,共40分)下列各题A )、B)、C )、D)四个选项中,只有一个选项是正确的。
1.下列叙述中正确的是()。
SSS_SINGLE_SELA线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构C线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构D线性表的链式存储结构所需要的存储空间与顺序存储结构没有任何关系分值: 1答案:B线性链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间,因此一般要多于顺序存储结构,选项B正确。
2.列叙述中正确的是()。
SSS_SINGLE_SELA栈是一种先进先出的线性表B队列是一种后进先出的线性表C栈与队列都是非线性结构D以上三种说法都不对分值: 1答案:D栈是一种先进后出的线性表,队列是一种先进先出的线性表,栈与队列都是线性结构,因此本题答案为D。
3.软件测试的目的是()。
SSS_SINGLE_SELA评估软件可靠性B发现并改正程序中的错误C改正程序中的错误D发现程序中的错误分值: 1答案:D软件测试是为了发现错误而执行程序的过程,测试要以查找错误为中心,而不是为了演示软件的正确功能,也不是为了评估软件或改正错误,因此本题答案为D。
4.在软件开发中,需求分析阶段产生的主要文档是()。
SSS_SINGLE_SELA软件集成测试计划B软件详细设计说明书C用户手册D软件需求规格说明书分值: 1答案:D需求分析阶段的工作可以概括为:需求获取、需求分析、编写需求规格说明书、需求评审四个方面,因此本题答案为D。
5.软件生命周期是指()。
SSS_SINGLE_SELA软件产品从提出、实现、使用维护到停止使用退役的过程B软件从需求分析、设计、实现到测试完成的过程C软件的开发过程D软件的运行维护过程分值: 1答案:A通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。
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年9月计算机二级C语言考试章节习题及答案(5) 第2章 C程序设计的初步知识
2.2 标识符、常量和变量
1[单选题] C语言主要是借助以下哪个功能来实现程序模块化
A.定义函数
B.定义常量和外部变量
C.三种基本结构语句
D.丰富的数据类型
参考答案:A
参考解析:C语言用函数实现软件的模块化设计。
2[单选题] 以下叙述中错误的是
A.非零的数值型常量有正值和负值的区分
B.常量是在程序运行过程中值不能被改变的量
C.定义符号常量必须用类型名来设定常量的类型
D.用符号名表示的常量叫符号常量
参考答案:C
参考解析:C语言中,常常用一个标识符来代表一个常量,称为符号常量。
符号常量在使用之前要先定义,定义格式如下: #define<符号常量名>(常量) 其中,<符号常量名)用标识符,习惯上用大写字母,<常量>可以是数字常量,也可以是字符
3[单选题] C语言中char 类型数据占字节数为
A.3
B.4
C.1
D.2
参考答案:C
参考解析:C语言中char 类型数据占字节数为1.
4[单选题] 下列叙述中正确的是
A.可以用关系运算符比较字符串的大小
B.空字符串不占用内存,其内存空间大小是0
C.两个连续的单引号是合法的字符常量
D.两个连续的双引号是合法的字符串常量
参考答案:D
参考解析:两个连续的双引号:"",是一个字符串常量,称为“空串”
5[单选题] 有以下程序(strcpy 为字符串复制函数,strcat 为字符串连接函数)
#include
#include
main()
{ char a[10]="abc",b[10]="012",c[10]="xyz";
strcpy(a+1,b+2);
puts(strcat(a,c+1));
}
程序运行后的输出结果是
A.a12xyz
B.12yz
C.a2yz
D.bc2yz
参考答案:C
参考解析:程序执行后strcpy(a+1,b+2)后,字符数组a 的值为“a2”,再进行字符串的连接strcat(a,c+1),此时字符数组a 的值为“a2yz”。
strcpy(a+1,b+2);//把b数组的第3个元素开始到NULL出现为止的字符串复制给a数组第2个元素开始的内存空间
puts(strcat(a,c+1));//打印字符串,该字符串为a数组中的字符串和c数组第2个元素开始的字符串,
strcat()的意义为把c数组第2个元素开始的字符串添加到a数组的结尾。
6[单选题] 以下选项中,合法的是
A.char str3[]={'d', 'e', 'b', 'u', 'g', '\0'};
B.char str4; str4="hello world";
C.char name[10]; name="china";
D.char str1[5]= "pass",str2[6]; str2=str1;
参考答案:A
参考解析:选项A)是定义了字符数组str3[],并对其赋初值。
7[单选题] 下列可用于C语言用户标识符的一组是( )。
A.void,define,WORD
B.a3_3,_123,Car
C.For,-abc,IF Case
D.2a,DO,sizeof
参考答案:B
参考解析:c语言规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线,排除选项C)和D);C语言中还规定标识符不能为C语言的关键字,而选项A)中void为关键字,故排除选项A)。
8[单选题] 以下符合c语言语法的实型常量是( )。
A.8E一2
B.3)14)159E
C.E14
D.2)2E0)5
参考答案:A
参考解析:实型常量又称为实数或浮点数,在c语言中可以表示为小数形式和指数形式。
其中用”e或E+整数”表示以10为底的幂,字母e或E之前必须有数字,后面必须是整数。
因此正确答案为选项A)。
9[单选题] 下列是用户自定义标识符的是( )。
A._wl
B.3_xy
C.int
D.LINE-3
参考答案:A
参考解析:c语言规定用户标识符由英文字母、数字和下划线组成,且第一个字符必须是字母或下划线,由此可见选项S),D)是错的;此外,C语言不允许用户将关键字作为标识符,而选项c)中的int是c语言的关键字。
10[单选题] 执行以下程序时输人1234567,则输出结果是( )。
#include
main()
{
int a =1,b;
scanf("=-",&a,&b);
printf("%d%d\n",a,b);
}
A.12367
B.12346
C.12312
D.12345
参考答案:D
参考解析:scanf函数中的格式控制说明为”%3d%2d”,分别选中输人中的三位和两位,因此a=123,b=45。
因此正确答案为D)选项。
11[单选题] 以下选项中,不能作为合法常量的是( )。
A.1.234e05
B.1.234e+5
C.1.234e0.5
D.1.234e0
参考答案:C
参考解析:C语言的语法规定,字母e(E)之前必须有数字,且e(E)后面的指数必须是整数,而选项c)中,e(E)后面的指数是小数,所以不合法。
12[单选题] 以下选项中合法的标识符是( )。
A.1_2
B._12
C.2_1
D.12__
参考答案:B
参考解析:标识符命名规则:标识符必须由字母(a~z或A~z)或下划线(_)开头;标识符的其他部分可以用字母、下划线或数字(0~9)组成;大小写字母表示不同意义,如cout和Cout
代表不同的标识符;在定义标识符时,虽然语法上允许用下划线开头,但是,最好避免定义用下划线开头的标识符,因为编译器常常定义一些下划线开头的标识符。
因此,本题正确答案为B)。
13[单选题] 以下选项中不属于c语言的类型的是( )。
A.unsigned long int
B.long short
C.unsigned int
D.signed short int
参考答案:B
参考解析:c语言中整型变量分为4种,基本型int,短整型short int,长整型long int 和无符号型(unsigned int、un-signed short、unsigned long)。
因此B)选项不属于c语言的类型。
14[单选题] 以下可用作C语言用户标识符的是( )
A.void,define,WORD
B.a3_b3,_123,IF
C.FOR,- -abc,Case
D.2a,Do,Sizeof
参考答案:B。
参考解析:C语言规定用户标识符由字母、数字和下划线组成,且第一个字符必须是字母或下划线,可见选项C),D)是错误的;此外,c语言不允许用户将关键字作为标识符,而选项A)中的void正是C语言的关键字。
15[单选题] 以下4个选项中,不能看作一条语句的是( )。
A.;
B.a=5,b=2.5,c=3.6;
C.if(b!=5)x=2;y=6;
D.return j;
参考答案:C
参考解析:c语言规定每个语句以;(分号)结束,因此选项c)为两条语句。
16[单选题] 当用“#define F 37.5f”定义后,下列叙述正确的是( )。
A.F是float型数
B.F是Char型数
C.F无类型
D.F是字符串
参考答案:D
参考解析:字符替换定义格式为:#define标识符(形参表)形参表达式。
题中F是代表形参表达式的标识符(字符串)。
17[单选题] 以下叙述中正确的是( )。
A.C程序中注释部分只能放在程序最后
A.s=67
B.s=61
C.S=63
D.S=56
参考答案:B
参考解析:变量x是静态变量,P是全局变量,因此sum函数调用结束时,x、P的值保留,下一次函数调用时继续使用。
y和k都是局部变量,调用结束后释放空间,值不再保留。
程序执行过程中,s的值为l、6、13、22、33、46、61。
所以输出61。