计算机二级c语言操作题答案

合集下载

计算机二级c语言试题及答案详解

计算机二级c语言试题及答案详解

计算机二级c语言试题及答案详解一、基础知识部分1. 下列关于C语言的描述中,错误的是:A) C语言是一种高级语言B) C语言是一种编译型语言C) C语言是一种面向对象语言D) C语言是一种结构化语言答案:C) C语言是一种面向对象语言解析:C语言是一种过程式语言,不是面向对象语言。

2. 下列关于C语言标识符的说法中,错误的是:A) 标识符由字母、数字和下划线组成B) 标识符可以以字母或下划线开头C) 标识符区分大小写D) 标识符不能与C语言的关键字相同答案:C) 标识符区分大小写解析:C语言标识符是不区分大小写的。

3. 以下哪项不是C语言关键字?A) ifB) whileC) varD) for答案:C) var解析:C语言中没有关键字var,正确的关键字是int。

4. 下列代码中,哪个选项是合法的C语言注释?A) /* This is a comment */B) // This is a commentC) # This is a commentD) <!-- This is a comment -->答案:A) /* This is a comment */解析:C语言的注释格式是/* ... */。

二、程序设计部分请写一段C语言程序,实现将两个数相加并输出结果的功能。

```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两数之和为:%d\n", sum);return 0;}```解析:以上代码实现了从用户输入两个整数,然后将其相加并输出结果的功能。

三、综合应用部分下列代码中,输出的结果是多少?```c#include <stdio.h>int main() {int a = 5, b = 2;float result;result = a / b;printf("结果为:%f\n", result);return 0;}```答案:结果为2.000000解析:由于a和b都是整数类型,除法运算得到的结果也是整数类型。

全国计算机二级考试《C语言》真题练习及答案

全国计算机二级考试《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语言练习题及答案
typedefstruct{intn;charc;}REC;RECtl,t2;
structRECctREC;{intn=0;charc='A';}tl,t2;
D.struct{intn;charc;}REC;RECtl,t2;
正确答案:A 答案解析:定义结构体类型的一般形式为:StrUCt结构体名{成员列表};StrUCt结构体名后不能加〃;〃号,所以选 项B、C)错误,选项D中定义无名称的结构体类型同时定义结构体变量形式应为StrUett1,t2;选项A为用户自定义类型 ,其为正确的定义形式。
.若实体A和B是一对多的联系,实体B和C是一对一的联系,则实体A和C的联系是() A.一对一 B.一对多
C.多对一 D.多对多 正确答案:B
答案解析:由于B和C有一一对应的联系,而A和B只间有一对多的联系,则通过关系之间的传递,则A和C之间 也是一对多的联系。
.关于C语言的变量,以下叙述中错误的是() A.所谓变量是指在程序运行过程中其值可以被改变的量
B.变量所占的存储单元地址可以随时改变 C.程序中用到的所有变量都必须先定义后才能使用
D.由三条下划线构成的符号名是合法的变量名
正确答案:B
答案解析:变量是指在程序运行过程中其值可以改变的值,一个变量实质上是代表了内存中的某个存储单元。 在程序中对某个变量的操作实际上就是对这个存储单元的操作,程序运行期间,这个分配的存储单元不会改变,但 是其值可以变化。变量命名要符合标识符的规定,其中下划线是标识符的组成字符。程序中所有变量都必须先定义 后使用。
【参考答案】⑴a[i](2)a[j](3)a[j]
【考点分析】
本题考查:数组的引用;if语句条件表达式,如果表达式的值为真,则执行下面的语句,如果该值为假,财不执 行下面的语句。

计算机二级c语言考试试题及答案

计算机二级c语言考试试题及答案

