计算机二级c语言历年真题及答案
往年全国计算机二级c语言试题及答案
往年全国计算机二级c语言试题及答案一、选择题1. 下列关于C语言的描述中,错误的是()。
A. C语言是一种高级语言B. C语言可以直接在硬件上运行C. C语言具有结构化的特点D. C语言的源代码需要编译后才能运行答案:B2. 在C语言中,用于定义一个结构体的关键字是()。
A. structB. unionC. enumD. typedef答案:A3. 下列选项中,不是C语言标准库函数的是()。
A. printfB. scanfC. mainD. strcpy答案:C二、填空题1. 在C语言中,一个整型变量占用的字节数是()。
答案:42. C语言中,用于定义一个函数的关键字是()。
答案:void 或 int 或其他类型3. 在C语言中,用于声明一个指针变量的语法是()。
答案:类型名 *变量名三、编程题1. 编写一个C语言程序,计算并输出100以内所有偶数的和。
```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("100以内所有偶数的和为:%d\n", sum);return 0;}```2. 编写一个C语言函数,实现字符串的反转。
```c#include <stdio.h>#include <string.h>void reverseString(char *str) {int len = strlen(str);for (int i = 0; i < len / 2; i++) {char temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverseString(str);printf("反转后的字符串为:%s\n", str);return 0;}```四、简答题1. 简述C语言中数组和指针的关系。
计算机二级c语言试题及答案解析
计算机二级c语言试题及答案解析一、选择题1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A解析:关键字`struct`用于定义一个结构体,它允许将多个不同类型的数据项组合成一个单一的数据结构。
2. 下列哪个选项不是C语言中的运算符?A. %B. &&C. ::D. ||答案:C解析:`%`是取模运算符,`&&`是逻辑与运算符,`||`是逻辑或运算符,而`::`不是C语言中的运算符。
二、填空题1. 在C语言中,`________`关键字用于声明一个函数。
答案:int解析:在C语言中,`int`是用于声明一个函数的返回类型,表示该函数返回一个整数值。
2. 以下代码片段中,`________`用于定义一个名为`data`的数组,包含10个整数。
```cint data[10];```答案:int data[10];解析:`int data[10];`定义了一个名为`data`的数组,它包含10个整数。
三、编程题1. 编写一个C语言函数,计算并返回两个整数的和。
```cint add(int a, int b) {return a + b;}```答案:```cint add(int a, int b) {return a + b;}```解析:该函数接受两个整数参数`a`和`b`,计算它们的和,并返回结果。
2. 编写一个C语言程序,实现将一个字符串反转。
```c#include <stdio.h>#include <string.h>void reverse(char *str) {int len = strlen(str);for (int i = 0; i < len / 2; i++) { char temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverse(str);printf("Reversed string: %s\n", str); return 0;}```答案:```c#include <stdio.h>#include <string.h>void reverse(char *str) {int len = strlen(str);for (int i = 0; i < len / 2; i++) { char temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverse(str);printf("Reversed string: %s\n", str);return 0;}```解析:该程序定义了一个`reverse`函数,它接受一个字符串作为参数,并通过交换字符的方式将字符串反转。
全国计算机二级考试《C语言》真题练习及答案
全国计算机二级考试《C语言》真题练习及答案全国计算机二级考试《C语言》真题练习及答案一、选择题(1)下列关于栈叙述正确的是A)栈顶元素最先能被删除B)栈顶元素最后才能被删除C)栈底元素永远不能被删除D)以上三种说法都不对(2)下列叙述中正确的是A)有一个以上根结点的数据结构不一定是非线性结构B)只有一个根结点的数据结构不一定是线性结构C)循环链表是非线性结构D)双向链表是非线性结构(3)某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)A)3B)4C)6D)7(4)在软件开发中,需求分析阶段产生的主要文档是A)软件集成测试计划B)软件详细设计说明书C)用户手册D)软件需求规格说明书(5)结构化程序所要求的基本结构不包括A)顺序结构B)GOTO跳转C)选择(分支)结构D)重复(循环)结构(6)下面描述中错误的是A)系统总体结构图支持软件系统的详细设计B)软件设计是将软件需求转换为软件表示的过程C)数据结构与数据库设计是软件设计的任务之一D)PAD图是软件详细设计的表示工具(7)负责数据库中查询操作的数据库语言是A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)一个教师可讲授多门课程,一门课程可由多个教师讲授。
则实体教师和课程间的联系是A)1:1联系B)1:m联系C)m:1联系D)m:n联系(9)有三个关系R、S和T如下:则由关系R和S得到关系T的操作是A)自然连接B)交C)除D)并(10)定义无符号整数类为UInt,下面可以作为类UInt实例化值的是A)-369B)369C)0.369D)整数集合{1,2,3,4,5}(11)计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是A)C语言程序仅可以编译执行B)C语言程序仅可以解释执行C)C语言程序既可以编译执行又可以解释执行D)以上说法都不对(12)以下叙述中错误的是A)C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件(13)以下选项中不能用作C程序合法常量的是A)1,234B)'\123'C)123D)"\x7G"(14)以下选项中可用作C程序合法实数的是A).1e0B)3.0e0.2C)E9D)9.12E(15)若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是A)a=(b=4)=3;B)a=b=c+1;C)a=(b=4)+c;D)a=1+(b=c=4);(16)有以下程序段char name[20];int num;scanf("name=%snum=%d",name;&num);当执行上述程序段,并从键盘输入:name=Lili num=1001<回车>后,name的值为A)LiliB)name=LiliC)Lilinum=D)name=Lili num=1001(17)if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是A)必须是逻辑值B)必须是整数值C)必须是正数D)可以是任意合法的数值(18)有以下程序#includemain(){ int x=011;printf("%d\n",++x);}程序运行后的输出结果是A)12B)11C)10D)9(19)有以下程序#includemain(){ int s;scanf("%d",&s);while(s>0){ switch(s){ case 1:printf("%d",s+5);case 2:printf("%d",s+4);break;case 3:printf("%d",s+3);default:printf("%d",s+1);break;}scanf("%d",&s);}}运行时,若输入1 2 34 5 0<回车>,则输出结果是A)6566456B)66656C)66666D)6666656(20)有以下程序段int i,n;for(i=0;i<8;i++){n=rand()%5;switch (n){ case 1:case 3:printf("%d\n",n); break;case 2:case 4:printf("%d\n",n);continue;case 0:exit(0);}printf("%d\n",n);}以下关于程序段执行情况的叙述,正确的是A)for循环语句固定执行8次B)当产生的随机数n为4时结束循环操作C)当产生的随机数n为1和2时不做任何操作D)当产生的随机数n为0时结束程序运行。
计算机二级证考试c语言试题及答案
计算机二级证考试c语言试题及答案一、选择题1. 下列关于C语言的说法中,正确的是:A. C语言是面向对象编程语言B. C语言是一种解释性语言C. C语言是一种编译性语言D. C语言主要用于网页开发2. C语言中的数组下标是从几开始计数的?A. 0B. 1C. -1D. 由用户指定3. 下列代码中,输出的结果是什么?```cint a = 10;int b = 5;printf("%d", a % b);```B. 5C. 2D. 04. 下列关于函数的说法中,正确的是:A. 函数只能在主函数中调用B. 函数可以在任何地方调用C. 函数只能接收一个参数D. 函数不能返回值5. 下列代码中,循环体会执行几次? ```cint i;for(i = 0; i < 5; i++) {printf("%d ", i);}```A. 0次B. 4次D. 6次二、填空题1. C语言中,用于定义常量的关键字是 __________。
2. 下列代码中,空格处应该填入什么值才能使程序输出结果为20?```cint a = 10;int b = __________;printf("%d", a * b);```3. 下列代码中,空格处应该填入什么运算符才能使程序输出结果为1?```cint a = 5;int b = 4;printf("%d", a ________ b);```三、编程题1. 编写一个程序,要求用户输入一个整数n,然后输出1到n之间所有偶数的和。
2. 编写一个函数,实现计算两个整数之间的最大公约数(GCD)的功能,并在主函数中调用该函数。
3. 编写一个程序,定义一个字符串数组,其中有5个元素,每个元素是一个字符串。
然后使用循环输出该数组中所有的字符串内容。
四、综合题1. 下面是一个简化的学生成绩管理程序的代码,有一些错误,请帮助找出并修复错误。
历年计算机二级C语言真题及答案
⼀、选择题(1)下列关于栈叙述正确的是A)栈顶元素最先能被删除 B)栈顶元素最后才能被删除C)栈底元素永远不能被删除D)以上三种说法都不对(2)下列叙述中正确的是A)有⼀个以上根结点的数据结构不⼀定是⾮线性结构B)只有⼀个根结点的数据结构不⼀定是线性结构C)循环链表是⾮线性结构D)双向链表是⾮线性结构(3)某⼆叉树共有7个结点,其中叶⼦结点只有1个,则该⼆叉树的深度为(假设根结点在第1层)A)3B)4C)6D)7(4)在软件开发中,需求分析阶段产⽣的主要⽂档是A)软件集成测试计划B)软件详细设计说明书C)⽤户⼿册D)软件需求规格说明书(5)结构化程序所要求的基本结构不包括A)顺序结构B)GOTO跳转C)选择(分⽀)结构D)重复(循环)结构(6)下⾯描述中错误的是A)系统总体结构图⽀持软件系统的详细设计B)软件设计是将软件需求转换为软件表⽰的过程C)数据结构与数据库设计是软件设计的任务之⼀D)PAD图是软件详细设计的表⽰⼯具(7)负责数据库中查询操作的数据库语⾔是A)数据定义语⾔ B)数据管理语⾔C)数据操纵语⾔ D)数据控制语⾔(8)⼀个教师可讲授多门课程,⼀门课程可由多个教师讲授。
则实体教师和课程间的联系是A)1:1联系B)1:m联系 C)m:1联系D)m:n联系(9)有三个关系R、S和T如下:则由关系R和S得到关系T的操作是A)⾃然连接B)交C)除D)并(10)定义⽆符号整数类为UInt,下⾯可以作为类UInt实例化值的是A)-369B)369C)0.369D)整数集合{1,2,3,4,5}(11)计算机⾼级语⾔程序的运⾏⽅法有编译执⾏和解释执⾏两种,以下叙述中正确的是A)C语⾔程序仅可以编译执⾏B)C语⾔程序仅可以解释执⾏C)C语⾔程序既可以编译执⾏⼜可以解释执⾏D)以上说法都不对(12)以下叙述中错误的是A)C语⾔的可执⾏程序是由⼀系列机器指令构成的D)在没有安装C语⾔集成开发环境的机器上不能运⾏C源程序⽣成的.exe⽂件(13)以下选项中不能⽤作C程序合法常量的是A)1,234B)'\123' C)123D)"\x7G"(14)以下选项中可⽤作C程序合法实数的是A).1e0B)3.0e0.2 C)E9D)9.12E(15)若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是A)a=(b=4)=3;B)a=b=c+1;C)a=(b=4)+c;D)a=1+(b=c=4);(16)有以下程序段char name[20];int num;scanf("name=%snum=%d",name;&num);当执⾏上述程序段,并从键盘输⼊:name=Lili num=1001后,name的值为A)Lili B)name=LiliC)Lilinum= D)name=Lili num=1001(17)if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是A)必须是逻辑值B)必须是整数值C)必须是正数D)可以是任意合法的数值(18)有以下程序#includemain(){ int x=011;printf("%d\n",++x);}程序运⾏后的输出结果是A)12B)11C)10D)9(19)有以下程序#includemain(){ int s;scanf("%d",&s);while(s>0){ switch(s){ case 1:printf("%d",s+5);case 2:printf("%d",s+4);break;case 3:printf("%d",s+3);default:printf("%d",s+1);break;}scanf("%d",&s);}}运⾏时,若输⼊1 2 34 5 0,则输出结果是A)6566456B)66656C)66666for(i=0;i<8;i++){n=rand()%5;switch (n){ case 1:case 3:printf("%d\n",n); break;case 2:case 4:printf("%d\n",n);continue;case 0:exit(0);}printf("%d\n",n);}以下关于程序段执⾏情况的叙述,正确的是A)for循环语句固定执⾏8次B)当产⽣的随机数n为4时结束循环操作C)当产⽣的随机数n为1和2时不做任何操作D)当产⽣的随机数n为0时结束程序运⾏(21)有以下程序#includemain(){ chars[]="012xy\08s34f4w2";int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>='0'&&s[i]<='9')n++;printf("%d\n",n);}程序运⾏后的输出结果是A)0B)3C)7D)8(22)若i和k都是int类型变量,有以下for语句for(i=0,k=-1;k=1;k++)printf("*****\n");下⾯关于语句执⾏情况的叙述中正确的是A)循环体执⾏两次 B)循环体执⾏⼀次C)循环体⼀次也不执⾏ D)构成⽆限循环(23)有以下程序#includemain(){ char b,c;int i;b='a'; c='A';for(i=0;i<6;i++){ if(i%2) putchar(i+B);else putchar(i+C);}printf("\n");}程序运⾏后的输出结果是A)ABCDEFB)AbCdEfC)aBcDeFD)abcdef(24)设有定义:double x[10],*p=x;,以下能给数组x下标为6的元素读⼊数据的正确语句是A)scanf("%f",&x[6]);B)scanf("%lf",*(x+6));C)scanf("%lf",p+6);voidfun(char *s){ while(*s){ if(*s%2) printf("%c",*s);s++;}}main(){ char a[]="BYTE";fun(a);printf("\n");}程序运⾏后的输出结果是A)BYB)BTC)YTD) YE(26)有以下程序段#includemain(){ …while( getchar()!='\n');…}以下叙述中正确的是A)此while语句将⽆限循环B) getchar()不可以出现在while语句的条件表达式中C)当执⾏此while语句时,只有按回车键程序才能继续执⾏D)当执⾏此while语句时,按任意键程序就能继续执⾏(27)有以下程序#includemain(){ int x=1,y=0;if(!x) y++;else if(x==0)if (x) y+=2;else y+=3;printf("%d\n",y);}程序运⾏后的输出结果是A)3B)2C)1D) 0(28)若有定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的是A)p=s;B)p=k;C)p=s[0];D)k=s;(29)有以下程序#includevoidfun(char *C){ while(*C){if(*c>='a'&&*c<='z') *c=*c-('a'-'A');c++;}}main()}当执⾏程序时从键盘上输⼊HelloBeijing,则程序的输出结果是A)hello beijingB)Hello BeijingC)HELLO BEIJINGD)hELLO Beijing(30)以下函数的功能是:通过键盘输⼊数据,为数组中的所有元素赋值。
往年计算机二级c语言考试真题及答案
在C语言中,以下哪个是合法的标识符?A. 1variableB. _variableC. my-variableD. variable#答案:B在C语言中,以下哪个是逻辑运算符?A. &B. +C. *D. /答案:A以下哪个关键字用于在C语言中定义常量?A. intB. constC. voidD. static答案:B下列关于栈叙述正确的是?A. 栈顶元素先能被删除B. 栈顶元素后才能被删除C. 栈底元素永远不能被删除D. 以上三种说法都不对答案:A下列关于队列结构有关联的是?A. 函数的递归调用B. 数组元素的引用C. 多重循环的执行D. 先到先服务的作业调度答案:D在C语言中,使用哪个符号表示“取地址”操作?A. %B. &C. *D. @答案:B简述C语言中指针的概念和用途。
答案:指针是一个变量,其值为另一个变量的地址。
它允许程序直接访问和操作在内存中的地址。
描述C语言中数组和链表的区别。
答案:数组是固定大小的连续内存块,而链表是由节点组成的动态数据结构,节点之间通过指针连接。
简述C语言中函数的定义和调用过程。
答案:函数是执行特定任务的代码块。
定义函数时指定函数名、参数和返回类型;调用函数时传递参数并接收返回值。
描述C语言中文件操作的基本步骤。
答案:打开文件、读取或写入数据、关闭文件。
简述C语言中结构体(struct)的作用。
答案:结构体是一种自定义数据类型,用于将多个不同类型的数据项组合成一个单独的数据单元。
描述C语言中循环结构(如for、while、do-while)的区别和用途。
答案:循环结构用于重复执行一段代码。
for循环适用于已知循环次数的场景;while和do-while循环适用于根据条件判断是否继续循环的场景。
填空题在C语言中,使用关键字_______可以定义一个整型变量。
答案:int在C语言中,使用符号_______表示“取地址”操作。
答案:&在C语言中,_______运算符可以用于判断两个值是否相等。
计算机二级c语言试题及答案解析
计算机二级c语言试题及答案解析一、选择题(每题2分,共20分)1. 在C语言中,以下哪个选项是合法的整型常量?A. 0x12B. 0123C. 0x123.456D. 0123456答案:A解析:在C语言中,十六进制常量以0x或0X开头,后跟十六进制数字。
选项A表示十六进制数,是合法的整型常量。
选项B表示八进制数,选项C表示浮点数,选项D是无效的表示。
2. 下列哪个选项是C语言中的关键字?A. switchB. caseC. defaultD. all of the above答案:D解析:在C语言中,switch、case和default都是关键字。
switch用于条件分支,case用于指定分支条件,default用于指定默认分支。
3. 在C语言中,以下哪个选项是合法的字符常量?A. 'A'B. "A"C. '\t'D. 'AB'答案:C解析:在C语言中,字符常量用单引号括起来,可以是单个字符或转义字符。
选项A是合法的字符常量,但选项B是字符串常量。
选项C 是合法的转义字符,表示水平制表符。
选项D是两个字符,不是合法的字符常量。
4. 在C语言中,以下哪个选项是合法的数组声明?A. int a[];B. int b[10];C. int c[10] = {0};D. all of the above答案:D解析:在C语言中,A选项声明了一个未指定大小的整型数组,B选项声明了一个大小为10的整型数组,C选项声明了一个大小为10的整型数组并初始化所有元素为0。
所有选项都是合法的数组声明。
5. 在C语言中,以下哪个选项是合法的函数声明?A. int func(int x);B. int func(int);C. int func();D. int func(int, int);答案:D解析:在C语言中,函数声明需要指定返回类型、函数名和参数列表。
计算机二级c考试试题及答案
计算机二级c考试试题及答案一、选择题1. C语言的标志符区分大小写吗?A. 区分大小写B. 不区分大小写C. 有时区分大小写,有时不区分大小写答案:A2. C语言中,以下哪个关键字用于定义常量?A. constB. staticC. volatile答案:A3. 下列代码中,会输出什么结果?int a = 5, b;b = ++a + a++;A. 20B. 21C. 22答案:B4. 在C语言中,以下哪个关键字用于定义结构体类型?A. structB. typedefC. union答案:B5. 在C语言中,以下哪个库函数用于动态分配内存?A. mallocB. freeC. realloc答案:A二、填空题1. 在C语言中,用于表示真的常量是_________。
答案:#define2. C语言中,数组的下标从_________开始计数。
答案:03. 在C语言中,用于输出字符串的函数是_________。
答案:printf4. C语言中,用于定义宏的关键字是_________。
答案:#define5. 在C语言中,用于循环迭代的关键字是_________。
答案:for三、简答题1. 简述C语言中的条件语句if-else的使用方法。
答案:if-else语句用于根据给定条件选择性地执行代码块。
语法为:if (条件) {// 如果条件为真,执行这里的代码} else {// 如果条件为假,执行这里的代码}当条件为真时,执行if代码块中的语句;当条件为假时,执行else代码块中的语句。
2. 简述C语言中的循环语句while的使用方法。
答案:while语句用于重复执行一段代码,直到给定条件不再满足为止。
语法为:while (条件) {// 如果条件为真,重复执行这里的代码}每次循环开始前,会先检查条件是否满足,如果满足则执行循环体中的语句。
当条件不再满足时,跳出循环。
3. 简述C语言中的函数的定义和调用方法。
计算机二级c语言试题及答案解析
计算机二级c语言试题及答案解析一、选择题1. C语言中,下列哪个选项是正确的字符串定义方法?A. char str = "Hello World";B. char str[] = "Hello World";C. string str = "Hello World";D. string str[] = "Hello World";答案:B解析:C语言中,字符串需要使用字符数组来定义,可以使用字符数组名或者指针来存储字符串的地址。
2. 下列哪个选项可以用于在C语言中接收用户输入的整数?A. get()B. scanf()C. read()D. input()答案:B解析:scanf()函数可以用于从标准输入中接收用户的输入,并将其存储到指定的变量中。
3. 以下哪个选项是C语言中的关键字?A. printB. whileC. ifD. void答案:C解析:C语言中的关键字用于表示特定的语法结构或功能,而print、while、void都不是C语言的关键字。
二、填空题1. C语言中,用于循环控制的语句是______。
答案:for、while、do-while解析:C语言中可以使用for、while、do-while三种语句进行循环控制。
2. C语言中,用于定义宏的关键字是______。
答案:#define解析:C语言中使用#define关键字来定义宏,宏是一种简单的文本替换方式。
三、代码题请编写一个C语言函数,实现将一个整数数组中的所有元素逆序排列的功能。
```c#include <stdio.h>void reverseArray(int arr[], int length) {int i, temp;for (i = 0; i < length / 2; i++) {temp = arr[i];arr[i] = arr[length - 1 - i];arr[length - 1 - i] = temp;}}int main() {int i;int arr[] = {1, 2, 3, 4, 5};int length = sizeof(arr) / sizeof(arr[0]);printf("Original Array: ");for (i = 0; i < length; i++) {printf("%d ", arr[i]);}reverseArray(arr, length);printf("\nReversed Array: ");for (i = 0; i < length; i++) {printf("%d ", arr[i]);}return 0;}```答案解析:以上是一个简单的C语言程序,通过reverseArray函数来实现将数组中的元素逆序排列的功能。
计算机二级C语言历年真题及答案
计算机二级C语言历年真题及答案计算机二级C语言历年真题及答案练习是巩固知识的有效手段,而考试是检验知识掌握情况的一种方式。
下面是店铺整理的计算机二级C语言试题答案,希望对大家有用。
计算机二级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语言往年试题及答案
计算机二级c语言往年试题及答案一、选择题1. 下列不属于C语言关键字的是:A) if B) else C) switch D) case答案: D2. 在C语言中,下列关于数组说法正确的是:A) 数组的下标可以为负数B) 数组的大小可以在运行时动态改变C) 数组下标的类型可以是浮点数D) 数组元素的类型可以不相同答案: D3. 下面哪个运算符的优先级最高?A) ! B) ++ C) + D) &&答案: B4. 以下哪个循环语句无法在其内部控制循环的流程?A) while B) do-while C) for D) if-else答案: D5. 下列C代码,输出结果为何?```c#include <stdio.h>int main(){int a = 5, b = 2;printf("%d", a++ - b);printf("%d", a);}```A) 2, 6 B) 3, 6 C) 3, 7 D) 2, 7答案: A二、填空题1. 下列C代码,输出结果为何?```c#include <stdio.h>int main(){int x = 3;while (x++ < 6)printf("%d ", x);return 0;}```答案: 4 5 62. 下列C代码,输出结果为何?```c#include <stdio.h>int main(){int i = 0;while (i < 3){printf("%d ", ++i);i++;}return 0;}```答案: 1 3三、编程题1. 编写一个C程序,实现输入一个正整数n,计算并输出n的阶乘。
```c#include <stdio.h>unsigned long long factorial(unsigned int n);int main(){unsigned int n;printf("请输入一个正整数:");scanf("%u", &n);printf("%d的阶乘为:%llu", n, factorial(n));return 0;}unsigned long long factorial(unsigned int n){if (n == 0 || n == 1)return 1;elsereturn n * factorial(n - 1);}```以上为编写的一个简单的阶乘计算程序。
计算机二级试题c语言试题及答案
计算机二级试题c语言试题及答案计算机二级试题 C 语言试题及答案一、选择题1. 下面哪个选项是关于 C 语言的描述?A. C 语言是一种面向过程的编程语言。
B. C 语言是一种面向对象的编程语言。
C. C 语言是一种支持并发的编程语言。
D. C 语言是一种解释型的编程语言。
答案:A2. 下面哪个选项是定义一个整型变量的正确方式?A. int x;B. x as Integer;C. int x = 0;D. Integer x;答案:A3. 下面哪个选项是计算整型变量 y 的平方的正确方式?A. y * 2;B. y ^ 2;C. pow(y, 2);D. y * y;答案:D二、填空题1. 下面这段代码的输出是什么?```c#include <stdio.h>int main() {int x = 5;int y = 2;float result = x / y;printf("%f", result);return 0;}```答案:2.0000002. 下面这段代码的输出是什么?```c#include <stdio.h>int main() {int x = 7;int y = 3;printf("%d", x % y);return 0;}```答案:1三、简答题1. 请简述 C 语言中指针的概念及用途。
答:C 语言中的指针是指存储变量内存地址的变量,通过指针可以访问内存中的内容。
指针的用途包括但不限于以下几个方面: - 动态内存管理:通过指针可以在运行时分配内存和释放内存,灵活地管理内存空间。
- 数组访问:通过指针可以更高效地访问数组元素,通过指针进行数组操作。
- 函数传参:通过指针可以在函数之间传递复杂的数据结构,如数组、结构体等。
- 数据结构实现:指针可以用来实现各种数据结构,如链表、树等。
2. 请简述 C 语言中的控制结构 if 语句和 switch 语句的区别。
计算机等级考试二级C语言试题及答案
{ int a=5; s+=f(&a);
}
s+=f(&a); printf(“%d\nC)7 D)8
38、有以下程序 #define f(x) x*x main( ) { int i; i=f(4+4)/f(2+2);
15、 若以下选项中的变量已正确定义,则正确的赋值语句 是
(C) A)x1=26.8%3 B)1+2=x2 C)x3=0x12 D)x4=1+2=3;
//%为模式运算,又称为求余运算,二侧均为整形数据 16、 设有以下定义
int a=0; double b=1.25; char c=’A’; #define d 2 则下面语句中错误的是(D) A)a++; B)b++ C)c++; D)d++;
{ int i,s=0;
for(i=1;i<10;i+=2) s+=i+1;
printf(“%d\n”,s);
} 程序执行后的输出结果是(D)
A)自然数1~9的累加和
B)自然数1~10的累加和
C)自然数1~9中的奇数之和 D)自然数1~10中的偶数 之和
25、有以下程序 main( ) { int i,n=0; for(i=2;i<5;i++) { do { if(i%3) continue; n++; } while(!i); n++; } printf(“n=%d\n”,n); } 程序执行后的输出结果是(D) A)n=5 B)n=2 C)n=3 D) n=4
c语言二级考试历年真题及答案
c语言二级考试历年真题及答案1. 以下哪个选项是C语言中合法的变量名?A. 2variableB. variable2C. variable-nameD. variable_name答案:B2. C语言中,哪个关键字用于声明一个函数?A. intB. voidC. functionD. return答案:B3. 在C语言中,以下哪个数据类型用于表示字符?A. intB. charC. floatD. double答案:B4. 若有定义:int a = 3, b = 4; 则表达式 a + b 的值是多少?A. 7B. 34D. 43答案:A5. 在C语言中,以下哪个运算符用于比较两个值是否相等?A. ==B. !=C. =D. <=答案:A6. 下列哪个选项不是C语言中的控制语句?A. ifB. switchC. forD. case答案:D7. 在C语言中,哪个函数用于计算并返回一个数的平方根?A. sqrt()B. pow()C. log()D. exp()答案:A8. 若有定义:char c = 'A'; 则变量 c 的 ASCII 值是多少?A. 65C. 66D. 98答案:A9. 在C语言中,哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A10. 以下哪个选项是C语言中合法的数组声明?A. int array[5] = {1, 2, 3, 4, 5};B. int array[] = {1, 2, 3, 4, 5};C. int array[5] = {1, 2, 3};D. All of the above答案:D11. 在C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. strncpy()C. strcat()D. strncat()答案:A12. 若有定义:float x = 3.14; 则变量 x 的值是多少?B. 314C. 3.1D. 3.14159答案:A13. 在C语言中,哪个关键字用于声明一个指针?A. pointerB. ptrC. *D. var答案:C14. 下列哪个选项是C语言中合法的宏定义?A. #define PI 3.14159B. #define PI = 3.14159C. #define PI 314159D. #define PI(3.14159)答案:A15. 在C语言中,哪个函数用于将字符串反转?A. reverse()B. strrev()C. strrchr()D. strcasecmp()答案:B16. 若有定义:int a = 10, b = 20; 则表达式 a % b 的值是多少?A. 10B. 0C. 2D. 20答案:B17. 在C语言中,哪个关键字用于声明一个枚举类型?A. enumB. typedefC. unionD. struct答案:A18. 下列哪个选项是C语言中合法的函数声明?A. void myFunction();B. int myFunction();C. void myFunction(int x);D. All of the above答案:D19. 在C语言中,哪个函数用于计算并返回一个数的自然对数?A. log()B. log10()C. pow()D. exp()答案:A20. 若有定义:double x = 1.23; 则变量 x 的值是多少?A. 1.23B. 1.2C. 1.3D. 1.22答案:A。
全国大学生计算机二级c语言试题及答案
全国大学生计算机二级c语言试题及答案一、选择题(每题5分,共50分)1. 下面哪个不是合法的C语言标识符?A. _nameB. 1nameC. name_1D. name1答案:B2. 下面关于C语言数据类型的描述,错误的是?A. float类型表示单精度浮点数B. char类型表示字符C. int类型表示整数D. double类型表示双精度浮点数答案:D3. 在C语言中,要定义一个整型变量a并赋值为5,正确的语句是:A. a = 5;B. int a = 5;C. int a; a = 5;D. a = int(5);答案:B4. 下面关于C语言运算符的描述,错误的是?A. “+”用于加法运算B. “=”用于赋值C. “++”用于自增D. “==”用于比较相等答案:D5. 在C语言中,以下哪个循环结构可以达到“先判断再执行”的效果?A. for循环B. while循环C. do-while循环D. switch-case结构答案:B6. 下面哪个函数用于在C语言中输出字符串?A. printf()B. scanf()C. strcpy()D. strlen()答案:A7. 在C语言中,以下哪个函数用于比较两个字符串是否相等?A. strcmp()B. strcat()C. strchr()D. strncpy()答案:A8. 下面关于C语言数组的描述,错误的是?A. 数组是一种连续存储的数据结构B. 数组的长度在定义时需要确定C. 数组下标从0开始D. 数组可以存储不同类型的数据答案:D9. 在C语言中,如何使用条件语句实现多分支选择结构?A. if-else结构B. switch-case结构C. for循环D. while循环答案:B10. 下面关于C语言函数的描述,错误的是?A. 函数可以实现代码的重用B. 函数可以有多个返回值C. 函数可以没有参数D. 函数可以递归调用自身答案:B二、填空题(每题5分,共30分)1. C语言中,用于定义常量的关键字是 ______ 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机二级c语言历年真题及答案【篇一:国家计算机二级c语言历年真题及答案】class=txt>c语言程序设计(考试时间90分钟,满分100分)一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共70分)(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) 可封装d) 自顶向下c) 模块化d) 逐步求精(7)软件详细设计产生的图如下:该图是a) n-s图b) pad图c) 程序流程图d) e-r图(8)数据库管理系统是a)操作系统的一部分b) 在操作系统支持下的系统软件c) 一种编译系统d) 一种操作系统(9)在e-r图中,用来表示实体联系的图形是a) 椭圆图b) 矩形c) 菱形d) 三角形(10)有三个关系r,s和t如下:其中关系t由关系r和s通过某种操作得到,该操作为a) 选择b) 投影c) 交d) 并(11)以下叙述中正确的是a)程序设计的任务就是编写程序代码并上机调试b)程序设计的任务就是确定所用数据结构c)程序设计的任务就是确定所用算法d)以上三种说法都不完整(12)以下选项中,能用作用户标识符的是a)voidb)8_8c)_0_d)unsigned(13)阅读以下程序#includemain(){ int case; float printf;printf(“请输入2个数:”);scanf(“%d %f”,case,pjrintf);printf(“%d %f\n”,case,printf);}该程序编译时产生错误,其出错原因是a)定义语句出错,case是关键字,不能用作用户自定义标识符b)定义语句出错,printf不能用作用户自定义标识符c)定义语句无错,scanf不能作为输入函数使用d)定义语句无错,printf不能输出case的值(14)表达式:(int)((double)9/2)-(9)%2的值是a)0b)3c)4d)5(15)若有定义语句:int x=10;,则表达式x-=x+x的值为a)-20b)-10c)0d)10(16)有以下程序#includemain(){ int a=1,b=0;printf(“%d,”,b=a+b);printf(“%d\n”,a=2*b);}程序运行后的输出结果是a)0,0c)3,2d)1,217)设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是a)if(ab) c=a,a=b,b=c;b)if(ab) {c=a,a=b,b=c;}c)if(ab) c=a;a=b;b=c;d)if(ab) {c=a;a=b;b=c;}(18)有以下程序#includemain(){ int c=0,k;for (k=1;k3;k++)switch (k){ default: c+=kcase 2: c++;break;case 4: c+=2;break;}printf(“%d\n”,c);}程序运行后的输出结果是a)3b)5c)7d)9(19)以下程序段中,与语句:k=ab?(bc?1:0):0;功能相同的是 a)if((ab)(bc)) k=1;else k=0;b)if((ab)||(bc) k=1;else k=0;c)if(a=b) k=0;else if(b=c) k=1;d)if(ab) k=1;else if(bc) k=1;else k=0;20)有以下程序#include{ char s[]={“012xy”};int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]=’a’s[i]=’z’) n++;printf(“%d\n”,n);}程序运行后的输出结果是a)0b)2c)3d)5(21)有以下程序#includemain(){ int n=2,k=0;while(k++n++2);printf(“%d %d\n”,k,n);}程序运行后的输出结果是a)0 2b)1 3c)5 7d)1 2(22)有以下定义语句,编译时会出现编译错误的是a)char a=’a’;b)char a=’\n’;c)char a=’aa’;d)char a=’\x2d’;(23)有以下程序#includemain(){ char c1,c2;c1=’a’+’8’-‘4’;c2=’a’+’8’-‘5’;printf(“%c,%d\n”,c1,c2);}已知字母a的ascii码为65,程序运行后的输出结果是a)e,68【篇二:2014年三月全国计算机二级c语言上机考试题库】txt>题库100套第01套:给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。
例如,输入一个数:27638496,新的数:为739。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的blank1.c中。
不得增行或删行,也不得更改程序的结构!给定源程序:#include stdio.hvoid fun(unsigned long *n) { unsigned long x=0, i; int t; i=1;while(*n){ t=*n % __1__; if(t%2!= __2__) { x=x+t*i; i=i*10; } *n =*n /10; } *n=__3__; }main(){ unsigned long n=-1; while(n99999999||n0) { printf(please input(0n100000000): ); scanf(%ld,n); } fun(n);printf(\nthe result is: %ld\n,n); }解题思路:第一处:t是通过取模的方式来得到*n的个位数字,所以应填:10。
第二处:判断是否是奇数,所以应填:0。
第三处:最后通形参n来返回新数x,所以应填:x。
给定程序modi1.c中函数 fun 的功能是:计算n!。
例如,给n输入5,则输出120.000000。
请改正程序中的错误,使程序能输出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序: #include stdio.hdouble fun ( int n ) { double result = 1.0 ; if n = = 0 return 1.0 ; while( n 1 n 170 ) result *= n-- return result ; }main ( ) { int n ;printf(input n:) ; scanf(%d, n) ;printf(\n\n%d! =%lf\n\n, n, fun(n)) ; }解题思路:第一处:条件语句书写格式错误,应改为:if (n==0)。
第二处:语句后缺少分号。
*************************************************** 请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用c语言提供的将字符串转换为整数的。
例如,若输入字符串-1234,则函数把它转换为整数值 -1234。
函数fun中给出的语句仅供参考。
注意: 部分源程序存在文件prog1.c文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序: #include stdio.h #include string.h long fun ( char *p){int i, len, t; /* len为串长,t为正负标识 */ long x=0;len=strlen(p); if(p[0]==-){ t=-1; len--; p++; } else t=1;/* 以下完成数字字符串转换为一个数字 */ return x*t; }main() /* 主函数 */ { char s[6]; long n;printf(enter a string:\n) ; gets(s); n = fun(s);printf(%ld\n,n); nono ( ); }nono ( ){/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。
*/ file *fp, *wf ; int i ;char s[20] ; long n ;fp = fopen(c:\\test\\in.dat,r) ; wf = fopen(c:\\test\\out.dat,w) ; for(i = 0 ; i 10 ; i++) { fscanf(fp, %s, s) ; n = fun(s);fprintf(wf, %ld\n, n) ; }fclose(fp) ; fclose(wf) ; }解题思路:本题是将一个数字字符串转换为一个整数。
参考答案:#include stdio.h #include string.h long fun ( char *p) {int i, len, t; /* len为串长,t为正负标识 */ long x=0;len=strlen(p); if(p[0]==-){ t=-1; len--; p++; } else t=1;/* 以下完成数字字符串转换为一个数字 */while(*p) x = x*10-48+(*p++); return x*t; }main() /* 主函数 */ { char s[6]; long n;printf(enter a string:\n) ; gets(s); n = fun(s);printf(%ld\n,n); nono ( ); }nono ( ){/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。
*/ file *fp, *wf ; int i ;char s[20] ; long n ;fp = fopen(c:\\test\\in.dat,r) ; wf = fopen(c:\\test\\out.dat,w) ;for(i = 0 ; i 10 ; i++) { fscanf(fp, %s, s) ; n = fun(s);fprintf(wf, %ld\n, n) ; }fclose(fp) ; fclose(wf) ; } 注意:由于nono( )这个函数是改卷人用的,与考生没有什么关系,故下面从第2套试题开始均省略nono( )※※※※※※※※※※※※※※※※※※※※※※※※※第02套:给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。