计算机二级c语言考试试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于声明一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项是合法的C语言变量名?A. 2variableB. variable-nameC. variable_nameD. variable$name答案:C3. 在C语言中,哪个函数用于计算并返回字符串的长度?A. strlenB. strcpyC. strcatD. strcmp答案:A4. 若有定义:int a = 5;,则执行以下语句后变量a的值是多少?```ca += (a / 2) + 1;```A. 8C. 6D. 5答案:B5. 在C语言中,以下哪个选项是正确的文件打开模式?A. "r+"B. "w+"C. "a+"D. "b+"答案:B6. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. +=D. !=答案:A7. 在C语言中,以下哪个关键字用于声明一个函数?A. functionB. defC. voidD. return答案:C8. 若有定义:char ch = 'A';,则执行以下语句后变量ch的ASCII 值是多少?```cch = ch - 'a' + 'A';```B. 97C. 66D. 98答案:A9. 在C语言中,哪个函数用于将字符串复制到另一个字符串?A. strcpyB. strncpyC. strcatD. strcmp答案:A10. 下列哪个选项是C语言中的正确注释方式?A. /* This is a comment */B. // This is a commentC. /* This is a comment */D. # This is a comment答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个数组。

计算机二级考试真题及答案c语言

计算机二级考试真题及答案c语言

计算机二级考试真题及答案c语言一、单项选择题(每题1分,共20分)1. 在C语言中,以下哪个关键字用于声明函数?A. structB. unionC. intD. void答案:D2. 若有定义int a=5; 则执行以下语句后,变量a的值是多少?A. a=(a++)+(++a)+a;B. a=a--+(++a)+a;C. a=(a++)+(++a)+a--;D. a=(a++)+(++a)+a--;答案:A3. 在C语言中,以下哪个运算符用于计算两个数的乘积?A. /B. %C. *D. ^答案:C4. 下列哪个选项是C语言中合法的字符常量?A. 'a'B. "a"C. 'ab'D. '\t'答案:D5. 在C语言中,以下哪个选项是合法的数组声明?A. int a[5];B. int a[];C. int a[5][5];D. int a[5,5];答案:A6. 若有定义int x=10; 则执行以下语句后,变量x的值是多少?A. x=x+++x;B. x=++x+x--;C. x=x--+x++;D. x=x+++x--;答案:B7. 在C语言中,以下哪个关键字用于声明一个结构体?A. structB. unionC. enumD. typedef答案:A8. 在C语言中,以下哪个选项是合法的指针声明?A. int *p;B. int *p[];C. int (*p)();D. int (*p)[5];答案:A9. 在C语言中,以下哪个选项是合法的循环语句?A. for(;;)B. while(1)C. do{}while(0)D. all of the above答案:D10. 在C语言中,以下哪个选项是合法的函数声明?A. int func();B. void func(int a);C. int func(int a, int b);D. all of the above答案:D11. 在C语言中,以下哪个选项是合法的宏定义?A. #define PI 3.14159B. #define PI 3.14159fC. #define PI 3.14159LD. all of the above答案:A12. 在C语言中,以下哪个选项是合法的文件操作函数?A. fopenB. fcloseC. freadD. all of the above答案:D13. 在C语言中,以下哪个选项是合法的字符串操作函数?A. strcpyB. strncpyC. strcatD. all of the above答案:D14. 在C语言中,以下哪个选项是合法的动态内存分配函数?A. mallocB. callocC. reallocD. all of the above答案:D15. 在C语言中,以下哪个选项是合法的位操作运算符?A. &B. |C. ^D. all of the above答案:D16. 在C语言中,以下哪个选项是合法的预处理指令?A. #includeB. #defineC. #ifdefD. all of the above答案:D17. 在C语言中,以下哪个选项是合法的类型转换运算符?A. (int)xB. (float)xC. (char)xD. all of the above答案:D18. 在C语言中,以下哪个选项是合法的条件运算符?A. ?B. :C. ||D. &&答案:A19. 在C语言中,以下哪个选项是合法的多维数组声明?A. int a[5][5];B. int a[][5];C. int a[5][];D. int a[][];答案:A20. 在C语言中,以下哪个选项是合法的枚举类型声明?A. enum color {red, green, blue};B. enum {red, green, blue};C. enum color {0, 1, 2};D. all of the above答案:D二、填空题(每题2分,共20分)1. 在C语言中,使用关键字________声明一个函数。

计算机二级c语言操作试题及答案

计算机二级c语言操作试题及答案

计算机二级c语言操作试题及答案一、选择题1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列关于C语言函数的描述中,错误的是?A. 函数可以没有返回值B. 函数可以返回多个值C. 函数可以嵌套定义D. 函数可以递归调用答案:C3. 在C语言中,以下哪个选项是合法的数组声明?A. int a[10];B. int a[2][3];C. int a[2,3];D. int a[];答案:A二、填空题1. 在C语言中,使用________关键字可以定义一个指针变量。

答案:int *p;2. 以下代码段的输出结果是________。

#include <stdio.h>int main() {int i = 5;printf("%d", i++);return 0;}```答案:53. C语言中,用于定义一个枚举类型的关键字是________。

答案:enum三、编程题1. 编写一个C语言程序,计算并输出100以内所有奇数的和。

```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i < 100; i += 2) {sum += i;}printf("Sum of odd numbers from 1 to 99 is: %d\n", sum); return 0;}```2. 编写一个函数,实现字符串的反转,并在主函数中调用该函数,输出反转后的结果。

#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("Reversed string: %s\n", str); return 0;}```。

全国计算机等级考试二级C语言【附详解】

全国计算机等级考试二级C语言【附详解】

下列叙述中正确的是 A、栈是一种先进先出的线性表 B、队列是一种后进先出的线性表 C、栈和队列都是非线性结构 D、以上三种说法都不对
栈是一种后进先出的线性表 队列是一种先进先出的线性表,二者均是线性结构, 答案为选项D。
一棵二叉树共有25个节点,其中5个是子节点, 那么度为1的节点数为 A、4 B、6 C、10 D、16
指针的概念和应用 数组名本身就是地址,所以不需要用&符号。C选项不能对所 有元素赋值而是反复再给一个数值赋值且是死循环。D
有以下程序 #include <sthio.h> Main() {int a,b,k,m,*p1,*p2; ; a=/*p1-m; b=*p1+*p2+6; printf(“%d ”,a); printf(“%d\n”,b);
内模式也称存储模式,它是数据物理结构和存储方 式的描述,是数据在数据库内部的表示方式 对应于物理级,它是数据库中全体数据的内部表示 或底层描述,是数据库最低一级的逻辑描述。选项 A正确。
在满足实体完整性约束的条件下 A. 一个关系中可以没有候选关键词 B. 一个关系中只能有一个候选关键词 C. 一个关系中必须有多个候选关键词 D. 一个关系中应该有一个或者多个候选关键词
在一个关系中,候选关键字可以有多个且在任何关系中至少有一个关键字。 所以在满足数据完整性约束的条件下,一个关系应该有一个或多个候选关键 字,选项D正确。
有三个关系R、S和T如下:
R和S的差是由属于R但不属于S的元组组成的集合 根据本题关系R和关系S运算前后的变化,可以看出此处进行 的是关系运算的差运算
简单程序设计的步骤: 首先要确定算法和数据结构 然后编码、调试 最后整理相关文档。
关于C语言中数的表示,以下叙述正确的是 A、只有整型数在允许范围内能精确无误的表示,实型数会 有误差 B、只要在在允许范围内整型和实型都能精确表示 C、只有实型数在允许范围内能精确无误的表示,整型数会 有误差 D、只有八进制表示的数在不会有误差

往年计算机二级c语言考试真题及答案

往年计算机二级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语言中,_______运算符可以用于判断两个值是否相等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
h=p=(STREC*)malloc(sizeof(STREC));p->s=0;
while(i<N)
{ q=(STREC*)malloc(sizeof(STREC));
q->s=s[i]; i++; p->next=q; p=q;
}
p->next=0;
return h;
}
outlist( STREC *h)
{
/*以下代码仅供参考*/
int i,j,np=0; /* np用作b数组下标*/
for(i = 0 ; i < nn ; i++)
for(j = 0 ; j < mm ; j++) {
b[np] = s[j][i] ;
np = i * mm + j + 1;
}
*n=np;
}
将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中,
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 ;
}
return j ;
}
将s所指字符串中ASCII值为奇数的字符删除,
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 ;
}
将a、b中的两个两位正整数合并形成一个新的整数放在c中。
if(k != a[i]) {
a[j++]=a[i] ;
k = a[i] ;
}
a[j] = 0 ;
return j ;
}
移动字符串中的内容,移动的规则如下:把第1到第m个字符,
void fun1(char *w) /*本函数的功能是将字符串中字符循环左移一个位置*/
{
int i; char t;
t=w[0];
int fun ( int a[][N], int n )
{
int i, j;
for(i = 0 ; i < N ; i++)
for(j = 0 ; j <= i; j++)
a[i][j] *= n ;
}
移动一维数组中的内容;
void fun(int *w, int p, int n)
{
int i, j = 0, b[N] ;
void fun(int (*s)[10], int *b, int *n, int mm, int nn)
{
int i, j, k ;
for(i = 0 ; i < mm ; i++)
for(j = 0 ; j < nn ; j++) {
k = i * nn + j ;
b[k] = s[i][j] ;
return x*t;
将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。
void fun(char s[][N], char *b)
{
int i,j,n=0;
for(i=0; i < N;i++) /*请填写相应语句完成其功能*/
{
for(j = 0 ; j < M ; j++) {
double fun( STREC *h )
{
double max=h->s;
STREC *p;
p=h->next;
while(p)
{ if(p->s>max )
max=p->s;
p=p->next;
}
return max;
}
STREC * creat( double *s)
{ STREC *h,*p,*q; int i=0;
NONO() ;
}
判断字符串是否为回文?
int fun(char *str)
{
int i, j = strlen(str) ;
for(i = 0 ; i < j / 2 ; i++)
if(str[i] != str[j - i - 1]) return 0 ;
return 1 ;
}
main()
{ char s[N] ;
printf("Enter a string: ") ; gets(s) ;
printf("\n\n") ; puts(s) ;
if(fun(s)) printf(" YES\n") ;
else printf(" NO\n") ;
NONO() ;
}
N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。
b[n] = s[j][i] ;
n = i * M + j + 1;
}
}
b[n]='\0';
}
统计一行字符串中单词的个数,作为函数值返回。
int fun( char *s)
{
int k = 1 ;
while(*s) {
if(*s == ' ') k++ ;
s++ ;
}
return k ;
}
统计各年龄段的人数。
{
char *p = str ;
int i = 0 ;
while(*p) {
if(*p != ' ') str[i++] = *p ;
p++ ;
}
str[i] = 0 ;
}
将放在字符串数组中的M个字符串(每串的长度不超过N)按顺序合并组成一个新的字符串。
#include <stdio.h>
#define M 3
}
}
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写int fun( STREC *a,STREC *b,int l, int h )
{
int i,j = 0 ;
for(i = 0 ; i < N ; i++)
if(a[i].s >= l && a[i].s <= h) b[j++] = a[i] ;
#define N 20
void fun(char a[M][N], char *b)
{
/*以下代码仅供参考*/
int i; *b=0;
for(i = 0 ; i < M ; i++)
strcat(b, a[i]) ;
}
将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。
void fun(int (*s)[10], int *b, int *n, int mm, int nn)
{ for(j = 0 ; j < 4 ; j++) printf("%3d",w[i][j]) ;
printf("\n") ;
}
fun(w, a, &n, 3, 4) ;
printf("The A arrБайду номын сангаасy:\n") ;
for(i = 0 ; i < n ; i++) printf("%3d",a[i]);printf("\n\n") ;
for(i=0;i<strlen(w)-1;i++)
w[i]=w[i+1];
w[strlen(w)-1]=t;
}
void fun(char *w, int m) /*可调用fun1函数左移字符*/
{
int i;
for(i = 0 ; i < m ; i++) fun1(w);
}
编写一个函数unsigned fun ( unsigned w ),w是一个大于10的无符号整数
{
char ch ;
int i, j ;
for(i = 1 ; i < 6 ; i++)
for(j = i + 1 ; j < 6 ; j++) {
if(*(s + i) < *(s + j)) {
ch = *(s + j) ;
*(s + j) = *(s +i) ;
*(s + i) = ch ;
}
}
double rnd()
{ static t=29,c=217,m=1024,r=0;
r=(r*t+c)%m; return((double)r/m);
}
删去一维数组中所有相同的数,使之只剩一个。
int fun(int a[], int n)
{
int i, j = 1, k = a[0] ;
for(i = 1 ; i < n ; i++)
for(i = p + 1 ; i < n ; i++) b[j++] = w[i] ;
相关文档
最新文档